Mean signal diffusion kurtosis imaging (MSDKI)#

Diffusion Kurtosis Imaging (DKI) is one of the conventional ways to estimate the degree of non-Gaussian diffusion (see Reconstruction of the diffusion signal with the kurtosis tensor model) [Jensen2005]. However, a limitation of DKI is that its measures are highly sensitive to noise and image artefacts. For instance, due to the low radial diffusivities, standard kurtosis estimates in regions of well-aligned voxel may be corrupted by implausible low or even negative values.

A way to overcome this issue is to characterize kurtosis from average signals across all directions acquired for each data b-value (also known as powder-averaged signals). Moreover, as previously pointed [NetoHe2015], standard kurtosis measures (e.g. radial, axial and standard mean kurtosis) do not only depend on microstructural properties but also on mesoscopic properties such as fiber dispersion or the intersection angle of crossing fibers. In contrary, the kurtosis from powder-average signals has the advantage of not depending on the fiber distribution functions [NetoHe2018], [NetoHe2019].

In short, in this tutorial we show how to characterize non-Gaussian diffusion in a more precise way and decoupled from confounding effects of tissue dispersion and crossing.

In the first part of this example, we illustrate the properties of the measures obtained from the mean signal diffusion kurtosis imaging (MSDKI) [NetoHe2018] using synthetic data. Secondly, the mean signal diffusion kurtosis imaging will be applied to in-vivo MRI data. Finally, we show how MSDKI provides the same information than common microstructural models such as the spherical mean technique [NetoHe2019], [Kaden2016b].

Let’s import all relevant modules:

import numpy as np
import matplotlib.pyplot as plt

# Reconstruction modules
import dipy.reconst.dki as dki
import dipy.reconst.msdki as msdki

# For simulations
from dipy.sims.voxel import multi_tensor
from dipy.core.gradients import gradient_table
from dipy.core.sphere import disperse_charges, HemiSphere

# For in-vivo data
from dipy.data import get_fnames
from dipy.io.gradients import read_bvals_bvecs
from dipy.io.image import load_nifti
from dipy.segment.mask import median_otsu

Testing MSDKI in synthetic data#

We simulate representative diffusion-weighted signals using MultiTensor simulations (for more information on this type of simulations see MultiTensor Simulation). For this example, simulations are produced based on the sum of four diffusion tensors to represent the intra- and extra-cellular spaces of two fiber populations. The parameters of these tensors are adjusted according to [NetoHe2015] (see also DKI MultiTensor Simulation).

mevals = np.array([[0.00099, 0, 0],
                   [0.00226, 0.00087, 0.00087],
                   [0.00099, 0, 0],
                   [0.00226, 0.00087, 0.00087]])

For the acquisition parameters of the synthetic data, we use 60 gradient directions for two non-zero b-values (1000 and 2000 \(s/mm^{2}\)) and two zero bvalues (note that, such as the standard DKI, MSDKI requires at least three different b-values).

# Sample the spherical coordinates of 60 random diffusion-weighted directions.
rng = np.random.default_rng()

n_pts = 60
theta = np.pi * rng.random(n_pts)
phi = 2 * np.pi * rng.random(n_pts)

# Convert direction to cartesian coordinates.
hsph_initial = HemiSphere(theta=theta, phi=phi)

# Evenly distribute the 60 directions
hsph_updated, potential = disperse_charges(hsph_initial, 5000)
directions = hsph_updated.vertices

# Reconstruct acquisition parameters for 2 non-zero=b-values and 2 b0s
bvals = np.hstack((np.zeros(2), 1000 * np.ones(n_pts), 2000 * np.ones(n_pts)))
bvecs = np.vstack((np.zeros((2, 3)), directions, directions))

gtab = gradient_table(bvals, bvecs)

Simulations are looped for different intra- and extra-cellular water volume fractions and different intersection angles of the two-fiber populations.

# Array containing the intra-cellular volume fractions tested
f = np.linspace(20, 80.0, num=7)

# Array containing the intersection angle
ang = np.linspace(0, 90.0, num=91)

# Matrix where synthetic signals will be stored
dwi = np.empty((f.size, ang.size, bvals.size))

for f_i in range(f.size):
    # estimating volume fractions for individual tensors
    fractions = np.array([100 - f[f_i], f[f_i], 100 - f[f_i], f[f_i]]) * 0.5

    for a_i in range(ang.size):
        # defining the directions for individual tensors
        angles = [(ang[a_i], 0.0), (ang[a_i], 0.0), (0.0, 0.0), (0.0, 0.0)]

        # producing signals using Dipy's function multi_tensor
        signal, sticks = multi_tensor(gtab, mevals, S0=100, angles=angles,
                                      fractions=fractions, snr=None)
        dwi[f_i, a_i, :] = signal

Now that all synthetic signals were produced, we can go forward with MSDKI fitting. As other Dipy’s reconstruction techniques, the MSDKI model has to be first defined for the specific GradientTable object of the synthetic data. For MSDKI, this is done by instantiating the MeanDiffusionKurtosisModel object in the following way:

MSDKI can then be fitted to the synthetic data by calling the fit function of this object:

From the above fit object we can extract the two main parameters of the MSDKI, i.e.: 1) the mean signal diffusion (MSD); and 2) the mean signal kurtosis (MSK)

MSD = msdki_fit.msd
MSK = msdki_fit.msk

For a reference, we also calculate the mean diffusivity (MD) and mean kurtosis (MK) from the standard DKI.

  0%|                                                                                                                                                    | 0/637 [00:00<?, ?it/s]
 36%|████████████████████████████████████████████████▋                                                                                       | 228/637 [00:00<00:00, 2271.42it/s]
 74%|████████████████████████████████████████████████████████████████████████████████████████████████████▉                                   | 473/637 [00:00<00:00, 2364.29it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 637/637 [00:00<00:00, 2372.53it/s]

Now we plot the results as a function of the ground truth intersection angle and for different volume fractions of intra-cellular water.

fig1, axs = plt.subplots(nrows=2, ncols=2, figsize=(10, 10))

for f_i in range(f.size):
    axs[0, 0].plot(ang, MSD[f_i], linewidth=1.0,
                   label=':math:`F: %.2f`' % f[f_i])
    axs[0, 1].plot(ang, MSK[f_i], linewidth=1.0,
                   label=':math:`F: %.2f`' % f[f_i])
    axs[1, 0].plot(ang, MD[f_i], linewidth=1.0,
                   label=':math:`F: %.2f`' % f[f_i])
    axs[1, 1].plot(ang, MK[f_i], linewidth=1.0,
                   label=':math:`F: %.2f`' % f[f_i])

# Adjust properties of the first panel of the figure
axs[0, 0].set_xlabel('Intersection angle')
axs[0, 0].set_ylabel('MSD')
axs[0, 1].set_xlabel('Intersection angle')
axs[0, 1].set_ylabel('MSK')
axs[0, 1].legend(loc='center left', bbox_to_anchor=(1, 0.5))
axs[1, 0].set_xlabel('Intersection angle')
axs[1, 0].set_ylabel('MD')
axs[1, 1].set_xlabel('Intersection angle')
axs[1, 1].set_ylabel('MK')
axs[1, 1].legend(loc='center left', bbox_to_anchor=(1, 0.5))

plt.show()
fig1.savefig('MSDKI_simulations.png')
reconst msdki

MSDKI and DKI measures for data of two crossing synthetic fibers. Upper panels show the MSDKI measures: 1) mean signal diffusivity (left panel); and 2) mean signal kurtosis (right panel). For reference, lower panels show the measures obtained by standard DKI: 1) mean diffusivity (left panel); and 2) mean kurtosis (right panel). All estimates are plotted as a function of the intersecting angle of the two crossing fibers. Different curves correspond to different ground truth axonal volume fraction of intra-cellular space.

The results of the above figure, demonstrate that both MSD and MSK are sensitive to axonal volume fraction (i.e. a microstructure property) but are independent to the intersection angle of the two crossing fibers (i.e. independent to properties regarding fiber orientation). In contrast, DKI measures seem to be independent to both axonal volume fraction and intersection angle.

Reconstructing diffusion data using MSDKI#

Now that the properties of MSDKI were illustrated, let’s apply MSDKI to in-vivo diffusion-weighted data. As the example for the standard DKI (see Reconstruction of the diffusion signal with the kurtosis tensor model), we use fetch to download a multi-shell dataset which was kindly provided by Hansen and Jespersen (more details about the data are provided in their paper [Hansen2016]). The total size of the downloaded data is 192 MBytes, however you only need to fetch it once.

fraw, fbval, fbvec, t1_fname = get_fnames('cfin_multib')

data, affine = load_nifti(fraw)
bvals, bvecs = read_bvals_bvecs(fbval, fbvec)
gtab = gradient_table(bvals, bvecs)

Before fitting the data, we perform some data pre-processing. For illustration, we only mask the data to avoid unnecessary calculations on the background of the image; however, you could also apply other pre-processing techniques. For example, some state of the art denoising algorithms are available in DIPY (e.g. the non-local means filter Denoise images using Non-Local Means (NLMEANS) or the local pca Denoise images using Local PCA via empirical thresholds).

maskdata, mask = median_otsu(data, vol_idx=[0, 1], median_radius=4, numpass=2,
                             autocrop=False, dilate=1)

Now that we have loaded and pre-processed the data we can go forward with MSDKI fitting. As for the synthetic data, the MSDKI model has to be first defined for the data’s GradientTable object:

The data can then be fitted by calling the fit function of this object:

msdki_fit = msdki_model.fit(data, mask=mask)

Let’s then extract the two main MSDKI’s parameters: 1) mean signal diffusion (MSD); and 2) mean signal kurtosis (MSK).

MSD = msdki_fit.msd
MSK = msdki_fit.msk

For comparison, we calculate also the mean diffusivity (MD) and mean kurtosis (MK) from the standard DKI.

  0%|                                                                                                                                                  | 0/57580 [00:00<?, ?it/s]
  0%|▏                                                                                                                                       | 67/57580 [00:00<01:26, 667.04it/s]
  0%|▎                                                                                                                                      | 156/57580 [00:00<01:12, 796.84it/s]
  0%|▌                                                                                                                                      | 236/57580 [00:00<01:15, 761.87it/s]
  1%|▋                                                                                                                                      | 313/57580 [00:00<01:18, 727.63it/s]
  1%|▉                                                                                                                                      | 387/57580 [00:00<01:18, 726.35it/s]
  1%|█                                                                                                                                      | 460/57580 [00:00<01:20, 706.24it/s]
  1%|█▎                                                                                                                                     | 534/57580 [00:00<01:19, 715.87it/s]
  1%|█▍                                                                                                                                     | 613/57580 [00:00<01:17, 735.67it/s]
  1%|█▌                                                                                                                                     | 692/57580 [00:00<01:15, 751.38it/s]
  1%|█▊                                                                                                                                     | 768/57580 [00:01<01:16, 739.64it/s]
  1%|█▉                                                                                                                                     | 843/57580 [00:01<01:18, 720.50it/s]
  2%|██▏                                                                                                                                    | 918/57580 [00:01<01:17, 727.48it/s]
  2%|██▎                                                                                                                                    | 991/57580 [00:01<01:19, 713.52it/s]
  2%|██▌                                                                                                                                   | 1077/57580 [00:01<01:14, 755.79it/s]
  2%|██▋                                                                                                                                   | 1155/57580 [00:01<01:14, 762.28it/s]
  2%|██▊                                                                                                                                   | 1232/57580 [00:01<01:15, 750.57it/s]
  2%|███                                                                                                                                   | 1308/57580 [00:01<01:16, 739.67it/s]
  2%|███▏                                                                                                                                  | 1383/57580 [00:01<01:16, 731.06it/s]
  3%|███▍                                                                                                                                  | 1457/57580 [00:01<01:17, 724.32it/s]
  3%|███▌                                                                                                                                  | 1530/57580 [00:02<01:17, 725.33it/s]
  3%|███▋                                                                                                                                  | 1603/57580 [00:02<01:18, 712.41it/s]
  3%|███▉                                                                                                                                  | 1680/57580 [00:02<01:16, 728.56it/s]
  3%|████                                                                                                                                  | 1753/57580 [00:02<01:17, 723.96it/s]
  3%|████▎                                                                                                                                 | 1827/57580 [00:02<01:16, 728.10it/s]
  3%|████▍                                                                                                                                 | 1900/57580 [00:02<01:17, 721.63it/s]
  3%|████▌                                                                                                                                 | 1977/57580 [00:02<01:15, 732.93it/s]
  4%|████▊                                                                                                                                 | 2058/57580 [00:02<01:13, 755.06it/s]
  4%|████▉                                                                                                                                 | 2139/57580 [00:02<01:12, 768.08it/s]
  4%|█████▏                                                                                                                                | 2220/57580 [00:03<01:10, 779.87it/s]
  4%|█████▎                                                                                                                                | 2301/57580 [00:03<01:10, 785.79it/s]
  4%|█████▌                                                                                                                                | 2380/57580 [00:03<01:11, 774.76it/s]
  4%|█████▋                                                                                                                                | 2463/57580 [00:03<01:09, 790.51it/s]
  4%|█████▉                                                                                                                                | 2543/57580 [00:03<01:11, 767.48it/s]
  5%|██████                                                                                                                                | 2620/57580 [00:03<01:11, 765.29it/s]
  5%|██████▎                                                                                                                               | 2697/57580 [00:03<01:12, 759.65it/s]
  5%|██████▍                                                                                                                               | 2774/57580 [00:03<01:12, 759.67it/s]
  5%|██████▋                                                                                                                               | 2851/57580 [00:03<01:12, 755.42it/s]
  5%|██████▊                                                                                                                               | 2932/57580 [00:03<01:10, 770.75it/s]
  5%|███████                                                                                                                               | 3013/57580 [00:04<01:10, 779.37it/s]
  5%|███████▏                                                                                                                              | 3091/57580 [00:04<01:11, 767.32it/s]
  6%|███████▎                                                                                                                              | 3168/57580 [00:04<01:11, 756.57it/s]
  6%|███████▌                                                                                                                              | 3244/57580 [00:04<01:13, 742.82it/s]
  6%|███████▋                                                                                                                              | 3319/57580 [00:04<01:13, 741.51it/s]
  6%|███████▉                                                                                                                              | 3394/57580 [00:04<01:12, 743.34it/s]
  6%|████████                                                                                                                              | 3469/57580 [00:04<01:13, 731.63it/s]
  6%|████████▏                                                                                                                             | 3543/57580 [00:04<01:14, 724.86it/s]
  6%|████████▍                                                                                                                             | 3621/57580 [00:04<01:12, 740.27it/s]
  6%|████████▌                                                                                                                             | 3700/57580 [00:04<01:11, 751.91it/s]
  7%|████████▊                                                                                                                             | 3776/57580 [00:05<01:11, 753.45it/s]
  7%|████████▉                                                                                                                             | 3852/57580 [00:05<01:12, 738.93it/s]
  7%|█████████▏                                                                                                                            | 3926/57580 [00:05<01:15, 715.28it/s]
  7%|█████████▎                                                                                                                            | 3998/57580 [00:05<01:15, 709.76it/s]
  7%|█████████▍                                                                                                                            | 4070/57580 [00:05<01:15, 711.68it/s]
  7%|█████████▋                                                                                                                            | 4142/57580 [00:05<01:15, 706.19it/s]
  7%|█████████▊                                                                                                                            | 4215/57580 [00:05<01:14, 712.45it/s]
  7%|█████████▉                                                                                                                            | 4288/57580 [00:05<01:14, 716.91it/s]
  8%|██████████▏                                                                                                                           | 4360/57580 [00:05<01:14, 712.65it/s]
  8%|██████████▎                                                                                                                           | 4432/57580 [00:05<01:15, 707.87it/s]
  8%|██████████▍                                                                                                                           | 4503/57580 [00:06<01:15, 707.59it/s]
  8%|██████████▋                                                                                                                           | 4574/57580 [00:06<01:15, 705.45it/s]
  8%|██████████▊                                                                                                                           | 4650/57580 [00:06<01:13, 719.93it/s]
  8%|██████████▉                                                                                                                           | 4723/57580 [00:06<01:14, 709.30it/s]
  8%|███████████▏                                                                                                                          | 4794/57580 [00:06<01:14, 706.41it/s]
  8%|███████████▎                                                                                                                          | 4865/57580 [00:06<01:15, 700.41it/s]
  9%|███████████▍                                                                                                                          | 4938/57580 [00:06<01:14, 705.79it/s]
  9%|███████████▋                                                                                                                          | 5009/57580 [00:06<01:14, 706.36it/s]
  9%|███████████▊                                                                                                                          | 5081/57580 [00:06<01:14, 706.45it/s]
  9%|████████████                                                                                                                          | 5159/57580 [00:07<01:12, 727.52it/s]
  9%|████████████▏                                                                                                                         | 5232/57580 [00:07<01:12, 718.74it/s]
  9%|████████████▎                                                                                                                         | 5304/57580 [00:07<01:13, 707.79it/s]
  9%|████████████▌                                                                                                                         | 5375/57580 [00:07<01:14, 702.80it/s]
  9%|████████████▋                                                                                                                         | 5447/57580 [00:07<01:13, 706.75it/s]
 10%|████████████▊                                                                                                                         | 5519/57580 [00:07<01:13, 709.81it/s]
 10%|█████████████                                                                                                                         | 5591/57580 [00:07<01:14, 699.77it/s]
 10%|█████████████▏                                                                                                                        | 5662/57580 [00:07<01:13, 702.10it/s]
 10%|█████████████▎                                                                                                                        | 5733/57580 [00:07<01:13, 703.66it/s]
 10%|█████████████▌                                                                                                                        | 5804/57580 [00:07<01:13, 704.88it/s]
 10%|█████████████▋                                                                                                                        | 5876/57580 [00:08<01:12, 708.62it/s]
 10%|█████████████▊                                                                                                                        | 5954/57580 [00:08<01:10, 729.00it/s]
 10%|██████████████                                                                                                                        | 6034/57580 [00:08<01:08, 749.23it/s]
 11%|██████████████▏                                                                                                                       | 6109/57580 [00:08<01:09, 744.27it/s]
 11%|██████████████▍                                                                                                                       | 6184/57580 [00:08<01:09, 734.38it/s]
 11%|██████████████▌                                                                                                                       | 6258/57580 [00:08<01:09, 735.04it/s]
 11%|██████████████▋                                                                                                                       | 6332/57580 [00:08<01:10, 726.61it/s]
 11%|██████████████▉                                                                                                                       | 6411/57580 [00:08<01:08, 744.66it/s]
 11%|███████████████                                                                                                                       | 6492/57580 [00:08<01:07, 762.07it/s]
 11%|███████████████▎                                                                                                                      | 6569/57580 [00:08<01:10, 718.82it/s]
 12%|███████████████▍                                                                                                                      | 6642/57580 [00:09<01:12, 706.89it/s]
 12%|███████████████▌                                                                                                                      | 6714/57580 [00:09<01:12, 706.02it/s]
 12%|███████████████▊                                                                                                                      | 6785/57580 [00:09<01:12, 700.43it/s]
 12%|███████████████▉                                                                                                                      | 6856/57580 [00:09<01:13, 688.35it/s]
 12%|████████████████                                                                                                                      | 6928/57580 [00:09<01:12, 694.49it/s]
 12%|████████████████▎                                                                                                                     | 7002/57580 [00:09<01:11, 707.05it/s]
 12%|████████████████▍                                                                                                                     | 7073/57580 [00:09<01:11, 704.80it/s]
 12%|████████████████▋                                                                                                                     | 7146/57580 [00:09<01:10, 711.44it/s]
 13%|████████████████▊                                                                                                                     | 7220/57580 [00:09<01:10, 716.74it/s]
 13%|████████████████▉                                                                                                                     | 7294/57580 [00:09<01:09, 720.83it/s]
 13%|█████████████████▏                                                                                                                    | 7367/57580 [00:10<01:09, 720.62it/s]
 13%|█████████████████▎                                                                                                                    | 7440/57580 [00:10<01:10, 708.77it/s]
 13%|█████████████████▍                                                                                                                    | 7511/57580 [00:10<01:11, 695.97it/s]
 13%|█████████████████▋                                                                                                                    | 7581/57580 [00:10<01:12, 690.00it/s]
 13%|█████████████████▊                                                                                                                    | 7651/57580 [00:10<01:12, 690.12it/s]
 13%|█████████████████▉                                                                                                                    | 7727/57580 [00:10<01:10, 707.86it/s]
 14%|██████████████████▏                                                                                                                   | 7807/57580 [00:10<01:07, 734.30it/s]
 14%|██████████████████▎                                                                                                                   | 7888/57580 [00:10<01:05, 756.05it/s]
 14%|██████████████████▌                                                                                                                   | 7969/57580 [00:10<01:04, 771.23it/s]
 14%|██████████████████▋                                                                                                                   | 8050/57580 [00:11<01:03, 781.93it/s]
 14%|██████████████████▉                                                                                                                   | 8129/57580 [00:11<01:04, 760.82it/s]
 14%|███████████████████                                                                                                                   | 8206/57580 [00:11<01:06, 740.83it/s]
 14%|███████████████████▎                                                                                                                  | 8281/57580 [00:11<01:08, 715.67it/s]
 15%|███████████████████▍                                                                                                                  | 8353/57580 [00:11<01:09, 710.08it/s]
 15%|███████████████████▌                                                                                                                  | 8427/57580 [00:11<01:08, 717.94it/s]
 15%|███████████████████▊                                                                                                                  | 8501/57580 [00:11<01:07, 723.63it/s]
 15%|███████████████████▉                                                                                                                  | 8574/57580 [00:11<01:08, 716.22it/s]
 15%|████████████████████                                                                                                                  | 8646/57580 [00:11<01:08, 712.25it/s]
 15%|████████████████████▎                                                                                                                 | 8722/57580 [00:11<01:07, 725.67it/s]
 15%|████████████████████▍                                                                                                                 | 8798/57580 [00:12<01:06, 733.07it/s]
 15%|████████████████████▋                                                                                                                 | 8872/57580 [00:12<01:06, 730.14it/s]
 16%|████████████████████▊                                                                                                                 | 8948/57580 [00:12<01:05, 738.08it/s]
 16%|█████████████████████                                                                                                                 | 9025/57580 [00:12<01:05, 746.79it/s]
 16%|█████████████████████▏                                                                                                                | 9100/57580 [00:12<01:06, 733.98it/s]
 16%|█████████████████████▎                                                                                                                | 9174/57580 [00:12<01:07, 718.06it/s]
 16%|█████████████████████▌                                                                                                                | 9247/57580 [00:12<01:07, 720.80it/s]
 16%|█████████████████████▋                                                                                                                | 9320/57580 [00:12<01:07, 716.64it/s]
 16%|█████████████████████▊                                                                                                                | 9392/57580 [00:12<01:07, 714.93it/s]
 16%|██████████████████████                                                                                                                | 9464/57580 [00:13<01:09, 697.29it/s]
 17%|██████████████████████▏                                                                                                               | 9534/57580 [00:13<01:11, 673.62it/s]
 17%|██████████████████████▎                                                                                                               | 9603/57580 [00:13<01:10, 677.68it/s]
 17%|██████████████████████▌                                                                                                               | 9671/57580 [00:13<01:10, 675.60it/s]
 17%|██████████████████████▋                                                                                                               | 9739/57580 [00:13<01:10, 676.05it/s]
 17%|██████████████████████▊                                                                                                               | 9811/57580 [00:13<01:09, 686.21it/s]
 17%|██████████████████████▉                                                                                                               | 9881/57580 [00:13<01:09, 689.58it/s]
 17%|███████████████████████▏                                                                                                              | 9951/57580 [00:13<01:09, 681.77it/s]
 17%|███████████████████████▏                                                                                                             | 10022/57580 [00:13<01:09, 687.32it/s]
 18%|███████████████████████▎                                                                                                             | 10094/57580 [00:13<01:08, 696.28it/s]
 18%|███████████████████████▌                                                                                                             | 10179/57580 [00:14<01:03, 741.44it/s]
 18%|███████████████████████▋                                                                                                             | 10255/57580 [00:14<01:03, 746.29it/s]
 18%|███████████████████████▊                                                                                                             | 10330/57580 [00:14<01:04, 731.02it/s]
 18%|████████████████████████                                                                                                             | 10404/57580 [00:14<01:06, 706.02it/s]
 18%|████████████████████████▏                                                                                                            | 10477/57580 [00:14<01:06, 712.22it/s]
 18%|████████████████████████▎                                                                                                            | 10549/57580 [00:14<01:05, 713.84it/s]
 18%|████████████████████████▌                                                                                                            | 10624/57580 [00:14<01:05, 721.67it/s]
 19%|████████████████████████▋                                                                                                            | 10700/57580 [00:14<01:04, 732.25it/s]
 19%|████████████████████████▉                                                                                                            | 10774/57580 [00:14<01:03, 731.64it/s]
 19%|█████████████████████████                                                                                                            | 10852/57580 [00:14<01:02, 744.99it/s]
 19%|█████████████████████████▏                                                                                                           | 10927/57580 [00:15<01:02, 743.58it/s]
 19%|█████████████████████████▍                                                                                                           | 11002/57580 [00:15<01:02, 740.37it/s]
 19%|█████████████████████████▌                                                                                                           | 11078/57580 [00:15<01:02, 745.47it/s]
 19%|█████████████████████████▊                                                                                                           | 11153/57580 [00:15<01:03, 726.74it/s]
 19%|█████████████████████████▉                                                                                                           | 11228/57580 [00:15<01:03, 730.71it/s]
 20%|██████████████████████████                                                                                                           | 11302/57580 [00:15<01:03, 724.27it/s]
 20%|██████████████████████████▎                                                                                                          | 11375/57580 [00:15<01:03, 723.07it/s]
 20%|██████████████████████████▍                                                                                                          | 11451/57580 [00:15<01:02, 733.16it/s]
 20%|██████████████████████████▌                                                                                                          | 11526/57580 [00:15<01:02, 735.15it/s]
 20%|██████████████████████████▊                                                                                                          | 11600/57580 [00:15<01:03, 727.28it/s]
 20%|██████████████████████████▉                                                                                                          | 11673/57580 [00:16<01:03, 725.07it/s]
 20%|███████████████████████████▏                                                                                                         | 11746/57580 [00:16<01:03, 717.17it/s]
 21%|███████████████████████████▎                                                                                                         | 11818/57580 [00:16<01:04, 713.01it/s]
 21%|███████████████████████████▍                                                                                                         | 11890/57580 [00:16<01:04, 705.87it/s]
 21%|███████████████████████████▋                                                                                                         | 11965/57580 [00:16<01:03, 716.99it/s]
 21%|███████████████████████████▊                                                                                                         | 12037/57580 [00:16<01:04, 700.71it/s]
 21%|███████████████████████████▉                                                                                                         | 12109/57580 [00:16<01:04, 705.26it/s]
 21%|████████████████████████████▏                                                                                                        | 12181/57580 [00:16<01:04, 707.01it/s]
 21%|████████████████████████████▎                                                                                                        | 12254/57580 [00:16<01:03, 713.02it/s]
 21%|████████████████████████████▍                                                                                                        | 12326/57580 [00:17<01:05, 687.74it/s]
 22%|████████████████████████████▋                                                                                                        | 12398/57580 [00:17<01:04, 695.91it/s]
 22%|████████████████████████████▊                                                                                                        | 12468/57580 [00:17<01:05, 692.20it/s]
 22%|████████████████████████████▉                                                                                                        | 12538/57580 [00:17<01:06, 681.73it/s]
 22%|█████████████████████████████                                                                                                        | 12607/57580 [00:17<01:06, 674.92it/s]
 22%|█████████████████████████████▎                                                                                                       | 12675/57580 [00:17<01:06, 671.62it/s]
 22%|█████████████████████████████▍                                                                                                       | 12746/57580 [00:17<01:05, 682.63it/s]
 22%|█████████████████████████████▌                                                                                                       | 12820/57580 [00:17<01:04, 696.27it/s]
 22%|█████████████████████████████▊                                                                                                       | 12894/57580 [00:17<01:03, 706.34it/s]
 23%|█████████████████████████████▉                                                                                                       | 12967/57580 [00:17<01:02, 712.20it/s]
 23%|██████████████████████████████                                                                                                       | 13039/57580 [00:18<01:02, 711.55it/s]
 23%|██████████████████████████████▎                                                                                                      | 13111/57580 [00:18<01:03, 702.79it/s]
 23%|██████████████████████████████▍                                                                                                      | 13182/57580 [00:18<01:03, 697.53it/s]
 23%|██████████████████████████████▌                                                                                                      | 13252/57580 [00:18<01:04, 684.09it/s]
 23%|██████████████████████████████▊                                                                                                      | 13323/57580 [00:18<01:04, 690.72it/s]
 23%|██████████████████████████████▉                                                                                                      | 13403/57580 [00:18<01:01, 722.21it/s]
 23%|███████████████████████████████▏                                                                                                     | 13488/57580 [00:18<00:58, 759.36it/s]
 24%|███████████████████████████████▎                                                                                                     | 13568/57580 [00:18<00:57, 770.58it/s]
 24%|███████████████████████████████▌                                                                                                     | 13649/57580 [00:18<00:56, 781.51it/s]
 24%|███████████████████████████████▋                                                                                                     | 13728/57580 [00:18<00:56, 771.08it/s]
 24%|███████████████████████████████▉                                                                                                     | 13806/57580 [00:19<00:57, 755.26it/s]
 24%|████████████████████████████████                                                                                                     | 13882/57580 [00:19<00:59, 740.23it/s]
 24%|████████████████████████████████▏                                                                                                    | 13957/57580 [00:19<01:00, 721.37it/s]
 24%|████████████████████████████████▍                                                                                                    | 14030/57580 [00:19<01:02, 700.89it/s]
 24%|████████████████████████████████▌                                                                                                    | 14101/57580 [00:19<01:03, 688.74it/s]
 25%|████████████████████████████████▋                                                                                                    | 14172/57580 [00:19<01:02, 692.83it/s]
 25%|████████████████████████████████▉                                                                                                    | 14246/57580 [00:19<01:01, 705.49it/s]
 25%|█████████████████████████████████                                                                                                    | 14318/57580 [00:19<01:01, 709.13it/s]
 25%|█████████████████████████████████▏                                                                                                   | 14392/57580 [00:19<01:00, 715.25it/s]
 25%|█████████████████████████████████▍                                                                                                   | 14466/57580 [00:20<00:59, 719.59it/s]
 25%|█████████████████████████████████▌                                                                                                   | 14542/57580 [00:20<00:58, 730.70it/s]
 25%|█████████████████████████████████▊                                                                                                   | 14619/57580 [00:20<00:57, 741.70it/s]
 26%|█████████████████████████████████▉                                                                                                   | 14694/57580 [00:20<00:59, 722.31it/s]
 26%|██████████████████████████████████                                                                                                   | 14767/57580 [00:20<01:00, 709.30it/s]
 26%|██████████████████████████████████▎                                                                                                  | 14839/57580 [00:20<01:01, 699.55it/s]
 26%|██████████████████████████████████▍                                                                                                  | 14910/57580 [00:20<01:01, 697.85it/s]
 26%|██████████████████████████████████▌                                                                                                  | 14982/57580 [00:20<01:00, 701.38it/s]
 26%|██████████████████████████████████▊                                                                                                  | 15053/57580 [00:20<01:00, 703.26it/s]
 26%|██████████████████████████████████▉                                                                                                  | 15124/57580 [00:20<01:00, 703.79it/s]
 26%|███████████████████████████████████                                                                                                  | 15205/57580 [00:21<00:57, 734.28it/s]
 27%|███████████████████████████████████▎                                                                                                 | 15279/57580 [00:21<00:58, 728.69it/s]
 27%|███████████████████████████████████▍                                                                                                 | 15352/57580 [00:21<00:58, 717.83it/s]
 27%|███████████████████████████████████▋                                                                                                 | 15424/57580 [00:21<01:00, 699.13it/s]
 27%|███████████████████████████████████▊                                                                                                 | 15495/57580 [00:21<01:01, 686.99it/s]
 27%|███████████████████████████████████▉                                                                                                 | 15565/57580 [00:21<01:01, 688.05it/s]
 27%|████████████████████████████████████                                                                                                 | 15638/57580 [00:21<00:59, 699.56it/s]
 27%|████████████████████████████████████▎                                                                                                | 15719/57580 [00:21<00:57, 729.02it/s]
 27%|████████████████████████████████████▍                                                                                                | 15792/57580 [00:21<00:57, 728.51it/s]
 28%|████████████████████████████████████▋                                                                                                | 15865/57580 [00:21<00:57, 725.80it/s]
 28%|████████████████████████████████████▊                                                                                                | 15938/57580 [00:22<00:57, 726.01it/s]
 28%|████████████████████████████████████▉                                                                                                | 16011/57580 [00:22<00:57, 717.89it/s]
 28%|█████████████████████████████████████▏                                                                                               | 16083/57580 [00:22<00:59, 701.22it/s]
 28%|█████████████████████████████████████▎                                                                                               | 16154/57580 [00:22<00:59, 694.36it/s]
 28%|█████████████████████████████████████▍                                                                                               | 16226/57580 [00:22<00:58, 701.01it/s]
 28%|█████████████████████████████████████▋                                                                                               | 16298/57580 [00:22<00:58, 703.73it/s]
 28%|█████████████████████████████████████▊                                                                                               | 16375/57580 [00:22<00:57, 722.46it/s]
 29%|██████████████████████████████████████                                                                                               | 16465/57580 [00:22<00:53, 774.46it/s]
 29%|██████████████████████████████████████▏                                                                                              | 16555/57580 [00:22<00:50, 810.26it/s]
 29%|██████████████████████████████████████▍                                                                                              | 16644/57580 [00:22<00:49, 833.40it/s]
 29%|██████████████████████████████████████▋                                                                                              | 16732/57580 [00:23<00:48, 843.20it/s]
 29%|██████████████████████████████████████▊                                                                                              | 16817/57580 [00:23<00:49, 822.24it/s]
 29%|███████████████████████████████████████                                                                                              | 16900/57580 [00:23<00:52, 771.15it/s]
 29%|███████████████████████████████████████▏                                                                                             | 16978/57580 [00:23<00:53, 757.72it/s]
 30%|███████████████████████████████████████▍                                                                                             | 17055/57580 [00:23<00:53, 751.70it/s]
 30%|███████████████████████████████████████▌                                                                                             | 17131/57580 [00:23<00:54, 736.56it/s]
 30%|███████████████████████████████████████▋                                                                                             | 17205/57580 [00:23<00:56, 710.45it/s]
 30%|███████████████████████████████████████▉                                                                                             | 17277/57580 [00:23<00:56, 708.55it/s]
 30%|████████████████████████████████████████                                                                                             | 17349/57580 [00:23<00:57, 704.83it/s]
 30%|████████████████████████████████████████▏                                                                                            | 17420/57580 [00:24<00:56, 705.75it/s]
 30%|████████████████████████████████████████▍                                                                                            | 17491/57580 [00:24<00:56, 705.15it/s]
 31%|████████████████████████████████████████▌                                                                                            | 17566/57580 [00:24<00:55, 717.62it/s]
 31%|████████████████████████████████████████▋                                                                                            | 17638/57580 [00:24<00:57, 696.67it/s]
 31%|████████████████████████████████████████▉                                                                                            | 17708/57580 [00:24<00:57, 694.79it/s]
 31%|█████████████████████████████████████████                                                                                            | 17780/57580 [00:24<00:56, 699.28it/s]
 31%|█████████████████████████████████████████▏                                                                                           | 17851/57580 [00:24<00:58, 679.32it/s]
 31%|█████████████████████████████████████████▍                                                                                           | 17920/57580 [00:24<00:58, 681.69it/s]
 31%|█████████████████████████████████████████▌                                                                                           | 17991/57580 [00:24<00:57, 689.39it/s]
 31%|█████████████████████████████████████████▋                                                                                           | 18061/57580 [00:24<00:57, 687.70it/s]
 31%|█████████████████████████████████████████▉                                                                                           | 18134/57580 [00:25<00:56, 699.30it/s]
 32%|██████████████████████████████████████████                                                                                           | 18205/57580 [00:25<00:56, 697.64it/s]
 32%|██████████████████████████████████████████▏                                                                                          | 18275/57580 [00:25<00:56, 690.40it/s]
 32%|██████████████████████████████████████████▍                                                                                          | 18362/57580 [00:25<00:52, 741.47it/s]
 32%|██████████████████████████████████████████▌                                                                                          | 18451/57580 [00:25<00:49, 784.75it/s]
 32%|██████████████████████████████████████████▊                                                                                          | 18530/57580 [00:25<00:50, 773.52it/s]
 32%|██████████████████████████████████████████▉                                                                                          | 18608/57580 [00:25<00:52, 737.96it/s]
 32%|███████████████████████████████████████████▏                                                                                         | 18683/57580 [00:25<00:53, 722.15it/s]
 33%|███████████████████████████████████████████▎                                                                                         | 18761/57580 [00:25<00:52, 735.68it/s]
 33%|███████████████████████████████████████████▌                                                                                         | 18840/57580 [00:26<00:51, 750.90it/s]
 33%|███████████████████████████████████████████▋                                                                                         | 18916/57580 [00:26<00:51, 748.61it/s]
 33%|███████████████████████████████████████████▊                                                                                         | 18992/57580 [00:26<00:51, 744.55it/s]
 33%|████████████████████████████████████████████                                                                                         | 19067/57580 [00:26<00:53, 715.84it/s]
 33%|████████████████████████████████████████████▏                                                                                        | 19144/57580 [00:26<00:52, 728.52it/s]
 33%|████████████████████████████████████████████▍                                                                                        | 19221/57580 [00:26<00:51, 739.67it/s]
 34%|████████████████████████████████████████████▌                                                                                        | 19296/57580 [00:26<00:53, 719.43it/s]
 34%|████████████████████████████████████████████▊                                                                                        | 19377/57580 [00:26<00:51, 744.85it/s]
 34%|████████████████████████████████████████████▉                                                                                        | 19458/57580 [00:26<00:49, 763.24it/s]
 34%|█████████████████████████████████████████████▏                                                                                       | 19539/57580 [00:26<00:49, 776.23it/s]
 34%|█████████████████████████████████████████████▎                                                                                       | 19621/57580 [00:27<00:48, 788.37it/s]
 34%|█████████████████████████████████████████████▌                                                                                       | 19700/57580 [00:27<00:49, 771.90it/s]
 34%|█████████████████████████████████████████████▋                                                                                       | 19778/57580 [00:27<00:49, 758.02it/s]
 34%|█████████████████████████████████████████████▊                                                                                       | 19854/57580 [00:27<00:50, 742.55it/s]
 35%|██████████████████████████████████████████████                                                                                       | 19936/57580 [00:27<00:49, 764.37it/s]
 35%|██████████████████████████████████████████████▏                                                                                      | 20013/57580 [00:27<00:49, 760.48it/s]
 35%|██████████████████████████████████████████████▍                                                                                      | 20095/57580 [00:27<00:48, 776.97it/s]
 35%|██████████████████████████████████████████████▌                                                                                      | 20185/57580 [00:27<00:46, 812.57it/s]
 35%|██████████████████████████████████████████████▊                                                                                      | 20275/57580 [00:27<00:44, 837.93it/s]
 35%|███████████████████████████████████████████████                                                                                      | 20365/57580 [00:27<00:43, 855.77it/s]
 36%|███████████████████████████████████████████████▏                                                                                     | 20453/57580 [00:28<00:43, 862.32it/s]
 36%|███████████████████████████████████████████████▍                                                                                     | 20540/57580 [00:28<00:45, 809.87it/s]
 36%|███████████████████████████████████████████████▋                                                                                     | 20622/57580 [00:28<00:48, 764.01it/s]
 36%|███████████████████████████████████████████████▊                                                                                     | 20700/57580 [00:28<00:49, 743.03it/s]
 36%|███████████████████████████████████████████████▉                                                                                     | 20775/57580 [00:28<00:49, 742.17it/s]
 36%|████████████████████████████████████████████████▏                                                                                    | 20850/57580 [00:28<00:51, 715.38it/s]
 36%|████████████████████████████████████████████████▎                                                                                    | 20922/57580 [00:28<00:51, 713.67it/s]
 36%|████████████████████████████████████████████████▍                                                                                    | 20994/57580 [00:28<00:51, 708.48it/s]
 37%|████████████████████████████████████████████████▋                                                                                    | 21067/57580 [00:28<00:51, 714.10it/s]
 37%|████████████████████████████████████████████████▊                                                                                    | 21140/57580 [00:29<00:50, 718.11it/s]
 37%|█████████████████████████████████████████████████                                                                                    | 21218/57580 [00:29<00:49, 735.53it/s]
 37%|█████████████████████████████████████████████████▏                                                                                   | 21298/57580 [00:29<00:48, 753.98it/s]
 37%|█████████████████████████████████████████████████▎                                                                                   | 21374/57580 [00:29<00:49, 737.42it/s]
 37%|█████████████████████████████████████████████████▌                                                                                   | 21448/57580 [00:29<00:49, 730.73it/s]
 37%|█████████████████████████████████████████████████▋                                                                                   | 21522/57580 [00:29<00:49, 730.64it/s]
 38%|█████████████████████████████████████████████████▉                                                                                   | 21596/57580 [00:29<00:49, 726.17it/s]
 38%|██████████████████████████████████████████████████                                                                                   | 21669/57580 [00:29<00:49, 724.18it/s]
 38%|██████████████████████████████████████████████████▏                                                                                  | 21742/57580 [00:29<00:49, 722.89it/s]
 38%|██████████████████████████████████████████████████▍                                                                                  | 21815/57580 [00:29<00:49, 720.15it/s]
 38%|██████████████████████████████████████████████████▌                                                                                  | 21888/57580 [00:30<00:49, 720.05it/s]
 38%|██████████████████████████████████████████████████▋                                                                                  | 21961/57580 [00:30<00:49, 715.85it/s]
 38%|██████████████████████████████████████████████████▉                                                                                  | 22033/57580 [00:30<00:51, 692.86it/s]
 38%|███████████████████████████████████████████████████                                                                                  | 22103/57580 [00:30<00:51, 682.28it/s]
 39%|███████████████████████████████████████████████████▏                                                                                 | 22172/57580 [00:30<00:52, 673.76it/s]
 39%|███████████████████████████████████████████████████▍                                                                                 | 22243/57580 [00:30<00:51, 683.40it/s]
 39%|███████████████████████████████████████████████████▌                                                                                 | 22312/57580 [00:30<00:52, 676.76it/s]
 39%|███████████████████████████████████████████████████▋                                                                                 | 22387/57580 [00:30<00:50, 695.33it/s]
 39%|███████████████████████████████████████████████████▉                                                                                 | 22464/57580 [00:30<00:49, 715.46it/s]
 39%|████████████████████████████████████████████████████                                                                                 | 22540/57580 [00:31<00:48, 725.91it/s]
 39%|████████████████████████████████████████████████████▏                                                                                | 22613/57580 [00:31<00:48, 724.34it/s]
 39%|████████████████████████████████████████████████████▍                                                                                | 22686/57580 [00:31<00:48, 718.77it/s]
 40%|████████████████████████████████████████████████████▌                                                                                | 22761/57580 [00:31<00:47, 727.40it/s]
 40%|████████████████████████████████████████████████████▋                                                                                | 22835/57580 [00:31<00:47, 730.26it/s]
 40%|████████████████████████████████████████████████████▉                                                                                | 22911/57580 [00:31<00:47, 737.33it/s]
 40%|█████████████████████████████████████████████████████                                                                                | 22987/57580 [00:31<00:46, 743.43it/s]
 40%|█████████████████████████████████████████████████████▎                                                                               | 23063/57580 [00:31<00:46, 747.66it/s]
 40%|█████████████████████████████████████████████████████▍                                                                               | 23138/57580 [00:31<00:47, 728.03it/s]
 40%|█████████████████████████████████████████████████████▋                                                                               | 23216/57580 [00:31<00:46, 742.63it/s]
 40%|█████████████████████████████████████████████████████▊                                                                               | 23291/57580 [00:32<00:47, 729.01it/s]
 41%|█████████████████████████████████████████████████████▉                                                                               | 23365/57580 [00:32<00:47, 724.54it/s]
 41%|██████████████████████████████████████████████████████▏                                                                              | 23444/57580 [00:32<00:45, 743.06it/s]
 41%|██████████████████████████████████████████████████████▎                                                                              | 23524/57580 [00:32<00:44, 756.93it/s]
 41%|██████████████████████████████████████████████████████▌                                                                              | 23605/57580 [00:32<00:44, 771.78it/s]
 41%|██████████████████████████████████████████████████████▋                                                                              | 23683/57580 [00:32<00:45, 751.20it/s]
 41%|██████████████████████████████████████████████████████▉                                                                              | 23759/57580 [00:32<00:46, 733.61it/s]
 41%|███████████████████████████████████████████████████████                                                                              | 23833/57580 [00:32<00:46, 718.89it/s]
 42%|███████████████████████████████████████████████████████▏                                                                             | 23906/57580 [00:32<00:46, 719.12it/s]
 42%|███████████████████████████████████████████████████████▍                                                                             | 23979/57580 [00:32<00:47, 711.18it/s]
 42%|███████████████████████████████████████████████████████▌                                                                             | 24051/57580 [00:33<00:47, 708.96it/s]
 42%|███████████████████████████████████████████████████████▋                                                                             | 24123/57580 [00:33<00:47, 709.48it/s]
 42%|███████████████████████████████████████████████████████▉                                                                             | 24194/57580 [00:33<00:47, 702.50it/s]
 42%|████████████████████████████████████████████████████████                                                                             | 24266/57580 [00:33<00:47, 703.33it/s]
 42%|████████████████████████████████████████████████████████▏                                                                            | 24337/57580 [00:33<00:48, 686.14it/s]
 42%|████████████████████████████████████████████████████████▎                                                                            | 24406/57580 [00:33<00:48, 682.53it/s]
 43%|████████████████████████████████████████████████████████▌                                                                            | 24475/57580 [00:33<00:48, 678.07it/s]
 43%|████████████████████████████████████████████████████████▋                                                                            | 24548/57580 [00:33<00:47, 692.40it/s]
 43%|████████████████████████████████████████████████████████▊                                                                            | 24620/57580 [00:33<00:47, 699.69it/s]
 43%|█████████████████████████████████████████████████████████                                                                            | 24692/57580 [00:34<00:46, 704.82it/s]
 43%|█████████████████████████████████████████████████████████▏                                                                           | 24763/57580 [00:34<00:46, 699.42it/s]
 43%|█████████████████████████████████████████████████████████▎                                                                           | 24834/57580 [00:34<00:46, 701.50it/s]
 43%|█████████████████████████████████████████████████████████▌                                                                           | 24905/57580 [00:34<00:47, 694.98it/s]
 43%|█████████████████████████████████████████████████████████▋                                                                           | 24978/57580 [00:34<00:46, 702.49it/s]
 44%|█████████████████████████████████████████████████████████▊                                                                           | 25050/57580 [00:34<00:46, 706.83it/s]
 44%|██████████████████████████████████████████████████████████                                                                           | 25121/57580 [00:34<00:46, 700.48it/s]
 44%|██████████████████████████████████████████████████████████▏                                                                          | 25193/57580 [00:34<00:45, 704.60it/s]
 44%|██████████████████████████████████████████████████████████▎                                                                          | 25265/57580 [00:34<00:45, 706.49it/s]
 44%|██████████████████████████████████████████████████████████▌                                                                          | 25337/57580 [00:34<00:45, 709.94it/s]
 44%|██████████████████████████████████████████████████████████▋                                                                          | 25409/57580 [00:35<00:45, 707.69it/s]
 44%|██████████████████████████████████████████████████████████▊                                                                          | 25484/57580 [00:35<00:44, 719.25it/s]
 44%|███████████████████████████████████████████████████████████                                                                          | 25561/57580 [00:35<00:43, 733.64it/s]
 45%|███████████████████████████████████████████████████████████▏                                                                         | 25635/57580 [00:35<00:44, 717.97it/s]
 45%|███████████████████████████████████████████████████████████▍                                                                         | 25707/57580 [00:35<00:45, 697.43it/s]
 45%|███████████████████████████████████████████████████████████▌                                                                         | 25781/57580 [00:35<00:44, 706.99it/s]
 45%|███████████████████████████████████████████████████████████▋                                                                         | 25854/57580 [00:35<00:44, 712.97it/s]
 45%|███████████████████████████████████████████████████████████▉                                                                         | 25931/57580 [00:35<00:43, 726.96it/s]
 45%|████████████████████████████████████████████████████████████                                                                         | 26012/57580 [00:35<00:42, 748.41it/s]
 45%|████████████████████████████████████████████████████████████▎                                                                        | 26094/57580 [00:35<00:41, 766.23it/s]
 45%|████████████████████████████████████████████████████████████▍                                                                        | 26174/57580 [00:36<00:40, 775.53it/s]
 46%|████████████████████████████████████████████████████████████▋                                                                        | 26252/57580 [00:36<00:40, 766.55it/s]
 46%|████████████████████████████████████████████████████████████▊                                                                        | 26329/57580 [00:36<00:41, 749.74it/s]
 46%|████████████████████████████████████████████████████████████▉                                                                        | 26405/57580 [00:36<00:41, 750.96it/s]
 46%|█████████████████████████████████████████████████████████████▏                                                                       | 26484/57580 [00:36<00:40, 761.62it/s]
 46%|█████████████████████████████████████████████████████████████▎                                                                       | 26563/57580 [00:36<00:40, 769.29it/s]
 46%|█████████████████████████████████████████████████████████████▌                                                                       | 26643/57580 [00:36<00:39, 777.59it/s]
 46%|█████████████████████████████████████████████████████████████▋                                                                       | 26721/57580 [00:36<00:40, 764.59it/s]
 47%|█████████████████████████████████████████████████████████████▉                                                                       | 26798/57580 [00:36<00:41, 737.11it/s]
 47%|██████████████████████████████████████████████████████████████                                                                       | 26872/57580 [00:37<00:42, 726.74it/s]
 47%|██████████████████████████████████████████████████████████████▏                                                                      | 26945/57580 [00:37<00:42, 716.77it/s]
 47%|██████████████████████████████████████████████████████████████▍                                                                      | 27017/57580 [00:37<00:43, 708.57it/s]
 47%|██████████████████████████████████████████████████████████████▌                                                                      | 27088/57580 [00:37<00:43, 700.09it/s]
 47%|██████████████████████████████████████████████████████████████▋                                                                      | 27159/57580 [00:37<00:44, 686.04it/s]
 47%|██████████████████████████████████████████████████████████████▉                                                                      | 27235/57580 [00:37<00:43, 704.67it/s]
 47%|███████████████████████████████████████████████████████████████                                                                      | 27306/57580 [00:37<00:43, 693.42it/s]
 48%|███████████████████████████████████████████████████████████████▎                                                                     | 27386/57580 [00:37<00:41, 723.58it/s]
 48%|███████████████████████████████████████████████████████████████▍                                                                     | 27465/57580 [00:37<00:40, 742.15it/s]
 48%|███████████████████████████████████████████████████████████████▌                                                                     | 27545/57580 [00:37<00:39, 757.08it/s]
 48%|███████████████████████████████████████████████████████████████▊                                                                     | 27625/57580 [00:38<00:38, 769.10it/s]
 48%|███████████████████████████████████████████████████████████████▉                                                                     | 27703/57580 [00:38<00:38, 768.87it/s]
 48%|████████████████████████████████████████████████████████████████▏                                                                    | 27780/57580 [00:38<00:39, 745.98it/s]
 48%|████████████████████████████████████████████████████████████████▎                                                                    | 27855/57580 [00:38<00:41, 721.39it/s]
 49%|████████████████████████████████████████████████████████████████▌                                                                    | 27928/57580 [00:38<00:41, 715.24it/s]
 49%|████████████████████████████████████████████████████████████████▋                                                                    | 28000/57580 [00:38<00:41, 715.93it/s]
 49%|████████████████████████████████████████████████████████████████▊                                                                    | 28073/57580 [00:38<00:41, 719.33it/s]
 49%|█████████████████████████████████████████████████████████████████                                                                    | 28152/57580 [00:38<00:39, 739.07it/s]
 49%|█████████████████████████████████████████████████████████████████▏                                                                   | 28229/57580 [00:38<00:39, 747.27it/s]
 49%|█████████████████████████████████████████████████████████████████▍                                                                   | 28304/57580 [00:38<00:39, 740.56it/s]
 49%|█████████████████████████████████████████████████████████████████▌                                                                   | 28379/57580 [00:39<00:39, 734.75it/s]
 49%|█████████████████████████████████████████████████████████████████▋                                                                   | 28453/57580 [00:39<00:40, 720.76it/s]
 50%|█████████████████████████████████████████████████████████████████▉                                                                   | 28526/57580 [00:39<00:41, 706.01it/s]
 50%|██████████████████████████████████████████████████████████████████                                                                   | 28597/57580 [00:39<00:41, 696.10it/s]
 50%|██████████████████████████████████████████████████████████████████▏                                                                  | 28667/57580 [00:39<00:41, 696.52it/s]
 50%|██████████████████████████████████████████████████████████████████▍                                                                  | 28740/57580 [00:39<00:40, 705.47it/s]
 50%|██████████████████████████████████████████████████████████████████▌                                                                  | 28817/57580 [00:39<00:39, 724.04it/s]
 50%|██████████████████████████████████████████████████████████████████▋                                                                  | 28897/57580 [00:39<00:38, 745.78it/s]
 50%|██████████████████████████████████████████████████████████████████▉                                                                  | 28976/57580 [00:39<00:37, 758.30it/s]
 50%|███████████████████████████████████████████████████████████████████                                                                  | 29056/57580 [00:39<00:37, 770.04it/s]
 51%|███████████████████████████████████████████████████████████████████▎                                                                 | 29135/57580 [00:40<00:36, 775.28it/s]
 51%|███████████████████████████████████████████████████████████████████▍                                                                 | 29213/57580 [00:40<00:37, 755.28it/s]
 51%|███████████████████████████████████████████████████████████████████▋                                                                 | 29289/57580 [00:40<00:37, 750.59it/s]
 51%|███████████████████████████████████████████████████████████████████▊                                                                 | 29365/57580 [00:40<00:38, 738.11it/s]
 51%|████████████████████████████████████████████████████████████████████                                                                 | 29443/57580 [00:40<00:37, 749.66it/s]
 51%|████████████████████████████████████████████████████████████████████▏                                                                | 29519/57580 [00:40<00:38, 730.43it/s]
 51%|████████████████████████████████████████████████████████████████████▎                                                                | 29593/57580 [00:40<00:38, 721.59it/s]
 52%|████████████████████████████████████████████████████████████████████▌                                                                | 29666/57580 [00:40<00:39, 714.99it/s]
 52%|████████████████████████████████████████████████████████████████████▋                                                                | 29746/57580 [00:40<00:37, 738.98it/s]
 52%|████████████████████████████████████████████████████████████████████▉                                                                | 29835/57580 [00:41<00:35, 782.55it/s]
 52%|█████████████████████████████████████████████████████████████████████                                                                | 29919/57580 [00:41<00:34, 798.86it/s]
 52%|█████████████████████████████████████████████████████████████████████▎                                                               | 30000/57580 [00:41<00:35, 773.71it/s]
 52%|█████████████████████████████████████████████████████████████████████▍                                                               | 30078/57580 [00:41<00:36, 752.54it/s]
 52%|█████████████████████████████████████████████████████████████████████▋                                                               | 30154/57580 [00:41<00:37, 730.86it/s]
 52%|█████████████████████████████████████████████████████████████████████▊                                                               | 30228/57580 [00:41<00:38, 718.33it/s]
 53%|█████████████████████████████████████████████████████████████████████▉                                                               | 30301/57580 [00:41<00:37, 720.57it/s]
 53%|██████████████████████████████████████████████████████████████████████▏                                                              | 30374/57580 [00:41<00:37, 720.67it/s]
 53%|██████████████████████████████████████████████████████████████████████▎                                                              | 30447/57580 [00:41<00:37, 718.16it/s]
 53%|██████████████████████████████████████████████████████████████████████▍                                                              | 30519/57580 [00:41<00:38, 703.46it/s]
 53%|██████████████████████████████████████████████████████████████████████▋                                                              | 30590/57580 [00:42<00:39, 688.58it/s]
 53%|██████████████████████████████████████████████████████████████████████▊                                                              | 30660/57580 [00:42<00:39, 690.04it/s]
 53%|██████████████████████████████████████████████████████████████████████▉                                                              | 30731/57580 [00:42<00:38, 693.13it/s]
 53%|███████████████████████████████████████████████████████████████████████▏                                                             | 30801/57580 [00:42<00:38, 688.32it/s]
 54%|███████████████████████████████████████████████████████████████████████▎                                                             | 30872/57580 [00:42<00:38, 693.95it/s]
 54%|███████████████████████████████████████████████████████████████████████▍                                                             | 30945/57580 [00:42<00:37, 703.83it/s]
 54%|███████████████████████████████████████████████████████████████████████▋                                                             | 31016/57580 [00:42<00:37, 705.04it/s]
 54%|███████████████████████████████████████████████████████████████████████▊                                                             | 31105/57580 [00:42<00:34, 758.34it/s]
 54%|████████████████████████████████████████████████████████████████████████                                                             | 31190/57580 [00:42<00:33, 784.87it/s]
 54%|████████████████████████████████████████████████████████████████████████▏                                                            | 31279/57580 [00:43<00:32, 815.66it/s]
 54%|████████████████████████████████████████████████████████████████████████▍                                                            | 31368/57580 [00:43<00:31, 834.70it/s]
 55%|████████████████████████████████████████████████████████████████████████▋                                                            | 31452/57580 [00:43<00:32, 794.25it/s]
 55%|████████████████████████████████████████████████████████████████████████▊                                                            | 31532/57580 [00:43<00:34, 758.03it/s]
 55%|█████████████████████████████████████████████████████████████████████████                                                            | 31609/57580 [00:43<00:35, 733.61it/s]
 55%|█████████████████████████████████████████████████████████████████████████▏                                                           | 31683/57580 [00:43<00:35, 734.79it/s]
 55%|█████████████████████████████████████████████████████████████████████████▎                                                           | 31757/57580 [00:43<00:35, 723.05it/s]
 55%|█████████████████████████████████████████████████████████████████████████▌                                                           | 31832/57580 [00:43<00:35, 730.06it/s]
 55%|█████████████████████████████████████████████████████████████████████████▋                                                           | 31908/57580 [00:43<00:34, 735.74it/s]
 56%|█████████████████████████████████████████████████████████████████████████▊                                                           | 31982/57580 [00:43<00:35, 723.54it/s]
 56%|██████████████████████████████████████████████████████████████████████████                                                           | 32055/57580 [00:44<00:35, 722.31it/s]
 56%|██████████████████████████████████████████████████████████████████████████▏                                                          | 32132/57580 [00:44<00:34, 735.56it/s]
 56%|██████████████████████████████████████████████████████████████████████████▍                                                          | 32206/57580 [00:44<00:34, 725.08it/s]
 56%|██████████████████████████████████████████████████████████████████████████▌                                                          | 32279/57580 [00:44<00:35, 716.36it/s]
 56%|██████████████████████████████████████████████████████████████████████████▋                                                          | 32352/57580 [00:44<00:35, 717.64it/s]
 56%|██████████████████████████████████████████████████████████████████████████▉                                                          | 32424/57580 [00:44<00:35, 703.13it/s]
 56%|███████████████████████████████████████████████████████████████████████████                                                          | 32495/57580 [00:44<00:35, 702.31it/s]
 57%|███████████████████████████████████████████████████████████████████████████▏                                                         | 32566/57580 [00:44<00:35, 697.56it/s]
 57%|███████████████████████████████████████████████████████████████████████████▍                                                         | 32644/57580 [00:44<00:34, 718.88it/s]
 57%|███████████████████████████████████████████████████████████████████████████▌                                                         | 32716/57580 [00:45<00:34, 717.25it/s]
 57%|███████████████████████████████████████████████████████████████████████████▋                                                         | 32788/57580 [00:45<00:34, 708.90it/s]
 57%|███████████████████████████████████████████████████████████████████████████▉                                                         | 32859/57580 [00:45<00:35, 700.31it/s]
 57%|████████████████████████████████████████████████████████████████████████████                                                         | 32930/57580 [00:45<00:35, 690.40it/s]
 57%|████████████████████████████████████████████████████████████████████████████▏                                                        | 33000/57580 [00:45<00:35, 686.58it/s]
 57%|████████████████████████████████████████████████████████████████████████████▍                                                        | 33071/57580 [00:45<00:35, 692.55it/s]
 58%|████████████████████████████████████████████████████████████████████████████▌                                                        | 33141/57580 [00:45<00:35, 687.67it/s]
 58%|████████████████████████████████████████████████████████████████████████████▋                                                        | 33211/57580 [00:45<00:35, 688.35it/s]
 58%|████████████████████████████████████████████████████████████████████████████▊                                                        | 33280/57580 [00:45<00:35, 684.10it/s]
 58%|█████████████████████████████████████████████████████████████████████████████                                                        | 33357/57580 [00:45<00:34, 708.77it/s]
 58%|█████████████████████████████████████████████████████████████████████████████▏                                                       | 33436/57580 [00:46<00:32, 732.12it/s]
 58%|█████████████████████████████████████████████████████████████████████████████▍                                                       | 33513/57580 [00:46<00:32, 740.45it/s]
 58%|█████████████████████████████████████████████████████████████████████████████▌                                                       | 33588/57580 [00:46<00:33, 725.31it/s]
 58%|█████████████████████████████████████████████████████████████████████████████▊                                                       | 33661/57580 [00:46<00:35, 677.90it/s]
 59%|█████████████████████████████████████████████████████████████████████████████▉                                                       | 33730/57580 [00:46<00:36, 652.72it/s]
 59%|██████████████████████████████████████████████████████████████████████████████                                                       | 33796/57580 [00:46<00:36, 654.08it/s]
 59%|██████████████████████████████████████████████████████████████████████████████▏                                                      | 33864/57580 [00:46<00:35, 660.75it/s]
 59%|██████████████████████████████████████████████████████████████████████████████▍                                                      | 33932/57580 [00:46<00:35, 665.71it/s]
 59%|██████████████████████████████████████████████████████████████████████████████▌                                                      | 34001/57580 [00:46<00:35, 672.10it/s]
 59%|██████████████████████████████████████████████████████████████████████████████▋                                                      | 34072/57580 [00:46<00:34, 681.28it/s]
 59%|██████████████████████████████████████████████████████████████████████████████▊                                                      | 34141/57580 [00:47<00:35, 665.43it/s]
 59%|███████████████████████████████████████████████████████████████████████████████                                                      | 34208/57580 [00:47<00:36, 645.23it/s]
 60%|███████████████████████████████████████████████████████████████████████████████▏                                                     | 34278/57580 [00:47<00:35, 658.50it/s]
 60%|███████████████████████████████████████████████████████████████████████████████▎                                                     | 34352/57580 [00:47<00:34, 681.32it/s]
 60%|███████████████████████████████████████████████████████████████████████████████▌                                                     | 34426/57580 [00:47<00:33, 695.70it/s]
 60%|███████████████████████████████████████████████████████████████████████████████▋                                                     | 34500/57580 [00:47<00:32, 707.10it/s]
 60%|███████████████████████████████████████████████████████████████████████████████▊                                                     | 34574/57580 [00:47<00:32, 716.01it/s]
 60%|████████████████████████████████████████████████████████████████████████████████                                                     | 34650/57580 [00:47<00:31, 725.99it/s]
 60%|████████████████████████████████████████████████████████████████████████████████▏                                                    | 34724/57580 [00:47<00:31, 729.50it/s]
 60%|████████████████████████████████████████████████████████████████████████████████▍                                                    | 34801/57580 [00:48<00:30, 740.90it/s]
 61%|████████████████████████████████████████████████████████████████████████████████▌                                                    | 34877/57580 [00:48<00:30, 745.85it/s]
 61%|████████████████████████████████████████████████████████████████████████████████▋                                                    | 34952/57580 [00:48<00:30, 737.57it/s]
 61%|████████████████████████████████████████████████████████████████████████████████▉                                                    | 35028/57580 [00:48<00:30, 741.46it/s]
 61%|█████████████████████████████████████████████████████████████████████████████████                                                    | 35106/57580 [00:48<00:29, 751.71it/s]
 61%|█████████████████████████████████████████████████████████████████████████████████▎                                                   | 35188/57580 [00:48<00:29, 771.28it/s]
 61%|█████████████████████████████████████████████████████████████████████████████████▍                                                   | 35273/57580 [00:48<00:28, 794.04it/s]
 61%|█████████████████████████████████████████████████████████████████████████████████▋                                                   | 35353/57580 [00:48<00:28, 785.77it/s]
 62%|█████████████████████████████████████████████████████████████████████████████████▊                                                   | 35432/57580 [00:48<00:28, 763.99it/s]
 62%|██████████████████████████████████████████████████████████████████████████████████                                                   | 35509/57580 [00:48<00:29, 747.63it/s]
 62%|██████████████████████████████████████████████████████████████████████████████████▏                                                  | 35584/57580 [00:49<00:30, 730.40it/s]
 62%|██████████████████████████████████████████████████████████████████████████████████▎                                                  | 35658/57580 [00:49<00:30, 725.78it/s]
 62%|██████████████████████████████████████████████████████████████████████████████████▌                                                  | 35731/57580 [00:49<00:30, 717.93it/s]
 62%|██████████████████████████████████████████████████████████████████████████████████▋                                                  | 35803/57580 [00:49<00:31, 699.65it/s]
 62%|██████████████████████████████████████████████████████████████████████████████████▊                                                  | 35874/57580 [00:49<00:31, 699.20it/s]
 62%|███████████████████████████████████████████████████████████████████████████████████                                                  | 35945/57580 [00:49<00:30, 701.36it/s]
 63%|███████████████████████████████████████████████████████████████████████████████████▏                                                 | 36024/57580 [00:49<00:29, 723.12it/s]
 63%|███████████████████████████████████████████████████████████████████████████████████▍                                                 | 36102/57580 [00:49<00:29, 739.16it/s]
 63%|███████████████████████████████████████████████████████████████████████████████████▌                                                 | 36176/57580 [00:49<00:29, 734.45it/s]
 63%|███████████████████████████████████████████████████████████████████████████████████▋                                                 | 36250/57580 [00:49<00:29, 733.09it/s]
 63%|███████████████████████████████████████████████████████████████████████████████████▉                                                 | 36324/57580 [00:50<00:29, 721.54it/s]
 63%|████████████████████████████████████████████████████████████████████████████████████                                                 | 36397/57580 [00:50<00:29, 719.04it/s]
 63%|████████████████████████████████████████████████████████████████████████████████████▏                                                | 36469/57580 [00:50<00:29, 708.07it/s]
 63%|████████████████████████████████████████████████████████████████████████████████████▍                                                | 36540/57580 [00:50<00:30, 693.73it/s]
 64%|████████████████████████████████████████████████████████████████████████████████████▌                                                | 36610/57580 [00:50<00:30, 684.96it/s]
 64%|████████████████████████████████████████████████████████████████████████████████████▋                                                | 36683/57580 [00:50<00:29, 697.32it/s]
 64%|████████████████████████████████████████████████████████████████████████████████████▉                                                | 36753/57580 [00:50<00:29, 695.19it/s]
 64%|█████████████████████████████████████████████████████████████████████████████████████                                                | 36823/57580 [00:50<00:29, 696.02it/s]
 64%|█████████████████████████████████████████████████████████████████████████████████████▏                                               | 36893/57580 [00:50<00:29, 694.45it/s]
 64%|█████████████████████████████████████████████████████████████████████████████████████▍                                               | 36963/57580 [00:51<00:29, 695.46it/s]
 64%|█████████████████████████████████████████████████████████████████████████████████████▌                                               | 37035/57580 [00:51<00:29, 702.15it/s]
 64%|█████████████████████████████████████████████████████████████████████████████████████▋                                               | 37107/57580 [00:51<00:28, 706.75it/s]
 65%|█████████████████████████████████████████████████████████████████████████████████████▊                                               | 37178/57580 [00:51<00:28, 706.54it/s]
 65%|██████████████████████████████████████████████████████████████████████████████████████                                               | 37249/57580 [00:51<00:28, 702.44it/s]
 65%|██████████████████████████████████████████████████████████████████████████████████████▏                                              | 37326/57580 [00:51<00:28, 721.76it/s]
 65%|██████████████████████████████████████████████████████████████████████████████████████▍                                              | 37399/57580 [00:51<00:28, 719.14it/s]
 65%|██████████████████████████████████████████████████████████████████████████████████████▌                                              | 37471/57580 [00:51<00:28, 712.28it/s]
 65%|██████████████████████████████████████████████████████████████████████████████████████▋                                              | 37543/57580 [00:51<00:28, 709.42it/s]
 65%|██████████████████████████████████████████████████████████████████████████████████████▉                                              | 37615/57580 [00:51<00:28, 711.86it/s]
 65%|███████████████████████████████████████████████████████████████████████████████████████                                              | 37687/57580 [00:52<00:27, 713.33it/s]
 66%|███████████████████████████████████████████████████████████████████████████████████████▏                                             | 37759/57580 [00:52<00:27, 713.30it/s]
 66%|███████████████████████████████████████████████████████████████████████████████████████▍                                             | 37831/57580 [00:52<00:27, 710.39it/s]
 66%|███████████████████████████████████████████████████████████████████████████████████████▌                                             | 37903/57580 [00:52<00:28, 699.82it/s]
 66%|███████████████████████████████████████████████████████████████████████████████████████▋                                             | 37974/57580 [00:52<00:28, 697.85it/s]
 66%|███████████████████████████████████████████████████████████████████████████████████████▉                                             | 38047/57580 [00:52<00:27, 706.63it/s]
 66%|████████████████████████████████████████████████████████████████████████████████████████                                             | 38118/57580 [00:52<00:27, 704.80it/s]
 66%|████████████████████████████████████████████████████████████████████████████████████████▏                                            | 38189/57580 [00:52<00:27, 706.09it/s]
 66%|████████████████████████████████████████████████████████████████████████████████████████▍                                            | 38262/57580 [00:52<00:27, 710.31it/s]
 67%|████████████████████████████████████████████████████████████████████████████████████████▌                                            | 38334/57580 [00:52<00:27, 712.71it/s]
 67%|████████████████████████████████████████████████████████████████████████████████████████▋                                            | 38406/57580 [00:53<00:27, 692.27it/s]
 67%|████████████████████████████████████████████████████████████████████████████████████████▉                                            | 38478/57580 [00:53<00:27, 699.35it/s]
 67%|█████████████████████████████████████████████████████████████████████████████████████████                                            | 38549/57580 [00:53<00:27, 697.77it/s]
 67%|█████████████████████████████████████████████████████████████████████████████████████████▏                                           | 38619/57580 [00:53<00:27, 683.61it/s]
 67%|█████████████████████████████████████████████████████████████████████████████████████████▍                                           | 38698/57580 [00:53<00:26, 713.28it/s]
 67%|█████████████████████████████████████████████████████████████████████████████████████████▌                                           | 38782/57580 [00:53<00:25, 749.80it/s]
 67%|█████████████████████████████████████████████████████████████████████████████████████████▊                                           | 38858/57580 [00:53<00:25, 748.20it/s]
 68%|█████████████████████████████████████████████████████████████████████████████████████████▉                                           | 38933/57580 [00:53<00:25, 741.30it/s]
 68%|██████████████████████████████████████████████████████████████████████████████████████████                                           | 39008/57580 [00:53<00:26, 711.47it/s]
 68%|██████████████████████████████████████████████████████████████████████████████████████████▎                                          | 39080/57580 [00:53<00:26, 705.19it/s]
 68%|██████████████████████████████████████████████████████████████████████████████████████████▍                                          | 39163/57580 [00:54<00:24, 738.51it/s]
 68%|██████████████████████████████████████████████████████████████████████████████████████████▋                                          | 39248/57580 [00:54<00:23, 770.34it/s]
 68%|██████████████████████████████████████████████████████████████████████████████████████████▊                                          | 39326/57580 [00:54<00:23, 763.46it/s]
 68%|███████████████████████████████████████████████████████████████████████████████████████████                                          | 39403/57580 [00:54<00:24, 730.46it/s]
 69%|███████████████████████████████████████████████████████████████████████████████████████████▏                                         | 39477/57580 [00:54<00:25, 716.87it/s]
 69%|███████████████████████████████████████████████████████████████████████████████████████████▎                                         | 39549/57580 [00:54<00:25, 706.95it/s]
 69%|███████████████████████████████████████████████████████████████████████████████████████████▌                                         | 39620/57580 [00:54<00:26, 689.00it/s]
 69%|███████████████████████████████████████████████████████████████████████████████████████████▋                                         | 39693/57580 [00:54<00:25, 698.88it/s]
 69%|███████████████████████████████████████████████████████████████████████████████████████████▊                                         | 39771/57580 [00:54<00:24, 721.49it/s]
 69%|████████████████████████████████████████████████████████████████████████████████████████████                                         | 39851/57580 [00:55<00:23, 743.60it/s]
 69%|████████████████████████████████████████████████████████████████████████████████████████████▏                                        | 39932/57580 [00:55<00:23, 762.24it/s]
 69%|████████████████████████████████████████████████████████████████████████████████████████████▍                                        | 40009/57580 [00:55<00:23, 747.95it/s]
 70%|████████████████████████████████████████████████████████████████████████████████████████████▌                                        | 40084/57580 [00:55<00:24, 722.33it/s]
 70%|████████████████████████████████████████████████████████████████████████████████████████████▊                                        | 40157/57580 [00:55<00:24, 703.63it/s]
 70%|████████████████████████████████████████████████████████████████████████████████████████████▉                                        | 40228/57580 [00:55<00:24, 698.15it/s]
 70%|█████████████████████████████████████████████████████████████████████████████████████████████                                        | 40298/57580 [00:55<00:25, 686.55it/s]
 70%|█████████████████████████████████████████████████████████████████████████████████████████████▏                                       | 40369/57580 [00:55<00:24, 691.62it/s]
 70%|█████████████████████████████████████████████████████████████████████████████████████████████▍                                       | 40439/57580 [00:55<00:24, 691.09it/s]
 70%|█████████████████████████████████████████████████████████████████████████████████████████████▌                                       | 40509/57580 [00:55<00:24, 692.93it/s]
 70%|█████████████████████████████████████████████████████████████████████████████████████████████▋                                       | 40580/57580 [00:56<00:24, 695.22it/s]
 71%|█████████████████████████████████████████████████████████████████████████████████████████████▉                                       | 40658/57580 [00:56<00:23, 719.44it/s]
 71%|██████████████████████████████████████████████████████████████████████████████████████████████                                       | 40732/57580 [00:56<00:23, 722.83it/s]
 71%|██████████████████████████████████████████████████████████████████████████████████████████████▎                                      | 40805/57580 [00:56<00:23, 713.68it/s]
 71%|██████████████████████████████████████████████████████████████████████████████████████████████▍                                      | 40877/57580 [00:56<00:23, 706.20it/s]
 71%|██████████████████████████████████████████████████████████████████████████████████████████████▌                                      | 40948/57580 [00:56<00:23, 700.51it/s]
 71%|██████████████████████████████████████████████████████████████████████████████████████████████▋                                      | 41019/57580 [00:56<00:23, 698.28it/s]
 71%|██████████████████████████████████████████████████████████████████████████████████████████████▉                                      | 41090/57580 [00:56<00:23, 700.70it/s]
 71%|███████████████████████████████████████████████████████████████████████████████████████████████                                      | 41164/57580 [00:56<00:23, 711.37it/s]
 72%|███████████████████████████████████████████████████████████████████████████████████████████████▎                                     | 41244/57580 [00:56<00:22, 737.03it/s]
 72%|███████████████████████████████████████████████████████████████████████████████████████████████▍                                     | 41325/57580 [00:57<00:21, 757.94it/s]
 72%|███████████████████████████████████████████████████████████████████████████████████████████████▋                                     | 41401/57580 [00:57<00:21, 751.12it/s]
 72%|███████████████████████████████████████████████████████████████████████████████████████████████▊                                     | 41477/57580 [00:57<00:21, 739.74it/s]
 72%|███████████████████████████████████████████████████████████████████████████████████████████████▉                                     | 41552/57580 [00:57<00:21, 730.94it/s]
 72%|████████████████████████████████████████████████████████████████████████████████████████████████▏                                    | 41626/57580 [00:57<00:22, 712.06it/s]
 72%|████████████████████████████████████████████████████████████████████████████████████████████████▎                                    | 41698/57580 [00:57<00:22, 708.36it/s]
 73%|████████████████████████████████████████████████████████████████████████████████████████████████▍                                    | 41771/57580 [00:57<00:22, 713.84it/s]
 73%|████████████████████████████████████████████████████████████████████████████████████████████████▋                                    | 41845/57580 [00:57<00:21, 720.68it/s]
 73%|████████████████████████████████████████████████████████████████████████████████████████████████▊                                    | 41918/57580 [00:57<00:21, 714.33it/s]
 73%|████████████████████████████████████████████████████████████████████████████████████████████████▉                                    | 41990/57580 [00:58<00:21, 712.97it/s]
 73%|█████████████████████████████████████████████████████████████████████████████████████████████████▏                                   | 42062/57580 [00:58<00:21, 710.04it/s]
 73%|█████████████████████████████████████████████████████████████████████████████████████████████████▎                                   | 42135/57580 [00:58<00:21, 711.83it/s]
 73%|█████████████████████████████████████████████████████████████████████████████████████████████████▍                                   | 42207/57580 [00:58<00:21, 703.16it/s]
 73%|█████████████████████████████████████████████████████████████████████████████████████████████████▋                                   | 42278/57580 [00:58<00:21, 698.32it/s]
 74%|█████████████████████████████████████████████████████████████████████████████████████████████████▊                                   | 42351/57580 [00:58<00:21, 706.90it/s]
 74%|█████████████████████████████████████████████████████████████████████████████████████████████████▉                                   | 42426/57580 [00:58<00:21, 718.87it/s]
 74%|██████████████████████████████████████████████████████████████████████████████████████████████████▏                                  | 42499/57580 [00:58<00:20, 719.22it/s]
 74%|██████████████████████████████████████████████████████████████████████████████████████████████████▎                                  | 42571/57580 [00:58<00:21, 706.33it/s]
 74%|██████████████████████████████████████████████████████████████████████████████████████████████████▍                                  | 42642/57580 [00:58<00:21, 702.00it/s]
 74%|██████████████████████████████████████████████████████████████████████████████████████████████████▋                                  | 42713/57580 [00:59<00:21, 693.49it/s]
 74%|██████████████████████████████████████████████████████████████████████████████████████████████████▊                                  | 42784/57580 [00:59<00:21, 697.44it/s]
 74%|██████████████████████████████████████████████████████████████████████████████████████████████████▉                                  | 42855/57580 [00:59<00:21, 701.07it/s]
 75%|███████████████████████████████████████████████████████████████████████████████████████████████████▏                                 | 42926/57580 [00:59<00:20, 698.88it/s]
 75%|███████████████████████████████████████████████████████████████████████████████████████████████████▎                                 | 42996/57580 [00:59<00:21, 688.22it/s]
 75%|███████████████████████████████████████████████████████████████████████████████████████████████████▍                                 | 43070/57580 [00:59<00:20, 702.80it/s]
 75%|███████████████████████████████████████████████████████████████████████████████████████████████████▋                                 | 43146/57580 [00:59<00:20, 718.89it/s]
 75%|███████████████████████████████████████████████████████████████████████████████████████████████████▊                                 | 43226/57580 [00:59<00:19, 742.05it/s]
 75%|████████████████████████████████████████████████████████████████████████████████████████████████████                                 | 43306/57580 [00:59<00:18, 758.35it/s]
 75%|████████████████████████████████████████████████████████████████████████████████████████████████████▏                                | 43386/57580 [00:59<00:18, 769.94it/s]
 75%|████████████████████████████████████████████████████████████████████████████████████████████████████▍                                | 43465/57580 [01:00<00:18, 775.15it/s]
 76%|████████████████████████████████████████████████████████████████████████████████████████████████████▌                                | 43543/57580 [01:00<00:18, 753.34it/s]
 76%|████████████████████████████████████████████████████████████████████████████████████████████████████▊                                | 43619/57580 [01:00<00:18, 739.06it/s]
 76%|████████████████████████████████████████████████████████████████████████████████████████████████████▉                                | 43694/57580 [01:00<00:19, 722.32it/s]
 76%|█████████████████████████████████████████████████████████████████████████████████████████████████████                                | 43767/57580 [01:00<00:19, 716.41it/s]
 76%|█████████████████████████████████████████████████████████████████████████████████████████████████████▎                               | 43839/57580 [01:00<00:19, 716.53it/s]
 76%|█████████████████████████████████████████████████████████████████████████████████████████████████████▍                               | 43911/57580 [01:00<00:19, 710.17it/s]
 76%|█████████████████████████████████████████████████████████████████████████████████████████████████████▌                               | 43983/57580 [01:00<00:19, 708.07it/s]
 77%|█████████████████████████████████████████████████████████████████████████████████████████████████████▊                               | 44054/57580 [01:00<00:19, 703.91it/s]
 77%|█████████████████████████████████████████████████████████████████████████████████████████████████████▉                               | 44125/57580 [01:01<00:19, 702.83it/s]
 77%|██████████████████████████████████████████████████████████████████████████████████████████████████████                               | 44197/57580 [01:01<00:18, 707.28it/s]
 77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▎                              | 44268/57580 [01:01<00:18, 705.18it/s]
 77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▍                              | 44339/57580 [01:01<00:18, 703.61it/s]
 77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▌                              | 44410/57580 [01:01<00:19, 690.23it/s]
 77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▋                              | 44480/57580 [01:01<00:19, 684.25it/s]
 77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▉                              | 44552/57580 [01:01<00:18, 693.89it/s]
 78%|███████████████████████████████████████████████████████████████████████████████████████████████████████                              | 44632/57580 [01:01<00:17, 724.48it/s]
 78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▎                             | 44709/57580 [01:01<00:17, 736.07it/s]
 78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▍                             | 44783/57580 [01:01<00:17, 730.03it/s]
 78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▌                             | 44860/57580 [01:02<00:17, 741.05it/s]
 78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▊                             | 44940/57580 [01:02<00:16, 757.90it/s]
 78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▉                             | 45016/57580 [01:02<00:16, 757.89it/s]
 78%|████████████████████████████████████████████████████████████████████████████████████████████████████████▏                            | 45092/57580 [01:02<00:17, 724.90it/s]
 78%|████████████████████████████████████████████████████████████████████████████████████████████████████████▎                            | 45165/57580 [01:02<00:17, 710.17it/s]
 79%|████████████████████████████████████████████████████████████████████████████████████████████████████████▍                            | 45238/57580 [01:02<00:17, 715.20it/s]
 79%|████████████████████████████████████████████████████████████████████████████████████████████████████████▋                            | 45313/57580 [01:02<00:16, 724.49it/s]
 79%|████████████████████████████████████████████████████████████████████████████████████████████████████████▊                            | 45388/57580 [01:02<00:16, 731.26it/s]
 79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████                            | 45463/57580 [01:02<00:16, 736.07it/s]
 79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▏                           | 45544/57580 [01:02<00:15, 757.33it/s]
 79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▍                           | 45622/57580 [01:03<00:15, 763.29it/s]
 79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▌                           | 45699/57580 [01:03<00:15, 760.07it/s]
 79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▋                           | 45776/57580 [01:03<00:15, 755.62it/s]
 80%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▉                           | 45853/57580 [01:03<00:15, 759.26it/s]
 80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████                           | 45933/57580 [01:03<00:15, 770.57it/s]
 80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▎                          | 46011/57580 [01:03<00:15, 770.39it/s]
 80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▍                          | 46092/57580 [01:03<00:14, 778.95it/s]
 80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▋                          | 46170/57580 [01:03<00:15, 749.45it/s]
 80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▊                          | 46246/57580 [01:03<00:15, 726.45it/s]
 80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▉                          | 46320/57580 [01:03<00:15, 729.55it/s]
 81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▏                         | 46394/57580 [01:04<00:15, 714.92it/s]
 81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▎                         | 46466/57580 [01:04<00:15, 711.86it/s]
 81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▍                         | 46538/57580 [01:04<00:15, 707.14it/s]
 81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▋                         | 46619/57580 [01:04<00:14, 734.25it/s]
 81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▊                         | 46697/57580 [01:04<00:14, 747.01it/s]
 81%|████████████████████████████████████████████████████████████████████████████████████████████████████████████                         | 46773/57580 [01:04<00:14, 747.84it/s]
 81%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                        | 46848/57580 [01:04<00:14, 732.59it/s]
 81%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                        | 46922/57580 [01:04<00:14, 723.47it/s]
 82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                        | 46995/57580 [01:04<00:14, 712.00it/s]
 82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                        | 47067/57580 [01:05<00:14, 705.36it/s]
 82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                        | 47144/57580 [01:05<00:14, 723.49it/s]
 82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████                        | 47228/57580 [01:05<00:13, 756.99it/s]
 82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                       | 47304/57580 [01:05<00:14, 733.23it/s]
 82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                       | 47378/57580 [01:05<00:14, 713.62it/s]
 82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                       | 47450/57580 [01:05<00:14, 710.79it/s]
 83%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                       | 47522/57580 [01:05<00:14, 698.33it/s]
 83%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                       | 47594/57580 [01:05<00:14, 703.88it/s]
 83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████                       | 47667/57580 [01:05<00:13, 708.73it/s]
 83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                      | 47739/57580 [01:05<00:13, 709.29it/s]
 83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                      | 47812/57580 [01:06<00:13, 713.36it/s]
 83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                      | 47898/57580 [01:06<00:12, 756.07it/s]
 83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                      | 47977/57580 [01:06<00:12, 765.13it/s]
 83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                      | 48054/57580 [01:06<00:12, 765.45it/s]
 84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                     | 48131/57580 [01:06<00:12, 754.92it/s]
 84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                     | 48207/57580 [01:06<00:12, 733.75it/s]
 84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                     | 48281/57580 [01:06<00:12, 722.20it/s]
 84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                     | 48354/57580 [01:06<00:12, 721.36it/s]
 84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                     | 48436/57580 [01:06<00:12, 749.58it/s]
 84%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████                     | 48521/57580 [01:06<00:11, 778.42it/s]
 84%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                    | 48599/57580 [01:07<00:11, 778.15it/s]
 85%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                    | 48677/57580 [01:07<00:11, 771.10it/s]
 85%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                    | 48755/57580 [01:07<00:11, 749.53it/s]
 85%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                    | 48831/57580 [01:07<00:11, 729.32it/s]
 85%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                    | 48905/57580 [01:07<00:12, 719.22it/s]
 85%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                   | 48978/57580 [01:07<00:12, 715.99it/s]
 85%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                   | 49057/57580 [01:07<00:11, 736.53it/s]
 85%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                   | 49137/57580 [01:07<00:11, 754.25it/s]
 85%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                   | 49217/57580 [01:07<00:10, 764.62it/s]
 86%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                   | 49306/57580 [01:08<00:10, 800.63it/s]
 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████                   | 49396/57580 [01:08<00:09, 829.54it/s]
 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                  | 49481/57580 [01:08<00:09, 834.79it/s]
 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                  | 49565/57580 [01:08<00:09, 811.17it/s]
 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋                  | 49647/57580 [01:08<00:10, 776.51it/s]
 86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                  | 49726/57580 [01:08<00:10, 764.05it/s]
 86%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████                  | 49803/57580 [01:08<00:10, 763.89it/s]
 87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                 | 49880/57580 [01:08<00:10, 751.83it/s]
 87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                 | 49957/57580 [01:08<00:10, 756.38it/s]
 87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                 | 50037/57580 [01:08<00:09, 768.49it/s]
 87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                 | 50114/57580 [01:09<00:09, 757.09it/s]
 87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                 | 50190/57580 [01:09<00:09, 748.41it/s]
 87%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                 | 50265/57580 [01:09<00:09, 741.65it/s]
 87%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎                | 50340/57580 [01:09<00:09, 730.48it/s]
 88%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍                | 50414/57580 [01:09<00:10, 705.76it/s]
 88%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                | 50485/57580 [01:09<00:10, 704.08it/s]
 88%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊                | 50557/57580 [01:09<00:09, 707.91it/s]
 88%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉                | 50630/57580 [01:09<00:09, 713.42it/s]
 88%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏               | 50711/57580 [01:09<00:09, 741.53it/s]
 88%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎               | 50791/57580 [01:10<00:08, 758.22it/s]
 88%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌               | 50872/57580 [01:10<00:08, 772.96it/s]
 88%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋               | 50950/57580 [01:10<00:08, 772.09it/s]
 89%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊               | 51028/57580 [01:10<00:08, 748.82it/s]
 89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████               | 51105/57580 [01:10<00:08, 752.23it/s]
 89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏              | 51181/57580 [01:10<00:08, 742.81it/s]
 89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍              | 51259/57580 [01:10<00:08, 750.71it/s]
 89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌              | 51338/57580 [01:10<00:08, 761.73it/s]
 89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊              | 51419/57580 [01:10<00:07, 775.10it/s]
 89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉              | 51499/57580 [01:10<00:07, 779.29it/s]
 90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏             | 51580/57580 [01:11<00:07, 785.48it/s]
 90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎             | 51661/57580 [01:11<00:07, 792.22it/s]
 90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌             | 51741/57580 [01:11<00:07, 766.04it/s]
 90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋             | 51818/57580 [01:11<00:07, 738.44it/s]
 90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊             | 51893/57580 [01:11<00:07, 724.26it/s]
 90%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████             | 51966/57580 [01:11<00:07, 712.88it/s]
 90%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏            | 52047/57580 [01:11<00:07, 738.89it/s]
 91%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍            | 52138/57580 [01:11<00:06, 787.88it/s]
 91%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋            | 52227/57580 [01:11<00:06, 817.15it/s]
 91%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊            | 52312/57580 [01:11<00:06, 826.04it/s]
 91%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████            | 52395/57580 [01:12<00:06, 793.44it/s]
 91%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏           | 52475/57580 [01:12<00:06, 767.80it/s]
 91%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍           | 52553/57580 [01:12<00:06, 747.44it/s]
 91%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌           | 52629/57580 [01:12<00:06, 722.44it/s]
 92%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋           | 52704/57580 [01:12<00:06, 727.44it/s]
 92%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉           | 52777/57580 [01:12<00:06, 703.53it/s]
 92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████           | 52848/57580 [01:12<00:06, 702.63it/s]
 92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏          | 52923/57580 [01:12<00:06, 715.62it/s]
 92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍          | 52995/57580 [01:12<00:06, 700.48it/s]
 92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌          | 53066/57580 [01:13<00:06, 686.64it/s]
 92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋          | 53137/57580 [01:13<00:06, 692.72it/s]
 92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉          | 53207/57580 [01:13<00:06, 692.12it/s]
 93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████          | 53277/57580 [01:13<00:06, 677.67it/s]
 93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏         | 53351/57580 [01:13<00:06, 695.03it/s]
 93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍         | 53424/57580 [01:13<00:05, 704.72it/s]
 93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌         | 53495/57580 [01:13<00:05, 705.53it/s]
 93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋         | 53566/57580 [01:13<00:05, 691.79it/s]
 93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉         | 53636/57580 [01:13<00:05, 683.60it/s]
 93%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████         | 53705/57580 [01:13<00:05, 682.76it/s]
 93%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏        | 53774/57580 [01:14<00:05, 680.18it/s]
 94%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍        | 53847/57580 [01:14<00:05, 694.11it/s]
 94%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌        | 53917/57580 [01:14<00:05, 695.00it/s]
 94%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋        | 53987/57580 [01:14<00:05, 693.22it/s]
 94%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊        | 54057/57580 [01:14<00:05, 692.41it/s]
 94%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████        | 54127/57580 [01:14<00:04, 691.89it/s]
 94%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏       | 54199/57580 [01:14<00:04, 699.33it/s]
 94%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎       | 54278/57580 [01:14<00:04, 725.88it/s]
 94%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌       | 54358/57580 [01:14<00:04, 747.33it/s]
 95%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋       | 54439/57580 [01:14<00:04, 763.18it/s]
 95%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉       | 54518/57580 [01:15<00:03, 768.13it/s]
 95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████       | 54595/57580 [01:15<00:03, 753.35it/s]
 95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎      | 54671/57580 [01:15<00:03, 735.07it/s]
 95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍      | 54745/57580 [01:15<00:03, 723.19it/s]
 95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌      | 54818/57580 [01:15<00:03, 715.88it/s]
 95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊      | 54890/57580 [01:15<00:03, 708.04it/s]
 95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉      | 54962/57580 [01:15<00:03, 710.54it/s]
 96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████      | 55034/57580 [01:15<00:03, 712.50it/s]
 96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎     | 55107/57580 [01:15<00:03, 713.70it/s]
 96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍     | 55187/57580 [01:16<00:03, 738.63it/s]
 96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋     | 55267/57580 [01:16<00:03, 753.99it/s]
 96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊     | 55345/57580 [01:16<00:02, 758.69it/s]
 96%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████     | 55421/57580 [01:16<00:02, 740.47it/s]
 96%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏    | 55496/57580 [01:16<00:02, 723.15it/s]
 97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎    | 55569/57580 [01:16<00:02, 708.23it/s]
 97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌    | 55640/57580 [01:16<00:02, 690.10it/s]
 97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋    | 55710/57580 [01:16<00:02, 669.17it/s]
 97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊    | 55778/57580 [01:16<00:02, 661.99it/s]
 97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉    | 55847/57580 [01:16<00:02, 669.56it/s]
 97%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏   | 55926/57580 [01:17<00:02, 703.04it/s]
 97%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎   | 56008/57580 [01:17<00:02, 736.44it/s]
 97%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌   | 56088/57580 [01:17<00:01, 754.45it/s]
 98%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋   | 56164/57580 [01:17<00:01, 744.16it/s]
 98%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉   | 56239/57580 [01:17<00:01, 734.37it/s]
 98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████   | 56313/57580 [01:17<00:01, 724.73it/s]
 98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎  | 56402/57580 [01:17<00:01, 772.29it/s]
 98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍  | 56493/57580 [01:17<00:01, 809.73it/s]
 98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋  | 56577/57580 [01:17<00:01, 818.07it/s]
 98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊  | 56659/57580 [01:18<00:01, 808.27it/s]
 99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████  | 56740/57580 [01:18<00:01, 806.77it/s]
 99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 56821/57580 [01:18<00:00, 795.30it/s]
 99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 56901/57580 [01:18<00:00, 751.78it/s]
 99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 56977/57580 [01:18<00:00, 734.78it/s]
 99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 57051/57580 [01:18<00:00, 717.00it/s]
 99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 57127/57580 [01:18<00:00, 726.37it/s]
 99%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏| 57203/57580 [01:18<00:00, 735.36it/s]
 99%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎| 57277/57580 [01:18<00:00, 736.08it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍| 57356/57580 [01:18<00:00, 751.20it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋| 57432/57580 [01:19<00:00, 753.03it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊| 57508/57580 [01:19<00:00, 754.28it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 57580/57580 [01:19<00:00, 726.48it/s]

Let’s now visualize the data using matplotlib for a selected axial slice.

axial_slice = 9

fig2, ax = plt.subplots(2, 2, figsize=(6, 6),
                        subplot_kw={'xticks': [], 'yticks': []})

fig2.subplots_adjust(hspace=0.3, wspace=0.05)

im0 = ax.flat[0].imshow(MSD[:, :, axial_slice].T * 1000, cmap='gray',
                        vmin=0, vmax=2, origin='lower')
ax.flat[0].set_title('MSD (MSDKI)')

im1 = ax.flat[1].imshow(MSK[:, :, axial_slice].T, cmap='gray',
                        vmin=0, vmax=2, origin='lower')
ax.flat[1].set_title('MSK (MSDKI)')

im2 = ax.flat[2].imshow(MD[:, :, axial_slice].T * 1000, cmap='gray',
                        vmin=0, vmax=2, origin='lower')
ax.flat[2].set_title('MD (DKI)')

im3 = ax.flat[3].imshow(MK[:, :, axial_slice].T, cmap='gray',
                        vmin=0, vmax=2, origin='lower')
ax.flat[3].set_title('MK (DKI)')

fig2.colorbar(im0, ax=ax.flat[0])
fig2.colorbar(im1, ax=ax.flat[1])
fig2.colorbar(im2, ax=ax.flat[2])
fig2.colorbar(im3, ax=ax.flat[3])

plt.show()
fig2.savefig('MSDKI_invivo.png')
reconst msdki

MSDKI measures (upper panels) and DKI standard measures (lower panels).

This figure shows that the contrast of in-vivo MSD and MSK maps (upper panels) are similar to the contrast of MD and MSK maps (lower panels); however, in the upper part we insure that direct contributions of fiber dispersion were removed. The upper panels also reveal that MSDKI measures are let sensitive to noise artefacts than standard DKI measures (as pointed by [NetoHe2018]), particularly one can observe that MSK maps always present positive values in brain white matter regions, while implausible negative kurtosis values are present in the MK maps in the same regions.

Relationship between MSDKI and SMT2#

As showed in [NetoHe2019], MSDKI captures the same information than the spherical mean technique (SMT) microstructural models [Kaden2016b]. In this way, the SMT model parameters can be directly computed from MSDKI. For instance, the axonal volume fraction (f), the intrisic diffusivity (di), and the microscopic anisotropy of the SMT 2-compartmental model [NetoHe2019] can be extracted using the following lines of code:

F = msdki_fit.smt2f
DI = msdki_fit.smt2di
uFA2 = msdki_fit.smt2uFA

The SMT2 model parameters extracted from MSDKI are displayed below:

fig3, ax = plt.subplots(1, 3, figsize=(9, 2.5),
                        subplot_kw={'xticks': [], 'yticks': []})

fig3.subplots_adjust(hspace=0.4, wspace=0.1)

im0 = ax.flat[0].imshow(F[:, :, axial_slice].T,
                        cmap='gray', vmin=0, vmax=1, origin='lower')
ax.flat[0].set_title('SMT2 f (MSDKI)')

im1 = ax.flat[1].imshow(DI[:, :, axial_slice].T * 1000, cmap='gray',
                        vmin=0, vmax=2, origin='lower')
ax.flat[1].set_title('SMT2 di (MSDKI)')

im2 = ax.flat[2].imshow(uFA2[:, :, axial_slice].T, cmap='gray',
                        vmin=0, vmax=1, origin='lower')
ax.flat[2].set_title('SMT2 uFA (MSDKI)')

fig3.colorbar(im0, ax=ax.flat[0])
fig3.colorbar(im1, ax=ax.flat[1])
fig3.colorbar(im2, ax=ax.flat[2])


plt.show()
fig3.savefig('MSDKI_SMT2_invivo.png')
reconst msdki

SMT2 model quantities extracted from MSDKI. From left to right, the figure shows the axonal volume fraction (f), the intrinsic diffusivity (di), and the microscopic anisotropy of the SMT 2-compartmental model [NetoHe2019].

The similar contrast of SMT2 f-parameter maps in comparison to MSK (first panel of Figure 3 vs second panel of Figure 2) confirms than MSK and F captures the same tissue information but on different scales (but rescaled to values between 0 and 1). It is important to note that SMT model parameters estimates should be used with care, because the SMT model was shown to be invalid NetoHe2019]_. For instance, although SMT2 parameter f and uFA may be a useful normalization of the degree of non-Gaussian diffusion (note than both metrics have a range between 0 and 1), these cannot be interpreted as a real biophysical estimates of axonal water fraction and tissue microscopic anisotropy.

References#

[Jensen2005]

Jensen JH, Helpern JA, Ramani A, Lu H, Kaczynski K (2005). Diffusional Kurtosis Imaging: The Quantification of Non_Gaussian Water Diffusion by Means of Magnetic Resonance Imaging. Magnetic Resonance in Medicine 53: 1432-1440

[NetoHe2015] (1,2)

Neto Henriques R, Correia MM, Nunes RG, Ferreira HA (2015). Exploring the 3D geometry of the diffusion kurtosis tensor - Impact on the development of robust tractography procedures and novel biomarkers, NeuroImage 111: 85-99

[NetoHe2018] (1,2,3)

Henriques RN, 2018. Advanced Methods for Diffusion MRI Data Analysis and their Application to the Healthy Ageing Brain (Doctoral thesis). Downing College, University of Cambridge. https://doi.org/10.17863/CAM.29356

[NetoHe2019] (1,2,3,4,5)

Neto Henriques R, Jespersen SN, Shemesh N (2019). Microscopic anisotropy misestimation in spherical‐mean single diffusion encoding MRI. Magnetic Resonance in Medicine (In press). doi: 10.1002/mrm.27606

[Kaden2016b] (1,2)

Kaden E, Kelm ND, Carson RP, Does MD, Alexander DC (2016) Multi-compartment microscopic diffusion imaging. NeuroImage 139: 346-359.

[Hansen2016]

Hansen, B, Jespersen, SN (2016). Data for evaluation of fast kurtosis strategies, b-value optimization and exploration of diffusion MRI contrast. Scientific Data 3: 160072 doi:10.1038/sdata.2016.72

Total running time of the script: (4 minutes 42.133 seconds)

Gallery generated by Sphinx-Gallery