{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Analyze and plot experiment results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook illustrates how to analyze and plot results obtained with SageMaker Bencher.\n", "\n", "As an example, we will replicate benchmark analysis and re-create plots presented in the blog post *[\"Choose the best data source for your Amazon SageMaker training job\"](https://aws.amazon.com/blogs/machine-learning/choose-the-best-data-source-for-your-amazon-sagemaker-training-job/) (G. Nachum, A. Arzhanov)*. To this end, it is assumed that we have first ourselves reproduced the benchmarks presented in the mentioned blog post with the SageMaker Bencher by running:\n", "\n", "`python start_experiment.py -f experiments/blog-benchmarks-all.yml`\n", "\n", "Once all the trials of the `blog-benchmark-all` experiment have finished, we can proceed with this notebook to analyse and plot the results.\n", "\n", "----" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import all required packages\n", "We will use `sagemaker.analytics` package to fetch all trial component data stored in SageMaker Experiments and convert it into a Pandas DataFrame for detailed analisys. For more information see *[\"Amazon SageMaker Experiments - Organize, Track, and Compare Your Machine Learning Trainings\"](https://aws.amazon.com/blogs/aws/amazon-sagemaker-experiments-organize-track-and-compare-your-machine-learning-trainings/)*." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sagemaker.analytics import ExperimentAnalytics\n", "\n", "import numpy as np\n", "import pandas as pd\n", "\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "sns.set_theme(style=\"whitegrid\")" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SageMaker.InstanceCountSageMaker.VolumeSizeInGBbatch_sizeepochsimg_sec_ave_totimg_totinput_diminstance_countmax_runnum_parallel_calls...t_downloadingt_epoch_1t_import_frameworkt_startingt_trainingt_training_exactt_training_smt_uploadingvolume_sizeSageMaker.ModelArtifact - MediaType
count37.037.037.037.036.0000003.600000e+0137.036.036.037.0...36.00000036.00000036.00000036.00000036.00000036.00000036.00000036.00000036.00.0
mean1.0500.064.01.0277.1146627.804785e+05224.01.036000.0-1.0...988.2315002779.9543100.000002116.3001672972.2681942780.1337613966.0000005.447306500.0NaN
std0.00.00.00.056.4527877.605085e+050.00.00.00.0...3050.0650272959.7988000.00000115.1393783001.7772742959.8235174660.2158870.0912830.0NaN
min1.0500.064.01.0156.1424693.060700e+04224.01.036000.0-1.0...6.774000111.2975080.00000099.926000151.251000111.408272309.0000005.307000500.0NaN
25%1.0500.064.01.0268.6778733.060700e+04224.01.036000.0-1.0...14.151250113.1225690.000002107.121250305.722000113.304401333.0000005.394750500.0NaN
50%1.0500.064.01.0273.4144497.804785e+05224.01.036000.0-1.0...20.4200002410.8637700.000002111.3885002546.3365002411.0987732647.0000005.422000500.0NaN
75%1.0500.064.01.0326.9259341.530350e+06224.01.036000.0-1.0...192.4132504680.0896490.000002118.7180004886.3865004680.2549415069.5000005.490000500.0NaN
max1.0500.064.01.0330.1929431.530350e+06224.01.036000.0-1.0...11166.5070009800.7369010.000007167.43100010150.5620009800.98502715878.0000005.716000500.0NaN
\n", "

8 rows × 27 columns

\n", "
" ], "text/plain": [ " SageMaker.InstanceCount SageMaker.VolumeSizeInGB batch_size epochs \\\n", "count 37.0 37.0 37.0 37.0 \n", "mean 1.0 500.0 64.0 1.0 \n", "std 0.0 0.0 0.0 0.0 \n", "min 1.0 500.0 64.0 1.0 \n", "25% 1.0 500.0 64.0 1.0 \n", "50% 1.0 500.0 64.0 1.0 \n", "75% 1.0 500.0 64.0 1.0 \n", "max 1.0 500.0 64.0 1.0 \n", "\n", " img_sec_ave_tot img_tot input_dim instance_count max_run \\\n", "count 36.000000 3.600000e+01 37.0 36.0 36.0 \n", "mean 277.114662 7.804785e+05 224.0 1.0 36000.0 \n", "std 56.452787 7.605085e+05 0.0 0.0 0.0 \n", "min 156.142469 3.060700e+04 224.0 1.0 36000.0 \n", "25% 268.677873 3.060700e+04 224.0 1.0 36000.0 \n", "50% 273.414449 7.804785e+05 224.0 1.0 36000.0 \n", "75% 326.925934 1.530350e+06 224.0 1.0 36000.0 \n", "max 330.192943 1.530350e+06 224.0 1.0 36000.0 \n", "\n", " num_parallel_calls ... t_downloading t_epoch_1 \\\n", "count 37.0 ... 36.000000 36.000000 \n", "mean -1.0 ... 988.231500 2779.954310 \n", "std 0.0 ... 3050.065027 2959.798800 \n", "min -1.0 ... 6.774000 111.297508 \n", "25% -1.0 ... 14.151250 113.122569 \n", "50% -1.0 ... 20.420000 2410.863770 \n", "75% -1.0 ... 192.413250 4680.089649 \n", "max -1.0 ... 11166.507000 9800.736901 \n", "\n", " t_import_framework t_starting t_training t_training_exact \\\n", "count 36.000000 36.000000 36.000000 36.000000 \n", "mean 0.000002 116.300167 2972.268194 2780.133761 \n", "std 0.000001 15.139378 3001.777274 2959.823517 \n", "min 0.000000 99.926000 151.251000 111.408272 \n", "25% 0.000002 107.121250 305.722000 113.304401 \n", "50% 0.000002 111.388500 2546.336500 2411.098773 \n", "75% 0.000002 118.718000 4886.386500 4680.254941 \n", "max 0.000007 167.431000 10150.562000 9800.985027 \n", "\n", " t_training_sm t_uploading volume_size \\\n", "count 36.000000 36.000000 36.0 \n", "mean 3966.000000 5.447306 500.0 \n", "std 4660.215887 0.091283 0.0 \n", "min 309.000000 5.307000 500.0 \n", "25% 333.000000 5.394750 500.0 \n", "50% 2647.000000 5.422000 500.0 \n", "75% 5069.500000 5.490000 500.0 \n", "max 15878.000000 5.716000 500.0 \n", "\n", " SageMaker.ModelArtifact - MediaType \n", "count 0.0 \n", "mean NaN \n", "std NaN \n", "min NaN \n", "25% NaN \n", "50% NaN \n", "75% NaN \n", "max NaN \n", "\n", "[8 rows x 27 columns]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "experiment_name = 'blog-benchmarks-all'\n", "analytics = ExperimentAnalytics(experiment_name=experiment_name) \n", "df = analytics.dataframe()\n", "df.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Some pre-processing\n", "While we track a lot of various parameters and metrics in each trial (see above), for this analysis we would need only a couple of them. For example, we will only focus on the following trial parameters:\n", "- `img_sec_ave_tot` - an average throughput of the training job in terms of *images/sec*,\n", "- `dataset/train` - name of the dataset used in the *train* input channel,\n", "- `input_format/train` - file format (e.g., JPG-files, or TFRecord-files) of the dataset used in *train* input channel,\n", "- `input_mode/train` - data input mode used for the *train* input channel (e.g., File, FastFile, or FSx),\n", "- `t_*`-metrics - the exact timing for different phases of the training job (e.g. download, train, or total billable time),\n", "- `img_tot` - the total number of processed images by the training job." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(36, 12)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "col_focus = [\n", " 'TrialComponentName',\n", " 'img_sec_ave_tot',\n", " 'dataset/train',\n", " 'input_format/train',\n", " 'input_mode/train',\n", " 't_downloading',\n", " 't_training',\n", " 't_training_exact',\n", " 't_training_sm',\n", " 'instance_type',\n", " 'img_tot'\n", "]\n", "\n", "dataset_map = {\n", " 'Caltech-jpg-1x': 'Smaller Dataset / Smaller Files',\n", " 'Caltech-tfr-jpg-1x': 'Smaller Dataset / Larger Files',\n", " 'Caltech-jpg-50x': 'Larger Dataset / Smaller Files',\n", " 'Caltech-tfr-jpg-50x': 'Larger Dataset / Larger Files',\n", "}\n", "\n", "df = df[col_focus]\n", "df = df.dropna()\n", "df['dataset_spec/train'] = df['dataset/train'].map(dataset_map)\n", "df.sort_values(by='input_mode/train', inplace=True, ascending=False)\n", "df.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tabular statistics\n", "We can slice and dice the extracted Pandas DataFrame as we see fit. For example, we can make sure that we have indeed repeated each trial 3 times to account for any variance in the timings." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TrialComponentNameimg_sec_ave_tott_downloadingt_trainingt_training_exactt_training_sminstance_typeimg_totdataset_spec/train
input_format/traindataset/traininput_mode/train
jpgCaltech-jpg-1xffm333333333
file333333333
fsx333333333
Caltech-jpg-50xffm333333333
file333333333
fsx333333333
tfrecord/jpgCaltech-tfr-jpg-1xffm333333333
file333333333
fsx333333333
Caltech-tfr-jpg-50xffm333333333
file333333333
fsx333333333
\n", "
" ], "text/plain": [ " TrialComponentName \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-tfr-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "\n", " img_sec_ave_tot \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-tfr-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "\n", " t_downloading \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-tfr-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "\n", " t_training \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-tfr-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "\n", " t_training_exact \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-tfr-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "\n", " t_training_sm \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-tfr-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "\n", " instance_type \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-tfr-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "\n", " img_tot \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-tfr-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "\n", " dataset_spec/train \n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 3 \n", " file 3 \n", " fsx 3 \n", " Caltech-tfr-jpg-50x ffm 3 \n", " file 3 \n", " fsx 3 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_grouped = df.groupby(['input_format/train', 'dataset/train', 'input_mode/train']).count()\n", "df_grouped" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After this, we can also print out the average values for every unique trial scenario." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
img_sec_ave_tott_downloadingt_trainingt_training_exactt_training_smimg_tot
input_format/traindataset/traininput_mode/train
jpgCaltech-jpg-1xffm168.41902318.845333388.769333181.852903413.00000030607.0
file268.861786255.186333154.636667113.843675415.33333330607.0
fsx273.75256910.397000322.110333111.805900338.00000030607.0
Caltech-jpg-50xffm165.830324169.4150009598.5543339245.0965189773.3333331530350.0
file329.45335210954.6840004703.0020004645.13286715663.3333331530350.0
fsx328.37945912.0943335099.7116674660.3902005117.6666671530350.0
tfrecord/jpgCaltech-tfr-jpg-1xffm271.14610315.862000293.759333112.882378315.00000030607.0
file270.67630622.123333300.330000113.099438327.66666730607.0
fsx269.52275313.735000303.629000113.571342323.00000030607.0
Caltech-tfr-jpg-50xffm325.78870817.0823334884.7516674697.4032204907.3333331530350.0
file327.262672357.2623334723.3956674676.2362945086.0000001530350.0
fsx326.28289312.0910004894.5683334690.2903944912.3333331530350.0
\n", "
" ], "text/plain": [ " img_sec_ave_tot \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 168.419023 \n", " file 268.861786 \n", " fsx 273.752569 \n", " Caltech-jpg-50x ffm 165.830324 \n", " file 329.453352 \n", " fsx 328.379459 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 271.146103 \n", " file 270.676306 \n", " fsx 269.522753 \n", " Caltech-tfr-jpg-50x ffm 325.788708 \n", " file 327.262672 \n", " fsx 326.282893 \n", "\n", " t_downloading \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 18.845333 \n", " file 255.186333 \n", " fsx 10.397000 \n", " Caltech-jpg-50x ffm 169.415000 \n", " file 10954.684000 \n", " fsx 12.094333 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 15.862000 \n", " file 22.123333 \n", " fsx 13.735000 \n", " Caltech-tfr-jpg-50x ffm 17.082333 \n", " file 357.262333 \n", " fsx 12.091000 \n", "\n", " t_training \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 388.769333 \n", " file 154.636667 \n", " fsx 322.110333 \n", " Caltech-jpg-50x ffm 9598.554333 \n", " file 4703.002000 \n", " fsx 5099.711667 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 293.759333 \n", " file 300.330000 \n", " fsx 303.629000 \n", " Caltech-tfr-jpg-50x ffm 4884.751667 \n", " file 4723.395667 \n", " fsx 4894.568333 \n", "\n", " t_training_exact \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 181.852903 \n", " file 113.843675 \n", " fsx 111.805900 \n", " Caltech-jpg-50x ffm 9245.096518 \n", " file 4645.132867 \n", " fsx 4660.390200 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 112.882378 \n", " file 113.099438 \n", " fsx 113.571342 \n", " Caltech-tfr-jpg-50x ffm 4697.403220 \n", " file 4676.236294 \n", " fsx 4690.290394 \n", "\n", " t_training_sm \\\n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 413.000000 \n", " file 415.333333 \n", " fsx 338.000000 \n", " Caltech-jpg-50x ffm 9773.333333 \n", " file 15663.333333 \n", " fsx 5117.666667 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 315.000000 \n", " file 327.666667 \n", " fsx 323.000000 \n", " Caltech-tfr-jpg-50x ffm 4907.333333 \n", " file 5086.000000 \n", " fsx 4912.333333 \n", "\n", " img_tot \n", "input_format/train dataset/train input_mode/train \n", "jpg Caltech-jpg-1x ffm 30607.0 \n", " file 30607.0 \n", " fsx 30607.0 \n", " Caltech-jpg-50x ffm 1530350.0 \n", " file 1530350.0 \n", " fsx 1530350.0 \n", "tfrecord/jpg Caltech-tfr-jpg-1x ffm 30607.0 \n", " file 30607.0 \n", " fsx 30607.0 \n", " Caltech-tfr-jpg-50x ffm 1530350.0 \n", " file 1530350.0 \n", " fsx 1530350.0 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_grouped = df.groupby(['input_format/train', 'dataset/train', 'input_mode/train']).mean()\n", "df_grouped" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Visualize the results\n", "We can now produce all kinds of plots to visualize and analise the benchmark results. For example let us first plot the average **throughput** (images/sec) for different datasets, and then plot the **total billable time** (sec) for each of these SageMaker training jobs." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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li3Kzc1VWlqamjdvrnnz5ikuLk4rV65UzZo1JUlNmzbViy++KLPZrMjISMXExOjWW29Venq6unTpUuIRztbev+thMxwnJCRoz549qlWr1nWtEAAAAADw53Tq1Emenp6SpGbNmhW5MPLDDz8sSWrRooWaNWumL774wm7tdunSRR4eHvLx8ZG3t7c6deokSWrYsKHOnj0rSfrss8/0/vvvy2QyydPTUxEREVq5cqUaNWqkZs2aqUmTJpKkhx56yHLHo507dyotLU0RERGWts6dO6ezZ88qOTlZgYGBVmu6Ev5NJpOWL1+unTt3atOmTfrPf/4js9msS5cuFVvmWu+fLdd1zvGV5A4AAAAAcJyKFStafjeZTDKbzZbHbm5ult8LCwvl5uZWbJ68vLw/1e6VQHnFH0+p/WObVz/Oz88vVsMfly0sLFSfPn00adIky+OMjAxVq1ZNn3zyicLCwqzW5O3tLUnKyspSv3799MADD6h9+/bq37+/tm/fXqTNK671/tli82rVd955pwYPHqxXX31Vb7/9tuUfAAAAAMB54uPjJUnffvutjh8/rrvvvls1a9bU0aNHlZOTo/z8fH366aeW+d3c3JSfn2+39u+9916tXr1aZrNZubm5io2NVceOHdW+fXv98MMP+u677yRdPu/5invuuUebN29WRkaGJOn999/XsGHDJElfffWV7rrrLpv1pqWl6cKFC3ryySfVtWtXHThwQLm5ucXC+o2yuec4JydHt912m1JTU/9UAxcuXFBERISWL1+u+vXra9q0aUpKSrKcwzxmzBh169ZNiYmJmjdvnnJyctSzZ0+NHz/+T7UHAAAAAOXRl19+qdjYWBUWFmrRokWqVq2a7rnnHt19993q2bOnfHx8FBAQoCNHjkiS2rVrpxdffFGjR4/W0qVLb7j96OhozZkzR2FhYcrLy1OnTp00cuRIeXp6auHChZo4caI8PDx09913W5bp1KmThg8frn/84x8ymUyqXLmylixZouTkZPn5+RXZG96tWzcNHjxYy5YtK9Ju8+bNdd9996lnz56qWrWqGjZsqCZNmigtLa3YHu8bYTMcX8/J29YkJycrOjq6SLBOSUnRu+++K19fX8u07OxsRUVFadWqVapTp45GjBihXbt2WS7pDQAAAADlVUBAgDZt2lRsekxMTJHH06ZNK3bKq7u7u+bPn1/iehs2bFhkT7I1V7fz1VdfWX7v0qWLunTpIkmqUaOGnn/++RLXERwcXCS/RUVFWX4fMmSIhgwZUmyZtm3bFnn80ksvWX7fsWOH5fcKFSpo7ty5Vuu/8t5d/TqufmyL1XD8xBNP6KWXXrJ6DPjGjRttrjw2NlYzZ87U5MmTJV0+VvzkyZOaPn26Tp48qW7dumnMmDE6dOiQGjVqpAYNGkiSwsLClJCQQDgGAAAAgBt07Ngxq0fm3nbbbXrxxRedW1AZZTUcDx8+XJI0ffr0P73yZ599tsjj06dPKzAwULNnz5a3t7dGjBihdevWydvbWz4+Ppb5fH19S32z6pSUlD9d5x/5+/vbZT2ALUlJSa4uoRj6P5zFXv2fPgsAMIorh0r/Gbfffrs+/PBDO1ZTPlkNx8uWLdOyZcvUoUMHqwuPGjWq2PHg19KgQYMix7oPHTpU8fHx6tGjR7F5TSbTda9Xkvz8/OTl5VWqZQBX4kM9jIz+DwAAyhqr4firr77SnDlzrrnw119/XarGjhw5otTUVIWEhEiSzGaz3N3dVbt2bWVmZlrmy8jIKHJOMgAAAAAAjmQ1HJd0wvTVBg8eXKrGzGaz5s6dq8DAQHl7e2vt2rXq16+f2rRpo+PHjystLU3169fXpk2b1L9//1KtGwAAAACAP8tqOB4zZozdG2vRooUee+wxDRo0SPn5+erevbt69+4t6fKVxMaOHaucnBwFBweXeKg1AAAAAACOYPNWTvbwx8twW7uMd1BQkDZs2OCMcgAAAACgXMvNK5Cnh5vtGR203mnTpunLL7/U2LFjLTtEyzqnhGMAAAAAgPN4erhp8OTVdl/ve/Ntn34rSevXr9ehQ4fk6elp9xocpYKtGcxmc7Fp586dc0gxAAAAAICb28iRI2U2m9WzZ089+uijCg8PV3h4uD755BNduHBBXbt21d69eyVJ//znP7V6tf1D/J9hMxyHh4cXmzZo0CCHFAMAAIDi9u3bpwkTJmjfvn2uLgUAbFq+fLmky9exatCggeLi4rRgwQIdPHhQlStX1rPPPqtZs2Zp9erVMplM13UxaGewelj1sGHD9M033yg7O1t33XWXZXphYaFatmzplOIAAAAgrVixQkePHlVWVpYCAwNdXQ4AXJd27drphRdeUHp6uu677z6NHj1a0uXrTQUGBuqFF17QRx995OIq/8dqOF66dKnOnj2rqKgozZs3738LuLvLx8fHKcUBAABAysrKKvITAG4Gt956qz766CPt3r1bn376qd566y1LGD5+/LgqVaqk1NRU+fr6urjSy6yG48qVK6ty5cp65513nFkPAAAAAKAcePfdd/XTTz9p2rRp6ty5s7p06aLz589r48aN8vb21rJlyzRx4kTFx8fL29vb1eXavlp1u3btZDKZik3/8ssvHVIQAAAAAODm17dvX02YMEFhYWFyd3fXmDFjdO7cOb3yyiv64IMPVKdOHd17772aP3++Zs2a5epybYfjTZs2WX7Py8vTtm3b5OZm//tlAQAAAADsIzev4Lpvu1Ta9V7PfY6PHDkiSXrttdeKPbdnzx7L7zNmzLBfcTfI5tWq69WrZ/l366236rHHHlNCQoIzagMAAAAA/AnXE2DL0nrLApvh+Gr/+c9/dPr0aUfUAgAAAACAS5TqnGOz2ay8vDxNmjTJ4YUBAADcLHLz8+Tp7uHqMuyiPL0WACiNUp1zbDKZVLVqVVWuXNmhRQEAANxMPN099MjbTzhs/em/n7L8dGQ7krTi7y85dP0AUFbZDMf16tXTrl27tHv3brm5ualr164KCAhwRm0AAAAAADiFzXOOX375ZcXExKhKlSqqWLGiZsyYwb2PAQAAAADlis09xxs2bFBcXJyqVKkiSfrHP/6hiIgIRUZGOrw4AAAAAACcweae4+rVq+uWW26xPK5ataq8vb0dWhQAAAAA4M8rzM9z6XqnTZumkJAQNW/eXJI0depUxcXFOaQme7G559jPz0+jRo3SQw89JDc3N23YsEF169bVtm3bJEndu3d3eJEAAAAAgOtXwd1DSfMftft6/Se/cV3zrV+/XocOHZKnp6fda3AUm+H4hx9+kCS99dZbRaavWrVKJpOJcAwAAOBgJo8KRX4CQFk2cuRImc1mdezYUXl5eUpOTi7yfHx8vFauXKnCwkLdcccdmjlzpry8vFxU7f/YDMerVq1yRh0AAACwolrr2jp/OFNVWtZydSkAYNPy5cvVvHlzxcfHF7tW1dGjRxUbG6s1a9bIy8tLzz//vN58802NGjXKRdX+j81wfOzYMb311ls6ffq0zGazZfry5csdWhgAAAAuq1S/iirVr+LqMgDghu3fv19paWkaOHCgJCkvL0+tWrVycVWX2QzHEydOlL+/v7p16yaTyeSM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8LBrbTfitddeU/369YtNL0t9wNEYC6VT2rFQ1owbN07h4eHFpl/Plw2AJPn5+WnVqlWSpLy8PEVFRWnWrFnX/CLq3Llz+u677+xax7XG9xdffKH27dsXmZacnKwPPvhAa9euVcWKFXX69Gn1799fLVq0UIsWLexa241gjN48btaxUNZ07dpVMTExxabT5+EohOMS/Pbbb8rLy1N2drYk6ZZbblFMTIy8vLwkXR6oPXv21M6dO+Xm5qYJEyborbfeUlpamqZMmaJevXrp+++/1zPPPKOsrCydOXNGf//73xUZGVliexcvXtTs2bN19OhRFRQUaPjw4erdu7fi4uK0fv16nT17Vl26dNGECROs1lyzZk09/vjjev311/W3v/2txPb79u2rxYsXKysrS6+88oqGDh2qqKgopaenKyMjQ+3bt9f8+fOVnp6uiRMnKisrSxUqVFB0dLTatm2rQ4cOad68ecrOzlaNGjX09NNP66efftKOHTu0b98++fj4qFOnTkXqSkpK0ujRo4tMy8zMVF5envLy8uTp6Sl/f3/NnTtXhYWF2r9/v5YvXy6z2awff/xRISEhqlKlirZv3y7pcmCtVauW3n33XX344Ye6dOmSTCaTXnzxRTVu3LjE96akuhs0aKChQ4eqWrVqOnr0qF588UW1bNnSZt+Ii4vTgQMHivyhLigo0Pz583XgwAEVFBQoPDxcjzzyiH799dcS38ebCWPBsWPBGmvv2csvv6yvv/5av/zyi4YMGaK7775bU6dOVUFBgdq3b6/PPvtMH3/8sTIzMzVjxgz9+uuvMplM+te//qWOHTsWW37IkCE2a/n5558VGRmpHTt2FJkeHx+vlStXqrCwUHfccYdmzpypChUqKCoqSkePHpUkDR48WAMHDryu1wz7ys/P16xZs3T06FFlZmbqtttu05IlS5SZmalHH31UNWrUkJeXl15//XXNnDlTSUlJql27tkwmk0aNGqWAgAC99tpr+uijj1RQUKB7771XkyZN0okTJ4osv2LFCqs1eHh4aPLkybrvvvs0ffp0S/+4epzNmTNHGRkZGj16tJYuXapFixZp7969OnfunGrUqKGXX35Z1atXL7FvldTX/fz8iozvxx9/vEhdn332mXr06FFk2qlTp2Q2m3Xp0iVVrFhRf/nLX7R48WLVqFFDknTPPfeoS5cuOnjwoHx8fDR48GCtWrVKv/76q2JiYtShQwcdOHBAixYtUnZ2ts6dO6dJkyapZ8+eJb43jFHnYSyUbixYc+HChRJrPnDggBYsWKDCwkI1bdpU0dHRmjx5sn788Uc1aNBAv/76q5YsWaI6deqU+Flp//79RZa/+ggra7p27ap33nmnyDRrn/fefvttrV+/XhUqVFDr1q01e/bs62oDxkQ4LkGLFi10//3364EHHlDLli0VEBCgsLAwNWrUyDKPr6+vNm/erGnTpum1117TO++8oy+//FJz585Vr1699MEHH2jUqFEKCgrSTz/9pAcffNBqIHjllVd0xx136LnnntOFCxcUERGhNm3aSLq8527Lli1yd7f9X9WsWTMdO3ZMkqy2P27cOB04cECPP/64Nm3apJYtW2rx4sXKzc1VaGiovv32W+3cuVP33XefHn30Ue3fv19JSUlq1aqVoqOjtXz5ctWtW1e7d+/W9OnTtWLFCnXt2lUdOnQoFgZOnTqlatWqydPTs8j0yMhIjRgxQkFBQerQoYOCgoLUr18/S+BKTk7W5s2bVb16dXXs2FFTpkxRXFycpk2bps2bN6t///7avn27Vq1apYoVK+qll17Se++9p+nTpxd7T3Jzc63WLV0+nHfJkiUlvp+PPfaYZU/2bbfdphdffLHE+WJjYyVJ69evV25urv75z3/Kz89P+/btK/Y+3mzhmLHg2LFgzbXes9zcXG3ZskWSFB4erieeeELBwcFasWKFCgoKJEnPPvus+vfvr/vvv18ZGRkaPHiw5RDRPy5/tcWLF2vlypWWx6tXry5xvqNHjyo2NlZr1qyRl5eXnn/+eb355ptq3769zp07p/j4eP3222967rnnyv0H77Lqq6++koeHh9auXavCwkINGzZMu3bt0h133KHjx4/rjTfeUP369bVq1SpdunRJCQkJOnnypMLCwiRd/tCckpKidevWyWQyadKkSdqwYYP8/f2LLG+Lj4+PqlatqtTUVP34448ljrPo6GhFRkZq6dKlSktL07Fjx7RmzRpVqFBBkydP1saNG+Xn51di37LW1/84vq+WnJysyZMnF5nWuXNnxcXFqVOnTmrbtq0CAgLUp08f1a5dW9LlMHvfffdpzpw5Gjp0qLZv36733ntP69ev18qVK9WhQwe9++67mjNnjho3bqy9e/dq7ty5VsMxY9R5GAulGwvW7Ny5s8SaJSk1NVWffvqpqlSpopiYGN1222165ZVX9M0331j6l7XPSlcvf7UdO3aoT58+lsfTpk1TYGBgsfmsfd5744039Oqrr2r37t1yc3PT008/rfT0dMvYBq5GOLbi6aef1qhRo7Rnzx7t2bNHAwcO1MKFC9W9e3dJshweWbduXfn6+srd3V1169bV77//LunyeT+7d+/Wq6++qiNHjigrK8tqW4mJicrOzta///1vSVJWVpblG8FWrVpdVxiQJJPJpIoVK153+71799ahQ4e0YsUKHTt2TGfPnlVWVpaCgoI0duxYHT58WMHBwXr44YeVmpqqn376qcgf1wsXLlyznt27dxcLCZJUv359bdq0Sd98840SExMVHx+vFStWWD4YNGvWTHXq1JEk1ahRQ0FBQZJkeX8rV66s559/Xps3b1Zqaqp2795tda+vrbpbt25ttX5rh1Vfbe/evTp8+LD27dsn6fL/35EjR0p8H29GjAXHjQVrrlXzlT579uxZnThxQsHBwZKk/v37W75FT0xM1LFjx7R48WJJl/ec/PTTT0WWL0lJh2yePXu22Hz79+9XWlqa5UNPXl6eWrVqpUGDBun48eP65z//qc6dO2vixInX/ZphX3fffbeqV6+u1atX69ixY0pNTbX0o7/85S+Wv22ff/65Bg4cKJPJpHr16ln+3u7du1eHDh2y9Ifs7GzVrVtX/v7+RZa/HiaTSV5eXlbHWfXq1S3zNmrUSFOmTNEHH3yg48eP6+uvv1bDhg3VtGnTEvvWtfp6SX7++WfVrVtXbm5uRaZ7enpq2bJlSktL0549e7R79269+eabWrFiheVLzSt/6+rVqyd/f39JKvK3bsGCBfr000+VkJCg5OTka55fyhh1HsZCyayNBWus1Sxd3oFwJdh+/vnnWrhwoSTpzjvvtFxTxNpnpSZNmhRZ/mrWDqu+mrVts7u7u9q1a6cBAwbo/vvv15AhQwjGuCbCcQl27typrKws9erVS/3791f//v0VGxurdevWWQLBH8+NLekD+5NPPqmqVauqS5cu6tWrlzZv3my1vcLCQi1YsEB33HGHpMvfUFerVk0bN260fMC/HkeOHLEcWnw97a9atUpbt27VwIED1bFjR33//fcym83y9/fX5s2btXPnTm3ZskXr16/XlClTVL9+fX344YeSLh9KnJmZec16Pvvs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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g = sns.catplot(data=df, x='dataset_spec/train', y='img_sec_ave_tot',\n", " hue='input_mode/train', col='img_tot', ci='sd',\n", " kind='bar', sharey=False, sharex=False, height=6)\n", "g.set_axis_labels('', 'Throughput [imgs/sec]').set_titles(\"\")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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HT9+XBMmTFB4eLjmzp2roqIi7du3T02bNlWTJk1kNBoVHh6upKSk6902AACAGql+K2+ZvG9Q/Vbeji4FAGqMq+45vu+++8qc0WKxKD8/v8zH7777buvfqampSkxM1NKlS7Vr1y5NmTJFdevW1aBBg7R8+XLVrVtXnp6e1um9vLyUnp5+rdsCAADgFOrceqPq3Hqjo8sAgBqlzHD87bffVsoKDh06pEGDBum1117THXfcofnz51sf69evnxISEtS5c+cS8xkMhmtaT0pKynXXKkl+fn6VshygNMnJyY4uoQT6PGypsvo8/RQAANhameHYx8fnuheenJys4cOHa9y4cQoLC9PBgweVmpqq4OBgSZf2PhuNRnl7eysrK8s6X0ZGRrFjkivC19dXJpPpumsGbIkv+HA29HkAAFBd2OwsDidOnNDQoUM1a9YshYWFSboUht944w2dPXtWBQUFWrZsmZ544gm1bt1aR44cUVpamsxms9asWaPAwEBblQYAAAAAQDE2C8cfffSR8vLyNH36dHXr1k3dunXTTz/9pIEDB6pPnz4KCwvTPffcoy5dushkMmn69OkaNmyYQkNDdccdd5Q61BoAAAAAapp///vfGj58eKUvd9++fZo4cWKlL7c8p06dUvPmzSs07blz5/T0009Lkv7+97/r1KlT17Suynzuyr3O8WXnzp1TvXr1KrzgmJgYxcTElPpYVFRUibaAgACtXr26wssHAAAAgJrgb3/7m+bOnVvpy/3111+r/ImON27caL2E79atW695/sp87soNx4cPH9awYcN07tw5LV++XAMGDNC8efN05513VkoBAAAAAODMdu7cqX/84x/y9fWVu7u7Dh48qD/++EN33HGH3n77bd1www1q2bKlnnnmGe3cuVM5OTl6+eWX1alTJ61YsULr16/X+++/L0nW+5MmTdLcuXN1/vx5jR07VtOmTStz/WPGjJHJZNK///1vZWVlKSQkRA0bNtT333+vzMxMvf766woICND58+c1efJkHThwQAaDQQ8//LBefvllGY1Gff3115o9e7bq1KkjX1/fYsv/4osv9K9//UtFRUXy8PDQhAkTrHny22+/1dChQ62XCX7mmWf0wQcfKCoqSq1atdLBgwet63j//feVn5+vU6dO6cknn9TIkSOtz92aNWs0ZsyYMp+/iih3WPXrr7+ucePG6aabbpK3t7f69u3rkF3zAAAAAFDTpaSk6KOPPlJiYqIyMjKUlJQkSTKbzapfv75WrFihOXPmaNy4cVcdgtyoUSMNHz5c/v7+Vw3Gl+3fv1/Lli3Tl19+qcWLF6tu3br6/PPP1b9/f/3zn/+UdCkbenh46KuvvtKXX36pgwcP6uOPP1ZWVpbGjRund999VytWrCh2cuddu3YpISFBS5YsUUJCgp5//nkNGzZMkpSfn6+0tDQ1b97cWuMnn3yiRo0aSbp0eeB169bp8ccf18cff6zp06drxYoVWrZsmT744INSt7+s568iyg3HZ86c0YMPPmi9HxUVpezs7AqvAAAAAABQMQ8//LDc3Nzk6uqqZs2a6ezZs9bH+vbtK0lq0aKFmjVrpt27d1faejt27ChXV1d5enqqbt26evjhhyVJt912m86cOSNJ2rx5s/r27SuDwSA3Nzf17t1bmzdvVnJyspo1a6a77rpLkqzHEEuXhk2npaWpd+/e6tatm958802dPXtWZ86c0fbt29WhQ4cya/L395d06TK/Cxcu1C+//KJ58+Zp+vTpslgsunjxYol5rvb8ladCxxzn5eVZrzucmZmpoqKiCq8AAAAAAFAxtWvXtv5tMBhksVis911cXKx/FxUVycXFpcQ0BQUFf2m9bm5uxe4bjSWj4pU5sKioSIWFhSVq+PO8RUVF6tatm6Kjo633MzIyVL9+fX333XcKDw8vs6a6detKknJyctS9e3c9/vjj8vf3V48ePfTtt98WW+dlV3v+ylPunuPIyEg999xzOnnypN566y09/fTT6tOnT4VXAAAAAAC4fgkJCZKkX375RUeOHNH999+vhg0b6tChQ8rLy1NhYaG+//576/QuLi4qLCystPU/9NBDWrJkiSwWi/Lz8xUfH68HHnhA/v7++vXXX3XgwAFJl457vuzBBx/U2rVrlZGRIUn617/+pWeeeUaS9NNPP+m+++4rt960tDRlZ2dr5MiRevTRR7Vr1y7l5+dX+k7bcvccP/XUU7rtttu0adMmFRYWasqUKXrooYcqtQgAAAAAwNX9+OOPio+PV1FRkWbPnq369evrwQcf1P3336+QkBB5enqqffv2OnjwoCSpbdu2mjNnjoYOHar58+df9/pjYmL0+uuvKzw8XAUFBXr44Yc1ePBgubm5adasWXr11Vfl6uqq+++/3zrP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Vw0aNJAkPfjgg+rYsaP27NkjT09PRUZGKi4uTn/88YemT5+udu3aadeuXZo9e7Zyc3N19uxZRUdHKyQkpNTnhtexbdH/r63/lyU7O7vUmnft2qU333xTRUVFuvvuuxUTE6PRo0fr999/V5MmTfTHH39o3rx5atSoUanfm3bu3Fls/itHXpXl0Ucf1aefflqsrazvfosWLdLKlStVq1YttWrVSlOmTKnQOuBcCMdXaNGihR577DE9/vjjuueee9S+fXuFh4eradOm1mm8vLy0du1ajR07Vh988IE+/fRT/fjjj3rjjTcUGhqqL774Qi+++KICAgL0v//9T127di0zHLz33nu69957NWPGDGVnZ6t3795q3bq1pEt78RITE2U0lv/f1KxZMx0+fFiSylz/8OHDtWvXLg0ZMkRr1qzRPffco7lz5yo/P19hYWH65ZdftHHjRj3yyCN6/vnntXPnTiUnJ6tly5aKiYnRwoUL1bhxY/3www+aMGGCFi9erEcffVTt2rUrEQwyMzNVv359ubm5FWvv37+/Bg0apICAALVr104BAQHq3r27NXzt3btXa9eulYeHhx544AG99tprWrFihcaOHau1a9eqR48e+vbbbxUXF6fatWvrnXfe0dKlSzVhwoQSz0l+fn6ZdUuXhvbOmzev1Odz4MCB1j3Zt99+u+bMmVPqdPHx8ZKklStXKj8/X88995x8fX21Y8eOEs9jdQjH9H/b9v+yXO05y8/PV2JioiQpIiJCI0aMUFBQkBYvXiyz2SxJmjp1qnr06KHHHntMGRkZioyMtA7//PP8V5o7d64++eQT6/0lS5aUOt2hQ4cUHx+vzz//XCaTSW+99ZY++ugj+fv76+zZs0pISNDp06c1Y8aMGvmluqb46aef5OrqqmXLlqmoqEjPPPOMNm3apHvvvVdHjhzRhx9+qFtvvVVxcXG6ePGikpKSdPz4cYWHh0u69AU6JSVFy5cvl8FgUHR0tFavXi0/P79i85fH09NT9erVU2pqqn7//fdSX4sxMTHq37+/5s+fr7S0NB0+fFiff/65atWqpdGjR+urr76Sr69vqf2vrNfDn98DrrR3716NHj26WFtgYKBWrFihhx9+WG3atFH79u3VrVs3eXt7S7oUZh955BG9/vrr6tevn7799lstXbpUK1eu1CeffKJ27drps88+0+uvv64777xT27dv1xtvvFFmOOZ1bFv0/2vr/2XZuHFjqTVLUmpqqr7//nvdeOONmj59um6//Xa99957+ve//23tU2V9b7py/itt2LBB3bp1s94fO3asOnToUGK6sr77ffjhh3r//ff1ww8/yMXFRZMnT1Z6err19QxcRjguxeTJk/Xiiy9qy5Yt2rJli3r16qVZs2apU6dOkmQdKtm4cWN5eXnJaDSqcePGOnfunKRLx/f88MMPev/993Xw4EHl5OSUua5t27YpNzdXX375pSQpJyfH+itgy5YtKxQMJMlgMKh27doVXn+XLl20b98+LV68WIcPH9aZM2eUk5OjgIAADRs2TPv371dQUJD69u2r1NRU/e9//yv2hpqdnX3Ven744YcSgUGSbr31Vq1Zs0b//ve/tW3bNiUkJGjx4sXWLwDNmjVTo0aNJEkNGjRQQECAJFmfX3d3d7311ltau3atUlNT9cMPP5S517e8ulu1alVm/WUNq77S9u3btX//fu3YsUPSpf+/gwcPlvo8Vhf0f9v1/7JcrebL/fTMmTM6duyYgoKCJEk9evSw/lq+bds2HT58WHPnzpV0aQ/J//73v2Lzl6a04ZhnzpwpMd3OnTuVlpZm/XJTUFCgli1bqk+fPjpy5Iiee+45BQYG6tVXX63wNsP+7r//fnl4eGjJkiU6fPiwUlNTrX3tpptusr7nbd26Vb169ZLBYJCPj4/1fXj79u3at2+ftc/k5uaqcePG8vPzKzZ/RRgMBplMpjJfix4eHtZpmzZtqtdee01ffPGFjhw5op9//lm33Xab7r777lL739VeD6U5evSoGjduLBcXl2Ltbm5uWrBggdLS0rRlyxb98MMP+uijj7R48WLrj52X3w99fHzk5+cnScXeD9988019//33SkpK0t69e696rCmvY9ui/5eurP5flrJqli7tTLgcbLdu3apZs2ZJkv72t79ZzzVS1vemu+66q9j8VyprWPWVyvrMNhqNatu2rZ566ik99thjioqKIhijVITjK2zcuFE5OTkKDQ1Vjx491KNHD8XHx2v58uXWcPDnY2NL+/I+cuRI1atXTx07dlRoaKjWrl1b5vqKior05ptv6t5775V06Zfo+vXr66uvvrJ+2a+IgwcPWocWV2T9cXFxWr9+vXr16qUHHnhA//3vf2WxWOTn56e1a9dq48aNSkxM1MqVK/Xaa6/p1ltv1apVqyRdGkqclZV11Xo2b95c6q+Qb7/9tqKiotSqVSu1atVKgwcPVu/evbV161Y1bNiwxHHHV75ZnzhxQv369VPfvn0VGBiom2++Wfv37y+1hqKioqvWfS3Pb1nMZrOio6OtfePUqVOqW7euateuXeJ5XLRo0XWvz9bo/7bt/2W5Ws2XnwcXFxdZLJZS5y8qKtInn3xi/UKVnp6um2++Wd9++22l9fOQkBDFxMRIujQc3mw2q169elq7dq22bt2qTZs2qXv37lq7dq3q1at33etE5fvuu+80d+5c9e/fXxERETp9+rS1T/25n7i4uKioqKjE/GazWc8884yeffZZSdK5c+fk4uKi06dPX1M/y8zM1Pnz53XbbbeV+Vr8s5SUFL3yyisaMGCAgoODVatWLVksFjVo0KDU/lfW66Gsz4rNmzeXen6AhIQEeXt7KyAgQE2bNlVUVJRmz56tVatWWcPxn0eHlBYuIiMj1b59e7Vv314BAQFXDZ68jm2L/n9t/b8sV6v5yuextM+ssr437d27t1L6+dW++y1YsEA///yzNm/erOeff16zZs0q87whcF6crfoKtWvX1ltvvWU9E7HFYtGvv/5aoWNSL9u6dauGDx+uxx9/XLt375Yk6/DHK3Xo0EH/+te/JEkZGRnq2rWrTpw4cU01Z2RkaOHChdbjkMpav4uLiwoLC63TPP300+ratasMBoMOHDigoqIizZw5U6tWrVL37t01ceJE/ec//9Edd9yhs2fPas+ePZKkL7/80voB7+LiUmLbzGaz0tPT1bhx4xK1pqena/78+crPz5d06dft06dPq1mzZhXa1n//+99q2rSpBgwYoNatW2vz5s1lPrdXq7uydOjQQfHx8SooKNCFCxcUGRmpvXv3lvo8Vgf0f9v2/7JU5Dm78cYbddttt2nTpk2SpK+++sr6WIcOHbR06VJJl0660rVrV128eLHC6y9P+/bt9c033+jkyZOyWCyaNGmSPvnkE3333Xd69dVX9cgjjygmJkZ169a95v8/2M/27dsVEhKiHj166Oabb9bu3btLfW0+8MADSkxMlMViUXp6unbt2iWDwaAOHTpo1apVunDhggoLCzV06FCtX7/+mmrIz8/Xm2++qe7du6tOnTplvhaNRqP19bp79261a9dOffr00V133aWtW7fKbDaX2f/Kej38+T3gz7Zs2aKHHnqoRLvZbNZbb72lU6dOSbq0B+7IkSNq2bJlhbb1zJkzSk1NtR4KcbnusvA6ti36/7X1/7KUVXNpz+Plz6mDBw/q0KFD1uextO9NlaWsz+xTp04pJCREzZo104gRI/Tggw/q4MGDlbZe1BzsOb5Chw4d9NJLL2nw4MEqKCiQJD388MMVPrGOJA0bNkyRkZGqV6+ebr/9dvn4+JR52Z+XXnpJkyZNUpcuXay/pt12223WF3VZPv/8c3377bcyGAyyWCx6+umnFRYWdtX1t2rVSvPmzdOsWbP0zDPPaNKkSfr44491ww03qG3btjp69Kj69eunV155RStXrpSLi4tiY2Pl5uamd955R1OnTlVeXp7c3d2tJ0p44IEH9Pbbb+vGG2+0nszh559/LvP42gkTJmjGjBnq3Lmz6tSpI1dXV73yyiu68847y90bJ106Acq//vUvhYaGys3NTa1atbIOw73S1equLL1791ZaWpq6d++uwsJCRUREqH379rrttttKPI/VAf3ftv1fkmJjY/WPf/zDev+f//xnhZ+zGTNmaNy4cZozZ46aN29u/ZU9JiZGEydOtB4bN3PmTLm7u1/1ObwWLVq00EsvvaRnnnlGRUVFuueeezRw4EDVqlVL69evV1hYmEwmkzp16nRdl+lC5dmzZ4/atm1rvX/50nmvvvqqkpKS5ObmpjZt2pTaz3r16qUDBw4oPDxcnp6eaty4sWrXrq127drpwIED6tWrl8xmsx5++GF1795dx44du2otKSkp1mMFzWazOnTooOjoaEkq87Xo7++vxo0bq1+/fpo1a5ZeeuklhYeHy9XVVc2bN9fRo0et4eTK/lfW6+HP7wGXf+DKz8/X+fPndfPNN5eou0ePHjp9+rT69OmjWrUu7UsICwvTU089VaH/g8tn0A8LC5O7u7vatGmj3NzcMg814XVceej/19//pUs/wv75B4BBgwaVWfNtt91WbN4XX3xRY8eOVXh4uG677TbdfPPNql27dpnfm3bu3Fnef2uFlPWZ3bBhQ/Xu3VtPPfWU6tSpo0aNGql79+6Vsk7ULAZLWeP0AABVyrx589SrVy95eXnp66+/1ldffWW9djRQWTZu3CiLxaKOHTvq/PnzevLJJ/Xll18WOw4SqKno/5Vj1apVuvXWW+Xn56fjx4+rb9+++vbbb60/NAFVFXuOAaCaaNy4sf7+97/LaDSqXr16mjp1qqNLQg105513avTo0daz9A8fPpxgAKdB/68cd9xxh2JjY1VUVKRatWppypQpBGNUC+w5BgAAAAA4PX7CAQAAAAA4PcIxAAAAAMDpEY4BAAAAAE6PcAwAAAAAcHqEYwAAAACA0yMcAwAAAACc3v8HDYrRwcb1XLEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "g = sns.catplot(data=df, x='dataset_spec/train', y='t_training_sm',\n", " hue='input_mode/train', col='img_tot', ci='sd',\n", " kind='bar', sharey=False, sharex=False, height=6)\n", "g.set_axis_labels('', 'Billable time [sec]').set_titles(\"\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Replicate plots from the blog post\n", "Now let us try to replicate the benchmark plots from the blog post, which show the total job time with the breakdown for the downloading, training, and other stages. See *[\"Choose the best data source for your Amazon SageMaker training job\"](https://aws.amazon.com/blogs/machine-learning/choose-the-best-data-source-for-your-amazon-sagemaker-training-job/)* for details." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Some helper function for fancy plotting" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def change_width(ax, new_value) :\n", " for patch in ax.patches :\n", " current_width = patch.get_width()\n", " diff = current_width - new_value\n", "\n", " # we change the bar width\n", " patch.set_width(new_value)\n", "\n", " # we recenter the bar\n", " patch.set_x(patch.get_x() + diff * .5)\n", " \n", "def show_values_on_bars(axs):\n", " def _show_on_single_plot(ax): \n", " for p in ax.patches:\n", " _x = p.get_x() + p.get_width() / 2\n", " _y = p.get_y() + p.get_height()\n", " value = '{:.2f}'.format(p.get_height())\n", " ax.text(_x, _y, value, ha=\"center\") \n", "\n", " if isinstance(axs, np.ndarray):\n", " for idx, ax in np.ndenumerate(axs):\n", " _show_on_single_plot(ax)\n", " else:\n", " _show_on_single_plot(axs)\n", "\n", "def plot_stacked_times(df, title=None, lim=None, savefile=None, bar_width=0.5, **kw):\n", " \n", " import matplotlib.patches as mpatches\n", " import matplotlib.pyplot as plt\n", " sns.set_palette(\"deep\")\n", " \n", " x_col = 'input_mode/train'\n", " \n", " clrs = {\n", " 'train': 'coral',\n", " 'download': 'cornflowerblue',\n", " 'rest': 'grey'\n", " }\n", " \n", " _df = df.copy()\n", " \n", " _df['t_dnt'] = _df['t_training_exact'] + _df['t_downloading']\n", " \n", " fig, ax = plt.subplots()\n", "\n", " bar_tot = sns.barplot(x=x_col, y=\"t_training_sm\", data=_df, color=clrs['rest'], ax=ax, **kw)\n", " bar_dnt = sns.barplot(x=x_col, y=\"t_dnt\", data=_df, color=clrs['download'], ax=ax, **kw)\n", " bar_exact = sns.barplot(x=x_col, y=\"t_training_exact\", data=_df, color=clrs['train'], ax=ax, **kw)\n", " \n", " if lim:\n", " bar_tot.set_ylim(lim)\n", " bar_dnt.set_ylim(lim)\n", " bar_exact.set_ylim(lim)\n", "\n", " top_bar = mpatches.Patch(color=clrs['rest'], label='setup time')\n", " mid_bar = mpatches.Patch(color=clrs['train'], label='training time')\n", " bottom_bar = mpatches.Patch(color=clrs['download'], label='downloading time')\n", " \n", " #change width\n", " change_width(ax, bar_width)\n", " \n", " #add text\n", " #show_values_on_bars(ax)\n", "\n", " #plt.legend(handles=[mid_bar, bottom_bar], loc='upper left')\n", " \n", " ax.tick_params(axis='y', which='major', labelsize=14)\n", " ax.tick_params(axis='x', which='major', labelsize=16)\n", " \n", " ticklabels = ['FSx', 'File', 'FastFile']\n", " ax.set_xticklabels(ticklabels)\n", " \n", " ax.set_xlabel('Input Mode', fontsize=18, fontweight='bold')\n", " ax.set_ylabel('Job Time [s]', fontsize=18, fontweight='bold')\n", " \n", " fig.set_size_inches(8, 6)\n", " \n", " if title:\n", " plt.title(title, fontdict = {'fontsize' : 20})\n", "\n", " # show the graph\n", " plt.show()\n", " \n", " if savefile:\n", " fig.savefig(savefile, bbox_inches='tight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Blog post plots" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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Hj1YsWIFR44coUuXLjzxxBN3/Ry2b99OjRo1KF68+B2na9SoEUePHqVXr1706NGDVq1a2cy/QoUKVKhQId37DMOgR48epKamEhgYyLFjxwgPD6d///5UqlSJY8eO0aZNG2JjY9mwYQP9+vVj48aNFCpUCIBFixYxduxYKlasyPPPP4+joyMHDhxg8+bN7Ny5kw0bNlC6dOm7rmea33//nX/9619cvHiRZs2aUaVKFX755Rfmz5/Pjh07WLx4MYULF7ZOf+XKFf773//yzDPP4OrqSpUqVbK8rJwybdo0Zs2aZR0HY7FY2LBhA7169WLixIm88MILAJw6dYpevXrh4OBAmzZtKFq0KFFRUcybN48DBw7w1Vdf5XntAhgiuSA4ONjw8PCw/vj5+Rl9+/Y1FixYYJw/fz7d9N999511unPnzlnbp06danh4eBjVq1c3fvnlF2v78uXLDQ8PD2PSpEnWtt69exs1atQwTpw4YTPvtWvXGh4eHsZrr71mbRs5cqTh4eFhHD582DAMwzh79qzh4eFhDBw40DrNvHnz0i3DMAxj//79Rs2aNY2OHTta2z799FPDw8PD6NChg3Hr1q27fj5py3v55ZfvON1PP/1keHh4GIMHD7a2tW7d2qhXr54RGxtrM+3cuXMNDw8PY+rUqda2tM91wYIF1raoqCjDw8PDGD58uM37k5OTjeeff97w8PAwfv31V8MwDGPhwoWGh4eHERoaajPte++9Z3h4eBhbt241DMMw4uPjjfr16xsNGjQwzp49a53u1q1bxquvvmp4eHgYP/30k7X9n5//3Tz99NPGRx99dNfprl+/brz00ks2217jxo2N1157zVi5cqVx48aNdO9Jq6VTp05GYmKitb1Lly6Gh4eH0bx5c+P69evW9lGjRtmsT2JiouHn52e0atXKuHnzps280/4fLF261NrWrFkzw9/f3/o6o99R3759DU9PT+vnm+arr74yPDw8jA8//NDa9vLLLxseHh7GhAkT7vr5GIZh7Ny50/Dw8DDat29vfPrppxn+/P33kjb9Bx98kOk6REdHG56ensbLL79sxMfHW9svX75stGzZ0vDx8TEuXbpkGIZhTJw40fDw8DAiIiJs6urXr5/h4eFhHDt2LEvrITlLpwkkV4wZM4Y5c+bw9NNP4+joyI0bNwgLC2PChAk888wzTJ06NcOBba1ataJcuXLW135+fgA0aNCAatWqWdtr1aoFwLlz56xtPXv2ZPLkyen2ip566ikg+4PWQkNDKVq0KMOGDbNp9/b2pk2bNhw4cIDjx4/b9LVs2RIHh5z7b+Xk5ARgPXyamprK8OHDmTRpUroBcFldz0cffZSJEyemO5RcsGBB/P39beaR9js6dOgQt27dsk47bNgwwsPDadq0KQBbtmzh8uXLvPLKKzZ73g4ODtYxImlHG7Lr2LFjXLx4kaeffvqu07q6uvLNN98wevRoatasCcAff/zB999/z4gRI2jevDlr167N8L3/+te/rJ83QO3atQHo0qULrq6u1vZ/bnu3bt1i7NixjBs3zmZvHaBevXpA9ra9P/74g23bthEQEGD9fNO8/PLLlC1b1nqa5e9atWqV5WUAHDlyhBkzZmT4k91TG6GhoRiGwYgRI6xHSwCKFy9O3759SUhIYP369cD/b1MHDhywmceECROIiIigatWq2Vq25AydJpBc07RpU5o2bcrNmzf5+eefiYiIYMuWLZw5c4a5c+eSmprKG2+8YfOeihUr2rxO+8Pyz0O7zs7OwO1z+mnSvixiY2M5cuQIMTExnDp1isjISACbL7O7uXnzJqdOncLd3Z3Zs2en64+LiwPgl19+sfnjldEh6PuRNuYg7UvGwcGBli1bAre/jI4fP05MTAwnTpxg165dAHe9euDRRx8lMDCQlJQUDh06xKlTp4iJieGXX36xnptPm0fr1q2ZOXMmixcvZt26dTRu3JgmTZoQEBCAu7u7dZ4HDx4EboeG6dOnp1tmgQIF7vka//DwcIoUKWK91O1uHB0d6d69O927dyc2NpadO3eyY8cOtmzZwtWrVxk+fDiurq4EBATYvO+f217aZ363ba9QoUI8++yzwO1D4CdPniQmJobjx48TEREB3P138neHDx/GMAyuXr2a4Wfp6OjI+fPnuXjxImXKlLG2Z3fbCwwMZOLEidl6T2YOHToEwA8//GAdQJzmwoULANaAERgYyJIlS5gyZQqLFi2iSZMmNGnShEaNGqULU5J3FAYk1xUpUoSAgAACAgIYOXIkoaGhvPvuuyxatIjBgwfb7En8/d9/9/c9tsz8/vvvfPDBB2zZsgXDMHBwcKBy5cr4+/tz+PDhbNWcticeGxvLjBkzMp3u2rVrNq9dXFyytZy7SRvw99hjj1nbjh49ygcffMDu3buB218OVapUwcvLi9OnT9sM1svM0qVLmTlzJn/88QcARYsWxcfHhypVqhAdHW2dR5kyZQgNDWX27Nls3ryZNWvWsGbNGhwdHenQoQPvvPMOTk5OXL9+HSDTvW5I/1llVXh4OPXr1093ZUpWuLu7065dO9q1a0dCQgITJkwgJCSEefPmpQsDmX0RZWXb27NnDxMmTLB+KTo7O1OtWjVq1qzJ+fPns/Q7SZN25ci+ffvYt29fptNdvXrVJgzk9LaXHWm//7lz52Y6Tdrvv1q1aixbtozPPvuMsLAwli1bxrJlyyhcuDA9evTgv//97z3fV0PuncKA5KgbN27QoUMHHn/8cebMmZOu32Kx0KlTJzZs2EB4eDgXLlzg8ccfv+/lGoZB//79OXHiBP3796dFixZUrVoVFxcX4uLi+Pbbb7M1v7Qvhjp16rB48eL7ru9epR3VSDtkfePGDXr37s3169cZOXIkDRs25IknnsDJyYno6Gi+//77u85z/fr1BAcH4+npSXBwMDVr1qRs2bIABAcHEx0dbTP9Y489xvjx47l16xYHDx5k+/btLF++nJCQENzc3HjjjTesn9eXX35pM1L/fv3111/8/PPPjBo16q7TRkRE8NZbb9GlSxcGDBiQrr9QoUK88847rFmzhtOnT+dYjefOnaNPnz64uLgwduxY/P39qVy5MgUKFGDdunVs2rQpW/NL+ywHDRqUo1cF5KbChQtToEABoqOjrQNK76RatWp88sknJCUlERUVxbZt21i+fDmfffYZZcqUoVu3bnlQtfydxgxIjnJ1deX69evs2LHDeig9Mw4ODjaHmu/H0aNHOXbsGC1btmTYsGF4e3tb95ROnjwJkK29Mzc3N8qVK8eJEyf466+/0vWvXLmS6dOnW/fcc8Pvv//O1q1bKVq0qHUvdufOncTFxdG9e3d69+5NtWrVrHuuGa1nRntYaYFh6tSptGjRwhoEAOsleWnz2Lx5M2PGjOHGjRsUKFAAHx8fBg8ebA1IaWHF09MT+P/TBX939epVxo0bx6pVq+5YV0Z2795NYmJilu6e6O7uzu+//37Hy0jTlpudkf13s2nTJv766y+GDBlC586dqVKlivXKmXvZ9u70WQJ8+umnzJ071+YUmb15enpy69atDMca7Nu3jylTpvDzzz8Dt//vjB07FsMwcHJy4qmnnuKNN96wnhJJ26YkbykMSI7r3r07SUlJDBkyxHoY+u82b97Mjh07aNmypc3ArPuR9oX4z2vkr169yqRJk4Db16BnR2BgIFevXmXKlCk253xPnDjB+++/z4IFCyhWrNj9FZ6JK1eu8Nprr5GcnMzAgQOtwSbtfPU/B6T9/vvv1tMZf1/PtEPrafd++Ps8/hnWVq5caT31kDaPX3/9lSVLlrBkyRKbadMGz6UN9kz7Xc6fP59Tp07ZTDt58mS+/vprYmJi7lhXRsLDw6lYsWK68/kZefLJJ3nqqac4fPgw77//PomJiTb9qampfPLJJ8THx9OhQ4e7zi+rMvs8jxw5wtdffw1kb9t77LHHqFu3Ltu2bUt3L42VK1cyc+ZMtm/fnqXTF3kl7fbO48ePt7lXwI0bNxgzZgzz5s2zjtnZt28fixYtsg4oTJMWrP8+gFjyjk4TSI4bMGAAx44dY+PGjbRq1YrGjRtTuXJlUlJSiI6OZu/evTzxxBOMGTMmx5ZZuXJlatWqxZ49e+jWrRt+fn5cuXKFTZs2kZSURKFChbhy5Uq25tmvXz/r/QQiIyOpV68ef/75Jxs2bCAhIYEpU6bcd5g5d+6czSCxv/76i3PnzrF9+3Zu3LhBYGAgvXr1svb7+/tTvnx5Vq1axZUrV6hWrRrnz59n8+bNODs7Y7FYuHr1qnX6tHPKS5Ys4dq1awQFBdG+fXvWrl3L4MGDee6553B1deXAgQPs3r2bkiVLcunSJes8OnfuzLJly5gyZQq7d+/G09OTS5cusWHDBgoXLky/fv2A22MOPvjgA15//XUCAwNp0aIFpUuXZs+ePezfvx9vb2969+6drq6JEyfSsGFDBg8enOHnEx4enq1nKkydOpUePXqwePFiNm7cyNNPP02ZMmW4du0aERERnD59mjZt2uToYehmzZoxdepU5syZw6+//krFihU5c+YMW7duxc3NDcDmd5IV77//Pt27d2fo0KE0adKEqlWrcurUKX766SeKFStGcHBwjtWfE+rXr09QUBALFy7kueeeIyAgACcnJzZt2sT58+fp2rWr9WqXPn36sH79el5//XU2bNhApUqVOHfuHD/88APu7u68/PLLdl4bc1IYkBxXsGBBPv30U3788UdWr17N/v372bZtG46OjlSqVInhw4fTo0ePHB3w5ODgwKxZs/joo4/43//+x6FDh3j00Udp0qQJAwcOZOrUqWzatImYmJgs7WXC7QFZX3/9NfPnz2fdunV88803uLm54efnR//+/a2Xjd2Pc+fO2QxQdHR0pHjx4tSrV4+OHTume3ZD4cKFWbBgAVOmTCEyMpKff/6ZsmXL0r59e/7zn//Qr18/fv75Z+sNj+rWrUv37t1ZtWoVixcvpmHDhjRt2pSPP/6YefPmsWbNGlxcXHjssccYPXo0tWvXJjAwkLCwMJ5//nkeeeQRFi1axOzZs/nf//7Hzp07cXV1pUmTJgwePNjmSoq2bdvy6KOPMmfOHLZv305CQgLly5dn0KBBvPLKKzY3YOrWrRt79+7l559/5uTJk/Tq1SvdDZrOnz/PyZMnee2117L8ebq7u7Nq1SqWLl3Kjz/+yLZt2/jzzz9xdXWlevXqDB48mHbt2mX313RHZcqUYcGCBXz00Ufs3LmT8PBwypUrR1BQEP3796dVq1Zs374dwzCyfHrkiSeeYPny5cyaNYuwsDAiIiIoXbo0L7zwAv/5z39sBpQ+KN555x28vb1ZsmQJq1evpkCBAjz++OO8+uqrNg+GqlChAkuWLGHWrFns3buXLVu2ULx4cdq3b8/gwYNtBkVK3rEY2TmZJSIiIg8du44Z+P7779M9QzvtefLnzp2jd+/e+Pr60rZt23QPFtm5cyft2rXDx8eHoKAgzpw5Y49VEBERyffsGgaOHz9Oy5Ytrc9uDw8PZ+LEiRiGwaBBgyhWrBihoaEEBgYyZMgQ68Nhzp8/z8CBA2nfvj3fffcdpUqVYtCgQQ/ko1pFREQedHYdM3Dy5Ek8PT3TXV4WERHBqVOnWLx4Ma6urjz55JPs2LGD0NBQhg0bxrJly6hWrRp9+/YFbo9gbdSoETt37rzrU81ERETEll2PDJw4cSLDG85ER0dTo0YNm5Ha/v7+1rtxRUdHU7duXWtfoUKFqFmzJlFRUbles4iIyMPGbkcGkpKSOHv2LFu3bmXatGkYhkGbNm0YMmQIsbGx6W4KUrJkSes9rjPrv3jxYpaWnZqays2bN3F0dNRtL0VE5KFnGAbJyckUKVIkw4ep2S0MnDlzhpSUFAoXLsz06dOJiYlh3Lhx3Lx5k8TExHS3tHRycrLeoCQhISHdDTecnJyyfEeumzdvcuzYsZxZERERkXzCw8PDev+Lv7NbGKhatSo7d+6kePHiwO17VRuGwfDhw+nUqZPNXazg9pGEv9+F7Z9f/ElJSVm+G1xa0PDw8Hig7uIlIiKSG5KSkjh27Fimz46w6wDCtCCQpkqVKiQnJ1O6dOl0jzuNi4uzDjQsU6YMsbGx6fqz+hzstFMDTk5O1luJioiIPOwyOzVutwGEP/zwAw0bNrTZwz98+DBFixbF19eXI0eOEB8fb+2LjIy0Ps/cx8eHvXv3WvsSEhI4fPhwlp93LiIiIv/PbmGgbt26GIbB6NGjrffcnjRpEq+88gr16tWjXLlyjBo1iuPHjzN37lyio6Pp1KkTAB07diQ6OprZs2dz4sQJ3n77bcqVK5ejj04VERExC7uFgeLFi/P5559z7tw5OnTowLvvvkvXrl3p378/BQoUYNasWVy+fJkOHTqwatUqZsyYQYUKFYDb97aePn06q1atomPHjsTFxTFr1qwMR0iKiIjInZny2QSJiYkcPHgQLy8vjRkQEZGH3t2+97QrLSIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwIPKASUlJsXcJch/0+5P8qKC9CxARWwULFuS9996zdxlyj4KDg+1dgki26ciAiMhDTkcr8re8+P3pyICIyENOR5vyt7w42qQjAyIiIib3wISBd955h6CgIOvrI0eO0KVLF3x8fOjQoQP79++3mX7dunW0bNkSHx8fBg4cyKVLl/K6ZBERkYfCAxEGIiIi+Pbbb62v4+Pj6dOnDz4+Pixfvhx/f3/69+/PjRs3ANi/fz+jRo1i4MCBhISEcOPGDUaMGGGv8kVERPI1u4eB+Ph43n33Xfz8/Kxt69atw9HRkVGjRlGlShXeeust3NzcWL9+PQCLFi2iVatWdOjQgWrVqjFp0iTCw8M5c+aMvVZDREQk37J7GPj444+pV68e9erVs7ZFR0fj5+eHg8Pt8iwWC35+fkRFRVn769ata52+bNmylC9f3tovIiIiWWfXMBAVFcWGDRsYOXKkTXtsbCylS5e2aStZsiQXL14E4I8//rhjv4iIiGSd3S4tTEpK4u233+att97ikUceselLSEjAycnJps3JyYmkpCQA/vrrrzv2Z9XBgwfvoXKR3OXv72/vEuQ+RUZG2rsEG9qm8r/c3qbsFgZmzpxJpUqVaNu2bbo+Z2fndF/sSUlJuLi4ZKk/q7y8vHB2ds5m5SIid6YvX8lp97tNJSYm3nEH2G5hYM2aNcTGxlK7dm0AkpOTuXXrFrVr1+b5558nNjbWZvq4uDjc3d0BKFOmDHFxcZn2i4iISNbZbczAwoUL+f7771m5ciUrV66kU6dOeHl5sXLlSnx8fIiKisIwDAAMw2Dv3r34+voC4OPjY3PI5Pz58/z+++/WfhEREck6ux0ZKF++vM3rokWL4uLiQqVKlShZsiRTp05l7NixdOvWjWXLlnHz5k2effZZAP71r38RFBSEn58fPj4+jBs3jiZNmlC5cmU7rImIiEj+ZvdLCzPi6urKnDlziIqKIjAwkL179zJ37lxcXV0BqF27NmPHjmX27Nl07doVNzc3PvzwQztXLSIikj89MA8qGjZsmM3rWrVqsWLFikynDwwMJDAwMLfLEhEReeg9kEcGREREJO8oDIiIiJicwoCIiIjJKQyIiIiYnMKAiIiIySkMiIiImJzCgIiIiMkpDIiIiJicwoCIiIjJKQyIiIiYnMKAiIiIySkMiIiImJzCgIiIiMkpDIiIiJjcA/MIYxG5LTklleDgYHuXIfcoOSUVx4Laz5L8RWFA5AHjWNCBEfNO2rsMuUeT+laxdwki2ab4KiIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwkANSUlLsXYLcI/3uRESgoL0LeBgULFiQ9957z95lyD0IDg62dwkiInanIwMiIiImpzAgIiJicgoDIiIiJqcwICIiYnKZDiCcMWNGjixg8ODBOTIfERERyR13DAMWi+W+F6AwICIi8mC766WFZcqUwcEhe2cTUlNTuXDhQo6ECREREclddw0DISEhlClTJlszvXDhAk2bNr3XmkRERCQPZRoGypUrd3uCgtm/L1HBggUpV66cjgyIiIjkA5l+02/ZsuWeZ1qqVKn7er+IiIjknWwNBrh+/To//PCD9fWyZct46aWX6Nq1K5s3b87x4kRERCT3ZfkcwNmzZ+nRowfx8fG0atWKiIgIRo8ejcViwTAMXn31VebNm0ejRo1ys14RERHJYVk+MjB9+nTOnz9PQkIC165dIyQkBIDq1atTsWJFUlNTmT9/fq4VKiIiIrkjy0cG9uzZg8ViYeLEiRQtWpSIiAgsFguffPIJFy5coEePHhw8eDA3axUREZFckOUwEBcXB0CtWrU4evQo165do3Tp0lSsWNF61UBiYmLuVCkiIiK5JsunCQoXLgzcvodA2mDBBg0aALB7924AHn300ZyuT0RERHJZlo8M1KpVi/DwcIYMGcLNmzexWCy0atWKH3/8kTFjxmCxWGjYsGFu1ioiIiK5IMtHBoYOHYqbmxuXL18mMTERX19fmjdvjqOjI8nJyZQuXZoBAwZka+EnT56kZ8+e1K5dm2bNmtkMQDx37hy9e/fG19eXtm3bEhYWZvPenTt30q5dO3x8fAgKCuLMmTPZWraIiIjcluUw4OXlxapVq3j33Xf54IMP+PLLL7FYLHh4eNC5c2eWLl2ardMEycnJ9O3bl7Jly7Jy5UpGjx7NrFmzWL16NYZhMGjQIIoVK0ZoaCiBgYEMGTKEs2fPAnD+/HkGDhxI+/bt+e677yhVqhSDBg0iNTU1+5+AiIiIyWV6mmDlypUAtG3bFmdnZwDKli1L9+7dbaYrV64c77//vk3bX3/9xYYNGwB48cUXM5z/xYsXqVWrFsHBwbi4uFCpUiUaNmzInj17cHd359SpUyxevBhXV1eefPJJduzYQWhoKMOGDWPZsmVUq1aNvn37AjB+/HgaNWrEzp07dapCREQkmzI9MjBq1Cjeeustrl69mu2ZXrt2zfr+zFSoUIFPPvkEFxcXDMMgMjKSPXv20KBBA6Kjo6lRowaurq7W6f39/dm3bx8A0dHR1K1b19pXqFAhatasSVRUVLZrFRERMbs7DiA0DIMNGzbwyCOPZGum165ds74/K5o0acIff/xBs2bNaN26NePHj6d06dI205QsWZILFy4AEBsbm2H/xYsXs1WniIiIZOFqgokTJ+Z6EbNmzeKPP/5gzJgxTJgwgYSEBBwdHW2mcXJyIjk5GYCEhAScnJzS9SclJeV6rSIiIg+bux4ZyAve3t7A7bEGI0eOpGPHjty4ccNmmqSkJFxcXABwdnZO98WflJREsWLFsrXcnLpjor+/f47MR+wjMjLS3iXY0PaU/2mbkpyW29tUpmHgyJEjubrgixcvcvDgQZ555hlrW5UqVUhOTsbd3Z1jx47ZTB8XF4e7uzsAZcqUITY2Nl1/1apVs1WDl5eXdXCkmJf+UEpO0zYlOe1+t6nExMQ77gBn6xHGOenkyZO8+uqrXLp0ydp26NAhSpQogb+/P0eOHCE+Pt7aFxkZia+vLwA+Pj7s3bvX2peQkMDhw4et/SIiIpJ1dgsDdevWpUqVKowaNYqTJ0+ydetWpk6dyoABA6hXrx7lypVj1KhRHD9+nLlz5xIdHU2nTp0A6NixI9HR0cyePZsTJ07w9ttvU65cOevtkUVERCTr7BYGHB0dmTt3LgUKFKBTp06MHj2af//73/To0YMCBQowa9YsLl++TIcOHVi1ahUzZsygQoUKwO3LEqdPn86qVavo2LEjcXFxzJo1CwcHu62OiIhIvpXlZxPkhrJly/LZZ59l2FepUiUWLVqU6XsDAgIICAjIrdJERERMQ7vSIiIiJqcwICIiYnLZDgMrV66kX79+BAQEWEfvBwcHWx8iJCIiIvlLlscM/PXXX/Tv35/du3dbb0ZksVi4dOkSISEhbN68mW+++YaKFSvmWrEiIiKS87J8ZGDmzJns2rULFxcXnnvuOWv7lStXKFKkCJcuXWLatGm5UqSIiIjkniyHgbVr12KxWJg4cSIjRoywtj/55JN88sknGIbBrl27cqVIERERyT1ZDgNpt//19PRM11e+fHkArl+/nkNliYiISF7JchgoV64ccHsA4T8tXboUwHpTIBEREck/shwGOnbsiGEYzJkzh5deesna/swzz7Bw4UIsFgsvvPBCrhQpIiIiuSfLYaBPnz60b98ewzCspwwMw+DcuXMYhkGrVq3o3bt3rhUqIiIiuSPLlxY6ODgwadIkXnrpJX744QdiYmIoUKAAFSpUoE2bNnpkp4iISD6V7WcT1KtXj3r16uVGLSIiImIH2QoD586dIzw8nCtXrpCSkpLhNIMHD86RwkRERCRvZDkMhIWFMWTIEJKSku44ncKAiIhI/pLlMDBlyhQSExNzsxYRERGxgyyHgZiYGCwWC4MGDaJ79+4UKVIEi8WSm7WJiIhIHsjypYWVK1cG4Nlnn6VEiRI4Ozvj5OSU7kdERETylyyHgddeew0HBwemTZvGpUuXcrMmERERyUNZPk3QqFEj6tevz48//siPP/6Iq6srzs7ONtNYLBa2b9+e40WKiIhI7slyGJg8eTI7duwAbt958Pr16+keTKQxBCIiIvlPlsNA2gOKihYtylNPPUWhQoVwcMjyWQYRERF5QGU5DBiGAcDs2bPx8/PLtYJEREQkb2V5175Vq1YAJCcn51oxIiIikveyfGSgX79+REVF8frrr9OrVy8qVaqUbgAhQOPGjXO0QBEREcldWQ4DrVu3tv578uTJGU5jsVg4fPjw/VclIiIieSbbYwZERETk4ZLlMPD111/nZh0iIiJiJ1kOA/Xq1cvNOkRERMROMg0DISEhALzwwgu4uLhYX99Nly5dcqYyERERyROZhoHg4GAcHBxo2rQpLi4uBAcH3/UOgxaLRWFAREQkn7njaYLU1FSb1xpEKCIi8vDJNAxs3rwZgNKlS9u8FhERkYdLpmFgxowZWCwW3nzzTdzc3Chfvnxe1iUiIiJ5JNPbEa9YsYIVK1YQHx+fl/WIiIhIHtNjB0VERExOYUBERMTk7nrToaFDh+Lk5JSlmVksFr766qv7LkpERETyzl3DwL59++46E4vFgmEYd70PgYiIiDx47hoGatSogaOjY17UIiIiInZw1zAwe/ZsypQpkxe1iIiIiB1oAKGIiIjJKQyIiIiYXKanCV588UUsFguFCxfOy3pEREQkj2UaBiZOnJiXdYiIiIid6DSBiIiIySkMiIiImJzCgIiIiMkpDIiIiJjcXW86lJGLFy9y4cIFHBwcqFChAsWLF8/pukRERCSPZCsMhIWFMWnSJH799Veb9lq1ajFy5Ej8/PxytDgRERHJfVk+TRAWFsagQYP49ddfMQzD5ic6Opp///vf/Pzzz7lZq4iIiOSCLB8ZmDZtGrdu3aJQoUJ07doVb29vChQowOHDh1m8eDE3btxg8uTJhISE5Ga9IiIiksOyHAZOnDiBxWLhvffeo3379tb21q1bU61aNYYNG8aRI0dypUgRERHJPVk+TVC2bFkAatasma6vcuXKADz22GPZWnhMTAwDBgygbt26NGnShIkTJ5KYmAjAuXPn6N27N76+vrRt25awsDCb9+7cuZN27drh4+NDUFAQZ86cydayRURE5LYsh4GhQ4diGAaLFi3CMAxre0pKCrNmzcJisTBo0KAsLzgpKYkBAwbg5OTE0qVLmTJlCps2beLjjz/GMAwGDRpEsWLFCA0NJTAwkCFDhnD27FkAzp8/z8CBA2nfvj3fffcdpUqVYtCgQaSmpmZj1UVERATucJpg+PDh6dpKlSrF0qVLCQsLo1q1aqSkpHDo0CEuX75MjRo1iImJyfKC9+/fT0xMDN9++y1FihShSpUqDB06lIkTJxIQEMCpU6dYvHgxrq6uPPnkk+zYsYPQ0FCGDRvGsmXLqFatGn379gVg/PjxNGrUiJ07d9KwYcN7+BhERETMK9MwsHbtWiwWS7p2wzD4/fffOX/+vPW1xWLh8OHDHD58mAEDBmRpwU888QRz586lSJEi1jaLxcKff/5JdHQ0NWrUwNXV1drn7+9vvVohOjqaunXrWvsKFSpEzZo1iYqKUhgQERHJpkzDQLly5XJ1wSVKlLD54k5NTWXRokU0bNiQ2NhYSpcubTN9yZIluXDhAkCm/RcvXszVmkVERB5GmYaBLVu25GUdTJgwgV9++YXQ0FAWLFiAo6OjTb+TkxPJyckAJCQk4OTklK4/KSkpz+oVEckvklNSCQ4OtncZco+SU1JxLJi7Tw+4p9sRnzx50nqpoYeHh/VqgnthGAbjxo1jyZIlTJs2japVq+Ls7MyNGzdspktKSsLFxQUAZ2fndF/8SUlJFCtWLFvLPnjw4D3X/Xf+/v45Mh+xj8jISHuXYEPbU/73IG5TI+adtHcZco8m9a2S69tUtsLA2bNnGTVqFHv37rVpr1u3LhMmTKB8+fLZWnhqaipvv/02a9as4eOPP6ZFixYAlClTJt09C+Li4nB3d7f2x8bGpuuvWrVqtpbv5eWFs7Nztt4jDx99+UpO0zYlOe1+t6nExMQ77gBn+bjDH3/8Qbdu3di7d2+62xHv3r2b7t27ExcXl63iJk6cyJo1a5g+fTqtWrWytvv4+HDkyBHi4+OtbZGRkfj6+lr7/x5IEhISOHz4sLVfREREsi7LYWDGjBnExsbi4uLCa6+9RkhICEuWLGHYsGEULlyYixcvMmPGjCwveN++fXz11VcMGTIELy8vYmNjrT/16tWjXLlyjBo1iuPHjzN37lyio6Pp1KkTAB07diQ6OprZs2dz4sQJ3n77bcqVK0eDBg2y/wmIiIiYXJbDwE8//YTFYuHtt9+mX79++Pj4ULt2bfr3789bb72FYRjZGnS4ceNGAKZOnUrjxo1tfgzDYNasWVy+fJkOHTqwatUqZsyYQYUKFQCoUKEC06dPZ9WqVXTs2JG4uDhmzZqFg0PuDrAQERF5GGV5zMDVq1cBMnxMce3atW2myYqRI0cycuTITPsrVarEokWLMu0PCAggICAgy8sTERGRjGV5V/rRRx8FSPeMAIBt27YB///8AhEREck/snxkoEWLFnzxxRdMnTqVM2fOUK9ePQB2795NaGgoFovFejWAiIiI5B9ZDgMDBw7khx9+4LfffiMkJISQkBBrn2EYlCtXjv79++dKkSIiIpJ7snyawM3NjWXLlvH8889TsGBB62WFBQoUoGXLlixZsoSiRYvmZq0iIiKSC7J106ESJUowZcoUxowZw+nTpylYsCAVKlSweaCQiIiI5C/3dDtiV1dXvLy8croWERERsYNMw8DdbiBksVhwcXGhZMmS1KlTx3oPABERebAYKclM6lvF3mXIPTJSkrEUdLz7hPfhjmHAYrFkaSYFChQgKCjojvcNEBER+7AUdOSPSRrgnV+VHjEn15dxxwGE/3wGQWY/KSkpfPnll3zzzTe5XrCIiIjkrEyPDOzfv/+ub75165b1VsArVqwgJCSEbt265WiBIiIikrsyPTLg5OR0159ChQrx2GOP0adPHwBiYmLyrHARERHJGTnyZJ9NmzYB4OiYuwMcREREJOfd06WFaRYvXsy8efO4ePEiFovFeotiERERyT/u+8jAhQsXMAyDRx55hOHDh+dETSIiIpKH7uvIQPXq1WnWrBleXl506dKFUqVK5VRdIiIikkfuKwz4+fkxe/bsnKpFRERE7CBHBhCKiIhI/qUwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImpzAgIiJicgoDIiIiJqcwICIiYnIKAyIiIianMCAiImJyCgMiIiImV9DeBTwMklNSCQ4OtncZcg+SU1JxLKhMLCLmpjCQAxwLOjBi3kl7lyH3YFLfKvYuQUTE7rRLJCIiYnIKAyIiIianMCAiImJyGjMg8oAxUpI1liEfM1KSsRR0tHcZItmiMJAD9Mc7/3oQ/3BbCjryx6T+9i5D7lHpEXPsXYJItikM5AD98c6/9IdbRERjBkREREzvgQgDSUlJPP/88+zYscPadvXqVYYMGYKfnx/NmzdnxYoVNu85cuQIXbp0wcfHhw4dOrB///68LltEROShYPcwkJiYyGuvvcbx48dt2keNGsXVq1dZsmQJgwYNYvTo0ezduxeA+Ph4+vTpg4+PD8uXL8ff35/+/ftz48YNe6yCiIhIvmbXMHDixAk6d+5MTEyMTXtMTAxbt25l7NixeHp68tJLL9G+fXu++eYbANatW4ejoyOjRo2iSpUqvPXWW7i5ubF+/Xp7rIaIiEi+ZtcwsHv3bp566ilCQkJs2qOjo3F3d6dSpUrWNn9/f/bt22ft9/Pzw8HhdvkWiwU/Pz+ioqLyrHYREZGHhV2vJujWrVuG7bGxsZQuXdqmrWTJkly4cMHa//jjj6frP3LkSO4UKiIi8hB7IC8tTEhIwMnJyabNycmJ5ORkDMPItD8pKSlbyzl48OB91wq3j1pI/hUZGWnvEmxoe8r/tE1JTsvtbeqBDAPOzs7pvtiTkpJwcXHBYrHcsT87vLy8cHZ2vu96JX/TH0rJadqmJKfd7zaVmJh4xx1gu19NkJEyZcoQFxdn0xYXF4e7u7u1PzY2NtN+ERERyboHMgz4+vpy8eJFfvvtN2tbZGQkPj4+APj4+BAVFYVhGAAYhsHevXvx9fW1R7kiIiL52gMZBh577DEaN27MyJEjOXLkCN999x1r1qzh5ZdfBqBNmzbEx8czduxYTpw4wYQJE7h58ybPPvusnSsXERHJfx7IMAAwadIk3Nzc6Ny5MzNnzuSDDz6gdu3aALi6ujJnzhyioqIIDAxk7969zJ07F1dXVztXLSIikv88MAMIjx49avO6ZMmSfPbZZ5lOX6tWrXS3KBYREZHse2CPDIiIiEjeUBgQERExOYUBERERk1MYEBERMTmFAREREZNTGBARETE5hQERERGTUxgQERExOYUBERERk1MYEBERMTmFAREREZNTGBARETE5hQERERGTUxgQERExOYUBERERk1MYEBERMTmFAREREZNTGBARETE5hQERERGTUxgQERExOYUBERERk1MYEBERMTmFAREREZNTGBARETE5hQERERGTUxgQERExOYUBERERk1MYEBERMTmFAREREZNTGBARETE5hQERERGTUxgQERExOYUBERERk1MYEBERMTmFAREREZNTGBARETE5hQERERGTUxgQERExOYUBERERk1MYEBERMTmFAREREZNTGBARETE5hQERERGTUxgQERExOYUBERERk1MYEBERMTmFAREREZNTGBARETE5hQERERGTUxgQERExOYUBERERk1MYEBERMTmFAREREZPLt2EgKSmJd999l7p169KoUSPmzZtn75JERETypYL2LuBeTZo0iX379rFgwQIuXLjAiBEjKFeuHM8995y9SxMREclX8uWRgfj4eJYtW8abb76Jl5cXLVq0oE+fPixatMjepYmIiOQ7+TIMHDlyhKSkJPz9/a1t/v7+HDhwgFu3btmxMhERkfwnX54miI2N5ZFHHsHZ2dnaVqpUKZKTk7l06RKlS5e+4/sNwwBujzvIKSkurjk2L8k7iYmJ9i4hQ9qe8i9tU5LTcmKbSvu+S/v++6d8GQYSEhJwcnKyaUt7nZUv+OTkZACOHTuWc0U16pZz85I8c/7gQXuXkDFtT/mWtinJaTm5TSUnJ+Pi4pKuPV+GAWdn53Rf+mmvCxUqdNf3FylSBA8PDxwdHbFYLLlSo4iIyIPCMAySk5MpUqRIhv35MgyUKVOGP//8k6SkJOsRgdjYWJycnHjkkUfu+n4HBwfc3Nxyu0wREZEHRkZHBNLkywGE1atXx9HRkaioKGtbZGQkNWvWpGDBfJlvRERE7CZfhoFChQrx4osv8t5777F//342b97MF198QY8ePexdmoiISL5jMTIbWviAS0hIYMyYMfzwww8UKVKE3r1707t3b3uXJSIiku/k2zAgIiIiOSNfniYQERGRnKMwICIiYnIKAyIikq/pbPf903V4JhMUFMTu3bsz7CtVqhT/+9//SEpK4ssvv2T16tXExMTg5ORE9erVefnll2ndunUeVyz5wd22q+HDh/Pmm28S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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhMAAAGYCAYAAAD4PGCiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABW0klEQVR4nO3deVgVdf//8edhd0tzgVxyyQJUkE3cMi33rDQpsyw0U3NJ7bZMUW9DJdeM3E1LzaRy12+applmklshuKaplVuAoJkJyGGZ3x/+OHdHQMGDAvp6XBfX5ZnPLO85jJzXmfnMZ0yGYRiIiIiI3CK7wi5AREREijeFCREREbGJwoSIiIjYRGFCREREbKIwISIiIjZRmBARERGbKExIsTBz5kw8PDxYvXp1YZdyx+3ZswcPD49sP97e3jRv3pw33niDyMjIAtlWZGQkBw4cKJB1FZSMjAwiIiJITk7O8zJfffUVdevW5fLlyzecLykpidmzZ/Pss8/i5+eHr68v7dq1IywsjLNnz9paus08PDzo1KmT5XXW/4MtW7bcke2vXr06x2Pv+p+serLm//TTT3PdB7k7ORR2ASKSN56enrRu3RoAwzBITk7mzJkzREZGsmXLFvr3789//vOfW17/F198wdixY5k9e3YBVVww3n77bTZu3EjHjh3zvExkZCT169fnvvvuy3WexMREunXrxqlTp2jcuDHPPfccDg4OHD9+nM8//5wVK1bw0Ucf0bRp04LYjWKtYcOGNGzYMNf2WrVqAVCnTh0GDhyIr6/vHapMigqFCZFiok6dOgwaNCjb9D/++INevXoxd+5cHn74YZ5++ulbWv+FCxdsLfG2yG9dhmHw448/8tJLL91wvqlTp3Lq1ClmzZpFmzZtrNp27dpF7969GTZsGFu3bsXJySnfdd9NGjZsmOOxd706depQp06dO1CRFDW6zCFSzNWsWZPw8HAApk2bRkZGRiFXVLiOHj1KYmIizZo1u+F827Zto2rVqtmCBECTJk1o3749CQkJ7Nu373aVKnLXUJiQu9K5c+cIDQ2ldevWeHt74+fnR1BQEF9++aXVfFnXoHft2kWXLl3w8vKiXbt2JCUlAXD48GH69u1Lw4YNCQgIYMiQIcTHx1O3bl1CQkKs1nXlyhWmTp1K69at8fLy4rHHHiM0NDTbN+uQkBA8PDw4cOAAHTp0wNvbmxdffBFbRrb38fGhQYMGnDlzJlufh23bttG7d28aN25MvXr1aNy4MQMGDOCXX36xzBMcHMysWbMAeOONN/Dw8LC0ZfUr6NSpE35+fnh7e9O2bVumTJmSrR/DwYMH6du3L82aNcPb25t27doxdepUrly5kq3mXbt20bNnTwICAvD19aVr16588803VvN4eHiwd+9eAAIDAwkODr7pe7Fjxw7Kli2Lt7f3DedLT0/n4sWLJCYm5tjer18/5syZg7u7u2VacHAwbdq04dy5c7z55ps0aNCABg0aMHjwYC5evMjly5cZPXo0jRo1omHDhvTr1y/Hvhdr164lODiYwMBAvLy8aNasGW+//TZnzpy56f7l5NSpUwwdOpSmTZvi5eXFk08+ybx580hLS7Oar2XLlgQHB7Nq1SqaNm2Kn58fkyZNuqVt5iSnPhM5MQyDL7/8ks6dO1O/fn0CAwPp168fR44cyTZvZGQkPXr0oEmTJtSvX59nnnmGefPmYTabC6xusZ0uc8hd5+zZszz//POkpKTQpk0bKleuTHx8PJs2bWLMmDFkZGTwyiuvWC0zdOhQHnroIYKDg0lKSqJUqVJER0fTs2dPMjIyaNeuHRUqVOCbb77hpZdeyvbB/88//9CtWzd+/fVXmjRpQtu2bTl79izLly9nx44dLF26FFdXV6tl+vfvj7e3N48++iglS5bEZDLZtN8NGjTg559/Zt++ffj5+QEQERFBWFgY1atX5+mnn8bR0ZGDBw/y3XffsXv3br755htcXV3p3LkzAHv37qVDhw489NBDwLUP3J49e3LgwAGaNWtGs2bNSEpKYuvWrSxYsICzZ88yY8YMAH7//Xd69uyJnZ0d7du357777iM6OpqPP/6YgwcPsnjxYkutK1asYPTo0ZQvX54OHTpQsmRJvvvuO958802GDBlCv379ABg4cCBr1qzh3Llz9OnTx1LXjURGRtK4cWPs7e1vON+jjz7Kpk2b6Nq1Kz169KB169ZUqVLF0v7II4/wyCOPZFvuypUrvPTSSzzwwAO88MILREVFsWnTJv766y+SkpIwm8107tyZ48ePs23bNs6fP8+qVassv9/JkyezcOFCPD096dy5MyaTiZ9++on169cTFRXFN998g4uLy033M8vhw4fp0aMHV69epW3btlSpUoWff/6Z8PBwfvrpJ+bNm2f1Xhw/fpxx48bRqVMn0tLSCqV/w/Dhw/m///s/HnnkEV588UVSUlLYuHEjL774IvPmzaNJkyYA/Pzzz/Tr14/777+fDh064OzszM6dOwkPD+fUqVNMmDDhjtcuuTBEioEZM2YY7u7uxqpVq2467+jRow13d3fjxx9/tJq+f/9+w93d3ejatWu29QYFBRkZGRlW8z/99NNG3bp1jejoaMu0S5cuGW3btjXc3d2N4cOHW6aPGTPGcHd3NyIiIqzWsWXLFsPd3d0YPHiwZdrw4cMNd3d3Y+DAgXna9927d2fbXk4iIiIMd3d3Y+LEiYZhGEZqaqrh7+9vtG3b1khKSrKaNzQ01HB3dzeWLl2a7b349ttvLdPWr19vuLu7G+Hh4VbL//PPP0bTpk2NOnXqGMnJyYZhGMakSZMMd3d3Y9euXVbzvv7664a7u7vx66+/GoZhGLGxsYaXl5fx5JNPGhcvXrTMl5KSYnTt2tXw9PQ0jh07Zpn+yiuvGO7u7sbff/990/cqKSnJqFevnrF8+fKbzhsXF2e0adPGcHd3t/y0atXKGDFihLFp0yYjNTU12zJZtbzxxhtGZmamYRiGkZaWZjz++OOWY+vfy2XNf+LECcs2PT09jZdfftlIT0+3WnefPn0Md3d3Y8eOHZZp7u7uRseOHS2vr/8dZWZmGk8//bTh7e1tHDx40Gp9EyZMyHZMPvHEE4a7u7vx2Wef3fT9MQzDWLVqleHu7m688sorxowZM3L8OXPmTLb5Fy1alOs+bNiwwXB3dzfeeustIy0tzTL99OnTRsOGDY3HHnvM8h4OGjTIcHd3N06fPm2Zz2w2G506dTLq1Klj/PPPP3naD7n9dJlD7jodO3ZkwoQJ2Xrh169fHxcXlxw79LVp0wY7u//9dzh8+DC//vorTz31lNU3t7JlyzJw4ECrZdPT01m7di2PPPIIL7/8slVbq1at8Pf359tvv812qr9t27a3uos5yuokmLWdjIwMwsLCGD9+PCVLlrSaN6tn/s06N9atW5f33nuPHj16WE0vXbo0devWJSMjg7///huAzMxM4Nqljn+bOHEiu3btsnzL/+qrrzCbzQwePJj777/fMp+LiwuDBw8mMzOTNWvW5Gvfs+zZs4e0tLSb9pcAcHNzY+3atQwZMsRyxuPMmTOsWrWKQYMG0a5dO3bu3Jnjst27d7ecaXBwcLBcUgkODrbqrOnj4wNgudTh5OTElClTGDVqVLYzJ4GBgUD+Opzu37+fX3/9leeffx4vLy+rtjfffBNHR8ccb6fO77G3d+9eZs2alePPuXPn8rWulStXAjBq1CgcHP53cvzBBx/kxRdfJD4+3vK+53RMOTo68vHHH7Nnzx5Kly6dr23L7aPLHHLXybqOfenSJX755RdOnz7N77//TkxMDKmpqTl2UKxWrZrV66w/XvXr1882r7+/v9Xr33//neTkZDIyMpg5c2a2+bO2eezYMQICAnLdpq2y+nlkBYcSJUrQoUMHS40nT57k9OnTHD9+nF27dgH/+2Odm1q1alGrVi1SU1PZv38/v//+O6dPn+bw4cOWvgxZ72fnzp358ssvmTp1KhERETRv3pzmzZtbLuNkOXToEHCtz8Tx48ettpfVB+Po0aO39B5ERkby0EMPUbly5TzNX7JkSfr162fp27Br1y527tzJ999/z59//km/fv1YunQpdevWtVquRo0a2dYD2X+nzs7OAJa+C/fffz/PPPMMmZmZ/Prrr5w8eZIzZ85w7NixbB+geXH48GEATp8+neOxV6pUKY4dO4ZhGJbw4+joiJubW563AdcuN+Xlbo68OHz4MM7Oznz++efZ2n7//XcAfvnlFx5//HG6dOnCli1bGDJkCNOnT+exxx6jefPmNG7c+J6/w6aoUZiQu87ff//NxIkTWb9+PWlpaZhMJqpWrUrjxo1z7OAFZLtG/ddffwFQsWLFbPNe3/cha2Ck3377zdKJMbe6brRNW2V9Q3zwwQct03766ScmTpxo+dBxdnbG09OTevXqERsbe9NOn5mZmcybN49FixZZ6q9QoQJ+fn5UrVqVkydPWtbh6enJ8uXL+eijj9i+fTvLly9n+fLllCxZku7du/Of//wHk8nEP//8A8DSpUtz3e7171VeRUZG0rx581tatlq1anTp0oUuXbpw6dIlQkJC2LZtG4sXL2by5MlW85YoUSLHdeTlA27z5s188MEH/PHHH8C1IOLl5YWnpyc7d+7MV0fcrGNvx44d7NixI9f5kpKSLN/iC/q4y69//vmH9PT0PP1fadGiBZ999hkLFixg586dLFmyhCVLllCuXDkGDhyYpw65cmcoTMhd55133mH79u28+OKLdOrUCXd3d8sf0nXr1uVpHVnz53QXwvXTSpUqBUCn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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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jV9++YW9e/dSqFAhLl++bJ3Hyy+/zPLly5k8eTJ79+7F09OTy5cv88MPP5AnTx569eoF3B1zMGbMGN555x3atWtH48aNKVq0KPv27ePQoUN4e3vTvXv3FHVNmDCB2rVr079//1S3T2ho6EMdFXj77betH/j3GjNmTLq3Y1pKlSrFgAEDmDJlCm3atKFRo0bcvn2bjRs3WpeffHVJzpw5+fjjj+nZsyevvfYajRo1okyZMhw+fJjdu3dTunRp3n777XSva2Zq3749W7ZsYePGjRw/fpwXXniBxMRENmzYwLVr1xg8eLB1PMtbb73Fnj176Nq1K82bN6dYsWKcOnWKrVu3UqFCBVq3bu3gtZFkCgOSJXLlysVnn33GTz/9xHfffcehQ4f4+eefcXJyoly5cgwePJiuXbtm6OCoHDlyMGvWLKZOncp///tfjhw5QvHixalXrx59+/ZlypQpbNq0icjISLu/Zbq6uvL1118zf/581q9fzzfffIO7uzt+fn707t37vg+Dsdf58+dtBmc5OTlRoEABAgIC6NChQ4pnN+TJk4cFCxYwefJkwsLC2L9/PyVKlKB169b8+9//plevXuzfv996w6OaNWvy6quvsmbNGpYsWULt2rWpX78+n3zyCfPmzWPt2rW4urpSpkwZRowYQfXq1WnXrh3bt2/npZde4qmnnmLx4sXMnj2b//73v+zevRs3Nzfq1atH//79ba6kaNGiBcWLF2fOnDns2LGD2NhYSpUqRb9+/XjzzTdtbsDUpUsXDhw4wP79+zl9+jRvvPFGihs0XbhwgdOnTz/UB+S9h+j/KSYmJt3b8X569epFoUKFWLhwIStWrCB//vy8/vrrFCxYkLFjx9oMiq1Rowbffvsts2fPZteuXWzdupXixYsTFBREnz59Uh2I6EgWi4XPPvuMJUuWsHLlSr799ltcXV159tlneeONN2z2z2rVqln3ld27d3PlyhWKFi1K165d6du3r3XMhDiexUjPSVMREbmvq1evcufOnVQ/xD/77DNmzpzJt99+m+qlhyKO4tAxA99//32K52onPzv+/PnzdO/eHV9fX1q0aMH27dtt3rt7925atWqFj48PQUFBnD171hGrICJiY8+ePdSpUyfFpXdXrlxh1apVPPXUUzY3yxJ5HDj0yMAnn3zC6dOnrSNL4e4gHnd3d9q2bUuFChXo168fW7ZsYebMmXz//feUKVOGCxcu0LJlS/r160eDBg2YOXMmJ06cYO3atRl6pzcRkfS6desWrVq14sKFC9SrVw8PDw+uX7/Opk2buHr1KhMmTKBNmzaOLlPEhkPHDJw+fRpPT88Ul5Lt2rWLM2fOsGTJEtzc3Hj22WfZuXMnISEhDBo0iOXLl1OpUiV69uwJ3H2QTZ06ddi9e3eGP8FMRCQ98ubNy7Jly5g/fz7btm1j165d5MmTBy8vL958880MveeCSEZxaBg4deoUzZs3T9EeERFBlSpVbEZl+/v7s3//fmt/zZo1rX25c+ematWqhIeHKwyIiMMVLVqUYcOGMWzYMEeXImIXh4WB+Ph4zp07x9atW5k2bRqGYdC8eXMGDBhAVFRUitt2FipUiIsXLwKk2X/p0iW7lp2UlMStW7dwcnKy+0YnIiIi2ZVhGCQkJJA3b95UT6c7LAycPXuWxMRE8uTJw/Tp04mMjGTs2LHcunWLuLg46/PQkzk7O1tvRhIbG5vivvTOzs42N8C4n1u3bnHixImMWREREZFswsPDA3d39xTtDgsDFStWZPfu3RQoUACASpUqYRgGgwcPplOnTinu4R0fH29zx7V7P/jj4+PtvvNbctDw8PDQk7NEROSJFx8fz4kTJ1J80U7m0DEDyUEgWYUKFUhISKBo0aIpHm0aHR1tHWhYrFixFPfFjo6OtrnZyf0knxpwdnZO845kIiIiT5q0To077Dq8H3/8kdq1a9t8wz969Cj58uXD19eXY8eOERMTY+0LCwuzPrvcx8eHAwcOWPtiY2M5evRohj7bXERExCwcFgZq1qyJYRiMGDGCM2fOsG3bNiZOnMibb75JQEAAJUuWZOjQoZw8eZK5c+cSERFBp06dAOjQoQMRERHMnj2bU6dOMXz4cEqWLKlLdkRERB6Cw8JAgQIF+OKLLzh//jzt27fngw8+oHPnzvTu3ZucOXMya9Ysrly5Qvv27VmzZg0zZsygdOnSAJQuXZrp06ezZs0aOnToQHR0NLNmzdINh0RERB6CKZ9NEBcXx+HDh/Hy8tKYAREReeI96HNPX6VFRERMTmFARETE5BQGRERETE5hQERExOQUBkRERExOYUBERMTkFAZERERMTmFARETE5BQGRERETE5hQERExOQUBkRERExOYUBERMTkFAZERERMTmFARETE5BQGRERETE5hQERExOQUBkRERExOYUBERMTkFAZERERMTmFARETE5BQGRERETE5hQERExOQUBkRERExOYUBERMTkFAZERERMTmFARETE5BQGRERETE5hQERExOQUBkRERExOYUBERMTkFAZERERMTmFARETE5BQGRERETE5hQERExOQUBkRERExOYUBERMTkFAZERERMTmFARETE5BQGRERETE5hQERExOQUBkRERExOYUBERMTkFAZERERMTmFARETE5BQGRERETE5hQERExOQUBkRERExOYUBERMTkFAZERERMTmFARETE5BQGRERETE5hQERExOQUBkREREzusQkD//d//0dQUJD19bFjx3jllVfw8fGhffv2HDp0yGb69evX06RJE3x8fOjbty+XL1/O6pJFRESeCI9FGNi1axfffvut9XVMTAw9evTAx8eHlStX4u/vT+/evbl58yYAhw4dYujQofTt25fg4GBu3rzJe++956jyRUREsjWHh4GYmBg++OAD/Pz8rG3r16/HycmJoUOHUqFCBYYNG4a7uzsbNmwAYPHixTRt2pT27dtTqVIlJk6cSGhoKGfPnnXUaoiIiGRbDg8Dn3zyCQEBAQQEBFjbIiIi8PPzI0eOu+VZLBb8/PwIDw+39tesWdM6fYkSJShVqpS1X0REROzn0DAQHh7ODz/8wJAhQ2zao6KiKFq0qE1boUKFuHTpEgB//fXXfftFRETEfrkcteD4+HiGDx/OsGHDeOqpp2z6YmNjcXZ2tmlzdnYmPj4egNu3b9+3316HDx9+iMpFRESeLA4LAzNnzqRcuXK0aNEiRZ+Li0uKD/b4+HhcXV3t6reXl5cXLi4u6axcREQke4mLi7vvF2CHhYG1a9cSFRVF9erVAUhISODOnTtUr16dl156iaioKJvpo6OjKVKkCADFihUjOjo6zX4RERGxn8PGDCxatIjvv/+e1atXs3r1ajp16oSXlxerV6/Gx8eH8PBwDMMAwDAMDhw4gK+vLwA+Pj6EhYVZ53XhwgX+/PNPa7+IiIjYz2FHBkqVKmXzOl++fLi6ulKuXDkKFSrElClTGD16NF26dGH58uXcunWLli1bAvCvf/2LoKAg/Pz88PHxYezYsdSrV4/y5cs7YE1ERESyN4dfWpgaNzc35syZQ3h4OO3atePAgQPMnTsXNzc3AKpXr87o0aOZ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mVWaiIiIaeirtIiIiMkpDIiIiJhcusPA6tWr6dWrF4GBgdbR+yNHjrQ+REhERESyF7vHDNy+fZvevXuzd+9e682ILBYLly9fJjg4mM2bN/PNN99QtmzZTCtWREREMp7dRwZmzpzJnj17cHV15cUXX7S2X716lbx583L58mWmTZuWKUWKiIhI5rE7DKxbtw6LxcKECRN47733rO3PPvssn376KYZhsGfPnkwpUkRERDKP3WEg+fa/np6eKfpKlSoFwI0bNzKoLBEREckqdoeBkiVLAncHEN5r2bJlANabAomIiEj2YXcY6NChA4ZhMGfOHDp27Ghtb9SoEYsWLcJisdCmTZtMKVJEREQyj91hoEePHrRu3RrDMKynDAzD4Pz58xiGQdOmTenevXumFSoiIiKZw+5LC3PkyMHEiRPp2LEjP/74I5GRkeTMmZPSpUvTvHlzPbJTREQkm0r3swkCAgIICAjIjFpERETEAdIVBs6fP09oaChXr14lMTEx1Wn69++fIYWJiIhI1rA7DGzfvp0BAwYQHx9/3+kUBkRERLIXu8PA5MmTiYuLy8xaRERExAHsDgORkZFYLBb69evHq6++St68ebFYLJlZm4iIiGQBuy8tLF++PAAtW7akYMGCuLi44OzsnOJHREREshe7w8Dbb79Njhw5mDZtGpcvX87MmkRERCQL2X2aoE6dOjz//PP89NNP/PTTT7i5ueHi4mIzjcViYceOHRlepIiIiGQeu8PApEmT2LlzJ3D3zoM3btxI8WAijSEQERHJfuwOA8kPKMqXLx/PPfccuXPnJkcOu88yiIiIyGPK7jBgGAYAs2fPxs/PL9MKEhERkaxl91f7pk2bApCQkJBpxYiIiEjWs/vIQK9evQgPD+edd97hjTfeoFy5cikGEALUrVs3QwsUERGRzGV3GGjWrJn135MmTUp1GovFwtGjRx+9KhEREcky6R4zICIiIk8Wu8PA119/nZl1iIiIiIPYHQYCAgIysw4RERFxkDTDQHBwMABt2rTB1dXV+vpBXnnllYypTERERLJEmmFg5MiR5MiRg/r16+Pq6srIkSMfeIdBi8WiMCAiIpLN3Pc0QVJSks1rDSIUERF58qQZBjZv3gxA0aJFbV6LiIjIkyXNMDBjxgwsFgvvv/8+7u7ulCpVKivrEhERkSyS5u2IV61axapVq4iJicnK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a9eucezYMeuhd3vc++Gf1pGBWrVqWe89MG7cODZu3MipU6eYMmUKoaGhALzyyivWaZNPmYwaNYpdu3Zx6NAh3nvvvRTzbdy4Mbly5SIhIYGhQ4dy/PhxDhw4QLdu3WjQoAFvvvmm3esikt1ozICIieXPn5+DBw/Svn17a5vFYuH999+3HjZv0qQJq1evJikpiTfeeAOLxUKOHDmoXLkyv/76q838kgcrxsTE0KZNG/71r38xatQou2r5ZxgoXLgw5cqVS3U6Z2dnPv74Y/r160d0dDQDBgyw6Q8ICKB3794AFChQgAEDBjBp0iT++OMPunXrBtw9lVK+fHl+//136/tKly5N165d+fLLL1m3bp3NgMHcuXPz1ltv2bUeItmRjgyImFi5cuWYP38+lSpVwsnJiYoVKzJt2jSb+xE0btyYDz74gFKlSuHi4oKvry9ffPEFNWvWTDG/Tp060aBBA9zc3MifP3+67h5YvXp162mGtE4RJKtbty4rVqygdevWFClSBCcnJ8qXL8/AgQP54osvbAb59ejRg48++oiyZcvi4uKCn58fCxcupEKFCinm+9577zFq1CgqV66Mq6sr+fPnJzAwkEWLFuHr62v3uohkNxYjI4cEi0i2EBQUxN69e/Hx8WH58uWOLkdEHExHBkRERExOYUBERMTkFAZERERMTmMGRERETE5HBkRERExOYUBERMTkFAZERERMTmFARETE5BQGRERETE5hQERExOT+H840g5TepTJ3AAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhMAAAGYCAYAAAD4PGCiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABUMklEQVR4nO3deVgVdf//8edBWdzNBRLNpQxcQDZxy6+ae1aaGmne4Z255ZJlbqi3oZG7uS+ZuUap5HanaWnqbZqi3YjikqZWbgGBZsYiB2F+f/jj3J5AAQ8K6OtxXVyX5/OZmfOew8i8zsxnZkyGYRiIiIiI3CO7/C5ARERECjeFCREREbGJwoSIiIjYRGFCREREbKIwISIiIjZRmBARERGbKExIoTVv3jzc3d3ZsGFDfpfywB08eBB3d/dMP56enjRr1oxBgwaxb9++PHmvffv2ERUVlSfLyitpaWmEhoaSlJSU43m+/PJL6tSpw/Xr1+84TcuWLXF3d8+LEgudjP9P2f38+OOPVtN/++23AFy6dAl3d3cGDhyYn6sh+aRofhcgIveuVq1atG7dGgDDMEhKSuLixYvs27ePb7/9lgEDBvDOO+/c8/I///xzJkyYwIIFC/Ko4rwxbNgwtm3bRseOHXM8z759+6hXrx6lS5e+j5UVfq1ataJ27dp37K9QoQIADRo0YPDgwdSoUeNBlSYFmMKESCFWu3Zt3nrrrUztv/76K71792bRokXUrFmTF1544Z6Wf+XKFVtLvC9yW5dhGHz//fe8+uqr96mih0fr1q3p0qVLttM1bNiQhg0bPoCKpDDQaQ6Rh1D16tWZOXMmALNnzyYtLS2fK8pfp06dIj4+nqZNm+Z3KSIPJYUJeWRcvnyZ4OBgWrdujaenJz4+PnTp0oXVq1dbTZdxLvjAgQMEBATg4eFBu3btSExMBODEiRP079+fBg0a4Ofnx9ChQ4mNjaVOnToEBQVZLSshIYEZM2bQunVrPDw8+L//+z+Cg4MzfbMOCgrC3d2dqKgoOnTogKenJ927d8eWu917eXlRv359Ll68mGnMw+7du+nTpw+NGjWibt26NGrUiIEDB1rOhwMEBgYyf/58AAYNGmQ1liAxMZEFCxbQqVMnfHx88PT0pG3btkybNi3TOIZjx47Rv39/mjZtiqenJ+3atWPGjBkkJCRkqvnAgQP06tULPz8/vL296datG19//bXVNO7u7hw6dAgAf39/AgMDs/0s9u7dS5kyZfD09Mx22tzIyecIt8ZiBAYGsn79epo0aYKPjw9Tpkyx9K9Zs4YXX3wRLy8vWrVqxZIlS9i0aRPu7u4cPHjQalknTpxg4MCBNGzYkHr16tGpUydWr16daVtxd3cnKCiIjz76iPr161O/fn1WrFiRZ+v+9zETd2I2m1m8eLFlu27cuDHDhg3j4sWLmabdsmUL3bt3x9/fHx8fH7p27crnn39u0/8DeTB0mkMeCZcuXeLll18mOTmZNm3aUKlSJWJjY/nmm28YP348aWlpvPbaa1bzDB8+nCeffJLAwEASExMpUaIEkZGR9OrVi7S0NNq1a0f58uX5+uuvefXVVzP9wfvrr7/o0aMHP/30E40bN6Zt27ZcunSJsLAw9u7dy5o1a3B2draaZ8CAAXh6evLMM89QvHhxTCaTTetdv359/vvf/3L48GF8fHwACA0NJSQkhKpVq/LCCy9gb2/PsWPH2LlzJ+Hh4Xz99dc4OzvTuXNnAA4dOkSHDh148sknAbh58ya9evUiKiqKpk2b0rRpUxITE9m1axdLly7l0qVLzJ07F4BffvmFXr16YWdnR/v27SldujSRkZEsWbKEY8eOsXLlSkutX3zxBePGjaNcuXJ06NCB4sWLs3PnTt5++22GDh3Km2++CcDgwYPZuHEjly9fpm/fvpa67mbfvn00atSIIkWK2PR53i6nn2OGM2fO8P7779OpUydSU1Px9vYGYNKkSaxcuZKqVasSEBDAH3/8wezZs6lUqVKm99yzZw+DBw/G3t6etm3bUq5cOfbu3cv48eM5efIkISEhVtPv3buXHTt20LlzZ+Lj4/Hy8sqz9c+J1NRU+vbtS3h4OPXq1eO1117jypUrbNu2jX379vHpp5/i5uYGwFdffcWwYcOoXr06nTt3xs7Ojp07dzJhwgT++OMPBg0a9EBrl1wyRAqpuXPnGm5ubsb69euznXbcuHGGm5ub8f3331u1Hz161HBzczO6deuWabldunQx0tLSrKZ/4YUXjDp16hiRkZGWtmvXrhlt27Y13NzcjFGjRlnax48fb7i5uRmhoaFWy/j2228NNzc3Y8iQIZa2UaNGGW5ubsbgwYNztO7h4eGZ3i8roaGhhpubmzF58mTDMAwjJSXF8PX1Ndq2bWskJiZaTRscHGy4ubkZa9asyfRZ7Nixw9K2ZcsWw83NzZg5c6bV/H/99ZfRpEkTo3bt2kZSUpJhGIYxZcoUw83NzThw4IDVtP369TPc3NyMn376yTAMw4iOjjY8PDyM5557zrh69apluuTkZKNbt25GrVq1jNOnT1vaX3vtNcPNzc34888/s/2sEhMTjbp16xphYWHZTvvss88abm5u2U6X288xY7mrVq2ymjYqKspwd3c3XnnlFSMhIcHSvnv3bsPNzc1wc3MzwsPDDcMwjKSkJKNRo0ZG48aNjYsXL1qmTUtLM9566y3Dzc3N+M9//mNpz5h/586d2a6PYfzvdz1gwABj7ty5Wf7c/nn/fdu4ePGiZf4MS5YsMdzc3Ixp06ZlWu+6desaXbt2tbR17tzZ8Pb2Nv766y9L219//WU888wzRqNGjYz09PQcrYfkD53mkEdCx44dmTRpEk2aNLFqr1evHk5OTlkO6GvTpg12dv/7L3LixAl++uknnn/+ecu3SoAyZcowePBgq3lv3rzJpk2bePrpp/nHP/5h1deqVSt8fX3ZsWNHpkP9bdu2vddVzJKDgwOA5X3S0tIICQlh4sSJFC9e3GraBg0aANkPbqxTpw4ffPAB//znP63aS5YsSZ06dUhLS+PPP/8EID09Hbh1quN2kydP5sCBAzz99NPArcs2zWYzQ4YM4bHHHrNM5+TkxJAhQ0hPT2fjxo25WvcMBw8eJDU1NU/HS9zr5/j33++///1vDMPgnXfeoUSJEpb2Fi1a8Mwzz1hNu2vXLq5evUrv3r2pUqWKpd3Ozo5hw4YBsH79eqt5nJycaN68ea7WbefOncyfPz/Ln7tdVpuVdevWUbp0aYYOHWrV7unpSfv27Tl27BhnzpwBbg2SvXHjhuU13Nqm1q1bx86dO20+Sif3l05zyCMh45zxtWvX+PHHH7lw4QK//PILR44cISUlJcsBirf/wYb/7RDr1auXaVpfX1+r17/88gtJSUmkpaUxb968TNNnvOfp06fx8/O743vaKmOcR8YOr1ixYnTo0MFS47lz57hw4QJnzpzhwIEDwP8CwJ3UqFGDGjVqkJKSwtGjR/nll1+4cOECJ06csIxlyPg8O3fuzOrVq5kxYwahoaE0a9aMZs2aWU7jZDh+/Dhwa8zE7TsTwDIG49SpU/f0Gezbt48nn3wyy9MG9+pePkd7e3tcXFys2rLbpr7//nvL64zP6MSJE1luU0WKFMn0GT3++OO5PrUzefLkHF3NkZ3ExER++eUXKlasyKJFizL1x8fHA/Djjz/y9NNP061bN4KDg+nevTvu7u40a9aM5s2b4+fnZxXqpWBSmJBHwp9//snkyZPZsmULqampmEwmKleuTKNGjTh58mSW8zg5OVm9/uOPP4D/XWd/u7+Pfcj4Bvfzzz9bBjHeqa67vaetLl++DMATTzxhafvhhx+YPHkyJ06cAMDR0ZFatWpRt25doqOjsx3slp6ezuLFi1m+fLml/vLly+Pj40PlypU5d+6cZRm1atUiLCyMjz76iD179hAWFkZYWBjFixenZ8+evPPOO5hMJv766y/g1kDEO/n7Z5VT+/bto1mzZvc0793k9nPM6nf7xx9/ULx4caujEhn+vk1lfEZfffXVHWu639tTbmQcDYuLi8vR/4Hu3btTvnx5Vq1aRUREBKdPn2bJkiW4uLgQFBRkCW9SMClMyCNhxIgR7Nmzh+7du9OpUyfc3NwoWbIkAJs3b87RMjKmz+oqhL+3ZewcOnXqxLRp02wp3SYREREAlsGXly9fpk+fPjg5ORESEoKfnx/Vq1enSJEibN26NduR+QDLli1j9uzZNGjQgL59+1K7dm0qVqwIQJ8+fTh37pzV9LVq1WL27NmYzWYiIyP57rvv2LBhAx999BEuLi706NHDcpTi22+/tQo+trp48SK//vorY8aMybNlQt58jnBrm7p06RKpqanY29tb9f19m8r4jFasWEHjxo3zZkXuo4x669evz2effZajedq0aUObNm24fv06Bw8eZNeuXWzevJlhw4ZRs2ZNy2BNKXh07EgeetevX2fPnj14eHgwYcIEfH19LcHg0qVLpKSk5OjSs7p16wJkeWvpv7fVqFEDBwcHTpw4keWyV6xYwcKFCy1HO+6HI0eOcOLECWrUqIGHhwdwa2d948YNhgwZwiuvvMJTTz1lOQyeEQJurzer89RbtmyhSJEiLFq0iGbNmlmChGEY/Pzzz1bL2LRpEyEhIRiGgYODAw0bNmTEiBGWw/QZYSfjstO/j62AWzfgmjp1Krt27cr1Z7Bv3z4cHBws4xjySm4/xzupW7cuaWlplqMbtzt69KjV64zPKON0x+2uXbvGxIkT+fe//53rdblfSpUqhaurK2fPnuXGjRuZ+jdt2sS8efO4dOkSZrOZRYsWWS5dLV26NG3atGHy5MkMGDCA9PR0IiMjH/AaSG4oTMhDz97eHjs7O65fv47ZbLa037hxw3IpXWpqarbL8fHx4cknn+TLL7+0+uN//fp15syZYzWto6MjHTp04OzZsyxfvtyq7+DBg0ybNo3169dTpkwZW1btji5fvsyoUaMArAa/OTo6Av87X53h1KlTrFq1Crg1eDRD0aK3Dl7e/rk5OjqSlpbG1atXrZaxYMECy2mVjGUcOXKE0NBQtm3bZjXtpUuXAHB1dQVuDZAtUqQIs2fPJi4uzjLdzZs3CQkJYdmyZVy7ds3SnvEtPrvf2759+/Dz86NYsWJ3nS63cvs53knG2IRZs2aRnJxsaQ8PD890dKNNmzaULFmSTz75hF9++cWqb/r06axatYoLFy7kfmXuo86dO3Pt2jVmzJhhNYbk7NmzvP/++yxfvpyyZcvi4ODAli1bmDNnTqb7T2RsUxnbihRMOs0hhd7HH398x5H+//jHP2jfvj1t2rThm2++ISAggGeeeYakpCR2795NfHw8ZcqU4a+//iI9Pf2uA71MJhPvv/8+vXr1okePHrRt25ZSpUqxe/duy47g9vlHjRpFZGQkU6dOZefOndSrV4/Y2Fi2b99O0aJFmTRpks0Dy3788UerwXhJSUmcP3+evXv3YjabGTRoEO3atbP0P/vss3z44YcsXryYn3/+mapVq3L+/Hl2795NqVKlAKx22hkDBhctWsSPP/7I4MGD6dixI0eOHOHVV1/lueeew97enoMHD3LixAnKly/PlStXLMvo06cP27ZtY/jw4Xz99ddUq1aNy5cvs337dipWrGi5t0f16tUZMWIEU6ZM4YUXXqBly5aUKVOG7777jnPnzvHss89aPYcjo64xY8bwzDPP0LNnz0yfzc2bNwkPD2fAgAG5/lzvdiOsjz76KNef4534+PjQvXt31qxZw0svvcT//d//ceXKFbZv306pUqX4448/LEc8SpcuzQcffMDw4cPp3LkzrVu3xtnZmR9++IGoqCg8PT154403cr2u91O/fv0s95OIiIigQYMGXL9+na+//prk5GRmzJhhOUr47rvvMmjQIDp37kz79u0pU6YMx48fJzw8nAYNGmS6ukUKFoUJKfR++eWXTN/UMrRq1Qq4dWOgxx9/nG+//ZbQ0FAqVqyIp6cn/fr1Y8uWLaxcuZKDBw9mey7a39+fVatWMWfOHL799lvs7Ox49tlnCQgIoGfPnlbfgMuVK0dYWBiLFy9mx44dfPrpp5QrV46WLVsycOBAatWqZfO6nzp1ymoEv729Pc7OzrRu3Zru3btnenaCi4sLy5cvZ+bMmYSHh7Nv3z5cXV0JDAykf//+tG3blr1792IYBiaTiQ4dOrBnzx7+85//8Pnnn9O5c2d69OiBYRisXr2aL774glKlSlGjRg1mzpyJo6MjgwYNYs+ePfj4+FClShVWr17NwoULOXz4MLt27eKxxx6jY8eODB482Orqhl69evHkk0+ybNkytm/fTnp6Ok888QRBQUH84x//sBwlAXjzzTc5d+4c33//Pb/++muWYeLIkSMkJCTc0yWhGVelZCUtLS3Xn+PdvPfee1StWpWwsDDWrFmDi4sLI0aMIC4ujk8++cRqEOVzzz3H448/zuLFi9m7dy/JyclUrlyZgQMH0rt37ywHcuYnJycnVq1axSeffMLWrVv5/PPPKVWqFL6+vpa7yGZo1aoVS5cuZcmSJezevZvr16/j6urKoEGD6Nu3r67oKOBMRk5O7IkIKSkpxMXFUalSpUyX24WHh/PPf/6T4cOH07dv33yqUAqbuLg47O3tKVu2bKa+UaNGsWnTJvbv30/58uUffHEiuVAgop7ZbOaFF15g//79lraEhASCgoLw8/PjmWeeYfbs2VYDmk6dOkW3bt3w8vKiS5cumQbAbd26lTZt2uDl5cWAAQOsbiBjGAazZs2icePG+Pv7M3Xq1Ef+QUiSvcTERFq1akWvXr2stsW0tDTLwDE9RVFy48svv6Rhw4aZTtNduHCBHTt2ULNmTQUJKRTy/TRHSkoKw4YNy3SjmpEjRxITE0NoaChxcXEMHz6cypUrExAQQFJSEn369KFDhw5MmjSJNWvW0L9/f3bs2EHJkiWJiooiKCiI8ePHU6dOHSZOnMjIkSNZunQpcGsk/caNG5k7dy7p6ekMHz6cxx57jH79+uXHRyCFRLly5WjXrh3ffPMNXbt2pWHDhqSlpbF//37OnDlDt27dsrz5kMidPP/883z00UeMGzeO//znP1StWpX4+Hi2b99Oamoq48aNy+8SRXIkX09znD17lmHDhmEYBqdPn2b58uU0adKEs2fP8uKLL/LVV19ZHuKzcOFCfvvtNz744APWrVvHggUL2LlzJ3Z2dhiGQbt27ejbty8BAQGMHDmS9PR0ZsyYAUB0dDQtWrRg+/btVKtWjRYtWjBo0CACAgKAW7e0nTlzJnv27Mmvj0IKCbPZzGeffcamTZsso86ffPJJAgICeOWVV3TLX8m18+fPs3jxYsLDw4mLi6N06dL4+fnRv39/y+XIIgVdvh6ZOHToEA0bNmTo0KFWzzoIDw/n6aeftnoa4MCBAy3/Pnr0KL6+vpYBOSaTCV9fXyIjIwkICODo0aNWo5orVapE5cqViYyMxMnJiejoaOrXr2/p9/PzIyYmhujo6Dy95a48fBwcHOjVqxe9evXK71LkIVGtWjUmTZqU32WI2CRfw0SPHj2ybL9w4QJVqlRhxYoVhIaGYjKZCAgIoG/fvphMJuLi4qhRo4bVPOXLl7eMav/9998z3Yq2fPnyxMbGWq5hv70/4/bIMTExOQoT6enpJCYmYm9vr2+iIiLy0DMMg9TUVEqUKJHllTX5PmYiK4mJiRw6dIi0tDRmzpzJ5cuXGT9+PA4ODrz++uskJydbnoaYwcHBwXJjnRs3btyxP+NObLf3Z/z79hvzZFffTz/9dM/rJyIiUhi5ublZ7qVyuwIZJooUKUJqaioffvghJUuWpF69evz222+sXr2a119/HUdHx0w7frPZbLke+279tweHjLvoZUyb07vkZczn5uaWKbSIiIg8bMxmMz/99FOmZ8hkKJBhwtnZGRcXF8ud0eDWsw6io6OBWzfeuf2Wu3DrtrYZzwhwcXHJdJvbjP6Mm+TEx8dbbvCSsayM+bOTcWrDwcHBcltdERGRh92dTu0XiPtM/J2Pjw+//fab1UOQzp49S+XKlQHw8vIiMjLScq2/YRgcPnzYMojTy8vL8gAhuHU1x2+//Ya3tzcuLi64urpa9UdERODs7KzBlyIiIvegQIaJRo0a4ebmxogRIzhz5gy7d+9m6dKllgGb7du3JykpiZCQEM6ePcvkyZNJTEy0PO/+1VdfZcuWLYSFhXH69GlGjRpFs2bNqF69uqV/5syZHDhwgEOHDjFz5swsb8crIiIi2SuQpzmKFCnCRx99xPvvv09AQAAlS5akV69elocClSxZksWLFxMcHMwXX3yBu7s7H3/8seW0iI+PDyEhIcydO5dr167RpEkTy9MhAXr37s3Vq1cZMmQIdnZ2dOnShd69e+fLuoqIiBR2ejbHPUhJSeH48eN4eHhozISIiDz0stvvFcjTHCIiIlJ4KEyIiIiITRQmRERExCYKEyIiImIThQkRERGxicKEiIiI2ERhQkRERGyiMCEiIiI2UZgQERERmyhMiIiIiE0UJkRERMQmChMiIiJiE4UJERERsYnChIiIiNhEYUJERERsojAhIiIiNlGYEBEREZsoTIiIiIhNFCZERETEJgoTIiIiYhOFCREREbGJwoSIiIjYRGFCREREbKIwISIiIjZRmBARERGbKEyIiIiITRQmRERExCYKEyIiImKTAhEmzGYzL7zwAvv378+y/4033iAoKMiqLTw8nBdffBEvLy8CAwM5f/68Vf+nn35Ks2bN8PHxYfTo0SQlJVm937hx4/D39+eZZ55hyZIleb9SIiIij4h8DxMpKSm8++67nDlzJsv+devW8f3331u1RUdHM2DAADp27Mj69eupUKECAwcOJD09HYDt27cze/ZsgoODWbVqFceOHWPKlCmW+adNm8aRI0dYvnw5EyZMYNGiRXz11Vf3byVFREQeYvkaJs6ePcsrr7zChQsXsuz//fffmTVrFp6enlbtYWFh1KpVi759+1KzZk0mTZpEdHQ04eHhAKxcuZLXXnuNVq1a4enpyfjx49m4cSOJiYkkJSURFhbG6NGj8fDwoHXr1vTp04fQ0ND7vr4iIiIPo3wNE4cOHaJhw4asXbs2y/7x48fTo0cPqlevbtV+9OhR/P39La+LFStG3bp1iYyMJC0tjWPHjln1e3t7k5aWxo8//sipU6cwm834+flZ+v38/Dh27BhpaWl5u4IiIiKPgHwNEz169GDMmDEUK1YsU9/WrVu5ePEi/fr1y9QXFxeHs7OzVVv58uWJjY3l+vXrpKSkWPUXLVqUsmXLEhMTQ1xcHGXKlMHR0dHSX6FCBVJTU7ly5Uoerp2IiMijoWh+F5CVq1evMmnSJBYsWIC9vX2m/uTkZBwcHKzaHBwcMJvN3Lhxw/I6q/6bN29m2Qe3BmaKiIhI7hTIMDFx4kTat2+Pl5dXlv2Ojo6Zdvxms5myZctajjhk1e/k5ITJZMqyD8jyCMndHD9+PFfTi4iIPIwKZJjYsmULTk5OrF+/Hvjfzv7YsWN89dVXuLi4EBcXZzVPfHw8Tz/9tCVQxMfH4+bmBsDNmze5du0azs7O2NnZcf36dcxms+WIRFxcHA4ODpQpUyZXdXp4eFidLhEREXkYpaSk3PULdIEME9u3b7d6PXXqVIoUKWK514SXlxf//e9/Lf3JycmcPHmSAQMGYGdnh6enJxERETRp0gSAI0eOUKRIEWrXro2dnR329vZERkbSsGFDACIiIqhbty5FixbIj0NERKRAK5B7z2rVqlm9Ll68OEWLFqVy5coAdO3alaVLl7Jo0SLatGnDwoULcXV1pXHjxsCtgZ3/+te/cHd3p1KlSkyYMIGuXbtSokQJAF566SUmTJjAlClTiIuLY9myZYSEhDzYlRQREXlIFMgwkZ0qVaowb948Jk+ezEcffYSXlxcLFy7Ezu7WxSnPP/88ly9fZvz48ZjNZtq0aWN1B83Ro0czfvx4/vnPf1KiRAkGDRpEhw4d8mt1RERECjWTYRhGfhdR2GScO9KYCREReRRkt9/L99tpi4iISOGmMCEiIiI2UZgQERERmyhMiIiIiE0UJkRERMQmChMiIiJiE4UJERERsYnChIiIiNhEYUJERERsojAhIiIiNlGYEBEREZsoTIiIiIhNFCZERETEJgoTIiIiYhOFCREREbGJwoSIiIjYRGFCREREbKIwISIiIjZRmBARERGbKEyIiIiITRQmRERExCYKEyIiImIThQkRERGxicKEiIiI2ERhQkRERGyiMCEiIiI2UZgQERERmyhMiIiIiE0UJkRERMQmBSJMmM1mXnjhBfbv329pO3HiBIGBgfj4+NCyZUsWL15Menq6pf/UqVN069YNLy8vunTpQlRUlNUyt27dSps2bfDy8mLAgAFcuXLF0mcYBrNmzaJx48b4+/szdepU0tLS7v+KioiIPITyPUykpKTw7rvvcubMGUvbtWvX6Nu3L25ubmzYsIFx48axbNkyPvvsMwCSkpLo06cPXl5ebNiwAT8/P/r3709CQgIAUVFRBAUFMWDAANauXUtCQgIjR460LH/FihVs3LiRuXPnMn/+fLZs2cLSpUsf7IqLiIg8JPI1TJw9e5ZXXnmFCxcuWLXv2bOHokWLMnbsWGrUqMGzzz5Lr1692Lx5M3DrqIO9vT1BQUE89dRTjBkzhlKlSrFt2zYAQkNDadu2LV26dKFWrVpMmzaNffv2cf78eQBWrlzJW2+9hb+/Pw0bNmT48OGWoCIiIiK5k69h4tChQzRs2JC1a9datTdo0ICZM2diZ/e/8kwmE9evXwfg6NGj+Pr6WvpNJhO+vr5ERkZa+v39/S3zVqpUicqVKxMZGUlsbCzR0dHUr1/f0u/n50dMTAzR0dH3bV1FREQeVkXz88179OiRZXulSpWoVKmS5fWNGzcICwujefPmAMTFxVGjRg2recqXL8+pU6cA+P3333F2ds7UHxsbS1xcHIBVf4UKFQCIiYmxel8RERHJXr6PmchOWloaI0aMIDk5mQEDBgCQnJyMg4OD1XQODg6YzWbgVvi4U/+NGzcsr2/vAyzzi4iISM7l65GJ7JjNZoYPH86+fftYsWIFFStWBMDR0THTjt9sNuPk5JRt/+3Bwd7e3vJvgGLFiuWqvuPHj+d+pURERB4yBTZM3Lhxg0GDBnHkyBE++eQTvLy8LH0uLi6W0xUZ4uPjLWHDxcWF+Pj4LPtdXFwsr0uUKAFgWVbG/Dnl4eGBo6Nj7lZMRESkkElJSbnrF+gCe5pj+PDhREVFsXz5cvz8/Kz6vLy8iIyMxDAM4NZ9Iw4fPoy3t7elPyIiwjJ9dHQ0v/32G97e3ri4uODq6mrVHxERgbOzs8ZLiIiI3IMCGSa2bt3Kjh07GDduHJUqVSIuLo64uDiuXr0KQPv27UlKSiIkJISzZ88yefJkEhMT6dChAwCvvvoqW7ZsISwsjNOnTzNq1CiaNWtG9erVLf0zZ87kwIEDHDp0iJkzZ9KzZ8/8Wl0REZFCrUCe5vj6668BGDFihFW7i4sL3333HSVLlmTx4sUEBwfzxRdf4O7uzscff0zJkiUB8PHxISQkhLlz53Lt2jWaNGlCSEiIZTm9e/fm6tWrDBkyBDs7O7p06ULv3r0f3AqKiIg8RExGxrkCybGMc0caMyEiIo+C7PZ7BfI0h4iIiBQeChMiIiJiE4UJERERsYnChIiIiNhEYUJERERsojAhIiIiNlGYEBEREZsoTIiIiIhNFCZERETEJgoTIiIiYhOFCREREbGJwoSIiIjYRGFCREREbKIwISIiIjZRmBARERGbKEyIiIiITRQmRERExCYKEyIiImIThQkRERGxicKEiIiI2ERhQkRERGyiMCEiIiI2UZgQERERmyhMiIiIiE2K3qlj/vz5efIGgwcPzpPliIiISMF01zBhMplsfgOFCRERkYfbHcNEBhcXF+zscnc2JD09nZiYmDwJIyIiIlKwZRsm1q5di4uLS64WGhMTQ4sWLe61JhERESlE7hgmXF1db01QNNu8kXmhRYvi6uqqIxMiIiKPgDuev9i1axe7du2ifPnyuV5ohQoV2LVrFzt37szR9GazmRdeeIH9+/db2q5du8aQIUPw9fWlZcuWbNy40WqeU6dO0a1bN7y8vOjSpQtRUVFW/Vu3bqVNmzZ4eXkxYMAArly5YukzDINZs2bRuHFj/P39mTp1KmlpableTxEREcnlpaF//fUX27dvt7wOCwvj5Zdfpnv37jkODn+XkpLCu+++y5kzZ6zag4KCuHbtGqtXr2bgwIG89957HD58GICkpCT69OmDl5cXGzZswM/Pj/79+5OQkABAVFQUQUFBDBgwgLVr15KQkMDIkSMty16xYgUbN25k7ty5zJ8/ny1btrB06dJ7ql9EROSRZ+TQhQsXjBYtWhgNGjQwDMMw9u/fb7i7uxu1atUy3N3djdq1axv79u3L6eIMwzCMM2fOGB07djRefPFFw83Nzfj+++8NwzCM8+fPG25ubsavv/5qmXbMmDHGsGHDDMMwjC+++MJo0aKFkZaWZhiGYaSnpxtt2rQxwsLCDMMwjBEjRlimNQzD+O2336yW17x5c8u0hmEYmzZtMpo1a5bjum/cuGH897//NW7cuJGr9RURESmMstvv5fjIxLx584iOjiY5OZk///yTtWvXAlC7dm2qVq1Keno6n3zySa6CzKFDh2jYsKFlWRmOHj1KxYoVqVatmqXNz8+PI0eOWPp9fX0tV5mYTCZ8fX2JjIy09Pv7+1vmrVSpEpUrVyYyMpLY2Fiio6OpX7++1bJjYmKIjo7OVf0iIiKSg6s5Mvzwww+YTCamTJlC6dKlOXDgACaTidmzZxMTE0PPnj05fvx4rt68R48eWbbHxcXh7Oxs1Va+fHliYmIs/TVq1MjUf+rUKQB+//33LOePjY0lLi4OwKq/QoUKwK2rUCpVqpSrdRAREXnU5ThMxMfHA1CvXj1Onz7Nn3/+ibOzM1WrVrVctZGSkpInRSUnJ+Pg4GDV5uDgQGpqKoZh3LHfbDYDcOPGjTv237hxw/L69j7AMn9O5TY8iYiIPIxyHCaKFy/O9evXiYmJ4eDBgwA0btwYuHW6AuDxxx/Pk6IcHR0z7djNZjNOTk6YTKa79mc3/+3Bwd7e3vJvgGLFiuWqTg8PDxwdHXM1j4iISGGTkpJy1y/QOQ4T9erVY9++fQwZMoTExERMJhNt27Zlx44djB8/HpPJRJMmTfKkaBcXF8uRkAzx8fFUrFjR0p9xuuJO/XeaP+MGXPHx8ZQoUQLAsqyM+UVERCTncjwA8+2336ZUqVJcvXqVlJQUvL29admyJfb29qSmpuLs7Mybb76ZJ0V5e3sTGxvLpUuXLG0RERF4eXkB4OXlRWRkJIZhALfuG3H48GG8vb0t/REREZZ5o6Oj+e233/D29sbFxQVXV1er/oiICJydnTVeQkRE5B7k+MiEh4cH//73v9m1axeOjo68+OKLmEwm3NzceOWVVxgwYECeneZ44oknaNq0KaNGjWLcuHGcOHGCzZs3s2rVKgDat2/Phx9+SEhICD169CAsLIzExEQ6dOgAwKuvvkpgYCC+vr54eXkxceJEmjVrRvXq1S39M2fOpFKlShQpUoSZM2fSs2fPPKldRETkUWMyMr7e/82mTZsAeO6553I9LuDGjRt8/fXXALz00ks5msfd3Z3ly5dbTpVcuXKFsWPHsn//fipUqMDbb79Np06dLNNHRUURHBzM2bNncXd3Z/z48Xh4eFj6M25Kde3aNZo0aUJISAjlypUDIC0tjenTp7N+/Xrs7Ozo0qULI0aMyPEDzTLOHWnMhIiIPAqy2+/dMUzUqlULOzs7du/enesHfcXGxtK8eXPs7Ow4efLkvVVegClMiIjIoyS7/d5dT3MYhsHXX39NmTJlcvWmf/75p2V+ERERebhlO2ZiypQpD6IOERERKaSyPTIhIiIicjd3DBMZt6YWERERuZtcPYJcRERE5O8UJkRERMQmChMiIiJiE4UJERERsYnChIiIiNhEYUJERERskuswsWnTJvr160fz5s0tT+kMDg7m4sWLeV2biIiIFAI5fmrojRs36N+/P4cOHbLczMpkMnHlyhXWrl3Lzp07+fzzz6latep9K1ZEREQKnhwfmViwYAEHDx7EycmJ559/3tL+xx9/UKJECa5cucKcOXPuS5EiIiJScOU4THz11VeYTCamTJnCyJEjLe01a9Zk9uzZGIbBwYMH70uRIiIiUnDlOEzExcUB4O7unqmvcuXKAPz11195VJaIiIgUFjkOE66ursCtAZh/t2bNGgCqVKmSN1WJiIhIoZHjMNG1a1cMw2Dx4sW8/PLLlvZWrVrx6aefYjKZ6NSp030pUkRERAquHIeJPn360LFjRwzDsJzyMAyDy5cvYxgGbdu25Y033rhvhYqIiEjBlONLQ+3s7Jg2bRovv/wy27dv58KFCxQpUoQqVarQvn17/Pz87medIiIiUkDlOExkaNCgAQ0aNLgftYiIiEghlKswcfnyZfbt28cff/zBzZs3s5xm8ODBeVKYiIiIFA45DhN79uxhyJAhmM3mu06nMCEiIvJoyXGYmDFjBikpKfezFhERESmEchwmLly4gMlkYuDAgfzjH/+gRIkSmEym+1mbiIiIFAI5vjS0evXqAHTo0IFy5crh6OiIg4NDph8RERF5tOQ4TLz77rvY2dkxZ84crly5cj9rEhERkUIkx6c5nnnmGRo1asSOHTvYsWMHJUuWxNHR0Woak8nE3r1787xIERERKbhyHCamT5/O/v37gVt3vvzrr78yPdhLYyhEREQePTkOExkP+CpdujQNGzakWLFi2Nnl+CyJiIiIPKRyHCYMwwBg0aJF+Pr63reCbvfnn38SEhLCd999h6OjI506dWLo0KEUKVKEa9eu8d5777Fv3z7Kli3LW2+9RefOnS3znjp1iuDgYE6dOsVTTz3F+PHjqVevnqV/69atzJo1i99//50mTZrwwQcfUL58+QeyXiIiIg+THB9aaNu2LQCpqan3rZi/mzBhArGxsYSGhjJ9+nQ2bdrE8uXLAQgKCuLatWusXr2agQMH8t5773H48GEAkpKS6NOnD15eXmzYsAE/Pz/69+9PQkICAFFRUQQFBTFgwADWrl1LQkICI0eOfGDrJSIi8jDJ8ZGJfv36ERkZyfDhw+nVqxfVqlXLNAAToGnTpnlW3J49e5g6dSpubm4AvPDCC4SHh9O2bVt2797N9u3bqVatGu7u7kRGRvL555/j6+vL1q1bsbe3JygoCDs7O8aMGcOePXvYtm0bAQEBhIaG0rZtW7p06QLAtGnTaNGiBefPn6datWp5Vr+IiMijIMdhol27dpZ/T58+PctpTCYTJ0+etL2q/69s2bJ8+eWXPPPMM1y/fp29e/fSunVrjh49SsWKFa12/H5+fixcuBCAo0eP4uvraxnTYTKZ8PX1JTIykoCAAI4ePWr1uPRKlSpRuXJlIiMjFSZERERyKcenOQzDyNFPXgoODubQoUP4+vrSrFkzKlSowFtvvUVcXBzOzs5W05YvX56YmBiAO/bHxsYC8Pvvv9+1X0RERHIux0cmVq1adT/ryNKFCxeoU6cOgwYNIiEhgZCQEKZOnUrZsmUz3W3TwcGB1NRUDMMgOTk5y/6Mh5TduHHjrv05dfz48XtYKxERkYdLjsNEgwYN7mcdmVy4cIFJkyaxa9cuHn/8cQAcHR154403eOeddzLt+M1mM05OTphMJhwdHe/Yn7Gcu/XnlIeHR5bjRkRERB4mKSkpd/0CfccwsXbtWgA6deqEk5OT5XV2unXrlssSs3b8+HFKlSplCRJwa+edlpaG2WwmPj7eavr4+HgqVqwIgIuLC3FxcXftv9v8IiIiknN3DBPBwcHY2dnRokULnJycCA4OzvYOlyaTKc/ChLOzM9evX7ca33Du3DkAmjVrxrx587h06RJVqlQBICIiAi8vLwC8vLxYtGgRhmFgMpkwDIPDhw/Tt29fS39ERAQBAQEAREdH89tvv+Ht7Z0ntYuIiDxK7joAMz093er1gxyA6e3tjZubGyNHjuTUqVMcOXKEcePG0alTJ+rVq0fTpk0ZNWoUp06dYv369WzevJnXXnsNgPbt25OUlERISAhnz55l8uTJJCYm0qFDBwBeffVVtmzZQlhYGKdPn2bUqFE0a9bM8mRUERERyTmTcYcEcPnyZQBcXV0xmUyW19mpXLlynhUXGxvLpEmTCA8Px97envbt2zN8+HCcnJy4cuUKY8eOZf/+/VSoUIG3336bTp06WeaNiooiODiYs2fP4u7uzvjx4/Hw8LD0b9y4kblz53Lt2jWaNGlCSEgI5cqVy1FdGeeONGZCREQeBdnt9+4YJkaPHo3JZGL06NGUKlXqvhdamChMiIjIoyS7/d4dT3Ns3LiRjRs3kpSUdF8LFBERkcJNj/0UERERmyhMiIiIiE2yvWnV22+/nelukXdiMplYuXKlzUWJiIhI4ZFtmDhy5Ei2C8m4l0N296EQERGRh0+2YaJOnTrY29s/iFpERESkEMo2TCxatAgXF5cHUYuIiIgUQhqAKSIiIjZRmBARERGb3PE0x0svvYTJZKJ48eIPsh4REREpZO4YJqZMmfIg6xAREZFCSqc5RERExCYKEyIiImIThQkRERGxicKEiIiI2CTbm1ZlJTY2lpiYGOzs7KhSpQqPPfZYXtclIiIihUSuwsSePXuYNm0aP//8s1V7vXr1GDVqFL6+vnlanIiIiBR8OT7NsWfPHgYOHMjPP/+MYRhWP0ePHuWf//wn//3vf+9nrSIiIlIA5fjIxJw5c0hLS6NYsWJ0794dT09PihQpwsmTJ/nss89ISEhg+vTprF279n7WKyIiIgVMjsPE2bNnMZlMTJgwgY4dO1ra27VrR61atRg6dCinTp26L0WKiIhIwZXj0xyVKlUCoG7dupn6qlevDsATTzyRN1WJiIhIoZHjMPH2229jGAahoaEYhmFpv3nzJgsXLsRkMjFw4MD7UqSIiIgUXHc8zTFs2LBMbRUqVGDNmjXs2bOHWrVqcfPmTU6cOMHVq1epU6cOFy5cuK/FioiISMFjMm4/zHCbWrVqYTKZMrVnTJ7RZxiG1XQ//vjj/aizQElJSeH48eN4eHjg6OiY3+WIiIjcV9nt9+54ZMLV1fW+FiYiIiIPhzuGiV27dj3IOkRERKSQuqfbaZ87d85yqaibm5vlag4RERF59OQqTFy8eJGgoCAOHz5s1e7v78/kyZOpXLlynhYnIiIiBV+OLw39/fff6dGjB4cPH850O+1Dhw7xj3/8g/j4+PtZq4iIiBRAOQ4T8+fPJy4uDicnJ959913Wrl3L6tWrGTp0KMWLFyc2Npb58+fnaXGpqalMnjyZhg0b0rBhQ4KDgzGbzQBcvnyZN954A29vb5577jn27NljNW94eDgvvvgiXl5eBAYGcv78eav+Tz/9lGbNmuHj48Po0aNJSkrK09pFREQeFTkOE//5z38wmUyMHTuWfv364eXlhY+PD/3792fMmDEYhpHngzanTZvGjh07WLhwIYsWLWLv3r0sWLAAwzAYOHAgZcuWZd26dXTu3JkhQ4Zw8eJFAKKjoxkwYAAdO3Zk/fr1VKhQgYEDB5Keng7A9u3bmT17NsHBwaxatYpjx44xZcqUPK1dRETkUZHjMHHt2jWALB8z7uPjYzVNXrh+/TqrV68mJCQEPz8/fH19GTx4MCdOnCA8PJxffvmF999/n5o1a9KvXz98fHxYt24dAGFhYdSqVYu+fftSs2ZNJk2aRHR0NOHh4QCsXLmS1157jVatWuHp6cn48ePZuHEjiYmJeVa/iIjIoyLHYeLxxx8HyHQ6AeC7774D/vf8jrwQERFBsWLFaNKkiaWtS5cufPLJJxw9epQ6depQsmRJS5+fnx9HjhwB4OjRo/j7+1v6ihUrRt26dYmMjCQtLY1jx45Z9Xt7e5OWlvZI3HBLREQkr+X4ao7WrVuzbNkyPvzwQ86fP0+DBg0AOHToEOvWrcNkMtG6des8K+zChQu4urqyZcsWPvroI5KSkmjfvj1Dhw4lLi4OZ2dnq+nLly9PTEwMwB37Y2NjuX79OikpKVb9RYsWpWzZspb5RUREJOdyHCYGDBjA9u3buXTpEmvXrmXt2rWWPsMwcHV1pX///nlWWGJiIpcuXSI0NJQJEyaQmJjIhAkTuHnzJsnJydjb21tN7+DgQGpqKgDJyck4ODhk6jebzdy4ccPyOqv+3Dh+/HhuV0tEROShk+MwUapUKcLCwpg0aRLffPONZcddtGhRnn32Wf71r39RunTpvCusaFESEhKYPn06VatWBWDkyJGMHDmSzp07k5CQYDW92WzGyckJAEdHx0zBwGw2U7ZsWcs9xbPqz5g/p/RsDhEReRRkPJvjTnJ106py5coxY8YMxo8fz6+//krRokWpUqWK1diFvOLs7EzRokUtQQKgRo0apKSkULFiRX766Ser6ePj46lYsSIALi4uxMXFZep/+umnLYEiPj4eNzc34NZj1K9du5bp1IiIiIhkL8cDMG9XsmRJPDw8qFWr1n0JEnBrUOTNmzc5ffq0pe3cuXOUKFECb29vTp06ZXVviIiICLy9vQHw8vKyuktncnIyJ0+exNvbGzs7Ozw9PYmIiLD0HzlyhCJFilC7du37si4iIiIPszsemcjuBlQmkwknJyfKly9P/fr1qVKlSp4WVr16dVq1asXo0aN5//33uXHjBjNmzOCVV16hcePGuLq6EhQUxFtvvcXu3bs5evQoEydOBKBr164sXbqURYsW0aZNGxYuXIirqyuNGzcGoEePHvzrX//C3d2dSpUqMWHCBLp27UqJEiXydB1EREQeBSbDMIysOmrVqoXJZMrRQooUKUJgYCCjRo3K0+ISEhKYOHEi27dvp2jRorz00ksMGzYMBwcHzp8/z9ixYzl69ChVq1Zl9OjRNG3a1DLvnj17mDx5MtHR0Xh5efHBBx9YnTL5+OOPWbFiBWazmTZt2hAcHJzjMRPZPdddRETkYZLdfu+uYSI3TCYT48aNo0ePHvdWaSGiMCEiIo+S7PZ7dzzNERUVle3C09LSiI+PZ+HChWzcuJG1a9c+EmFCRERE/ueOAzAdHByy/SlWrBhPPPEEffr0AW7daEpEREQeLfd0NcffffvttwCZbiQlIiIiD79c3Wfi7z777DOWLFlCbGwsJpPJcottEREReXTYfGQiJiYGwzAoU6YMw4YNy4uaREREpBCx6chE7dq1efbZZ/Hw8KBbt25UqFAhr+oSERGRQsKmMOHr68uiRYvyqhYREREphPJkAKaIiIg8uhQmRERExCYKEyIiImIThQkRERGxicKEiIiI2ERhQuQhc/PmzfwuQWyg358URgoTIg8ZQ/+tCzX9/qQwsuk+EyJS8NgXtWPkknP5XYbco2l9n8rvEkRyTRE4n+mQZuGm3588CrSdF14P6nenIxP5rGjRokyYMCG/y5B7FBwcnN8liNx3+jtVeD2ov1E6MiEiIiI2UZgQERERm+g0Rz5LvZmuQ+WFWOrNdOyLKpPLw01/pwqvB/U3SmEinxUlDR0gKrwK4u/PuJmqKwIKMeNmKqai9vldhpWCuJ1Lzjyo353CRD4zFbXn92n987sMuUfOIxfndwmZaJsq3LRNSV56UNuToqaIiIjYRGFCREREbKIwISIiIjZRmBARERGbKEyIiIiITRQmRERExCaFIkz861//IjAw0PL61KlTdOvWDS8vL7p06UJUVJTV9Fu3bqVNmzZ4eXkxYMAArly5YukzDINZs2bRuHFj/P39mTp1KmlpaQ9sXURERB42BT5MHDhwgC+++MLyOikpiT59+uDl5cWGDRvw8/Ojf//+JCQkABAVFUVQUBADBgxg7dq1JCQkMHLkSMv8K1asYOPGjcydO5f58+ezZcsWli5d+sDXS0RE5GFRoMNEUlIS48aNw9fX19K2detW7O3tCQoK4qmnnmLMmDGUKlWKbdu2ARAaGkrbtm3p0qULtWrVYtq0aezbt4/z588DsHLlSt566y38/f1p2LAhw4cP57PPPsuX9RMREXkYFOgwMWvWLBo0aECDBg0sbUePHsXX1xc7u1ulm0wmfH19iYyMtPT7+/tbpq9UqRKVK1cmMjKS2NhYoqOjqV+/vqXfz8+PmJgYoqOjH9BaiYiIPFwKbJiIjIzk66+/ZtSoUVbtcXFxODs7W7WVL1+e2NhYAH7//fc79sfFxQFY9VeoUAGAmJiYPF8HERGRR0GBDBNms5mxY8cyZswYypQpY9WXnJyMg4ODVZuDgwNmsxmAGzdu3LH/xo0blte392W8p4iIiORegXzQ14IFC6hWrRrPPfdcpj5HR8dMO36z2YyTk1O2/bcHB3t7e8u/AYoVK5brOo8fP57ref7Oz8/P5mVI/oqIiMjvEqxomyr8tE1JXnoQ21OBDBObN28mLi4OHx8fAFJTU0lLS8PHx4cXXnjBcroiQ3x8PBUrVgTAxcWF+Pj4LPtdXFwsr0uUKAFgWVbG/Lnh4eGBo6NjrueTh4v+0Epe0zYleSkvtqeUlJS7foEukKc5Pv30U7Zs2cKmTZvYtGkTAQEBeHh4sGnTJry8vIiMjMQwDODWfSMOHz6Mt7c3AF5eXlYpLDo6mt9++w1vb29cXFxwdXW16o+IiMDZ2ZlKlSo90HUUERF5WBTIIxOVK1e2el26dGmcnJyoVq0a5cuX58MPPyQkJIQePXoQFhZGYmIiHTp0AODVV18lMDAQX19fvLy8mDhxIs2aNaN69eqW/pkzZ1KpUiWKFCnCzJkz6dmz54NeRRERkYdGgQwTd1OyZEkWL15McHAwX3zxBe7u7nz88ceULFkSAB8fH0JCQpg7dy7Xrl2jSZMmhISEWObv3bs3V69eZciQIdjZ2dGlSxd69+6dX6sjIiJS6BWKMDF06FCr1/Xq1WPjxo13nL5z58507tw5y74iRYoQFBREUFBQntYoIiLyqCqQYyZERESk8FCYEBEREZsoTIiIiIhNFCZERETEJgoTIiIiYhOFCREREbGJwoSIiIjYRGFCREREbKIwISIiIjZRmBARERGbKEyIiIiITRQmRERExCYKEyIiImIThQkRERGxicKEiIiI2ERhQkRERGyiMCEiIiI2UZgQERERmyhMiIiIiE0UJkRERMQmChMiIiJiE4UJERERsYnChIiIiNhEYUJERERsojAhIiIiNlGYEBEREZsoTIiIiIhNFCZERETEJgoTIiIiYpMCGyYuXLjAm2++ib+/P82aNWPKlCmkpKQAcPnyZd544w28vb157rnn2LNnj9W84eHhvPjii3h5eREYGMj58+et+j/99FOaNWuGj48Po0ePJikp6YGtl4iIyMOmQIYJs9nMm2++iYODA2vWrGHGjBl8++23zJo1C8MwGDhwIGXLlmXdunV07tyZIUOGcPHiRQCio6MZMGAAHTt2ZP369VSoUIGBAweSnp4OwPbt25k9ezbBwcGsWrWKY8eOMWXKlPxcXRERkUKtQIaJqKgoLly4wOTJk3nqqado0KABb7/9Nps3byY8PJxffvmF999/n5o1a9KvXz98fHxYt24dAGFhYdSqVYu+fftSs2ZNJk2aRHR0NOHh4QCsXLmS1157jVatWuHp6cn48ePZuHEjiYmJ+bnKIiIihVaBDBNPPvkkH3/8MSVKlLC0mUwmrl+/ztGjR6lTpw4lS5a09Pn5+XHkyBEAjh49ir+/v6WvWLFi1K1bl8jISNLS0jh27JhVv7e3N2lpafz444/3f8VEREQeQgUyTJQrV44mTZpYXqenpxMaGkqTJk2Ii4vD2dnZavry5csTExMDcMf+2NhYrl+/TkpKilV/0aJFKVu2rGV+ERERyZ0CGSb+bvLkyfz4448MHz6c5ORk7O3trfodHBxITU0FIDk5GQcHh0z9ZrOZGzduWF5n1S8iIiK5VzS/C7gbwzCYOHEiq1evZs6cOTz99NM4OjqSkJBgNZ3ZbMbJyQkAR0fHTMHAbDZTtmxZHB0dLa/vNH9uHD9+PNfz/J2fn5/Ny5D8FRERkd8lWNE2Vfhpm5K89CC2pwIbJtLT0xk7diybN29m1qxZtG7dGgAXFxdOnTplNW18fDwVK1a09MfFxWXqf/rppy2BIj4+Hjc3NwBu3rzJtWvXMp0ayQkPDw9LQJFHl/7QSl7TNiV5KS+2p5SUlLt+gS6wpzmmTJnC5s2bmTdvHm3btrW0e3l5cerUKat7Q0RERODt7W3pP3z4sKUvOTmZkydP4u3tjZ2dHZ6enlYp7ciRIxQpUoTatWvf/5USERF5CBXIMHHkyBFWrlzJkCFD8PDwIC4uzvLToEEDXF1dCQoK4syZM3z88cccPXqUgIAAALp27crRo0dZtGgRZ8+eZezYsbi6utK4cWMAevTowbJly9i+fTvHjh1jwoQJdO3a1erKEREREcm5Anma45tvvgHgww8/5MMPP7TqO3HiBAsXLmTs2LF06dKFqlWrMn/+fKpUqQJAlSpVmDdvHpMnT+ajjz7Cy8uLhQsXYmd3Kzc9//zzXL58mfHjx2M2m2nTpg1BQUEPdgVFREQeIgUyTIwaNYpRo0bdsb9atWqEhobesb958+Y0b978jv39+vWjX79+NtUoIiIitxTI0xwiIiJSeChMiIiIiE0UJkRERMQmChMiIiJiE4UJERERsYnChIiIiNhEYUJERERsojAhIiIiNlGYEBEREZsoTIiIiIhNFCZERETEJgoTIiIiYhOFCREREbGJwoSIiIjYRGFCREREbKIwISIiIjZRmBARERGbKEyIiIiITRQmRERExCYKEyIiImIThQkRERGxicKEiIiI2ERhQkRERGyiMCEiIiI2UZgQERERmyhMiIiIiE0UJkRERMQmChMiIiJiE4UJERERsckjGybMZjPjxo3D39+fZ555hiVLluR3SSIiIoVS0fwuIL9MmzaNI0eOsHz5cmJiYhg5ciSurq48//zz+V2aiIhIofJIHplISkoiLCyM0aNH4+HhQevWrenTpw+hoaH5XZqIiEih80iGiVOnTmE2m/Hz87O0+fn5cezYMdLS0vKxMhERkcLnkTzNERcXR5kyZXB0dLS0VahQgdTUVK5cuYKzs/Nd5zcMA7g17iIv3HQqmSfLkQcvJSUlv0vIkrapwkvblOSlvNqeMvZ3Gfu/v3skw0RycjIODg5WbRmvcxIQUlNTAfjpp5/ypqBneuTNcuSBiz5+PL9LyJq2qUJL25TkpbzenlJTU3FycsrU/kiGCUdHx0yhIeN1sWLFsp2/RIkSuLm5YW9vj8lkui81ioiIFBSGYZCamkqJEiWy7H8kw4SLiwvXr1/HbDZbjkjExcXh4OBAmTJlsp3fzs6OUqVK3e8yRURECoysjkhkeCQHYNauXRt7e3siIyMtbREREdStW5eiRR/JfCUiInLPHskwUaxYMV566SUmTJhAVFQUO3fuZNmyZfTs2TO/SxMRESl0TMadhmY+5JKTkxk/fjzbt2+nRIkSvPHGG7zxxhv5XZaIiEih88iGCREREckbj+RpDhEREck7ChMiIiJiE4UJERF5ZOlMf97QdZCSY4GBgRw6dCjLvgoVKvD9999jNptZsWIFX375JRcuXMDBwYHatWvz2muv0a5duwdcsRQG2W1Xw4YNY/To0Rw4cIBy5crRsmVLWrRowXvvvfeAK5UHJSd/a2xlNpuZNm0ajRo1onXr1gAEBQWxcePGO84TFRXFkSNH6NmzJ+vWrcPT05PAwECKFy/O4sWLba6pMFOYkFzx9fVl1KhRmdrt7e0BGDVqFAcOHODNN9/E3d2d5ORkduzYwZAhQwgODqZHD92SVzK723ZVqVIl1q5dS+nSpfOhMskv2f2tsdXvv//Op59+Sv369a3an3jiCWbMmJHlPA4ODtStW5e1a9fy1FNP5UkdDwuFCcmV0qVL4+3tnWXfpUuX2Lp1K7NmzaJDhw6W9pYtW5KYmMi8efMUJiRLd9uuAMqVK/fgipECIbtt4n5xcnK66/uWLFkyX+oq6DRmQvLM1atXAUhPT8/U16dPH/r06UNqaiqXLl3Cx8eHoUOHWvovXryIt7c3EyZMeGD1SuGwYcMG3N3dLdvX3yUlJRESEkKTJk2oV68egYGBnDx58gFXKQ9aVFQUffv2pX79+nh4eNCuXTvWrFljNc0nn3xCmzZt8PT0pHXr1ixYsID09HQuXbpEq1atAHj77bcJDAzM8fsePHgQd3d3jh07lmX/zZs3mTNnDi1atMDT05MuXbpw4MCBe1/RQkJhQnLFMAxu3ryZ6QegVq1auLi4EBwczNSpUzl06JDl8bf16tWjd+/e2NvbU6VKFd555x22bt3KgQMHMAyDsWPHUrFiRUaMGJGfqyf55G7bVXbzDRgwgK+++op33nmHOXPm4ODgQGBgIBcuXHgAlcv9crdt4rfffqNnz54UL16cOXPmsGDBAmrUqEFwcDCnT58G4N///jdz5szh9ddfZ+nSpQQEBDBv3jzCwsJwdnZm/vz5ALz77rsEBwdbvfe9bIsZxo0bx/Lly+nZsycLFizgySefpG/fvhw+fDiPPpmCSac5JFf27NlD3bp1M7VnDI77+OOPGT58OMuWLWPZsmU4ODhQv359AgICrE59BAYGsm3bNiZOnEiPHj344YcfCA0NpXjx4g9ydaSAuNt2dTf79u0jPDyc5cuX06RJEwD+7//+j+eff55FixYxefLk+1Kv3H932ybOnDmDt7c3M2bMsIyh8Pb2pkGDBvzwww+4u7sTERFB5cqV6dGjByaTiQYNGlC0aFGcnZ0tA8MBqlWrRs2aNS3LP3PmTJbvmzHg8m7OnTvHhg0b+OCDDwgICACgWbNmxMXFMXv2bFatWnXPn0dBpzAhueLn58fo0aMztWcMjqtVqxabN28mMjKSPXv2EB4ezsGDB9m/fz87d+7kww8/BG49eXXixIm89NJLhISE8Prrr+Pn5/dA10UKjuy2qzs5ePAgxYoVw9/f3+rbY9OmTdm1a1ee1ykPzt22iebNm9O8eXNSUlI4deoUv/76K1FRUcCtqzQA6tevz9q1a+natSvt27enRYsW9O7dO9v3rVq1KjNnzszUfnvguJOMK1CaNWtmtT02b96cmTNnWj2p+mGjMCG5UqpUqWzTuclkwtfXF19fXwCuXLlCSEgIW7ZsISAggEaNGgHw1FNPUbduXSIjI2nevPl9r10KrpxsV1m5du0aycnJeHh4ZOrLq1H/kj/utk2kpaUxZcoU1q5dS2pqKlWrVrVclZFx34iOHTuSlpbGZ599xsyZM/nwww9xd3dn4sSJd93WHB0d72lbhFvbI9wKE1n5448/cHFxuadlF3QKE5JnpkyZwqFDh9iwYYNVe/ny5QkJCWHbtm2cO3fOEia+/PJLjhw5gpubG++//z6bNm16aFO73B+lSpWifPnyj/w1/o+aRYsWERYWxtSpU2nevDnFixcnOTmZdevWWU3XuXNnOnfuzJUrV9i1axcLFixg5MiRbNu27b7UVapUKUwmE2vWrKFIkSKZ+h977LH78r4FgQZgSp6pVq0aJ06cYN++fZn6fv31VwDc3NyAW1d+TJo0iZdffpl58+Zx8eJFFixY8CDLlYeAn58fV69epXjx4nh6elp+Nm/ezJdffpnf5cl9cuTIETw8PHjuuecs46z27t0L/O/IxNixYxkyZAhw6wtNQEAAL7/8MtHR0QBZ7uxt5efnh2EYJCQkWG2PBw4cYMWKFRQt+vB+f39410weuC5durBx40YGDRpEjx49aNy4MU5OTpw4cYJPPvmEVq1a4e/vD8AHH3wAwPDhwylbtix9+vRhyZIlPPfcc9SqVSs/V0MKkWeffRZPT0/69evH4MGDqVSpEt988w2ff/65LjN+iHl6erJkyRJCQ0Nxc3Pj2LFjLFiwAJPJxI0bNwDw9/dn1KhRzJw5kyZNmhATE8Pq1atp06YNcOsoAsD+/fupXr16nvzdqV27Nu3atWPEiBEMHjyYp556ikOHDrFo0SL69OmDnd3D+/1dYULyjKOjIytXrmTp0qXs2LGDNWvWkJaWRrVq1Xj99dd5/fXXAdi9ezdfffUVEydOpGzZsgC8+eabbN68mTFjxvDFF1/cl28N8vApUqQIS5cuZcaMGUyfPp2EhASqVavG5MmT6dKlS36XJ/dJv379iIuLY/78+aSkpFC9enXee+89y+BvgJdeeomEhAQ+++wzVqxYQalSpWjXrh3Dhg0Dbt18qm/fvoSGhhIZGcnmzZvzpLYZM2YwZ84cPv74Y65cuULlypUZNmxYjgZ/FmYmQ085ERERERs8vMdcRERE5IFQmBARERGbKEyIiIiITRQmRERExCYKEyIiImIThQkRERGxicKEyCMoMDAQd3d3XnnllfwuJUtnzpzJdpqWLVvi7u5u+YmNjbXqX7RokVX/vHnz8rTGjPcfOnRoni5XpDBSmBCRAiM+Pp5Ro0bx5ptv5nreH3744a6vReT+UZgQkQJj0qRJbNq0iXu5l17G458Bbt68abkToojcfwoTIlJg3EuIqFSpEmB9JOLkyZMkJSVhb29PhQoV8qw+EcmawoSIAP8bRzF27FgiIiLo3r079erVo2XLlnzyySd3nHbPnj107twZT09Pnn/+ebZu3ZrltH8fn/H39sDAQMu8ly9fzvE4Bz8/PwB+/vln4uPjgf8FCw8PDxwdHbOc79y5cwwfPpymTZvi6elJ+/btWbBgASkpKVbTGYbBsmXLaN26NZ6ennTv3p2oqKg71vPFF1/w4osv4uHhQdOmTQkODubq1avZrodIYaYHfYmIlZMnT/Lll19iNpuBWzv26dOn4+rqSocOHaymjYyMZMOGDaSnpwNw9uxZhg4ditls5qWXXnog9VavXp1y5cpx9epVfvjhB5577jlLmPDz82Pbtm2Z5vnvf/9L3759SUpKsrT98ssvzJ07l++//57ly5dbQsiMGTOswlRkZCT//Oc/s6xlzpw5LFy40PI6Li6ONWvW8MMPP7Bu3TrL47JFHjY6MiEiVk6ePEm7du3YunUr77//vqX970cc4Na3+//7v/9j06ZNLFq0iPLlywMwbdo0SxjJqTlz5tCyZUsAHn/8cfbs2UOvXr1yNK+Pjw9w64iEYRgcPnwYAF9f30zT3rx5k5EjR5KUlET58uWZM2cOW7ZsoU+fPgBERERYAkFsbCzLly8HboWWlStXsm7dOtzd3a2CCMCFCxf46KOPAOjSpQtbt25lyZIlVKxYkXPnzrFs2bJcfR4ihYnChIhYKVGiBBMnTuSpp56iW7du1KxZEyDLQ/VOTk5Mnz6d2rVr07JlSwYNGgTAlStXOH78eK7et1y5cjg5OQG3Hi3++OOPU7JkyRzNmxEafvjhB06fPs2ff/6JyWTKMkzs37+fy5cvAzBmzBjat2/P008/zYgRI2jatClw61SFYRgcOHCAtLQ0AMaNG0ejRo3w9PRk6tSpmZa7c+dO0tPTsbOzY8CAAZQoUQI3NzdefPFFAL766qtcfR4ihYlOc4iIlSpVqliNMyhTpgxw6xv931WtWtXSD+Dp6Wn5d3R09F3f514GW95JRmg4c+YM3377LQA1atTgscceyzTt7fewaNiwoVVfw4YN2bdvH1euXOGPP/6wundF3bp1Lf+uVq0apUqV4q+//rK0nT9/HoD09HTatGmT6X1//fVXzGYzDg4O97KKIgWajkyIiJWMowMZihQpcsdp73Yqw2QyWb3OGFeRk3lzK2OgpWEYfPrpp8D/Bmb+3d3W5+813r4Ofw8/f19O0aJ3/26Wnp7On3/+eddpRAorhQkRuWeXL1+2+vZ+4sQJy7+rVKkCgL29PQCJiYlW88bExGRaXsbOO7dHLRwcHPDw8ADg2rVrQNbjJeDWEYsMt9+bAv53FUjFihUpV66cZR3Aet3Onz9veZ8Mt6/vsWPHOH36NKdPn+abb75h9+7dnD59mooVK+ZqvUQKC4UJEblnqampDB8+nBMnTvDdd9+xYMECAJydnalTpw6AZQf666+/sn//flJTU1m0aFGm218DllMA165d49SpU5ZTBznx9/BwpyMTjRs3ttx7YtKkSXzzzTecPXuWDz/8kH379gHQrVs3y7QZp3zGjx/PgQMHiIqKYuTIkZmW27p1a4oWLUpqaipBQUGcPn2aw4cP8/rrr/Pss8/Su3fvHK+LSGGjMRMics/Kli3LkSNH6NKli6XNZDIxevRoy2H/Nm3asGnTJtLT0+nVqxcmkwk7Oztq167Njz/+aLW8jMGeSUlJdOrUiVdffZXx48fnqJbbw0SFChWoVq1altM5ODgwdepUBg4cSHx8PEOGDLHqb9CgAf379wfgscceY8iQIUyfPp1Lly7x+uuvA7dOBVWvXp1ff/3VMl+VKlXo2bMny5Yt46uvvrIacFmsWDHeeuutHK2HSGGkIxMics+qVavGJ598Qq1atbC3t+fpp59mzpw5VvejaN26NePGjaNy5co4Ojri7e3N0qVL8ff3z7S8gIAAnn32WUqWLEnZsmVzdfdKHx8fy2mSO53iyNC0aVPWr19Px44dqVixIvb29lSvXp23336bpUuXWg2S7NOnD++//z5Vq1bF0dERX19fVq5cyVNPPZVpuSNHjmT8+PHUrl0bJycnypYtS/Pmzfn000/x9vbO8bqIFDYmIy+HVIvIIyEwMJBDhw7h5eVFWFhYfpcjIvlMRyZERETEJgoTIiIiYhOFCREREbGJxkyIiIiITXRkQkRERGyiMCEiIiI2UZgQERERmyhMiIiIiE0UJkRERMQmChMiIiJik/8H7pWmVyWDCNsAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_params = [\n", " ('Smaller Dataset / Smaller Files', 500),\n", " ('Larger Dataset / Smaller Files', 16000),\n", " ('Smaller Dataset / Larger Files', 500),\n", " ('Larger Dataset / Larger Files', 16000),\n", "]\n", "\n", "for ds, ylim in plot_params:\n", " df_to_plot = df.loc[df['dataset_spec/train'] == ds]\n", " plot_stacked_times(df_to_plot, title=ds, lim=[0, ylim], ci=None, dodge=False, bar_width=0.75)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Do your results look similar to the ones from the blog post?**\n", "![Blog Results](https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2022/02/15/ML-2979-image005.jpg)\n", "\n", "Source: *[\"Choose the best data source for your Amazon SageMaker training job\"](https://aws.amazon.com/blogs/machine-learning/choose-the-best-data-source-for-your-amazon-sagemaker-training-job/) (G. Nachum, A. Arzhanov)*" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "instance_type": "ml.t3.medium", "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.4" } }, "nbformat": 4, "nbformat_minor": 4 }