diff --git a/.gitignore b/.gitignore index a9759ea..930bac4 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,7 @@ temp/ .venv/ htmlcov/ cloc_report.txt -.vscode/ \ No newline at end of file +.vscode/ +LSTM.ipynb +GRU.ipynb +new_env/ \ No newline at end of file diff --git a/Makefile b/Makefile index e002bc8..73d1408 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ ENV_NAME = STD_DS_LIB EC2_SETUP_SCRIPT = ./scripts/setup.sh .ONESHELL: -.PHONY: activate init install export-env create-env list-packages update-env remove-env +.PHONY: activate: @echo Activating virtual environment... @@ -28,26 +28,10 @@ endif install: activate poetry install --no-root --only main -exp-env: - @echo Exporting conda environment... - conda env export --no-builds > $(YML_FILE) - -create-env: - @echo Creating conda environment - conda env create -f $(YML_FILE) - list-packages: - @echo Listing conda packages... + @echo Listing python packages... pip list -update-env: - @echo Updating conda environment... - conda env update -f $(YML_FILE) --prune - -remove-env: - @echo Removing conda environment... - conda env remove -n $(ENV_NAME) - onetime-setup-ec2: @echo Setting up EC2 instance... bash $(EC2_SETUP_SCRIPT) @@ -112,18 +96,22 @@ else python3 $$fullpath endif -print-env-variables: - @echo $(LOG_LEVEL) - unit-tests: activate @echo Running unit tests... ifeq ($(OS),Windows_NT) - pytest --cov=. --cov-report=term-missing --cov-fail-under=60 tests/ + pytest --cov=. --cov-report=term-missing --cov-fail-under=70 tests/ else - .venv/bin/pytest --cov=. --cov-report=term-missing --cov-fail-under=60 tests/ + .venv/bin/pytest --cov=. --cov-report=term-missing --cov-fail-under=70 tests/ endif lines-of-code-report: @echo Counting lines of code... cloc --include-lang=Python --by-file --report-file=cloc_report.txt $(SRC) +start-mlflow:activate + @echo Starting MLflow UI... + mlflow ui --backend-store-uri sqlite:///mlruns/mlruns.db --host localhost --port 5000 + +start-jupyter:activate + @echo Starting Jupyter Notebook... + jupyter notebook \ No newline at end of file diff --git a/README.md b/README.md index 492c50e..57cd195 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,86 @@ ## :floppy_disk: Dataset +### Yahoo Finance +To acquire cryptocurrency price data (Open, High, Low, Close, Adj Close & Volume), [yfinance](https://github.com/ranaroussi/yfinance), built by Ran Aroussi, was used to pull all the available price data at a daily interval for Ethereum, Bitcoin and Litecoin from [Yahoo Finance](https://finance.yahoo.com/). + +### Google News +To acquire Google News Headlines for the time period fetched for Ethereum price data, [gnews](https://github.com/ranahaani/GNews), built by Muhammad Abdullah (ranahanni), was used to pull any news that contained the keywords: Cryptocurrency, Blockchain, Bitcoin, Ethereum and Litecoin. The data acquired from the API call pulls the news headline, description, Google news URL, news publisher name and website. + +
2222 rows × 4 columns
\n", + "2336 rows × 4 columns
\n", "" ], "text/plain": [ " D_VADER_AvgScr_In D_VADER_Sent_AvgIn D_VADER_AvgScr_Ex \\\n", "Date \n", - "2017-11-09 0.000000 0 0.085812 \n", - "2017-11-10 0.000000 0 0.200906 \n", - "2017-11-13 -0.200950 -1 0.037144 \n", - "2017-11-15 0.158925 1 0.183333 \n", - "2017-11-16 -0.048150 0 0.066172 \n", + "2017-11-09 0.082633 1 0.202827 \n", + "2017-11-10 0.189088 1 0.267875 \n", + "2017-11-11 0.065342 1 0.112014 \n", + "2017-11-12 0.037093 0 0.088433 \n", + "2017-11-13 0.036083 0 0.078931 \n", "... ... ... ... \n", - "2024-03-28 0.069640 1 0.021671 \n", - "2024-03-29 0.185040 1 0.061429 \n", - "2024-03-30 0.136029 1 0.083458 \n", - "2024-03-31 -0.053033 -1 0.040055 \n", - "2024-04-01 0.050623 1 0.061479 \n", + "2024-03-28 0.019836 0 0.037374 \n", + "2024-03-29 0.058162 1 0.118291 \n", + "2024-03-30 0.075112 1 0.187781 \n", + "2024-03-31 0.034492 0 0.075188 \n", + "2024-04-01 0.054858 1 0.132067 \n", "\n", " D_VADER_Sent_AvgEx \n", "Date \n", "2017-11-09 1 \n", "2017-11-10 1 \n", - "2017-11-13 0 \n", - "2017-11-15 1 \n", - "2017-11-16 1 \n", + "2017-11-11 1 \n", + "2017-11-12 1 \n", + "2017-11-13 1 \n", "... ... \n", "2024-03-28 0 \n", "2024-03-29 1 \n", "2024-03-30 1 \n", - "2024-03-31 0 \n", + "2024-03-31 1 \n", "2024-04-01 1 \n", "\n", - "[2222 rows x 4 columns]" + "[2336 rows x 4 columns]" ] }, - "execution_count": 218, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1122,7 +1122,7 @@ }, { "cell_type": "code", - "execution_count": 219, + "execution_count": 35, "id": "ae34e80f-ae1f-4745-ae19-4593f7453d52", "metadata": { "editable": true, @@ -1137,37 +1137,35 @@ "output_type": "stream", "text": [ "| \n", + " | Feature | \n", + "MI Score | \n", + "
|---|---|---|
| 14 | \n", + "BTC_D_AvgPrc | \n", + "1.741634 | \n", + "
| 19 | \n", + "BTC_OL_MinDif | \n", + "1.509851 | \n", + "
| 25 | \n", + "LTC_D_AvgPrc | \n", + "1.335016 | \n", + "
| 29 | \n", + "LTC_OL_MinDif | \n", + "1.222356 | \n", + "
| 17 | \n", + "BTC_OL_AvgComPwr | \n", + "1.154428 | \n", + "
| 9 | \n", + "ETH_ES_GasUsd | \n", + "0.915045 | \n", + "
| 27 | \n", + "LTC_OL_AvgComPwr | \n", + "0.886200 | \n", + "
| 33 | \n", + "LTC_BIC_HshRt | \n", + "0.844124 | \n", + "
| 4 | \n", + "ETH_ES_BlkSz | \n", + "0.732509 | \n", + "
| 1 | \n", + "ETH_ES_AvgTransFee | \n", + "0.707673 | \n", + "
| 24 | \n", + "BTC_BIC_HshRt | \n", + "0.676434 | \n", + "
| 3 | \n", + "ETH_ES_BlkCnt | \n", + "0.632240 | \n", + "
| 5 | \n", + "ETH_ES_BlkTm | \n", + "0.588108 | \n", + "
| 10 | \n", + "ETH_ES_VerCon | \n", + "0.499312 | \n", + "
| 2 | \n", + "ETH_ES_AvgGasPrc | \n", + "0.439608 | \n", + "
XGBRegressor(base_score=None, booster=None, callbacks=None,\n", + " colsample_bylevel=None, colsample_bynode=None,\n", + " colsample_bytree=None, device=None, early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None, feature_types=None,\n", + " feature_weights=None, gamma=1, grow_policy=None,\n", + " importance_type='gain', interaction_constraints=None,\n", + " learning_rate=None, max_bin=None, max_cat_threshold=None,\n", + " max_cat_to_onehot=None, max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None, missing=nan,\n", + " monotone_constraints=None, multi_strategy=None, n_estimators=None,\n", + " n_jobs=None, num_parallel_tree=None, ...)In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
XGBRegressor(base_score=None, booster=None, callbacks=None,\n", + " colsample_bylevel=None, colsample_bynode=None,\n", + " colsample_bytree=None, device=None, early_stopping_rounds=None,\n", + " enable_categorical=False, eval_metric=None, feature_types=None,\n", + " feature_weights=None, gamma=1, grow_policy=None,\n", + " importance_type='gain', interaction_constraints=None,\n", + " learning_rate=None, max_bin=None, max_cat_threshold=None,\n", + " max_cat_to_onehot=None, max_delta_step=None, max_depth=None,\n", + " max_leaves=None, min_child_weight=None, missing=nan,\n", + " monotone_constraints=None, multi_strategy=None, n_estimators=None,\n", + " n_jobs=None, num_parallel_tree=None, ...)
| \n", + " | Feature | \n", + "Importance | \n", + "
|---|---|---|
| 0 | \n", + "ETH_D_AvgPrc_lag_1 | \n", + "1.0 | \n", + "
| 1 | \n", + "ETH_D_AvgPrc_lag_2 | \n", + "0.0 | \n", + "
| 18 | \n", + "ETH_ES_AvgTransFee_lag_4 | \n", + "0.0 | \n", + "
| 17 | \n", + "ETH_ES_AvgTransFee_lag_3 | \n", + "0.0 | \n", + "
| 16 | \n", + "ETH_ES_AvgTransFee_lag_2 | \n", + "0.0 | \n", + "
| 15 | \n", + "ETH_ES_AvgTransFee_lag_1 | \n", + "0.0 | \n", + "
| 14 | \n", + "ETH_ES_BlkSz_lag_5 | \n", + "0.0 | \n", + "
| 13 | \n", + "ETH_ES_BlkSz_lag_4 | \n", + "0.0 | \n", + "
| 12 | \n", + "ETH_ES_BlkSz_lag_3 | \n", + "0.0 | \n", + "
| 11 | \n", + "ETH_ES_BlkSz_lag_2 | \n", + "0.0 | \n", + "
| 10 | \n", + "ETH_ES_BlkSz_lag_1 | \n", + "0.0 | \n", + "
| 9 | \n", + "ETH_ES_GasUsd_lag_5 | \n", + "0.0 | \n", + "
| 8 | \n", + "ETH_ES_GasUsd_lag_4 | \n", + "0.0 | \n", + "
| 7 | \n", + "ETH_ES_GasUsd_lag_3 | \n", + "0.0 | \n", + "
| 6 | \n", + "ETH_ES_GasUsd_lag_2 | \n", + "0.0 | \n", + "
| 5 | \n", + "ETH_ES_GasUsd_lag_1 | \n", + "0.0 | \n", + "
| 4 | \n", + "ETH_D_AvgPrc_lag_5 | \n", + "0.0 | \n", + "
| 3 | \n", + "ETH_D_AvgPrc_lag_4 | \n", + "0.0 | \n", + "
| 2 | \n", + "ETH_D_AvgPrc_lag_3 | \n", + "0.0 | \n", + "
| 19 | \n", + "ETH_ES_AvgTransFee_lag_5 | \n", + "0.0 | \n", + "
| \n", + " | ETH_D_AvgPrc_horizon_0 | \n", + "ETH_D_AvgPrc_lag_1 | \n", + "ETH_D_AvgPrc_lag_2 | \n", + "ETH_D_AvgPrc_lag_3 | \n", + "ETH_D_AvgPrc_lag_4 | \n", + "ETH_D_AvgPrc_lag_5 | \n", + "ETH_D_AvgPrc_horizon_1 | \n", + "ETH_D_AvgPrc_horizon_2 | \n", + "ETH_D_AvgPrc_horizon_3 | \n", + "ETH_D_AvgPrc_horizon_4 | \n", + "ETH_D_AvgPrc_horizon_5 | \n", + "ETH_D_AvgPrc_horizon_6 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | \n", + "\n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " |
| 2021-01-01 | \n", + "734.267502 | \n", + "742.560349 | \n", + "739.595978 | \n", + "722.995285 | \n", + "710.671677 | \n", + "664.564499 | \n", + "752.461395 | \n", + "882.036545 | \n", + "1020.696609 | \n", + "1064.421906 | \n", + "1145.444794 | \n", + "1220.944794 | \n", + "
| 2021-01-02 | \n", + "752.461395 | \n", + "734.267502 | \n", + "742.560349 | \n", + "739.595978 | \n", + "722.995285 | \n", + "710.671677 | \n", + "882.036545 | \n", + "1020.696609 | \n", + "1064.421906 | \n", + "1145.444794 | \n", + "1220.944794 | \n", + "1200.018524 | \n", + "
| 2021-01-03 | \n", + "882.036545 | \n", + "752.461395 | \n", + "734.267502 | \n", + "742.560349 | \n", + "739.595978 | \n", + "722.995285 | \n", + "1020.696609 | \n", + "1064.421906 | \n", + "1145.444794 | \n", + "1220.944794 | \n", + "1200.018524 | \n", + "1247.739990 | \n", + "
| 2021-01-04 | \n", + "1020.696609 | \n", + "882.036545 | \n", + "752.461395 | \n", + "734.267502 | \n", + "742.560349 | \n", + "739.595978 | \n", + "1064.421906 | \n", + "1145.444794 | \n", + "1220.944794 | \n", + "1200.018524 | \n", + "1247.739990 | \n", + "1271.439880 | \n", + "
| 2021-01-05 | \n", + "1064.421906 | \n", + "1020.696609 | \n", + "882.036545 | \n", + "752.461395 | \n", + "734.267502 | \n", + "742.560349 | \n", + "1145.444794 | \n", + "1220.944794 | \n", + "1200.018524 | \n", + "1247.739990 | \n", + "1271.439880 | \n", + "1134.578461 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 2023-02-27 | \n", + "1638.263428 | \n", + "1617.811188 | \n", + "1595.017517 | \n", + "1625.876862 | \n", + "1650.385040 | \n", + "1642.543213 | \n", + "1621.815369 | \n", + "1633.614105 | \n", + "1651.379883 | \n", + "1604.413055 | \n", + "1565.894012 | \n", + "1568.952759 | \n", + "
| 2023-02-28 | \n", + "1621.815369 | \n", + "1638.263428 | \n", + "1617.811188 | \n", + "1595.017517 | \n", + "1625.876862 | \n", + "1650.385040 | \n", + "1633.614105 | \n", + "1651.379883 | \n", + "1604.413055 | \n", + "1565.894012 | \n", + "1568.952759 | \n", + "1567.150421 | \n", + "
| 2023-03-01 | \n", + "1633.614105 | \n", + "1621.815369 | \n", + "1638.263428 | \n", + "1617.811188 | \n", + "1595.017517 | \n", + "1625.876862 | \n", + "1651.379883 | \n", + "1604.413055 | \n", + "1565.894012 | \n", + "1568.952759 | \n", + "1567.150421 | \n", + "1562.911896 | \n", + "
| 2023-03-02 | \n", + "1651.379883 | \n", + "1633.614105 | \n", + "1621.815369 | \n", + "1638.263428 | \n", + "1617.811188 | \n", + "1595.017517 | \n", + "1604.413055 | \n", + "1565.894012 | \n", + "1568.952759 | \n", + "1567.150421 | \n", + "1562.911896 | \n", + "1549.582428 | \n", + "
| 2023-03-03 | \n", + "1604.413055 | \n", + "1651.379883 | \n", + "1633.614105 | \n", + "1621.815369 | \n", + "1638.263428 | \n", + "1617.811188 | \n", + "1565.894012 | \n", + "1568.952759 | \n", + "1567.150421 | \n", + "1562.911896 | \n", + "1549.582428 | \n", + "1485.016388 | \n", + "
792 rows × 12 columns
\n", + "Model: \"sequential_12\"\n",
+ "\n"
+ ],
+ "text/plain": [
+ "\u001b[1mModel: \"sequential_12\"\u001b[0m\n"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n", + "┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n", + "│ bidirectional_13 (Bidirectional) │ (None, 30, 128) │ 34,304 │\n", + "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n", + "│ bidirectional_14 (Bidirectional) │ (None, 128) │ 98,816 │\n", + "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n", + "│ dense_11 (Dense) │ (None, 7) │ 903 │\n", + "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n", + "\n" + ], + "text/plain": [ + "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n", + "┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n", + "┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n", + "│ bidirectional_13 (\u001b[38;5;33mBidirectional\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m30\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m34,304\u001b[0m │\n", + "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n", + "│ bidirectional_14 (\u001b[38;5;33mBidirectional\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m128\u001b[0m) │ \u001b[38;5;34m98,816\u001b[0m │\n", + "├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n", + "│ dense_11 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m) │ \u001b[38;5;34m903\u001b[0m │\n", + "└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Total params: 134,023 (523.53 KB)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Total params: \u001b[0m\u001b[38;5;34m134,023\u001b[0m (523.53 KB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Trainable params: 134,023 (523.53 KB)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m134,023\u001b[0m (523.53 KB)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Non-trainable params: 0 (0.00 B)\n", + "\n" + ], + "text/plain": [ + "\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "model=Sequential()\n", + "model.add(InputLayer((lags,len(features))))\n", + "# model.add(Bidirectional(LSTM(64, return_sequences=True)))\n", + "# model.add(Bidirectional(LSTM(64, return_sequences=True)))\n", + "model.add(Bidirectional(LSTM(64, return_sequences=True)))\n", + "model.add(Bidirectional(LSTM(64, recurrent_dropout=0.2, return_sequences=False)))\n", + "# model.add(Bidirectional(LSTM(50, return_sequences=False)))\n", + "# model.add(Dense(8, \"relu\"))\n", + "model.add(Dense(n_periods))\n", + "model.summary()\n", + "model.compile(optimizer=Adam(learning_rate=0.01), loss='mse', metrics=[RootMeanSquaredError()])\n", + "early_stop = EarlyStopping(monitor='val_loss', restore_best_weights=True, patience=100, verbose=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "id": "e1b39279-51f1-4dd3-9213-08f033d16c44", + "metadata": {}, + "outputs": [], + "source": [ + "split = \"val\"\n", + "train, test = DL.split_data(split_size=split_size)\n", + "train, val = DL.split_data(split_size=split_size, split_type=\"train_val\")\n", + "y_train, x_train = DL.generate_X_y_tensors(train, data_split=\"train\", lags=lags)\n", + "y_val, x_val = DL.generate_X_y_tensors(val, data_split=split, lags=lags)" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "id": "bdebd82e-956b-4270-b413-fa894cf71a88", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 144ms/step - loss: 0.1381 - root_mean_squared_error: 0.3684 - val_loss: 0.0035 - val_root_mean_squared_error: 0.0595\n", + "Epoch 2/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 57ms/step - loss: 0.0218 - root_mean_squared_error: 0.1471 - val_loss: 0.0017 - val_root_mean_squared_error: 0.0415\n", + "Epoch 3/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 64ms/step - loss: 0.0119 - root_mean_squared_error: 0.1089 - val_loss: 6.3324e-04 - val_root_mean_squared_error: 0.0252\n", + "Epoch 4/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 96ms/step - loss: 0.0089 - root_mean_squared_error: 0.0942 - val_loss: 7.6728e-04 - val_root_mean_squared_error: 0.0277\n", + "Epoch 5/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 92ms/step - loss: 0.0069 - root_mean_squared_error: 0.0828 - val_loss: 0.0011 - val_root_mean_squared_error: 0.0327\n", + "Epoch 6/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 74ms/step - loss: 0.0063 - root_mean_squared_error: 0.0793 - val_loss: 9.6335e-04 - val_root_mean_squared_error: 0.0310\n", + "Epoch 7/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 74ms/step - loss: 0.0058 - root_mean_squared_error: 0.0759 - val_loss: 7.5930e-04 - val_root_mean_squared_error: 0.0276\n", + "Epoch 8/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 72ms/step - loss: 0.0054 - root_mean_squared_error: 0.0733 - val_loss: 9.2764e-04 - val_root_mean_squared_error: 0.0305\n", + "Epoch 9/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 71ms/step - loss: 0.0053 - root_mean_squared_error: 0.0729 - val_loss: 8.1056e-04 - val_root_mean_squared_error: 0.0285\n", + "Epoch 10/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0053 - root_mean_squared_error: 0.0726 - val_loss: 6.2037e-04 - val_root_mean_squared_error: 0.0249\n", + "Epoch 11/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0054 - root_mean_squared_error: 0.0736 - val_loss: 4.4625e-04 - val_root_mean_squared_error: 0.0211\n", + "Epoch 12/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 74ms/step - loss: 0.0049 - root_mean_squared_error: 0.0698 - val_loss: 5.6649e-04 - val_root_mean_squared_error: 0.0238\n", + "Epoch 13/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 70ms/step - loss: 0.0045 - root_mean_squared_error: 0.0668 - val_loss: 5.3138e-04 - val_root_mean_squared_error: 0.0231\n", + "Epoch 14/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 67ms/step - loss: 0.0049 - root_mean_squared_error: 0.0699 - val_loss: 4.5183e-04 - val_root_mean_squared_error: 0.0213\n", + "Epoch 15/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 70ms/step - loss: 0.0046 - root_mean_squared_error: 0.0675 - val_loss: 4.9398e-04 - val_root_mean_squared_error: 0.0222\n", + "Epoch 16/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 64ms/step - loss: 0.0044 - root_mean_squared_error: 0.0665 - val_loss: 4.8732e-04 - val_root_mean_squared_error: 0.0221\n", + "Epoch 17/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 67ms/step - loss: 0.0043 - root_mean_squared_error: 0.0658 - val_loss: 5.0533e-04 - val_root_mean_squared_error: 0.0225\n", + "Epoch 18/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 74ms/step - loss: 0.0043 - root_mean_squared_error: 0.0659 - val_loss: 4.8730e-04 - val_root_mean_squared_error: 0.0221\n", + "Epoch 19/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 66ms/step - loss: 0.0044 - root_mean_squared_error: 0.0667 - val_loss: 4.4912e-04 - val_root_mean_squared_error: 0.0212\n", + "Epoch 20/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 70ms/step - loss: 0.0040 - root_mean_squared_error: 0.0631 - val_loss: 5.5787e-04 - val_root_mean_squared_error: 0.0236\n", + "Epoch 21/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 73ms/step - loss: 0.0043 - root_mean_squared_error: 0.0654 - val_loss: 4.3113e-04 - val_root_mean_squared_error: 0.0208\n", + "Epoch 22/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 68ms/step - loss: 0.0044 - root_mean_squared_error: 0.0662 - val_loss: 4.4259e-04 - val_root_mean_squared_error: 0.0210\n", + "Epoch 23/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 68ms/step - loss: 0.0042 - root_mean_squared_error: 0.0648 - val_loss: 4.3046e-04 - val_root_mean_squared_error: 0.0207\n", + "Epoch 24/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 64ms/step - loss: 0.0041 - root_mean_squared_error: 0.0637 - val_loss: 4.2545e-04 - val_root_mean_squared_error: 0.0206\n", + "Epoch 25/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 59ms/step - loss: 0.0042 - root_mean_squared_error: 0.0651 - val_loss: 4.2772e-04 - val_root_mean_squared_error: 0.0207\n", + "Epoch 26/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 64ms/step - loss: 0.0041 - root_mean_squared_error: 0.0638 - val_loss: 4.5237e-04 - val_root_mean_squared_error: 0.0213\n", + "Epoch 27/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 63ms/step - loss: 0.0041 - root_mean_squared_error: 0.0639 - val_loss: 4.2441e-04 - val_root_mean_squared_error: 0.0206\n", + "Epoch 28/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 78ms/step - loss: 0.0040 - root_mean_squared_error: 0.0633 - val_loss: 4.3056e-04 - val_root_mean_squared_error: 0.0207\n", + "Epoch 29/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 71ms/step - loss: 0.0042 - root_mean_squared_error: 0.0647 - val_loss: 4.3454e-04 - val_root_mean_squared_error: 0.0208\n", + "Epoch 30/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 68ms/step - loss: 0.0039 - root_mean_squared_error: 0.0621 - val_loss: 4.3530e-04 - val_root_mean_squared_error: 0.0209\n", + "Epoch 31/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 61ms/step - loss: 0.0039 - root_mean_squared_error: 0.0622 - val_loss: 4.2596e-04 - val_root_mean_squared_error: 0.0206\n", + "Epoch 32/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 65ms/step - loss: 0.0040 - root_mean_squared_error: 0.0634 - val_loss: 4.4821e-04 - val_root_mean_squared_error: 0.0212\n", + "Epoch 33/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 70ms/step - loss: 0.0040 - root_mean_squared_error: 0.0633 - val_loss: 4.2611e-04 - val_root_mean_squared_error: 0.0206\n", + "Epoch 34/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 65ms/step - loss: 0.0040 - root_mean_squared_error: 0.0635 - val_loss: 4.3644e-04 - val_root_mean_squared_error: 0.0209\n", + "Epoch 35/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0040 - root_mean_squared_error: 0.0632 - val_loss: 4.3320e-04 - val_root_mean_squared_error: 0.0208\n", + "Epoch 36/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 66ms/step - loss: 0.0040 - root_mean_squared_error: 0.0631 - val_loss: 4.4785e-04 - val_root_mean_squared_error: 0.0212\n", + "Epoch 37/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0039 - root_mean_squared_error: 0.0627 - val_loss: 4.4374e-04 - val_root_mean_squared_error: 0.0211\n", + "Epoch 38/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 74ms/step - loss: 0.0039 - root_mean_squared_error: 0.0627 - val_loss: 4.4964e-04 - val_root_mean_squared_error: 0.0212\n", + "Epoch 39/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 63ms/step - loss: 0.0037 - root_mean_squared_error: 0.0612 - val_loss: 4.6677e-04 - val_root_mean_squared_error: 0.0216\n", + "Epoch 40/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 66ms/step - loss: 0.0037 - root_mean_squared_error: 0.0610 - val_loss: 4.8092e-04 - val_root_mean_squared_error: 0.0219\n", + "Epoch 41/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 79ms/step - loss: 0.0037 - root_mean_squared_error: 0.0605 - val_loss: 5.2054e-04 - val_root_mean_squared_error: 0.0228\n", + "Epoch 42/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 72ms/step - loss: 0.0038 - root_mean_squared_error: 0.0614 - val_loss: 5.0628e-04 - val_root_mean_squared_error: 0.0225\n", + "Epoch 43/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 68ms/step - loss: 0.0040 - root_mean_squared_error: 0.0633 - val_loss: 4.8052e-04 - val_root_mean_squared_error: 0.0219\n", + "Epoch 44/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 72ms/step - loss: 0.0040 - root_mean_squared_error: 0.0634 - val_loss: 4.8583e-04 - val_root_mean_squared_error: 0.0220\n", + "Epoch 45/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 67ms/step - loss: 0.0038 - root_mean_squared_error: 0.0614 - val_loss: 4.6732e-04 - val_root_mean_squared_error: 0.0216\n", + "Epoch 46/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0036 - root_mean_squared_error: 0.0597 - val_loss: 4.9565e-04 - val_root_mean_squared_error: 0.0223\n", + "Epoch 47/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0036 - root_mean_squared_error: 0.0596 - val_loss: 5.3045e-04 - val_root_mean_squared_error: 0.0230\n", + "Epoch 48/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 60ms/step - loss: 0.0035 - root_mean_squared_error: 0.0592 - val_loss: 5.4426e-04 - val_root_mean_squared_error: 0.0233\n", + "Epoch 49/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 65ms/step - loss: 0.0036 - root_mean_squared_error: 0.0602 - val_loss: 5.5978e-04 - val_root_mean_squared_error: 0.0237\n", + "Epoch 50/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 88ms/step - loss: 0.0036 - root_mean_squared_error: 0.0597 - val_loss: 5.1679e-04 - val_root_mean_squared_error: 0.0227\n", + "Epoch 51/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0034 - root_mean_squared_error: 0.0584 - val_loss: 8.0747e-04 - val_root_mean_squared_error: 0.0284\n", + "Epoch 52/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 71ms/step - loss: 0.0033 - root_mean_squared_error: 0.0578 - val_loss: 6.0693e-04 - val_root_mean_squared_error: 0.0246\n", + "Epoch 53/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 67ms/step - loss: 0.0034 - root_mean_squared_error: 0.0585 - val_loss: 4.8877e-04 - val_root_mean_squared_error: 0.0221\n", + "Epoch 54/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 62ms/step - loss: 0.0036 - root_mean_squared_error: 0.0604 - val_loss: 7.6684e-04 - val_root_mean_squared_error: 0.0277\n", + "Epoch 55/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 70ms/step - loss: 0.0037 - root_mean_squared_error: 0.0610 - val_loss: 5.9198e-04 - val_root_mean_squared_error: 0.0243\n", + "Epoch 56/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 64ms/step - loss: 0.0036 - root_mean_squared_error: 0.0601 - val_loss: 4.8965e-04 - val_root_mean_squared_error: 0.0221\n", + "Epoch 57/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 64ms/step - loss: 0.0036 - root_mean_squared_error: 0.0603 - val_loss: 5.1033e-04 - val_root_mean_squared_error: 0.0226\n", + "Epoch 58/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 71ms/step - loss: 0.0036 - root_mean_squared_error: 0.0600 - val_loss: 6.3195e-04 - val_root_mean_squared_error: 0.0251\n", + "Epoch 59/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 82ms/step - loss: 0.0034 - root_mean_squared_error: 0.0579 - val_loss: 5.7567e-04 - val_root_mean_squared_error: 0.0240\n", + "Epoch 60/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 61ms/step - loss: 0.0035 - root_mean_squared_error: 0.0590 - val_loss: 4.8710e-04 - val_root_mean_squared_error: 0.0221\n", + "Epoch 61/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 73ms/step - loss: 0.0035 - root_mean_squared_error: 0.0593 - val_loss: 5.8469e-04 - val_root_mean_squared_error: 0.0242\n", + "Epoch 62/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 65ms/step - loss: 0.0035 - root_mean_squared_error: 0.0592 - val_loss: 7.0971e-04 - val_root_mean_squared_error: 0.0266\n", + "Epoch 63/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 63ms/step - loss: 0.0034 - root_mean_squared_error: 0.0586 - val_loss: 6.0111e-04 - val_root_mean_squared_error: 0.0245\n", + "Epoch 64/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0032 - root_mean_squared_error: 0.0563 - val_loss: 5.4414e-04 - val_root_mean_squared_error: 0.0233\n", + "Epoch 65/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 74ms/step - loss: 0.0031 - root_mean_squared_error: 0.0555 - val_loss: 5.7417e-04 - val_root_mean_squared_error: 0.0240\n", + "Epoch 66/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 70ms/step - loss: 0.0033 - root_mean_squared_error: 0.0574 - val_loss: 5.4013e-04 - val_root_mean_squared_error: 0.0232\n", + "Epoch 67/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 87ms/step - loss: 0.0033 - root_mean_squared_error: 0.0578 - val_loss: 6.4486e-04 - val_root_mean_squared_error: 0.0254\n", + "Epoch 68/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 61ms/step - loss: 0.0034 - root_mean_squared_error: 0.0579 - val_loss: 7.5200e-04 - val_root_mean_squared_error: 0.0274\n", + "Epoch 69/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 74ms/step - loss: 0.0035 - root_mean_squared_error: 0.0588 - val_loss: 6.9778e-04 - val_root_mean_squared_error: 0.0264\n", + "Epoch 70/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 68ms/step - loss: 0.0032 - root_mean_squared_error: 0.0562 - val_loss: 6.4467e-04 - val_root_mean_squared_error: 0.0254\n", + "Epoch 71/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 58ms/step - loss: 0.0030 - root_mean_squared_error: 0.0548 - val_loss: 6.4655e-04 - val_root_mean_squared_error: 0.0254\n", + "Epoch 72/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 67ms/step - loss: 0.0030 - root_mean_squared_error: 0.0550 - val_loss: 5.8070e-04 - val_root_mean_squared_error: 0.0241\n", + "Epoch 73/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 63ms/step - loss: 0.0032 - root_mean_squared_error: 0.0563 - val_loss: 5.4653e-04 - val_root_mean_squared_error: 0.0234\n", + "Epoch 74/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 57ms/step - loss: 0.0034 - root_mean_squared_error: 0.0580 - val_loss: 5.8056e-04 - val_root_mean_squared_error: 0.0241\n", + "Epoch 75/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 73ms/step - loss: 0.0033 - root_mean_squared_error: 0.0578 - val_loss: 5.0811e-04 - val_root_mean_squared_error: 0.0225\n", + "Epoch 76/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 64ms/step - loss: 0.0033 - root_mean_squared_error: 0.0572 - val_loss: 5.8977e-04 - val_root_mean_squared_error: 0.0243\n", + "Epoch 77/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 58ms/step - loss: 0.0031 - root_mean_squared_error: 0.0557 - val_loss: 8.5037e-04 - val_root_mean_squared_error: 0.0292\n", + "Epoch 78/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0029 - root_mean_squared_error: 0.0536 - val_loss: 5.1029e-04 - val_root_mean_squared_error: 0.0226\n", + "Epoch 79/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0030 - root_mean_squared_error: 0.0551 - val_loss: 6.6823e-04 - val_root_mean_squared_error: 0.0259\n", + "Epoch 80/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 61ms/step - loss: 0.0032 - root_mean_squared_error: 0.0568 - val_loss: 6.4722e-04 - val_root_mean_squared_error: 0.0254\n", + "Epoch 81/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 90ms/step - loss: 0.0029 - root_mean_squared_error: 0.0537 - val_loss: 6.4961e-04 - val_root_mean_squared_error: 0.0255\n", + "Epoch 82/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 68ms/step - loss: 0.0029 - root_mean_squared_error: 0.0540 - val_loss: 5.8064e-04 - val_root_mean_squared_error: 0.0241\n", + "Epoch 83/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 63ms/step - loss: 0.0028 - root_mean_squared_error: 0.0526 - val_loss: 6.2167e-04 - val_root_mean_squared_error: 0.0249\n", + "Epoch 84/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 68ms/step - loss: 0.0032 - root_mean_squared_error: 0.0568 - val_loss: 5.2429e-04 - val_root_mean_squared_error: 0.0229\n", + "Epoch 85/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 66ms/step - loss: 0.0034 - root_mean_squared_error: 0.0581 - val_loss: 6.7607e-04 - val_root_mean_squared_error: 0.0260\n", + "Epoch 86/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 58ms/step - loss: 0.0034 - root_mean_squared_error: 0.0579 - val_loss: 4.8001e-04 - val_root_mean_squared_error: 0.0219\n", + "Epoch 87/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 63ms/step - loss: 0.0032 - root_mean_squared_error: 0.0564 - val_loss: 6.0523e-04 - val_root_mean_squared_error: 0.0246\n", + "Epoch 88/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 82ms/step - loss: 0.0035 - root_mean_squared_error: 0.0588 - val_loss: 0.0012 - val_root_mean_squared_error: 0.0349\n", + "Epoch 89/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 59ms/step - loss: 0.0034 - root_mean_squared_error: 0.0581 - val_loss: 0.0010 - val_root_mean_squared_error: 0.0320\n", + "Epoch 90/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 65ms/step - loss: 0.0031 - root_mean_squared_error: 0.0555 - val_loss: 6.0313e-04 - val_root_mean_squared_error: 0.0246\n", + "Epoch 91/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 75ms/step - loss: 0.0028 - root_mean_squared_error: 0.0533 - val_loss: 5.0202e-04 - val_root_mean_squared_error: 0.0224\n", + "Epoch 92/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 74ms/step - loss: 0.0028 - root_mean_squared_error: 0.0530 - val_loss: 6.5270e-04 - val_root_mean_squared_error: 0.0255\n", + "Epoch 93/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 76ms/step - loss: 0.0028 - root_mean_squared_error: 0.0531 - val_loss: 5.3546e-04 - val_root_mean_squared_error: 0.0231\n", + "Epoch 94/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 90ms/step - loss: 0.0028 - root_mean_squared_error: 0.0532 - val_loss: 8.4478e-04 - val_root_mean_squared_error: 0.0291\n", + "Epoch 95/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 73ms/step - loss: 0.0028 - root_mean_squared_error: 0.0526 - val_loss: 5.8177e-04 - val_root_mean_squared_error: 0.0241\n", + "Epoch 96/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 73ms/step - loss: 0.0028 - root_mean_squared_error: 0.0531 - val_loss: 8.0187e-04 - val_root_mean_squared_error: 0.0283\n", + "Epoch 97/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 63ms/step - loss: 0.0028 - root_mean_squared_error: 0.0532 - val_loss: 6.9440e-04 - val_root_mean_squared_error: 0.0264\n", + "Epoch 98/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 73ms/step - loss: 0.0026 - root_mean_squared_error: 0.0512 - val_loss: 5.7577e-04 - val_root_mean_squared_error: 0.0240\n", + "Epoch 99/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 88ms/step - loss: 0.0027 - root_mean_squared_error: 0.0521 - val_loss: 4.9169e-04 - val_root_mean_squared_error: 0.0222\n", + "Epoch 100/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 62ms/step - loss: 0.0026 - root_mean_squared_error: 0.0510 - val_loss: 6.3173e-04 - val_root_mean_squared_error: 0.0251\n", + "Epoch 101/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0026 - root_mean_squared_error: 0.0513 - val_loss: 6.2785e-04 - val_root_mean_squared_error: 0.0251\n", + "Epoch 102/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 63ms/step - loss: 0.0025 - root_mean_squared_error: 0.0502 - val_loss: 5.4975e-04 - val_root_mean_squared_error: 0.0234\n", + "Epoch 103/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 67ms/step - loss: 0.0026 - root_mean_squared_error: 0.0506 - val_loss: 7.9613e-04 - val_root_mean_squared_error: 0.0282\n", + "Epoch 104/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 85ms/step - loss: 0.0025 - root_mean_squared_error: 0.0498 - val_loss: 5.2595e-04 - val_root_mean_squared_error: 0.0229\n", + "Epoch 105/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 60ms/step - loss: 0.0026 - root_mean_squared_error: 0.0509 - val_loss: 6.5685e-04 - val_root_mean_squared_error: 0.0256\n", + "Epoch 106/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 59ms/step - loss: 0.0025 - root_mean_squared_error: 0.0499 - val_loss: 6.2624e-04 - val_root_mean_squared_error: 0.0250\n", + "Epoch 107/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 76ms/step - loss: 0.0024 - root_mean_squared_error: 0.0492 - val_loss: 5.7350e-04 - val_root_mean_squared_error: 0.0239\n", + "Epoch 108/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 67ms/step - loss: 0.0025 - root_mean_squared_error: 0.0496 - val_loss: 6.3328e-04 - val_root_mean_squared_error: 0.0252\n", + "Epoch 109/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 58ms/step - loss: 0.0025 - root_mean_squared_error: 0.0496 - val_loss: 4.8070e-04 - val_root_mean_squared_error: 0.0219\n", + "Epoch 110/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 84ms/step - loss: 0.0027 - root_mean_squared_error: 0.0518 - val_loss: 5.3690e-04 - val_root_mean_squared_error: 0.0232\n", + "Epoch 111/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 64ms/step - loss: 0.0032 - root_mean_squared_error: 0.0565 - val_loss: 6.0598e-04 - val_root_mean_squared_error: 0.0246\n", + "Epoch 112/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 60ms/step - loss: 0.0028 - root_mean_squared_error: 0.0533 - val_loss: 5.5742e-04 - val_root_mean_squared_error: 0.0236\n", + "Epoch 113/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 67ms/step - loss: 0.0028 - root_mean_squared_error: 0.0532 - val_loss: 0.0012 - val_root_mean_squared_error: 0.0350\n", + "Epoch 114/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 66ms/step - loss: 0.0030 - root_mean_squared_error: 0.0546 - val_loss: 6.6329e-04 - val_root_mean_squared_error: 0.0258\n", + "Epoch 115/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 75ms/step - loss: 0.0032 - root_mean_squared_error: 0.0562 - val_loss: 6.3485e-04 - val_root_mean_squared_error: 0.0252\n", + "Epoch 116/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 72ms/step - loss: 0.0033 - root_mean_squared_error: 0.0575 - val_loss: 0.0012 - val_root_mean_squared_error: 0.0341\n", + "Epoch 117/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 62ms/step - loss: 0.0032 - root_mean_squared_error: 0.0569 - val_loss: 0.0019 - val_root_mean_squared_error: 0.0437\n", + "Epoch 118/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 59ms/step - loss: 0.0032 - root_mean_squared_error: 0.0564 - val_loss: 8.2146e-04 - val_root_mean_squared_error: 0.0287\n", + "Epoch 119/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 95ms/step - loss: 0.0027 - root_mean_squared_error: 0.0515 - val_loss: 6.5542e-04 - val_root_mean_squared_error: 0.0256\n", + "Epoch 120/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 74ms/step - loss: 0.0025 - root_mean_squared_error: 0.0503 - val_loss: 5.0451e-04 - val_root_mean_squared_error: 0.0225\n", + "Epoch 121/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 73ms/step - loss: 0.0024 - root_mean_squared_error: 0.0493 - val_loss: 5.2446e-04 - val_root_mean_squared_error: 0.0229\n", + "Epoch 122/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 77ms/step - loss: 0.0023 - root_mean_squared_error: 0.0481 - val_loss: 5.5082e-04 - val_root_mean_squared_error: 0.0235\n", + "Epoch 123/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 85ms/step - loss: 0.0022 - root_mean_squared_error: 0.0465 - val_loss: 5.3890e-04 - val_root_mean_squared_error: 0.0232\n", + "Epoch 124/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 78ms/step - loss: 0.0024 - root_mean_squared_error: 0.0487 - val_loss: 4.9313e-04 - val_root_mean_squared_error: 0.0222\n", + "Epoch 125/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 68ms/step - loss: 0.0023 - root_mean_squared_error: 0.0479 - val_loss: 8.2302e-04 - val_root_mean_squared_error: 0.0287\n", + "Epoch 126/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 69ms/step - loss: 0.0023 - root_mean_squared_error: 0.0481 - val_loss: 5.2603e-04 - val_root_mean_squared_error: 0.0229\n", + "Epoch 127/500\n", + "\u001b[1m12/12\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 89ms/step - loss: 0.0022 - root_mean_squared_error: 0.0469 - val_loss: 7.4132e-04 - val_root_mean_squared_error: 0.0272\n" + ] + } + ], + "source": [ + "model_history = model.fit(x_train, y_train, validation_data=(x_val,y_val), epochs=500, batch_size=64, callbacks=[early_stop])" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "id": "38f3c569-bf33-4eec-b538-4ecd142ed3e1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAHqCAYAAACZcdjsAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZNpJREFUeJzt3QucVeP+x/HfNNNdhaKUCCe6ikqpkGulXHKJ0/Gn49ZxiXIXXSQk5IScknNwHFJylMtJSsrlFEmhqDjoIrpJ0r1m9v/1fXbPWDPtmWaay15r5vN+vVa7vfbae6+9nrX3PL/1ey4psVgsZgAAAABQAGUK8mQAAAAAEAILAAAAAAVGYAEAAACgwAgsAAAAABQYgQUAAACAAiOwAAAAAFBgBBYAAAAACozAAgAAAECBEVgAAAAAKDACCwAoBH/+85+tXr16e/Xce+65x1JSUgp9n0qLGTNmuOOn2/yWx5IlS9xzn3vuuULdJ7239gEAShMCCwAlmiqNeVmClVIUnaOPPtoOOeQQi8ViOW7Trl07q1mzpu3cudPCbObMmS4oXL9+vYWFAiSdz3PmzEn2rgAohdKSvQMAUJT+9a9/Zbn//PPP29SpU3db37BhwwK9z9NPP20ZGRl79dx+/frZnXfeaaXBJZdc4j7rBx98YCeddFLCDMKsWbOsV69elpaWlpTyyE9gMWjQIJeZ2HfffbM8tnjxYitThmt3AEoXAgsAJdr//d//Zbn/0UcfucAi+/rsNm/ebJUqVcrz+5QtW3av91EV6IJUoqPkT3/6k/Xt29fGjBmTMLB46aWXXDZDAUhBFKQ8CkP58uWT+v4AkAxcTgFQ6p188snWpEkT+/TTT11lVwHFXXfd5R577bXXrEuXLla7dm1XWTziiCNs8ODBlp6enuU1srfp9233H3nkERs9erR7np5/3HHH2SeffLLHPha6r6v2EydOdPum5zZu3NgmT5682/6rGVfLli2tQoUK7n2eeuqpPPXb0Ovvs88+LojKrnv37larVq3Mz6mmNR07drQaNWpYxYoV7bDDDrMrrrjC8qtu3bruGL/yyiu2Y8eO3R5XwKHP0Lp1a1u6dKldd911dtRRR7n3rF69unXr1s0d2z1J1MdCTZa0vlq1ai7D0KNHj4TNmL744gu33eGHH+6OqY6DPuvPP/+cuY2O72233eb+r2Phm9T5fUvUx+K7775z+7///vu7c+z444+3//znPwn7i7z88st2//3328EHH+z24bTTTrP//e9/VljmzZtnZ555plWtWtWdA3p9Bd1BKh9lZOrXr+/2Qcf/hBNOcIG5t3LlSrv88svdfuocPeigg+zcc8/NUxkBKHlKxyUyANgDVRpV0frjH//oshlq4+/brKvidfPNN7vbd9991wYMGGAbNmywhx9+eI+vq4ryb7/9Zn/5y19chfGhhx6y888/31Uy93RV/cMPP7RXX33VVa6rVKlijz/+uF1wwQW2bNkyV8nzFcROnTq5Cp0qgQoE7r33XjvggAP2uG8XX3yxPfnkk65yqwqvp0DjjTfecBXj1NRUW716tXXo0MG9ppoxqVKuiqP2bW8oG9GzZ097++237ayzzspcP3/+fFuwYIE7vqIATM2NVCaquOo9R44c6QLBr776Kl8ZJWVBVOHVMb3mmmtc07cJEya44CI7VZxVPqowK6j48ssvXXCoW1W+VY4qw6+//tplWP7617+6gEtyOu6rVq2ytm3bumN74403uvL75z//aeecc44Lss4777ws2z/44IOuKdWtt95qv/76qztvdNw+/vhjKyh9jhNPPNEFFbfffrs7DxWM6ri+9957LqjzwdOQIUPsqquuslatWrlzXgHm3Llz7YwzznDb6HzU691www0umNK5ouOnc3RvBzMAEGExAChFrr/+evUazrKuffv2bt2oUaN2237z5s27rfvLX/4Sq1SpUmzr1q2Z63r06BE79NBDM+9///337jWrV68eW7duXeb61157za1/4403MtcNHDhwt33S/XLlysX+97//Za77/PPP3fonnngic93ZZ5/t9mXFihWZ67755ptYWlrabq+ZXUZGRqxOnTqxCy64IMv6l19+2T33/fffd/cnTJjg7n/yySexwqDjUb58+Vj37t2zrL/zzjvd+yxevDjHYz9r1iy3zfPPP5+5bvr06W6dbnMqj4kTJ7ptHnroocx1O3fujJ144olu/bPPPpu5PtH7vvTSS1mOiTz88MNunco6O7239sHr06eP2/aDDz7IXPfbb7/FDjvssFi9evVi6enpWT5Lw4YNY9u2bcvc9rHHHnPr58+fH8uNPseeyqpr167u3Pr2228z1/3444+xKlWqxE466aTMdc2aNYt16dIlx9f55Zdf3HvpOACA0BQK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4WE1/Kv6TWgG8LD2awgTMhYhRMYCAAAgOTQ609tvv+36OijIQN5xtEKIjAUAAACihsAihMhYAAAAIGoILEKIjAUAAACihsAihBhuFgAAAFFDYBFCNIUCAABA1BBYhBBNoQAAABA1BBYhRMYCAAAgPqN1nz59sszOPXz48Fyfk5KSYhMnTizwe6emphbK65QmBBYhRMYCAABE2dlnn22dOnVK+NgHH3zgKv9ffPFFvl/3k08+sZ49e1phuueee+yYY47Zbf2KFSvszDPPtKL03HPP2b777mslBYFFCJGxAAAAUXbllVfa1KlT7YcfftjtsWeffdZatmxpRx99dL5f94ADDrBKlSpZcahVq5aVL1++WN6rpCCwCCEyFgAAIMrOOussFwToinzQxo0bbfz48S7w+Pnnn6179+5Wp04dFyw0bdrUXnrppVxfN3tTqG+++cZOOukkq1ChgjVq1MgFM9ndcccdduSRR7r3OPzww61///62Y1clS/s3aNAg+/zzz10WRYvf5+xNoebPn2+nnnqqVaxY0apXr+4yJ/o83p///Gfr2rWrPfLII3bQQQe5ba6//vrM99oby5Yts3PPPdf22WcfNxP4RRddZKtWrcp8XPt9yimnWJUqVdzjLVq0sDlz5rjHli5d6jJH++23n1WuXNkaN25skyZNsqK0qwqLMGG4WQAAkKNYzGzz5uS8t7IFKSl73CwtLc0uu+wyV0m/++67XYVdFFSkp6e7gEKVclWEVfFXpfg///mPXXrppXbEEUdYq1at9vgeGRkZdv7551vNmjXt448/tl9//TVLfwxPlW7tR+3atV1wcPXVV7t1t99+u1188cW2YMECmzx5sr3zzjuZ22cPBjZt2mQdO3a0Nm3auOZYq1evtquuusp69eqVJXiaPn26Cyp0+7///c+9vppZ6T3zS5/PBxXvvfee7dy50wUqes0ZM2a4bS655BI79thjbeTIkS4Q+uyzz6zsrqYv2nb79u32/vvvu8Diq6++cq9VlAgsQoimUAAAIEcKKoq4gpgjXaGvXDlPm15xxRX28MMPu0qxOmH7ZlAXXHCBVatWzS233npr5vY33HCDvf322/byyy/nKbBQILBo0SL3HAUN8sADD+zWL6Jfv35ZMh56z7Fjx7rAQtkHVbYVCKnpk6/QZw8sxowZY1u3brXnn3/eVdJlxIgRLiMw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CCxCiowFAAAAooTAIqQYbhYAAABRQmARUjSFAgAAQJQQWIQUTaEAAAAQJQQWEWgKFYsle28AAACA3BFYhDxjIenpydwTAAAAYM8ILEKesRD6WQAAACDsCCwikLGgnwUAAADCjsAiAhkLAgsAAACEHYFFSNEUCgAAAFFCYBFSKSlmqanx/5OxAAAAQNgRWIQYk+QBAAAgKggsQoxJ8gAAABAVBBYhRsYCAAAAUUFgEWJkLAAAABAVBBYRyFgQWAAAACDsCCxCjKZQAAAAiAoCixCjKRQAAACigsAixMhYAAAAICoILEKMjAUAAACigsAixMhYAAAAICoILEKMjAUAAACigsAixBhuFgAAAFFBYBFiNIUCAABAVBBYhBhNoQAAABAVBBYhRsYCAAAAUUFgEWJkLAAAABAVBBYhRsYCAAAAUUFgEWJkLAAAABAVBBYhxnCzAAAAiAoCixCjKRQAAACigsAixGgKBQAAgKggsAgxMhYAAACIiqQHFk8++aTVq1fPKlSoYK1bt7bZs2fnuv348eOtQYMGbvumTZvapEmTdttm4cKFds4551i1atWscuXKdtxxx9myZcssashYAAAAICqSGliMGzfObr75Zhs4cKDNnTvXmjVrZh07drTVq1cn3H7mzJnWvXt3u/LKK23evHnWtWtXtyxYsCBzm2+//dZOOOEEF3zMmDHDvvjiC+vfv78LRKKGjAUAAACiIqmBxaOPPmpXX321XX755daoUSMbNWqUVapUyZ555pmE2z/22GPWqVMnu+2226xhw4Y2ePBga968uY0YMSJzm7vvvts6d+5sDz30kB177LF2xBFHuOzFgQceaFFDxgIAAABRkbTAYvv27fbpp5/a6aef/vvOlCnj7s+aNSvhc7Q+uL0ow+G3z8jIsP/85z925JFHuvUKJtS8auLEiRZFDDcLAACAqNhVdS1+a9eutfT0dKtZs2aW9bq/aNGihM9ZuXJlwu21XtSEauPGjfbggw/afffdZ0OHDrXJkyfb+eefb9OnT7f27dsnfN1t27a5xduwYYO73bFjh1uKkn/9RO+jQMss1bZtS7cdOzKKdD+Qv7JB8lAu4UXZhBPlEk6US3hRNlnl5zgkLbAoCspYyLnnnms33XST+/8xxxzj+maomVVOgcWQIUNs0KBBu62fMmWKa5pVHKZOnbrbuu+/P8rMGti33y6zSZO+KJb9QN7KBslHuYQXZRNOlEs4US7hRdnEbd682UIfWNSoUcNSU1Nt1apVWdbrfq1atRI+R+tz216vmZaW5vprBKk/xocffpjjvvTt29d1Ig9mLOrWrWsdOnSwqlWrWlFHgTpxzzjjDCvrO1Xs8tln8ZZqtWsfap07H1yk+4H8lQ2Sh3IJL8omnCiXcKJcwouyycq35Al1YFGuXDlr0aKFTZs2zY3s5DMOut+rV6+Ez2nTpo17vE+fPpnrVPBa719TQ8suXrw4y/O+/vprO/TQQ3Pcl/Lly7slO51MxXVCJXovP5BVRkYZK1s26SMDl1rFeR4g7yiX8KJswolyCSfKJbwom7j8HIOkNoVSlqBHjx7WsmVLa9WqlQ0fPtw2bdrkRomSyy67zOrUqeOaKknv3r1dc6Zhw4ZZly5dbOzYsTZnzhwbPXp05mtqxKiLL77YTjrpJDvllFNcH4s33njDDT0bNQw3CwAAgKhIamChAGDNmjU2YMAA1wFb/SEUCPgO2prULt6BOa5t27Y2ZswY69evn911111Wv359N+JTkyZNMrc577zzXH8KBSM33nijHXXUUfbvf//bzW0RNQw3CwAAgKhIeudtNXvKqelToixDt27d3JKbK664wi1Rx3CzAAAAiAoa7kcgY0FTKAAAAIQdgUWIkbEAAABAVBBYhBidtwEAABAVBBYhRudtAAAARAWBRYiRsQAAAEBUEFiEGBkLAAAARAWBRYjReRsAAABRQWARYgw3CwAAgKggsAgxMhYAAACICgKLEKPzNgAAAKKCwCLE6LwNAACAqCCwCDEyFgAAAIgKAosQI2MBAACAqCCwCDE6bwMAACAqCCxCjOFmAQAAEBUEFiFGxgIAAABRQWARYnTeBgAAQFQQWIQYnbcBAAAQFQQWEchYpKebxWLJ3hsAAAAgZwQWEchYCFkLAAAAhBmBRQQyFkJgAQAAgDAjsIhIxoIO3AAAAAgzAosQI2MBAACAqCCwCLHU1N//T8YCAAAAYUZgEWIpKUySBwAAgGggsAg5JskDAABAFBBYhByT5AEAACAKCCxCjqZQAAAAiAICi4hkLGgKBQAAgDAjsAg5MhYAAACIAgKLkKPzNgAAAKKAwCLk6LwNAACAKCCwCDkyFgAAAIgCAouQI2MBAACAKCCwCDk6bwMAACAKCCxCjuFmAQAAEAUEFiFHxgIAAAAlNrBYvny5/fDDD5n3Z8+ebX369LHRo0cX5r6BztsAAAAoyYHFn/70J5s+fbr7/8qVK+2MM85wwcXdd99t9957b2HvY6lG520AAACU2MBiwYIF1qpVK/f/l19+2Zo0aWIzZ860F1980Z577rnC3sdSjYwFAAAASmxgsWPHDitfvrz7/zvvvGPnnHOO+3+DBg3sp59+Ktw9LOXIWAAAAKDEBhaNGze2UaNG2QcffGBTp061Tp06ufU//vijVa9evbD3sVSj8zYAAACiYK8Ci6FDh9pTTz1lJ598snXv3t2aNWvm1r/++uuZTaRQOBhuFgAAAFGw63p4/iigWLt2rW3YsMH222+/zPU9e/a0SpUqFeb+lXpkLAAAAFBiMxZbtmyxbdu2ZQYVS5cuteHDh9vixYvtwAMPLOx9LNXIWAAAAKDEBhbnnnuuPf/88+7/69evt9atW9uwYcOsa9euNnLkyMLex1KNjAUAAABKbGAxd+5cO/HEE93/X3nlFatZs6bLWijYePzxxwt7H0s1hpsFAABAiQ0sNm/ebFWqVHH/nzJlip1//vlWpkwZO/74412AgcLDcLMAAAAosYHFH/7wB5s4caItX77c3n77bevQoYNbv3r1aqtatWph72OpRlMoAAAAlNjAYsCAAXbrrbdavXr13PCybdq0ycxeHHvssYW9j6UanbcBAABQYoebvfDCC+2EE05ws2z7OSzktNNOs/POO68w96/UI2MBAACAEhtYSK1atdzyww8/uPsHH3wwk+MVATIWAAAAKLFNoTIyMuzee++1atWq2aGHHuqWfffd1wYPHuweQ+EhYwEAAIASm7G4++677R//+Ic9+OCD1q5dO7fuww8/tHvuuce2bt1q999/f2HvZ6nFcLMAAAAosYHFP//5T/v73/9u55xzTua6o48+2urUqWPXXXcdgUUhYrhZAAAAlNimUOvWrbMGDRrstl7r9BgKD02hAAAAUGIDC40ENWLEiN3Wa50yFyg8dN4GAABAiW0K9dBDD1mXLl3snXfeyZzDYtasWW7CvEmTJhX2PpZqZCwAAABQYjMW7du3t6+//trNWbF+/Xq3nH/++fbll1/av/71r8Lfy1KMjAUAAABK9DwWtWvX3q2T9ueff+5Gixo9enRh7BvIWAAAAKAkZyxQfBhuFgAAAFFAYBFyDDcLAACAKCCwCDmaQgEAAKDE9bFQB+3cqBM3ChedtwEAAFDiAotq1art8fHLLrusoPuEADIWAAAAKHGBxbPPPlt0e4KEyFgAAAAgCuhjEXJkLAAAABAFBBYhx3CzAAAAiAICi5BjuFkAAABEQSgCiyeffNLq1atnFSpUsNatW9vs2bNz3X78+PHWoEEDt33Tpk1t0qRJOW57zTXXWEpKig0fPtyiiKZQAAAAiIKkBxbjxo2zm2++2QYOHGhz5861Zs2aWceOHW316tUJt585c6Z1797drrzySps3b5517drVLQsWLNht2wkTJthHH31ktWvXtqii8zYAAACiIOmBxaOPPmpXX321XX755daoUSMbNWqUVapUyZ555pmE2z/22GPWqVMnu+2226xhw4Y2ePBga968uY0YMSLLditWrLAbbrjBXnzxRSvra+cRRMYCAAAAUZDUwGL79u326aef2umnn/77DpUp4+7PmjUr4XO0Pri9KMMR3D4jI8MuvfRSF3w0btzYooyMBQAAAErcPBaFbe3atZaenm41a9bMsl73Fy1alPA5K1euTLi91ntDhw61tLQ0u/HGG/O0H9u2bXOLt2HDBne7Y8cOtxQl//o5vU8spn/L2s6dMduxg7RFcdpT2SA5KJfwomzCiXIJJ8olvCibrPJzHJIaWBQFZUDUXEr9NdRpOy+GDBligwYN2m39lClTXLOs4jB16tSE69esqWhmHWzbtoxcO6mj+MsGyUW5hBdlE06USzhRLuFF2cRt3rzZIhFY1KhRw1JTU23VqlVZ1ut+rVq1Ej5H63Pb/oMPPnAdvw855JDMx5UVueWWW9zIUEuWLNntNfv27es6kAczFnXr1rUOHTpY1apVraijQJ24Z5xxRsK+ID/9FL/NyChjnTt3LtJ9Qf7KBslBuYQXZRNOlEs4US7hRdlk5VvyhD6wKFeunLVo0cKmTZvmRnby/SN0v1evXgmf06ZNG/d4nz59Mtep8LVe1LciUR8MrVcH8UTKly/vlux0MhXXCZXTe1VUwsIdlxRLTS1rZZLe3b70Kc7zAHlHuYQXZRNOlEs4US7hRdnE5ecYJL0plDIFPXr0sJYtW1qrVq1cVmHTpk2ZQcBll11mderUcc2VpHfv3ta+fXsbNmyYdenSxcaOHWtz5syx0aNHu8erV6/uluwHRBmNo446yqImWJYaGapcuWTuDQAAABDSwOLiiy+2NWvW2IABA1wH7GOOOcYmT56c2UF72bJlbqQor23btjZmzBjr16+f3XXXXVa/fn2bOHGiNWnSxEoiP9ysEFgAAAAgrJIeWIiaPeXU9GnGjBm7revWrZtb8ipRv4ooZiwYnAAAAABhRYv9iGUsAAAAgDAisAi5YGdtMhYAAAAIKwKLkNNUHL45FBkLAAAAhBWBRYSaQxFYAAAAIKwILCLAZyxoCgUAAICwIrCIADIWAAAACDsCiwggYwEAAICwI7CIADIWAAAACDsCiwgFFmQsAAAAEFYEFhHAcLMAAAAIOwKLCKApFAAAAMKOwCIC6LwNAACAsCOwiAAyFgAAAAg7AosIIGMBAACAsCOwiAAyFgAAAAg7AosIIGMBAACAsCOwiAAyFgAAAAg7AosIILAAAABA2BFYRABNoQAAABB2BBYRQMYCAAAAYUdgEQFkLAAAABB2BBYRQMYCAAAAYUdgEQFkLAAAABB2BBYRQMYCAAAAYUdgEQEEFgAAAAg7AosIoCkUAAAAwo7AIgLIWAAAACDsCCwigIwFAAAAwo7AIgLIWAAAACDsCCwigIwFAAAAwo7AIgLIWAAAACDsCCwigMACAAAAYUdgEQE0hQIAAEDYEVhEABkLAAAAhB2BRQSQsQAAAEDYEVhEABkLAAAAhB2BRQSQsQAAAEDYEVhEABkLAAAAhB2BRQQQWAAAACDsCCwigKZQAAAACDsCiwggYwEAAICwI7CIADIWAAAACDsCiwggYwEAAICwI7CIADIWAAAACDsCiwggYwEAAICwI7CIAAILAAAAhB2BRQTQFAoAAABhR2ARAWQsAAAAEHYEFhFAxgIAAABhR2ARAWQsAAAAEHYEFhFAxgIAAABhR2ARAWQsAAAAEHYEFhFAYAEAAICwI7CIAJpCAQAAIOwILCKUsYjFzDIykr03AAAAwO4ILCKUsRCyFgAAAAgjAosIZSyEfhYAAAAIIwKLCCBjAQAAgLAjsIgAMhYAAAAIOwKLCChTxiwlJf5/AgsAAACEEYFFRDDkLAAAAMKMwCIimCQPAAAAYUZgERFkLAAAABBmBBYRQcYCAAAAYUZgERFkLAAAABBmBBYRQcYCAAAAYUZgEbGMBYEFAAAAwojAImIZC5pCAQAAIIwILCKCplAAAAAIs1AEFk8++aTVq1fPKlSoYK1bt7bZs2fnuv348eOtQYMGbvumTZvapEmTMh/bsWOH3XHHHW595cqVrXbt2nbZZZfZjz/+aFFG520AAACEWdIDi3HjxtnNN99sAwcOtLlz51qzZs2sY8eOtnr16oTbz5w507p3725XXnmlzZs3z7p27eqWBQsWuMc3b97sXqd///7u9tVXX7XFixfbOeecY1FGxgIAAABhlvTA4tFHH7Wrr77aLr/8cmvUqJGNGjXKKlWqZM8880zC7R977DHr1KmT3XbbbdawYUMbPHiwNW/e3EaMGOEer1atmk2dOtUuuugiO+qoo+z44493j3366ae2bNkyiyoyFgAAAAizpAYW27dvdxX+008//fcdKlPG3Z81a1bC52h9cHtRhiOn7eXXX3+1lJQU23fffS2qyFgAAAAgzHZVV5Nj7dq1lp6ebjVr1syyXvcXLVqU8DkrV65MuL3WJ7J161bX50LNp6pWrZpwm23btrnF27BhQ2Z/DS1Fyb/+nt4nLS3VxYFbtuy0HTtiRbpPyF/ZoHhRLuFF2YQT5RJOlEt4UTZZ5ec4JDWwKI4DoSZRsVjMRo4cmeN2Q4YMsUGDBu22fsqUKa5ZVnFQ863crF/fxswOtE8//dz22eeHYtkn5K1skByUS3hRNuFEuYQT5RJelI1l9l+ORGBRo0YNS01NtVWrVmVZr/u1atVK+Bytz8v2PqhYunSpvfvuuzlmK6Rv376uA3kwY1G3bl3r0KFDrs8rDNpPnbhnnHGGlfUdKRIYOTLVPv/crHHjZta589FFuk/IX9mgeFEu4UXZhBPlEk6US3hRNln5ljyhDyzKlStnLVq0sGnTprmRnSQjI8Pd79WrV8LntGnTxj3ep0+fzHUqfK3PHlR88803Nn36dKtevXqu+1G+fHm3ZKeTqbhOqD29V7ly8dtYLC2zIzeKR3GeB8g7yiW8KJtwolzCiXIJL8omLj/HIOlNoZQp6NGjh7Vs2dJatWplw4cPt02bNrlRokRzUNSpU8c1V5LevXtb+/btbdiwYdalSxcbO3aszZkzx0aPHp0ZVFx44YVuqNk333zT9eHw/S/2339/F8xEEZ23AQAAEGZJDywuvvhiW7NmjQ0YMMAFAMccc4xNnjw5s4O2hojVSFFe27ZtbcyYMdavXz+76667rH79+jZx4kRr0qSJe3zFihX2+uuvu//rtYKUvTj55JMtihhuFgAAAGGW9MBC1Owpp6ZPM2bM2G1dt27d3JKIZvBWZ+2ShowFAAAAwizpE+Qhb3wLri1bkr0nAAAAwO4ILCLisMPit4sXJ3tPAAAAgN0RWERE06bx2wULkr0nAAAAwO4ILCIWWHz1lVl6erL3BgAAAMiKwCIiDj/crGJFs61bzf73v2TvDQAAAJAVgUVEaMTdxo3j/58/P9l7AwAAAGRFYBEh9LMAAABAWBFYRDCwIGMBAACAsCGwiBACCwAAAIQVgUWENGkSv1Xn7c2bk703AAAAwO8ILCKkZk2zGjXMYjGzhQuTvTcAAADA7wgsIiQlheZQAAAACCcCi4ghsAAAAEAYEVhEDIEFAAAAwojAIqIduJnLAgAAAGFCYBExfvbtn34y+/nnZO8NAAAAEEdgETFVqpgddlj8/zSHAgAAQFgQWEQQ/SwAAAAQNgQWEUQ/CwAAAIQNgUUEkbEAAABA2BBYRDiwUMZCs3ADAAAAyUZgEUFHHmlWtqzZb7+ZLV2a7L0BAAAACCwiSUFFgwbx/9PPAgAAAGFAYBFR9LMAAABAmBBYRBSBBQAAAMKEwCKiCCwAAAAQJgQWEZ/LYtEis+3bk703AAAAKO0ILCLqkEPMqlY127nT7Ouvk703AAAAKO0ILCIqJeX3rAXNoQAAAJBsBBYloJ/F3LnJ3hMAAACUdgQWEXbKKfHb554z27w52XsDAACA0ozAIsIuuMCsXj2ztWvNnnkm2XsDAACA0ozAIsLS0sxuuy3+/4cfNtuxI9l7BAAAgNKKwCLiLr/c7MADzZYtMxs7Ntl7AwAAgNKKwCLiKlY069Mn/v+hQ80yMpK9RwAAACiNCCxKgOuui89p8eWXZm++mey9AQAAQGlEYFECVKtmdu218f8PGWIWiyV7jwAAAFDaEFiUEGoOVb682Ucfmb3/frL3BgAAAKUNgUUJUatWvCO3PPhgsvcGAAAApQ2BRQly661mZcqYTZ5sNm9esvcGAAAApQmBRQlyxBFmF18c//9NN5lt357sPQIAAEBpQWBRwgwYYFa5stl775ldfTUduQEAAFA8CCxKmAYNzMaPN0tNNXv+ebN77kn2HgEAAKA0ILAogc4802zUqPj/773X7B//SPYeAQAAoKQjsCihrrrKrF+/+P//8hezt99O9h4BAACgJCOwKMGUrbj0UrP0dLMLLzT7+ONk7xEAAABKKgKLEiwlxezvfzc79VSzjRvNjj/erEsXs6lT6dQNAACAwkVgUcKVK2f26qtm558fDzQmTTLr0MGsSROz0aPNNm9O9h4CAACgJCCwKAWqVTP797/Nvv7a7MYbzfbZx+yrr+J9Lw45xKx/f7OVK5O9lwAAAIgyAotS5A9/MHvsMbMffjB79FGzevXMfv7Z7L77zA491OzKK80WLEj2XgIAACCKCCxKaQZDM3N/8018zgv1vdAs3c88Y9a0qdnpp8eHqF23Ltl7CgAAgKhIS/YOIHnS0uKjRWmZNcts2DCzCRPMpk2LL9dea3bGGWYXX2x2wglmv/5qtmaN2dq18dtNm+KzfFepEl+qVo3fKnDxi5pdqW8HAAAASjYCCzht2pi98orZkiVmY8aYjRtn9sUX8c7eWvaWZgDff3+zjh3NevQwO+WU+DoAAACULAQWyEL9Lu66K74sWhQPMLR8+61Z9epmNWqYHXBA/FbZCA1j+9tvvy8bNsSX9evj82doUXbjhRfiy8EHx+fWUJBx1FE574eyI5rUT0uFCvGA5OST4+8LAACA8CGwQI4aNDAbODC+5JfmydBQtgoQvvvO7MUXzcaOjXccHzIkvtSqZda48e9L/fpmn39u9sYbZu+/b7Zz5++v97e/xW+bNYvPy9GqlVmdOvGldu148AEAAIDkIbBAkVC/CvW/0KKKv/po/PWv8aDh+efN3norPsStFvXnyCmw0YR+O3aYvftufMQqBR5aslM2pWbNrP07tOj9MzLii8+gKOhR/xK/qGlWxYrxTuwnnRR/TiJbtph99pnZtm3x+UHKlo3falGAoz4mAAAApRWBBYqNsgrdusUXNaHSXBpffvn7onk2NOzt2WfHFw2PG7RqldmMGfEgQ820VqyIL1u3xofN1VJQChJOPDE+iWC7din24Ye1bdq0MvbRR2bz5mXNomSnjEuLFmbNm8cXfZYyZeKBi261KDj56ad4QOVvtU5NxDSnSN268dsDD4wHMOogr8yPFn1OHcNKlX5fdF/rfZM03eo5ev5hh8WDHwAAgOJAYIGkUP8MNWfSklfKSGiEKi2esg+//BIPMFavjvfvUPMrv6hCHqzc61bZFGUuFCT4RUGJApZly34fFSv+9Tguyz6o+ZY6o2t4Xi3Kpqhir33Q8L1a1OQrDPRZ1WdGAY8WHT+N2qVj7291HLTvGlpYt37Rfb9Ot/qsygqpf41fdF+ZHi0KcLQoMNO2CpZ0XPytjrE/5rpVBkn9ZRRIBZf99iucUcR0Xqgs//e/388J3/9HgZf20++zD9YaNYo3tdNjAAAg/wgswkiXqtVmSOPAIleqhKqir6UwKqPKmqjD+JQpGoI3Zvvu+6t16lTF2rVLtbZt41mIRBVfDcE7d258+fTT+K06rftmWH5RpfWgg+IBihb9v3z5eGCkivDy5fH/q/LtqeKuiq+206mhYEkV9uzHwQcM2l7ZEG2nTvdaJk8u+PFRh3y9VlFShkUBR3BR07Rg07UyZcrY8uWNbN68Mq75mW9yp4Bh/vx4UzmNaKYgIr90jI899veg94gj4mWkoCzs/Xh0fv34o9n338eDSgV++l4oWNNxAwCgqPHnJmxUc9TYr2p3M3Gi2bnnJnuPSg1VzjVSlZYbb1Q2YqdNmvSede7c2cqWzX2MXFWA1XxKS0Hpqr6usPtMgDItiSqRPiPgr7gHAx4FSQoufBZFi7Iy2UfxUoVTFU+/+Ipo8FaLKvx+/hK/KJvhMxJ+X5StUOXc77tudV/P9/1ZfNZIGSYFUn7RayoDpP3WkjOVRX0350pu9J4KDLT/6m+jIESLjpXPNOnrplsFTfrKKTujZm9astt333iQEXw9f6vARp9Ti4JH3So41OuqLHWrRe/nA8Dg/C/Zgym9h45d9iBW54bPxGhRufrgUYMk6LMkon3Xfulz6zX8rc6jYFM9/V/b+f3yi/apSROzY46JZ3UUaPnzTGWnQE4B3cKFqbZkSUt77rnULP2a1DRPQbma+fnF94lKdH4XB30Xli6NL2qSqM+moLIo593R8SqJ8/roIoaatup8VHnqO+azmfq/fkv8RYLsn1/nh753+v7rcWUuk3VOACg4AouwUY1EU1+rlnPVVWatW8cvbaPUUAVcV5tz4/94a0lEf7zVaV5L+/YWCaoU+wkYg4sqLcFma9u3p9uiRd/bgQceZlu2pLpMhSqJCiRU+T366HjlVwFifpo1qdKnyvnHH5vNnm02Z058FDNVOhUQ+OCguKgMg5UzVfqVzVJQkBNtowq8PosqawpqJLf9VgCQnZ6bGwUFeh9l+LK+tmqEdfbwyQJbl8kawOp8VfM99Q/yt3ofBTrZ6TMqoPJNF7UvvombfkZ1q3NCx8s3XdSi80nBUKI+WQp4dC1HiwZy2Js+StovnTeqaKsvWHDRuaTvtx/4QbcKNNVUsWHD3xcNXKFgrDCCEFXcFYxu3Fh4Ha6UGXz55fitBtXQ90afe09UJgow9Pum75S+7zrXgs9VcKFjoKaJWpo2jWcPGWo8evT78+9/x3/DVJXR9zm/57TODQX/msTXL/rea33wvNH3Sr8ZupikRX00davvli4IlcSAPqxSYrG8/ByULhs2bLBq1arZr7/+alWLeKifHTt22KRJk3ZdFd/1w69fXA1RpCGIOnWKz1DHt6LYJSwblLpy0S+k/kD6zvbK1Pg+PL7/hiqr+toGF1XylSkILtpdBUHBzJGer0puMJjKbZAAVZr9H06/+D+mqhgHD4kq1dpfvb4qmL45mc8g6WclOGqaz4Rln5dGTaz8iGy6Kp39D7oqggroGjRIt2XLvrRmzRpbuXKpmU2wNPCCKreqIOhWS36aqin48BkP3er4KZjQ6xSEykSvp4quslQqx+Bj+hnWUNiq4OpWn1OVpGAWSsdXFWtlbVTR1lIYAagCjsMPj1fGdKvFl7sqUMFy1vmiJnAKZhYujFe8dF+LjpEeL1MmZm3bxuzcc8u4wTFym0coEb3Ga6+ZPfGE2Xvv7f64Kv46Pn6QCr8o8FfwoO/EnspY5ZpT4KzPr8qpggxllnQMFIhG+ae5pP6N0W/lY4+ZjRyZ9Xuu75nKT+Wo808XKPyi8tf5ovM3OKiLmhbr96MgFKzqe6Mg48gj4wO0aG4s/ZaWtrIpjnoxGYsw0tmuiR80xJAaxz/5pFmvXsneK6BUUuXbBwaqOBU1VdpVqfd9afytKmZqJqIRxPLaVER/D3XlW0th8X1ZdNVff6R1dd3/gd6xI8MmTfreOnduuMfmg/o8PuhRxVO3utK/ZEl88RXj4KACutaS/fOp5ehpp5m1bPl7YOSbuClD4YeE9ouummt4aAUUaorl6Ri/80688vz66/Gr6fr53Zv+SQoqdWx89sEvKj8FcH7gB90qSFE2QxUqv+jzq5KtYEVLotfX/qtyrf1cvDj+WjlJS4vZzp0a5U6L2W23xfdPFXS9TzBQ1jHUORZsuqZA6amn4mXu319ZHWVDlSXUkts55uc1CgbPKovgQBAKQnVMFBQpQPKjBip5r8+n4E3LSy/9/rr6Hii40HFV5VTH1h9X39zPN7/U4gNrBW3BpozKiOl7HmwmqNvga/mMl97TN/P0gz/osytLquOQUxZZx1XfHZ99LGlUxrroMGyY2XPP/X4+6rzXMdZ3V99xDTWvJTuVix8OPtFjOlf1XVewr4sYvq7vr7nq+6vfC9801DcX1cUMHffsQ9Ur2FDTZQXZGta+MH8jSzsyFmHMWHi6NKTG/vrlUtiuy2YoNlyxCCfKpXSVjYIsn+3wGQ9VJk4+WUNC5zzvTEGogqOmcKqIqHLrK7nBvj+qjPqAU4GKmuyowqPbYLC1NxQU6bOqIq3Kkm6DFabsgzeIKrp6XwUzujKrTIdfDjhgh/3rX9Nt8+bTbNKkVJs+PfcmdTlRVqJnT7NrrolX5ouLgkqVh5ooqqmiykJBaG7BVDIo6NCxV5Ch5jfK9Kn5ovZV544/5gou4n2tYpaevsEqV65q6ekpWeZaUrCl1/CLWkSrKqBzX+/jb32TIAUu/v9+ZL7gIr5Zpb/1TUUT1QL1+n4Jvp9f9Fl0Xiro06KmiConT4Od3HGH2VlnxbdXsK8g2Tc11fmtTISWYIZPgWZw4lx9pzR8u/Z5b+hYKFBX0KN9VNM9XSxQ2QQ/qwLTrP3c0m3t2u+sWbPDrVq11MyRFJVZ0bYqD5VRXoPELVviv116XvCCRkmsFxNYhDmwUNF07hz/Fqhnob6RjIVZbKjAhhPlEl4lvWxUAVIFTn8WkjXSlh+YQQGGgg5VgnTNyc+bk5dyUWZCI98pA5F9IALRet9kTYsCnT/+0eyii8IzOprKwQ8AoX1U5sY38/OL7vtmfsEhr4PN/HymRpXLYFNBP5BBcNF6Hf/gUNq61T7oirz2pzTTMdTVfwUUmhQ3P5V/HTsF4wosiprOCWXCNPimFo3iuDf0fdP+KsPng/qGuxYFbqqyzZwZX4LzYClI8XNWKeOmcysYtPkle2CnDKWC+mSgKVRJoTPpmWfiIbt+tfr3Nxs6NNl7BQClkrITyRYcmEEdzPeG6gW5jWauNvBhp8qWH7b7uKzTDSWN+mD5Jjdq9qMyUqVTGS3daoACNcvxfZjWr99pM2bMtuOPb2UVKqRlNtdS8KJAyY+Qp9fVogp4MDuh22DF0y+qqPqBH3yTLQlmMNQ0Ta/nmxJlH1UwuATfzy++outHUtSifgx7k1nQ/ur4FCr18takUkqxKfURoOOlluZa7rknHtQosxRsqrdqVbp98cUSq1HjMNu8uUxmmanZprIsKl8dB591UaOSPalUKX7c9Tq+uV9+KAuUrMAiPwgswk450KefNjvvPLOHH473fLrggmTvFQAACPCBTseOuVcu/VX5HTtitn79Gjv11FikO6GHiiIEpUzUT1WefdZs3DizM8/M8SmJ+qHF+4stsM6dD7GyZXdPBSr7oOBPQYWaWgX7SC1cGM9mqUmcggG/KEPhR6XziwJHvVYwcPPN4YLN2/R/BXJRQGARBV27xqPu0aPNunUze+ghs1tuYaQoAAAA1eTVc/yBB+K1d9WPNIya2gyqo4eGqSrEQXCUWfL9X9RSXdU0LxaL90FJ1HJdfcL8YA4lFdPQRIVGhrr22vgZqyE9FGjktfed8p7//W988T2s6FoDAEg2XYrVZLDqja9mv+rIoWa/uuKs9iXBMYBRMr3/frw/qYZ3U/Ol/IwsoPPjH/+IdzTq1y9+X+mBTz6J9/K//PL4OXbDDfElt7G8C0nKruZopRUZi6hQeKzgQg0Zb77Z7O9/j/fcGz8+PkyBp4BBjf/UvvCDD+KLfpyzf1H1esrHKjcX7HGkRT2ogsORaNGYhH7AaeV6dasGpBoCQ0MjkD0BCq+HsK6yqTeueubm97ulK3e+9ymiP/21htPR+L5qX6HLnBoipySUrdp7aJY9XWHWUD2ePmuQOghoPid1CtGV58IcUkfngtqxqBKqv2s6thr6JxFVSPW3UH9L/Ri5ySwHVZb1N9rPMBlFOu4KBjSSgPfuu/FOKcouXH11zrPF6iKpJsrQ2LZ+WCk9Ty06unf//TuuoEP1pjvvNBsxIj602v33xydGSfbwTKtXx4Mf1bv2NBGyzlXVwxLNFhoyoQgsnnzySXv44Ydt5cqV1qxZM3viiSeslfoS5GD8+PHWv39/W7JkidWvX9+GDh3qRrvwNNDVwIED7emnn7b169dbu3btbOTIkW7bSNMXpXfveHpPQ3RohigN6qwB3NWuUIvGUEt0hUf5OjXu1ImsnkP6kfQ9wzR0QUHoh02DomvRMfazdWkJBh1+OmD1QtN+aL2CmODix3AsyFiN/r38jF8KovI68L+epyFCVq+2lFWrbB+NE6hhQwiewknl6yct0B/84KD1flElO6/ln5/3DC5+yBm/+IayweFotOgc8oPg+16V+j5qdjY/fIj+0PiMoioMwYkQ9IfTN+RWcK/viiZB0HdYr6FFz9fnDk5Dq0W9I1UhUrASnDxA9H5+anPtj+8t6nuO6jvgx8hULl+Lvqu+UuNvy5SxMuoRqu+Nvke+J6R/Lb+oYbK+475xsxbtkz6Pfw9/q33Ua+o4+8kEtL+6JBj87fA9XvV+uvWLfmuCt6qE6JzwnyP7os/pb33FMZjh9b9TfgIELdrW74ffL5W132+/6HWCQzDpVueAjpWfbU+3Ol4aqkZjrGqMzuCFIR2jU081O/30+K1o7E5VkP2YvHovP8RRWpqlliljzX74wcq8+WbW3zEdB/9Z/OfRvvvvlF907qqM/bTZulX56O+NHzpK76v91gUn35vXT97he7mq7PUcVe5UKdQYoKL3VUVSV5pVYdT4pX5yD5WZMhpadGw1+YACDb1PcHxQHUedd8HhrPRcnZfBC2Lab11s01VyLXqOp2OjSp56g+vvqnpaK+jRon0JzvKnbXUsdN4GL7r599E5rWMWXHQ+6RjpPVUeS5daw1mzrIwmF/HfRd8bW+WhstY5oludYzpeOi80xJB6iGv/RH93VWfyi85fHefgonpBokldgue7bnVO6HX9TJ5adB7reAdnqfSVcp2b2t4vwSG3tOi+PndwnFt9RjXtVpmKPvtVV8WPnc4L1WX69jW79954Wev88MNy6Va/cZp0xtOYymrRoSV7YKj3Up8L9Sy/9NKsE2moTPwMlMGJW/T/gw6yMipv7b+f5CQ4wUlwohOd3/qMfjin1F298IM96LXotXTOKXjSEgyi9Rut8bM1nJbOPR90+EU9vfV998csxJI+3Oy4cePssssus1GjRlnr1q1t+PDhLnBYvHixHZhgxpKZM2faSSedZEOGDLGzzjrLxowZ4wKLuXPnWhPNTmMaOGmoe/yf//ynHXbYYS4ImT9/vn311VdWIQ9j5YVmuNnc6EdFV2+CP4pB+kHX9JI6SXWrSob/g6I/FPFhD+JXYPSD6X/E9YOuL4u+WH66Vy36YutE13P0w+in0s3p/T0dPz/Dkp6T1xSnyskPEq/9Do7vp0Vf8OzDYYivxOmLnp2+6P4Lr9fXH1A/w5HWK+jRZ0y0j/ox9A0q9Tz/Hr4CGRzkO/gDExyqwy/+K+dv9RrZf6y0zo+ZmH2sw+w9uoKv55dEsg9ErsW/d3BmKD3fj9Xob/WZsk/R7N8nePx1G6xgB8siuI0/DtmHHtESHBcy+2ulp1ssI8N2btliaTt3WkpeB7LXZw2OQ5n9vcWfG8FbP5tZcJasYkilu8qKKkVFTeeyP98KQaxcubyXCfJOFVj9pqsikp8py8NAv106xxL9LqnS36dPPKgIZt49PUef+ZVX4tl5/Z0qbPquq5et/j7t6e+ZrxyrVcDeCP7+FwYfBCaDjoV+Cwvyfdfvsir7AwfGK/iiz6PO1n/96+4zYmY/lqoDKZhQb/m8XDxSoH7rrfFKenH8vuaF6kfqxZ2X80K/AaqnJUGk5rFQMHHcccfZCKWoXB0rw+rWrWs33HCD3anUVTYXX3yxbdq0yd7UlZddjj/+eDvmmGNccKKPU7t2bbvlllvsVp1Apottv1rNmjXtueeesz/qSn9JCCxEFXylAfXDqCuZftGVhb2dTcZXGPOa4tVVEDXb0FUmv/jZnIIz0GT/Y+KDRn8lTz9OChh0dSQMqlSx2P772841a6wsbXyxpz/uPisSzJTovg9Q/BIcBN8veq6uUAWHD9H3Q+edvk+qTGnR/30mQYufjUp/4HWFVdlLjROqK5YKiPyMan7R1WJ/NV9BdG4//Qps/NVXBdO6Oql91fczeGVS+6DX8hM87BJLTbUUf3Vbi3+d4Gxf+t4rkA9mFJQZ8a/v30uVF58J8IsEsxi+cuWzMdkXnxHRogqsnqPjG7zS6u8Hb4MBl68Uqvz82JP+iqwfuzN7diKYwfBZWG3vp7rW/0Xnib+qrYspOmbqb6DzQosu9PirpqocKVutK7bqN6fX14Ujv2hbXXn2Fwp27rT0rVvt68WL7cgjj7TU4JVx7XP2K8zad3/BxWfXtK2fHl3nkG61rcrSX+HVra7U62qzzlddpNLfBn+hRud/8Dw45ZR4U5ecmh4logqhggwdg+DYoP67oL/XwSvPKnc95i+G+e+Nhh/VWL1a9J3xsyzqO6JshproKCugffNTi2vR8dX3WsdVx8Cft1qC3029l9YFs1D++xb4e51Ru7Yt2bLFDv3DHyw1GHTo+xsfjza++Mk29P6aglqLmm2plYAe0/5q1jkt+r+OebA+oEWfxV8cCf7NzX7eaxttG8wcquxUrn6GykSBlbaJz/r3ewZMi9bpe+THuNWi/yuYU18aZYgS0bHQ+a3yyD79ud5DzZ0KMkySfl/UlMwvwcybblWG2fnf9GD2xP/2By+6pe+aAl6fM3vgpUyeMg9a1K9Iv1kqY2Wb9XmVvVJApe9KcKZALcpMJanzRmQCi+3bt1ulSpXslVdesa6BLvU9evRwTZhee+213Z5zyCGH2M0332x9dJVjFzV7mjhxon3++ef23Xff2RFHHGHz5s1zwYbXvn17d/8xjQyQzbZt29wSPIAKbtauXVssgcXUqVPtjDPOKHkTSukHZMkSS1GAsd9+FvNNHnJr5pTtBzVFP5o6RStWtJjPMOgPna+kZb/q7NP//qqzv4IevAquL/yuP/4pwWY0++9vMV/5qFjx97Jp187Krl1rKb5ZiF4je2bC73uwCUyi/UvUvlv3g9kJ/0Plrwb5H1TdJsqAZM8YBO8HJRqQ3P9QBmeGEp/29cfLb5t99h7/usHPl70pUvBKUvB45DS1a/bKeFqaq6i6x1NTbWcsZv+dPdvanX66pemPVjDrFDz+fsmeDUp0HMVnS3adKynKjvhZsoJlE2x+o/sFbSK3t23+de7qD7y+U/mdrU3HRRVFH9gEy99/rvzQsduwwXauW2fvfvqpnXLuuVa2NPdezG+zOj+lcn6pHIPfxbD9ndF3SVdjVUFVBaowmyQG+d/0/AQpxWnX98P9jgeOQ2T//isA0d9D/Vb4JoT6vpeg5sI7fvvNpk+ZYqeobHydY2/O3/T03y8m6fkR7Q+jenGNGjXCP0GeKu7p6ekumxCk+4tySHmqH0ai7bXeP+7X5bRNdmo2NWjQoN3WT5kyxQU+xUE/LiWan0VmbxVH1iCHfZyqqwhebudDYf1h8JV+8Vdo/RW14uIDncKWU9DjP68PBPakdm2bkt/ZhVA8Kle2qcH2zwiNEv93JqIol5CqWNGmKoMA25yPOlgoOm8nW9++fV0WJHvGokOHDmQsSjHKJpwol/CibMKJcgknyiW8KJusVC+ORGChtEpqaqqtynaVWPdr5TD0ltbntr2/1bqD1I4zsE2waVRQ+fLl3ZKdTqbiOqGK872QP5RNOFEu4UXZhBPlEk6US3hRNnH5OQZJnSCvXLly1qJFC5umjmi7qPO27rdp0ybhc7Q+uL0oqvTbaxQoBRfBbRRpffzxxzm+JgAAAICCSXpTKDVBUmftli1burkrNNysRn26XLMlmrmhaOvUqeP6QUjv3r1dR+xhw4ZZly5dbOzYsTZnzhwbrTGRXRPuFNex+7777nPzVvjhZjVSVLCDOAAAAIASFFho+Ng1a9bYgAEDXOdqNVeaPHlyZufrZcuWWZlAT/y2bdu6uSv69etnd911lwseNCKUn8NCbr/9dhec9OzZ040udcIJJ7jXzMscFgAAAAAiGFhIr1693JLIjBkzdlvXrVs3t+REWYt7773XLQAAAACKXlL7WAAAAAAoGQgsAAAAABQYgQUAAACAAiOwAAAAAFBgBBYAAAAACozAAgAAAECBEVgAAAAAKDACCwAAAAAFRmABAAAAoGTMvB02sVjM3W7YsKHI32vHjh22efNm915ly5Yt8vdD3lE24US5hBdlE06USzhRLuFF2WTl68O+fpwbAosEfvvtN3dbt27dZO8KAAAAEIr6cbVq1XLdJiWWl/CjlMnIyLAff/zRqlSpYikpKUUeBSqAWb58uVWtWrVI3wv5Q9mEE+USXpRNOFEu4US5hBdlk5VCBQUVtWvXtjJlcu9FQcYiAR20gw8+uFjfUycuJ284UTbhRLmEF2UTTpRLOFEu4UXZ/G5PmQqPztsAAAAACozAAgAAAECBEVgkWfny5W3gwIHuFuFC2YQT5RJelE04US7hRLmEF2Wz9+i8DQAAAKDAyFgAAAAAKDACCwAAAAAFRmABAAAAoMAILJLsySeftHr16lmFChWsdevWNnv27GTvUqkyZMgQO+6449xkiAceeKB17drVFi9enGWbrVu32vXXX2/Vq1e3ffbZxy644AJbtWpV0va5NHrwwQfdZJV9+vTJXEe5JM+KFSvs//7v/9yxr1ixojVt2tTmzJmT+bi67g0YMMAOOugg9/jpp59u33zzTVL3uaRLT0+3/v3722GHHeaO+RFHHGGDBw92ZeFRLsXj/ffft7PPPttNJqbfrYkTJ2Z5PC/lsG7dOrvkkkvcHAr77ruvXXnllbZx48Zi/iSlp1x27Nhhd9xxh/stq1y5stvmsssuc5MlB1Eue0ZgkUTjxo2zm2++2Y08MHfuXGvWrJl17NjRVq9enexdKzXee+89Vzn96KOPbOrUqe7HpUOHDrZp06bMbW666SZ74403bPz48W57/dCcf/75Sd3v0uSTTz6xp556yo4++ugs6ymX5Pjll1+sXbt2VrZsWXvrrbfsq6++smHDhtl+++2Xuc1DDz1kjz/+uI0aNco+/vhj94dav20KBlE0hg4daiNHjrQRI0bYwoUL3X2VwxNPPJG5DeVSPPT3Q3/PdeEwkbyUgyqvX375pfu79Oabb7pKcc+ePYvxU5Suctm8ebOrhyk41+2rr77qLjKec845WbajXPJAo0IhOVq1ahW7/vrrM++np6fHateuHRsyZEhS96s0W716tS7vxd577z13f/369bGyZcvGxo8fn7nNwoUL3TazZs1K4p6WDr/99lusfv36salTp8bat28f6927t1tPuSTPHXfcETvhhBNyfDwjIyNWq1at2MMPP5y5TuVVvnz52EsvvVRMe1n6dOnSJXbFFVdkWXf++efHLrnkEvd/yiU59Js0YcKEzPt5KYevvvrKPe+TTz7J3Oatt96KpaSkxFasWFHMn6B0lEsis2fPdtstXbrU3adc8oaMRZJs377dPv30U5cC9cqUKePuz5o1K6n7Vpr9+uuv7nb//fd3tyojZTGC5dSgQQM75JBDKKdioGxSly5dshx/oVyS5/XXX7eWLVtat27dXPPBY4891p5++unMx7///ntbuXJllrKpVq2aa+pJ2RSdtm3b2rRp0+zrr7929z///HP78MMP7cwzz3T3KZdwyEs56FbNbPQ987S96gjKcKD46gNqMqWyEMolb9LyuB0K2dq1a12b2Jo1a2ZZr/uLFi1K2n6VZhkZGa4Nv5p5NGnSxK3TH4By5cpl/rAEy0mPoeiMHTvWpaTVFCo7yiV5vvvuO9fkRs0477rrLlc+N954oyuPHj16ZB7/RL9tlE3RufPOO23Dhg0uwE5NTXV/X+6//37XdEMol3DISznoVkF7UFpamrvgRVkVDzVLU5+L7t27u/4UQrnkDYEFELg6vmDBAneVD8m1fPly6927t2vHqoENEK4AXFfsHnjgAXdfGQt9b9ReXIEFkuPll1+2F1980caMGWONGze2zz77zF0oUSdUygXIO2XDL7roItfJXhdRkD80hUqSGjVquKtK2Uex0f1atWolbb9Kq169ermOWNOnT7eDDz44c73KQs3W1q9fn2V7yqloqamTBjFo3ry5uyKkRR201eFR/9fVPcolOTSSTaNGjbKsa9iwoS1btsz93x9/ftuK12233eayFn/84x/dyDaXXnqpG+BAI98J5RIOeSkH3WYfxGXnzp1uRCLKqniCiqVLl7oLWz5bIZRL3hBYJImaDbRo0cK1iQ1eCdT9Nm3aJHXfShNdkVBQMWHCBHv33XfdUI1BKiONfhMsJ40UoUoU5VR0TjvtNJs/f7676uoXXSVXsw7/f8olOdRUMPuQzGrXf+ihh7r/6zukP7LBslETHbVBpmyKjka1UVvvIF280t8VoVzCIS/loFtdNNEFFk9/n1SW6ouBog0qNPTvO++844bTDqJc8iiPnbxRBMaOHetGgnjuuefcaAM9e/aM7bvvvrGVK1cme9dKjWuvvTZWrVq12IwZM2I//fRT5rJ58+bMba655prYIYccEnv33Xdjc+bMibVp08YtKF7BUaGEckkOjZSSlpYWu//++2PffPNN7MUXX4xVqlQp9sILL2Ru8+CDD7rfstdeey32xRdfxM4999zYYYcdFtuyZUtS970k69GjR6xOnTqxN998M/b999/HXn311ViNGjVit99+e+Y2lEvxjWY3b948t6ia9eijj7r/+9GF8lIOnTp1ih177LGxjz/+OPbhhx+60fG6d++exE9Vsstl+/btsXPOOSd28MEHxz777LMs9YFt27ZlvgblsmcEFkn2xBNPuMpRuXLl3PCzH330UbJ3qVTRj0ui5dlnn83cRj/21113XWy//fZzFajzzjvP/dgguYEF5ZI8b7zxRqxJkybuwkiDBg1io0ePzvK4htTs379/rGbNmm6b0047LbZ48eKk7W9psGHDBvf90N+TChUqxA4//PDY3XffnaVSRLkUj+nTpyf8u6LgL6/l8PPPP7sK6z777BOrWrVq7PLLL3cVYxRNuSgYz6k+oOd5lMuepeifvGY3AAAAACAR+lgAAAAAKDACCwAAAAAFRmABAAAAoMAILAAAAAAUGIEFAAAAgAIjsAAAAABQYAQWAAAAAAqMwAIAAABAgRFYAAAiLyUlxSZOnJjs3QCAUo3AAgBQIH/+859dxT770qlTp2TvGgCgGKUV55sBAEomBRHPPvtslnXly5dP2v4AAIofGQsAQIEpiKhVq1aWZb/99nOPKXsxcuRIO/PMM61ixYp2+OGH2yuvvJLl+fPnz7dTTz3VPV69enXr2bOnbdy4Mcs2zzzzjDVu3Ni910EHHWS9evXK8vjatWvtvPPOs0qVKln9+vXt9ddfz3zsl19+sUsuucQOOOAA9x56PHsgBAAoGAILAECR69+/v11wwQX2+eefuwr+H//4R1u4cKF7bNOmTdaxY0cXiHzyySc2fvx4e+edd7IEDgpMrr/+ehdwKAhR0PCHP/why3sMGjTILrroIvviiy+sc+fO7n3WrVuX+f5fffWVvfXWW+599Xo1atQo5qMAACVbSiwWiyV7JwAA0e5j8cILL1iFChWyrL/rrrvcoozFNddc4yrz3vHHH2/Nmze3v/3tb/b000/bHXfcYcuXL7fKlSu7xydNmmRnn322/fjjj1azZk2rU6eOXX755Xbfffcl3Ae9R79+/Wzw4MGZwco+++zjAgk10zrnnHNcIKGsBwCgaNDHAgBQYKecckqWwEH233//zP+3adMmy2O6/9lnn7n/K4PQrFmzzKBC2rVrZxkZGbZ48WIXNCjAOO2003Ldh6OPPjrz/3qtqlWr2urVq939a6+91mVM5s6dax06dLCuXbta27ZtC/ipAQBBBBYAgAJTRT5706TCoj4ReVG2bNks9xWQKDgR9e9YunSpy4RMnTrVBSlqWvXII48UyT4DQGlEHwsAQJH76KOPdrvfsGFD93/dqu+Fmi95//3vf61MmTJ21FFHWZUqVaxevXo2bdq0Au2DOm736NHDNdsaPny4jR49ukCvBwDIiowFAKDAtm3bZitXrsyyLi0tLbODtDpkt2zZ0k444QR78cUXbfbs2faPf/zDPaZO1gMHDnSV/nvuucfWrFljN9xwg1166aWuf4VovfppHHjggS778Ntvv7ngQ9vlxYABA6xFixZuVCnt65tvvpkZ2AAACgeBBQCgwCZPnuyGgA1StmHRokWZIzaNHTvWrrvuOrfdSy+9ZI0aNXKPaXjYt99+23r37m3HHXecu6/+EI8++mjmayno2Lp1q/31r3+1W2+91QUsF154YZ73r1y5cta3b19bsmSJa1p14oknuv0BABQeRoUCABQp9XWYMGGC6zANACi56GMBAAAAoMAILAAAAAAUGH0sAABFiha3AFA6kLEAAAAAUGAEFgAAAAAKjMACAAAAQIERWAAAAAAoMAILAAAAAAVGYAEAAACgwAgsAAAAABQYgQUAAACAAiOwAAAAAGAF9f9FBL6BYG1SMQAAAABJRU5ErkJggg==", + "text/plain": [ + "
| \n", + " | ETH_D_AvgPrc | \n", + "
|---|---|
| Date | \n", + "\n", + " |
| 2021-01-01 | \n", + "734.267502 | \n", + "
| 2021-01-02 | \n", + "752.461395 | \n", + "
| 2021-01-03 | \n", + "882.036545 | \n", + "
| 2021-01-04 | \n", + "1020.696609 | \n", + "
| 2021-01-05 | \n", + "1064.421906 | \n", + "
| ... | \n", + "... | \n", + "
| 2023-02-28 | \n", + "1621.815369 | \n", + "
| 2023-03-01 | \n", + "1633.614105 | \n", + "
| 2023-03-02 | \n", + "1651.379883 | \n", + "
| 2023-03-03 | \n", + "1604.413055 | \n", + "
| 2023-03-04 | \n", + "1565.894012 | \n", + "
793 rows × 1 columns
\n", + "<xarray.DataArray 'X' (Lag: 5, Feature: 1)> Size: 40B\n", + "array([[0.20655799],\n", + " [0.20611197],\n", + " [0.20506307],\n", + " [0.20176445],\n", + " [0.18578641]])\n", + "Coordinates:\n", + " Date datetime64[ns] 8B 2023-03-10\n", + " * Lag (Lag) int32 20B 5 4 3 2 1\n", + " * Feature (Feature) <U12 48B 'ETH_D_AvgPrc'
| \n", + " | ETH_D_AvgPrc | \n", + "
|---|---|
| Date | \n", + "\n", + " |
| 2023-07-13 | \n", + "1938.733276 | \n", + "
| 2023-07-14 | \n", + "1968.149841 | \n", + "
| 2023-07-15 | \n", + "1936.200684 | \n", + "
| 2023-07-16 | \n", + "1928.662964 | \n", + "
| 2023-07-17 | \n", + "1911.659607 | \n", + "
| 2023-07-18 | \n", + "1901.120789 | \n", + "
| 2023-07-19 | \n", + "1897.284180 | \n", + "
| 2023-07-20 | \n", + "1894.760406 | \n", + "
| \n", - " | ETH_D_AvgPrc | \n", - "ETH_D_PrcDir | \n", - "ETH_YF_Op | \n", - "ETH_YF_Hi | \n", - "ETH_YF_Lo | \n", - "ETH_YF_Cls | \n", - "ETH_YF_Vol | \n", - "ETH_ES_AvgTransFee | \n", - "ETH_ES_AvgGasPrc | \n", - "ETH_ES_BlkCnt | \n", - "... | \n", - "D_VADER_AvgScr_Ex | \n", - "D_VADER_Sent_AvgEx | \n", - "D_FINBERT_AvgScr_In | \n", - "D_FINBERT_Sent_AvgIn | \n", - "D_FINBERT_AvgScr_Ex | \n", - "D_FINBERT_Sent_AvgEx | \n", - "D_CRYPTOBERT_AvgScr_In | \n", - "D_CRYPTOBERT_Sent_AvgIn | \n", - "D_CRYPTOBERT_AvgScr_Ex | \n", - "D_CRYPTOBERT_Sent_AvgEx | \n", - "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | \n", - "\n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " |
| 2017-11-10 | \n", - "309.795990 | \n", - "-1.0 | \n", - "320.670990 | \n", - "324.717987 | \n", - "294.541992 | \n", - "299.252991 | \n", - "8.859860e+08 | \n", - "0.19 | \n", - "1.503609e+10 | \n", - "6300.0 | \n", - "... | \n", - "0.267875 | \n", - "1 | \n", - "-0.061600 | \n", - "-1 | \n", - "-0.149600 | \n", - "-1 | \n", - "0.126681 | \n", - "1 | \n", - "0.538396 | \n", - "1 | \n", - "
| 2017-11-11 | \n", - "307.727997 | \n", - "-1.0 | \n", - "298.585999 | \n", - "319.453003 | \n", - "298.191986 | \n", - "314.681000 | \n", - "8.423010e+08 | \n", - "0.19 | \n", - "1.539475e+10 | \n", - "6267.0 | \n", - "... | \n", - "0.112014 | \n", - "1 | \n", - "-0.144046 | \n", - "-1 | \n", - "-0.864277 | \n", - "-1 | \n", - "0.105284 | \n", - "1 | \n", - "0.631707 | \n", - "1 | \n", - "
| 2017-11-12 | \n", - "310.066002 | \n", - "1.0 | \n", - "314.690002 | \n", - "319.153015 | \n", - "298.513000 | \n", - "307.907990 | \n", - "1.613480e+09 | \n", - "0.21 | \n", - "1.801127e+10 | \n", - "6245.0 | \n", - "... | \n", - "0.088433 | \n", - "1 | \n", - "0.117165 | \n", - "1 | \n", - "0.439368 | \n", - "1 | \n", - "0.251211 | \n", - "1 | \n", - "0.538310 | \n", - "1 | \n", - "
| 2017-11-13 | \n", - "314.795250 | \n", - "1.0 | \n", - "307.024994 | \n", - "328.415009 | \n", - "307.024994 | \n", - "316.716003 | \n", - "1.041890e+09 | \n", - "0.22 | \n", - "1.660364e+10 | \n", - "6225.0 | \n", - "... | \n", - "0.078931 | \n", - "1 | \n", - "-0.050870 | \n", - "-1 | \n", - "-0.197827 | \n", - "-1 | \n", - "0.146051 | \n", - "1 | \n", - "0.464707 | \n", - "1 | \n", - "
| 2017-11-14 | \n", - "327.833504 | \n", - "1.0 | \n", - "316.763000 | \n", - "340.177002 | \n", - "316.763000 | \n", - "337.631012 | \n", - "1.069680e+09 | \n", - "0.24 | \n", - "1.670441e+10 | \n", - "6122.0 | \n", - "... | \n", - "0.296356 | \n", - "1 | \n", - "0.048023 | \n", - "0 | \n", - "0.312147 | \n", - "1 | \n", - "0.123785 | \n", - "1 | \n", - "0.643684 | \n", - "1 | \n", - "
| ... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "
| 2024-03-28 | \n", - "3534.136902 | \n", - "-1.0 | \n", - "3500.216064 | \n", - "3609.705322 | \n", - "3465.332275 | \n", - "3561.293945 | \n", - "1.641967e+10 | \n", - "11.27 | \n", - "3.788605e+10 | \n", - "7028.0 | \n", - "... | \n", - "0.037374 | \n", - "0 | \n", - "0.058417 | \n", - "1 | \n", - "0.234912 | \n", - "1 | \n", - "0.082416 | \n", - "1 | \n", - "0.472018 | \n", - "1 | \n", - "
| 2024-03-29 | \n", - "3533.061218 | \n", - "-1.0 | \n", - "3561.011719 | \n", - "3583.701416 | \n", - "3475.725586 | \n", - "3511.806152 | \n", - "1.271270e+10 | \n", - "8.62 | \n", - "2.908396e+10 | \n", - "7122.0 | \n", - "... | \n", - "0.118291 | \n", - "1 | \n", - "0.087957 | \n", - "1 | \n", - "0.330719 | \n", - "1 | \n", - "0.104424 | \n", - "1 | \n", - "0.490794 | \n", - "1 | \n", - "
| 2024-03-30 | \n", - "3518.939636 | \n", - "-1.0 | \n", - "3511.827637 | \n", - "3566.084473 | \n", - "3489.902100 | \n", - "3507.944336 | \n", - "9.389067e+09 | \n", - "7.67 | \n", - "2.502699e+10 | \n", - "7109.0 | \n", - "... | \n", - "0.187781 | \n", - "1 | \n", - "0.184344 | \n", - "1 | \n", - "0.670342 | \n", - "1 | \n", - "0.072131 | \n", - "1 | \n", - "0.412178 | \n", - "1 | \n", - "
| 2024-03-31 | \n", - "3579.567444 | \n", - "1.0 | \n", - "3507.951660 | \n", - "3655.218994 | \n", - "3507.242676 | \n", - "3647.856445 | \n", - "1.049988e+10 | \n", - "7.58 | \n", - "2.375656e+10 | \n", - "7106.0 | \n", - "... | \n", - "0.075188 | \n", - "1 | \n", - "0.030599 | \n", - "0 | \n", - "0.091797 | \n", - "1 | \n", - "0.132684 | \n", - "1 | \n", - "0.597076 | \n", - "1 | \n", - "
| 2024-04-01 | \n", - "3554.918518 | \n", - "-1.0 | \n", - "3647.819580 | \n", - "3648.129150 | \n", - "3418.695312 | \n", - "3505.030029 | \n", - "1.600210e+10 | \n", - "8.74 | \n", - "2.846122e+10 | \n", - "7120.0 | \n", - "... | \n", - "0.132067 | \n", - "1 | \n", - "0.031695 | \n", - "0 | \n", - "0.124861 | \n", - "1 | \n", - "0.088046 | \n", - "1 | \n", - "0.520269 | \n", - "1 | \n", - "
2335 rows × 64 columns
\n", - "| \n", - " | ETH_D_AvgPrc | \n", - "ETH_D_PrcDir | \n", - "ETH_YF_Op | \n", - "ETH_YF_Hi | \n", - "ETH_YF_Lo | \n", - "ETH_YF_Cls | \n", - "ETH_YF_Vol | \n", - "ETH_ES_AvgTransFee | \n", - "ETH_ES_AvgGasPrc | \n", - "ETH_ES_BlkCnt | \n", - "... | \n", - "D_VADER_AvgScr_Ex | \n", - "D_VADER_Sent_AvgEx | \n", - "D_FINBERT_AvgScr_In | \n", - "D_FINBERT_Sent_AvgIn | \n", - "D_FINBERT_AvgScr_Ex | \n", - "D_FINBERT_Sent_AvgEx | \n", - "D_CRYPTOBERT_AvgScr_In | \n", - "D_CRYPTOBERT_Sent_AvgIn | \n", - "D_CRYPTOBERT_AvgScr_Ex | \n", - "D_CRYPTOBERT_Sent_AvgEx | \n", - "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | \n", - "\n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " | \n", - " |
| 2017-11-11 | \n", - "307.727997 | \n", - "-1.0 | \n", - "320.670990 | \n", - "324.717987 | \n", - "294.541992 | \n", - "299.252991 | \n", - "8.859860e+08 | \n", - "0.19 | \n", - "1.503609e+10 | \n", - "6300.0 | \n", - "... | \n", - "0.267875 | \n", - "1.0 | \n", - "-0.061600 | \n", - "-1.0 | \n", - "-0.149600 | \n", - "-1.0 | \n", - "0.126681 | \n", - "1.0 | \n", - "0.538396 | \n", - "1.0 | \n", - "
| 2017-11-12 | \n", - "310.066002 | \n", - "-1.0 | \n", - "298.585999 | \n", - "319.453003 | \n", - "298.191986 | \n", - "314.681000 | \n", - "8.423010e+08 | \n", - "0.19 | \n", - "1.539475e+10 | \n", - "6267.0 | \n", - "... | \n", - "0.112014 | \n", - "1.0 | \n", - "-0.144046 | \n", - "-1.0 | \n", - "-0.864277 | \n", - "-1.0 | \n", - "0.105284 | \n", - "1.0 | \n", - "0.631707 | \n", - "1.0 | \n", - "
| 2017-11-13 | \n", - "314.795250 | \n", - "1.0 | \n", - "314.690002 | \n", - "319.153015 | \n", - "298.513000 | \n", - "307.907990 | \n", - "1.613480e+09 | \n", - "0.21 | \n", - "1.801127e+10 | \n", - "6245.0 | \n", - "... | \n", - "0.088433 | \n", - "1.0 | \n", - "0.117165 | \n", - "1.0 | \n", - "0.439368 | \n", - "1.0 | \n", - "0.251211 | \n", - "1.0 | \n", - "0.538310 | \n", - "1.0 | \n", - "
| 2017-11-14 | \n", - "327.833504 | \n", - "1.0 | \n", - "307.024994 | \n", - "328.415009 | \n", - "307.024994 | \n", - "316.716003 | \n", - "1.041890e+09 | \n", - "0.22 | \n", - "1.660364e+10 | \n", - "6225.0 | \n", - "... | \n", - "0.078931 | \n", - "1.0 | \n", - "-0.050870 | \n", - "-1.0 | \n", - "-0.197827 | \n", - "-1.0 | \n", - "0.146051 | \n", - "1.0 | \n", - "0.464707 | \n", - "1.0 | \n", - "
| 2017-11-15 | \n", - "335.511490 | \n", - "1.0 | \n", - "316.763000 | \n", - "340.177002 | \n", - "316.763000 | \n", - "337.631012 | \n", - "1.069680e+09 | \n", - "0.24 | \n", - "1.670441e+10 | \n", - "6122.0 | \n", - "... | \n", - "0.296356 | \n", - "1.0 | \n", - "0.048023 | \n", - "0.0 | \n", - "0.312147 | \n", - "1.0 | \n", - "0.123785 | \n", - "1.0 | \n", - "0.643684 | \n", - "1.0 | \n", - "
| ... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "... | \n", - "
| 2024-03-28 | \n", - "3534.136902 | \n", - "-1.0 | \n", - "3587.313721 | \n", - "3664.383057 | \n", - "3460.393555 | \n", - "3500.115234 | \n", - "1.875308e+10 | \n", - "11.41 | \n", - "3.981720e+10 | \n", - "6921.0 | \n", - "... | \n", - "0.202080 | \n", - "1.0 | \n", - "0.079012 | \n", - "1.0 | \n", - "0.336437 | \n", - "1.0 | \n", - "0.118715 | \n", - "1.0 | \n", - "0.580385 | \n", - "1.0 | \n", - "
| 2024-03-29 | \n", - "3533.061218 | \n", - "-1.0 | \n", - "3500.216064 | \n", - "3609.705322 | \n", - "3465.332275 | \n", - "3561.293945 | \n", - "1.641967e+10 | \n", - "11.27 | \n", - "3.788605e+10 | \n", - "7028.0 | \n", - "... | \n", - "0.037374 | \n", - "0.0 | \n", - "0.058417 | \n", - "1.0 | \n", - "0.234912 | \n", - "1.0 | \n", - "0.082416 | \n", - "1.0 | \n", - "0.472018 | \n", - "1.0 | \n", - "
| 2024-03-30 | \n", - "3518.939636 | \n", - "-1.0 | \n", - "3561.011719 | \n", - "3583.701416 | \n", - "3475.725586 | \n", - "3511.806152 | \n", - "1.271270e+10 | \n", - "8.62 | \n", - "2.908396e+10 | \n", - "7122.0 | \n", - "... | \n", - "0.118291 | \n", - "1.0 | \n", - "0.087957 | \n", - "1.0 | \n", - "0.330719 | \n", - "1.0 | \n", - "0.104424 | \n", - "1.0 | \n", - "0.490794 | \n", - "1.0 | \n", - "
| 2024-03-31 | \n", - "3579.567444 | \n", - "-1.0 | \n", - "3511.827637 | \n", - "3566.084473 | \n", - "3489.902100 | \n", - "3507.944336 | \n", - "9.389067e+09 | \n", - "7.67 | \n", - "2.502699e+10 | \n", - "7109.0 | \n", - "... | \n", - "0.187781 | \n", - "1.0 | \n", - "0.184344 | \n", - "1.0 | \n", - "0.670342 | \n", - "1.0 | \n", - "0.072131 | \n", - "1.0 | \n", - "0.412178 | \n", - "1.0 | \n", - "
| 2024-04-01 | \n", - "3554.918518 | \n", - "1.0 | \n", - "3507.951660 | \n", - "3655.218994 | \n", - "3507.242676 | \n", - "3647.856445 | \n", - "1.049988e+10 | \n", - "7.58 | \n", - "2.375656e+10 | \n", - "7106.0 | \n", - "... | \n", - "0.075188 | \n", - "1.0 | \n", - "0.030599 | \n", - "0.0 | \n", - "0.091797 | \n", - "1.0 | \n", - "0.132684 | \n", - "1.0 | \n", - "0.597076 | \n", - "1.0 | \n", - "
2334 rows × 64 columns
\n", - "| \n", - " | ETH_D_AvgPrc | \n", - "
|---|---|
| Date | \n", - "\n", - " |
| 2017-11-11 | \n", - "307.727997 | \n", - "
| 2017-11-12 | \n", - "310.066002 | \n", - "
| 2017-11-13 | \n", - "314.795250 | \n", - "
| 2017-11-14 | \n", - "327.833504 | \n", - "
| 2017-11-15 | \n", - "335.511490 | \n", - "
| ... | \n", - "... | \n", - "
| 2024-03-28 | \n", - "3534.136902 | \n", - "
| 2024-03-29 | \n", - "3533.061218 | \n", - "
| 2024-03-30 | \n", - "3518.939636 | \n", - "
| 2024-03-31 | \n", - "3579.567444 | \n", - "
| 2024-04-01 | \n", - "3554.918518 | \n", - "
2334 rows × 1 columns
\n", - "