From 46882406becc1407869267c622512be9279056ec Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 09:47:22 +0200 Subject: [PATCH 01/23] Update Datahandlers to work with trades data as dataframes --- freqtrade/data/history/featherdatahandler.py | 6 +++--- freqtrade/data/history/hdf5datahandler.py | 8 ++++---- freqtrade/data/history/history_utils.py | 2 +- freqtrade/data/history/idatahandler.py | 16 +++++++++++----- freqtrade/data/history/jsondatahandler.py | 9 +++++---- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/freqtrade/data/history/featherdatahandler.py b/freqtrade/data/history/featherdatahandler.py index 28a12fb29..e32f339a5 100644 --- a/freqtrade/data/history/featherdatahandler.py +++ b/freqtrade/data/history/featherdatahandler.py @@ -104,13 +104,13 @@ class FeatherDataHandler(IDataHandler): """ raise NotImplementedError() - def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: + def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> DataFrame: """ Load a pair from file, either .json.gz or .json # TODO: respect timerange ... :param pair: Load trades for this pair :param timerange: Timerange to load trades for - currently not implemented - :return: List of trades + :return: Dataframe containing trades """ filename = self._pair_trades_filename(self._datadir, pair) if not filename.exists(): @@ -118,7 +118,7 @@ class FeatherDataHandler(IDataHandler): tradesdata = read_feather(filename) - return tradesdata.values.tolist() + return tradesdata @classmethod def _get_file_extension(cls): diff --git a/freqtrade/data/history/hdf5datahandler.py b/freqtrade/data/history/hdf5datahandler.py index fd46115de..c9e546eab 100644 --- a/freqtrade/data/history/hdf5datahandler.py +++ b/freqtrade/data/history/hdf5datahandler.py @@ -124,18 +124,18 @@ class HDF5DataHandler(IDataHandler): """ raise NotImplementedError() - def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: + def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> pd.DataFrame: """ Load a pair from h5 file. :param pair: Load trades for this pair :param timerange: Timerange to load trades for - currently not implemented - :return: List of trades + :return: Dataframe containing trades """ key = self._pair_trades_key(pair) filename = self._pair_trades_filename(self._datadir, pair) if not filename.exists(): - return [] + return pd.DataFrame(columns=DEFAULT_TRADES_COLUMNS) where = [] if timerange: if timerange.starttype == 'date': @@ -145,7 +145,7 @@ class HDF5DataHandler(IDataHandler): trades: pd.DataFrame = pd.read_hdf(filename, key=key, mode="r", where=where) trades[['id', 'type']] = trades[['id', 'type']].replace({np.nan: None}) - return trades.values.tolist() + return trades @classmethod def _get_file_extension(cls): diff --git a/freqtrade/data/history/history_utils.py b/freqtrade/data/history/history_utils.py index 1a500d65c..6e0cfa43e 100644 --- a/freqtrade/data/history/history_utils.py +++ b/freqtrade/data/history/history_utils.py @@ -343,7 +343,7 @@ def _download_trades_history(exchange: Exchange, if timerange.stoptype == 'date': until = timerange.stopts * 1000 - trades = data_handler.trades_load(pair) + trades = data_handler.trades_load_aslist(pair) # TradesList columns are defined in constants.DEFAULT_TRADES_COLUMNS # DEFAULT_TRADES_COLUMNS: 0 -> timestamp diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index 698c7e267..e822808e8 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -11,7 +11,7 @@ from datetime import datetime, timezone from pathlib import Path from typing import List, Optional, Tuple, Type -from pandas import DataFrame +from pandas import DataFrame, to_datetime from freqtrade import misc from freqtrade.configuration import TimeRange @@ -188,12 +188,12 @@ class IDataHandler(ABC): """ @abstractmethod - def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: + def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> DataFrame: """ Load a pair from file, either .json.gz or .json :param pair: Load trades for this pair :param timerange: Timerange to load trades for - currently not implemented - :return: List of trades + :return: Dataframe containing trades """ def trades_purge(self, pair: str) -> bool: @@ -208,7 +208,7 @@ class IDataHandler(ABC): return True return False - def trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: + def trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> DataFrame: """ Load a pair from file, either .json.gz or .json Removes duplicates in the process. @@ -216,7 +216,13 @@ class IDataHandler(ABC): :param timerange: Timerange to load trades for - currently not implemented :return: List of trades """ - return trades_remove_duplicates(self._trades_load(pair, timerange=timerange)) + trades = trades_remove_duplicates(self._trades_load(pair, timerange=timerange)) + trades['timestamp'] = to_datetime(trades['timestamp'], unit='ms', utc=True) + return trades + + def trades_load_aslist(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: + trades = self.trades_load(pair, timerange) + return trades.values.tolist() @classmethod def create_dir_if_needed(cls, datadir: Path): diff --git a/freqtrade/data/history/jsondatahandler.py b/freqtrade/data/history/jsondatahandler.py index ed7a33f8e..122257754 100644 --- a/freqtrade/data/history/jsondatahandler.py +++ b/freqtrade/data/history/jsondatahandler.py @@ -6,7 +6,7 @@ from pandas import DataFrame, read_json, to_datetime from freqtrade import misc from freqtrade.configuration import TimeRange -from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, TradeList +from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS, TradeList from freqtrade.data.converter import trades_dict_to_list from freqtrade.enums import CandleType @@ -113,13 +113,13 @@ class JsonDataHandler(IDataHandler): """ raise NotImplementedError() - def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: + def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> DataFrame: """ Load a pair from file, either .json.gz or .json # TODO: respect timerange ... :param pair: Load trades for this pair :param timerange: Timerange to load trades for - currently not implemented - :return: List of trades + :return: Dataframe containing trades """ filename = self._pair_trades_filename(self._datadir, pair) tradesdata = misc.file_load_json(filename) @@ -132,7 +132,8 @@ class JsonDataHandler(IDataHandler): logger.info("Old trades format detected - converting") tradesdata = trades_dict_to_list(tradesdata) pass - return tradesdata + trades = DataFrame(tradesdata, columns=DEFAULT_TRADES_COLUMNS) + return trades @classmethod def _get_file_extension(cls): From ac80a69142825baa0c9c33c5b4cfc66226ecacb0 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 09:47:58 +0200 Subject: [PATCH 02/23] Update converters for trades dataframe handling --- freqtrade/data/converter.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index 0eb6faf77..df2d3bdc4 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -195,15 +195,14 @@ def order_book_to_dataframe(bids: list, asks: list) -> DataFrame: return frame -def trades_remove_duplicates(trades: List[List]) -> List[List]: +def trades_remove_duplicates(trades: pd.DataFrame) -> pd.DataFrame: """ - Removes duplicates from the trades list. - Uses itertools.groupby to avoid converting to pandas. - Tests show it as being pretty efficient on lists of 4M Lists. - :param trades: List of Lists with constants.DEFAULT_TRADES_COLUMNS as columns - :return: same format as above, but with duplicates removed + Removes duplicates from the trades DataFrame. + Uses pandas.DataFrame.drop_duplicates to remove duplicates based on the 'timestamp' column. + :param trades: DataFrame with the columns constants.DEFAULT_TRADES_COLUMNS + :return: DataFrame with duplicates removed based on the 'timestamp' column """ - return [i for i, _ in itertools.groupby(sorted(trades, key=itemgetter(0)))] + return trades.drop_duplicates(subset=['timestamp']) def trades_dict_to_list(trades: List[Dict]) -> TradeList: @@ -215,7 +214,7 @@ def trades_dict_to_list(trades: List[Dict]) -> TradeList: return [[t[col] for col in DEFAULT_TRADES_COLUMNS] for t in trades] -def trades_to_ohlcv(trades: TradeList, timeframe: str) -> DataFrame: +def trades_to_ohlcv(trades: DataFrame, timeframe: str) -> DataFrame: """ Converts trades list to OHLCV list :param trades: List of trades, as returned by ccxt.fetch_trades. @@ -225,12 +224,9 @@ def trades_to_ohlcv(trades: TradeList, timeframe: str) -> DataFrame: """ from freqtrade.exchange import timeframe_to_minutes timeframe_minutes = timeframe_to_minutes(timeframe) - if not trades: + if trades.empty: raise ValueError('Trade-list empty.') - df = pd.DataFrame(trades, columns=DEFAULT_TRADES_COLUMNS) - df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms', - utc=True,) - df = df.set_index('timestamp') + df = trades.set_index('timestamp') df_new = df['price'].resample(f'{timeframe_minutes}min').ohlc() df_new['volume'] = df['amount'].resample(f'{timeframe_minutes}min').sum() From 7ac9d33c31ad0c3dd6fc6d747c7339d96fdd8e18 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 09:52:28 +0200 Subject: [PATCH 03/23] Default should return a dataframe, not an empty list. --- freqtrade/data/history/featherdatahandler.py | 2 +- freqtrade/data/history/jsondatahandler.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/freqtrade/data/history/featherdatahandler.py b/freqtrade/data/history/featherdatahandler.py index e32f339a5..70d36628d 100644 --- a/freqtrade/data/history/featherdatahandler.py +++ b/freqtrade/data/history/featherdatahandler.py @@ -114,7 +114,7 @@ class FeatherDataHandler(IDataHandler): """ filename = self._pair_trades_filename(self._datadir, pair) if not filename.exists(): - return [] + return DataFrame(columns=DEFAULT_TRADES_COLUMNS) tradesdata = read_feather(filename) diff --git a/freqtrade/data/history/jsondatahandler.py b/freqtrade/data/history/jsondatahandler.py index 122257754..cd40da316 100644 --- a/freqtrade/data/history/jsondatahandler.py +++ b/freqtrade/data/history/jsondatahandler.py @@ -125,7 +125,7 @@ class JsonDataHandler(IDataHandler): tradesdata = misc.file_load_json(filename) if not tradesdata: - return [] + return DataFrame(columns=DEFAULT_TRADES_COLUMNS) if isinstance(tradesdata[0], dict): # Convert trades dict to list From a595074754b4888c514352e3f5f4ad06e624b7d0 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 09:56:31 +0200 Subject: [PATCH 04/23] Update test for new trades handling --- tests/conftest.py | 7 +++++++ tests/data/test_converter.py | 19 ++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 3d4f1e1e3..5b5c8514f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2349,6 +2349,13 @@ def trades_history(): [1565798399872, '1261aa81333', None, 'sell', 0.019626, 0.011, 0.00021588599999999999]] +@pytest.fixture(scope="function") +def trades_history_df(trades_history): + trades = pd.DataFrame(trades_history, columns=constants.DEFAULT_TRADES_COLUMNS) + trades['timestamp'] = pd.to_datetime(trades['timestamp'], unit='ms', utc=True) + return trades + + @pytest.fixture(scope="function") def fetch_trades_result(): return [{'info': {'a': 126181329, diff --git a/tests/data/test_converter.py b/tests/data/test_converter.py index f23a85501..a701e2f07 100644 --- a/tests/data/test_converter.py +++ b/tests/data/test_converter.py @@ -4,6 +4,7 @@ from pathlib import Path from shutil import copyfile import numpy as np +import pandas as pd import pytest from freqtrade.configuration.timerange import TimeRange @@ -34,13 +35,13 @@ def test_ohlcv_to_dataframe(ohlcv_history_list, caplog): assert log_has('Converting candle (OHLCV) data to dataframe for pair UNITTEST/BTC.', caplog) -def test_trades_to_ohlcv(trades_history, caplog): +def test_trades_to_ohlcv(trades_history_df, caplog): caplog.set_level(logging.DEBUG) with pytest.raises(ValueError, match="Trade-list empty."): - trades_to_ohlcv([], '1m') + trades_to_ohlcv(pd.DataFrame(columns=trades_history_df.columns), '1m') - df = trades_to_ohlcv(trades_history, '1m') + df = trades_to_ohlcv(trades_history_df, '1m') assert not df.empty assert len(df) == 1 assert 'open' in df.columns @@ -297,13 +298,13 @@ def test_trim_dataframe(testdatadir) -> None: assert all(data_modify.iloc[0] == data.iloc[25]) -def test_trades_remove_duplicates(trades_history): - trades_history1 = trades_history * 3 - assert len(trades_history1) == len(trades_history) * 3 +def test_trades_remove_duplicates(trades_history_df): + trades_history1 = pd.concat([trades_history_df, trades_history_df, trades_history_df] + ).reset_index(drop=True) + assert len(trades_history1) == len(trades_history_df) * 3 res = trades_remove_duplicates(trades_history1) - assert len(res) == len(trades_history) - for i, t in enumerate(res): - assert t == trades_history[i] + assert len(res) == len(trades_history_df) + assert res.equals(trades_history_df) def test_trades_dict_to_list(fetch_trades_result): From 02ee7f8b5bb7cd3daa6286ad6dd08c9e5934f509 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 16:05:47 +0200 Subject: [PATCH 05/23] Update further tests --- tests/data/test_datahandler.py | 36 +++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/tests/data/test_datahandler.py b/tests/data/test_datahandler.py index 5c7cd95b8..36e69f4f8 100644 --- a/tests/data/test_datahandler.py +++ b/tests/data/test_datahandler.py @@ -6,7 +6,7 @@ from pathlib import Path from unittest.mock import MagicMock import pytest -from pandas import DataFrame +from pandas import DataFrame, Timestamp from freqtrade.configuration import TimeRange from freqtrade.constants import AVAILABLE_DATAHANDLERS @@ -303,39 +303,42 @@ def test_hdf5datahandler_trades_get_pairs(testdatadir): def test_hdf5datahandler_trades_load(testdatadir): dh = get_datahandler(testdatadir, 'hdf5') trades = dh.trades_load('XRP/ETH') - assert isinstance(trades, list) + assert isinstance(trades, DataFrame) trades1 = dh.trades_load('UNITTEST/NONEXIST') - assert trades1 == [] + assert isinstance(trades1, DataFrame) + assert trades1.empty # data goes from 2019-10-11 - 2019-10-13 timerange = TimeRange.parse_timerange('20191011-20191012') trades2 = dh._trades_load('XRP/ETH', timerange) assert len(trades) > len(trades2) # Check that ID is None (If it's nan, it's wrong) - assert trades2[0][2] is None + assert trades2.iloc[0]['type'] is None # unfiltered load has trades before starttime - assert len([t for t in trades if t[0] < timerange.startts * 1000]) >= 0 + + assert len(trades.loc[trades['timestamp'] < timerange.startdt]) >= 0 # filtered list does not have trades before starttime - assert len([t for t in trades2 if t[0] < timerange.startts * 1000]) == 0 + assert len(trades2.loc[trades2['timestamp'] < timerange.startts * 1000]) == 0 # unfiltered load has trades after endtime - assert len([t for t in trades if t[0] > timerange.stopts * 1000]) > 0 + assert len(trades.loc[trades['timestamp'] > timerange.stopdt]) >= 0 # filtered list does not have trades after endtime - assert len([t for t in trades2 if t[0] > timerange.stopts * 1000]) == 0 + assert len(trades2.loc[trades2['timestamp'] > timerange.stopts * 1000]) == 0 + # assert len([t for t in trades2 if t[0] > timerange.stopts * 1000]) == 0 def test_hdf5datahandler_trades_store(testdatadir, tmpdir): tmpdir1 = Path(tmpdir) dh = get_datahandler(testdatadir, 'hdf5') - trades = dh.trades_load('XRP/ETH') + trades = dh.trades_load_aslist('XRP/ETH') dh1 = get_datahandler(tmpdir1, 'hdf5') dh1.trades_store('XRP/NEW', trades) file = tmpdir1 / 'XRP_NEW-trades.h5' assert file.is_file() # Load trades back - trades_new = dh1.trades_load('XRP/NEW') + trades_new = dh1.trades_load_aslist('XRP/NEW') assert len(trades_new) == len(trades) assert trades[0][0] == trades_new[0][0] @@ -493,25 +496,26 @@ def test_hdf5datahandler_ohlcv_purge(mocker, testdatadir): def test_featherdatahandler_trades_load(testdatadir): dh = get_datahandler(testdatadir, 'feather') trades = dh.trades_load('XRP/ETH') - assert isinstance(trades, list) - assert trades[0][0] == 1570752011620 - assert trades[-1][-1] == 0.1986231 + assert isinstance(trades, DataFrame) + assert trades.iloc[0]['timestamp'] == Timestamp('2019-10-11 00:00:11.620000+0000') + assert trades.iloc[-1]['cost'] == 0.1986231 trades1 = dh.trades_load('UNITTEST/NONEXIST') - assert trades1 == [] + assert isinstance(trades, DataFrame) + assert trades1.empty def test_featherdatahandler_trades_store(testdatadir, tmpdir): tmpdir1 = Path(tmpdir) dh = get_datahandler(testdatadir, 'feather') - trades = dh.trades_load('XRP/ETH') + trades = dh.trades_load_aslist('XRP/ETH') dh1 = get_datahandler(tmpdir1, 'feather') dh1.trades_store('XRP/NEW', trades) file = tmpdir1 / 'XRP_NEW-trades.feather' assert file.is_file() # Load trades back - trades_new = dh1.trades_load('XRP/NEW') + trades_new = dh1.trades_load_aslist('XRP/NEW') assert len(trades_new) == len(trades) assert trades[0][0] == trades_new[0][0] From 53db254cba09609de9dcd2ab15e37f9560ca8491 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 17:22:02 +0200 Subject: [PATCH 06/23] don't cascade calls, that creates an additional call --- freqtrade/data/converter.py | 2 +- freqtrade/data/history/idatahandler.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index df2d3bdc4..c71f7795c 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -253,7 +253,7 @@ def convert_trades_format(config: Config, convert_from: str, convert_to: str, er logger.info(f"Converting trades for {config['pairs']}") for pair in config['pairs']: - data = src.trades_load(pair=pair) + data = src.trades_load_aslist(pair=pair) logger.info(f"Converting {len(data)} trades for {pair}") trg.trades_store(pair, data) if erase and convert_from != convert_to: diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index e822808e8..4618dfdeb 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -221,7 +221,7 @@ class IDataHandler(ABC): return trades def trades_load_aslist(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: - trades = self.trades_load(pair, timerange) + trades = trades_remove_duplicates(self._trades_load(pair, timerange=timerange)) return trades.values.tolist() @classmethod From 0be2250cf525f51122cc8a203e45cbb4c404044e Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 17:22:17 +0200 Subject: [PATCH 07/23] Keep existing trades_remove_duplicates for now --- freqtrade/data/converter.py | 13 ++++++++++++- freqtrade/data/history/idatahandler.py | 7 ++++--- tests/data/test_converter.py | 18 ++++++++++++++---- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index c71f7795c..cd5719326 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -195,7 +195,18 @@ def order_book_to_dataframe(bids: list, asks: list) -> DataFrame: return frame -def trades_remove_duplicates(trades: pd.DataFrame) -> pd.DataFrame: +def trades_remove_duplicates(trades: List[List]) -> List[List]: + """ + Removes duplicates from the trades list. + Uses itertools.groupby to avoid converting to pandas. + Tests show it as being pretty efficient on lists of 4M Lists. + :param trades: List of Lists with constants.DEFAULT_TRADES_COLUMNS as columns + :return: same format as above, but with duplicates removed + """ + return [i for i, _ in itertools.groupby(sorted(trades, key=itemgetter(0)))] + + +def trades_df_remove_duplicates(trades: pd.DataFrame) -> pd.DataFrame: """ Removes duplicates from the trades DataFrame. Uses pandas.DataFrame.drop_duplicates to remove duplicates based on the 'timestamp' column. diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index 4618dfdeb..a11c79bd9 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -16,7 +16,8 @@ from pandas import DataFrame, to_datetime from freqtrade import misc from freqtrade.configuration import TimeRange from freqtrade.constants import ListPairsWithTimeframes, TradeList -from freqtrade.data.converter import clean_ohlcv_dataframe, trades_remove_duplicates, trim_dataframe +from freqtrade.data.converter import (clean_ohlcv_dataframe, trades_df_remove_duplicates, + trim_dataframe) from freqtrade.enums import CandleType, TradingMode from freqtrade.exchange import timeframe_to_seconds @@ -216,12 +217,12 @@ class IDataHandler(ABC): :param timerange: Timerange to load trades for - currently not implemented :return: List of trades """ - trades = trades_remove_duplicates(self._trades_load(pair, timerange=timerange)) + trades = trades_df_remove_duplicates(self._trades_load(pair, timerange=timerange)) trades['timestamp'] = to_datetime(trades['timestamp'], unit='ms', utc=True) return trades def trades_load_aslist(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: - trades = trades_remove_duplicates(self._trades_load(pair, timerange=timerange)) + trades = trades_df_remove_duplicates(self._trades_load(pair, timerange=timerange)) return trades.values.tolist() @classmethod diff --git a/tests/data/test_converter.py b/tests/data/test_converter.py index a701e2f07..9f733f316 100644 --- a/tests/data/test_converter.py +++ b/tests/data/test_converter.py @@ -10,8 +10,9 @@ import pytest from freqtrade.configuration.timerange import TimeRange from freqtrade.data.converter import (convert_ohlcv_format, convert_trades_format, ohlcv_fill_up_missing_data, ohlcv_to_dataframe, - reduce_dataframe_footprint, trades_dict_to_list, - trades_remove_duplicates, trades_to_ohlcv, trim_dataframe) + reduce_dataframe_footprint, trades_df_remove_duplicates, + trades_dict_to_list, trades_remove_duplicates, + trades_to_ohlcv, trim_dataframe) from freqtrade.data.history import (get_timerange, load_data, load_pair_history, validate_backtest_data) from freqtrade.data.history.idatahandler import IDataHandler @@ -298,11 +299,20 @@ def test_trim_dataframe(testdatadir) -> None: assert all(data_modify.iloc[0] == data.iloc[25]) -def test_trades_remove_duplicates(trades_history_df): +def test_trades_remove_duplicates(trades_history): + trades_history1 = trades_history * 3 + assert len(trades_history1) == len(trades_history) * 3 + res = trades_remove_duplicates(trades_history1) + assert len(res) == len(trades_history) + for i, t in enumerate(res): + assert t == trades_history[i] + + +def test_trades_df_remove_duplicates(trades_history_df): trades_history1 = pd.concat([trades_history_df, trades_history_df, trades_history_df] ).reset_index(drop=True) assert len(trades_history1) == len(trades_history_df) * 3 - res = trades_remove_duplicates(trades_history1) + res = trades_df_remove_duplicates(trades_history1) assert len(res) == len(trades_history_df) assert res.equals(trades_history_df) From 5d5cc719450f597c706148edfad11f793875c7e5 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 17:53:08 +0200 Subject: [PATCH 08/23] Fix pandas duplication detection, improve test --- freqtrade/data/converter.py | 2 +- tests/data/test_history.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index cd5719326..d2943f450 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -213,7 +213,7 @@ def trades_df_remove_duplicates(trades: pd.DataFrame) -> pd.DataFrame: :param trades: DataFrame with the columns constants.DEFAULT_TRADES_COLUMNS :return: DataFrame with duplicates removed based on the 'timestamp' column """ - return trades.drop_duplicates(subset=['timestamp']) + return trades.drop_duplicates(subset=['timestamp', 'id']) def trades_dict_to_list(trades: List[Dict]) -> TradeList: diff --git a/tests/data/test_history.py b/tests/data/test_history.py index 417f984ca..931365c78 100644 --- a/tests/data/test_history.py +++ b/tests/data/test_history.py @@ -651,10 +651,10 @@ def test_convert_trades_to_ohlcv(testdatadir, tmpdir, caplog): assert_frame_equal(dfbak_1m, df_1m, check_exact=True) assert_frame_equal(dfbak_5m, df_5m, check_exact=True) - - assert not log_has('Could not convert NoDatapair to OHLCV.', caplog) + msg = 'Could not convert NoDatapair to OHLCV.' + assert not log_has(msg, caplog) convert_trades_to_ohlcv(['NoDatapair'], timeframes=['1m', '5m'], data_format_trades='jsongz', datadir=tmpdir1, timerange=tr, erase=True) - assert log_has('Could not convert NoDatapair to OHLCV.', caplog) + assert log_has(msg, caplog) From 780f2389048cfa714b03e34f9aad31768a5b53d0 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 18:04:13 +0200 Subject: [PATCH 09/23] Fix trades duplicates if trade id is different --- freqtrade/data/converter.py | 2 +- tests/conftest.py | 3 ++- tests/data/test_history.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index d2943f450..bddf311c6 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -203,7 +203,7 @@ def trades_remove_duplicates(trades: List[List]) -> List[List]: :param trades: List of Lists with constants.DEFAULT_TRADES_COLUMNS as columns :return: same format as above, but with duplicates removed """ - return [i for i, _ in itertools.groupby(sorted(trades, key=itemgetter(0)))] + return [i for i, _ in itertools.groupby(sorted(trades, key=itemgetter(0, 1)))] def trades_df_remove_duplicates(trades: pd.DataFrame) -> pd.DataFrame: diff --git a/tests/conftest.py b/tests/conftest.py index 5b5c8514f..4d0377796 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2346,7 +2346,8 @@ def trades_history(): [1565798399629, '1261813bb30', None, 'buy', 0.019627, 0.244, 0.004788987999999999], [1565798399752, '1261813cc31', None, 'sell', 0.019626, 0.011, 0.00021588599999999999], [1565798399862, '126181cc332', None, 'sell', 0.019626, 0.011, 0.00021588599999999999], - [1565798399872, '1261aa81333', None, 'sell', 0.019626, 0.011, 0.00021588599999999999]] + [1565798399862, '126181cc333', None, 'sell', 0.019626, 0.012, 0.00021588599999999999], + [1565798399872, '1261aa81334', None, 'sell', 0.019626, 0.011, 0.00021588599999999999]] @pytest.fixture(scope="function") diff --git a/tests/data/test_history.py b/tests/data/test_history.py index 931365c78..32b57d0cf 100644 --- a/tests/data/test_history.py +++ b/tests/data/test_history.py @@ -581,7 +581,7 @@ def test_download_trades_history(trades_history, mocker, default_conf, testdatad assert _download_trades_history(data_handler=data_handler, exchange=exchange, pair='ETH/BTC') - assert log_has("New Amount of trades: 5", caplog) + assert log_has("New Amount of trades: 6", caplog) assert file1.is_file() ght_mock.reset_mock() From 6fc1ee9831c4caf3489f7d5c65511543c439f58e Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 18:06:25 +0200 Subject: [PATCH 10/23] trades_append should use dataframe, not lists --- freqtrade/data/history/featherdatahandler.py | 4 ++-- freqtrade/data/history/hdf5datahandler.py | 4 ++-- freqtrade/data/history/idatahandler.py | 4 ++-- freqtrade/data/history/jsondatahandler.py | 4 ++-- freqtrade/data/history/parquetdatahandler.py | 4 ++-- tests/data/test_datahandler.py | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/freqtrade/data/history/featherdatahandler.py b/freqtrade/data/history/featherdatahandler.py index 70d36628d..b8efe6d02 100644 --- a/freqtrade/data/history/featherdatahandler.py +++ b/freqtrade/data/history/featherdatahandler.py @@ -95,11 +95,11 @@ class FeatherDataHandler(IDataHandler): tradesdata = DataFrame(data, columns=DEFAULT_TRADES_COLUMNS) tradesdata.to_feather(filename, compression_level=9, compression='lz4') - def trades_append(self, pair: str, data: TradeList): + def trades_append(self, pair: str, data: DataFrame): """ Append data to existing files :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ raise NotImplementedError() diff --git a/freqtrade/data/history/hdf5datahandler.py b/freqtrade/data/history/hdf5datahandler.py index c9e546eab..38747ed5f 100644 --- a/freqtrade/data/history/hdf5datahandler.py +++ b/freqtrade/data/history/hdf5datahandler.py @@ -115,11 +115,11 @@ class HDF5DataHandler(IDataHandler): format='table', data_columns=['timestamp'] ) - def trades_append(self, pair: str, data: TradeList): + def trades_append(self, pair: str, data: pd.DataFrame): """ Append data to existing files :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ raise NotImplementedError() diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index a11c79bd9..fe2bb1427 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -180,11 +180,11 @@ class IDataHandler(ABC): """ @abstractmethod - def trades_append(self, pair: str, data: TradeList): + def trades_append(self, pair: str, data: DataFrame): """ Append data to existing files :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ diff --git a/freqtrade/data/history/jsondatahandler.py b/freqtrade/data/history/jsondatahandler.py index cd40da316..4e0a5dc1a 100644 --- a/freqtrade/data/history/jsondatahandler.py +++ b/freqtrade/data/history/jsondatahandler.py @@ -104,11 +104,11 @@ class JsonDataHandler(IDataHandler): filename = self._pair_trades_filename(self._datadir, pair) misc.file_dump_json(filename, data, is_zip=self._use_zip) - def trades_append(self, pair: str, data: TradeList): + def trades_append(self, pair: str, data: DataFrame): """ Append data to existing files :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ raise NotImplementedError() diff --git a/freqtrade/data/history/parquetdatahandler.py b/freqtrade/data/history/parquetdatahandler.py index e6b2481d2..085ff8be6 100644 --- a/freqtrade/data/history/parquetdatahandler.py +++ b/freqtrade/data/history/parquetdatahandler.py @@ -95,11 +95,11 @@ class ParquetDataHandler(IDataHandler): # array # feather.write_feather(data, filename) - def trades_append(self, pair: str, data: TradeList): + def trades_append(self, pair: str, data: DataFrame): """ Append data to existing files :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ raise NotImplementedError() diff --git a/tests/data/test_datahandler.py b/tests/data/test_datahandler.py index 36e69f4f8..b0c2149d4 100644 --- a/tests/data/test_datahandler.py +++ b/tests/data/test_datahandler.py @@ -291,7 +291,7 @@ def test_datahandler_ohlcv_append(datahandler, testdatadir, ): def test_datahandler_trades_append(datahandler, testdatadir): dh = get_datahandler(testdatadir, datahandler) with pytest.raises(NotImplementedError): - dh.trades_append('UNITTEST/ETH', []) + dh.trades_append('UNITTEST/ETH', DataFrame()) def test_hdf5datahandler_trades_get_pairs(testdatadir): From 357b04202cd2d778f42e5bfb564f9c92c5777a8d Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 17 Aug 2023 19:45:40 +0200 Subject: [PATCH 11/23] Datahandlers should store data from dataframes --- freqtrade/data/converter.py | 2 +- freqtrade/data/history/featherdatahandler.py | 9 ++--- freqtrade/data/history/hdf5datahandler.py | 8 ++-- freqtrade/data/history/idatahandler.py | 4 +- freqtrade/data/history/jsondatahandler.py | 10 +++-- freqtrade/data/history/parquetdatahandler.py | 4 +- tests/data/test_datahandler.py | 41 ++++---------------- 7 files changed, 27 insertions(+), 51 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index bddf311c6..3c9e78132 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -264,7 +264,7 @@ def convert_trades_format(config: Config, convert_from: str, convert_to: str, er logger.info(f"Converting trades for {config['pairs']}") for pair in config['pairs']: - data = src.trades_load_aslist(pair=pair) + data = src.trades_load(pair=pair) logger.info(f"Converting {len(data)} trades for {pair}") trg.trades_store(pair, data) if erase and convert_from != convert_to: diff --git a/freqtrade/data/history/featherdatahandler.py b/freqtrade/data/history/featherdatahandler.py index b8efe6d02..b70bb5720 100644 --- a/freqtrade/data/history/featherdatahandler.py +++ b/freqtrade/data/history/featherdatahandler.py @@ -4,7 +4,7 @@ from typing import Optional from pandas import DataFrame, read_feather, to_datetime from freqtrade.configuration import TimeRange -from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS, TradeList +from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS from freqtrade.enums import CandleType from .idatahandler import IDataHandler @@ -82,18 +82,17 @@ class FeatherDataHandler(IDataHandler): """ raise NotImplementedError() - def trades_store(self, pair: str, data: TradeList) -> None: + def trades_store(self, pair: str, data: DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ filename = self._pair_trades_filename(self._datadir, pair) self.create_dir_if_needed(filename) - tradesdata = DataFrame(data, columns=DEFAULT_TRADES_COLUMNS) - tradesdata.to_feather(filename, compression_level=9, compression='lz4') + data.to_feather(filename, compression_level=9, compression='lz4') def trades_append(self, pair: str, data: DataFrame): """ diff --git a/freqtrade/data/history/hdf5datahandler.py b/freqtrade/data/history/hdf5datahandler.py index 38747ed5f..0ddbc0b3b 100644 --- a/freqtrade/data/history/hdf5datahandler.py +++ b/freqtrade/data/history/hdf5datahandler.py @@ -5,7 +5,7 @@ import numpy as np import pandas as pd from freqtrade.configuration import TimeRange -from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS, TradeList +from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS from freqtrade.enums import CandleType from .idatahandler import IDataHandler @@ -100,16 +100,16 @@ class HDF5DataHandler(IDataHandler): """ raise NotImplementedError() - def trades_store(self, pair: str, data: TradeList) -> None: + def trades_store(self, pair: str, data: pd.DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ key = self._pair_trades_key(pair) - pd.DataFrame(data, columns=DEFAULT_TRADES_COLUMNS).to_hdf( + data.to_hdf( self._pair_trades_filename(self._datadir, pair), key, mode='a', complevel=9, complib='blosc', format='table', data_columns=['timestamp'] diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index fe2bb1427..5e940134c 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -171,11 +171,11 @@ class IDataHandler(ABC): return [cls.rebuild_pair_from_filename(match[0]) for match in _tmp if match] @abstractmethod - def trades_store(self, pair: str, data: TradeList) -> None: + def trades_store(self, pair: str, data: DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ diff --git a/freqtrade/data/history/jsondatahandler.py b/freqtrade/data/history/jsondatahandler.py index 4e0a5dc1a..b6f5a5131 100644 --- a/freqtrade/data/history/jsondatahandler.py +++ b/freqtrade/data/history/jsondatahandler.py @@ -6,7 +6,7 @@ from pandas import DataFrame, read_json, to_datetime from freqtrade import misc from freqtrade.configuration import TimeRange -from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS, TradeList +from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS from freqtrade.data.converter import trades_dict_to_list from freqtrade.enums import CandleType @@ -94,15 +94,17 @@ class JsonDataHandler(IDataHandler): """ raise NotImplementedError() - def trades_store(self, pair: str, data: TradeList) -> None: + def trades_store(self, pair: str, data: DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ filename = self._pair_trades_filename(self._datadir, pair) - misc.file_dump_json(filename, data, is_zip=self._use_zip) + data.loc[:, 'timestamp'] = data.loc[:, 'timestamp'].view(np.int64) // 1000 // 1000 + trades = data[DEFAULT_TRADES_COLUMNS].values.tolist() + misc.file_dump_json(filename, trades, is_zip=self._use_zip) def trades_append(self, pair: str, data: DataFrame): """ diff --git a/freqtrade/data/history/parquetdatahandler.py b/freqtrade/data/history/parquetdatahandler.py index 085ff8be6..254fa0df4 100644 --- a/freqtrade/data/history/parquetdatahandler.py +++ b/freqtrade/data/history/parquetdatahandler.py @@ -81,11 +81,11 @@ class ParquetDataHandler(IDataHandler): """ raise NotImplementedError() - def trades_store(self, pair: str, data: TradeList) -> None: + def trades_store(self, pair: str, data: DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename - :param data: List of Lists containing trade data, + :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ # filename = self._pair_trades_filename(self._datadir, pair) diff --git a/tests/data/test_datahandler.py b/tests/data/test_datahandler.py index b0c2149d4..f0c367efe 100644 --- a/tests/data/test_datahandler.py +++ b/tests/data/test_datahandler.py @@ -7,6 +7,7 @@ from unittest.mock import MagicMock import pytest from pandas import DataFrame, Timestamp +from pandas.testing import assert_frame_equal from freqtrade.configuration import TimeRange from freqtrade.constants import AVAILABLE_DATAHANDLERS @@ -331,30 +332,18 @@ def test_hdf5datahandler_trades_load(testdatadir): def test_hdf5datahandler_trades_store(testdatadir, tmpdir): tmpdir1 = Path(tmpdir) dh = get_datahandler(testdatadir, 'hdf5') - trades = dh.trades_load_aslist('XRP/ETH') + trades = dh.trades_load('XRP/ETH') dh1 = get_datahandler(tmpdir1, 'hdf5') dh1.trades_store('XRP/NEW', trades) file = tmpdir1 / 'XRP_NEW-trades.h5' assert file.is_file() # Load trades back - trades_new = dh1.trades_load_aslist('XRP/NEW') + trades_new = dh1.trades_load('XRP/NEW') assert len(trades_new) == len(trades) - assert trades[0][0] == trades_new[0][0] - assert trades[0][1] == trades_new[0][1] - # assert trades[0][2] == trades_new[0][2] # This is nan - so comparison does not make sense - assert trades[0][3] == trades_new[0][3] - assert trades[0][4] == trades_new[0][4] - assert trades[0][5] == trades_new[0][5] - assert trades[0][6] == trades_new[0][6] - assert trades[-1][0] == trades_new[-1][0] - assert trades[-1][1] == trades_new[-1][1] - # assert trades[-1][2] == trades_new[-1][2] # This is nan - so comparison does not make sense - assert trades[-1][3] == trades_new[-1][3] - assert trades[-1][4] == trades_new[-1][4] - assert trades[-1][5] == trades_new[-1][5] - assert trades[-1][6] == trades_new[-1][6] + assert_frame_equal(trades, trades_new, check_exact=True) + assert len(trades_new) == len(trades) def test_hdf5datahandler_trades_purge(mocker, testdatadir): @@ -508,30 +497,16 @@ def test_featherdatahandler_trades_load(testdatadir): def test_featherdatahandler_trades_store(testdatadir, tmpdir): tmpdir1 = Path(tmpdir) dh = get_datahandler(testdatadir, 'feather') - trades = dh.trades_load_aslist('XRP/ETH') + trades = dh.trades_load('XRP/ETH') dh1 = get_datahandler(tmpdir1, 'feather') dh1.trades_store('XRP/NEW', trades) file = tmpdir1 / 'XRP_NEW-trades.feather' assert file.is_file() # Load trades back - trades_new = dh1.trades_load_aslist('XRP/NEW') - + trades_new = dh1.trades_load('XRP/NEW') + assert_frame_equal(trades, trades_new, check_exact=True) assert len(trades_new) == len(trades) - assert trades[0][0] == trades_new[0][0] - assert trades[0][1] == trades_new[0][1] - # assert trades[0][2] == trades_new[0][2] # This is nan - so comparison does not make sense - assert trades[0][3] == trades_new[0][3] - assert trades[0][4] == trades_new[0][4] - assert trades[0][5] == trades_new[0][5] - assert trades[0][6] == trades_new[0][6] - assert trades[-1][0] == trades_new[-1][0] - assert trades[-1][1] == trades_new[-1][1] - # assert trades[-1][2] == trades_new[-1][2] # This is nan - so comparison does not make sense - assert trades[-1][3] == trades_new[-1][3] - assert trades[-1][4] == trades_new[-1][4] - assert trades[-1][5] == trades_new[-1][5] - assert trades[-1][6] == trades_new[-1][6] def test_featherdatahandler_trades_purge(mocker, testdatadir): From d97d0e4426f14c2f3c9b615417fb8ad32868897c Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 07:02:46 +0200 Subject: [PATCH 12/23] Extract trades DF creation to converter function --- freqtrade/data/converter.py | 11 +++++++++++ freqtrade/data/history/jsondatahandler.py | 5 ++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index 3c9e78132..1e80ba13e 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -225,6 +225,17 @@ def trades_dict_to_list(trades: List[Dict]) -> TradeList: return [[t[col] for col in DEFAULT_TRADES_COLUMNS] for t in trades] +def trades_list_to_df(trades: TradeList): + """ + convert trades list to dataframe + :param trades: List of Lists with constants.DEFAULT_TRADES_COLUMNS as columns + """ + if not trades: + return DataFrame(columns=DEFAULT_TRADES_COLUMNS) + df = DataFrame(trades, columns=DEFAULT_TRADES_COLUMNS) + return df + + def trades_to_ohlcv(trades: DataFrame, timeframe: str) -> DataFrame: """ Converts trades list to OHLCV list diff --git a/freqtrade/data/history/jsondatahandler.py b/freqtrade/data/history/jsondatahandler.py index b6f5a5131..f4ef3f74d 100644 --- a/freqtrade/data/history/jsondatahandler.py +++ b/freqtrade/data/history/jsondatahandler.py @@ -7,7 +7,7 @@ from pandas import DataFrame, read_json, to_datetime from freqtrade import misc from freqtrade.configuration import TimeRange from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS -from freqtrade.data.converter import trades_dict_to_list +from freqtrade.data.converter import trades_dict_to_list, trades_list_to_df from freqtrade.enums import CandleType from .idatahandler import IDataHandler @@ -134,8 +134,7 @@ class JsonDataHandler(IDataHandler): logger.info("Old trades format detected - converting") tradesdata = trades_dict_to_list(tradesdata) pass - trades = DataFrame(tradesdata, columns=DEFAULT_TRADES_COLUMNS) - return trades + return trades_list_to_df(tradesdata) @classmethod def _get_file_extension(cls): From 26c89d89e41522f6a2c9c212a1ba3b1434be5a37 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 07:05:42 +0200 Subject: [PATCH 13/23] Keep original timestamp in dataframe --- freqtrade/data/converter.py | 2 +- freqtrade/data/history/idatahandler.py | 2 +- freqtrade/data/history/jsondatahandler.py | 2 +- tests/data/test_datahandler.py | 7 ++++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index 1e80ba13e..69ceed90e 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -248,7 +248,7 @@ def trades_to_ohlcv(trades: DataFrame, timeframe: str) -> DataFrame: timeframe_minutes = timeframe_to_minutes(timeframe) if trades.empty: raise ValueError('Trade-list empty.') - df = trades.set_index('timestamp') + df = trades.set_index('date', drop=True) df_new = df['price'].resample(f'{timeframe_minutes}min').ohlc() df_new['volume'] = df['amount'].resample(f'{timeframe_minutes}min').sum() diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index 5e940134c..db0f7ade7 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -218,7 +218,7 @@ class IDataHandler(ABC): :return: List of trades """ trades = trades_df_remove_duplicates(self._trades_load(pair, timerange=timerange)) - trades['timestamp'] = to_datetime(trades['timestamp'], unit='ms', utc=True) + trades['date'] = to_datetime(trades['timestamp'], unit='ms', utc=True) return trades def trades_load_aslist(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: diff --git a/freqtrade/data/history/jsondatahandler.py b/freqtrade/data/history/jsondatahandler.py index f4ef3f74d..1ca83e0be 100644 --- a/freqtrade/data/history/jsondatahandler.py +++ b/freqtrade/data/history/jsondatahandler.py @@ -102,7 +102,7 @@ class JsonDataHandler(IDataHandler): column sequence as in DEFAULT_TRADES_COLUMNS """ filename = self._pair_trades_filename(self._datadir, pair) - data.loc[:, 'timestamp'] = data.loc[:, 'timestamp'].view(np.int64) // 1000 // 1000 + data.loc[:, 'timestamp'] = data.loc[:, 'timestamp'] trades = data[DEFAULT_TRADES_COLUMNS].values.tolist() misc.file_dump_json(filename, trades, is_zip=self._use_zip) diff --git a/tests/data/test_datahandler.py b/tests/data/test_datahandler.py index f0c367efe..9d8ae77e6 100644 --- a/tests/data/test_datahandler.py +++ b/tests/data/test_datahandler.py @@ -319,11 +319,11 @@ def test_hdf5datahandler_trades_load(testdatadir): # unfiltered load has trades before starttime - assert len(trades.loc[trades['timestamp'] < timerange.startdt]) >= 0 + assert len(trades.loc[trades['timestamp'] < timerange.startts * 1000]) >= 0 # filtered list does not have trades before starttime assert len(trades2.loc[trades2['timestamp'] < timerange.startts * 1000]) == 0 # unfiltered load has trades after endtime - assert len(trades.loc[trades['timestamp'] > timerange.stopdt]) >= 0 + assert len(trades.loc[trades['timestamp'] > timerange.stopts * 1000]) >= 0 # filtered list does not have trades after endtime assert len(trades2.loc[trades2['timestamp'] > timerange.stopts * 1000]) == 0 # assert len([t for t in trades2 if t[0] > timerange.stopts * 1000]) == 0 @@ -486,7 +486,8 @@ def test_featherdatahandler_trades_load(testdatadir): dh = get_datahandler(testdatadir, 'feather') trades = dh.trades_load('XRP/ETH') assert isinstance(trades, DataFrame) - assert trades.iloc[0]['timestamp'] == Timestamp('2019-10-11 00:00:11.620000+0000') + assert trades.iloc[0]['timestamp'] == 1570752011620 + assert trades.iloc[0]['date'] == Timestamp('2019-10-11 00:00:11.620000+0000') assert trades.iloc[-1]['cost'] == 0.1986231 trades1 = dh.trades_load('UNITTEST/NONEXIST') From f69a7763054f90f139cf888c0f897074f65d5ca8 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 07:07:10 +0200 Subject: [PATCH 14/23] Ensure only relevant columns are stored --- freqtrade/data/history/featherdatahandler.py | 2 +- freqtrade/data/history/hdf5datahandler.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/freqtrade/data/history/featherdatahandler.py b/freqtrade/data/history/featherdatahandler.py index b70bb5720..3fa1b12b5 100644 --- a/freqtrade/data/history/featherdatahandler.py +++ b/freqtrade/data/history/featherdatahandler.py @@ -92,7 +92,7 @@ class FeatherDataHandler(IDataHandler): filename = self._pair_trades_filename(self._datadir, pair) self.create_dir_if_needed(filename) - data.to_feather(filename, compression_level=9, compression='lz4') + data[DEFAULT_TRADES_COLUMNS].to_feather(filename, compression_level=9, compression='lz4') def trades_append(self, pair: str, data: DataFrame): """ diff --git a/freqtrade/data/history/hdf5datahandler.py b/freqtrade/data/history/hdf5datahandler.py index 0ddbc0b3b..cebcf6013 100644 --- a/freqtrade/data/history/hdf5datahandler.py +++ b/freqtrade/data/history/hdf5datahandler.py @@ -109,7 +109,7 @@ class HDF5DataHandler(IDataHandler): """ key = self._pair_trades_key(pair) - data.to_hdf( + data[DEFAULT_TRADES_COLUMNS].to_hdf( self._pair_trades_filename(self._datadir, pair), key, mode='a', complevel=9, complib='blosc', format='table', data_columns=['timestamp'] From 0fab65df0305d96207953d5b577433901e7f78c9 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 07:25:51 +0200 Subject: [PATCH 15/23] Set explicit dtypes --- freqtrade/constants.py | 9 +++++++++ freqtrade/data/converter.py | 8 +++++--- freqtrade/data/history/idatahandler.py | 3 ++- tests/conftest.py | 6 +++--- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/freqtrade/constants.py b/freqtrade/constants.py index 9a8d17909..91186ff43 100644 --- a/freqtrade/constants.py +++ b/freqtrade/constants.py @@ -50,6 +50,15 @@ DEFAULT_DATAFRAME_COLUMNS = ['date', 'open', 'high', 'low', 'close', 'volume'] # Don't modify sequence of DEFAULT_TRADES_COLUMNS # it has wide consequences for stored trades files DEFAULT_TRADES_COLUMNS = ['timestamp', 'id', 'type', 'side', 'price', 'amount', 'cost'] +TRADES_DTYPES = { + 'timestamp': 'int64', + 'id': 'str', + 'type': 'str', + 'side': 'str', + 'price': 'float64', + 'amount': 'float64', + 'cost': 'float64', +} TRADING_MODES = ['spot', 'margin', 'futures'] MARGIN_MODES = ['cross', 'isolated', ''] diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index 69ceed90e..5594f3dc4 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -10,7 +10,8 @@ import numpy as np import pandas as pd from pandas import DataFrame, to_datetime -from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS, Config, TradeList +from freqtrade.constants import (DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS, TRADES_DTYPES, + Config, TradeList) from freqtrade.enums import CandleType, TradingMode @@ -231,9 +232,10 @@ def trades_list_to_df(trades: TradeList): :param trades: List of Lists with constants.DEFAULT_TRADES_COLUMNS as columns """ if not trades: - return DataFrame(columns=DEFAULT_TRADES_COLUMNS) + return DataFrame(columns=DEFAULT_TRADES_COLUMNS).astype(TRADES_DTYPES) df = DataFrame(trades, columns=DEFAULT_TRADES_COLUMNS) - return df + + return df.astype(TRADES_DTYPES) def trades_to_ohlcv(trades: DataFrame, timeframe: str) -> DataFrame: diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index db0f7ade7..af6f427a4 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -15,7 +15,7 @@ from pandas import DataFrame, to_datetime from freqtrade import misc from freqtrade.configuration import TimeRange -from freqtrade.constants import ListPairsWithTimeframes, TradeList +from freqtrade.constants import TRADES_DTYPES, ListPairsWithTimeframes, TradeList from freqtrade.data.converter import (clean_ohlcv_dataframe, trades_df_remove_duplicates, trim_dataframe) from freqtrade.enums import CandleType, TradingMode @@ -218,6 +218,7 @@ class IDataHandler(ABC): :return: List of trades """ trades = trades_df_remove_duplicates(self._trades_load(pair, timerange=timerange)) + trades = trades.astype(TRADES_DTYPES) trades['date'] = to_datetime(trades['timestamp'], unit='ms', utc=True) return trades diff --git a/tests/conftest.py b/tests/conftest.py index 4d0377796..732fffd8f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -14,7 +14,7 @@ import pytest from freqtrade import constants from freqtrade.commands import Arguments -from freqtrade.data.converter import ohlcv_to_dataframe +from freqtrade.data.converter import ohlcv_to_dataframe, trades_list_to_df from freqtrade.edge import PairInfo from freqtrade.enums import CandleType, MarginMode, RunMode, SignalDirection, TradingMode from freqtrade.exchange import Exchange @@ -2352,8 +2352,8 @@ def trades_history(): @pytest.fixture(scope="function") def trades_history_df(trades_history): - trades = pd.DataFrame(trades_history, columns=constants.DEFAULT_TRADES_COLUMNS) - trades['timestamp'] = pd.to_datetime(trades['timestamp'], unit='ms', utc=True) + trades = trades_list_to_df(trades_history) + trades['date'] = pd.to_datetime(trades['timestamp'], unit='ms', utc=True) return trades From 7577613882e563a8d3efa078950c641864bcbf70 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 07:43:29 +0200 Subject: [PATCH 16/23] Extract trades df type conversion --- freqtrade/data/converter.py | 21 +++++++++++++++++---- freqtrade/data/history/idatahandler.py | 8 ++++---- freqtrade/data/history/jsondatahandler.py | 2 +- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index 5594f3dc4..c19d89f8f 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -226,16 +226,29 @@ def trades_dict_to_list(trades: List[Dict]) -> TradeList: return [[t[col] for col in DEFAULT_TRADES_COLUMNS] for t in trades] -def trades_list_to_df(trades: TradeList): +def trades_convert_types(trades: DataFrame) -> DataFrame: + """ + Convert Trades dtypes and add 'date' column + """ + trades = trades.astype(TRADES_DTYPES) + trades['date'] = to_datetime(trades['timestamp'], unit='ms', utc=True) + return trades + + +def trades_list_to_df(trades: TradeList, convert: bool = True): """ convert trades list to dataframe :param trades: List of Lists with constants.DEFAULT_TRADES_COLUMNS as columns """ if not trades: - return DataFrame(columns=DEFAULT_TRADES_COLUMNS).astype(TRADES_DTYPES) - df = DataFrame(trades, columns=DEFAULT_TRADES_COLUMNS) + df = DataFrame(columns=DEFAULT_TRADES_COLUMNS) + else: + df = DataFrame(trades, columns=DEFAULT_TRADES_COLUMNS) - return df.astype(TRADES_DTYPES) + if convert: + df = trades_convert_types(df) + + return df def trades_to_ohlcv(trades: DataFrame, timeframe: str) -> DataFrame: diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index af6f427a4..a840d8f93 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -16,8 +16,8 @@ from pandas import DataFrame, to_datetime from freqtrade import misc from freqtrade.configuration import TimeRange from freqtrade.constants import TRADES_DTYPES, ListPairsWithTimeframes, TradeList -from freqtrade.data.converter import (clean_ohlcv_dataframe, trades_df_remove_duplicates, - trim_dataframe) +from freqtrade.data.converter import (clean_ohlcv_dataframe, trades_convert_types, + trades_df_remove_duplicates, trim_dataframe) from freqtrade.enums import CandleType, TradingMode from freqtrade.exchange import timeframe_to_seconds @@ -218,8 +218,8 @@ class IDataHandler(ABC): :return: List of trades """ trades = trades_df_remove_duplicates(self._trades_load(pair, timerange=timerange)) - trades = trades.astype(TRADES_DTYPES) - trades['date'] = to_datetime(trades['timestamp'], unit='ms', utc=True) + + trades = trades_convert_types(trades) return trades def trades_load_aslist(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: diff --git a/freqtrade/data/history/jsondatahandler.py b/freqtrade/data/history/jsondatahandler.py index 1ca83e0be..54d289bc0 100644 --- a/freqtrade/data/history/jsondatahandler.py +++ b/freqtrade/data/history/jsondatahandler.py @@ -134,7 +134,7 @@ class JsonDataHandler(IDataHandler): logger.info("Old trades format detected - converting") tradesdata = trades_dict_to_list(tradesdata) pass - return trades_list_to_df(tradesdata) + return trades_list_to_df(tradesdata, convert=False) @classmethod def _get_file_extension(cls): From fa5f7d290b74e508d70bd1e3e6426c6c6ecd579d Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 09:07:51 +0200 Subject: [PATCH 17/23] Update download-trades method to work with dataframes --- freqtrade/data/history/history_utils.py | 37 +++++++++++++++---------- freqtrade/data/history/idatahandler.py | 4 --- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/freqtrade/data/history/history_utils.py b/freqtrade/data/history/history_utils.py index 6e0cfa43e..f18563fa4 100644 --- a/freqtrade/data/history/history_utils.py +++ b/freqtrade/data/history/history_utils.py @@ -10,14 +10,16 @@ from freqtrade.configuration import TimeRange from freqtrade.constants import (DATETIME_PRINT_FORMAT, DEFAULT_DATAFRAME_COLUMNS, DL_DATA_TIMEFRAMES, Config) from freqtrade.data.converter import (clean_ohlcv_dataframe, ohlcv_to_dataframe, - trades_remove_duplicates, trades_to_ohlcv) + trades_df_remove_duplicates, trades_list_to_df, + trades_to_ohlcv) from freqtrade.data.history.idatahandler import IDataHandler, get_datahandler from freqtrade.enums import CandleType from freqtrade.exceptions import OperationalException from freqtrade.exchange import Exchange from freqtrade.plugins.pairlist.pairlist_helpers import dynamic_expand_pairlist -from freqtrade.util import format_ms_time +from freqtrade.util import dt_ts, format_ms_time from freqtrade.util.binance_mig import migrate_binance_futures_data +from freqtrade.util.datetime_helpers import dt_now logger = logging.getLogger(__name__) @@ -343,30 +345,32 @@ def _download_trades_history(exchange: Exchange, if timerange.stoptype == 'date': until = timerange.stopts * 1000 - trades = data_handler.trades_load_aslist(pair) + trades = data_handler.trades_load(pair) # TradesList columns are defined in constants.DEFAULT_TRADES_COLUMNS # DEFAULT_TRADES_COLUMNS: 0 -> timestamp # DEFAULT_TRADES_COLUMNS: 1 -> id - if trades and since < trades[0][0]: + if not trades.empty and since < trades.iloc[0]['timestamp']: # since is before the first trade logger.info(f"Start earlier than available data. Redownloading trades for {pair}...") - trades = [] + trades = trades_list_to_df([]) if not since: - since = int((datetime.now() - timedelta(days=new_pairs_days)).timestamp()) * 1000 + since = dt_ts(dt_now() - timedelta(days=new_pairs_days)) - from_id = trades[-1][1] if trades else None - if trades and since < trades[-1][0]: + from_id = trades.iloc[-1]['id'] if not trades.empty else None + if not trades.empty and since < trades.iloc[-1]['timestamp']: # Reset since to the last available point # - 5 seconds (to ensure we're getting all trades) - since = trades[-1][0] - (5 * 1000) + since = trades.iloc[-1]['timestamp'] - (5 * 1000) logger.info(f"Using last trade date -5s - Downloading trades for {pair} " f"since: {format_ms_time(since)}.") - logger.debug(f"Current Start: {format_ms_time(trades[0][0]) if trades else 'None'}") - logger.debug(f"Current End: {format_ms_time(trades[-1][0]) if trades else 'None'}") + logger.debug("Current Start: %s", 'None' if trades.empty else + f"{trades.iloc[0]['date']:{DATETIME_PRINT_FORMAT}}") + logger.debug("Current End: %s", 'None' if trades.empty else + f"{trades.iloc[-1]['date']:{DATETIME_PRINT_FORMAT}}") logger.info(f"Current Amount of trades: {len(trades)}") # Default since_ms to 30 days if nothing is given @@ -375,13 +379,16 @@ def _download_trades_history(exchange: Exchange, until=until, from_id=from_id, ) - trades.extend(new_trades[1]) + new_trades_df = trades_list_to_df(new_trades[1]) + trades = concat([trades, new_trades_df], axis=0) # Remove duplicates to make sure we're not storing data we don't need - trades = trades_remove_duplicates(trades) + trades = trades_df_remove_duplicates(trades) data_handler.trades_store(pair, data=trades) - logger.debug(f"New Start: {format_ms_time(trades[0][0])}") - logger.debug(f"New End: {format_ms_time(trades[-1][0])}") + logger.debug("New Start: %s", 'None' if trades.empty else + f"{trades.iloc[0]['date']:{DATETIME_PRINT_FORMAT}}") + logger.debug("New End: %s", 'None' if trades.empty else + f"{trades.iloc[-1]['date']:{DATETIME_PRINT_FORMAT}}") logger.info(f"New Amount of trades: {len(trades)}") return True diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index a840d8f93..05e34820a 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -222,10 +222,6 @@ class IDataHandler(ABC): trades = trades_convert_types(trades) return trades - def trades_load_aslist(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList: - trades = trades_df_remove_duplicates(self._trades_load(pair, timerange=timerange)) - return trades.values.tolist() - @classmethod def create_dir_if_needed(cls, datadir: Path): """ From fae742de595f8bfcc3b3ef21c2c6b06e87965556 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 09:12:40 +0200 Subject: [PATCH 18/23] Fix imports --- freqtrade/data/history/idatahandler.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index 05e34820a..0267174ef 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -11,11 +11,11 @@ from datetime import datetime, timezone from pathlib import Path from typing import List, Optional, Tuple, Type -from pandas import DataFrame, to_datetime +from pandas import DataFrame from freqtrade import misc from freqtrade.configuration import TimeRange -from freqtrade.constants import TRADES_DTYPES, ListPairsWithTimeframes, TradeList +from freqtrade.constants import ListPairsWithTimeframes from freqtrade.data.converter import (clean_ohlcv_dataframe, trades_convert_types, trades_df_remove_duplicates, trim_dataframe) from freqtrade.enums import CandleType, TradingMode From 5de3b9d7aee561674fd77662ee45c2d8e7b2d931 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 09:14:41 +0200 Subject: [PATCH 19/23] Clean up no longer used method --- freqtrade/data/converter.py | 13 ------------- tests/data/test_converter.py | 12 +----------- 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index c19d89f8f..324ce5def 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -1,9 +1,7 @@ """ Functions to convert data from one format to another """ -import itertools import logging -from operator import itemgetter from typing import Dict, List import numpy as np @@ -196,17 +194,6 @@ def order_book_to_dataframe(bids: list, asks: list) -> DataFrame: return frame -def trades_remove_duplicates(trades: List[List]) -> List[List]: - """ - Removes duplicates from the trades list. - Uses itertools.groupby to avoid converting to pandas. - Tests show it as being pretty efficient on lists of 4M Lists. - :param trades: List of Lists with constants.DEFAULT_TRADES_COLUMNS as columns - :return: same format as above, but with duplicates removed - """ - return [i for i, _ in itertools.groupby(sorted(trades, key=itemgetter(0, 1)))] - - def trades_df_remove_duplicates(trades: pd.DataFrame) -> pd.DataFrame: """ Removes duplicates from the trades DataFrame. diff --git a/tests/data/test_converter.py b/tests/data/test_converter.py index 9f733f316..7ca236442 100644 --- a/tests/data/test_converter.py +++ b/tests/data/test_converter.py @@ -11,8 +11,7 @@ from freqtrade.configuration.timerange import TimeRange from freqtrade.data.converter import (convert_ohlcv_format, convert_trades_format, ohlcv_fill_up_missing_data, ohlcv_to_dataframe, reduce_dataframe_footprint, trades_df_remove_duplicates, - trades_dict_to_list, trades_remove_duplicates, - trades_to_ohlcv, trim_dataframe) + trades_dict_to_list, trades_to_ohlcv, trim_dataframe) from freqtrade.data.history import (get_timerange, load_data, load_pair_history, validate_backtest_data) from freqtrade.data.history.idatahandler import IDataHandler @@ -299,15 +298,6 @@ def test_trim_dataframe(testdatadir) -> None: assert all(data_modify.iloc[0] == data.iloc[25]) -def test_trades_remove_duplicates(trades_history): - trades_history1 = trades_history * 3 - assert len(trades_history1) == len(trades_history) * 3 - res = trades_remove_duplicates(trades_history1) - assert len(res) == len(trades_history) - for i, t in enumerate(res): - assert t == trades_history[i] - - def test_trades_df_remove_duplicates(trades_history_df): trades_history1 = pd.concat([trades_history_df, trades_history_df, trades_history_df] ).reset_index(drop=True) From 3eb35965524036ec76d873aee1609e1e8db8a448 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 09:31:57 +0200 Subject: [PATCH 20/23] Simplify trades_data storing --- freqtrade/data/history/featherdatahandler.py | 4 ++-- freqtrade/data/history/hdf5datahandler.py | 4 ++-- freqtrade/data/history/idatahandler.py | 14 ++++++++++++-- freqtrade/data/history/jsondatahandler.py | 5 ++--- freqtrade/data/history/parquetdatahandler.py | 2 +- 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/freqtrade/data/history/featherdatahandler.py b/freqtrade/data/history/featherdatahandler.py index 3fa1b12b5..7517f3f8d 100644 --- a/freqtrade/data/history/featherdatahandler.py +++ b/freqtrade/data/history/featherdatahandler.py @@ -82,7 +82,7 @@ class FeatherDataHandler(IDataHandler): """ raise NotImplementedError() - def trades_store(self, pair: str, data: DataFrame) -> None: + def _trades_store(self, pair: str, data: DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename @@ -92,7 +92,7 @@ class FeatherDataHandler(IDataHandler): filename = self._pair_trades_filename(self._datadir, pair) self.create_dir_if_needed(filename) - data[DEFAULT_TRADES_COLUMNS].to_feather(filename, compression_level=9, compression='lz4') + data.to_feather(filename, compression_level=9, compression='lz4') def trades_append(self, pair: str, data: DataFrame): """ diff --git a/freqtrade/data/history/hdf5datahandler.py b/freqtrade/data/history/hdf5datahandler.py index cebcf6013..d22fd9e31 100644 --- a/freqtrade/data/history/hdf5datahandler.py +++ b/freqtrade/data/history/hdf5datahandler.py @@ -100,7 +100,7 @@ class HDF5DataHandler(IDataHandler): """ raise NotImplementedError() - def trades_store(self, pair: str, data: pd.DataFrame) -> None: + def _trades_store(self, pair: str, data: pd.DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename @@ -109,7 +109,7 @@ class HDF5DataHandler(IDataHandler): """ key = self._pair_trades_key(pair) - data[DEFAULT_TRADES_COLUMNS].to_hdf( + data.to_hdf( self._pair_trades_filename(self._datadir, pair), key, mode='a', complevel=9, complib='blosc', format='table', data_columns=['timestamp'] diff --git a/freqtrade/data/history/idatahandler.py b/freqtrade/data/history/idatahandler.py index 0267174ef..d8c063f2a 100644 --- a/freqtrade/data/history/idatahandler.py +++ b/freqtrade/data/history/idatahandler.py @@ -15,7 +15,7 @@ from pandas import DataFrame from freqtrade import misc from freqtrade.configuration import TimeRange -from freqtrade.constants import ListPairsWithTimeframes +from freqtrade.constants import DEFAULT_TRADES_COLUMNS, ListPairsWithTimeframes from freqtrade.data.converter import (clean_ohlcv_dataframe, trades_convert_types, trades_df_remove_duplicates, trim_dataframe) from freqtrade.enums import CandleType, TradingMode @@ -171,7 +171,7 @@ class IDataHandler(ABC): return [cls.rebuild_pair_from_filename(match[0]) for match in _tmp if match] @abstractmethod - def trades_store(self, pair: str, data: DataFrame) -> None: + def _trades_store(self, pair: str, data: DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename @@ -197,6 +197,16 @@ class IDataHandler(ABC): :return: Dataframe containing trades """ + def trades_store(self, pair: str, data: DataFrame) -> None: + """ + Store trades data (list of Dicts) to file + :param pair: Pair - used for filename + :param data: Dataframe containing trades + column sequence as in DEFAULT_TRADES_COLUMNS + """ + # Filter on expected columns (will remove the actual date column). + self._trades_store(pair, data[DEFAULT_TRADES_COLUMNS]) + def trades_purge(self, pair: str) -> bool: """ Remove data for this pair diff --git a/freqtrade/data/history/jsondatahandler.py b/freqtrade/data/history/jsondatahandler.py index 54d289bc0..9a02a7769 100644 --- a/freqtrade/data/history/jsondatahandler.py +++ b/freqtrade/data/history/jsondatahandler.py @@ -94,7 +94,7 @@ class JsonDataHandler(IDataHandler): """ raise NotImplementedError() - def trades_store(self, pair: str, data: DataFrame) -> None: + def _trades_store(self, pair: str, data: DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename @@ -102,8 +102,7 @@ class JsonDataHandler(IDataHandler): column sequence as in DEFAULT_TRADES_COLUMNS """ filename = self._pair_trades_filename(self._datadir, pair) - data.loc[:, 'timestamp'] = data.loc[:, 'timestamp'] - trades = data[DEFAULT_TRADES_COLUMNS].values.tolist() + trades = data.values.tolist() misc.file_dump_json(filename, trades, is_zip=self._use_zip) def trades_append(self, pair: str, data: DataFrame): diff --git a/freqtrade/data/history/parquetdatahandler.py b/freqtrade/data/history/parquetdatahandler.py index 254fa0df4..2cc217e9a 100644 --- a/freqtrade/data/history/parquetdatahandler.py +++ b/freqtrade/data/history/parquetdatahandler.py @@ -81,7 +81,7 @@ class ParquetDataHandler(IDataHandler): """ raise NotImplementedError() - def trades_store(self, pair: str, data: DataFrame) -> None: + def _trades_store(self, pair: str, data: DataFrame) -> None: """ Store trades data (list of Dicts) to file :param pair: Pair - used for filename From 8caadc4c5b8ade69a0edac33059f6b97e823bbfc Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 09:45:51 +0200 Subject: [PATCH 21/23] Fix feather handler storing --- freqtrade/data/history/featherdatahandler.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/freqtrade/data/history/featherdatahandler.py b/freqtrade/data/history/featherdatahandler.py index 7517f3f8d..44d337836 100644 --- a/freqtrade/data/history/featherdatahandler.py +++ b/freqtrade/data/history/featherdatahandler.py @@ -91,8 +91,7 @@ class FeatherDataHandler(IDataHandler): """ filename = self._pair_trades_filename(self._datadir, pair) self.create_dir_if_needed(filename) - - data.to_feather(filename, compression_level=9, compression='lz4') + data.reset_index(drop=True).to_feather(filename, compression_level=9, compression='lz4') def trades_append(self, pair: str, data: DataFrame): """ From 30064b410261955989d895c1f37a89f300840ee8 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 09:57:58 +0200 Subject: [PATCH 22/23] Add support for trades data in Parquet format --- freqtrade/commands/cli_options.py | 2 +- freqtrade/constants.py | 5 ++--- freqtrade/data/history/parquetdatahandler.py | 22 ++++++++------------ tests/data/test_datahandler.py | 4 +++- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/freqtrade/commands/cli_options.py b/freqtrade/commands/cli_options.py index 54471917d..586318e30 100755 --- a/freqtrade/commands/cli_options.py +++ b/freqtrade/commands/cli_options.py @@ -441,7 +441,7 @@ AVAILABLE_CLI_OPTIONS = { "dataformat_trades": Arg( '--data-format-trades', help='Storage format for downloaded trades data. (default: `feather`).', - choices=constants.AVAILABLE_DATAHANDLERS_TRADES, + choices=constants.AVAILABLE_DATAHANDLERS, ), "show_timerange": Arg( '--show-timerange', diff --git a/freqtrade/constants.py b/freqtrade/constants.py index 91186ff43..733fa11b3 100644 --- a/freqtrade/constants.py +++ b/freqtrade/constants.py @@ -38,8 +38,7 @@ AVAILABLE_PAIRLISTS = ['StaticPairList', 'VolumePairList', 'ProducerPairList', ' 'ShuffleFilter', 'SpreadFilter', 'VolatilityFilter'] AVAILABLE_PROTECTIONS = ['CooldownPeriod', 'LowProfitPairs', 'MaxDrawdown', 'StoplossGuard'] -AVAILABLE_DATAHANDLERS_TRADES = ['json', 'jsongz', 'hdf5', 'feather'] -AVAILABLE_DATAHANDLERS = AVAILABLE_DATAHANDLERS_TRADES + ['parquet'] +AVAILABLE_DATAHANDLERS = ['json', 'jsongz', 'hdf5', 'feather', 'parquet'] BACKTEST_BREAKDOWNS = ['day', 'week', 'month'] BACKTEST_CACHE_AGE = ['none', 'day', 'week', 'month'] BACKTEST_CACHE_DEFAULT = 'day' @@ -459,7 +458,7 @@ CONF_SCHEMA = { }, 'dataformat_trades': { 'type': 'string', - 'enum': AVAILABLE_DATAHANDLERS_TRADES, + 'enum': AVAILABLE_DATAHANDLERS, 'default': 'feather' }, 'position_adjustment_enable': {'type': 'boolean'}, diff --git a/freqtrade/data/history/parquetdatahandler.py b/freqtrade/data/history/parquetdatahandler.py index 2cc217e9a..c0b0cad63 100644 --- a/freqtrade/data/history/parquetdatahandler.py +++ b/freqtrade/data/history/parquetdatahandler.py @@ -4,7 +4,7 @@ from typing import Optional from pandas import DataFrame, read_parquet, to_datetime from freqtrade.configuration import TimeRange -from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, TradeList +from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS, TradeList from freqtrade.enums import CandleType from .idatahandler import IDataHandler @@ -88,12 +88,9 @@ class ParquetDataHandler(IDataHandler): :param data: Dataframe containing trades column sequence as in DEFAULT_TRADES_COLUMNS """ - # filename = self._pair_trades_filename(self._datadir, pair) - - raise NotImplementedError() - # array = pa.array(data) - # array - # feather.write_feather(data, filename) + filename = self._pair_trades_filename(self._datadir, pair) + self.create_dir_if_needed(filename) + data.reset_index(drop=True).to_parquet(filename) def trades_append(self, pair: str, data: DataFrame): """ @@ -112,14 +109,13 @@ class ParquetDataHandler(IDataHandler): :param timerange: Timerange to load trades for - currently not implemented :return: List of trades """ - raise NotImplementedError() - # filename = self._pair_trades_filename(self._datadir, pair) - # tradesdata = misc.file_load_json(filename) + filename = self._pair_trades_filename(self._datadir, pair) + if not filename.exists(): + return DataFrame(columns=DEFAULT_TRADES_COLUMNS) - # if not tradesdata: - # return [] + tradesdata = read_parquet(filename) - # return tradesdata + return tradesdata @classmethod def _get_file_extension(cls): diff --git a/tests/data/test_datahandler.py b/tests/data/test_datahandler.py index 9d8ae77e6..f2cb54191 100644 --- a/tests/data/test_datahandler.py +++ b/tests/data/test_datahandler.py @@ -247,8 +247,10 @@ def test_datahandler__check_empty_df(testdatadir, caplog): assert log_has_re(expected_text, caplog) -@pytest.mark.parametrize('datahandler', ['parquet']) +# @pytest.mark.parametrize('datahandler', []) +@pytest.mark.skip("All datahandlers currently support trades data.") def test_datahandler_trades_not_supported(datahandler, testdatadir, ): + # Currently disabled. Reenable should a new provider not support trades data. dh = get_datahandler(testdatadir, datahandler) with pytest.raises(NotImplementedError): dh.trades_load('UNITTEST/ETH') From 3d8dcd164415a7a7737b02b91f9d6b58e8029690 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 18 Aug 2023 10:05:15 +0200 Subject: [PATCH 23/23] Improve and parametrize trades_data tests --- tests/data/test_datahandler.py | 80 +++++++------------------- tests/testdata/XRP_ETH-trades.parquet | Bin 0 -> 352168 bytes 2 files changed, 22 insertions(+), 58 deletions(-) create mode 100644 tests/testdata/XRP_ETH-trades.parquet diff --git a/tests/data/test_datahandler.py b/tests/data/test_datahandler.py index f2cb54191..8415bea7c 100644 --- a/tests/data/test_datahandler.py +++ b/tests/data/test_datahandler.py @@ -118,12 +118,6 @@ def test_datahandler_ohlcv_get_available_data(testdatadir): assert set(paircombs) == {('UNITTEST/BTC', '5m', CandleType.SPOT)} -def test_jsondatahandler_trades_get_pairs(testdatadir): - pairs = JsonGzDataHandler.trades_get_pairs(testdatadir) - # Convert to set to avoid failures due to sorting - assert set(pairs) == {'XRP/ETH', 'XRP/OLD'} - - def test_jsondatahandler_ohlcv_purge(mocker, testdatadir): mocker.patch.object(Path, "exists", MagicMock(return_value=False)) unlinkmock = mocker.patch.object(Path, "unlink", MagicMock()) @@ -269,18 +263,6 @@ def test_jsondatahandler_trades_load(testdatadir, caplog): assert log_has(logmsg, caplog) -def test_jsondatahandler_trades_purge(mocker, testdatadir): - mocker.patch.object(Path, "exists", MagicMock(return_value=False)) - unlinkmock = mocker.patch.object(Path, "unlink", MagicMock()) - dh = JsonGzDataHandler(testdatadir) - assert not dh.trades_purge('UNITTEST/NONEXIST') - assert unlinkmock.call_count == 0 - - mocker.patch.object(Path, "exists", MagicMock(return_value=True)) - assert dh.trades_purge('UNITTEST/NONEXIST') - assert unlinkmock.call_count == 1 - - @pytest.mark.parametrize('datahandler', AVAILABLE_DATAHANDLERS) def test_datahandler_ohlcv_append(datahandler, testdatadir, ): dh = get_datahandler(testdatadir, datahandler) @@ -297,10 +279,17 @@ def test_datahandler_trades_append(datahandler, testdatadir): dh.trades_append('UNITTEST/ETH', DataFrame()) -def test_hdf5datahandler_trades_get_pairs(testdatadir): - pairs = HDF5DataHandler.trades_get_pairs(testdatadir) +@pytest.mark.parametrize('datahandler,expected', [ + ('jsongz', {'XRP/ETH', 'XRP/OLD'}), + ('hdf5', {'XRP/ETH'}), + ('feather', {'XRP/ETH'}), + ('parquet', {'XRP/ETH'}), +]) +def test_datahandler_trades_get_pairs(testdatadir, datahandler, expected): + + pairs = get_datahandlerclass(datahandler).trades_get_pairs(testdatadir) # Convert to set to avoid failures due to sorting - assert set(pairs) == {'XRP/ETH'} + assert set(pairs) == expected def test_hdf5datahandler_trades_load(testdatadir): @@ -331,35 +320,6 @@ def test_hdf5datahandler_trades_load(testdatadir): # assert len([t for t in trades2 if t[0] > timerange.stopts * 1000]) == 0 -def test_hdf5datahandler_trades_store(testdatadir, tmpdir): - tmpdir1 = Path(tmpdir) - dh = get_datahandler(testdatadir, 'hdf5') - trades = dh.trades_load('XRP/ETH') - - dh1 = get_datahandler(tmpdir1, 'hdf5') - dh1.trades_store('XRP/NEW', trades) - file = tmpdir1 / 'XRP_NEW-trades.h5' - assert file.is_file() - # Load trades back - trades_new = dh1.trades_load('XRP/NEW') - - assert len(trades_new) == len(trades) - assert_frame_equal(trades, trades_new, check_exact=True) - assert len(trades_new) == len(trades) - - -def test_hdf5datahandler_trades_purge(mocker, testdatadir): - mocker.patch.object(Path, "exists", MagicMock(return_value=False)) - unlinkmock = mocker.patch.object(Path, "unlink", MagicMock()) - dh = get_datahandler(testdatadir, 'hdf5') - assert not dh.trades_purge('UNITTEST/NONEXIST') - assert unlinkmock.call_count == 0 - - mocker.patch.object(Path, "exists", MagicMock(return_value=True)) - assert dh.trades_purge('UNITTEST/NONEXIST') - assert unlinkmock.call_count == 1 - - @pytest.mark.parametrize('pair,timeframe,candle_type,candle_append,startdt,enddt', [ # Data goes from 2018-01-10 - 2018-01-30 ('UNITTEST/BTC', '5m', 'spot', '', '2018-01-15', '2018-01-19'), @@ -484,8 +444,9 @@ def test_hdf5datahandler_ohlcv_purge(mocker, testdatadir): assert unlinkmock.call_count == 2 -def test_featherdatahandler_trades_load(testdatadir): - dh = get_datahandler(testdatadir, 'feather') +@pytest.mark.parametrize('datahandler', ['jsongz', 'hdf5', 'feather', 'parquet']) +def test_datahandler_trades_load(testdatadir, datahandler): + dh = get_datahandler(testdatadir, datahandler) trades = dh.trades_load('XRP/ETH') assert isinstance(trades, DataFrame) assert trades.iloc[0]['timestamp'] == 1570752011620 @@ -497,14 +458,16 @@ def test_featherdatahandler_trades_load(testdatadir): assert trades1.empty -def test_featherdatahandler_trades_store(testdatadir, tmpdir): +@pytest.mark.parametrize('datahandler', ['jsongz', 'hdf5', 'feather', 'parquet']) +def test_datahandler_trades_store(testdatadir, tmpdir, datahandler): tmpdir1 = Path(tmpdir) - dh = get_datahandler(testdatadir, 'feather') + dh = get_datahandler(testdatadir, datahandler) trades = dh.trades_load('XRP/ETH') - dh1 = get_datahandler(tmpdir1, 'feather') + dh1 = get_datahandler(tmpdir1, datahandler) dh1.trades_store('XRP/NEW', trades) - file = tmpdir1 / 'XRP_NEW-trades.feather' + + file = tmpdir1 / f'XRP_NEW-trades.{dh1._get_file_extension()}' assert file.is_file() # Load trades back trades_new = dh1.trades_load('XRP/NEW') @@ -512,10 +475,11 @@ def test_featherdatahandler_trades_store(testdatadir, tmpdir): assert len(trades_new) == len(trades) -def test_featherdatahandler_trades_purge(mocker, testdatadir): +@pytest.mark.parametrize('datahandler', ['jsongz', 'hdf5', 'feather', 'parquet']) +def test_datahandler_trades_purge(mocker, testdatadir, datahandler): mocker.patch.object(Path, "exists", MagicMock(return_value=False)) unlinkmock = mocker.patch.object(Path, "unlink", MagicMock()) - dh = get_datahandler(testdatadir, 'feather') + dh = get_datahandler(testdatadir, datahandler) assert not dh.trades_purge('UNITTEST/NONEXIST') assert unlinkmock.call_count == 0 diff --git a/tests/testdata/XRP_ETH-trades.parquet b/tests/testdata/XRP_ETH-trades.parquet new file mode 100644 index 0000000000000000000000000000000000000000..c2913afdd93f519b01a8858c86506b19403076ee GIT binary patch literal 352168 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�_pe`ij0+vKTrEVfSa`1GF=ihR8T{N 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≈m{vJLh)Tc4Y6RBJf0mawGhJhO^%*vg(zM%6&kijIu2ggv+zWcb02eq?9COm@-v=V5?$`ppu3Nks= zw~%xHLqVeMv${|VF{j4#a8oCEecea2c83Gau zfw=H>bd5V~m)`4@3wBN7WSbF`^;+nsN+1&ctulO7 zC#w?*1f=M0>Cr#DrI&VZaDbSheQL!7vHa~20^HQ+-fO=`a;AN(6!HeWm3%e_J3FUQYN>zI!;4r5~|FOFh3O|pXm`z9T;iArTR$oOj{Vg0|<8K41zIZ7e;(m=!J<}41Ovk3lc9ww1M&RQV`>Ml<2^UU(2W&7P$ zz6#HKes@o&Povj97gJQhl!9{2Q_4U`^JON2AsXsRiYo+P+|QV>O~-x9U@UocsSyDz zI;1DlOKUK}b~rD++6U_mg|PJT0SAEBe49mxz1v)(qBZwk9*#LMSwzWDz6t@7kO0(D zmnAAr8j)P%Z@;RMhJ~pP9$2#+vlQlu7(q{R%Xco1Yq1tJVOPUr%Fp(018%EHCj#Vdhy~Wd zN+INQH#5gJt&86AI{LQn*-{f>S*}mAzXpHPvi+4SpQNGB`TS`chkFogX+@`}ec&xCGKfl~un|c53V!K0g z?}z#=(d# zzM8nv#7IycU@ket)YNmRBW9;n5$+Y$*j846=N zzSXz=mL?ZzsSpr5XY9zM{okwRON`-Flhi-=4?0ae^Qf0Y05MQYV9)Ao&H__w;}P9_ zYm2)FIrPyDM^?-ne$C4n+~8DmXT|Ez-^?$3zJF{-xp5$Ts8RQFdb8K^J0yFak~h+c zDg8jb%!l0xJ+ta#;;g{us+@%|mVLyuP@>3=Wz)zQ!jPHT!(|ufrseO1oc$n-O%NE; zrb}v06R<%78;v6g?F57Ng=A^h(${kzo_$cx&Dl3l0i;{F$9caOk3Da_tr-rvzd*TKia9V(JYt zHPPa_Mkd*Hz)cC4*koZsvKD+A5RxRSv08!wToF->1mY*?ju%ZO%#9S35LD;Mpy@`k z7AU?n1OzjzQITB;cG-1sU=tmlVsZH-V$IjhRyOgBQfNr3h2O}0Fd(*Ak9;#;obRB9 zR_*dDZaSC7LG-z`8qrt|0oEsw5zV&eM z!LBEoo~XQ^YUz9Z(XDvGm#@_wY1YAT15i)^D@~Qxm=X}i2iJLZmdYWk?of3(wdnfr zoEFo1gf<-KhR#t*vmTV!S&v&5vEs21lpY7lR%%r(W*3VZ}X zRxjW3a>aAI@V@QAbHB7rPffNw_9#0(UZjE0lzG=mdmo(g(sZv}86oU{8GkzH@Wm9H z++TM+VxQI=zu5P!C-Nbn~7;7UCnYg@l-g?zjof*%Z#@Pv z*#vpEmA^Y(>jtranGrAxJ$m^-K$Ng#cLvZ_a}Klttt^)e=n;T|e+J@Fxr10;eAg*u@t6=0s71}Fr~ z1v34G1!50;VRNs z1?*WgA^=(c0v8??p!yaDPt*N+gH?gpwO@K9?1t)mLy0isG-~eX&KadK;M%?cTXe*b zYd~})HB*Rl=4qtnRam&22L7;%hHOBCQ+7@k!;e5*Q!+wmiE2iBH1gc>7~0^dk~W=c zKdD%Wff7BTlMZtMlNv)m7Rof~Yg86X+<>W^QV0;(qeb{b(S0Q^9hK#8E}lz3kR3znsRK# z^xrGZSrl*_iKi%#yCXNa8MOr+CH0B!;DYMMXQ4V~))x+0JiI^unA0`u_X$b6Ka69b zsU7BQU@!wyX@jKMxb3Rh!4pBfTOEm~-%fR4Yt9sG`y+pW|Df5yZ%1_7bM7FlIJ#)1 z{*UeF?2i11hr)rGg1Yh@{jbW6JY|YK%WIuRXZS(agy2*LlouE)?c)wYs@PHbaS0m=(6VnY(2{Q_M!GCdlrGA89yEk6Vq z>3cJ|3AxUlvs5UMZjZ?jM9|DdACq|nz(97D>av=9CIZmZA-glI1{Lsbe@QT7J1iz8 zFnjS8H~{o4xHD#H1xh4dEk8_3%z$r-{B<$lX_~DnksweEysS!*Zw4-7?dFbDq#!F1 zM7XO?J=-c18;uxOg?y&c9*VtHZ+O~E#z|e{p?&-;0l)%-1Q!QZK&cqDW+~q(tAb=w z2$-;p|vQd-VVN<3^+7&wp zEFVP}5?2=klX@8JNW<5)C3PW$V=S#_y3r+x$S`Ej2D;0rgbkc+EfwC_Z0V|vW5U|$ z$!t^Ig=gvu7m0xYgdbuKXy7QtHKsZl?~SwU*p#)s2I4G{@X}uf&EYlYt1$({k}m4t zzSIe|7ul{;(J(;jGcdx@wUA@e?TORL@&xhAM*!%--dLWT<+Y^8;}Ix@gO)#8Dyn5iAoJJim-Bv zoBa@lt#k~MSosckrEnS0mlZ<8@Xx1x^-a7R(m-G@+@^x; zNDKFNngOh@Wsw|No12YSnCfk;-lr{7=qi_l=@{n5z)AwD$mTW#kut=<>O8Tgk=^+<&4l1Vd|oY2 zF$@}lht*DHwigp^6DzB-jSS-m$Z@Cjl37)5#zo3GD}h(i-Q!qL>=*8^tSdyJ$o4Ah zyBG+@>%)ind&P(p%wIR9HmASZEAHoKP1-O_RvF7YiZ}9>!6bEwM7_t=;SnUr&#y4MIIvUml3dP67 zW0S`J>~&)%wDM~xH2Nr5LswnEcnOvDwxWRbHj8Re$7FNdBN+1N;~}F@AZvLm#cpUp zW>yy=+Q3+QtBKTDvk&*>aFWKyOEF{FNAq8_aD_7%t66)9uoeie>UuR*H`lE*TH{M?~C?Vxn>h52O@OTjzr94HDzX5oG1iSWf30*f0_p%(>x)I>k)0 zNg1{)+j?wdA&bPleS%Tr8c5^5DGi1dl#ZKe%Xe>;+xuP^ziVAT(>j7wPkuT6Mb)qU zhd=ps&g-r!nz{j=3;?2vf4OK(Jj@+OBWsp19H_U4j0w8LKd*lIaS7~I2yxeOS~S;t zviEA2&JpynCg^~N05Ckcs$kM%O}nkhqn~y>%u6gT+&YMK8(j-C-CN=)a|WV3!k1>C z?PV7nBWPqF$V#B^#7MTq-WNbqX0(dMlX@a9fmW4PbALPNjP6P?t_7_k;l8W!8QD;hSf|&>b=FZ*&NZipDt^@gE-762|b&|oV zopF#eSSBk`l7 z+0RgqJbGIXfy=}E+DJj@A2=E*N5T~!a+Ga4Eg1qaCTDmJzlg+wM zb}Ty8)d_lbRS{nsu76Kqn8pF!Un@B-(&*#>uskDZLpyCSGju05bHXvhl__8WzPwlh znkCk5mRtJN<&Q617A;=kUXj#nGkr7@@h`I;)5XRGddv*W`ly1+T8!F@??r)Rr|p#9 zSjn1hSvAq=Z^;?n&ux%*Ga>#&h1`gxsM*-kJ;H)BhzRBGdbFU(_Qt6F< ztX%q=v?}<+v~6v4WqC?jpru-2 z4HNoF%T@&@RNu|sw$KfZ`B0GFyD6i&qK+{J900L-R$kdEzZs^8x3p<_nUfH3Gj%)b z#pC9z``!C*c9#&&&1n^hgxpIoWYRWjQ3=DtR{e-qHuoIl9M<2o*XUS_d(b195O-um zu=lj!ccv2o1o1#~l4{5aC2k?cEb&E0O?4cJ+UGuJ>BvJbFM)3$7RzV0J}UpG3@k>) z4HjUqM*rgtB0Gse1WRwQqj)@L6bBO&vYZRtLWr99|Xvz(r&44Y468MW7{oJ-3wj)fid7Ki+~n; z!PU>(4*M07sA#hlBi;7D3##d$9RKXcW$THlHN_cL%u{sE6c0=QWU)bwiA7k%|EvXY zfc5H<(_$@AglW{-`(D*Xe_K>$;|ebsI^$VW*`L*Ya%l)B5Fs_xs7D|oF(x4DkE(4| zlDyRJp8n>=qe5(6zQn3)l?V4%zHsa9*P;@ZBJNRoy zmvEGiFg|U4Y+i;;0dW+_pN zO{erk`5^lbb?UukvYSrKZJ?)4@4d)QWuWMRjdj#%r5K)G?+gb__Y`G%_=rIPZU#iV z9U`bimZ{3>>Sr^vcY{3uHpyNG)<|vi*;QZ#C;*R?ycbZ>5q1zFW9`DK-FR#r#3VuQ zOD4?RNF|}3;4Ya4PqDVRlXtnIm9;-5ZQNY(4$BV5%j*SW%HYviE(c3Hw!O7k$Yx`u5V^=VEp!Xht(-2fkSrzU4WI!%96bJX>WZo zMfTh>Ih6PBx^MTra_{1m2M!qx8roSU`3^8AO@1FV zUioCXd)v4BWBLp^COrI{CZeHEN6a!AQ z+Z-rrX=7xIbJX`=eM$j&Z)qsamVsU!9~t|TP-op;0)U%F8keJP>i7p-lIE(x(W;3W zNE}&j0}zCM9X&>TkdZygpMpC(4V#D6mZaRid+q}dY0^$qId{&EzE_@N2gZSwS_$0t zVMEc5l}SlD8V+moHr)%QdMn0omCeIk^*g~#A$yH%_#o3q@;1rj9K#c0nAT<5PMLEy zCp`Ahr=D~M5S>0&VT$Cxg9dRt=Qet9u(%O>We5#ZQNs}3$UV;;*HU!x#!oX zdghruTAOQORI=~w?|bJ?Emft#D4{h=>9p=<9`{HiIhLT@^#|I-DnQM133RkT1OX2^ z0k{zGnnuroqy(5u4O7Yb$E&4ehtJgGddKBS_I&rBAKkc&m93KS?9b@eB#7lFt|gyT z49`aV`0L+V{O-7P(T7K4RKBL~ebBcRJ?>U==)8{rdh&K*8Yjkd`n3AulzGa>-Bq6x zro}E=ju*APAI*#))kmIwoYog${x+7mgC?MCrvjDla`}n{zn1syhRt3>%)q4vyzvV8 z_Llh!mNa6{$sS*{EKBXB-Dv;9H4s8&m{@ARx!M@Azq61dB-mK8bo3miO4va2l7~R2 z;@Le3hhfxZ2;;f(RpU0pTqH&93>uu^p@kES6ZXxoI=%89VDkG)b&Lvm<@84fcmpmO z5ZW`gzD)INf&O#L+4)>qnVexG?ie#y!Q>A{kDdR{==`pZ8>OL4&TsK5=)!!MokH_$ zqzvHNF+m3;FF9qwgAgTb4BWtOU}QuVtAmP7crqxkm_w=UYRj$fTsN33zO*Q$K$oF6 zrDpotLZ+dlN&e#?^FG;==8F_*wPbK( zzhO@-PM}Q%42SJka#XwTO2X^5L|f=fb9FTH(3~ zzFp?Q*e;7xQ=E^{hC@FhKQ`;!-Pb!lQ7R@nSm>bcsVKJN&5}*$o)oGlAAkL1cv?_< z<<7@N0n>lmR5|hd9H1-|&`BGXE4v)PU8@ktPD8*7(1UhZ61uTcwRT8ikX)d1HltLI zZwe8X)a__@j42xKjX8t19I2EM4&1Y!eu6kP%eu~k)+R81Fx4%tQ){jZ+F`MZ*-*>4nSBZW*khu7{)a38;RZA;$!l17=mJSh~qryR_ z-~C_07{inqK;Y&9yxG;Hx#M`f?KOKf6*d{m~$9Qd!n@r!04F`63AbY71Fp=hWrmO8MNn;u~Y z8-MpCnfy9^37fTXZMm)AnbtyEM>!RPAChoMu4u z!*f#zpe%d{3~k?PvbqBOW&&GBPdUx($%T7kvq29!lniwlqdl;+tix*$C|hl^AaQFr zCeiBl&AmS*U{*WN^fr&Td+p);6=--~=jO}aM?Vzii|jzh=9OdZdv-1Acs|xM0~F$F zC(xt90xf>4C=om|9RiyOw4gwmKm@g&Sz{e!)W`zmk0_VGP)gkeur@xXC?q5{+Y6l@ z(OqW3 z_hw~7Egyx_l?{UPpz5#EzfKP%Ue;gV88TE>XLW|ya>hyp%3&Z5LWpS!WVT9!u%Ox2 zPF4OH79s1Hg(u+7tGn7PUp^M)o-?zI?(q2hJn_>-`latL{sjs8uT^`11A%l+F^A=tt?0~Kc${)}lcB^UD$CndsV3U9UYyK;`hH>g(l2R<+ z2RhdtsN}K6#Mp1zrTZ-l^e)8>fx0Jm*2QmagkJ-Zd+S>uR)a#L4K=l(tBtAG(=?fo zTl`w*Ua(z^Hp~BTug&x7*)N{bz{ZtWCQl$% zoKMj?4Gk9>%cv5NjeviwS`+k7Z_I(BEgRvygw#k6LuhtEvkUnqT^Rj8jU*pZM@F8DIj{VCbTwVLAaPsd(_?@Ex-7^oq#HZ~;u0PDahKK(4Wz+4!B0M@U z*--kT2zQ@wGNOh#h`+UFyj5Qs!im;r^PSdo;_Kpq?UN6m!7Zhy>RXLY;YUssRQ1r! z_}@FmOg(bF1b@8!ifiVaV!SwU%Y+xl%JI*8?=`cY!^FEIpBPSOKH%*`uiTP)O7OU4 zrTrJDmfn~{@)Zm|wt<9@>P=qi0=CSX5 zPZ4fm&k;r?R^yX?DeYGez(nIjMYW3a9oMgY_hH*Y!xjAeE5VDYW!Lbfi6`J~SIY5+*B9jlkQ zjt@_9Av-Xw`dJPBynp&@q3KS%I3{6_K(-WjuK1}W>#x1|#X?)#kf$|x2=?*2(d!y~ zfzRag;x|Qjw^^xr&rup*Z9PuhNPNZl`3o7|%>#JEqA{V?n;Y?xGe=jK9H#MwvK?7B z%Ik68gu&{g@4No*^NR4M-&-Hq{8of3Q%iSVeq4m36D~NP=T+guHk-D}-S^;3@k-s1 z{vsSX_RHDDe>dPwiP>TSh^qwELuQr}`3noc*Wj?qyAQsV;xf zwT}Jx0DkO>EH^w8@Un_k1jxCaNPV6VV< z=H|US4C2+}#=a5rH!v}HetB}|v6r~dIE};jc(4y5lzUt=UgD-_j#*`zI})ajUgwR% z#}iq{J{147X*|(&@UZvOseABw4fyNi?sEL(aOe-^>NWU5to_}ENx$I!OJ>cpviuwO zJ(nQ}zHuDSShryO9)TYBYWvOl6jhC{Q8XQ!)Jo&U3#lLzX&v4__PpimzYpMXUaU)J zz7^pkJ3h?{{&oNl6@?8d{yK+`e=BqP=g2qwY?E?n0C-(1aAa3dz|)*$}V{=se(de6pRj|oFXe-Gk$**{rEYktSq`u`n2ZlDOi z`RA@v)d0tSA0L%^Pf&%+T$g_N=f`E7dT_RXOK<~TRnxZm%kpY`)rCRI=T3|Z%Q@ZJ}$2+>)Kg7;rVIf!N)at<2`FXN9j_$+ws7o=Ec?c=}RHY-+U;* z-K+g_|8UOvzuNnyH$WwEKu0V1x? z=)K#&^A(PKdiHZ)-Zh*o+j0DNXg?nGMb@Cyw&KK=ozFIc*ZEDF_akCOH6CQ^6Z$Nv z7GJh|L6X(P4t&DDeP`-_tHJ-0CyOe_9l&J~lPB!4tiuDpl-@EaevE&1{&2Ty#p;nWiT*uD=%_}B^m1i4jQ!+(qH(?x+>-&EUIGygn* z=bgKMD}U8%d~fFplOLNJ@d^9BUV^}Q>>aEwit8$H*0HwI=U~4t>n-f)1vqf!w}u<( ze-z;_a3TKY2wqIQtogsVD#B+^dhzGam3{bc0WH6FMwQ|ANtchSPMybpbuQl3etthb z#5Y5C6u!a>+ZTR+-D*LMebHMW1bJ+C(0%VC&x-K3VT5X4gMph_ny<;I{bC3`%;$c0sOYXy)bit zV>6v+wcJYlgs(N+*3p(+i}%bv^I|@@zA@1WI&dl*AOGvpuU&=pxU!+;^KtO^PmgO# zzx1BPcfQMi_`^v+lvO@n(O~`#|10FH!2*Dj|F&D#R9qfQ1Z___Yy)un+frgL7vMG; z{H*spT8LNQea3P*NaJ7Ag8dn!j}}2dHL=y@W8U2wq-HRc>b~GU(z0) z#pf(M*1`Mo2Y$-n$hC;%D|pU4U)yklGkBo;dsWmQHMnV4>5HkypW_3@hW@eZtMPp1 zBKxx6Yw*h9h=1BaoW1^iMzAaI3%;}TZ|j}Neth;%r~k1GYrt#s2ZGOj+l%YJbeoL< zFTeEjfB#DZ!6;`Ne|z=tco;ohT9G!hVROqkiyQ@`RCb5hrCeNu!M zJFBc~o;|q76*vA=mrMAXp>a09{q02fgzx#`nCDMiH&=I;->k!Lz0*kV zpFNI4w;G!N{n~(QSt;z>56|HT!Y)L9Ea}GIAAa%sE5J9pTi^bBSE<4|eMTW~P3rKW z(meB5fPW-k{;sT$-Nj3*H{5QS4-*SAGc&}2J$S<(i5XvOXk4)M>}>zf4S0Y5Ce4*v zzy~TfAHJ}l7_U9ra6S4nOnjGxzxtkAk8c|JB_ZDw;KbV?*&#*;zJ5^Arv-Vv#%@V^ z3;%EYx0%L0g6fO-aeK9A99XY;u1g>MQT`f#;M5tEAAAR2QtHt~U%ia4FeRCg#cf>C z@V7s<Pl^inpm`b_ekGs98%N+^WHqYeo4_ zg?0GP%3rMS+^xYE`92K?CR z!yz>e2XKR1=FyKWJMl>KCojFgKK$Qx*5cFHS8{w_z{Jd(FPMSWb$IH4%EGp}2M>#% zRWyGE@ec#BYfreycM2eC~QLdw+Jv9i?q*5ZuNK$t8%-(zNWbZ9x6EZV0 zGc$hY^Zn(Y`}LgnIq&yz&U5Z@UDy2_{IaWKVCIQ|*81qC^u!==?~JWoj}5~675^p) zlLT;E7p`m*kNmfv4@?VpIonS}BH8Ai^`VhKa5*M4{&-E^2Z2KiW+ma6V6s$sPv#r6 zno|p(+Cy-gGOsg7HvqTYBI6=Rzb~YpbZ?on4=Rf{w=!x+BP#h=_Z7u3P(A$BCbuU9 zw!9|kcD|Jm+%&4qTI+!v+3OW~OHSw#F_WH44Z_{cf~Dm`A>ayVH0ypI3@z`%NtT63 z)C>!nc$9@BbbPEL=2xT4Mej=J%NBf; z@UO(-@TTZptBr_#WWgaWv6Wa9kPq0*qs`u+N#V!w5dH_IDF};?<7F+w!d5YO`rym2+!;#6^#xsD| zRIB1G^EAX(dYRG~xoWg(-}`-sef{6}{D$VnJ3MmhbOigu0jKSQ3*fhJ*FE!j9eW}q z#6-%rkgq$+t}VEjgbvlpuT64^IL2X6M>Eik_aRrLTvy2atNZ725NSW` z)Xz&KtxM>nK--I8^cO0%Uh#{?w*kG028nsHRkd2Y>IH?i$K~aT=}g?UlfPHWB94WeXo|Q!r@Du4bZFkCW!kPIjh) zi0}7!vm>YtzA=7!s${(BG8uY zz5wxF^H^J2IvHn99lnwv9D+2mk->&?3X>~>CxThR5o>swGUcQ-Cf16Mzn&-aje9%# z2I}buMtSw2UfD=gyef~|t3&2Ts&19kx5IE@Bh@4EAYbsX^775rH=$6`Q{~wDWu9}^gXWHOb$Lh>MzpPava^F}kiJ=}d^{tg>4AwN;kwWk>m-%7eA zUvG!JujaOD>xF-xZy^4EzgbwtS}VEEx4_|@grB(77>-_5ebhEV#)W1tf064=|IRlN zRLmQ5Guf7_^ zg_y<66o)N@wn_G$W4)AwwOoweSU)epb?21m{P-|BPM=7W1r0GnZ4)YVJRgh>b7vM7 zDiPFOmtlUCozM_bZ(n6ehRQRORk>_>;$WTqarUZK96w$2HS6|IBo#)-Ej^fq^ZSOu z+IC7}f?0dfP9zaY#hjvk-IPRG?MmFf#yRl!K6`NHE+rv>K}o8^k$7I3;~7o*!~e%k z0wHZdnQ`uMFz)T#^|hV!vw!|q-v;1pVJn3+Z8$E{y??lq{G9Om`ueQQ5Y(npI}OQt z)`RZ({q3aRl4_71&$v%T6rPl`V7q&Wa1L#;mU_?({rj7LKcET6tvxQL&X06)_v%~v z@%zPC2%RZlnV3b1RM7C5n0kzBZiPibA)aNbX(cGmL8j-5gV&26xKPWjMWe8ar}M;q zv4>MQnm1qLN->NsEeaiT>hA~^8nGKD^WLGl=dzZLg>W5mdh-0vGDNm>^mCKj72XOx z&SejQ7+Vkt!Y9It@kAiYI;)rtvE3kdi=6TGpL@^vUOY4e`3GM=!3v) zwh-|f8;ORYqnQl1S8;G(vIV=U3(C{?_!1X>;JR@8-OAiS2(#xY%7oPavq5+{DnGdK zQYT)%D?a^^%sUQrO6GmYpd$V#F{XN^P9gHuV=2b$NibI#WE>##5t6{75B)*bar}(Q z{A>&4Gu;17+jRlVcmHe)^PY$5`H@azi5xH-jAGW&`hzInqi>4I_!L7ic|~UjHIYjD zYGC`)9^y=%X}|rCa>yGSOS`}w%W6weo;`!m)>RbftWU&wN6O`;vJ54hu}lCiox|@@2^%%xV{E@ zgWCSC`RVlcKyGWuyU2-=$q-UU-HX?_tRb&eadBb0J+~jYCT*2%_*qn3^|@v?uy+@CR+kYtMoI|-+{F0 z6W8QfkGaEma7VHWr!~3^m~UPWt;D_jCo?8T-Jw4r5qy8$7WvBuRD#!RVX5{;Gu9^_ zi}t6rsCQXI;jyjo_^K^TALq8jf1@O{XsqI1%q_s%ylQb_r!}lYh`@^P^u*@p8BsKY zU8wpUWs;CYN!+2>XWjLC2Frxkwu9MIu#?}@CUP?vFZaI9*t97G{~f)9w3JEWl&YMO zxPW&>yQ%_F*jTUom%N^xzuXV_@J8Z_egU89{Q#6JQz{ZmOVFp`3SWBP4(ZjXKp!$c zW&UJ*i#eke`g77-s{6iSa}@G7TS6$-$L+Oc|`7`d>YJcRuAWf2H~*SOo||x zhx-N@IMgRB{Ts6q0hRZ{n%R4CPvEK2$&J0BJ(71%tEC&kV+v>WHq7GE`E{RC$6*|~ z=HRqinSm!O)Mt0Cun@E|VhZxVXowGG7enrf{lS|~%OUBF6hs||vD+efehxGY#wW=6 zophyaCmwcUpI%iHlkYS>h*2^$#f77A^*tT!mJpb4H?7V+9)_(GEOK=Gk+9e&X%e(8 z1bO0@%k3?F;apThzV|)=dn#X<@{rffQg3`Ta5@Zc$6bs!R)%0}l-S!xcLHFuZ)ImU z`Mp-t0|QQqqj)u!cTs0~7_ThfWZ6uHA-nli453-5cg?6=(-cDwB(rDzi&^}_whj9(VA`hx5k%?dHL&N)>5X$Xs# z27d^W`(-vzbW<^eAWrGF27j0b6gvEOzY%wb=j0Sa;N@cUEzL4|c?BUNr;*`%t`k;1 zneoS1eg@Ts^cEiDQ0#VFkh1-6d)ug+l5iW$v{OYpE(c>KCvgu>L}TeI^ZE#F3WCj* zj=VY>0Qb2Zuf|8QIL38D;5Lc7NLW1ZJi$QXU`ut|;}5!{AZ0dX)w2?`VcD}kwpgR} z!|tQo6i6J%h0Zd4G6}m1-)c2;6(XO3L9T0aBv@CX>q{Q?BBj^hN;cCxIH)iC4{$W% zq2}>c_9oo@92~^1=D9hSWN%+aq_x_L{a8mY0rdDXxpx` zi4r)6)ODRAkN?2dzI#3+5S&S_BB|$tAtbQJY%lpcuieB_I>2_Ux`S%o(zlBo(&AADT%dB^5(KG^KiS=C->Wv#AV)(&rLYZL*HDG zi}3jg1?fvk=WNEHRh_lBg zM(K*CP!TUT?X><$ZZ|#{UOl17PaHK;|CSLzOIS^H9rJUYLGGG>>>H{PsETgbqEkXi zI6rnOvCRyGrdIn9J3b@-@;X zFiJVZdXx3(p;jZSmQ_R_UT~fw=a-hV&;(b9Jq%3_ZRxC_B#Pcw`OA{Ww{hg1Qck8J z&I?8wSVf1U?wO17{g^da+ne9mbjt-&qpkKu1NM-csS9Q%{a;z<`NZ0?5O6rWy*u3$ zi4(c;SKND2v39DxhbkcGUp$D!=qz29TxbDglKT<`ngYSy#?f=_q&rmeLUy{5*Dqsx zpVrcCN`m=}Lat|71#H=ze}wQP!XeqqQ?Mrz$|Uh-V0^Bf&J!9D>z%BEVEYW1YwT^EqgLvXoq=h86wYDOnLm?oK^&m zTijTC6%>TTpil`OiahvcY^@6Z&+iED4H|fo0sfa}w%@~Yk!WY0AMM=?yNB-tIupZj zSnEQSFBumpqviLzD-~n0e8Ep}sRYsV<`Fvm#i)HZZ>1Ah1SUJTEXps1|2_``x450% zkN!xk-!3v!w`qZ?+Rrb;P4#${AHc|VuO4+rq#}gkz9DNl`P{pbI)vwm{BG*1g`spX zuV_y-#)D1cdNadu#=+r@o5#ANl9%`&j!xQ)YZ2pZ5?h-GZ(GZ30BL zklQI`@pf>frL>tl)`MnKioqVXF1%wjd|yH}2=UD?Urjv^z?Z(hsIHP;v?oQR?6seV zbD)E&RCpAe4!sfOCG+9Ropv(a1A*uq;!Ri}aS9HPSi2*?0#Wh9JxNx|8W$&-Oh-w3 zD_by3lGXu-Y0p<|PAEY$-Bp$2JU+0GW8M~hEe+@Y>P5AZd|Rb1W8gDQa=wgBd^02Q zW$FJpj6g8`&eebFU5caXF4R`nI*?Iu2`_p>;4NHNyNTZprsrB2L+HYB-!f0@(ij~< zRWQb?>|RXzaaW${{nhwZxjQ-MU?lE(%kcN87vrStulBg*93)H~*fH&&gV#EjzE>U6 z#N#ZMY!wm@ev_~}E!(XDGFPZ_%-aKTy4AsX;4z60eSCVKhJ0?_179=TCGq1sv7@0X z68{LPl!U{j(|kY4?>oA1+v)GEXskW(r_`WofWJXF zzs>P=*f|c&@R0d{e7rGZRUYNPd^Hjg?O&R^pAX|*z%++<_9NCNWSye1KHhTi=d{fWr>IwLR~c9K(k-azx>S`x<$h5(!1V(d1{C24l*7b zbPx305y?w9?1^(o4y7a>e@k2tVWA@U%#PmM;}(x9f#uwA1EX>og(YGa^Z#VUotjpPH5d6J=qif9Y6GkB>&L--3k3X@x_!KbzQ8n^17UGeTWp~ zY(Bl52h+P39X%5$h~Tx@*Jfv3ki|z|)EQO)!z^7H=cH)_d?mG zsZzHbZsKe1&?OOvESSeWqUdu-LiWxLdj{yNap&gXp)ArK6aH;$X`cn@!okbOqXW^l z!ZNa-)*5?d1b1uLCqaYq;?ASJ{diuYEPm>15em84glmVg;1r#m!bI+O(pR$6_G$+9 z+zqJPCO-)2ue^)lJS~uyU814E99E2X?iS%5z^m2mi-SVBsNMa(CY{C_ej2qhqWwd- zqajhxn?4T@?TcS$2W?TlDIvNrp$n!ov3>f9l!S)bAMdUc#h7cjtS92`fh|oBq!&{{ zuyjo;Es4q+_Z(73=zEKBP*t>#lGG=({|yL{7)*l9af|8iUn1c##%dhm9F8#2jQf2b zSD^u(0#n0yj75gcS_S1}^P|eou5^p|)a;hIpS+F<-Y4l#tA7RSbgt?SvYud=Zh9n4 zxS)3@f5n1H8a~R|aL9O7VS%m3$I`kN11Epivz^Mt;C<$}{>4H}2=$!$bEpTwy6xZA z*Q}t#{n5LJwD}6UtgpIladE$PsKe_i_#|<^dM)0Jt1W-OxhA+GVu$ecCqKN=`?7ie zF6L3Vir-T1xBLYqnb0k-{l{S4(b>4!$pb0E+f+;C%g|Dqc=h^f26TnW73Is<@WHcu zHG9PhV+@wV!oGo+CK%dM?Mu<}vDv3P&K1&kj^>{0w1sFEtwZ&@O3av_! zMiPd-&^x~TRr8BI7C2}*TbHcxisC9=jA$urnPUz4U(I9llSJ=U?I?WSY#&#(Xa#$! zL{;Z#S41fUbbMoXhy0!;X<2ut|L4fq3QxP7#383H#OFR}sN$l%2ZGW6ZL3qW*zI(fM4JEnz*6iO6VU_QQ zYky-FDyKOFd&%FwkbLiEi+3R8bONIEqnU{Rw}1bQ$4Gx-bnhg|n-1@FQ=NaxNVtlc zpTFSS0{_9{RhL(cgaf~c@Xv%ucn{C+@NKk3!%H20M$#Un`1Ogs!4^9sEt+EMZSgqt z)jPZXuP~nDxEeie1zD-(EH2XOHi~3ko3g^G_$S@EcI4unjXLUdby;8)Ods@|>qGXP z`4g8ql3?>dtxI7;1tjl&J;z+Mo3PJ%#;_DbPkcOhF@jNH0mesSWpAsrBgKC*vh2cc zVr#;gpT=7kG3t@RtQ$w>d!xHL7MH8B{O)OvzS|V0AJnK_un`~>GG5U5{c)g>;Fz#;rQ+0J8@18$mtf;btcEjR30}tNZV8EQ1O>? z5Q>Ss%ExQGvAOqsTa~yA9vY5oCU31o;2!=Wj+5VEbN`FVrfOSks|^wr)~Q71-Z{0! zyM;*aymGR@J{f;b98dUKlLuA5VcE&I9%#Hh#uGSZg@<>PV+6JZK+-&a?Da<{BzIn3 zTvVVWq}P{OZj@)iukhp@-n2GoWLo>)98ff<SztT&N8E1E z3JsoH)@KTB;b6>cw#zRPB_C#;%bIo&Y*X<>C!GaaE5(JnMs7j;_|f`(^?3-F+CIBr zQiJ7wx{T{C%Y3-;@;OH|7r@{|)O=!X9zIm=TTB$_2Y+6YO=xH-q_XIF?=V^*UheYc z(DizVYnv$jHFbibEtlfwS4l8b4PXz=w}pbmEmta$2-x*-mg|w@WDl$Q1%^Dl3%KeX z=Nkvg4eXSieO7Qw`Fr|?CJS-CbW)~3FA095W;(X4(Rj4Rc0-2rm&T>vZaItSf@x=a z4}Z=w{v7%-yNxakoSC;ip1TnRwOtVoH@CRsO*(f*XSFxH^zzzFbQ^H)l%f~?{_lvm zCPk~bp&3~o9rs5V!l2PHkRW<93Rml%7`c-3Q&60}Lh1Step^+X4nIyqsA&YHk8`ZS zRmzHYg7+t`Ss!`Zx4#vc`I{ETZ;WATKfA*N^8TJY(vf|Y(H%;8hF5)dbfH?>IrR(s z8ulM@IAF7%fnYt-?&=laiDWMh^^dK#xNFri*HGn+#ot+0i%egTdTe2QcHuE}e5<$( z$$4bW?ArN(v>M%_9inVm@U1u~HbQ>RRdscn;z%%9y#-W94h8=k|HQ9tS57pN{7Ud? z2WeiH5in(Z6A$~{2)exoPR%~6#Ek={ro;1(5g%fHwRB%FB98Bg-|5i+=M(mKVy)9L z)p+x}l1>)--Kf1xH%5c~&q8_#QxB}a2{VqfTVPl3(H_}*p_pDwbJf}Dj&u2KEit4& zpW3&jPiJ>D0vNvxFMTI*_a{r{vB%9(6%hSapNuE7e^e~HMY7;HdsQ}BdlHs^S!Etl z&*3tQOhWL%B!pZ@%hvl?38(7}SANX}|BE|Th&;0|Pg6buRKGU~)6y?ukN$C{;e0>5 zJ-p6$CNB~b;wc=IOp7@7q~0o}j*>WZ#9v%jmX(NM){IO$8i2w91($SMdg4O-v7`9` zOR#L7^WxEBC8R$+Rea9vj>s?O&+Xdw5>NWLde1RwVpWgxz}_N1q`y?QtfjC9=Qm9v z*PDg-|Nkc$swHpkw|w#-bw<0Tqi;;2WYy*HU1~B<8q0SNVflj4GY@$7B^2SY*q-gY zjK!!FGfv7SXpScpk~j_&P!9l@SQqkuTRE3{XgPQ zTH_;ehT&#uVyZp(wq5v1XIdfu_nYBss&uXoPs#F#Lh;Nzb0<$U)K221c5sS z$!iQ>AT4?PzBhk8gd9d&&qui8H_JK0X9qfvVrf#~#Z`$~R|?5=^7~?DqZac+n=o0U z{#K-|9l;lxD^(&$T@O2dy;eyDgl_&Bbyf~V%uTIsqrZ>A$H8+qk37E})6y@bjmI&z zC}n=JCkwSpTc+=aW`M7ex@5!UYUCeDauVI#jt_0r-J|JsV4c}3URJq|hN|3xI0_1) zy+Q0jWNbB#85bSqYM>c@#SZaqq=~ULfaJYzoxpE4-151MI!AV|K}qd=!}Q z=|CZv-KdY3`25FL=ie*75(*lj@$uJw_Fz!frO^qs$8OJBPS*}fqS!+z?>ou=+={q7 zZ%Oh#)qgIOs0;@qgGc)EE}m$JajLM0YSdu1%YNW^Jb66%R0vHsAfs_|>}Ehd!g;hb z5IBZ)7snlM_C}+oZNIgys|U)n`5&Y&eZ@yHnKU&OlFzljE{*#+@KaxxDZW|+hVfkK z{LNp$A!fJTx}JiVF}>=0?@IwLnO~(lv%wl(Po3h9kon`WQtxfV8#aRQzD(V8_A5+K zNEbOy;(ZIsf!DbIAiliq;jhE>5G{LTzH4F?XQ(zFd3|>t^v~>{Ww89jiG9k^e`S_Y z(NeD*B}(G(|H0fDPB3_yqLcGF6r#aRg)cm_aAMbnm4_{U;QB1pC!p1WPaPUJO?tyn zRCLYr{(6=v7b znr33X&EY#9PPqRr-+mh>XM|PEB0O+IqpfDxvjpVS?oT@_uuJ*DPh_ghi5@zz2pU1byEpFr#9AQtk@4$Q5Z>2tRyr#K z{;nq9Z(G!3zjxhMl^=6Jw`-Q=R2bOn-uw#5%YaJKlA3AoEFRrO?31TeaPhumIJKMP zg*Wz!ItR^zX^X}&HHaXFk?J&=u?y?pC~rj*3}iEiV*R|yz4I= zf*7sI7hALMShF-59XIPI^-WtJGavK9myleiAJkMtx9!?%HeNe;o^dtVRzpL`TP3}w zu1Hfu#g?82e_|l)R%#Y+Sz($ze+qxcN}P7Nyo0El8k$m+~K7AG1`p86&}|v z-}$oF2kC>Er?}tFlF!#m4KeF7e3u&hsUv4i;^1D?0=g~`C@AQ*8+0Xgg0k6DNM4%&A_rApcC)Fz+u{=ydJA?-$aJ`QMLa>l(69 z!o+v|`++{3FQE@i*KYye%MC?uG&T`>_tKW+9Yu*LmV*o2IARVS{4 zy+}^1zi)Ahk}z0Ll{0Uwg$lix#8lZJ`sT*}YJDSl^lUyA#-n_Ma29uOn7|+`lOqmH zow3Gv)59LaF;`q(5I;J6*awN*PH#SWFAO&yIE2y}y5Rojt7f z{-P$)un}jC{vgp0LzQ~=W0$Pa%Ua~i*_j3AO@qs#Qw8v7J7jr`&KXNj&*(Zz+d(zL zcC1C(2d*VP{kY}@S5Jk|=S4|qNQ@6$`#1~rI{gYU-vB7By;VuNk&Vs66`C{^pHY6K zh~^T5Ga7PFg?1u17ms0@!!23 zuy|2YYjevQ)Vc#9Elkd+SkC#(De8cJ66QQj+TG`d2CProp<+vhqlPyn!5S)j*j~vR z7RK-7f}XoWma#ST<%tk180O8~SGI<@(pA5jjm|JtKGCEvZ->j9M`V6Q20(67T+3m| z13|Y$+L^19Fshus#des)mB#gW3ppw<&M`I`dEXlT%+oonSM6{-((QsKY4-_i^Y6^KGnXu_d<8aH^|crH~am5y1%bScHR(WIXDhwed=e-)d#vU2C! zce0P8c6aB^bsW^w`m>{A4g&l0nagbAVDVILVeN@E*3V6yW>+Gg)3Zv9Qr~=$c4FSH zog7P8uYb#VQvkub4^nbMUvQYe_KC)v2W+Pfl2m321h$NL26H%rdk@tP)jQ<*rT2a5 z>92q*!=j|C#SmykAHP+|55{>_WCWgXCi!pbjn(ZO*(hyb5)Ib12A8mScs8>e+>W## ze6DAWUo}jl(rwuYvHAOM_rVG*&zbI!4opW@d874#s7kz1@A;hAl>}*NMTZSH9FS~Q zZh4|605|@&KIUckiiqfX@@0>1xDnbZbClH$4R6{CMD5(MZQ+Tauyh+{p1l7Y-rkJU z4^mI}_g2BVuHx9%l&=_go~KVoo_CH&R}{4|Ige(kx#$I)!An1Or$xyDdIl70^k>51 zprn_gL2iG!I1$9Z!ISh;x7b-stnsa&qS{9(1oit>?>3U-;Fb9{#i*d?hYPYWht z=iVN^p|cM7PrV~zMAqX^Q{QMlS;P^`9KHJV)2766eunmZ+fNnJ;TIQydmv2dkoNFzwz zcXL+jwFz=Ne~6^3!Yau#H5{6>J5_;n1?C&Vqd_n{eAI$LD1pQiSKL^P?Ql0-sW4eR z3;bvNMZ3MiAbwE7<5FWRmU3S>^e9AOGXBY(V?zmG>`a+T^=?7{caaBp-H>D2s9{Ok zN9U@9UbA_^*jGr~s3Zm778Lu#ebdm(99o*kkb&c@SJmp{`;oZ!eJ+>ZFU;>%bt-yI zM_m8HZ8>&`mS{IVePda>0^La?>_rQ);JWirrUw*+^M0k<#h1dNF<8&nxzq#;5hlU4 z3OeHSC+*?C=ax}vkQd0I^AnH%_t%L3xeIA3g6qwBy0P_^f4{egveYlzuV(a z3mkUFw?+S$XCLffmH(YDhQS+8re8VqI+OEkJakIrqa8Gl)-x2jSc7Rdug+b$5`@lA z1zvLXf~leBZvLQb1RFgQq{yDd_TKH*j)o4Po3jxS-82IpzdsL-p6Wo&Gg+3S^C%rWg=MTWS2-yj9KdqY$H|bUMx;kw(X*~C!LpoM*wyW;XbxKakRwh-C||G)4$WUj zjjop~Pkj|UWtO%Ln>8V9@old2-T@?fMbN)A&W6<^K9!4nY53$lt)H=T02~s3uDndH zfZEY5t~3`(+-%g)C zQrYY6K|~gA5ekFVNfBV=uxbdCX~7y#jcfSdChS*ZDp{djhU@Rv#Yplz+RN)3T@Ekf zoc#H#SAO;*ZIjYRx&9_Nj_U6o+et-;NDs2bP}ShY&F8MhG3mG@qDXu$Uc*TAT8mA7 zGp3j_JqqPJaLcART8{fCM5nIUP_HaN_Hd&g?X3%$nH`M(>>F@ndKb5uOzmIvR=itG6IA^Ug6Nmr&$&kI)3cFji3vch=#v%GR z&N~AwV4yO!G`iFa4I}3OKDv7RkKQ-cg!S`J;=2as@gz32Md(=vB=UVWP`~OxmZG%M z`tT5$kAJ%OGdF{*=bN91U8%&iW!|sOT~WAn@xKVsh-7d}_*766DYWSnBeZsmj0_3?koYT1=Hqj7IDppa!2p=QCJ2wJH4o9B2tzNI6lnJ z<7kSS=0oOU^my*N>@qrnYb=p&+OM+_)@ADGbc>caU1%??)Zc;UhR!GP|X@XsGXXg@PcP*?p zjW8G%LKKACUn;}wH)`GN{vUXHY1UCun}+b4oK}3?)C|Gnvhf2dso17O zp-8)l#G9rM=*2jfV@2t%yv>6SobJk1n&hJ*_>0R^H#U6+cZ1Fz)zcN=DBDrfuY4P? zyB0;n$@A{^x@ed|<|)sqn5zSIvN3y0&HCy25Ih&_YOK}M#F|&#-(1dYT#(QuEI)jQ zl)_3=kwGQS{Ur&hxB@(sr1GR>PC)I(={wTb&1r0 zK9{LbFiC>807KEXtE66Stg-&;?{M_3jR>)aN8tCehJKUCcci~rsWsO8h0Ypj1wq+0 zsM(vp=0phgwpdy!SS?)TjP2I-UQ9& zQ?f3=$NdBOpJzkz>V;$Pm&tw!@g2+LdaKaZEXJ3ZY!vCoH`p;47EGbS=LqEApgi=8J{#fhj~Ce*p6aKu93A)HWEPCXsY?fTXSlCD+p)cG z{LuKPN;KM1E7rz^qLoc;$GewtxRCjNzr?dJ80`6SX3r;j;vx6aNAuxzaBrMe{?#-G zssk0CgU_0=bB7X(S$8A8t!{QYOPvG`n+mm)8>2u|+~H1jA_lJYH*Vk7D#0Vk0;7Xv z%~+vo_K|D#K*(Th%$MJ;Fu1#u(b2r}e`;r!qBPijEls(S5sNeTYBT?E$K!|JaA!$j z&VMASVC7^CUZ@Q7UZ|b?H;*+zs(KC?1$_nQhko%FquYeV2tTx+Yr_8uWk=P{#S;RApvEuoaub9Ut=A^`_3*seK3fCG#AYm&a;SIqch4n zNJ}V~Ugh!0p&-<&sJPer{@~=<-$_?~_Q7`LD@(@IWOyF~hEV z%0h4kJLJyWCWUrEN7%mcyh07Qmp4B$`&5lnl4J3!`Zch~=+->tOX8Ul9Mc!BQxT(E z;M2olj6PYrRg(!@1jP@|O+MpsHB9M36k9Zf@pbHL`EX^QY}om4sQ$Sl`s6 z=4l2a*S@#f$s38E$HHqr_*A0sCk;#V6HPd%g&056D1?yTJ-4dMTM7R;;qr&N+4z`2 zH>}@0iPROw{xAOI??v4S+L237$ZXmi%1-waDx7cE=%l9*zr1vk(K8tvq?JEaSA=4* z=wXb;jS%RkZ~I$4(SoIcd7AHO@TW@a{CZ0F)ugD#yC4S7_=HE{0N({r;wCkG-$$p_9p+d_g zNUX^VY-9Za*^$#9q8~Tn&y@on^+Yo$T8l=#f-NxU$2w_2u4@rzG-5t#>`(RsHJ7rQ zko9Sa&GX$})(|LDd3$<)DwwnV>Sqgbpj~bh_E@4BhyRl?tCZmS4(Wm)p>c4#_4d@y z)OKvG4|I7z=BFR5pY(L8$K$oFgp40!1XAZTeV8(%Axfbr#M#h*JTu94Pk(bTZ2XV8 zAo+yN+2_2c9kfZRMl4WZ|T-9Vg$55Ip4Y%I@Wgfc_@c-^SxV z!P|RBYLb_ppgX0mXZL9s^K50S1D*W{zG*i6N#-Y3df$#Jg=ZsYXu1D>Loe(zTaBNS z_?}Z>>&UeaKXE#1*H6N(3Ng=wge8{PiH+B%w(61lOLVPxJ|pkzLbUePzAfIkwmmPe zh1}k|sY%$0JP)BB?N<+s`=IvgLGbxcc8FDyE&lMC#Mk(h*)Dz7#Ch&NEdHZ^NPR{P zz38kjhK;u^Zi);>+mo>H88WYCc}aisDQS0KmdZ8>{)6yS^^Z5ZS%B#ng~)NEaRi;X z#CedsehG~qa*ACwp{yl*?T1k*N?zqnv$Hlpen9J@^FA`aEVXB$v1^3ZxozvW<_GcB z+n|MwD&pUBhozoZI%Ej_ACz&C6SB10k<1P#%7&3v%Ly zvx!7HR{wJg<#qTNBl1Y!w*zxmHd+t+7eY}m*+h-`4`%Dsr#_4|fuc&qa(#IcO8)^& zuH)G`!TpK*S`cjiT=@E57D8&~Y;*giWm4~|7t8LEjO^dT zS^HjBV(aT6Zq~d)bWRoD=}8-h_O+xfnoh|GdVXu^HES%?i@CDQ43bdUUVhQ%cQUko z1@_*TkB18HMBjjKBi14wmkQcUqfAb*z*;p1cPEq=4fwJ#V7#XzusIWjB|P%}$2zcK z`LJG%mK|tLJNqTlCLk)7gMP+b6I(wToUpc80jE#O_swKqnvakA-faCwRMSPj-#u85 zHv~VQ!p>s+`mpSIOsxnZ{8=m3f66fVovO6Gn}G=Z-*_H|hWZtHJ4juX;)^psPVFE( zAN6zAi)Ld}510PKf!)NdPu`B_-|Qi16+iNP;xC7NA@_^Eb0!dUL~8STpx*Lf$o`Wix+GX!<_?yie|Rb7sJ$k7>%MUt9V)?XrEONv#Y*s4$}#nHQ3j@h zmOm=d_hIzc7mjw14v5B`eo>%6OKhr`Rs3t%fgy^%eS*P_c=uqZ$WSt=#~0Th4`MAw zXXQM-^^YqI3)Z!Ft>1xc? zYVeAMtxg1&V$+&I0jsYIaDs*B@cuIFP`SSTl*btY8=2&;J|_A9z`H#s=EKqdpA7fu zPnbUFd9S)*7IBo%t{Dv0fqsLwTaD{9T$Qd*$d+fr&o5e7w|w{1)C?{gNgIZkkbTlm z^Uli}XkyrQSer699pjg(;uhX%f~WlBn6hv-&SeEXi0jNGb@!d-J^Qn9jNaeEc~?Jb zA1Mz#aQKB@#Y1m@lK02(%LkW$rrKJ1a66R3I8PUcxDrJB&ZDBU^vOjL-Z{1!@;_RIjj#E$H zXd*4vdB$y&j5jaGUIdV~-=jmWb9WlP+Uxlqp$^40ZS$>>#5~rI>2`;a>uJ=!I~pqY zC=+Q_j+WnEX_D&|I5VDq(TKrfby*nabp=WrsYZ;by3K2dQjx`ne7@nJ`P zAM>3==#qVVO_LyTF7Qncz5g&i{Qaf-ENvJvXFH|EycWRi6Egko(*n}PE-~oDb>Jek zIYp1-96Fx*y|`IP_I=t*zBUge*IyYqctE0))OT9ce@xv+MTCT(emyMI4@P~X^d^$$ z%|3JFcI~Td=*^d;VJ(NQahC zQ>l))p~Oyjm8_8+Bo+9)?>^t;V@+)133T>f7=^fvvJu;!qXb9xh|EJXK0;>4SV8xb z+hAVQtdajbfz9D@WM$oe_=KfM#Fv~#vm&Lw* znT@%<`B|opfAD)UAvS3{Em7EXYQ}#jEwTFaH)TJGlliNvxcp_L{kK0kA9q*N7A>$5 zx<_YYj}eVfvt(~uv~ofB27UE9ZA}EQKD*feAAaT#wOyR81v_~SEQ`cQinisJEe(Ym zgiS6SQy=$$MBkT_o5*p(0jj(s2JV-Xr}>-X2^^*raCd(J)Q8K3ojf0*%9*w-HU;|#Ri*e9mrM#6^2Fs0(-j@xKH#l~EA zB9$KlvS$ZRlQsMRg9C>2zfk;Waypl~xVH|pM-^WW-H(Mx!s#(?DlzP-X!=H;Fcro` zS!a_;v;bGXy`k4adR^%4hORQpZg_k2duVn)%BLycOJwN)N-gy!DwN$neD$LL?9(6! z7wY0AdsGZYiC?dsOC-WffA*RM2K9k?urU75-5D^N+jyym^r)VqPq8mAqC7?Wg*VlK zd%Sn28mKt%z+Wv+BO=rRLrc8kA?Js{@p3}VKK5MTX0Q6O>M{*)Qtu1UPS!Vl}e_--M>IO+NIhMPgs5=;l z{5dws8>$WnAF|(oP~oZ$H2p!LeP$%s@T$xi%OiMDN#T!J@$&`x^Ou_JXbGSqcB(xJ z^^2X&X{INjef#>{=xka#Ul|8PC{0wS& z6k-eq5`j7D($G~Dchfhx`$gBu1-7ny$(rBEf_!Entp9lwlwHtma7M@NPX>sR8%DuW zI4OB?VKTxio+88h`@)s#7~LOArHC))XmI17U0A+zV3x~?3S06lxz>)Zi=wvuD2c9X z!P43XQoZ3X9(_C$%7?KIh+gp^sAJrkMM=N<6XPH=sAR9Xj;WW9AS9r zXoU)jJJyiR{#tPNhlM|L`ZzyzSgzwdaA7SBOxnY@uhIvC#5ebkgPv1BC%mPb?J*2T z@YUN_;tGNBv2bD^vgfMm$?e>c{RVfrzsH&8!|CVQp2C4>e6b`yQgsW0#G2ZjvFubB zggI`8I7evdc2*`jMt~6Nr{T?k&JbhIr?9b_2FEzQ8(IZ91Bp-XuX{HN!L7*EiX&Jb z@cVAq6v=#nN}~46=UfEX{-Mirs%aQ(`PBNIgPkEf)NU*`>m}5^OQugiZJa(oHrqst zWfGT;>OVz%B%#4fo#^*WewKBudjvuGy^@Sgo^5c8iebDVR{@@nX9t-RI^gFy5_U%x zB8;*+;z2W44IIq=m>v6*2HUq^%1@1$73=#Yc`-z$6$lGNy!{^wz%n(4cYmTI91<6@ zboOe1Z~JY-JNAbFswuE-_q+&fhKvjsMe#6tOw%F~@m*QY-+c4M*9F*qsm4bL*MTvU zi{H%_VyyghlA7r!gqJhvv`AQ8f;Exi!cc+>vRe&}Q^5;5PmWlVt~Nlq$1!^TXp{${ z$@M%5^8%iZrTrwvu`q6>z&PChDWg*Z#`o!})M> zYckp}Ngv@3GG%$$*3kMRO3{Vz0oQ(*fq+IKNU{ok^+os;W3hJELy3rQK$|!>OF9BL zWZmbliQwS}2AaoW>cRAgex(R%yC+`JT2JtW19F)SEl3}(PjitJqpO8@g4?7PXCo}X zW|Ok@&xA~=J%k~OgO@n?ySwGUT^<7$D%KFtbYa%3`0NWux9194O6@^kS^oDzX(YJs zuRbw!9uFP2t9sT+5dU5?OV`wC0z9o&(r1Yb0#VMc3zeVI@9pKqCp!bdq;~w1C;@8M zpYuM6b%uSe&-k-syDiMK4x7vfS4W6rC820Qy>*hdd{Q0)^;$mb;ht5C4-03RB^ z>a#mu4vnxVx6YX%&xiH>@2RvE*3|RFO<^$%xh_O@LmHa-4fbvv(r2uN@T|PVdS|=N-wSTl7D@+Hewi0a$s&F`*;jJbY;15lS^m*?S z^dXWuf&5u4!Xs@eEAt7W{qJ+Ub_;6%$8U;}V ztP4Ce*ymmt;tqxe7d2f051;k3ZAfJC&_()q`b&m7oGiw%dBpky;+t09pY97|nIA)_ z1PQPk{A%blk}d2Sr3G>R|ISDDsbfL({qXld-k&HDQxpU3^krX1ste&$z5F1{*(o3x zUI@z-YJ?|9o$vZHiSi^qQddQ~!;#&jI``U0@Kz*c7C2oGH#DU?ujlxp_-)8_3cEH~ zV05MOMf-mnqt@4)B*dFK>*|=pF$t%8nLbi~>;US^GCgbTAs{Nk=&YOS3xB6^wmyvC z9#WZq*a7`qx05VRjl&(TD^&H5mSEt!mykh<3ygNJGIHfQgN04B-6JGV&XZYM(k+3I z`GKcrvg%=!aGAx0p8#{+gVc1Al`xR+>bfI90JmpO##!inFa_)Vqz_(!8&)ArKT$hS z?@ghlBp!I!PAeO3X98{B`Uyel8lZV#-<-T&0|f<7(r=>QyDslH=TtBUcl|ZZlBUsk zXLVw9j%tG6@zy0A=)E5N_R-FWFB!)A-_9gO`va$ZH@_bGo=wj)gd$M8X7$*KMKnKI zXwHX9Cl3O7V*0^{J6zaXT6T6*H*!pW>ZwF8p$+`jnX_$C|6>Q~rWYpSSW0r;rStwN zAQvM>c@7phQ&M$ktH*f0j8mK)TWGY8|JLFL=o;1n6AohxR zHLDW&9RsiI=nVBjsP5;+Q^d%>pDTCI{lpl&Xk=pbM&~IuIv9vX`a{{f@45HUymfRt z`(98S4@L~Hd|##b0#PA(j{zFDd_Rc8vXCEr?S6~Zlaqg7oi$mivu_w+r!7i`mjcmd%sx*Vl;<)gtMD8Y@xq6fI&8CG@L5wD4U`8yweYyu=?B@+q@e8FTU zfv#SH09Xmtr3}>e;Z`YVMCU(SNZBbt{S*%x7>Ja&;k3khx)j3S5EwMND)Uf$n{DDD z?|35I=U=k@p63hMCdqikbbokzzieyEw+7zogy!ImZ9wtWW%IaPUyvHQ_1;R10GB)D z!#$DQSN~ve1g)=I4ZDS=DgMxGk@__jwV8MHPhLaowT>oi>wldElg^Ey>*#qZ_7To_ zz3GIZF~ysYo-txCIA3T}qWd@v=G|F9ew7n~L#p@D^ZxY*s1CzNF1nV|&Ls#wHX}on z=ni=otl9(Zwm?{>P)r-OtB#IHsi5~PLc9EO+N28{r01;dZ+pSlBbAOfO%Gw;pT2L4 z;yQq7`0EN6P;7wp`K0d`(ED~=>8pJziSz}97=qR2JV^Y}>#WiG1#a`5Jtn9>aJ2Ey z2P890I3og1BA%=6a*hDhzN6H+bUZxt-*-a!6+C)b4+;<;u2b5^1(98dPp;i~b-NkJ z#dYNijSErylWa{8;f*D3Nsk8P`9szb70ahAQ!vV`7PeD}{B(Y=f9Yv1g8eHy^3Km_ zUq2@=saEU^H+LTK+ar0YMNoHNjW3+%>i#q27z?=TWzy1!ckRPw*qCxI;yE8Q)zB@~ z2dsJ`a%fXO))L~TngIZaDIVAX#Bk8p2cySzfBc6IQX^w_VN zyIwF=IOweafyiqkecZ58AC$>`^hOS30f$U#;5y0=O!V}RP^{7i;YeEJ^(yCoQXhsd zA30Hnc)!h7zZrb?$pFonW2uz*D6sqss4Ikb)heE6@{rw{rN`iN&kKI(IB<)6LvgR>dQVe>m{3eN2gn`agx-27kZ52`n_3zL71LjNI8*XJ)6VD=5)pYEFxU~}AV z)yAd)dTw&b+|2idfQM3{PDtL`C**Y*?b|s=_RU;JBUEQD72E^X4 zT^8@nfoc6)*5X=ypwuItk&;h@T?DVxNy-8Dg03I&NWQuguqM@B57oqP&O~c?!QF7$ z9(Kcz6L36;?EF)@|H~a6}&YCAWDBp>{VTJM?@wq}YZQ$u~K}SI^R{1SJCS zWjh$XLv0hP-l!lX&whxj5O7U^TCN%O&}#^Hdsobw{VT#fh*kx7Bl+Z*ivEX>g@{ME z{0}&{1AgM>&EO74C^)<*CV6BW#Tk=Se3nMRjsME;(&lbxxoD!&dS@9#GTDBAsd5Jr z_9xGJy3l;zArNh;5TJuLLbJ5d1q47Lbp!*s%H*1Su-f56!iHgOIo%BVSiDNM2D0!9BnOyGp`c?+4Mq zuAZt}+UX3`VX-})997_S^+D(gw$b)l#H7HQ%)+clc7# z*L76nHwe%uoQ=Fs0J|o$X|i5ts41^`nX8rv4XWh{F}D^#rUADfi>`oylcohW$dB3> z+HXyLBp#e|+@1~bBHZXv1yNc9FRmg2S!O zZzQN2A>fR{Y{EGC(o>~wfuErNKh57v0^rZs{#{g%lI=~{Sf zZF{UqBpc#)Z)3I!1Qh@0xICX*4I2Ag1{6a2;Lj&i%}H?r`3q@yd{0%vWiMZul5hHu zQM(6#KzQBW_uNT05`m`0h(_~S0py9KUsAaJ1GWdbWl0Y9Lw+eI&*l0di0bDKekol6 zypnTW3)c1Eb*idP(hlWg81RZ3cIm@0yG+)njYvOd9j?bDcRYS0Iw2cAb#gU8|7v6eS+W&U6h^!Bu<(hQh}9I#kXn*@%H)8~p~ za^U8}bv5l)Z@AUS@>Pf{9WJ!(J3E!s1FwXihb(@bg1_oPvOC-`Culfw{{a1yU!Nxx z`Gbbx$!wO^elY*an+I7gurXdmevuFHUrKBH9Ex&>_eMcp=Pu#F+3DCx@oay{)lZGQ zisUJ;vLY4KukKGj;n}1Q?Aa$c-3Ic%f>0Rd`EZZM z9OWhUE+~xq9yLubqyOJtXZ`L*u{s=5YyKsH_PrF| zvqi~`FClwCVUwZ~@d~~;5Jv%f_A$+k%bGplmA2Wk{h<+BM$D>Gs(c|f!6S`SjsUmJ zd2UKI>i?6@aK7WZ^|car5Co?0Sx9z~bdj^vbV0e+L^A{WUz|yU(#Mc|zt$5kgyf>w z9`QsWI8@~^wm)u#zCs_~F6A~j+4o{R@NOdnMtU5+i}*0w!=pUIYTXep`RPIjv`+k| zPrAeUUibv%ape_NlLri?{~K>;{?Liobt60RV52jKm~tuzE6r~PnP|?GLmM8(ZALDt5nwc%467&v|2q@sB_v(VchvExyou zO}wd8kpN*I>;}bATiPPp|9QPX@RQ?Pa|_)eN2W6;*mfSaiL7!#Diu~;<%Km`TOe#G zxsC6`D6szgh%%;sL0_8&ha)E=X0(Tgid_e;fE~NXr3k0=Jn@xRjXHGh{$My!;|z^O zce^8lD&Y8EU|Tz+G3qS^=k!78L!Vi0Ej;wlrI%M+BYP*Ougw{V+7RD8+1be< z*TolW*?OH{hI1dOs2N&=f;mDZpx2zwCD#*|&e&UxD{xq67XZ9>f(S5cJ0x zti`f5?YqCikxT>nqDgP?KO7mJ*zFFi91Sa)Luh;%j4ipuX8_N-CPN!)x6`QkZj8mi z&Ts8(v0=pbb=1HhO&<@sN&<&t5$}P;i-_TCBkJHjs2`?^ zhqYu)r%X`%T+)RJN?EgT8m^_QC?%1Q0N(+{OJw|HoZWsSCBKCirP@4g134 ztaFbJlJ1&5#~o!hplNLU4=%9|UOKA1Tz-u52RQ?(I`1_g-W;u`8%00h3;CYMxC-c` zq$h_*{UMGxnaBR}2B;gdd@B9!4w-S}FPR4{p~HdYJ^8aZ*a>miG8#kkc}>>%Bf8J) zv@E$Rj{>3hvS6`yhdaVkHuTfqngl℞vN9zDQK7#Z~b$wmwlM3aF}aL@5sO3NB&wG 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
    dh_NU(-;ul(vk>Jz=84=F?Wx%O6 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 literal 0 HcmV?d00001