From 0fdbfdcecba0e61cc083faa7ad2d00d9c88ebce4 Mon Sep 17 00:00:00 2001 From: Javier Date: Mon, 24 Jul 2023 17:01:50 +0200 Subject: [PATCH 1/9] first step towards adding an example on how to reproduce a kaggle notebook (details in the code) with this library --- .gitignore | 1 + .../kaggle_wide_deep_model.py | 197 ++++++++++++++++++ .../ml100k_data_preparation.py | 117 +++++++++++ .../models/tabular/linear/wide.py | 29 ++- pytorch_widedeep/models/text/__init__.py | 1 + .../models/text/basic_transformer.py | 95 +++++++++ 6 files changed, 431 insertions(+), 9 deletions(-) create mode 100644 examples/scripts/wide_deep_for_recsys/kaggle_wide_deep_model.py create mode 100644 examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py create mode 100644 pytorch_widedeep/models/text/basic_transformer.py diff --git a/.gitignore b/.gitignore index 73d45c00..857dc08d 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ tmp_dir/ weights/ pretrained_weights/ model_weights/ +prepared_data/ # Unit Tests/Coverage .coverage diff --git a/examples/scripts/wide_deep_for_recsys/kaggle_wide_deep_model.py b/examples/scripts/wide_deep_for_recsys/kaggle_wide_deep_model.py new file mode 100644 index 00000000..8f08cd1f --- /dev/null +++ b/examples/scripts/wide_deep_for_recsys/kaggle_wide_deep_model.py @@ -0,0 +1,197 @@ +from pathlib import Path + +import numpy as np +import pandas as pd +import torch +from torch import nn, cat, mean +from scipy.sparse import coo_matrix + +device = "cuda" if torch.cuda.is_available() else "cpu" + +save_path = Path("prepared_data") + + +def get_coo_indexes(lil): + rows = [] + cols = [] + for i, el in enumerate(lil): + if type(el) != list: + el = [el] + for j in el: + rows.append(i) + cols.append(j) + return rows, cols + + +def get_sparse_features(series, shape): + coo_indexes = get_coo_indexes(series.tolist()) + sparse_df = coo_matrix( + (np.ones(len(coo_indexes[0])), (coo_indexes[0], coo_indexes[1])), shape=shape + ) + return sparse_df + + +def sparse_to_idx(data, pad_idx=-1): + indexes = data.nonzero() + indexes_df = pd.DataFrame() + indexes_df["rows"] = indexes[0] + indexes_df["cols"] = indexes[1] + mdf = indexes_df.groupby("rows").apply(lambda x: x["cols"].tolist()) + max_len = mdf.apply(lambda x: len(x)).max() + return mdf.apply(lambda x: pd.Series(x + [pad_idx] * (max_len - len(x)))).values + + +def idx_to_sparse(idx, sparse_dim): + sparse = np.zeros(sparse_dim) + sparse[int(idx)] = 1 + return pd.Series(sparse, dtype=int) + + +def process_cats_as_kaggle_notebook(df): + df["gender"] = (df["gender"] == "M").astype(int) + df = pd.concat( + [ + df.drop("occupation", axis=1), + pd.get_dummies(df["occupation"]).astype(int), + ], + axis=1, + ) + df.drop("other", axis=1, inplace=True) + df.drop("zip_code", axis=1, inplace=True) + + return df + + +id_cols = ["user_id", "movie_id"] + +df_train = pd.read_pickle(save_path / "df_train.pkl") +df_valid = pd.read_pickle(save_path / "df_valid.pkl") +df_test = pd.read_pickle(save_path / "df_test.pkl") +df_test = pd.concat([df_valid, df_test], ignore_index=True) + +df_train = process_cats_as_kaggle_notebook(df_train) +df_test = process_cats_as_kaggle_notebook(df_test) + +# here is another caveat, using all dataset to build 'train_movies_watched' +# when in reality one should use only the training +max_movie_index = max(df_train.movie_id.max(), df_test.movie_id.max()) + +X_train = df_train.drop(id_cols + ["prev_movies", "target"], axis=1) +y_train = df_train.target.values +train_movies_watched = get_sparse_features( + df_train["prev_movies"], (len(df_train), max_movie_index + 1) +) + +X_test = df_test.drop(id_cols + ["prev_movies", "target"], axis=1) +y_test = df_test.target.values +test_movies_watched = get_sparse_features( + df_test["prev_movies"], (len(df_test), max_movie_index + 1) +) + +PAD_IDX = 0 + +X_train_tensor = torch.Tensor(X_train.fillna(0).values).to(device) +train_movies_watched_tensor = ( + torch.sparse_coo_tensor( + indices=train_movies_watched.nonzero(), + values=[1] * len(train_movies_watched.nonzero()[0]), + size=train_movies_watched.shape, + ) + .to_dense() + .to(device) +) +movies_train_sequences = ( + torch.Tensor( + sparse_to_idx(train_movies_watched, pad_idx=PAD_IDX), + ) + .long() + .to(device) +) +target_train = torch.Tensor(y_train).long().to(device) + + +X_test_tensor = torch.Tensor(X_test.fillna(0).values).to(device) +test_movies_watched_tensor = ( + torch.sparse_coo_tensor( + indices=test_movies_watched.nonzero(), + values=[1] * len(test_movies_watched.nonzero()[0]), + size=test_movies_watched.shape, + ) + .to_dense() + .to(device) +) +movies_test_sequences = ( + torch.Tensor( + sparse_to_idx(test_movies_watched, pad_idx=PAD_IDX), + ) + .long() + .to(device) +) +target_test = torch.Tensor(y_test).long().to(device) + + +class WideAndDeep(nn.Module): + def __init__( + self, + continious_feature_shape, # number of continious features + embed_size, # size of embedding for binary features + embed_dict_len, # number of unique binary features + pad_idx, # padding index + ): + super(WideAndDeep, self).__init__() + self.embed = nn.Embedding(embed_dict_len, embed_size, padding_idx=pad_idx) + self.linear_relu_stack = nn.Sequential( + nn.Linear(embed_size + continious_feature_shape, 1024), + nn.ReLU(), + nn.Linear(1024, 512), + nn.ReLU(), + nn.Linear(512, 256), + nn.ReLU(), + ) + self.head = nn.Sequential( + nn.Linear(embed_dict_len + 256, embed_dict_len), + ) + + def forward(self, continious, binary, binary_idx): + # get embeddings for sequence of indexes + binary_embed = self.embed(binary_idx) + binary_embed_mean = mean(binary_embed, dim=1) + # get logits for "deep" part: continious features + binary embeddings + deep_logits = self.linear_relu_stack( + cat((continious, binary_embed_mean), dim=1) + ) + # get final softmax logits for "deep" part and raw binary features + total_logits = self.head(cat((deep_logits, binary), dim=1)) + return total_logits + + +model = WideAndDeep(X_train.shape[1], 16, max_movie_index + 1, PAD_IDX).to(device) +print(model) + + +EPOCHS = 10 +loss_fn = nn.CrossEntropyLoss(ignore_index=PAD_IDX) +optimizer = torch.optim.Adam(model.parameters(), lr=1e-3) + +for t in range(EPOCHS): + model.train() + pred_train = model( + X_train_tensor, train_movies_watched_tensor, movies_train_sequences + ) + loss_train = loss_fn(pred_train, target_train) + + # Backpropagation + optimizer.zero_grad() + loss_train.backward() + optimizer.step() + + model.eval() + with torch.no_grad(): + pred_test = model( + X_test_tensor, test_movies_watched_tensor, movies_test_sequences + ) + loss_test = loss_fn(pred_test, target_test) + + print(f"Epoch {t}") + print(f"Train loss: {loss_train:>7f}") + print(f"Test loss: {loss_test:>7f}") diff --git a/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py b/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py new file mode 100644 index 00000000..4a11f268 --- /dev/null +++ b/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py @@ -0,0 +1,117 @@ +from pathlib import Path + +import pandas as pd + +from sklearn.model_selection import train_test_split + +raw_data_path = Path("~/ml_projects/wide_deep_learning_for_recsys/ml-100k") + +save_path = Path("prepared_data") +if not save_path.exists(): + save_path.mkdir(parents=True, exist_ok=True) + +# Load the Ratings/Interaction (triplets (user, item, rating) plus timestamp) +data = pd.read_csv(raw_data_path / "u.data", sep="\t", header=None) +data.columns = ["user_id", "movie_id", "rating", "timestamp"] + +# Load the User features +users = pd.read_csv(raw_data_path / "u.user", sep="|", encoding="latin-1", header=None) +users.columns = ["user_id", "age", "gender", "occupation", "zip_code"] + +# Load the Item features +items = pd.read_csv(raw_data_path / "u.item", sep="|", encoding="latin-1", header=None) +items.columns = [ + "movie_id", + "movie_title", + "release_date", + "video_release_date", + "IMDb_URL", + "unknown", + "Action", + "Adventure", + "Animation", + "Children's", + "Comedy", + "Crime", + "Documentary", + "Drama", + "Fantasy", + "Film-Noir", + "Horror", + "Musical", + "Mystery", + "Romance", + "Sci-Fi", + "Thriller", + "War", + "Western", +] + +list_of_genres = pd.read_csv( + raw_data_path / "u.genre", sep="|", header=None, usecols=[0] +)[0].tolist() +list_of_genres + +# adding a column with the number of movies watched per user +dataset = data.sort_values(["user_id", "timestamp"]).reset_index(drop=True) +dataset["one"] = 1 +dataset["num_watched"] = dataset.groupby("user_id")["one"].cumsum() +dataset.drop("one", axis=1, inplace=True) + +# adding a column with the mean rating at a point in time per user +dataset["mean_rate"] = ( + dataset.groupby("user_id")["rating"].cumsum() / dataset["num_watched"] +) + +# In this particular exercise the problem is formulating as predicting the +# next movie that will be watched (in consequence the last interactions will be discarded) +dataset["target"] = dataset.groupby("user_id")["movie_id"].shift(-1) + +# Here the author builds the sequences +dataset["prev_movies"] = dataset["movie_id"].apply(lambda x: str(x)) +dataset["prev_movies"] = ( + dataset.groupby("user_id")["prev_movies"] + .apply(lambda x: (x + " ").cumsum().str.strip()) + .reset_index(drop=True) +) +dataset["prev_movies"] = dataset["prev_movies"].apply(lambda x: x.split()) + +# Adding a genre_rate as the mean of all movies rated for a given genre per +# user +dataset = dataset.merge(items[["movie_id"] + list_of_genres], on="movie_id", how="left") +for genre in list_of_genres: + dataset[f"{genre}_rate"] = dataset[genre] * dataset["rating"] + dataset[genre] = dataset.groupby("user_id")[genre].cumsum() + dataset[f"{genre}_rate"] = ( + dataset.groupby("user_id")[f"{genre}_rate"].cumsum() / dataset[genre] + ) +dataset[list_of_genres] = dataset[list_of_genres].apply( + lambda x: x / dataset["num_watched"] +) + +# Adding user features +dataset = dataset.merge(users, on="user_id", how="left") + +# Again, we use the same settings as those in the Kaggle notebook, +# but 'COLD_START_TRESH' is pretty aggressive +COLD_START_TRESH = 5 + +filtred_data = dataset[ + (dataset["num_watched"] >= COLD_START_TRESH) & ~(dataset["target"].isna()) +].sort_values("timestamp") +train_data, _test_data = train_test_split(filtred_data, test_size=0.2, shuffle=False) +valid_data, test_data = train_test_split(_test_data, test_size=0.5, shuffle=False) + +cols_to_drop = [ + "rating", + "timestamp", + "num_watched", +] + +df_train = train_data.drop(cols_to_drop, axis=1) +df_valid = valid_data.drop(cols_to_drop, axis=1) +df_test = test_data.drop(cols_to_drop, axis=1) + +df_train.to_pickle(save_path / "df_train.pkl") +df_valid.to_pickle(save_path / "df_valid.pkl") +df_test.to_pickle(save_path / "df_test.pkl") diff --git a/pytorch_widedeep/models/tabular/linear/wide.py b/pytorch_widedeep/models/tabular/linear/wide.py index 795627d7..2867d056 100644 --- a/pytorch_widedeep/models/tabular/linear/wide.py +++ b/pytorch_widedeep/models/tabular/linear/wide.py @@ -3,7 +3,7 @@ import torch from torch import nn -from pytorch_widedeep.wdtypes import Tensor +from pytorch_widedeep.wdtypes import Union, Tensor class Wide(nn.Module): @@ -38,17 +38,25 @@ class Wide(nn.Module): >>> out = wide(X) """ - def __init__(self, input_dim: int, pred_dim: int = 1): + def __init__( + self, input_dim: int, already_one_hot: bool = False, pred_dim: int = 1 + ): super(Wide, self).__init__() self.input_dim = input_dim + self.already_one_hot = already_one_hot self.pred_dim = pred_dim - # Embeddings: val + 1 because 0 is reserved for padding/unseen cateogories. - self.wide_linear = nn.Embedding(input_dim + 1, pred_dim, padding_idx=0) - # (Sum(Embedding) + bias) is equivalent to (OneHotVector + Linear) - self.bias = nn.Parameter(torch.zeros(pred_dim)) - self._reset_parameters() + if self.already_one_hot: + self.wide_linear: Union[nn.Linear, nn.Embedding] = nn.Linear( + input_dim, pred_dim + ) + else: + # Embeddings: val + 1 because 0 is reserved for padding/unseen cateogories. + self.wide_linear = nn.Embedding(input_dim + 1, pred_dim, padding_idx=0) + # (Sum(Embedding) + bias) is equivalent to (OneHotVector + Linear) + self.bias = nn.Parameter(torch.zeros(pred_dim)) + self._reset_parameters() def _reset_parameters(self) -> None: r"""initialize Embedding and bias like nn.Linear. See [original @@ -60,7 +68,10 @@ def _reset_parameters(self) -> None: nn.init.uniform_(self.bias, -bound, bound) def forward(self, X: Tensor) -> Tensor: - r"""Forward pass. Simply connecting the Embedding layer with the ouput + r"""Forward pass. Simply connecting the Embedding/Linear layer with the ouput neuron(s)""" - out = self.wide_linear(X.long()).sum(dim=1) + self.bias + if self.already_one_hot: + out = self.wide_linear(X) + else: + out = self.wide_linear(X.long()).sum(dim=1) + self.bias return out diff --git a/pytorch_widedeep/models/text/__init__.py b/pytorch_widedeep/models/text/__init__.py index 4dec7578..4a9afc06 100644 --- a/pytorch_widedeep/models/text/__init__.py +++ b/pytorch_widedeep/models/text/__init__.py @@ -1,5 +1,6 @@ from pytorch_widedeep.models.text.basic_rnn import BasicRNN from pytorch_widedeep.models.text.attentive_rnn import AttentiveRNN +from pytorch_widedeep.models.text.basic_transformer import Transformer from pytorch_widedeep.models.text.stacked_attentive_rnn import ( StackedAttentiveRNN, ) diff --git a/pytorch_widedeep/models/text/basic_transformer.py b/pytorch_widedeep/models/text/basic_transformer.py new file mode 100644 index 00000000..64415064 --- /dev/null +++ b/pytorch_widedeep/models/text/basic_transformer.py @@ -0,0 +1,95 @@ +import math + +import torch +from torch import nn + +from pytorch_widedeep.wdtypes import Union, Tensor, Optional +from pytorch_widedeep.models.tabular.transformers._encoders import ( + TransformerEncoder, +) + + +class Transformer(nn.Module): + def __init__( + self, + vocab_size: int, + embed_dim: int, + n_heads: int, + n_blocks: int, + attn_dropout: float = 0.1, + ff_dropout: float = 0.1, + activation: str = "gelu", + ff_dim_multiplier: float = 1.0, + *, + with_pos_encoding: bool = True, + pos_encoding_dropout: float = 0.1, + seq_length: Optional[int] = None, + pos_encoder: Optional[nn.Module] = None, + ): + super().__init__() + + self.embed_dim = embed_dim + self.n_heads = n_heads + self.n_blocks = n_blocks + self.attn_dropout = attn_dropout + self.ff_dropout = ff_dropout + self.activation = activation + self.ff_dim_multiplier = ff_dim_multiplier + self.with_pos_encoding = with_pos_encoding + self.pos_encoding_dropout = pos_encoding_dropout + self.seq_length = seq_length + + self.embedding = nn.Embedding(vocab_size, embed_dim) + + if with_pos_encoding: + if pos_encoder is not None: + self.pos_encoder: Union[ + nn.Module, nn.Identity, PositionalEncoding + ] = self.pos_encoder + else: + assert ( + seq_length is not None + ), "If positional encoding is used 'seq_length' must be passed to the model" + self.pos_encoder = PositionalEncoding( + embed_dim, pos_encoding_dropout, seq_length + ) + else: + self.pos_encoder = nn.Identity() + + self.encoder = nn.Sequential() + for i in range(n_blocks): + self.encoder.add_module( + "transformer_block" + str(i), + TransformerEncoder( + embed_dim, + n_heads, + False, # use_qkv_bias + attn_dropout, + ff_dropout, + activation, + ), + ) + + def forward(self, X: Tensor) -> Tensor: + x = self.embedding(X) + x = self.pos_encoder(x) + out = self.encoder(x) + return out + + +class PositionalEncoding(nn.Module): + def __init__(self, embed_dim: int, dropout: float, seq_length: int): + super().__init__() + self.dropout = nn.Dropout(p=dropout) + + position = torch.arange(seq_length).unsqueeze(1) + div_term = torch.exp( + torch.arange(0, embed_dim, 2) * (-math.log(10000.0) / embed_dim) + ) + pe = torch.zeros(seq_length, 1, embed_dim) + pe[:, 0, 0::2] = torch.sin(position * div_term) + pe[:, 0, 1::2] = torch.cos(position * div_term) + self.register_buffer("pe", pe) + + def forward(self, X: Tensor) -> Tensor: + return self.dropout(X + self.pe) From 21759eefe4fe56513ffec70f500511fe3cca165b Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 27 Jul 2023 10:50:04 +0200 Subject: [PATCH 2/9] Added scripts on how to use the library for recsys in response to issue #133. Also Added a simple/basic transformer model for the text component before integrating with HF. Also added the option of specify the dimension of the feed forward network --- .../kaggle_wide_deep_model.py | 8 +- .../ml100k_data_preparation.py | 10 +- .../pytorch_wide_deep_opt1.py | 216 ++++++++++++++++++ .../pytorch_wide_deep_opt2.py | 130 +++++++++++ pytorch_widedeep/models/__init__.py | 1 + .../models/tabular/linear/wide.py | 29 +-- .../tabular/transformers/_attention_layers.py | 12 +- .../models/tabular/transformers/_encoders.py | 23 +- .../tabular/transformers/ft_transformer.py | 12 +- .../models/tabular/transformers/saint.py | 6 + .../tabular/transformers/tab_fastformer.py | 7 + .../tabular/transformers/tab_perceiver.py | 7 + .../tabular/transformers/tab_transformer.py | 6 + .../models/text/basic_transformer.py | 123 ++++++++-- .../preprocessing/text_preprocessor.py | 10 +- pytorch_widedeep/training/trainer.py | 1 + pytorch_widedeep/utils/fastai_transforms.py | 1 + pytorch_widedeep/utils/text_utils.py | 16 +- 18 files changed, 558 insertions(+), 60 deletions(-) create mode 100644 examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt1.py create mode 100644 examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt2.py diff --git a/examples/scripts/wide_deep_for_recsys/kaggle_wide_deep_model.py b/examples/scripts/wide_deep_for_recsys/kaggle_wide_deep_model.py index 8f08cd1f..4036f009 100644 --- a/examples/scripts/wide_deep_for_recsys/kaggle_wide_deep_model.py +++ b/examples/scripts/wide_deep_for_recsys/kaggle_wide_deep_model.py @@ -1,8 +1,14 @@ +# This script is mostly a copy/paste from the Kaggle notebook +# https://www.kaggle.com/code/matanivanov/wide-deep-learning-for-recsys-with-pytorch. +# Is a response to the issue: +# https://github.com/jrzaurin/pytorch-widedeep/issues/133. +# In this script we run the exact same model used in that Kaggle notebook + from pathlib import Path import numpy as np -import pandas as pd import torch +import pandas as pd from torch import nn, cat, mean from scipy.sparse import coo_matrix diff --git a/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py b/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py index 4a11f268..ebcf82b1 100644 --- a/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py +++ b/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py @@ -1,7 +1,13 @@ +# This script is mostly a copy/paste from the Kaggle notebook +# https://www.kaggle.com/code/matanivanov/wide-deep-learning-for-recsys-with-pytorch. +# Is a response to the issue: +# https://github.com/jrzaurin/pytorch-widedeep/issues/133 In this script we +# simply prepare the data that will later be used for a custom Wide and Deep +# model and for Wide and Deep models created using this library + from pathlib import Path import pandas as pd - from sklearn.model_selection import train_test_split raw_data_path = Path("~/ml_projects/wide_deep_learning_for_recsys/ml-100k") @@ -103,7 +109,7 @@ valid_data, test_data = train_test_split(_test_data, test_size=0.5, shuffle=False) cols_to_drop = [ - "rating", + # "rating", "timestamp", "num_watched", ] diff --git a/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt1.py b/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt1.py new file mode 100644 index 00000000..4258d9a3 --- /dev/null +++ b/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt1.py @@ -0,0 +1,216 @@ +# In this script I illustrate how one coould use our library to reproduce +# almost exactly the same model used in the Kaggle Notebook + +from pathlib import Path + +import numpy as np +import torch +import pandas as pd +from torch import nn +from scipy.sparse import coo_matrix + +from pytorch_widedeep import Trainer +from pytorch_widedeep.models import TabMlp, BasicRNN, WideDeep +from pytorch_widedeep.preprocessing import TabPreprocessor + +device = "cuda" if torch.cuda.is_available() else "cpu" + +save_path = Path("prepared_data") + +PAD_IDX = 0 + + +def get_coo_indexes(lil): + rows = [] + cols = [] + for i, el in enumerate(lil): + if type(el) != list: + el = [el] + for j in el: + rows.append(i) + cols.append(j) + return rows, cols + + +def get_sparse_features(series, shape): + coo_indexes = get_coo_indexes(series.tolist()) + sparse_df = coo_matrix( + (np.ones(len(coo_indexes[0])), (coo_indexes[0], coo_indexes[1])), shape=shape + ) + return sparse_df + + +def sparse_to_idx(data, pad_idx=-1): + indexes = data.nonzero() + indexes_df = pd.DataFrame() + indexes_df["rows"] = indexes[0] + indexes_df["cols"] = indexes[1] + mdf = indexes_df.groupby("rows").apply(lambda x: x["cols"].tolist()) + max_len = mdf.apply(lambda x: len(x)).max() + return mdf.apply(lambda x: pd.Series(x + [pad_idx] * (max_len - len(x)))).values + + +id_cols = ["user_id", "movie_id"] + +df_train = pd.read_pickle(save_path / "df_train.pkl") +df_valid = pd.read_pickle(save_path / "df_valid.pkl") +df_test = pd.read_pickle(save_path / "df_test.pkl") +df_test = pd.concat([df_valid, df_test], ignore_index=True) + +# here is another caveat, using all dataset to build 'train_movies_watched' +# when in reality one should use only the training +max_movie_index = max(df_train.movie_id.max(), df_test.movie_id.max()) + +X_train = df_train.drop(id_cols + ["rating", "prev_movies", "target"], axis=1) +y_train = np.array(df_train.target.values, dtype="int64") +train_movies_watched = get_sparse_features( + df_train["prev_movies"], (len(df_train), max_movie_index + 1) +) + +X_test = df_test.drop(id_cols + ["rating", "prev_movies", "target"], axis=1) +y_test = np.array(df_test.target.values, dtype="int64") +test_movies_watched = get_sparse_features( + df_test["prev_movies"], (len(df_test), max_movie_index + 1) +) + +cat_cols = ["gender", "occupation", "zip_code"] +cont_cols = [c for c in X_train if c not in cat_cols] +tab_preprocessor = TabPreprocessor( + cat_embed_cols=cat_cols, + continuous_cols=cont_cols, +) + +# The sparse matrices need to be turned into dense whether at array or tensor +# stage. This is one of the reasons why the wide component in our library is +# implemented as Embeddings. However, our implementation is still not +# suitable for the type of pre-processing that the author of the Kaggle +# notebook did to come up with the what it would be the wide component +# (a sparse martrix with 1s at those locations corresponding to the movies +# that a user has seen at a point in time). Therefore, we will have to code a +# Wide model (fairly simple since it is a linear layer) +X_train_wide = np.array(train_movies_watched.todense()) +X_test_wide = np.array(test_movies_watched.todense()) + +# Here our tabular component is a bit more elaborated than that in the +# notebook, just a bit... +X_train_tab = tab_preprocessor.fit_transform(X_train.fillna(0)) +X_test_tab = tab_preprocessor.transform(X_test.fillna(0)) + +# The text component are the sequences of movies wacthed. There is an element +# of information redundancy here in my opinion. This is because the wide and +# text components have implicitely the same information, but in different +# form. Anyway, we want to reproduce the Kaggle notebook as close as +# possible. +X_train_text = sparse_to_idx(train_movies_watched, pad_idx=PAD_IDX) +X_test_text = sparse_to_idx(test_movies_watched, pad_idx=PAD_IDX) + + +class Wide(nn.Module): + def __init__(self, input_dim: int, pred_dim: int): + super().__init__() + + self.input_dim = input_dim + self.pred_dim = pred_dim + + # The way I coded the library I never though that someone would ever + # wanted to code their own wide component. However, if you do, the + # wide component must have a 'wide_linear' attribute. In other words, + # the linear layer must be called 'wide_linear' + self.wide_linear = nn.Linear(input_dim, pred_dim) + + def forward(self, X): + out = self.wide_linear(X.type(torch.float32)) + return out + + +wide = Wide(X_train_wide.shape[1], max_movie_index + 1) + + +class SimpleEmbed(nn.Module): + def __init__(self, vocab_size: int, embed_dim: int, pad_idx: int): + super().__init__() + + self.vocab_size = vocab_size + self.embed_dim = embed_dim + self.pad_idx = pad_idx + + # The sequences of movies watched are simply embedded in the Kaggle + # notebook. No RNN, Transformer or any model is used + self.embed = nn.Embedding(vocab_size, embed_dim, padding_idx=pad_idx) + + def forward(self, X): + embed = self.embed(X) + embed_mean = torch.mean(embed, dim=1) + return embed_mean + + @property + def output_dim(self) -> int: + return self.embed_dim + + +# In the notebook the author uses simply embeddings +simple_embed = SimpleEmbed(max_movie_index + 1, 16, 0) +# but maybe one would like to use an RNN to account for the sequence nature of +# the problem formulation +basic_rnn = BasicRNN( + vocab_size=max_movie_index + 1, + embed_dim=16, + hidden_dim=32, + n_layers=2, + rnn_type="gru", +) + +tab_mlp = TabMlp( + column_idx=tab_preprocessor.column_idx, + cat_embed_input=tab_preprocessor.cat_embed_input, + continuous_cols=tab_preprocessor.continuous_cols, + cont_norm_layer=None, + mlp_hidden_dims=[1024, 512, 256], + mlp_activation="relu", +) + +# The main difference between this wide and deep model and the Wide and Deep +# model in the Kaggle notebook is that in that notebook, the author +# concatenates the embedings and the tabular features(which he refers +# as 'continuous'), then passes this concatenation through a stack of +# linear + Relu layers. Then concatenates this output with the binary +# features and connects this concatenation with the final linear layer. Our +# implementation follows the notation of the original paper and instead of +# concatenating the tabular, text and wide components, we first compute their +# output, and then add it (see here: https://arxiv.org/pdf/1606.07792.pdf, +# their Eq 3). Note that this is effectively the same with the caveat that +# while in one case we initialise a big weight matrix at once, in our +# implementation we initialise different matrices for different components. +# Anyway, let's give it a go. +wide_deep_model = WideDeep( + wide=wide, deeptabular=tab_mlp, deeptext=simple_embed, pred_dim=max_movie_index + 1 +) +# # To use an RNN, simply +# wide_deep_model = WideDeep( +# wide=wide, deeptabular=tab_mlp, deeptext=basic_rnn, pred_dim=max_movie_index + 1 +# ) + +trainer = Trainer( + model=wide_deep_model, + objective="multiclass", + custom_loss_function=nn.CrossEntropyLoss(ignore_index=PAD_IDX), + optimizers=torch.optim.Adam(wide_deep_model.parameters(), lr=1e-3), +) + +trainer.fit( + X_train={ + "X_wide": X_train_wide, + "X_tab": X_train_tab, + "X_text": X_train_text, + "target": y_train, + }, + X_val={ + "X_wide": X_test_wide, + "X_tab": X_test_tab, + "X_text": X_test_text, + "target": y_test, + }, + n_epochs=10, + batch_size=512, + shuffle=False, +) diff --git a/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt2.py b/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt2.py new file mode 100644 index 00000000..053a7f0b --- /dev/null +++ b/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt2.py @@ -0,0 +1,130 @@ +from pathlib import Path + +import numpy as np +import torch +import pandas as pd +from torch import nn + +from pytorch_widedeep import Trainer +from pytorch_widedeep.utils import pad_sequences +from pytorch_widedeep.models import TabMlp, WideDeep, Transformer +from pytorch_widedeep.preprocessing import TabPreprocessor + +save_path = Path("prepared_data") + +PAD_IDX = 0 + +id_cols = ["user_id", "movie_id"] + +df_train = pd.read_pickle(save_path / "df_train.pkl") +df_valid = pd.read_pickle(save_path / "df_valid.pkl") +df_test = pd.read_pickle(save_path / "df_test.pkl") +df_test = pd.concat([df_valid, df_test], ignore_index=True) + +# sequence length. Shorter sequences will be padded to this length. This is +# identical to the Kaggle's implementation +maxlen = max( + df_train.prev_movies.apply(lambda x: len(x)).max(), + df_test.prev_movies.apply(lambda x: len(x)).max(), +) + +# Here there is a caveat. In pple, we are using (as in the Kaggle notebook) +# all indexes to compute the number of tokens in the dataset. To do this +# properly, one would have to use ONLY train tokens and add a token for new +# unknown/unseen movies in the test set. This can also be done with this +# library and manually, so I will leave it to the reader to implement that +# tokenzation appraoch +max_movie_index = max(df_train.movie_id.max(), df_test.movie_id.max()) + +# From now one things are pretty simple, moreover bearing in mind that in this +# example we are not going to use a wide component since, in pple, I believe +# the information in that component is also 'carried' by the movie sequences +# (also in previous scripts one can see that most prediction power comes from +# the linear, wide model) +df_train_user_item = df_train[["user_id", "movie_id", "rating"]] +train_movies_sequences = df_train.prev_movies.apply( + lambda x: [int(el) for el in x] +).to_list() +y_train = df_train.target.values.astype(int) + +df_test_user_item = df_train[["user_id", "movie_id", "rating"]] +test_movies_sequences = df_test.prev_movies.apply( + lambda x: [int(el) for el in x] +).to_list() +y_test = df_test.target.values.astype(int) + +# As a tabular component we are going to encode simply the triplets +# (user, items, rating) +tab_preprocessor = tab_preprocessor = TabPreprocessor( + cat_embed_cols=["user_id", "movie_id", "rating"], +) +X_train_tab = tab_preprocessor.fit_transform(df_train_user_item) +X_test_tab = tab_preprocessor.transform(df_test_user_item) + +# And here we pad the sequences and define a transformer model for the text +# component that is, in this case, the sequences of movies watched +X_train_text = np.array( + [ + pad_sequences( + s, + maxlen=maxlen, + pad_first=False, + pad_idx=PAD_IDX, + ) + for s in train_movies_sequences + ] +) +X_test_text = np.array( + [ + pad_sequences( + s, + maxlen=maxlen, + pad_first=False, + pad_idx=0, + ) + for s in test_movies_sequences + ] +) + +tab_mlp = TabMlp( + column_idx=tab_preprocessor.column_idx, + cat_embed_input=tab_preprocessor.cat_embed_input, + mlp_hidden_dims=[1024, 512, 256], + mlp_activation="relu", +) + +# plenty of options here, see the docs +transformer = Transformer( + vocab_size=max_movie_index + 1, + embed_dim=16, + n_heads=2, + n_blocks=2, + seq_length=maxlen, +) + +wide_deep_model = WideDeep( + deeptabular=tab_mlp, deeptext=transformer, pred_dim=max_movie_index + 1 +) + +trainer = Trainer( + model=wide_deep_model, + objective="multiclass", + custom_loss_function=nn.CrossEntropyLoss(ignore_index=PAD_IDX), + optimizers=torch.optim.Adam(wide_deep_model.parameters(), lr=1e-3), +) + +trainer.fit( + X_train={ + "X_tab": X_train_tab, + "X_text": X_train_text, + "target": y_train, + }, + X_val={ + "X_tab": X_test_tab, + "X_text": X_test_text, + "target": y_test, + }, + n_epochs=10, + batch_size=521, + shuffle=False, +) diff --git a/pytorch_widedeep/models/__init__.py b/pytorch_widedeep/models/__init__.py index 9d989ac5..b5d272d1 100644 --- a/pytorch_widedeep/models/__init__.py +++ b/pytorch_widedeep/models/__init__.py @@ -1,5 +1,6 @@ from pytorch_widedeep.models.text import ( BasicRNN, + Transformer, AttentiveRNN, StackedAttentiveRNN, ) diff --git a/pytorch_widedeep/models/tabular/linear/wide.py b/pytorch_widedeep/models/tabular/linear/wide.py index 2867d056..795627d7 100644 --- a/pytorch_widedeep/models/tabular/linear/wide.py +++ b/pytorch_widedeep/models/tabular/linear/wide.py @@ -3,7 +3,7 @@ import torch from torch import nn -from pytorch_widedeep.wdtypes import Union, Tensor +from pytorch_widedeep.wdtypes import Tensor class Wide(nn.Module): @@ -38,25 +38,17 @@ class Wide(nn.Module): >>> out = wide(X) """ - def __init__( - self, input_dim: int, already_one_hot: bool = False, pred_dim: int = 1 - ): + def __init__(self, input_dim: int, pred_dim: int = 1): super(Wide, self).__init__() self.input_dim = input_dim - self.already_one_hot = already_one_hot self.pred_dim = pred_dim - if self.already_one_hot: - self.wide_linear: Union[nn.Linear, nn.Embedding] = nn.Linear( - input_dim, pred_dim - ) - else: - # Embeddings: val + 1 because 0 is reserved for padding/unseen cateogories. - self.wide_linear = nn.Embedding(input_dim + 1, pred_dim, padding_idx=0) - # (Sum(Embedding) + bias) is equivalent to (OneHotVector + Linear) - self.bias = nn.Parameter(torch.zeros(pred_dim)) - self._reset_parameters() + # Embeddings: val + 1 because 0 is reserved for padding/unseen cateogories. + self.wide_linear = nn.Embedding(input_dim + 1, pred_dim, padding_idx=0) + # (Sum(Embedding) + bias) is equivalent to (OneHotVector + Linear) + self.bias = nn.Parameter(torch.zeros(pred_dim)) + self._reset_parameters() def _reset_parameters(self) -> None: r"""initialize Embedding and bias like nn.Linear. See [original @@ -68,10 +60,7 @@ def _reset_parameters(self) -> None: nn.init.uniform_(self.bias, -bound, bound) def forward(self, X: Tensor) -> Tensor: - r"""Forward pass. Simply connecting the Embedding/Linear layer with the ouput + r"""Forward pass. Simply connecting the Embedding layer with the ouput neuron(s)""" - if self.already_one_hot: - out = self.wide_linear(X) - else: - out = self.wide_linear(X.long()).sum(dim=1) + self.bias + out = self.wide_linear(X.long()).sum(dim=1) + self.bias return out diff --git a/pytorch_widedeep/models/tabular/transformers/_attention_layers.py b/pytorch_widedeep/models/tabular/transformers/_attention_layers.py index c4933874..801db159 100644 --- a/pytorch_widedeep/models/tabular/transformers/_attention_layers.py +++ b/pytorch_widedeep/models/tabular/transformers/_attention_layers.py @@ -18,16 +18,20 @@ def __init__( self, input_dim: int, dropout: float, + mult: float, activation: str, - mult: float = 4.0, + *, + ff_hidden_dim: Optional[int] = None, ): super(FeedForward, self).__init__() - ff_hidden_dim = int(input_dim * mult) + ff_hid_dim = ( + ff_hidden_dim if ff_hidden_dim is not None else int(input_dim * mult) + ) self.w_1 = nn.Linear( input_dim, - ff_hidden_dim * 2 if activation.endswith("glu") else ff_hidden_dim, + ff_hid_dim * 2 if activation.endswith("glu") else ff_hid_dim, ) - self.w_2 = nn.Linear(ff_hidden_dim, input_dim) + self.w_2 = nn.Linear(ff_hid_dim, input_dim) self.dropout = nn.Dropout(dropout) self.activation = get_activation_fn(activation) diff --git a/pytorch_widedeep/models/tabular/transformers/_encoders.py b/pytorch_widedeep/models/tabular/transformers/_encoders.py index f41c793e..64e5a941 100644 --- a/pytorch_widedeep/models/tabular/transformers/_encoders.py +++ b/pytorch_widedeep/models/tabular/transformers/_encoders.py @@ -20,6 +20,7 @@ def __init__( use_bias: bool, attn_dropout: float, ff_dropout: float, + ff_factor: int, activation: str, ): super(TransformerEncoder, self).__init__() @@ -30,7 +31,7 @@ def __init__( use_bias, attn_dropout, ) - self.ff = FeedForward(input_dim, ff_dropout, activation) + self.ff = FeedForward(input_dim, ff_dropout, ff_factor, activation) self.attn_addnorm = AddNorm(input_dim, attn_dropout) self.ff_addnorm = AddNorm(input_dim, ff_dropout) @@ -48,6 +49,7 @@ def __init__( use_bias: bool, attn_dropout: float, ff_dropout: float, + ff_factor: int, activation: str, n_feat: int, ): @@ -61,7 +63,7 @@ def __init__( use_bias, attn_dropout, ) - self.col_attn_ff = FeedForward(input_dim, ff_dropout, activation) + self.col_attn_ff = FeedForward(input_dim, ff_dropout, ff_factor, activation) self.col_attn_addnorm = AddNorm(input_dim, attn_dropout) self.col_attn_ff_addnorm = AddNorm(input_dim, ff_dropout) @@ -71,7 +73,12 @@ def __init__( use_bias, attn_dropout, ) - self.row_attn_ff = FeedForward(n_feat * input_dim, ff_dropout, activation) + self.row_attn_ff = FeedForward( + n_feat * input_dim, + ff_dropout, + ff_factor, + activation, + ) self.row_attn_addnorm = AddNorm(n_feat * input_dim, attn_dropout) self.row_attn_ff_addnorm = AddNorm(n_feat * input_dim, ff_dropout) @@ -94,10 +101,10 @@ def __init__( use_bias: bool, attn_dropout: float, ff_dropout: float, + ff_factor: float, kv_compression_factor: float, kv_sharing: bool, activation: str, - ff_factor: float, first_block: bool, ): super(FTTransformerEncoder, self).__init__() @@ -113,7 +120,7 @@ def __init__( kv_compression_factor, kv_sharing, ) - self.ff = FeedForward(input_dim, ff_dropout, activation, ff_factor) + self.ff = FeedForward(input_dim, ff_dropout, ff_factor, activation) self.attn_normadd = NormAdd(input_dim, attn_dropout) self.ff_normadd = NormAdd(input_dim, ff_dropout) @@ -134,6 +141,7 @@ def __init__( use_bias: bool, attn_dropout: float, ff_dropout: float, + ff_factor: int, activation: str, query_dim: Optional[int] = None, ): @@ -147,7 +155,7 @@ def __init__( query_dim, ) attn_dim_out = query_dim if query_dim is not None else input_dim - self.ff = FeedForward(attn_dim_out, ff_dropout, activation) + self.ff = FeedForward(attn_dim_out, ff_dropout, ff_factor, activation) self.ln_q = nn.LayerNorm(attn_dim_out) self.ln_kv = nn.LayerNorm(input_dim) @@ -171,6 +179,7 @@ def __init__( use_bias: bool, attn_dropout: float, ff_dropout: float, + ff_factor: int, share_qv_weights: bool, activation: str, ): @@ -184,7 +193,7 @@ def __init__( share_qv_weights, ) - self.ff = FeedForward(input_dim, ff_dropout, activation) + self.ff = FeedForward(input_dim, ff_dropout, ff_factor, activation) self.attn_addnorm = AddNorm(input_dim, attn_dropout) self.ff_addnorm = AddNorm(input_dim, ff_dropout) diff --git a/pytorch_widedeep/models/tabular/transformers/ft_transformer.py b/pytorch_widedeep/models/tabular/transformers/ft_transformer.py index 7b1589a6..50cf0c2d 100644 --- a/pytorch_widedeep/models/tabular/transformers/ft_transformer.py +++ b/pytorch_widedeep/models/tabular/transformers/ft_transformer.py @@ -90,13 +90,13 @@ class FTTransformer(BaseTabularModelWithAttention): Dropout that will be applied to the Linear-Attention layers ff_dropout: float, default = 0.1 Dropout that will be applied to the FeedForward network - transformer_activation: str, default = "gelu" - Transformer Encoder activation function. _'tanh'_, _'relu'_, - _'leaky_relu'_, _'gelu'_, _'geglu'_ and _'reglu'_ are supported ff_factor: float, default = 4 / 3 Multiplicative factor applied to the first layer of the FF network in each Transformer block, This is normally set to 4, but they use 4/3 in the paper. + transformer_activation: str, default = "gelu" + Transformer Encoder activation function. _'tanh'_, _'relu'_, + _'leaky_relu'_, _'gelu'_, _'geglu'_ and _'reglu'_ are supported mlp_hidden_dims: List, Optional, default = None MLP hidden dimensions. If not provided no MLP on top of the final FTTransformer block will be used @@ -162,8 +162,8 @@ def __init__( n_blocks: int = 4, attn_dropout: float = 0.2, ff_dropout: float = 0.1, - transformer_activation: str = "reglu", ff_factor: float = 1.33, + transformer_activation: str = "reglu", mlp_hidden_dims: Optional[List[int]] = None, mlp_activation: str = "relu", mlp_dropout: float = 0.1, @@ -197,8 +197,8 @@ def __init__( self.n_blocks = n_blocks self.attn_dropout = attn_dropout self.ff_dropout = ff_dropout - self.transformer_activation = transformer_activation self.ff_factor = ff_factor + self.transformer_activation = transformer_activation self.mlp_hidden_dims = mlp_hidden_dims self.mlp_activation = mlp_activation @@ -226,10 +226,10 @@ def __init__( use_qkv_bias, attn_dropout, ff_dropout, + ff_factor, kv_compression_factor, kv_sharing, transformer_activation, - ff_factor, is_first, ), ) diff --git a/pytorch_widedeep/models/tabular/transformers/saint.py b/pytorch_widedeep/models/tabular/transformers/saint.py index cfed7488..eade6550 100644 --- a/pytorch_widedeep/models/tabular/transformers/saint.py +++ b/pytorch_widedeep/models/tabular/transformers/saint.py @@ -80,6 +80,9 @@ class SAINT(BaseTabularModelWithAttention): row layers ff_dropout: float, default = 0.1 Dropout that will be applied to the FeedForward network + ff_factor: float, default = 4 + Multiplicative factor applied to the first layer of the FF network in + each Transformer block, This is normally set to 4. transformer_activation: str, default = "gelu" Transformer Encoder activation function. _'tanh'_, _'relu'_, _'leaky_relu'_, _'gelu'_, _'geglu'_ and _'reglu'_ are supported @@ -146,6 +149,7 @@ def __init__( n_blocks: int = 2, attn_dropout: float = 0.1, ff_dropout: float = 0.2, + ff_factor: int = 4, transformer_activation: str = "gelu", mlp_hidden_dims: Optional[List[int]] = None, mlp_activation: str = "relu", @@ -178,6 +182,7 @@ def __init__( self.n_blocks = n_blocks self.attn_dropout = attn_dropout self.ff_dropout = ff_dropout + self.ff_factor = ff_factor self.transformer_activation = transformer_activation self.mlp_hidden_dims = mlp_hidden_dims @@ -204,6 +209,7 @@ def __init__( use_qkv_bias, attn_dropout, ff_dropout, + ff_factor, transformer_activation, self.n_feats, ), diff --git a/pytorch_widedeep/models/tabular/transformers/tab_fastformer.py b/pytorch_widedeep/models/tabular/transformers/tab_fastformer.py index 17e9114b..bf61d607 100644 --- a/pytorch_widedeep/models/tabular/transformers/tab_fastformer.py +++ b/pytorch_widedeep/models/tabular/transformers/tab_fastformer.py @@ -84,6 +84,9 @@ class TabFastFormer(BaseTabularModelWithAttention): Dropout that will be applied to the Additive Attention layers ff_dropout: float, default = 0.1 Dropout that will be applied to the FeedForward network + ff_factor: float, default = 4 + Multiplicative factor applied to the first layer of the FF network in + each Transformer block, This is normally set to 4. share_qv_weights: bool, default = False Following the paper, this is a boolean indicating if the Value ($V$) and the Query ($Q$) transformation parameters will be shared. @@ -159,6 +162,7 @@ def __init__( n_blocks: int = 4, attn_dropout: float = 0.1, ff_dropout: float = 0.2, + ff_factor: int = 4, share_qv_weights: bool = False, share_weights: bool = False, transformer_activation: str = "relu", @@ -193,6 +197,7 @@ def __init__( self.n_blocks = n_blocks self.attn_dropout = attn_dropout self.ff_dropout = ff_dropout + self.ff_factor = ff_factor self.share_qv_weights = share_qv_weights self.share_weights = share_weights self.transformer_activation = transformer_activation @@ -218,6 +223,7 @@ def __init__( use_bias, attn_dropout, ff_dropout, + ff_factor, share_qv_weights, transformer_activation, ) @@ -236,6 +242,7 @@ def __init__( use_bias, attn_dropout, ff_dropout, + ff_factor, share_qv_weights, transformer_activation, ), diff --git a/pytorch_widedeep/models/tabular/transformers/tab_perceiver.py b/pytorch_widedeep/models/tabular/transformers/tab_perceiver.py index 53573aa9..6b159760 100644 --- a/pytorch_widedeep/models/tabular/transformers/tab_perceiver.py +++ b/pytorch_widedeep/models/tabular/transformers/tab_perceiver.py @@ -108,6 +108,9 @@ class TabPerceiver(BaseTabularModelWithAttention): Dropout that will be applied to the Multi-Head Attention layers ff_dropout: float, default = 0.1 Dropout that will be applied to the FeedForward network + ff_factor: float, default = 4 + Multiplicative factor applied to the first layer of the FF network in + each Transformer block, This is normally set to 4. transformer_activation: str, default = "gelu" Transformer Encoder activation function. _'tanh'_, _'relu'_, _'leaky_relu'_, _'gelu'_, _'geglu'_ and _'reglu'_ are supported @@ -183,6 +186,7 @@ def __init__( share_weights: bool = False, attn_dropout: float = 0.1, ff_dropout: float = 0.1, + ff_factor: int = 4, transformer_activation: str = "geglu", mlp_hidden_dims: Optional[List[int]] = None, mlp_activation: str = "relu", @@ -220,6 +224,7 @@ def __init__( self.share_weights = share_weights self.attn_dropout = attn_dropout self.ff_dropout = ff_dropout + self.ff_factor = ff_factor self.transformer_activation = transformer_activation self.mlp_hidden_dims = mlp_hidden_dims @@ -343,6 +348,7 @@ def _build_perceiver_block(self) -> nn.ModuleDict: False, # use_bias self.attn_dropout, self.ff_dropout, + self.ff_factor, self.transformer_activation, self.latent_dim, # q_dim, ), @@ -360,6 +366,7 @@ def _build_perceiver_block(self) -> nn.ModuleDict: False, # use_bias self.attn_dropout, self.ff_dropout, + self.ff_factor, self.transformer_activation, ), ) diff --git a/pytorch_widedeep/models/tabular/transformers/tab_transformer.py b/pytorch_widedeep/models/tabular/transformers/tab_transformer.py index 868e3cbf..20211ab0 100644 --- a/pytorch_widedeep/models/tabular/transformers/tab_transformer.py +++ b/pytorch_widedeep/models/tabular/transformers/tab_transformer.py @@ -86,6 +86,9 @@ class TabTransformer(BaseTabularModelWithAttention): Dropout that will be applied to the Multi-Head Attention layers ff_dropout: float, default = 0.1 Dropout that will be applied to the FeedForward network + ff_factor: float, default = 4 + Multiplicative factor applied to the first layer of the FF network in + each Transformer block, This is normally set to 4. transformer_activation: str, default = "gelu" Transformer Encoder activation function. _'tanh'_, _'relu'_, _'leaky_relu'_, _'gelu'_, _'geglu'_ and _'reglu'_ are supported @@ -153,6 +156,7 @@ def __init__( n_blocks: int = 4, attn_dropout: float = 0.2, ff_dropout: float = 0.1, + ff_factor: int = 4, transformer_activation: str = "gelu", mlp_hidden_dims: Optional[List[int]] = None, mlp_activation: str = "relu", @@ -186,6 +190,7 @@ def __init__( self.attn_dropout = attn_dropout self.ff_dropout = ff_dropout self.transformer_activation = transformer_activation + self.ff_factor = ff_factor self.mlp_hidden_dims = mlp_hidden_dims self.mlp_activation = mlp_activation @@ -215,6 +220,7 @@ def __init__( use_qkv_bias, attn_dropout, ff_dropout, + ff_factor, transformer_activation, ), ) diff --git a/pytorch_widedeep/models/text/basic_transformer.py b/pytorch_widedeep/models/text/basic_transformer.py index 64415064..a86b7bce 100644 --- a/pytorch_widedeep/models/text/basic_transformer.py +++ b/pytorch_widedeep/models/text/basic_transformer.py @@ -4,23 +4,87 @@ from torch import nn from pytorch_widedeep.wdtypes import Union, Tensor, Optional +from pytorch_widedeep.utils.general_utils import Alias from pytorch_widedeep.models.tabular.transformers._encoders import ( TransformerEncoder, ) class Transformer(nn.Module): + r"""Basic Encoder-Only Transformer Model for text classification/regression. + As all other models in the library this model can be used as the + `deeptext` component of a Wide & Deep model or independently by itself. + + **NOTE**: This model is introduced in the context of recommendation + systems and thought for sequences of any nature (e.g. items). It can, + of course, still be used for text. However, at this stage, we have + decided to not include the possibility of loading pretrained word + vectors since we aim to integrate the library wit Huggingface in the + (hopefully) near future + + Parameters + ---------- + vocab_size: int + Number of words in the vocabulary + input_dim: int + Dimension of the token embeddings + + Param aliases: `embed_dim`, `d_model`.
+ + n_heads: int, default = 8 + Number of attention heads per Transformer block + n_blocks: int, default = 4 + Number of Transformer blocks + attn_dropout: float, default = 0.2 + Dropout that will be applied to the Multi-Head Attention layers + ff_dropout: float, default = 0.1 + Dropout that will be applied to the FeedForward network + ff_factor: float, default = 4 + Multiplicative factor applied to the first layer of the FF network in + each Transformer block, This is normally set to 4. + activation: str, default = "gelu" + Transformer Encoder activation function. _'tanh'_, _'relu'_, + _'leaky_relu'_, _'gelu'_, _'geglu'_ and _'reglu'_ are supported + with_cls_token: bool, default = False + Boolean indicating if a `'[CLS]'` token is included in the tokenized + sequences. If present, the final hidden state corresponding to this + token is used as the aggregated representation for classification and + regression tasks. **NOTE**: if included in the tokenized sequences it + must be inserted as the first token in the sequences. + with_pos_encoding: bool, default = True + Boolean indicating if positional encoding will be used + pos_encoding_dropout: float, default = 0.1 + Positional encoding dropout + seq_length: int, Optional, default = None + Input sequence length + pos_encoder: nn.Module, Optional, default = None + This model uses by default a standard positional encoding approach. + However, any custom positional encoder can also be used and pass to + the Transformer model via the 'pos_encoder' parameter + + Attributes + ---------- + embedding: nn.Module + Standard token embedding layer + pos_encoder: nn.Module + Positional Encoder + encoder: nn.Module + Sequence of Transformer blocks + """ + + @Alias("input_dim", ["embed_dim", "d_model"]) def __init__( self, vocab_size: int, - embed_dim: int, + input_dim: int, n_heads: int, n_blocks: int, attn_dropout: float = 0.1, ff_dropout: float = 0.1, + ff_factor: int = 4, activation: str = "gelu", - ff_dim_multiplier: float = 1.0, - *, + with_cls_token: bool = False, + *, # from here on pos encoding args with_pos_encoding: bool = True, pos_encoding_dropout: float = 0.1, seq_length: Optional[int] = None, @@ -28,18 +92,18 @@ def __init__( ): super().__init__() - self.embed_dim = embed_dim + self.input_dim = input_dim self.n_heads = n_heads self.n_blocks = n_blocks self.attn_dropout = attn_dropout self.ff_dropout = ff_dropout + self.ff_factor = ff_factor self.activation = activation - self.ff_dim_multiplier = ff_dim_multiplier self.with_pos_encoding = with_pos_encoding self.pos_encoding_dropout = pos_encoding_dropout self.seq_length = seq_length - self.embedding = nn.Embedding(vocab_size, embed_dim) + self.embedding = nn.Embedding(vocab_size, input_dim) if with_pos_encoding: if pos_encoder is not None: @@ -51,7 +115,7 @@ def __init__( seq_length is not None ), "If positional encoding is used 'seq_length' must be passed to the model" self.pos_encoder = PositionalEncoding( - embed_dim, pos_encoding_dropout, seq_length + input_dim, pos_encoding_dropout, seq_length ) else: self.pos_encoder = nn.Identity() @@ -61,11 +125,12 @@ def __init__( self.encoder.add_module( "transformer_block" + str(i), TransformerEncoder( - embed_dim, + input_dim, n_heads, False, # use_qkv_bias attn_dropout, ff_dropout, + ff_factor, activation, ), ) @@ -73,22 +138,50 @@ def __init__( def forward(self, X: Tensor) -> Tensor: x = self.embedding(X) x = self.pos_encoder(x) - out = self.encoder(x) - return out + x = self.encoder(x) + if self.with_cls_token: + x = x[:, 0, :] + else: + x = x.flatten(1) + return x + + @property + def output_dim(self) -> int: + return self.input_dim * self.seq_length class PositionalEncoding(nn.Module): - def __init__(self, embed_dim: int, dropout: float, seq_length: int): + """Positional Encoding copied and pasted directly from [The Beginners' + Tutorial] + (https://pytorch.org/tutorials/beginner/transformer_tutorial.html) at the + Pytorch site. Here is simply adapated so that the input sequence length + must be specified and in our implementation the input tensor dimensions + are arranged as `[batch_size, seq_len, embedding_dim]` instead of ` + [seq_len, batch_size, embedding_dim]` , as in the before mentioned + tutorial + + Parameters + ---------- + input_dim: int + Dimension of the token embeddings + dropout: float + Positional encoding dropout + seq_length: int + input sequence length + + """ + + def __init__(self, input_dim: int, dropout: float, seq_length: int): super().__init__() self.dropout = nn.Dropout(p=dropout) position = torch.arange(seq_length).unsqueeze(1) div_term = torch.exp( - torch.arange(0, embed_dim, 2) * (-math.log(10000.0) / embed_dim) + torch.arange(0, input_dim, 2) * (-math.log(10000.0) / input_dim) ) - pe = torch.zeros(seq_length, 1, embed_dim) - pe[:, 0, 0::2] = torch.sin(position * div_term) - pe[:, 0, 1::2] = torch.cos(position * div_term) + pe = torch.zeros(1, seq_length, input_dim) + pe[0, :, 0::2] = torch.sin(position * div_term) + pe[0, :, 1::2] = torch.cos(position * div_term) self.register_buffer("pe", pe) def forward(self, X: Tensor) -> Tensor: diff --git a/pytorch_widedeep/preprocessing/text_preprocessor.py b/pytorch_widedeep/preprocessing/text_preprocessor.py index f713ba84..d8c31627 100644 --- a/pytorch_widedeep/preprocessing/text_preprocessor.py +++ b/pytorch_widedeep/preprocessing/text_preprocessor.py @@ -16,6 +16,7 @@ ) +# TODO: Add alias to already_processed class TextPreprocessor(BasePreprocessor): r"""Preprocessor to prepare the ``deeptext`` input dataset @@ -34,6 +35,9 @@ class TextPreprocessor(BasePreprocessor): end of the sequences pad_idx: int, default = 1 padding index. Fastai's Tokenizer leaves 0 for the 'unknown' token. + already_processed: bool, Optional, default = False + Boolean indicating if the text is already processed and we simply + want to tokenize it word_vectors_path: str, Optional Path to the pretrained word vectors n_cpus: int, Optional, default = None @@ -74,6 +78,7 @@ def __init__( maxlen: int = 80, pad_first: bool = True, pad_idx: int = 1, + already_processed: Optional[bool] = False, word_vectors_path: Optional[str] = None, n_cpus: Optional[int] = None, verbose: int = 1, @@ -86,6 +91,7 @@ def __init__( self.maxlen = maxlen self.pad_first = pad_first self.pad_idx = pad_idx + self.already_processed = already_processed self.word_vectors_path = word_vectors_path self.verbose = verbose self.n_cpus = n_cpus if n_cpus is not None else os.cpu_count() @@ -104,7 +110,7 @@ def fit(self, df: pd.DataFrame) -> BasePreprocessor: `TextPreprocessor` fitted object """ texts = df[self.text_col].tolist() - tokens = get_texts(texts, self.n_cpus) + tokens = get_texts(texts, self.already_processed, self.n_cpus) self.vocab = Vocab.create( tokens, max_vocab=self.max_vocab, min_freq=self.min_freq ) @@ -131,7 +137,7 @@ def transform(self, df: pd.DataFrame) -> np.ndarray: """ check_is_fitted(self, attributes=["vocab"]) texts = df[self.text_col].tolist() - self.tokens = get_texts(texts, self.n_cpus) + self.tokens = get_texts(texts, self.already_processed, self.n_cpus) sequences = [self.vocab.numericalize(t) for t in self.tokens] padded_seq = np.array( [ diff --git a/pytorch_widedeep/training/trainer.py b/pytorch_widedeep/training/trainer.py index 5dd45ae3..6508b88a 100644 --- a/pytorch_widedeep/training/trainer.py +++ b/pytorch_widedeep/training/trainer.py @@ -1127,6 +1127,7 @@ def _predict_ziln(preds: Tensor) -> Tensor: @staticmethod def _extract_kwargs(kwargs): dataloader_params = [ + "shuffle", "sampler", "batch_sampler", "num_workers", diff --git a/pytorch_widedeep/utils/fastai_transforms.py b/pytorch_widedeep/utils/fastai_transforms.py index dc128e6b..5235f2f8 100644 --- a/pytorch_widedeep/utils/fastai_transforms.py +++ b/pytorch_widedeep/utils/fastai_transforms.py @@ -338,6 +338,7 @@ def process_all(self, texts: Collection[str]) -> List[List[str]]: ) +# TODO: Fix bug regarding token num 0 class Vocab: r"""Contains the correspondence between numbers and tokens. diff --git a/pytorch_widedeep/utils/text_utils.py b/pytorch_widedeep/utils/text_utils.py index 06ae5b5a..ab588aee 100644 --- a/pytorch_widedeep/utils/text_utils.py +++ b/pytorch_widedeep/utils/text_utils.py @@ -54,7 +54,11 @@ def simple_preprocess( return tokens -def get_texts(texts: List[str], n_cpus: Optional[int] = None) -> List[List[str]]: +def get_texts( + texts: List[str], + already_processed: Optional[bool] = False, + n_cpus: Optional[int] = None, +) -> List[List[str]]: r"""Tokenization using `Fastai`'s `Tokenizer` because it does a series of very convenients things during the tokenization process @@ -64,6 +68,9 @@ def get_texts(texts: List[str], n_cpus: Optional[int] = None) -> List[List[str]] ---------- texts: List List of str with the texts (or documents). One str per document + already_processed: bool, Optional, default = False + Boolean indicating if the text is already processed and we simply + want to tokenize it n_cpus: int, Optional, default = None number of CPUs to used during the tokenization process @@ -89,8 +96,11 @@ def get_texts(texts: List[str], n_cpus: Optional[int] = None) -> List[List[str]] num_cpus = n_cpus if n_cpus is not None else os.cpu_count() - processed_textx = [" ".join(simple_preprocess(t)) for t in texts] - tok = Tokenizer(n_cpus=num_cpus).process_all(processed_textx) + if not already_processed: + processed_texts = [" ".join(simple_preprocess(t)) for t in texts] + else: + processed_texts = texts + tok = Tokenizer(n_cpus=num_cpus).process_all(processed_texts) return tok From d09446e53cb5ccb041b897d16e71290f44cc96c1 Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 27 Jul 2023 12:55:45 +0200 Subject: [PATCH 3/9] Added unit tests. Need to write a notebook. Test is on GPU and ready to merge --- .../models/text/basic_transformer.py | 21 +++-- tests/test_model_components/test_mc_text.py | 84 ++++++++++++++++++- .../test_miscellaneous.py | 15 +++- 3 files changed, 108 insertions(+), 12 deletions(-) diff --git a/pytorch_widedeep/models/text/basic_transformer.py b/pytorch_widedeep/models/text/basic_transformer.py index a86b7bce..7591ac65 100644 --- a/pytorch_widedeep/models/text/basic_transformer.py +++ b/pytorch_widedeep/models/text/basic_transformer.py @@ -31,6 +31,8 @@ class Transformer(nn.Module): Param aliases: `embed_dim`, `d_model`.
+ seq_length: int, Optional, default = None + Input sequence length n_heads: int, default = 8 Number of attention heads per Transformer block n_blocks: int, default = 4 @@ -55,8 +57,6 @@ class Transformer(nn.Module): Boolean indicating if positional encoding will be used pos_encoding_dropout: float, default = 0.1 Positional encoding dropout - seq_length: int, Optional, default = None - Input sequence length pos_encoder: nn.Module, Optional, default = None This model uses by default a standard positional encoding approach. However, any custom positional encoder can also be used and pass to @@ -73,9 +73,11 @@ class Transformer(nn.Module): """ @Alias("input_dim", ["embed_dim", "d_model"]) + @Alias("seq_length", ["max_length", "maxlen"]) def __init__( self, vocab_size: int, + seq_length: int, input_dim: int, n_heads: int, n_blocks: int, @@ -87,21 +89,21 @@ def __init__( *, # from here on pos encoding args with_pos_encoding: bool = True, pos_encoding_dropout: float = 0.1, - seq_length: Optional[int] = None, pos_encoder: Optional[nn.Module] = None, ): super().__init__() self.input_dim = input_dim + self.seq_length = seq_length self.n_heads = n_heads self.n_blocks = n_blocks self.attn_dropout = attn_dropout self.ff_dropout = ff_dropout self.ff_factor = ff_factor self.activation = activation + self.with_cls_token = with_cls_token self.with_pos_encoding = with_pos_encoding self.pos_encoding_dropout = pos_encoding_dropout - self.seq_length = seq_length self.embedding = nn.Embedding(vocab_size, input_dim) @@ -109,11 +111,8 @@ def __init__( if pos_encoder is not None: self.pos_encoder: Union[ nn.Module, nn.Identity, PositionalEncoding - ] = self.pos_encoder + ] = pos_encoder else: - assert ( - seq_length is not None - ), "If positional encoding is used 'seq_length' must be passed to the model" self.pos_encoder = PositionalEncoding( input_dim, pos_encoding_dropout, seq_length ) @@ -147,7 +146,11 @@ def forward(self, X: Tensor) -> Tensor: @property def output_dim(self) -> int: - return self.input_dim * self.seq_length + if self.with_cls_token: + output_dim = self.input_dim + else: + output_dim = self.input_dim * self.seq_length + return output_dim class PositionalEncoding(nn.Module): diff --git a/tests/test_model_components/test_mc_text.py b/tests/test_model_components/test_mc_text.py index 39c37b25..f487633c 100644 --- a/tests/test_model_components/test_mc_text.py +++ b/tests/test_model_components/test_mc_text.py @@ -2,7 +2,12 @@ import torch import pytest -from pytorch_widedeep.models import BasicRNN, AttentiveRNN, StackedAttentiveRNN +from pytorch_widedeep.models import ( + BasicRNN, + Transformer, + AttentiveRNN, + StackedAttentiveRNN, +) padded_sequences = np.random.choice(np.arange(1, 100), (100, 48)) padded_sequences = np.hstack( @@ -302,3 +307,80 @@ def test_attn_weights(stacked): ) else: assert attn_w.size() == torch.Size([100, 50]) + + +# ############################################################################### +# # Test Basic Transformer +# ############################################################################### + + +@pytest.mark.parametrize( + "with_cls_token", + [True, False], +) +def test_basic_transformer(with_cls_token): + if with_cls_token: + # if we use a 'CLS' token it must be inserted at the beginning of the + # sequence + _padded_sequences = np.zeros( + (padded_sequences.shape[0], padded_sequences.shape[1] + 1), dtype=int + ) + _padded_sequences[:, 0] = padded_sequences.max() + 1 + _padded_sequences[:, 1:] = padded_sequences + else: + _padded_sequences = padded_sequences + + model = Transformer( + vocab_size=_padded_sequences.max() + 1, + seq_length=_padded_sequences.shape[1], + input_dim=8, + n_heads=2, + n_blocks=2, + with_pos_encoding=False, + with_cls_token=with_cls_token, + ) + + out = model(torch.from_numpy(_padded_sequences)) + + res = [] + res.append(out.size(0) == _padded_sequences.shape[0]) + res.append(out.size(1) == model.output_dim) + + assert all(res) + + +# ############################################################################### +# # Test Custom Positional Encoder +# ############################################################################### + + +class DummyPositionalEncoding(torch.nn.Module): + def __init__(self, input_dim: int, seq_length: int): + super().__init__() + + pe = torch.ones(1, seq_length, input_dim) + self.register_buffer("pe", pe) + + def forward(self, X): + return X + self.pe + + +def test_custom_pos_encoder(): + model = Transformer( + vocab_size=padded_sequences.max() + 1, + seq_length=padded_sequences.shape[1], + input_dim=8, + n_heads=2, + n_blocks=2, + pos_encoder=DummyPositionalEncoding( + input_dim=8, seq_length=padded_sequences.shape[1] + ), + ) + + out = model(torch.from_numpy(padded_sequences)) + + res = [] + res.append(out.size(0) == padded_sequences.shape[0]) + res.append(out.size(1) == model.output_dim) + + assert all(res) diff --git a/tests/test_model_functioning/test_miscellaneous.py b/tests/test_model_functioning/test_miscellaneous.py index 3b356d9d..c7a93d43 100644 --- a/tests/test_model_functioning/test_miscellaneous.py +++ b/tests/test_model_functioning/test_miscellaneous.py @@ -17,6 +17,7 @@ BasicRNN, WideDeep, TabResnet, + Transformer, TabTransformer, ) from pytorch_widedeep.metrics import Accuracy, Precision @@ -89,7 +90,16 @@ continuous_cols=colnames[5:], ghost_bn=False, ) -deeptext = BasicRNN(vocab_size=vocab_size, embed_dim=32, padding_idx=0) +basic_rnn = BasicRNN(vocab_size=vocab_size, embed_dim=32, padding_idx=0) + +basic_transformer = Transformer( + vocab_size=X_text.max() + 1, + maxlen=X_text.shape[1], + embed_dim=8, + n_heads=2, + n_blocks=2, +) + deepimage = Vision(pretrained_model_setup="resnet18", n_trainable=0) ############################################################################### @@ -209,7 +219,8 @@ def test_basic_run_with_metrics_multiclass(): (None, tabmlp, None, None, None, X_tab, None, None, target), (None, tabresnet, None, None, None, X_tab, None, None, target), (None, tabtransformer, None, None, None, X_tab, None, None, target), - (None, None, deeptext, None, None, None, X_text, None, target), + (None, None, basic_rnn, None, None, None, X_text, None, target), + (None, None, basic_transformer, None, None, None, X_text, None, target), (None, None, None, deepimage, None, None, None, X_img, target), ], ) From 5b5e680871de6f151022bafca2447de5480e8890 Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 28 Jul 2023 16:53:38 +0200 Subject: [PATCH 4/9] Added the 1st of two notebooks to illustrate the use of the library in the context of recommendation systems --- CITATION.cff | 34 + README.md | 35 +- .../19_wide_and_deep_for_recsys_1.ipynb | 2359 +++++++++++++++++ 3 files changed, 2426 insertions(+), 2 deletions(-) create mode 100644 CITATION.cff create mode 100644 examples/notebooks/19_wide_and_deep_for_recsys_1.ipynb diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 00000000..224f7c56 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,34 @@ +cff-version: "1.2.0" +authors: +- family-names: Zaurin + given-names: Javier Rodriguez + orcid: "https://orcid.org/0000-0002-1082-1107" +- family-names: Mulinka + given-names: Pavol + orcid: "https://orcid.org/0000-0002-9394-8794" +doi: 10.5281/zenodo.7908172 +message: If you use this software, please cite our article in the + Journal of Open Source Software. +preferred-citation: + authors: + - family-names: Zaurin + given-names: Javier Rodriguez + orcid: "https://orcid.org/0000-0002-1082-1107" + - family-names: Mulinka + given-names: Pavol + orcid: "https://orcid.org/0000-0002-9394-8794" + date-published: 2023-06-24 + doi: 10.21105/joss.05027 + issn: 2475-9066 + issue: 86 + journal: Journal of Open Source Software + publisher: + name: Open Journals + start: 5027 + title: "pytorch-widedeep: A flexible package for multimodal deep + learning" + type: article + url: "https://joss.theoj.org/papers/10.21105/joss.05027" + volume: 8 +title: "pytorch-widedeep: A flexible package for multimodal deep + learning" \ No newline at end of file diff --git a/README.md b/README.md index 8ebf2e15..fd91b450 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/jrzaurin/pytorch-widedeep/graphs/commit-activity) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/jrzaurin/pytorch-widedeep/issues) [![Slack](https://img.shields.io/badge/slack-chat-green.svg?logo=slack)](https://join.slack.com/t/pytorch-widedeep/shared_invite/zt-soss7stf-iXpVuLeKZz8lGTnxxtHtTw) +[![DOI](https://joss.theoj.org/papers/10.21105/joss.05027/status.svg)](https://doi.org/10.21105/joss.05027) # pytorch-widedeep @@ -38,6 +39,9 @@ The content of this document is organized as follows: - [How to Contribute](#how-to-contribute) - [Acknowledgments](#acknowledgments) - [License](#license) + - [Cite](#cite) + - [BibTex](#bibtex) + - [APA](#apa) ### Introduction @@ -82,7 +86,7 @@ without a ``deephead`` component can be formulated as: Where σ is the sigmoid function, *'W'* are the weight matrices applied to the wide model and to the final -activations of the deep models, *'a'* are these final activations, +activations of the deep models, *'a'* are these final activations, φ(x) are the cross product transformations of the original features *'x'*, and , and *'b'* is the bias term. In case you are wondering what are *"cross product transformations"*, here is @@ -331,4 +335,31 @@ Vision](https://www.pyimagesearch.com/deep-learning-computer-vision-python-book/ This work is dual-licensed under Apache 2.0 and MIT (or any later version). You can choose between one of them if you use this work. -`SPDX-License-Identifier: Apache-2.0 AND MIT` \ No newline at end of file +`SPDX-License-Identifier: Apache-2.0 AND MIT` + +### Cite + +#### BibTex + +``` +@article{Zaurin_pytorch-widedeep_A_flexible_2023, +author = {Zaurin, Javier Rodriguez and Mulinka, Pavol}, +doi = {10.21105/joss.05027}, +journal = {Journal of Open Source Software}, +month = jun, +number = {86}, +pages = {5027}, +title = {{pytorch-widedeep: A flexible package for multimodal deep learning}}, +url = {https://joss.theoj.org/papers/10.21105/joss.05027}, +volume = {8}, +year = {2023} +} +``` + +#### APA + +``` +Zaurin, J. R., & Mulinka, P. (2023). pytorch-widedeep: A flexible package for +multimodal deep learning. Journal of Open Source Software, 8(86), 5027. +https://doi.org/10.21105/joss.05027 +``` diff --git a/examples/notebooks/19_wide_and_deep_for_recsys_1.ipynb b/examples/notebooks/19_wide_and_deep_for_recsys_1.ipynb new file mode 100644 index 00000000..e9fde6bf --- /dev/null +++ b/examples/notebooks/19_wide_and_deep_for_recsys_1.ipynb @@ -0,0 +1,2359 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "d298e185", + "metadata": {}, + "source": [ + "The goal of this notebook is to illustrate how one could use this library in the context of recommendation systems. In particular, this notebook and the companion scripts at the `wide_deep_for_recsys` dir are a response to this [issue](https://github.com/jrzaurin/pytorch-widedeep/issues/133). Therefore, we will use the [Kaggle notebook](https://www.kaggle.com/code/matanivanov/wide-deep-learning-for-recsys-with-pytorch) referred in that issue here.\n", + "\n", + "In order to keep the length of the notebook tractable, we will split this exercise in 2. In this first notebook we will prepare the data in almost the exact same way as it is done in the Kaggle notebook and show how one could use `pytorch-widedeep` to build a model almost identical to the one in that notebook. In a second notebook, we will show how one could use this library to implement other models, still following the same problem formulation." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "ebd9980d", + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "import warnings\n", + "\n", + "import pandas as pd\n", + "from sklearn.model_selection import train_test_split" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "7cd76bce", + "metadata": {}, + "outputs": [], + "source": [ + "warnings.filterwarnings(\"ignore\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0aed611e", + "metadata": {}, + "outputs": [], + "source": [ + "raw_data_path = Path(\"~/ml_projects/wide_deep_learning_for_recsys/ml-100k\")\n", + "\n", + "save_path = Path(\"prepared_data\")\n", + "if not save_path.exists():\n", + " save_path.mkdir(parents=True, exist_ok=True)" + ] + }, + { + "cell_type": "markdown", + "id": "929a9712", + "metadata": {}, + "source": [ + "Let's first start by loading the interactions, user and item data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "38de36ff", + "metadata": {}, + "outputs": [], + "source": [ + "# Load the Ratings/Interaction (triplets (user, item, rating) plus timestamp)\n", + "data = pd.read_csv(raw_data_path / \"u.data\", sep=\"\\t\", header=None)\n", + "data.columns = [\"user_id\", \"movie_id\", \"rating\", \"timestamp\"]\n", + "\n", + "# Load the User features\n", + "users = pd.read_csv(raw_data_path / \"u.user\", sep=\"|\", encoding=\"latin-1\", header=None)\n", + "users.columns = [\"user_id\", \"age\", \"gender\", \"occupation\", \"zip_code\"]\n", + "\n", + "# Load the Item features\n", + "items = pd.read_csv(raw_data_path / \"u.item\", sep=\"|\", encoding=\"latin-1\", header=None)\n", + "items.columns = [\n", + " \"movie_id\",\n", + " \"movie_title\",\n", + " \"release_date\",\n", + " \"video_release_date\",\n", + " \"IMDb_URL\",\n", + " \"unknown\",\n", + " \"Action\",\n", + " \"Adventure\",\n", + " \"Animation\",\n", + " \"Children's\",\n", + " \"Comedy\",\n", + " \"Crime\",\n", + " \"Documentary\",\n", + " \"Drama\",\n", + " \"Fantasy\",\n", + " \"Film-Noir\",\n", + " \"Horror\",\n", + " \"Musical\",\n", + " \"Mystery\",\n", + " \"Romance\",\n", + " \"Sci-Fi\",\n", + " \"Thriller\",\n", + " \"War\",\n", + " \"Western\",\n", + "]" + ] + }, + { + "cell_type": "markdown", + "id": "7aedcec8", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f4c09273", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestamp
01962423881250949
11863023891717742
2223771878887116
3244512880606923
41663461886397596
\n", + "
" + ], + "text/plain": [ + " user_id movie_id rating timestamp\n", + "0 196 242 3 881250949\n", + "1 186 302 3 891717742\n", + "2 22 377 1 878887116\n", + "3 244 51 2 880606923\n", + "4 166 346 1 886397596" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "18c3faa0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idagegenderoccupationzip_code
0124Mtechnician85711
1253Fother94043
2323Mwriter32067
3424Mtechnician43537
4533Fother15213
\n", + "
" + ], + "text/plain": [ + " user_id age gender occupation zip_code\n", + "0 1 24 M technician 85711\n", + "1 2 53 F other 94043\n", + "2 3 23 M writer 32067\n", + "3 4 24 M technician 43537\n", + "4 5 33 F other 15213" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "users.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1dbad7b1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
movie_idmovie_titlerelease_datevideo_release_dateIMDb_URLunknownActionAdventureAnimationChildren's...FantasyFilm-NoirHorrorMusicalMysteryRomanceSci-FiThrillerWarWestern
01Toy Story (1995)01-Jan-1995NaNhttp://us.imdb.com/M/title-exact?Toy%20Story%2...00011...0000000000
12GoldenEye (1995)01-Jan-1995NaNhttp://us.imdb.com/M/title-exact?GoldenEye%20(...01100...0000000100
23Four Rooms (1995)01-Jan-1995NaNhttp://us.imdb.com/M/title-exact?Four%20Rooms%...00000...0000000100
34Get Shorty (1995)01-Jan-1995NaNhttp://us.imdb.com/M/title-exact?Get%20Shorty%...01000...0000000000
45Copycat (1995)01-Jan-1995NaNhttp://us.imdb.com/M/title-exact?Copycat%20(1995)00000...0000000100
\n", + "

5 rows × 24 columns

\n", + "
" + ], + "text/plain": [ + " movie_id movie_title release_date video_release_date \\\n", + "0 1 Toy Story (1995) 01-Jan-1995 NaN \n", + "1 2 GoldenEye (1995) 01-Jan-1995 NaN \n", + "2 3 Four Rooms (1995) 01-Jan-1995 NaN \n", + "3 4 Get Shorty (1995) 01-Jan-1995 NaN \n", + "4 5 Copycat (1995) 01-Jan-1995 NaN \n", + "\n", + " IMDb_URL unknown Action \\\n", + "0 http://us.imdb.com/M/title-exact?Toy%20Story%2... 0 0 \n", + "1 http://us.imdb.com/M/title-exact?GoldenEye%20(... 0 1 \n", + "2 http://us.imdb.com/M/title-exact?Four%20Rooms%... 0 0 \n", + "3 http://us.imdb.com/M/title-exact?Get%20Shorty%... 0 1 \n", + "4 http://us.imdb.com/M/title-exact?Copycat%20(1995) 0 0 \n", + "\n", + " Adventure Animation Children's ... Fantasy Film-Noir Horror Musical \\\n", + "0 0 1 1 ... 0 0 0 0 \n", + "1 1 0 0 ... 0 0 0 0 \n", + "2 0 0 0 ... 0 0 0 0 \n", + "3 0 0 0 ... 0 0 0 0 \n", + "4 0 0 0 ... 0 0 0 0 \n", + "\n", + " Mystery Romance Sci-Fi Thriller War Western \n", + "0 0 0 0 0 0 0 \n", + "1 0 0 0 1 0 0 \n", + "2 0 0 0 1 0 0 \n", + "3 0 0 0 0 0 0 \n", + "4 0 0 0 1 0 0 \n", + "\n", + "[5 rows x 24 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "items.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "7b1ce069", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['unknown',\n", + " 'Action',\n", + " 'Adventure',\n", + " 'Animation',\n", + " \"Children's\",\n", + " 'Comedy',\n", + " 'Crime',\n", + " 'Documentary',\n", + " 'Drama',\n", + " 'Fantasy',\n", + " 'Film-Noir',\n", + " 'Horror',\n", + " 'Musical',\n", + " 'Mystery',\n", + " 'Romance',\n", + " 'Sci-Fi',\n", + " 'Thriller',\n", + " 'War',\n", + " 'Western']" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list_of_genres = pd.read_csv(\n", + " raw_data_path / \"u.genre\", sep=\"|\", header=None, usecols=[0]\n", + ")[0].tolist()\n", + "list_of_genres" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "3cb7bbc5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestampnum_watched
0116858749654781
1117258749654782
2116558749655183
3115648749655564
4119658749656775
\n", + "
" + ], + "text/plain": [ + " user_id movie_id rating timestamp num_watched\n", + "0 1 168 5 874965478 1\n", + "1 1 172 5 874965478 2\n", + "2 1 165 5 874965518 3\n", + "3 1 156 4 874965556 4\n", + "4 1 196 5 874965677 5" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# adding a column with the number of movies watched per user\n", + "dataset = data.sort_values([\"user_id\", \"timestamp\"]).reset_index(drop=True)\n", + "dataset[\"one\"] = 1\n", + "dataset[\"num_watched\"] = dataset.groupby(\"user_id\")[\"one\"].cumsum()\n", + "dataset.drop(\"one\", axis=1, inplace=True)\n", + "dataset.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "cf7c5da2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestampnum_watchedmean_rate
01168587496547815.00
11172587496547825.00
21165587496551835.00
31156487496555644.75
41196587496567754.80
\n", + "
" + ], + "text/plain": [ + " user_id movie_id rating timestamp num_watched mean_rate\n", + "0 1 168 5 874965478 1 5.00\n", + "1 1 172 5 874965478 2 5.00\n", + "2 1 165 5 874965518 3 5.00\n", + "3 1 156 4 874965556 4 4.75\n", + "4 1 196 5 874965677 5 4.80" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# adding a column with the mean rating at a point in time per user\n", + "dataset[\"mean_rate\"] = (\n", + " dataset.groupby(\"user_id\")[\"rating\"].cumsum() / dataset[\"num_watched\"]\n", + ")\n", + "dataset.head()" + ] + }, + { + "cell_type": "markdown", + "id": "29d1c399", + "metadata": {}, + "source": [ + "In this particular exercise the problem is formulating as predicting the next movie that will be watched (in consequence the last interactions will be discarded)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0e9d1315", + "metadata": {}, + "outputs": [], + "source": [ + "dataset[\"target\"] = dataset.groupby(\"user_id\")[\"movie_id\"].shift(-1)" + ] + }, + { + "cell_type": "markdown", + "id": "b38bba10", + "metadata": {}, + "source": [ + "Following the same processing used by the author, we build sequences of previous movies watched" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f001f2b4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestampnum_watchedmean_ratetargetprev_movies
01168587496547815.00172.0[168]
11172587496547825.00165.0[168, 172]
21165587496551835.00156.0[168, 172, 165]
31156487496555644.75196.0[168, 172, 165, 156]
41196587496567754.80166.0[168, 172, 165, 156, 196]
\n", + "
" + ], + "text/plain": [ + " user_id movie_id rating timestamp num_watched mean_rate target \\\n", + "0 1 168 5 874965478 1 5.00 172.0 \n", + "1 1 172 5 874965478 2 5.00 165.0 \n", + "2 1 165 5 874965518 3 5.00 156.0 \n", + "3 1 156 4 874965556 4 4.75 196.0 \n", + "4 1 196 5 874965677 5 4.80 166.0 \n", + "\n", + " prev_movies \n", + "0 [168] \n", + "1 [168, 172] \n", + "2 [168, 172, 165] \n", + "3 [168, 172, 165, 156] \n", + "4 [168, 172, 165, 156, 196] " + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Here the author builds the sequences\n", + "dataset[\"prev_movies\"] = dataset[\"movie_id\"].apply(lambda x: str(x))\n", + "dataset[\"prev_movies\"] = (\n", + " dataset.groupby(\"user_id\")[\"prev_movies\"]\n", + " .apply(lambda x: (x + \" \").cumsum().str.strip())\n", + " .reset_index(drop=True)\n", + ")\n", + "dataset[\"prev_movies\"] = dataset[\"prev_movies\"].apply(lambda x: x.split())\n", + "dataset.head()" + ] + }, + { + "cell_type": "markdown", + "id": "a024b9c4", + "metadata": {}, + "source": [ + "And now we add a genre_rate as the mean of all movies rated for a given genre per user\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "5782f0c9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestampnum_watchedmean_ratetargetprev_moviesunknownAction...Fantasy_rateFilm-Noir_rateHorror_rateMusical_rateMystery_rateRomance_rateSci-Fi_rateThriller_rateWar_rateWestern_rate
01168587496547815.00172.0[168]0.00.000000...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
11172587496547825.00165.0[168, 172]0.00.500000...NaNNaNNaNNaNNaN5.05.0NaN5.0NaN
21165587496551835.00156.0[168, 172, 165]0.00.333333...NaNNaNNaNNaNNaN5.05.0NaN5.0NaN
31156487496555644.75196.0[168, 172, 165, 156]0.00.250000...NaNNaNNaNNaNNaN5.05.04.05.0NaN
41196587496567754.80166.0[168, 172, 165, 156, 196]0.00.200000...NaNNaNNaNNaNNaN5.05.04.05.0NaN
\n", + "

5 rows × 46 columns

\n", + "
" + ], + "text/plain": [ + " user_id movie_id rating timestamp num_watched mean_rate target \\\n", + "0 1 168 5 874965478 1 5.00 172.0 \n", + "1 1 172 5 874965478 2 5.00 165.0 \n", + "2 1 165 5 874965518 3 5.00 156.0 \n", + "3 1 156 4 874965556 4 4.75 196.0 \n", + "4 1 196 5 874965677 5 4.80 166.0 \n", + "\n", + " prev_movies unknown Action ... Fantasy_rate \\\n", + "0 [168] 0.0 0.000000 ... NaN \n", + "1 [168, 172] 0.0 0.500000 ... NaN \n", + "2 [168, 172, 165] 0.0 0.333333 ... NaN \n", + "3 [168, 172, 165, 156] 0.0 0.250000 ... NaN \n", + "4 [168, 172, 165, 156, 196] 0.0 0.200000 ... NaN \n", + "\n", + " Film-Noir_rate Horror_rate Musical_rate Mystery_rate Romance_rate \\\n", + "0 NaN NaN NaN NaN NaN \n", + "1 NaN NaN NaN NaN 5.0 \n", + "2 NaN NaN NaN NaN 5.0 \n", + "3 NaN NaN NaN NaN 5.0 \n", + "4 NaN NaN NaN NaN 5.0 \n", + "\n", + " Sci-Fi_rate Thriller_rate War_rate Western_rate \n", + "0 NaN NaN NaN NaN \n", + "1 5.0 NaN 5.0 NaN \n", + "2 5.0 NaN 5.0 NaN \n", + "3 5.0 4.0 5.0 NaN \n", + "4 5.0 4.0 5.0 NaN \n", + "\n", + "[5 rows x 46 columns]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset = dataset.merge(items[[\"movie_id\"] + list_of_genres], on=\"movie_id\", how=\"left\")\n", + "for genre in list_of_genres:\n", + " dataset[f\"{genre}_rate\"] = dataset[genre] * dataset[\"rating\"]\n", + " dataset[genre] = dataset.groupby(\"user_id\")[genre].cumsum()\n", + " dataset[f\"{genre}_rate\"] = (\n", + " dataset.groupby(\"user_id\")[f\"{genre}_rate\"].cumsum() / dataset[genre]\n", + " )\n", + "dataset[list_of_genres] = dataset[list_of_genres].apply(\n", + " lambda x: x / dataset[\"num_watched\"]\n", + ")\n", + "dataset.head()" + ] + }, + { + "cell_type": "markdown", + "id": "7029510d", + "metadata": {}, + "source": [ + "Adding user features" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "df698ec8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
user_idmovie_idratingtimestampnum_watchedmean_ratetargetprev_moviesunknownAction...Mystery_rateRomance_rateSci-Fi_rateThriller_rateWar_rateWestern_rateagegenderoccupationzip_code
01168587496547815.00172.0[168]0.00.000000...NaNNaNNaNNaNNaNNaN24Mtechnician85711
11172587496547825.00165.0[168, 172]0.00.500000...NaN5.05.0NaN5.0NaN24Mtechnician85711
21165587496551835.00156.0[168, 172, 165]0.00.333333...NaN5.05.0NaN5.0NaN24Mtechnician85711
31156487496555644.75196.0[168, 172, 165, 156]0.00.250000...NaN5.05.04.05.0NaN24Mtechnician85711
41196587496567754.80166.0[168, 172, 165, 156, 196]0.00.200000...NaN5.05.04.05.0NaN24Mtechnician85711
\n", + "

5 rows × 50 columns

\n", + "
" + ], + "text/plain": [ + " user_id movie_id rating timestamp num_watched mean_rate target \\\n", + "0 1 168 5 874965478 1 5.00 172.0 \n", + "1 1 172 5 874965478 2 5.00 165.0 \n", + "2 1 165 5 874965518 3 5.00 156.0 \n", + "3 1 156 4 874965556 4 4.75 196.0 \n", + "4 1 196 5 874965677 5 4.80 166.0 \n", + "\n", + " prev_movies unknown Action ... Mystery_rate \\\n", + "0 [168] 0.0 0.000000 ... NaN \n", + "1 [168, 172] 0.0 0.500000 ... NaN \n", + "2 [168, 172, 165] 0.0 0.333333 ... NaN \n", + "3 [168, 172, 165, 156] 0.0 0.250000 ... NaN \n", + "4 [168, 172, 165, 156, 196] 0.0 0.200000 ... NaN \n", + "\n", + " Romance_rate Sci-Fi_rate Thriller_rate War_rate Western_rate age \\\n", + "0 NaN NaN NaN NaN NaN 24 \n", + "1 5.0 5.0 NaN 5.0 NaN 24 \n", + "2 5.0 5.0 NaN 5.0 NaN 24 \n", + "3 5.0 5.0 4.0 5.0 NaN 24 \n", + "4 5.0 5.0 4.0 5.0 NaN 24 \n", + "\n", + " gender occupation zip_code \n", + "0 M technician 85711 \n", + "1 M technician 85711 \n", + "2 M technician 85711 \n", + "3 M technician 85711 \n", + "4 M technician 85711 \n", + "\n", + "[5 rows x 50 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset = dataset.merge(users, on=\"user_id\", how=\"left\")\n", + "dataset.head()" + ] + }, + { + "cell_type": "markdown", + "id": "ee62d77e", + "metadata": {}, + "source": [ + "Again, we use the same settings as those in the Kaggle notebook, but `'COLD_START_TRESH'` is pretty aggressive\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "8060cf59", + "metadata": {}, + "outputs": [], + "source": [ + "COLD_START_TRESH = 5\n", + "\n", + "filtred_data = dataset[\n", + " (dataset[\"num_watched\"] >= COLD_START_TRESH) & ~(dataset[\"target\"].isna())\n", + "].sort_values(\"timestamp\")\n", + "train_data, _test_data = train_test_split(filtred_data, test_size=0.2, shuffle=False)\n", + "valid_data, test_data = train_test_split(_test_data, test_size=0.5, shuffle=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "b1beb347", + "metadata": {}, + "outputs": [], + "source": [ + "cols_to_drop = [\n", + " # \"rating\",\n", + " \"timestamp\",\n", + " \"num_watched\",\n", + "]\n", + "\n", + "df_train = train_data.drop(cols_to_drop, axis=1)\n", + "df_valid = valid_data.drop(cols_to_drop, axis=1)\n", + "df_test = test_data.drop(cols_to_drop, axis=1)\n", + "\n", + "df_train.to_pickle(save_path / \"df_train.pkl\")\n", + "df_valid.to_pickle(save_path / \"df_valid.pkl\")\n", + "df_test.to_pickle(save_path / \"df_test.pkl\")" + ] + }, + { + "cell_type": "markdown", + "id": "5bf71a82", + "metadata": {}, + "source": [ + "Let's now build a model that is nearly identical to the one use in the[ Kaggle notebook](https://www.kaggle.com/code/matanivanov/wide-deep-learning-for-recsys-with-pytorch)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6aa2e3f2", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import torch\n", + "from torch import nn\n", + "from scipy.sparse import coo_matrix\n", + "\n", + "from pytorch_widedeep import Trainer\n", + "from pytorch_widedeep.models import TabMlp, BasicRNN, WideDeep\n", + "from pytorch_widedeep.preprocessing import TabPreprocessor" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "42b0d88f", + "metadata": {}, + "outputs": [], + "source": [ + "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", + "\n", + "save_path = Path(\"prepared_data\")\n", + "\n", + "PAD_IDX = 0" + ] + }, + { + "cell_type": "markdown", + "id": "be204fe8", + "metadata": {}, + "source": [ + "Let's use some of the functions the author of the kaggle's notebook uses to prepare the data" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "206eb90e", + "metadata": {}, + "outputs": [], + "source": [ + "def get_coo_indexes(lil):\n", + " rows = []\n", + " cols = []\n", + " for i, el in enumerate(lil):\n", + " if type(el) != list:\n", + " el = [el]\n", + " for j in el:\n", + " rows.append(i)\n", + " cols.append(j)\n", + " return rows, cols\n", + "\n", + "\n", + "def get_sparse_features(series, shape):\n", + " coo_indexes = get_coo_indexes(series.tolist())\n", + " sparse_df = coo_matrix(\n", + " (np.ones(len(coo_indexes[0])), (coo_indexes[0], coo_indexes[1])), shape=shape\n", + " )\n", + " return sparse_df\n", + "\n", + "\n", + "def sparse_to_idx(data, pad_idx=-1):\n", + " indexes = data.nonzero()\n", + " indexes_df = pd.DataFrame()\n", + " indexes_df[\"rows\"] = indexes[0]\n", + " indexes_df[\"cols\"] = indexes[1]\n", + " mdf = indexes_df.groupby(\"rows\").apply(lambda x: x[\"cols\"].tolist())\n", + " max_len = mdf.apply(lambda x: len(x)).max()\n", + " return mdf.apply(lambda x: pd.Series(x + [pad_idx] * (max_len - len(x)))).values" + ] + }, + { + "cell_type": "markdown", + "id": "7ca8dd42", + "metadata": {}, + "source": [ + "For the time being, we will not use a validation set for hyperparameter optimization, and we will simply concatenate the validation and the test set in one test set. I simply splitted the data into train/valid/test in case the reader wants to actually do hyperparameter optimization.\n", + "\n", + "There is also another caveat worth mentioning, related to the indexing of the movies. To build the matrices of movies watched, we use the entire dataset. A more realistic (and correct) approach would be to use ONLY the movies that appear in the training set and consider `unknown` or `unseen` those in the testing set that have not been seen during training. Nonetheless, this will not affect the purposes of this notebook, which is to illustrate how one could use `pytorch-widedeep` to build a recommendation algorithm, using the before mentioned Kaggle notebook" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "39f778bc", + "metadata": {}, + "outputs": [], + "source": [ + "df_test = pd.concat([df_valid, df_test], ignore_index=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "ab7483c3", + "metadata": {}, + "outputs": [], + "source": [ + "id_cols = [\"user_id\", \"movie_id\"]\n", + "max_movie_index = max(df_train.movie_id.max(), df_test.movie_id.max())" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "3d17bd3d", + "metadata": {}, + "outputs": [], + "source": [ + "X_train = df_train.drop(id_cols + [\"rating\", \"prev_movies\", \"target\"], axis=1)\n", + "y_train = np.array(df_train.target.values, dtype=\"int64\")\n", + "train_movies_watched = get_sparse_features(\n", + " df_train[\"prev_movies\"], (len(df_train), max_movie_index + 1)\n", + ")\n", + "\n", + "X_test = df_test.drop(id_cols + [\"rating\", \"prev_movies\", \"target\"], axis=1)\n", + "y_test = np.array(df_test.target.values, dtype=\"int64\")\n", + "test_movies_watched = get_sparse_features(\n", + " df_test[\"prev_movies\"], (len(df_test), max_movie_index + 1)\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "511e95ed", + "metadata": {}, + "source": [ + "let's have a look to the information in each dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "dd9e5ef3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
mean_rateunknownActionAdventureAnimationChildren'sComedyCrimeDocumentaryDrama...Mystery_rateRomance_rateSci-Fi_rateThriller_rateWar_rateWestern_rateagegenderoccupationzip_code
254234.0000000.00.4000000.2000000.00.00.4000000.00.00.200000...NaN4.04.04.0000004.0NaN21Mstudent48823
254254.0000000.00.2857140.1428570.00.00.4285710.00.00.285714...NaN4.04.04.0000004.0NaN21Mstudent48823
254244.0000000.00.3333330.1666670.00.00.3333330.00.00.333333...NaN4.04.04.0000004.0NaN21Mstudent48823
254263.8750000.00.2500000.1250000.00.00.3750000.00.00.250000...NaN4.04.03.6666674.0NaN21Mstudent48823
254273.8888890.00.2222220.1111110.00.00.3333330.00.00.333333...NaN4.04.03.6666674.0NaN21Mstudent48823
\n", + "

5 rows × 43 columns

\n", + "
" + ], + "text/plain": [ + " mean_rate unknown Action Adventure Animation Children's \\\n", + "25423 4.000000 0.0 0.400000 0.200000 0.0 0.0 \n", + "25425 4.000000 0.0 0.285714 0.142857 0.0 0.0 \n", + "25424 4.000000 0.0 0.333333 0.166667 0.0 0.0 \n", + "25426 3.875000 0.0 0.250000 0.125000 0.0 0.0 \n", + "25427 3.888889 0.0 0.222222 0.111111 0.0 0.0 \n", + "\n", + " Comedy Crime Documentary Drama ... Mystery_rate \\\n", + "25423 0.400000 0.0 0.0 0.200000 ... NaN \n", + "25425 0.428571 0.0 0.0 0.285714 ... NaN \n", + "25424 0.333333 0.0 0.0 0.333333 ... NaN \n", + "25426 0.375000 0.0 0.0 0.250000 ... NaN \n", + "25427 0.333333 0.0 0.0 0.333333 ... NaN \n", + "\n", + " Romance_rate Sci-Fi_rate Thriller_rate War_rate Western_rate age \\\n", + "25423 4.0 4.0 4.000000 4.0 NaN 21 \n", + "25425 4.0 4.0 4.000000 4.0 NaN 21 \n", + "25424 4.0 4.0 4.000000 4.0 NaN 21 \n", + "25426 4.0 4.0 3.666667 4.0 NaN 21 \n", + "25427 4.0 4.0 3.666667 4.0 NaN 21 \n", + "\n", + " gender occupation zip_code \n", + "25423 M student 48823 \n", + "25425 M student 48823 \n", + "25424 M student 48823 \n", + "25426 M student 48823 \n", + "25427 M student 48823 \n", + "\n", + "[5 rows x 43 columns]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_train.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "840e59a2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([772, 288, 108, ..., 183, 432, 509])" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_train" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "516d2fd5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<76228x1683 sparse matrix of type ''\n", + "\twith 7957390 stored elements in COOrdinate format>" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "train_movies_watched" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "a4cba74d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['173', '185', '255', '286', '298']" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted(df_train.prev_movies.tolist()[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "a4f11af4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([0, 0, 0, 0, 0]), array([173, 185, 255, 286, 298]))" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.where(train_movies_watched.todense()[0])" + ] + }, + { + "cell_type": "markdown", + "id": "2d7dd7bc", + "metadata": {}, + "source": [ + "And from now on is when the specifics related to this library start to appear. The only component that is going to be a bit different is the so-called tabular component, referred as `'continuous'` in the notebook. \n", + "\n", + "In the case of `pytorch-widedeep` we have the `TabPreprocessor` that allows for a lot of flexibility as to how we would like to process the tabular component of this Wide and Deep model. In other words, here our tabular component is a bit more elaborated than that in the notebook, just a bit...\n" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "733ea2a5", + "metadata": {}, + "outputs": [], + "source": [ + "cat_cols = [\"gender\", \"occupation\", \"zip_code\"]\n", + "cont_cols = [c for c in X_train if c not in cat_cols]\n", + "tab_preprocessor = TabPreprocessor(\n", + " cat_embed_cols=cat_cols,\n", + " continuous_cols=cont_cols,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "68555183", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/javierrodriguezzaurin/Projects/pytorch-widedeep/pytorch_widedeep/preprocessing/tab_preprocessor.py:309: UserWarning: Continuous columns will not be normalised\n", + " warnings.warn(\"Continuous columns will not be normalised\")\n" + ] + } + ], + "source": [ + "X_train_tab = tab_preprocessor.fit_transform(X_train.fillna(0))\n", + "X_test_tab = tab_preprocessor.transform(X_test.fillna(0))" + ] + }, + { + "cell_type": "markdown", + "id": "a00da28c", + "metadata": {}, + "source": [ + "Now, in the notebook, the author moves the sparse matrices to sparse tensors and then turns them into dense tensors. In reality, this is not neccessary, one could feed sparse tensors to `nn.Linear` layers in pytorch. Nonetheless, this is not the most efficient implementation and is the reason why in our library the wide, linear component is implemented as an embedding layer. \n", + "\n", + "Nonetheless, to reproduce the notebook the best we can and because currently the `Wide` model in `pytorch-widedeep` is not designed to receive sparse tensors (we might consider implementing this functionality), we will turn the sparse COO matrices into dense arrays. We will then code a fairly simple, custom `Wide` component." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "20903dd2", + "metadata": {}, + "outputs": [], + "source": [ + "X_train_wide = np.array(train_movies_watched.todense())\n", + "X_test_wide = np.array(test_movies_watched.todense())" + ] + }, + { + "cell_type": "markdown", + "id": "377e7f90", + "metadata": {}, + "source": [ + "Finally, the author of the notebook uses a simple `Embedding` layer to encode the sequences of movies watched, the `prev_movies` columns. In my opinion, there is an element of information redundancy here. This is because the wide and text components have implicitely the same information, but in different form. Moreover, both of the models used for these two components ignore the sequential element in the data. Nonetheless, we want to reproduce the Kaggle notebook as close as possible, AND as one can explore later (by simply performing simple ablation studies), the wide component seems to carry most of the predictive power." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "c52fd52c", + "metadata": {}, + "outputs": [], + "source": [ + "X_train_text = sparse_to_idx(train_movies_watched, pad_idx=PAD_IDX)\n", + "X_test_text = sparse_to_idx(test_movies_watched, pad_idx=PAD_IDX)" + ] + }, + { + "cell_type": "markdown", + "id": "1ca8b84d", + "metadata": {}, + "source": [ + "Let's now build the models" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "44bc73d4", + "metadata": {}, + "outputs": [], + "source": [ + "class Wide(nn.Module):\n", + " def __init__(self, input_dim: int, pred_dim: int):\n", + " super().__init__()\n", + "\n", + " self.input_dim = input_dim\n", + " self.pred_dim = pred_dim\n", + "\n", + " # When I coded the library I never though that someone would want to code\n", + " # their own wide component. However, if you do, the wide component must have\n", + " # a 'wide_linear' attribute. In other words, the linear layer must be\n", + " # called 'wide_linear'\n", + " self.wide_linear = nn.Linear(input_dim, pred_dim)\n", + "\n", + " def forward(self, X):\n", + " out = self.wide_linear(X.type(torch.float32))\n", + " return out\n", + "\n", + "\n", + "wide = Wide(X_train_wide.shape[1], max_movie_index + 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "6f66130d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Wide(\n", + " (wide_linear): Linear(in_features=1683, out_features=1683, bias=True)\n", + ")" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wide" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "25592d30", + "metadata": {}, + "outputs": [], + "source": [ + "class SimpleEmbed(nn.Module):\n", + " def __init__(self, vocab_size: int, embed_dim: int, pad_idx: int):\n", + " super().__init__()\n", + "\n", + " self.vocab_size = vocab_size\n", + " self.embed_dim = embed_dim\n", + " self.pad_idx = pad_idx\n", + "\n", + " # The sequences of movies watched are simply embedded in the Kaggle\n", + " # notebook. No RNN, Transformer or any model is used\n", + " self.embed = nn.Embedding(vocab_size, embed_dim, padding_idx=pad_idx)\n", + "\n", + " def forward(self, X):\n", + " embed = self.embed(X)\n", + " embed_mean = torch.mean(embed, dim=1)\n", + " return embed_mean\n", + "\n", + " @property\n", + " def output_dim(self) -> int:\n", + " # All deep components in a custom 'pytorch-widedeep' model must have\n", + " # an output_dim property\n", + " return self.embed_dim\n", + "\n", + "\n", + "# In the notebook the author uses simply embeddings\n", + "simple_embed = SimpleEmbed(max_movie_index + 1, 16, 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "492f12c5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SimpleEmbed(\n", + " (embed): Embedding(1683, 16, padding_idx=0)\n", + ")" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "simple_embed" + ] + }, + { + "cell_type": "markdown", + "id": "fe9f137a", + "metadata": {}, + "source": [ + "Maybe one would like to use an RNN to account for the sequence nature of the problem. If that was the case it would be as easy as: " + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "0c3f17b2", + "metadata": {}, + "outputs": [], + "source": [ + "basic_rnn = BasicRNN(\n", + " vocab_size=max_movie_index + 1,\n", + " embed_dim=16,\n", + " hidden_dim=32,\n", + " n_layers=2,\n", + " rnn_type=\"gru\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "e410d5d9", + "metadata": {}, + "source": [ + "And finally, the tabular component, which is the notebook is simply a stak of linear + Rely layers. In our case we have an embedding layer before the linear layers to encode categorial and numerical cols" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "ca721555", + "metadata": {}, + "outputs": [], + "source": [ + "tab_mlp = TabMlp(\n", + " column_idx=tab_preprocessor.column_idx,\n", + " cat_embed_input=tab_preprocessor.cat_embed_input,\n", + " continuous_cols=tab_preprocessor.continuous_cols,\n", + " cont_norm_layer=None,\n", + " mlp_hidden_dims=[1024, 512, 256],\n", + " mlp_activation=\"relu\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "25c25e3a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "TabMlp(\n", + " (cat_and_cont_embed): DiffSizeCatAndContEmbeddings(\n", + " (cat_embed): DiffSizeCatEmbeddings(\n", + " (embed_layers): ModuleDict(\n", + " (emb_layer_gender): Embedding(3, 2, padding_idx=0)\n", + " (emb_layer_occupation): Embedding(22, 9, padding_idx=0)\n", + " (emb_layer_zip_code): Embedding(648, 60, padding_idx=0)\n", + " )\n", + " (embedding_dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (cont_norm): Identity()\n", + " )\n", + " (encoder): MLP(\n", + " (mlp): Sequential(\n", + " (dense_layer_0): Sequential(\n", + " (0): Dropout(p=0.1, inplace=False)\n", + " (1): Linear(in_features=111, out_features=1024, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " )\n", + " (dense_layer_1): Sequential(\n", + " (0): Dropout(p=0.1, inplace=False)\n", + " (1): Linear(in_features=1024, out_features=512, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " )\n", + " (dense_layer_2): Sequential(\n", + " (0): Dropout(p=0.1, inplace=False)\n", + " (1): Linear(in_features=512, out_features=256, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " )\n", + " )\n", + " )\n", + ")" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tab_mlp" + ] + }, + { + "cell_type": "markdown", + "id": "b68c5bc9", + "metadata": {}, + "source": [ + "Finally, we simply wrap up all models with the `WideDeep` 'collector' class and we are ready to train. " + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "4c6acc08", + "metadata": {}, + "outputs": [], + "source": [ + "wide_deep_model = WideDeep(\n", + " wide=wide, deeptabular=tab_mlp, deeptext=simple_embed, pred_dim=max_movie_index + 1\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "bc8970f7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "WideDeep(\n", + " (wide): Wide(\n", + " (wide_linear): Linear(in_features=1683, out_features=1683, bias=True)\n", + " )\n", + " (deeptabular): Sequential(\n", + " (0): TabMlp(\n", + " (cat_and_cont_embed): DiffSizeCatAndContEmbeddings(\n", + " (cat_embed): DiffSizeCatEmbeddings(\n", + " (embed_layers): ModuleDict(\n", + " (emb_layer_gender): Embedding(3, 2, padding_idx=0)\n", + " (emb_layer_occupation): Embedding(22, 9, padding_idx=0)\n", + " (emb_layer_zip_code): Embedding(648, 60, padding_idx=0)\n", + " )\n", + " (embedding_dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (cont_norm): Identity()\n", + " )\n", + " (encoder): MLP(\n", + " (mlp): Sequential(\n", + " (dense_layer_0): Sequential(\n", + " (0): Dropout(p=0.1, inplace=False)\n", + " (1): Linear(in_features=111, out_features=1024, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " )\n", + " (dense_layer_1): Sequential(\n", + " (0): Dropout(p=0.1, inplace=False)\n", + " (1): Linear(in_features=1024, out_features=512, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " )\n", + " (dense_layer_2): Sequential(\n", + " (0): Dropout(p=0.1, inplace=False)\n", + " (1): Linear(in_features=512, out_features=256, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (1): Linear(in_features=256, out_features=1683, bias=True)\n", + " )\n", + " (deeptext): Sequential(\n", + " (0): SimpleEmbed(\n", + " (embed): Embedding(1683, 16, padding_idx=0)\n", + " )\n", + " (1): Linear(in_features=16, out_features=1683, bias=True)\n", + " )\n", + ")" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wide_deep_model" + ] + }, + { + "cell_type": "markdown", + "id": "e08d41ed", + "metadata": {}, + "source": [ + "Note that the main difference between this wide and deep model and the Wide and Deep model in the Kaggle notebook is that in that notebook, the author concatenates the embedings and the tabular features, then passes this concatenation through a stack of linear + Relu layers. Then concatenates this output with the binary features and connects this concatenation with the final linear layer (so the final weights are of dim (batch_size, 256 + 16 + 1683)). Our implementation follows the notation of the original paper and instead of concatenating the tabular, text and wide components and then connect them to the output neurons, we first compute their output, and then add it (see here: https://arxiv.org/pdf/1606.07792.pdf, their Eq 3). Note that this is effectively the same with the caveat that while in one case we initialise a big weight matrix at once, in our implementation we initialise different matrices for different components. Anyway, let's give it a go." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "538a34de", + "metadata": {}, + "outputs": [], + "source": [ + "trainer = Trainer(\n", + " model=wide_deep_model,\n", + " objective=\"multiclass\",\n", + " custom_loss_function=nn.CrossEntropyLoss(ignore_index=PAD_IDX),\n", + " optimizers=torch.optim.Adam(wide_deep_model.parameters(), lr=1e-3),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "77c02ed5", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "epoch 1: 100%|██████████████████████████████| 149/149 [00:16<00:00, 9.08it/s, loss=6.66]\n", + "valid: 100%|██████████████████████████████████| 38/38 [00:01<00:00, 23.53it/s, loss=6.61]\n", + "epoch 2: 100%|██████████████████████████████| 149/149 [00:16<00:00, 9.11it/s, loss=5.99]\n", + "valid: 100%|██████████████████████████████████| 38/38 [00:01<00:00, 23.07it/s, loss=6.55]\n", + "epoch 3: 100%|██████████████████████████████| 149/149 [00:16<00:00, 9.11it/s, loss=5.67]\n", + "valid: 100%|██████████████████████████████████| 38/38 [00:01<00:00, 22.89it/s, loss=6.55]\n", + "epoch 4: 100%|██████████████████████████████| 149/149 [00:16<00:00, 8.81it/s, loss=5.43]\n", + "valid: 100%|██████████████████████████████████| 38/38 [00:01<00:00, 21.43it/s, loss=6.57]\n", + "epoch 5: 100%|██████████████████████████████| 149/149 [00:16<00:00, 8.79it/s, loss=5.24]\n", + "valid: 100%|███████████████████████████████████| 38/38 [00:01<00:00, 22.39it/s, loss=6.6]\n" + ] + } + ], + "source": [ + "trainer.fit(\n", + " X_train={\n", + " \"X_wide\": X_train_wide,\n", + " \"X_tab\": X_train_tab,\n", + " \"X_text\": X_train_text,\n", + " \"target\": y_train,\n", + " },\n", + " X_val={\n", + " \"X_wide\": X_test_wide,\n", + " \"X_tab\": X_test_tab,\n", + " \"X_text\": X_test_text,\n", + " \"target\": y_test,\n", + " },\n", + " n_epochs=5,\n", + " batch_size=512,\n", + " shuffle=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a8f9aec7", + "metadata": {}, + "source": [ + "Now one could continue to the 'compare' metrics section of the Kaggle notebook. However, for the purposes of illustrating how one could use `pytorch-widedeep` to build recommendation algorithms we consider this notebook completed and move onto part 2 " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.15" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 04e9d38b500c37dc03dce13de0431d20ff39da5a Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 28 Jul 2023 22:25:31 +0200 Subject: [PATCH 5/9] Added the notebooks to illustrate how to use the library to build recommendation algos. A couple of bugs to fix and ready to merge and publish --- ... => 19_wide_and_deep_for_recsys_pt1.ipynb} | 30 +- .../19_wide_and_deep_for_recsys_pt2.ipynb | 368 ++++++++++++++++++ ..._deep_opt1.py => pytorch_wide_deep_pt1.py} | 0 ..._deep_opt2.py => pytorch_wide_deep_pt2.py} | 0 4 files changed, 382 insertions(+), 16 deletions(-) rename examples/notebooks/{19_wide_and_deep_for_recsys_1.ipynb => 19_wide_and_deep_for_recsys_pt1.ipynb} (96%) create mode 100644 examples/notebooks/19_wide_and_deep_for_recsys_pt2.ipynb rename examples/scripts/wide_deep_for_recsys/{pytorch_wide_deep_opt1.py => pytorch_wide_deep_pt1.py} (100%) rename examples/scripts/wide_deep_for_recsys/{pytorch_wide_deep_opt2.py => pytorch_wide_deep_pt2.py} (100%) diff --git a/examples/notebooks/19_wide_and_deep_for_recsys_1.ipynb b/examples/notebooks/19_wide_and_deep_for_recsys_pt1.ipynb similarity index 96% rename from examples/notebooks/19_wide_and_deep_for_recsys_1.ipynb rename to examples/notebooks/19_wide_and_deep_for_recsys_pt1.ipynb index e9fde6bf..0d743437 100644 --- a/examples/notebooks/19_wide_and_deep_for_recsys_1.ipynb +++ b/examples/notebooks/19_wide_and_deep_for_recsys_pt1.ipynb @@ -5,9 +5,11 @@ "id": "d298e185", "metadata": {}, "source": [ - "The goal of this notebook is to illustrate how one could use this library in the context of recommendation systems. In particular, this notebook and the companion scripts at the `wide_deep_for_recsys` dir are a response to this [issue](https://github.com/jrzaurin/pytorch-widedeep/issues/133). Therefore, we will use the [Kaggle notebook](https://www.kaggle.com/code/matanivanov/wide-deep-learning-for-recsys-with-pytorch) referred in that issue here.\n", + "The goal of this, and the companion (part 2) notebooks is to illustrate how one could use this library in the context of recommendation systems. In particular, this notebook and the scripts at the `wide_deep_for_recsys` dir are a response to this [issue](https://github.com/jrzaurin/pytorch-widedeep/issues/133). Therefore, we will use the [Kaggle notebook](https://www.kaggle.com/code/matanivanov/wide-deep-learning-for-recsys-with-pytorch) referred in that issue here.\n", "\n", - "In order to keep the length of the notebook tractable, we will split this exercise in 2. In this first notebook we will prepare the data in almost the exact same way as it is done in the Kaggle notebook and show how one could use `pytorch-widedeep` to build a model almost identical to the one in that notebook. In a second notebook, we will show how one could use this library to implement other models, still following the same problem formulation." + "In order to keep the length of the notebook tractable, we will split this exercise in 2. In this first notebook we will prepare the [data](https://www.kaggle.com/datasets/prajitdatta/movielens-100k-dataset) in almost the exact same way as it is done in the Kaggle notebook and also show how one could use `pytorch-widedeep` to build a model almost identical to the one in that notebook. \n", + "\n", + "In a second notebook, we will show how one could use this library to implement other models, still following the same problem formulation." ] }, { @@ -101,12 +103,6 @@ "]" ] }, - { - "cell_type": "markdown", - "id": "7aedcec8", - "metadata": {}, - "source": [] - }, { "cell_type": "code", "execution_count": 5, @@ -768,7 +764,9 @@ "id": "29d1c399", "metadata": {}, "source": [ - "In this particular exercise the problem is formulating as predicting the next movie that will be watched (in consequence the last interactions will be discarded)" + "### Problem formulation\n", + "\n", + "In this particular exercise the problem is formulated as predicting the next movie that will be watched (in consequence the last interactions will be discarded)" ] }, { @@ -786,7 +784,7 @@ "id": "b38bba10", "metadata": {}, "source": [ - "Following the same processing used by the author, we build sequences of previous movies watched" + "Following the same processing used by the author in the before-mentioned Kaggle notebook, we build sequences of previous movies watched" ] }, { @@ -924,7 +922,7 @@ "id": "a024b9c4", "metadata": {}, "source": [ - "And now we add a genre_rate as the mean of all movies rated for a given genre per user\n" + "And now we add a `genre_rate` as the mean of all movies rated for a given genre per user\n" ] }, { @@ -1385,7 +1383,7 @@ "id": "ee62d77e", "metadata": {}, "source": [ - "Again, we use the same settings as those in the Kaggle notebook, but `'COLD_START_TRESH'` is pretty aggressive\n" + "Again, we use the same settings as those in the Kaggle notebook, but `COLD_START_TRESH` is pretty aggressive" ] }, { @@ -1515,9 +1513,9 @@ "id": "7ca8dd42", "metadata": {}, "source": [ - "For the time being, we will not use a validation set for hyperparameter optimization, and we will simply concatenate the validation and the test set in one test set. I simply splitted the data into train/valid/test in case the reader wants to actually do hyperparameter optimization.\n", + "For the time being, we will not use a validation set for hyperparameter optimization, and we will simply concatenate the validation and the test set in one test set. I simply splitted the data into train/valid/test in case the reader wants to actually do hyperparameter optimization (and because I know in the future I will).\n", "\n", - "There is also another caveat worth mentioning, related to the indexing of the movies. To build the matrices of movies watched, we use the entire dataset. A more realistic (and correct) approach would be to use ONLY the movies that appear in the training set and consider `unknown` or `unseen` those in the testing set that have not been seen during training. Nonetheless, this will not affect the purposes of this notebook, which is to illustrate how one could use `pytorch-widedeep` to build a recommendation algorithm, using the before mentioned Kaggle notebook" + "There is also another caveat worth mentioning, related to the indexing of the movies. To build the matrices of movies watched, we use the entire dataset. A more realistic (and correct) approach would be to use ONLY the movies that appear in the training set and consider `unknown` or `unseen` those in the testing set that have not been seen during training. Nonetheless, this will not affect the purposes of this notebook, which is to illustrate how one could use `pytorch-widedeep` to build a recommendation algorithm. However, if one wanted to explore the performance of different algorithms in a \"proper\" way, these \"details\" need to be accounted for." ] }, { @@ -1876,7 +1874,7 @@ "id": "2d7dd7bc", "metadata": {}, "source": [ - "And from now on is when the specifics related to this library start to appear. The only component that is going to be a bit different is the so-called tabular component, referred as `'continuous'` in the notebook. \n", + "And from now on is when the specifics related to this library start to appear. The only component that is going to be a bit different is the so-called tabular component, referred as `continuous` in the notebook. \n", "\n", "In the case of `pytorch-widedeep` we have the `TabPreprocessor` that allows for a lot of flexibility as to how we would like to process the tabular component of this Wide and Deep model. In other words, here our tabular component is a bit more elaborated than that in the notebook, just a bit...\n" ] @@ -2265,7 +2263,7 @@ "id": "e08d41ed", "metadata": {}, "source": [ - "Note that the main difference between this wide and deep model and the Wide and Deep model in the Kaggle notebook is that in that notebook, the author concatenates the embedings and the tabular features, then passes this concatenation through a stack of linear + Relu layers. Then concatenates this output with the binary features and connects this concatenation with the final linear layer (so the final weights are of dim (batch_size, 256 + 16 + 1683)). Our implementation follows the notation of the original paper and instead of concatenating the tabular, text and wide components and then connect them to the output neurons, we first compute their output, and then add it (see here: https://arxiv.org/pdf/1606.07792.pdf, their Eq 3). Note that this is effectively the same with the caveat that while in one case we initialise a big weight matrix at once, in our implementation we initialise different matrices for different components. Anyway, let's give it a go." + "Note that the main difference between this wide and deep model and the Wide and Deep model in the Kaggle notebook is that in that notebook, the author concatenates the embedings and the tabular features, then passes this concatenation through a stack of linear + Relu layers with a final output dim of 256. Then concatenates this output with the binary features and connects this concatenation with the final linear layer (so the final weights are of dim (batch_size, 256 + 1683)). Our implementation follows the notation of the original paper and instead of concatenating the tabular, text and wide components and then connect them to the output neurons, we first compute their output, and then add it (see here: https://arxiv.org/pdf/1606.07792.pdf, their Eq 3). Note that this is effectively the same, with the caveat that while in one case one initialises a big weight matrix \"at once\", in our implementation we initialise different matrices for different components. Anyway, let's give it a go." ] }, { diff --git a/examples/notebooks/19_wide_and_deep_for_recsys_pt2.ipynb b/examples/notebooks/19_wide_and_deep_for_recsys_pt2.ipynb new file mode 100644 index 00000000..c5cfbc8d --- /dev/null +++ b/examples/notebooks/19_wide_and_deep_for_recsys_pt2.ipynb @@ -0,0 +1,368 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is the second of the two notebooks where we aim to illustrate how one could use this library to build recommendation algorithms using the example in this [Kaggle notebook](https://www.kaggle.com/code/matanivanov/wide-deep-learning-for-recsys-with-pytorch) as guidance. In the previous notebook we used `pytorch-widedeep` to build a model that replicated almost exactly that in the notebook. In this, shorter notebook we will show how one could use the library to explore other models, following the same problem formulation, this is: given a state of a user at a certain point in time having watched a series of movies, our goal is to predict which movie the user will watch next. \n", + "\n", + "Assuming that one has read (and run) the previous notebook, the required data will be stored in a local dir called `prepared_data`, so let's read it:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "import numpy as np\n", + "import torch\n", + "import pandas as pd\n", + "from torch import nn\n", + "\n", + "from pytorch_widedeep import Trainer\n", + "from pytorch_widedeep.utils import pad_sequences\n", + "from pytorch_widedeep.models import TabMlp, WideDeep, Transformer\n", + "from pytorch_widedeep.preprocessing import TabPreprocessor" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "save_path = Path(\"prepared_data\")\n", + "\n", + "PAD_IDX = 0\n", + "\n", + "id_cols = [\"user_id\", \"movie_id\"]\n", + "\n", + "df_train = pd.read_pickle(save_path / \"df_train.pkl\")\n", + "df_valid = pd.read_pickle(save_path / \"df_valid.pkl\")\n", + "df_test = pd.read_pickle(save_path / \"df_test.pkl\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "...remember that in the previous notebook we explained that we are not going to use a validation set here (in a real-world example, or simply a more realistic example, one should always use it).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "df_test = pd.concat([df_valid, df_test], ignore_index=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Also remember that, in the previous notebook we discussed that the `'maxlen'` and `'max_movie_index'` parameters should be computed using only the train set. In particular, to properly do the tokenization, one would have to use ONLY train tokens and add a token for new 'unknown'/'unseen' movies in the test set. This can also be done with this library or manually, so I will leave it to the reader to implement that tokenzation appraoch." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "maxlen = max(\n", + " df_train.prev_movies.apply(lambda x: len(x)).max(),\n", + " df_test.prev_movies.apply(lambda x: len(x)).max(),\n", + ")\n", + "\n", + "max_movie_index = max(df_train.movie_id.max(), df_test.movie_id.max())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From now one things are pretty simple, moreover bearing in mind that in this example we are not going to use a wide component since, in pple, one would believe that the information in that component is also 'carried' by the movie sequences (However in the previous notebook, if one performs ablation studies, these suggest that most of the prediction power comes from the linear, wide model).\n", + "\n", + "In the example here we are going to explore one (of many) possibilities. We are simply going to encode the triplet `(user, item, rating)` and use it as a `deeptabular` component and the sequences of previously watched movies as the `deeptext` component. For the `deeptext` component we are going to use a basic encoder-only transformer model.\n", + "\n", + "Let's start with the tabular data preparation\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "df_train_user_item = df_train[[\"user_id\", \"movie_id\", \"rating\"]]\n", + "train_movies_sequences = df_train.prev_movies.apply(\n", + " lambda x: [int(el) for el in x]\n", + ").to_list()\n", + "y_train = df_train.target.values.astype(int)\n", + "\n", + "df_test_user_item = df_train[[\"user_id\", \"movie_id\", \"rating\"]]\n", + "test_movies_sequences = df_test.prev_movies.apply(\n", + " lambda x: [int(el) for el in x]\n", + ").to_list()\n", + "y_test = df_test.target.values.astype(int)\n", + "\n", + "tab_preprocessor = tab_preprocessor = TabPreprocessor(\n", + " cat_embed_cols=[\"user_id\", \"movie_id\", \"rating\"],\n", + ")\n", + "X_train_tab = tab_preprocessor.fit_transform(df_train_user_item)\n", + "X_test_tab = tab_preprocessor.transform(df_test_user_item)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And not the text component, simply padding the sequences:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "X_train_text = np.array(\n", + " [\n", + " pad_sequences(\n", + " s,\n", + " maxlen=maxlen,\n", + " pad_first=False,\n", + " pad_idx=PAD_IDX,\n", + " )\n", + " for s in train_movies_sequences\n", + " ]\n", + ")\n", + "X_test_text = np.array(\n", + " [\n", + " pad_sequences(\n", + " s,\n", + " maxlen=maxlen,\n", + " pad_first=False,\n", + " pad_idx=0,\n", + " )\n", + " for s in test_movies_sequences\n", + " ]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now define the model components and the wide and deep model." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "tab_mlp = TabMlp(\n", + " column_idx=tab_preprocessor.column_idx,\n", + " cat_embed_input=tab_preprocessor.cat_embed_input,\n", + " mlp_hidden_dims=[1024, 512, 256],\n", + " mlp_activation=\"relu\",\n", + ")\n", + "\n", + "# plenty of options here, see the docs\n", + "transformer = Transformer(\n", + " vocab_size=max_movie_index + 1,\n", + " embed_dim=32,\n", + " n_heads=2,\n", + " n_blocks=2,\n", + " seq_length=maxlen,\n", + ")\n", + "\n", + "wide_deep_model = WideDeep(\n", + " deeptabular=tab_mlp, deeptext=transformer, pred_dim=max_movie_index + 1\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "WideDeep(\n", + " (deeptabular): Sequential(\n", + " (0): TabMlp(\n", + " (cat_and_cont_embed): DiffSizeCatAndContEmbeddings(\n", + " (cat_embed): DiffSizeCatEmbeddings(\n", + " (embed_layers): ModuleDict(\n", + " (emb_layer_user_id): Embedding(749, 65, padding_idx=0)\n", + " (emb_layer_movie_id): Embedding(1612, 100, padding_idx=0)\n", + " (emb_layer_rating): Embedding(6, 4, padding_idx=0)\n", + " )\n", + " (embedding_dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " )\n", + " (encoder): MLP(\n", + " (mlp): Sequential(\n", + " (dense_layer_0): Sequential(\n", + " (0): Dropout(p=0.1, inplace=False)\n", + " (1): Linear(in_features=169, out_features=1024, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " )\n", + " (dense_layer_1): Sequential(\n", + " (0): Dropout(p=0.1, inplace=False)\n", + " (1): Linear(in_features=1024, out_features=512, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " )\n", + " (dense_layer_2): Sequential(\n", + " (0): Dropout(p=0.1, inplace=False)\n", + " (1): Linear(in_features=512, out_features=256, bias=True)\n", + " (2): ReLU(inplace=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (1): Linear(in_features=256, out_features=1683, bias=True)\n", + " )\n", + " (deeptext): Sequential(\n", + " (0): Transformer(\n", + " (embedding): Embedding(1683, 32)\n", + " (pos_encoder): PositionalEncoding(\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " )\n", + " (encoder): Sequential(\n", + " (transformer_block0): TransformerEncoder(\n", + " (attn): MultiHeadedAttention(\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " (q_proj): Linear(in_features=32, out_features=32, bias=False)\n", + " (kv_proj): Linear(in_features=32, out_features=64, bias=False)\n", + " (out_proj): Linear(in_features=32, out_features=32, bias=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (w_1): Linear(in_features=32, out_features=128, bias=True)\n", + " (w_2): Linear(in_features=128, out_features=32, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " (activation): GELU(approximate='none')\n", + " )\n", + " (attn_addnorm): AddNorm(\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " (ln): LayerNorm((32,), eps=1e-05, elementwise_affine=True)\n", + " )\n", + " (ff_addnorm): AddNorm(\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " (ln): LayerNorm((32,), eps=1e-05, elementwise_affine=True)\n", + " )\n", + " )\n", + " (transformer_block1): TransformerEncoder(\n", + " (attn): MultiHeadedAttention(\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " (q_proj): Linear(in_features=32, out_features=32, bias=False)\n", + " (kv_proj): Linear(in_features=32, out_features=64, bias=False)\n", + " (out_proj): Linear(in_features=32, out_features=32, bias=False)\n", + " )\n", + " (ff): FeedForward(\n", + " (w_1): Linear(in_features=32, out_features=128, bias=True)\n", + " (w_2): Linear(in_features=128, out_features=32, bias=True)\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " (activation): GELU(approximate='none')\n", + " )\n", + " (attn_addnorm): AddNorm(\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " (ln): LayerNorm((32,), eps=1e-05, elementwise_affine=True)\n", + " )\n", + " (ff_addnorm): AddNorm(\n", + " (dropout): Dropout(p=0.1, inplace=False)\n", + " (ln): LayerNorm((32,), eps=1e-05, elementwise_affine=True)\n", + " )\n", + " )\n", + " )\n", + " )\n", + " (1): Linear(in_features=23552, out_features=1683, bias=True)\n", + " )\n", + ")" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wide_deep_model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And as in the previous notebook, let's train (you will need a GPU for this)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "trainer = Trainer(\n", + " model=wide_deep_model,\n", + " objective=\"multiclass\",\n", + " custom_loss_function=nn.CrossEntropyLoss(ignore_index=PAD_IDX),\n", + " optimizers=torch.optim.Adam(wide_deep_model.parameters(), lr=1e-3),\n", + ")\n", + "\n", + "trainer.fit(\n", + " X_train={\n", + " \"X_tab\": X_train_tab,\n", + " \"X_text\": X_train_text,\n", + " \"target\": y_train,\n", + " },\n", + " X_val={\n", + " \"X_tab\": X_test_tab,\n", + " \"X_text\": X_test_text,\n", + " \"target\": y_test,\n", + " },\n", + " n_epochs=10,\n", + " batch_size=521,\n", + " shuffle=False,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.15" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt1.py b/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_pt1.py similarity index 100% rename from examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt1.py rename to examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_pt1.py diff --git a/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt2.py b/examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_pt2.py similarity index 100% rename from examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_opt2.py rename to examples/scripts/wide_deep_for_recsys/pytorch_wide_deep_pt2.py From 8813ceeabaf4a9b37a5b8824a761c9fe12719715 Mon Sep 17 00:00:00 2001 From: Pavol Mulinka Date: Sun, 30 Jul 2023 21:24:14 +0200 Subject: [PATCH 6/9] added movielens dataset and tests --- pytorch_widedeep/datasets/__init__.py | 2 + pytorch_widedeep/datasets/_base.py | 116 ++++++++++++++++-- .../data/MovieLens100k_data.parquet.brotli | Bin 0 -> 640333 bytes .../data/MovieLens100k_items.parquet.brotli | Bin 0 -> 70731 bytes .../data/MovieLens100k_users.parquet.brotli | Bin 0 -> 11196 bytes tests/test_datasets/test_datasets.py | 44 +++++++ 6 files changed, 155 insertions(+), 7 deletions(-) create mode 100644 pytorch_widedeep/datasets/data/MovieLens100k_data.parquet.brotli create mode 100644 pytorch_widedeep/datasets/data/MovieLens100k_items.parquet.brotli create mode 100644 pytorch_widedeep/datasets/data/MovieLens100k_users.parquet.brotli diff --git a/pytorch_widedeep/datasets/__init__.py b/pytorch_widedeep/datasets/__init__.py index 9792d454..4c9b9016 100644 --- a/pytorch_widedeep/datasets/__init__.py +++ b/pytorch_widedeep/datasets/__init__.py @@ -4,6 +4,7 @@ load_birds, load_ecoli, load_bio_kdd04, + load_movielens100k, load_womens_ecommerce, load_california_housing, ) @@ -16,4 +17,5 @@ "load_birds", "load_rf1", "load_womens_ecommerce", + "load_movielens100k", ] diff --git a/pytorch_widedeep/datasets/_base.py b/pytorch_widedeep/datasets/_base.py index 34e18cd1..235b5f9a 100644 --- a/pytorch_widedeep/datasets/_base.py +++ b/pytorch_widedeep/datasets/_base.py @@ -1,12 +1,14 @@ # dataframes are saved as parquet, pyarrow, brotli # pd.to_parquet(path=None, engine="auto", compression="brotli", index=False) # see related post: https://python.plainenglish.io/storing-pandas-98-faster-disk-reads-and-72-less-space-208e2e2be8bb +from typing import Tuple, Union from importlib import resources +import numpy as np import pandas as pd -def load_bio_kdd04(as_frame: bool = False): +def load_bio_kdd04(as_frame: bool = False) -> Union[np.ndarray, pd.DataFrame]: """Load and return the higly imbalanced binary classification Protein Homology Dataset from [KDD cup 2004](https://www.kdd.org/kdd-cup/view/kdd-cup-2004/Data). This datasets include only bio_train.dat part of the dataset @@ -39,7 +41,7 @@ def load_bio_kdd04(as_frame: bool = False): return df.to_numpy() -def load_adult(as_frame: bool = False): +def load_adult(as_frame: bool = False) -> Union[np.ndarray, pd.DataFrame]: """Load and return the higly imbalanced binary classification [adult income datatest](http://www.cs.toronto.edu/~delve/data/adult/desc.html). you may find detailed description [here](http://www.cs.toronto.edu/~delve/data/adult/adultDetail.html) """ @@ -55,7 +57,7 @@ def load_adult(as_frame: bool = False): return df.to_numpy() -def load_ecoli(as_frame: bool = False): +def load_ecoli(as_frame: bool = False) -> Union[np.ndarray, pd.DataFrame]: """Load and return the higly imbalanced multiclass classification e.coli dataset Dataset from [UCI Machine learning Repository](https://archive.ics.uci.edu/ml/datasets/ecoli). @@ -142,7 +144,7 @@ def load_ecoli(as_frame: bool = False): return df.to_numpy() -def load_california_housing(as_frame: bool = False): +def load_california_housing(as_frame: bool = False) -> Union[np.ndarray, pd.DataFrame]: """Load and return the higly imbalanced regression California housing dataset. Characteristics: @@ -190,7 +192,7 @@ def load_california_housing(as_frame: bool = False): return df.to_numpy() -def load_birds(as_frame: bool = False): +def load_birds(as_frame: bool = False) -> Union[np.ndarray, pd.DataFrame]: """Load and return the multi-label classification bird dataset. References @@ -216,7 +218,7 @@ def load_birds(as_frame: bool = False): return df.to_numpy() -def load_rf1(as_frame: bool = False): +def load_rf1(as_frame: bool = False) -> Union[np.ndarray, pd.DataFrame]: """Load and return the multi-target regression River Flow(RF1) dataset. Characterisctics: @@ -243,7 +245,7 @@ def load_rf1(as_frame: bool = False): return df.to_numpy() -def load_womens_ecommerce(as_frame: bool = False): +def load_womens_ecommerce(as_frame: bool = False) -> Union[np.ndarray, pd.DataFrame]: """ Context This is a Women’s Clothing E-Commerce dataset revolving around the reviews written by customers. @@ -279,3 +281,103 @@ def load_womens_ecommerce(as_frame: bool = False): return df else: return df.to_numpy() + + +def load_movielens100k( + as_frame: bool = False, +) -> Union[ + Tuple[np.ndarray, np.ndarray, np.ndarray], + Tuple[pd.DataFrame, pd.DataFrame, pd.DataFrame], +]: + """Load and return the MovieLens 100k dataset in 3 separate files. + + SUMMARY & USAGE LICENSE: + ============================================= + MovieLens data sets were collected by the GroupLens Research Project + at the University of Minnesota. + + This data set consists of: + * 100,000 ratings (1-5) from 943 users on 1682 movies. + * Each user has rated at least 20 movies. + * Simple demographic info for the users (age, gender, occupation, zip) + + The data was collected through the MovieLens web site + (movielens.umn.edu) during the seven-month period from September 19th, + 1997 through April 22nd, 1998. This data has been cleaned up - users + who had less than 20 ratings or did not have complete demographic + information were removed from this data set. Detailed descriptions of + the data file can be found at the end of this file. + + Neither the University of Minnesota nor any of the researchers + involved can guarantee the correctness of the data, its suitability + for any particular purpose, or the validity of results based on the + use of the data set. The data set may be used for any research + purposes under the following conditions: + + * The user may not state or imply any endorsement from the + University of Minnesota or the GroupLens Research Group. + + * The user must acknowledge the use of the data set in + publications resulting from the use of the data set + (see below for citation information). + + * The user may not redistribute the data without separate + permission. + + * The user may not use this information for any commercial or + revenue-bearing purposes without first obtaining permission + from a faculty member of the GroupLens Research Project at the + University of Minnesota. + + If you have any further questions or comments, please contact GroupLens + . + + CITATION: + ============================================= + To acknowledge use of the dataset in publications, please cite the + following paper: + + F. Maxwell Harper and Joseph A. Konstan. 2015. The MovieLens Datasets: + History and Context. ACM Transactions on Interactive Intelligent + Systems (TiiS) 5, 4, Article 19 (December 2015), 19 pages. + DOI=http://dx.doi.org/10.1145/2827872 + + Returns + ------- + df_data: Union[np.ndarray, pd.DataFrame] + The full u data set, 100000 ratings by 943 users on 1682 items. + Each user has rated at least 20 movies. Users and items are + numbered consecutively from 1. The data is randomly + ordered. The time stamps are unix seconds since 1/1/1970 UTC + df_items: Union[np.ndarray, pd.DataFrame] + Information about the items (movies). + The last 19 fields are the genres, a 1 indicates the movie + is of that genre, a 0 indicates it is not; movies can be in + several genres at once. + The movie ids are the ones used in the df_data data set. + df_users: Union[np.ndarray, pd.DataFrame] + Demographic information about the users. + The user ids are the ones used in the df_data data set. + """ + with resources.path( + "pytorch_widedeep.datasets.data", + "MovieLens100k_data.parquet.brotli", + ) as fpath: + df_data = pd.read_parquet(fpath) + + with resources.path( + "pytorch_widedeep.datasets.data", + "MovieLens100k_items.parquet.brotli", + ) as fpath: + df_items = pd.read_parquet(fpath) + + with resources.path( + "pytorch_widedeep.datasets.data", + "MovieLens100k_users.parquet.brotli", + ) as fpath: + df_users = pd.read_parquet(fpath) + + if as_frame: + return df_data, df_items, df_users + else: + return df_data.to_numpy(), df_items.to_numpy(), df_users.to_numpy() diff --git a/pytorch_widedeep/datasets/data/MovieLens100k_data.parquet.brotli b/pytorch_widedeep/datasets/data/MovieLens100k_data.parquet.brotli new file mode 100644 index 0000000000000000000000000000000000000000..547834647a6e25b61bd511c55687c77599848746 GIT binary patch literal 640333 zcmZs?Yg|)zzWIvD+x&;2_z&zlxPz~i!+W5h>ESPxd8#A zCV-0Fv;&AUwcDA3qC>msOcDa3q6S4v_og!eaR&cmr-0a@bL{NHIp^tFPu6;^%Y*fM zt@Zu>KJU-xr-3T7B7w-2W0A8oRpg&ZkuVwz7IT6FtAmkXu-uM0l<>H9&#Wwdoc@<* zIe+~X)Wq2PbKKu!;2X2Kt$!`~Rs;WQ;WuBfzOgPi-VIbn4E(TgAZ>AUabN!Iu>N13 z1L!{?R5SlL#+r#8Z#+c&T`I%pK>W6J;nB&zA9~d_obne2G9Q_8gf^?)+qq+_pB72( z{qfC@?sM|f-kpv=ecksB==e;rTtr*IoCo(D-oWkiJfHk*inR3)>p&lNk>A~oI8!jI zw||cvtvrxh!8$b0s?{N`AgJ6oV-#_^W#WRzby^qH*X zPy>DAlW%F^rB5>;FZ@&g&UwKUs`S5ppF#cWzF#3`aK|UVIBM1d&$H)v761Lq>JO$G z@E@pi|9+09JHO|X$K02G$_L$hFp8U}LKn7Se;+$oOS}pF@ax~OJ``{#PriHo)Zi~n zk$2+WWPk6<`*XMEpC2dDzxf#Rz~+O^H54C6zP&HlxjV5e_FzuKui?dU)6f6IaVesS zdaxVksup8UOJu3OE>@1lOpNdGxNM&Z>;N5 zF8xx9!?rA48Zoibn6ugB>o9cPq(+FEi48*qLQ?ouo*(K@&Z@=l`6e4a>|oj z(;u6BPrv2j7slU3Kkd-hYd+t7WlQG&5gvN_n|+r^U;m33{rI=v4N>>YUa-H}?;FJG z{;K+qtY3cHksQN(Q1gcaPwku!w*M|abm%YbIe$AB`&Gl=?_J$b{>S|Pyjc!(z5C6+ zv6KH?cyj5;Uy#7kZ%1U?r--yYKIW7t=0@6HO34r_KlXt-u5;9g* zZ!!BNm>sn%UM`{~7GB1%Xc8ojIHYWPE;KN1kK9)IN|Z(ADp>KqDBLLZB%F0HN^6(e zE4kuxi49vuKkK?Gy+Bd#5iURejp{u7Lz#Q`joL|1K7RY??wkX6E|MZrdcQroFm)l7 z{ExAXqx9e|SgL<^W0e_@e}-8Yke;Du>>K1^D|z^?t&#!N?#ioonQ8L=Q(u-b+O?mT zeHnf0^W2QkKR)bO-_dA#bn)oBr0>6Ks{PBY19y&mH+tjyhu1#Xwy&u9=JWe4sptRr z^F};qdSw0QuYUmF)Yw)crsco38(+ss?Np&A%!Ob8YKw3xoDe|ZBetuWL(~M&&Jqze z6yAikGnC}_-PKwB5(g*s$k=DA3xV@&GA;nLo4B%G0Isi7&=cj1%=9(JkhWjtjZWU9 zzxJG~?A%@yUA_FI|E@KGKG}3R>)i*fsHEHc{Gt8#yhZPp8%G;n-0dK5`{Vq{*L1Gt zGt)w%^b8}#^{2Fi+CkSPZt2HOmlt_u7n5sjr}A-;N<(7R<;oYI&#rj>v;1n|o6ikt zo&C&6Sme+kIr6JPGC$JyF(Hx?iH=0avM^sDVgK*O!odH(0~iyQ_WyHs^WuM=S;qjI z`_0GUxYICz>w^IdlMjyJ_4yD4Vc3VHNV$H1p*PupD3iyAjQ z`m&^OWiX*FX6v$`4J#9Xes*#_BuB?mvLZOptXWPxv22x7PKNs;2qd=#jrd??rY%0f zv>L&%O2c;|nSfY^uontk5y@N%JYhTI1`OFcwqiw`1Qz@WuEU`qt&&#@0c1^|E9OXW zcq-m4Ty(|66=wV6lfX_JcCXuGXV-;>Kwf7Uyu&NjRJJEGjI}_DvRNR;70mgiDe3i% z<0)|jJ3RH1di!0NY+2w+Rh1~sCkAE(NKA2c2!%ZTYu61M2}QW#!`Tm8rIgabHIS1_={ke-)@uoz zntJnemSm2G$@X?@0zlH3SQ?e;s|=t5yyvn^Lt2hFi4IclGVc>$Ef|bu1()+cbkiA; z3pT)sdqP=vIPaus0+>f*Ftu=pkxOKsXW7u~f;0(w>y!EZDTb`4(GF`lH4Lz^FfAg~{Rqw)>pFsY27JWFf-FHVq2wi6d#9h=P|!aWE=*8TKH)nAQJ~ zdfy#xV->_&B&oDf_$2W6=|=31_p4{l?HI2QVHt3X`7HKOnq?e+u*p8b8REkxFdZV8 zOVF^CWy5YC8=u%tt=GZ}@42}cMiSrS57Kb!T^FDXZ)H0y^Rc z(Ml`+MOfotp9ai!;+DBA8}-MY6;wQIezgUAto~*Y<(OK;(I2|~6Ga>A@cS9c@M9v6 z3{a-i_k~%NA}xTtGKv6jq7Jgm#9$YH(<6nS7D@JdD|6UDeT{r zwN~JN1!gh!bUn<2I5g^w*oo(B?Fh-+VL#UcnkR|mQ%5_P1C)kyu_1xSo{|DHl@X5} zrn<2Bp$4ev9V6(-Q~~Q9+fM4K8f20&(IZ6u1S`cdDGN4E@NJ?Edxi&6k_H$II68;t zf$v0EA$jZLqtK>+{B8m36TA6)f`-U^!{qTXD;g5rEx7?J^( z=HZhVHvlIwk-%9@Dz3pcTx zi@X{}(1fm9DO%WDY2~N%Elf(tLV>L~O2t)g&6ul2Zxzl`TQUj;7Zu1o%i*@I$7A)F z%$7d$B$ARW2++tb8g(b;B^S-Snie9&E9w)xqJ^FXcbW~f1=D|ahsv=C?%E`(uo)qx zWKsN9(h1m=DRf6~fW(fi>qlUwL_R6>6%64{JN-wNcAT;2x(QZX5Ic@X(@}{XBF5fI zEpepY56e~x%-$@ofaXHeM^?%+WtuK!%9X+u4R=-m*fZ7DP)qD-Fv~_f+B_bS7{#Un zvfw%wM}}NxfDbV`#W=6ZuMlYJ80QK<4SK<}lY_Ob=u04Cg3&a#SqBzly<$K(2PdTM zTIoaZ*<&|@tmt0}9g(rSDK;FPZyv`e2m7&6kfJJ6>U;qx-uy!L*i z@Os~wBFGqqCtdP1`01qXH6S&;C*e$5nCmGMP)91okt=U0gqZl2waM5c-F*&hO|MwW z(Wnxw#V4DFm3imqeL=Fxr$KN1H$ZiWqDQPy%*5pbzASEdG*WJACTJ(EdfKG!dhbcdznh(V5Ap83YTqq?KcbT{-rQl!YV`fi&YmFf;j9Cl<2!sI=`|i4%|vnt}Kup->r@ zdHp$+$3B3VEd6|ae*nL~eg?HwAq+`pMDtr<}sEsBTf1C(VY(hx4YD7@HOb~>H+ zytLpRFyl>@FRxB=Z;TCf@;~)J0NXycW+h=z11cP=xiTV_yg_#%iklYgfYfaY#hYTo z$ih7o>OE>YSBMffF4-PsT;*rkQa%-W0x<)<*`;~OeCkAoL&byWe^;0S7?05;!F&mXDG8tLGqD)dQc7OU!~u5&xJ9-HX~; zmlMH5hKGGok)xIfY6_V3B&xO-rX**i`8r8Qrm`lI>}fOzSo~~rhN-mr07PB4uQR1_ zHf)VYiiVNIz_Mi=+r1LLgI;s(w_}S#)<*!A+eefY03I0oH{Gj~m~z(YB;vP)eF|KG z3o!{C4=q*1nZkjN6xy=JmHtEDurxYFm^58{!!=$a7tZSC(wlE*+^ohzP$BPfQd(oe z_2xkGF$~fg_i}XQ5oLQ(_%22=Z*$VV9M$R&M4-`uI2jV$0X}tFgE1$#KDF}Q(FRvi z9q%ZVnD$w%6nC<4C<3t)GlVB)df@koM|&vkSSAZZ3Y9B2g0z@1Sjo16ddMLrS6l3e z6F`HFloZbL0nNs&0H1m*$B%sMvxib`qYE&SV^rWro(aylBcM^P3bSEaXeSkq2q9Gq zWwT#nlCP8!Z0iDO=Y#6X``c~~QqY{!HV~3XsQE)7f`S2#OEFKg{J1p$K9!!_O|j>- z*A0w|kfxB7{f@A|1d9S5W0C37P8-k}?utk-+^xI@`g>3@i+}^E55{^v9fFw$cauK zqd{oMrJIP7D<~K;_FlO$TtMcM4T!AH7+h;*R5elHbXkuE&q&#n0Hk+fsc`mI!nn0qrLs)IVlMYT+FAgtmGTZLhGrPl zQLQK9b!?walz!bO%c*rq95L*yhKK4S;DC$d5@eN%#@}XXDH$&B9Uz@=Dq|k(=9a7f zFmFPn{v1ZOFi94(g1b1&YcJfKFQa8odxo9Vhw}m?%2(Y<-E48($sMfFFeXa0k|d5B z^?{T49nH?t5|PS$kGL3?w&ol$S|IXCRThSkxO*tbJg?_k0cx++j}VW-NQYf*6TvLnE{gzwfPmUR+ew0^lv`lS$(K3W;t!LJ%FwakS&>m2wzXAO|;Ez zY6o_Qkm8K5T+ijH)k}>JVANWh=WFp z1HI_BRIomB3*4NJ`PH_hpPRGoaJ))@;pk@9kvk8q^f@?xUheZyQ(P1*2S~H{6m_2d zF6wZ7{s$vC1oDbQcvI4%avf#g*!&c&_l!5km+|uA(V0ZI# zh^w0eoxDZ2=Sk$lbsBu@Ermdlh*(-UAM?wxoRYGr!L@U-1y1c5$(bheL*5C!L{4oo zd0R=pf2CK#q{1XhdEpogOH59ylSDGW+O`4^*{i#vsmsGF@YM=i{rMhcWaCBbEa{``-IgqaqM=RZ;KHymtgbRwuj~K zbmvr{qvmql92qM?R&d zzV$l`8|!oYdD6H2Q;0mzl{-}3hM$H|)qx?*PCp&mLS6Ub*xZr6GZFG7FG5VjfD#JF z`WnVZS|9=q3uw-#9c&s$QBVJQWm918sHQkkqOpE3@?qgoN9NX0*opmdFuM{rXk3+P zuBgH`;Ez37?J2tJNd)EBCXZbFuO^)zu^)I`qPRBiEiL~@5JGU)2OHX{)R9^QQKe}h zZO!;DY*XJ5jsr;t)&-Sfsgz5EF4ql3pubx3ii^rHbZK-nZ-qe5ha+1AHT4OqtQO3H zF2u{&?n=S~kx2mA>KUwLsg9P-|1tqiBy2d( zz~qGe62_6RSQhuGE1;=J3}<&nsCp?6ODi_acQO!Rjf4XM$Uyvwx7xC_{Gv_-|0uXx zNtS%ufYUD4`CDM`t~5TO{nV2%iSZ0-x|ri!0aTuUcQ(Yu&j-OckzhbpOyCX$@kM4W z#N7@Jlo8U#7KqzaD*vP8N6T6~rAUx9jZuyGN`PB~P%9C$V6p=uE6iUcy#88U^e(Tl zQ}DwyEr`s!EVZOV$+gX;`wAz`R)C2l4JLVH?YG|`M zA%z@B&WNKd+JMHf{Xw;4qbbO}#5Eyz)~aAF*~hI3)3mMEG;q}YmA-Zj^{ux}loZN3 z8+mLFa*)CGh5)`}RKv);SNIyqDWPWj;$^))B70MK;&;+jzS6{W_s|^_!RamD9jCKj%=#&F#$NJeTV953|hr2y~8?p3S$bSeWi1r1 zRE{QrU0?-!t^ta>x~UDYxn8(kbZ0i(U0E=w5fdJU#8NRQz0)2y6xN-IOlO%vEkh5v z5Tmgd?B(CiJr3fk^dr`^pY@v>@3?!2LEiT2i8~)6Sp0$ug^BW%0YdmOUqwJp;}vh6 zPf#cI3oZZ+*kL-6O5mr_jWds!sQICiqT{31^CV1t)&x^NRNEFCCcL&LZJXz|rAaB; ziA`Q*iimuVjTNB`$h4 z>6{L?sr!Jn6*H2!E`pULQd#hl@)Q738rQ@X+DY#Zh8?l*4AQKO)Z7^<_vE0*M+_`2 zVcFV26B_+Lvt~36wW(p}`sI6KIIc$QxqdyeTYWyte^5k<1X(#>H(sm&;k~uGaM1p%Iwis&yp5 z))?VhauHZ5F1B@p=+x81!$%pB2Qi6v7#HVY>PR0Ci7mVJmg@uZzgrbE*qX#i+Rggx z7U+v6sf0UXTyZBWBN6z_7}m%gS?*hyJo2E_(t=MJS})TI+Ou?-1!Dqx@;k3g5}a$y zqLT^cxev3>_xc#oT$ z5^a>wGD(Ji@>oxgB5ndr_$b&a`jpQ-ryL#R%49zoeGCSUgd0*<_EZZjO z!=dU1P@MO`wE*+e!xl$UNqRyDDYthOB^L6s@oN0&YQ)YjLQQAMO~M2;6~EHeQbFch z=&XO&3lu4tQ&12UJbYA_^Yd(glz!Qbm}YGB-H_*)RBP>|BPxNSa$GuWCw)=BTA~wz zS1@U|Kyqy3Tb&9i2oO?uw^* z`jLo@LOX^1jgjVL=SwRg+((1iHh@&PU&}2AY;aB;IA9eh(z?o73GQKAeC*-%pt?Xx zb#g|=%(Bh$3o}Hggeyy!qhnemFLSzYVh7aIU=yVfU(c-6>E1=#&(QK+TOH zu)va20oPsb5@Vf;;YnPoGi*n@npee$*M$BFV$<@F6>wh%b6X-ePQnm60~@bW)k!D-R?{1sy6+kL9YgI%BOeLA`0xaDV3+ zc2?9;ZXhtpP!62*70c|WHD8CEEd6&g`Yj*%q-e%>FbGX6IHjKu?Wl*G+LxLG9oexK zEoj)&2hk(`syfz*J~FbpmGoLp;lq0%P~QT+VD=sJL>zVa%wa%2rKB};#f-e zN*R1x7UYf_@MOu!UxJkgl;PM&AbA^M^UQmpYwG8Pr&@m>DlZ(p0_QP2%@FF6Aou_5cPyua{Ru zYXr8$b{7rBY1*`s0Aall;CaKQ2)z81O_CTjUCH36hL9JSd#Y`Zwnf#i-iy&5GO4k? zAjQehKV_U{9zP7pP z8W--vFhvxQV&j2QfHr6Hb5Jc*X~w>}gu4uW(GXJoGfNv;b5yE?Ccs4*bI+i;09AoF=2}H&A`}oB`-@Og#Ma;XG)P3Q z@PHhMxoXmgl=bkl%u4B%Y35?=Ac(jsXlP}oYA#fePF7dSS??K50P?GzzA1EyzJH49 z1O|}Qyru3b;9j9bRmI5#?D62(Vk`EYCgJ%A@0|Z}#*oWik@*O$grXj>R?CnNU2cYO(u62Y#fw3vE zjiX6zv^eI^Pdxmq|6d2uDZ}eXEKGk1SV}PY){eMT{w?O z=*~81_q6BWD{c=qmSi4}%_0*=SzZABz~yjK2j-tUGEH+sVBG1F5*CAtTNE8{dND*;F17isJoA%9bep5_e$$Um=iO6iQxh7ncfv@7z+_HHX&zDH#V z!jzvi-9`K`O9$9tRqoT$DZaP8yx^@wQScpM=t4>@0nv(fGiE8MLx(jwO0J4(BPorW zloOe@h&KF(=Garg2B?*&b@fy@M{{)*lX=`oQ5f`nYZC+;3y!Bg5DFmqZ+XX{6nec` zzNI6Sbr+p)IR>ZiDx_TC>kKdanCQ7RYgFr?*s%q}yAhOmrQSdlqBrqr<-1NqNx@h1 zl^tpI{C*VC9})x$RB1W>xC^6;_5vY85XocA<%qQvZVJHn`7{rcy9C2Qz$-j}-*we> z!?lU~pbD9^uhuC_U&*qIQd|&HNorb0BpotoBDLnRPF+qE*D1m7?ygoDLI48PVpwQ}`u9jihB?2q)(3Io}Udc@$ zk*e4Gq*6meiE8VP+&7a^iCF;&==KaCb=$a9khiz@wRkIOqc511(saX#OI)A5he(}1 zN*A1*3k5Nr>o5}P8*37jspw78ael2>LGDZni=izT)d4zM*{!*dhVnQ1kRKOr(nMC% z>_rw+DVJ>iL9lY2r8+GXp_`w$x=agaDg6EJoPPY9In2kaOzP33{_IAKX90hn+5 zr-}J94MFOgZVHxode_r|Qu^MR&g>yaQWk@03q9W}Z>&Zv0N-N8EYiZ0bP z^52Y8DntHBtkwj(7-67}S4Iuh!L8zo@5~o+ca~DI)SBEDhvM>J7KE#{YU~D)Gr4Nl z)}QJgpw3|$V5E|ttdC&KC0<+HVvk2`7zp)8DBcxviH!C+xU1qz7wrL-VH7*c@62mJ zxpXD0G~^auZ6T{?w0EmZR>yVmiH2;rl9WRYnqzQnmGeK<|Cb=`)so2^E^ohN^$J zv)*MfL3ZR3!41Fp_v%c$6qE{b|#Z|1?BF z@7x;-+w_HnrZ&=vkaYrhmr94Yr(s=_iP3|#R5~-X88cMLB% z6CS1wIEgi*(AnJ&7zZvA^*>1>cE2%($h&hPdQ0{Q-%gP!txxV@24IouogdBV?Pap7 z8awIB=8#HaXvsogOqU0ptn6Q1ElVGmPb`Z*qrVVIEg1F4_FR;PNlN7=amzT^s{^r@ zUwH%NN4Srtfr8KyI#p&l=D`1Hy;f3QV7zc9q1ccNsrSrk+GDE>Yho=~&@f(sKU}NR zMKwWpGLyO5h$`Q5Sch;*kNUA4Q{G8EM4((`rMsbVKy0|$5kueIDw0&bi(FDKP}JD>7yO#NjMuzhlRBH9o-Zgpt8Wkth}sMIpo&g(v@Qw6QqPDMOPOf zGhU!$1gOd>SW~xcLO1|=aEQ~6Idgz(u^h$4|JCdgXXg$fHez5?zEV>0$0iJ;&7ABwnr*`+79tT&mveeF7AAAFa$j-;`xX z4;jN%h(o&t4kGF&;S^sn=LLywt|pRQnlMsosM;O4Q%-loCKCz0P@Ca;Xgz{az^$v& zVp<}drS~kWooX@w?_%cVk28%pPJ)xTXwr&-n->35Jq@mp{urtvQu2^%58-t?^(}b=|&kTHfr4)VOQGOP4jICsru)-*}Le zJxjntlzzrcLG3~fAZv(&_6exPb>ocafQuTWuzCYiOzD^-i2u|>Rj@YcP+LW@3r>nL ziToi{1xNoBDeb<(G(f?n=|qj&u9CbAd6aP+ti`z#+ataoRkS<=a!vZRXY5aUOmO;N z*Bu@MURdJf?>f-0V9*$Ex(coVwhEd4=n6)eGj+Ba@W*I!PTL5we zgRk|#K?2OdH)kT+$=?}aXkKFaqK|g)J1_{;=h9nKjy#=tgu#5vy(B!?e4_=`U>m|v zp=z)#O_clm8Rh>{2oQwi5vdHjuiFa26Ot`Y0E2&xN;QuS-DgI4>YSy8fcB0a!v^sP zWUP6-e0bRuS@??t4amXsEjrvoqlO_HGv?Y!N2?u5-CXd33vt`y2W#>^ft?p2TaxkQ z_Nj&T7=Gl0q4HY&a~nR%w|JgQ=vkY@kd0N;n>6krltrB26G2juz`d00TOPXYV+R0^sjSv%J*h=C`DZ4Vhm=pS#$)P|cB^d~z z;=v+|J)&@WqN8TlDTA^+$zqtroVHVjgQU%l-5Iee(BCIJJaBByU#bVjw?y=ZW@8=@ zgin$0&rw~ebwX5Sq|KG>uR4M~YKs|pYewOksEH)mt-)|bdd)IrmqCEN(Lx?-4qPm9 z6U1~1L1lQV{>QS(k16P0anO&sy?4mvZfG*;OP4mPChuE)1+jrjd&VSZt-*GV_FOH= zM7?FS0sm`Ewqesp-+LZdfQaVx;Ae{veVsH%8K6OzpPS1f>gQ^9kF8Ie_1G6UX)oa}D!ym#Y)JI0&$mQB_$!vy_-*2FvsMFYM{?;os zaH*kVQTt-Q?2jl_jD#vP=pyZfimHT7aq51>U>cFEq}EK|inxvYZ~d@TeLUp5Us3Iv zVHhBR!8{N!(5gBQX z7l2*<1IT?>N9;)PF|a`@!)<6U6sO0oY$DH5)05awS#?o~N%ipA=t3Y7jQkTf?58Vx zhk~W2Q$ty8q(k#F+JdITC?M{jXc)vsQxedaxApt0(8UwEcVg;X@KWx->H^Qy;hstZ zuxQeE#2$QG8B)g`u2tte7&HZtzX7haEB2%T4-rN!>|ENB4Zj5ZUF;LRQOO;|&@)t4 zRG|a7MK$_>Rd?i?ChLrP6Rx)5TDa?y?Q%`zls=VPiLYt+iFzr@-kT-WlIol6@sPA{ zoEF!;pDt3pkhaDj1Z-_JA7U!)F(<#vnn2xtCA|+jK6J&$s7$ka4DT6BKtLl+RN!g~ zQ9A6Q=@Mjea>x@^vtcy3IX8QoF6F!rdV?r3Faa=XgIWqTJ+>i8Geaeg%v$f!JFLT3 zd44ARl~hV;)P(JkwHgYBc(1OLfIc{v>)>F{T3|7mnq&U*re*4`=#6>nd1i`JKwt{b z`jMnPhX-3&7wSD1ktv?5SkjDZAS#jVt3}i_6xp9K3aqaK>A8jjO4R$)U0sQ12;;6A zW$jLXRvwxk^sS~>-bA;<|oS$$wa9nF63+r@wq z9yez0ghqs>YaVH&I>*RsXCIIRqHyC8-0D@8OPSmYfs$u zas>pcTsP^}3S(u5==!VK>3!KCbblM!WWIwDnpOkqh(Qm6e)|2U8v$LTGs_@P>h{u; z?aO_4@u$w($FcfN(omDU)a}E+Qy9|kCGaA@VK+A%bEV?+)Qe0Tk8-J^#rfiFVk0N< zVbwEW#tjrm*IRdy^#<`i^PojethivR!b^Kr@0I7HW-g&lEC-*-e%DPY-*>BL5sc3N zZe{}eaW~DGiV0bs?Rz{%0rD@KY;Cc}=Rg~2Puh*yed=$e7vZ*{rWU~TwWSn?80+#O z1_)9-wZOIc4vjDS2xa^dQ;T8i*cvE3(kwpn&dFFfie_x5221rmzeJcjbk(QMm=;gs zKVZ+4M~^S%o{uRAQND>dt%Xe?-i*ExqmO(&RK9o99HSUMD6va&w%9D+#Q$w<1yMtB z!b^=z*Pj$OQmp63POZt9F)xkcmB1)6%&?u=>4gNwo zYe9zWS+cdoX8%&GIK+ zouxfsB=Ad~!kb?;1$BRz6F7M9)%QoBPk&|XL@<7IJy8jEjd{e#bag{iHGjcSR<5GJ zC)x5riCk_z6qe|A?oE{Q3#M-%Xy0x;2a7lA8wldk+|DlKM`I=`2Ts|{S5%EQUWl$8 zEpY?63$G_I=^<}PX$M~$foSlq8X^`~1d}M1n?9-kxI65}NXMw((2$H!TJk0Qe2v)+lhN|NwoPGD_%>#Wjh*UuQ42Sc0?53}7CTDEUF<5)Z-75E zod0a%VsY}4Pbz&0G+YuDtXP4X_qf0uwl1u*WpL_z&k(Hni8FhTV;ZH|d3OVnJ?{>^ zaVwcU6CiIhwG_3Jt(uu;y!TYxlY6|-@C2KpSQVRpcpF9o$E`X9%ecAzgPsiZIYg(R zHOB639`iV}k@#afwqVYF275DPimJv_`k~YlMKnKIs=DCYhR*N9(1~g<9ry*j)sgZs zFrYG4kAyGApFT3H7gH{!X<8ByjAP!Kci0K-@WtHjAOE#nBrcc7y<@B2V!#n#P)(59%)retkV^iSk8_+HqB4#Ui|cs<)c zj{LyGxQi#eid0}l-y0r-d8=R-)|_Ak^G7yT85nZ4K&g#6^tv3s>Fou9IuQgQ;;IF3 zWTD7}$d9epOvU5{uj+Isme#C^sp)nX)?A8shK%OcDY4dT`zhLvY8@h?Utt?p3BJzh z$*S7)gn%P6*;7!-_g*~FsT!J~{Uh|kMb$^Pg!U3#lG5smT#B@OTkqnt+~`eRfq^qh z+DO;xJwA-&1q28_RcPVSj+ZM$x}#_XM(m&@$&5}>Lu*!RtmzEP*nQPSi&HvrAA++ekZ?S4o|7?)Mb1weA0r)d}z=m)PxTNb~=8Vxx25X z+rv;kj=j*TTB(Q1k;#KAj*45S9B{LUYTLE%B}FFRcYLg5Ga2_?xIFqajTL6*Jy`J> z)WR(4vzWTkev}|;W=&kp0*AY>#8Y(uht_TNuw2rFr~8tYa_96XFZVmL+1@PwP7#A< zRWk?&psgI?>u%tUG}u`~JvFl%>FT-K%)X{Puc%&6vWx+%8s1{^H~ z7EsjVyS?HBIDvX8;@=FLQ?&^AH@mcJp`!c&M%)!+{qngV^8xW9oJ4QhG?}BUkyHD0 z*2pM&9r0kR>DJsZihd$;D9VKP+T>B?;3{LM=IV+SYrO1@qUZfi;MlXh$0Wu6aNSX% zbG#gqa`D#O_KJVUj)-gNFS~hF&^pyan*2;{GW8^m|{kpUbWgipEWgwwST)E{?c5Cdm&BaUmest#8 ziSK{;+WwAa&euvh*}N9o!})@kH%r^5G9K8E37J@^5+icNvL?sn1LihkTUk zbi&Lm@D6Z0SlGVVY7{$;HApGsIYBiL37X4xL!Z%^Y{rz0sE+vV#wFm)8yisb;ldD# zuN_>hO0b>`pF{QaEKHd8?)7w3^sfkDgpasp@g`pKwJ^<3&E@;@QR7cdjzivZUDK)O zaB59`h{0eSd(urc9QKuR+QHR(CU!7)9FOf5^l)$@6PiT$E_ksv>2AYaSZ-m6RGas} zB&C0Fd98cL5hECkdS~cy$<{N2&qFZ!bYJQA0uyC|);ynUhnpK(Y@AJYO|E%zy|V}F z15FqABAWmNa_W>%Ql)!k*i77P(1Xd){78w?F$bG7RU5hFXu`73Rjca@8Y*MHwcf!& zb1!TOwM{Q@^dmeCCii&qKub}Z-vTH^-6o*o>`9Fc`>UsQ9`)g?Ls7&`?kr)KU}9pN zYJ94Z8&e1?Ai0FP@C~t1nlOPOditwTr4uD*Ds)pXTFI}%wE?u@f@HG>$8OF_PK+cz zq<(4TwPtoSl(I`KK+F$it|!SY1Bzo2?Lx zey{Ws>%t?`5$A+;6CXb-g+6m4@w!gqg&EWF+dnBATXhoXosx&6$XzQ1%lY*F~=|#?4w}N$RVOjzZE# z_Y6O7^u?VF(^B0ftlD4Mz4zAa$kUwsWNur{zm1xQ;=<2RT9HOY1=tc`_#y4xy;eV= z&XW~{=f3RoM|ONG#sHF&+z!q`>Ws?hc(c?B#U1vv#@c2dm#Y6{S;6hv@MX71?klLc zxRPXw%y{h8fdD0D1|Nn2!f{KD11Qi1n4=Woc9x5wPKul3kIVn0YKwV~% zcv{;61y5Olf=cB+TG6)Ow{2SKs!wg;xr0mdT)Jt~me+TEKDG|C>#AKB*FW&Sy>IY- zy`In4VX42=|73xW7$%sXVXjaf9vOmLHr?($_Q4Uj< z*fZ~a6l|Dn18Ee!3y|0n^E}UYhagMYx^GYz{vQCI8C|)L&vtK2fG)6ZBvgnqE`&24 zNobRnDR347HARdgGGW2q&rKb;-HcrXZt=PnNc+~Hs-@)xylf-J63y*k4Ni#5-ybm` zAqh;@RN=83ISfRI@&g5^&Q0bsZZlw;lN9KSdzgln#QLVe_z|@^<0yub=LE!Ld zUF`;k7*?&x_}^Bp&O=%i)>>#*g#vaHSN8EM?o%fxVH5d$p5hgWv)vIX=xXrL*NIeB4Dl=FTSiaAl8>H64g zef6Myn<}8nGwlrk_GRa~NN{#V4uGSvY=T={byC)Wz?Y9|0|n11i;$KPVK#3^@m~P% zN=mOmS=t9}2YyU{Ye8eSz;}JJIh9u3xK~|NpHWFKa+-ya_fQI6g39iY@>C0wS4nBF%*2MEW_P%4Z5Ich92|Uf7CQJE$^oR zM}4Sk-I9+2C=@ZG4!1HKa*c1|U^6`_M&Z**U?=>qG^H+Z2h^N}5U)R~MSRJfJB^6t zZ6fyjURi-hencC^i8a)INTNEXz*o6#!72nSU>`|PL!D+Ofq;5Cmm({6WeK!-43=>9 zx;Z7X5+XQA_+m}&D~!4x1CTfI9F0W6Bz6IrAP1Zd1}8j9j3npj67kfM*|7+N9o?~4 zk#~)emU{kzM`CD5ncGeYf-qNh zU7%fwX$cD3!4&42EoH);txS!`;ATm^m0fILiqo`%&y+2c^mjVNpE1wNij=zqNeEWlV+M9E3SVTmL) zULw{ii5+(ob6wKy>ip(6z;0(%;_T|EC1MQznQMJ43(#XyGqyC&} zC;ma_u(ul`x+SFF0PPm#Eph=^@xWjQ?AJj@fp|r=+<@;GUdO;rcpAi>*5xRI8`}mv z9X~ftAxapMLpBKIPs?E7o}0Ck_{zlsr|)j(+8JylZE68t9A5dzUr9Gl?N#$PIjE`6 zFCr-%u4tCpaf(m$K6+Q<%dhK>0tQoyY6&5!pT801T?f>ULzO$2ZgL^8-i;*t*6wqUn)`OpcfZ-}%xw`c8VcfX*qP}Uu8?8GTLgw1 zDU>z&3zW0K&yJgX&Oazj*+O9wF=Z85Ag!lJNGe^Y-pljpT+y=>yr@y)JFIK>N=!VJQ}n-|{Hs<7EAX*w^V%!vr*s)w^%W3G0P+jpg*Ym;yM9U=rbf;x;b9RR?rlMI@ZhyoO?7P06!9vn!VcEyciUw(t_Bt!I z^$tTq29+7-6g3rxhTV(KqZ{{@EWV!iW8#cbWX%qSfn=~Nq>u=MpdnJTtQmt?g)i&F z5uO|yL~}zk3{;P(5)op`iX;C7_462(fODl=N8~O+lOrd%qedS^#ASlm>!uI@V-*1* zE&_tuP41@aCU}N=GPn^twOE@g;QWkH@KiQ9ccAt2)g7~TlfFZ^34w@qX{QRm8kq+S4$ShhJQ_+L9 z;&XkMtn(b7@OooLDF8r_ezC8c4fd3TwkRtCboF$Pge2Q1O43^$4+ih)-1U9-F`NoN ztF(E!%X?pBJ^_b#NAFCJc&<8$s8N+!bIFX5MZwYc79yzSLo|Fpm9@%*V0OH2 z3zKcVVt8ae7qFu>#T;Aij&M8z8%Yn9y2qo-SbojLdLWVoUu{#KyR#ycwZ^=1cxNHX zW?hD!m&q#q^>wBYtc;a_=)K0y_|)4`ri^)uDGP;hbT8z`6$zX^jW5{s9tohvTIoz^EFv0*$7x;4lwO+2a z228RcrrAP*L~bKR3zdxho%^B}(vR%ukqDWFkwtuqs=YZu&Mp|-ZtGr2q`Es?-|HpSb|4?T^jky$yY zEVLjiBm3qtJ}G&s$46BMd|MyHYhp@eZh~I3#~wOc3dp*&Hb;W)^U*6yxpI~&yW;n| zKx@xyh78iuE5>@l%k^QB1t>(Nz;!b|@`%TdQjKOOD=Q=NCCj6xpP#s=>*mxVER?m$ zjyB%LILURp%aN%@NU-g|;aSCye@u~%07n${-Os)##}3QbdYmD*w^Ob!4BTRlsVsua zR>Tn5ASM^U+4pg+DM?o4S@LTD+7HsVn351v&JM~TwG;DN@5rSA9xFk}g0T0%21P>N zy6fMjnHS_~BPJMck9-Ay46{uNB9mUf;>xn7j`5>g5_*&TTF4GIchZw?4CtZ`K*7P9 zMB6@hZB&zTcg(N^scsBDy({ARWLlV3e#oFAelT(Ksn6F&y}MLFQY_ETDZ>^wo8KiCSL-)vZ^mTiMA=0)Wcmen&cj68Um<3i{R8N zg$aob@pA?Y5LrsCJ+q@3YO051s0Q0zzw;axUBO$yqiUqoMY1eHjR74OzF~+HWHhJ; zy6fTyL?bl;Kx#ondKyUT^78tBL9zK~zkm|Z$uh?X7}L^<`IuTni5LaW=x9cJ3T*J6b$E(#ig%dp#p- z$mJT#@16~kazzv+2-B=k*pxdNLpH8ODunLGhCAoryj8$`@IO~7d|}&-#=9{QTS>_~ z`){n)@1_3PpOxylLtt^+zSKJmfj`G}>>`A>FYcyzin2hJ0Rw|6b>^20-`!K2>Ctc- z+TCUOtz>daB7>ocdoBS+d23n^I4rE1%! zc?XJGJ&->^dQwnaf{1~XL3&0~zNO)K!cv~z1q9NLLic-x@Mna-mS|gXWQl4F%G@z! zE6n32j;Fl3t|LTxYM%|lYnZ_M5K`CFLEk!ik8_*iZgfV0jmR{4wd^i$BGy0$>y(5$ ze>I{9mb5U+zczyw<*gO4+OT4o9EX9?f|?K1tzYW!&ieMEW6%Bs)dD={gJW3!ba-_X zaDZ{O4G$;PO&-c3L+X^FMGiym%!B9!-&VFGmD1w)i;d`6Wx?=OE61GjBy46PgxVPE z>wc2r&~4kN408BfD0|tSheRn(s)}XNk9oHk=1#O4jp4@9H_GmY#r3jhAr86;v-2pj z9usTYGSwfr@IJ~E1V;{t!%uvvt2`Y)$>m6k{*6_MGoQL>OrLnIPEX{&<0Cj5;>hBw`Nknx? z9ql}fMgB1McyTv0#2mhoOxOw$Cdzm>(Zk3}%G)`z6`D8=-;OPq@${D4=Xdwm%y)(V zq)~PLpM1R7$DfCI#}DQJGmTaLUM0z8`+5w1>6 zubb_j6_zU78A(GWGtaDZHti7e`iLNLssz^(SrO8 z&8zWusqlS~IZOOi-^ETQyJD0<`EE<=wIhdak|v8Mr!0Az)r&@8^NrbYk9XN`?vf%d zt>C5Z62438_!C+i_x~(70Q9;p`MiAh2vm^#)FKjkBR&uDLQ`Gb7P$=w%Zx4vuX94< zH{>(&lx5Q(vmTfT#rofg{(J_U`cM~J5~=kNlR`mX#t^5{uK z24HTAe4<7{W@dda(=!4y8UPa|*tR)SS(0R`d`G%;egRaHV0yi1;v0 z9YaNQGW>imQ44BQ((evg5o)s5omK)}6``_Uycq-Ok6>HKUDC2?co_$cgovV=6=$O<>Quh+yX>2t4ujiI82om{y{IdDe2Dv z!RqdaFR?5dz=c!w!`l$p#g~_JLuNvk^YbuqZ~N%N3{&IpzsTF*(}^CzmQgJJH_r=tpICZyr?B~pi|lab4J;EwUV@0S zWKPpOY0o#Jx^*Wh(sHTwct&(F-14@2A2; zqTGb+Z&AJ!+rHi;iQTn_lDpSBSN*GKP ztgJK$e=h2o05#r>;cmZPR&V??CykMGsB1&+B>vA$=6y8U#Inf>vsJcu#*WwQPg9mG zHl&HGc2j&~(oD#|OHt=YJOe^U(_5Fbp`@(uVhFhtMP;sb!xbh+U;ugoCNLz5fN#2M zMhn01iJlLv(N;959g; zYq^l6Zqd{9K!)MXh?grL(oD{pFHw2|@Ea%5zhboA^tBSSFjeQc%&TEL7yW>sas z8DSLajJ3|ZFxfR{(%vZnntJtv3Y7T6siV2PYlSgci>*a7S7c=5G9sz0cP5(JFLvwDZI^5=2`S}`6ZRqvr^WkY$iG6?oR z=Qoqo%qbyGjt7X6WFK!)9s;henuuZla5+r(P|M&@c6IpF1n7v=z?9jY#}c>8kQ`3& z#YsndG?vB8*~6c?KtSy&QivplC$`*U!i5VPTutdZE|WP+fSdQP0e+62y2M(Pf9GNM665!Qt8w z-IFdWatzRCa7kf?b=heQLg(FboJ4rHzB9=FMGrgZhFmj*E!MCNAA4@~KEMihn;IbM zF3Kr)O^+Z|AdXPGB?(6=@1_((3I_Ar^HjVe9<=TSWC?&Xiry;-%~gF3uScmG?Z2Nn zkR@ke62rJ}6Ss9wO^Gtio541>`{X`W@#Q9rD6R|Gvj7jpwk>k}2}}s`=Qa8QAb922 zV%|UT&IN({H=HqF_ug15T4u-L@n5HmvcRpj7(E0-WB3)IC87orb<^?7;W{>1niW7W zi@`ta?rtF)7zH-Bdm*b#RTaD!z-({Ch!Lss%|VjV4oE?1%b=&-TBBf{Nevp;H7Iq4 z1|a6dzl4#J6UCW7>yx(0#EJFV(tTLXgZJP;+GaxM}i3f-fu5B zx7*D1jF!=? z!jET^^I4gn(;WVnZoHX0j9%;SRQ%U)jah8}06DwutHt5k15{KLL%g?#L-_dBpHzlg z-B-pB`S*E-4PmcPdz4&AFgiaOydm%i?0KOOR*LpAS z_-vE}RiRT)V>Nl?-1M4i$60jMOm_B>A3FJWky>cv}(4g! zkx{xvI0&x#2?y`zHG%I5+l;;@0eHtx~jZV#?)d6-;p6LZX3M$yzS{UA{j2>33;NE+qS#zYZp-R~&vS8If!|P)TAYL2iuTxN4BK@?3=7$`}@A z>?6bE-*%#hslhXAV|ihDZ2bNo|Ey@+73cEPd}O)%)<)z9yu?NpXPd={nvpu)-do>I z0{y?r%N*LCsUd?71;a=21!-xjlTb`=s5JAlKA$;St8t``aFuzXGkz~+61+QZh7Jt2 z+4K+dBi>Is!Sp4DA2aSY`CLf`FWR+?LjZtCnSy+p7q89s+t=6l3L71ZQww9B!m~vA z<-M~+bk~N%k5o!oZzDBAGG|4>76xXg=Omp;zVcnPM4j_Z=pugNhk zC#q$PWKvh;@64j8CH#0+^HfZtd+x%>S>@FVQElmuGF@885NdTEu`Bx}r!@X15QZjf zQfvXAUD=$0S6b%0x0S|Rbiym*$%zTy!sWvS^rhj`J7YE&Ns#MHiOC;f6W;j2yLbTP z(T?ICfbYlQ-F4nwr&dym1}FLVeZ8t*B}V#i<--W21Jj}8KWIB$YFDj|%X`V!JBWL9 zG+ls}JJ422q;4jv=rvKG;EWh5@kpg}z=^edz~&&DU+eH{!osW0xXZ}P=YX*_$0SE$ zUryCWRxixddi}T@o1T-guGB$qEou?stffo-hdORtKBr{e5MXzHQ~W!j^hB!$vT*1Y z+vU6QzM%mUgZZNng>6|QVn4kdr(6ngg=?FZ*X)T{fVg z51xzsV7nrnSk-r)<@e#uL}tC)kqVJNEv^yVDy3T{lQHy&&05uja&qQig&<7?Y+6|2e*Z(%(2xV=tA-gH_ZHj2p>=9rqwh3c9P zjR5Pkn!%&aF8~WvLa(}Z+v!gIqPti+nhA2Qn;X0wR#DE58xjmVKi71Ti-?pklE@kg z9+Y}(`AyPJVXt}--z1mYO4ID!VuJef99BTp&z()U4F*xm@ul*|NjV|L5bTfp*B(#Dz+BUQg#f39>2W_fU0pi zE;(K~_e6fnxhqk&Jh?h2lz!gV0Z2Q4%z&0RM%@K}8}RH&dap#33wAWs`j-BTtbGzB zOnJsUdUP^-_ULY2cdn{5?qa|nB$10EcKR~VpT7j|ttK!fWy$Sij+o(tUGxh^fewde!I1zOdq${)>B zHaE=qL>m)FzB-vsXqj9*s>=(q!Tpw$Vua`WN+x~hibEgz$_3hzdMlrqBCizxiwCGfqAs_WvB3BA5z{w2`kfSxIZKy~RRn<*?<8Dt?2 z&m5c0|I#zo7snY_>XdkHXiMseEpmGY^s`B{fp>M^GXS`%3>uK}5kW2%DBfV0NOX${ zCOr%76COcd@i|=}X{4Obg^eqSa_)n^`5jtMlQaaY+Z^|9sCbRdjeS=)302+@GCgxX z2R;Vx>6&T?yVt1!c-Hj_pZEvzt@R0dw1x`{fJ6SU3EPb6AnErZs~C zQHh=5RYVF=&I$1m0iQ3~Yu)}6zTS?$^2M}Y$gK(X@L>>P>NH4)7BA6md{E0k8PwQB z0ney5<=v_XUHtfXgu{@Q9J6lS)^+o8t?oKRP~$?-lFp_2%x#vU;TPzlJ9Mz<`>^DBghNE(%rhT zgiP1^Ly@4HC*yCudo~E=Ki}0^TD-nKf!e$L=9KEAo9J5F*7@$-$kMWPZ;V@6#rZJ% zDzweZ@InA3WX#r2`usBETmVnpKskj!b2(|K>YA4T^i#Prd#4rYGaNUjtkjp@K-8x) zcv8_Ide3Xvxsr+mM`wvG;^`RNvVtL~IE3Klpo+<1C;sX(I}BwT}EJFVso}}97flyaz64k2(iUK#Jn8Yen-Hud5NHj zws<$A+%4#9=S6bmPOW91DazY1G1oF?3% zV++?pOpo1Lq}``T;+yRUb5G)uhkS)4J)O#<8v|LH_!UF0D)hagAw6b2Mkbc?-nf&3 zCoURGbM3|sWsA^f9&+kk_AJ$o6g|nWR6QH>t&HS1mSVYTkNp)!JA=ivFo@W%S|;87 z?AWJ%2U?LLY5KUi=Lt_AQ$fHM&J52+_m5PtRdGgkvc^L>;1z$I*VB>ACiaPsF)f=X z5!8@fhNH;r*lFKe$Z|+ododq&*q==6fQFi4p>e6?0Va&j!a)>0?^M}2U3b({O{mMt zQkZi?)#`?aln)l)M8`@XeTZnT`e&ekFF762+Tib4u|EO)(9~+<4dVXR1vlM%2_S`% zfe7SSaoLQ^ACCs+V7KH;M==(B$1!^V<}v03&6!kS0|d(gNz4o2z-trh(##gBow?KJ zyo;T#V=C&r$U7K~hqer{o%90JD|66(sDqJPwJz^G`fvD45a;fs1L(`UEgB3F6T|_k zTRhXrX3BrD4w=n;2zKw;_%s%O?jgFN&2?F6f7$fAwMSQ zAL93OgU&Yc1U z+xvr0Dl>0TVTzHLR9oq{SL8xk_6uCQ{{vp%`2K=P=VS?$ihqzkGHX6}7#s8T5aHO` z^p@}nE3tSVmiEFEM1TBzb~Fvjv>ra`*=~b<&vfRd*QJC?N&F=+{;*DN@=0}NPdiJ( zmS$=XgpR{<_5>|la|%4`)?Yqqu_gDArO2!Je21LzYFX1;u846z5A_z9LgsS zSW`gkr81$&w^!I!68o-gIz3J9ctm}*c`@lDCh^dqZ_e|l!2QBJ9T9~F|N?`s41S}!EQ*c)nRkeo0DR@L;aKNQ^JIv+zHvZsiL#eGH(RRDd2m7c2- zWk;8~`~}Kg#KO7|2M;&yudj|i10CdN+Rz79KwX4blCQ5DH{oy7ww@?dOKDD2Po2^Q zfa6F$Jm)VKo*`$tj-?wW#<8qLMneFmMZUzWTx8pX{|AR}EInbNCrNi+jr>vkQ6#rM znL8kJ8T_YGd^+*G*`Ch4Q||yH32}e|+<{vg?dgQr>H=6y>ArqO7JOfv4xGk)EVuhLJyMj)DDrJlmUL`*-x> z;zf5Z8HjhGz=ynaRZx8?#u1GJ!N1G4mTaTFJ%0fGTzzsUeWjj7Qgg*pc?%6F(YE#% z$OvAZD?^Yv)g^zG6IYQ^Fmi{sT;8P`IJv8tHI;*%NRwwojX&pGv{~Q0bsUb{2dc$i z<6a)$f2(4|mT4p5xB{izgoWLG|4NqGpZ&~Ij==fMXWcrY9?aa!z3g8QN2Dx*Z;ZUm z5wQ3)D7$r;pCjD2PC0{Au)4vR2!{}>tu&0B^~PSR7=#|MY&xO`^W;mZwmXVsm4kw{ zC5g*4oscgHu%3!(AJ zm-uXQhVWUf(t6}&t@5FiACOS5AUnagh-gv44~@qxblsGoHZp?pA@7u_Z)45*v$>!f9OctU?8znn() z@;UmRHI-3`?UpHf?tnxURpGw#0`W|?MRsD}Y9e^Y-V{;xk$=L6{IGQ8W&izQ3F}E7 zdV!m>AwHbp<+s zaPg46XH+CRlja)0b>*czDg6|w(x86Gjx{2-L!gpQ%%p7w5m%^M?e@m zY|uYa2bB5wJkNfD@LpmXAbQr{x>5mGeFmUVJza{}T2bpj^;68ooHT6cK~N7Wb6E(7 z7beP5JwONu#9?Kh#5L(=T2PW$h_r8Zx|l zL-a9rVQlW+QcAE5^55GleALe>i*!3mQ&0Hx$M>%|lBNwj_>&QVe2ye@0VLB@Mg+13@L59If>%N1I9RAW+;S8Pt09*?22gUHwJG1C^ zgn}Bvj_?w#{zVp{WTkM}!wASD!#5<9)HlvigmJC9I(s zaLZ^aNG+Rt#m?irPBpm282Z?-vUfrm{N%zJ^xCAuv+%_YtogaOHCm2v$s6 z%_4_x&Dp}@Dk%Q23mbZGu&fVffGe$Ut-;gA%3OG{g#%I9Q(P5!?mg@=j=EGK(`vto zHK<(W?405U#3rWf)*|+9dE;WOFS2l57=Wp^%b^NeMf-GK!!kd;Fr%1;^BRa+A$;^RV@GP|E`k53dMZ<#F zGs-SoH#e_S&myKz8lN>lb9;?#YAz&dISwPSBFg0ODjnG`+nO#A1Lkde551Vx!J3(4 zb-Y%q6@U1|M>BJXsGpiLlS4|iqswHQg3K+>D=Mrlbqmm(FF2y0Oan`;y)1R9ZaR_T zNguIA{0Si^A8n27Nh##@%iD-Y|Fq1YT8j%!%D~wH8(!0NVH{Y)i-VN^qkUxrXeDn& zVeVxW`Vwh^$_D@BW^XRa(@_fq9A6Kb%+0Z^WDxa@kCyYlEU_ReT4?6F(2vWgi&YA0 zvMAa$%jmHvq1siiRh|8Y;xUb@iS(?fl;vY4ulmBKpi@MQaHSGf1pT~tf$;B%jO+#|m5Y}E#~-}ex_cbyLzvAQhk-dtLzGOe?_wq$un4_4D< z6wU;cM1-CK`JE@+oL7we>*oHfU0Ntd0Eqlpa4Y;5#1s6P~tN) z>1lkvM*Zi=9Iw8we>mD_ZFNaLYUBIus^jSvl=|DNS;e-SW@cf|=dU@Ru4qQj<`L3H zGLQZ%0Bb;(Z_rMbP~aWz`9G)p-G)4_saOK_cVMBF0xqLotij;;50H}UCGGeY1say*cH|}P%KY@ zJKBuC;7`J!Hj@#$4b-xN6)*r1v_h+9s;1!6x%rjop4{j-9Q%G%s||(naRpPf?~-BZl0409%zD3D^J{GI?rlT z$DMw;l~VgTV9UP0bp`j7oVJM4G~*fMbj&)b;^X&dR)qFB&E4l`+eJ9Z)>OxqO+^g^ ze0nDZWB4>nwc;qRzWItP`1wWjGP1se*-0ErDX;aS8_~<#_3}cg<}0KqfJm9t_z)+! zvF`ZC0LHLb$FS#;etQEOmV@bYGDMEegpp4uF5dU}xbcr%^;lo*S#_h$^#FFtz>-IG zg>Mc7K`+7_WZLSaslnidB3orb=H`xI}fv5jq_?QLTA=DKK#5 zl~?>IvM>XC6>*ha^d;+ATGg#^(IRcpWr!o_daRaE{Ok5cQp~&1MZCAHU_L)J?ac%4 z16Y^Zn-D_%MRYZ0dJys(bzY`o^}=LodlM(Ayza%YP+2gp=EyE<>4uEM5*0%A^i8ZV zyt0V#>tU!~Gn&0d`dg@KQC8;pu4^XKJ-)r89VKl+RtX1p-_(y0>tAScLneuiv#5xh zxZFdY3%hixfALX7*hpknZI#`Y+z^|EVlI}aL^7LoI-U{0Fwo_ylZPGxTNO5{efv_IM0`6KUaG2bFoy_y01=0{5KJ} z;I5Fxkw9<_@jqj?Ps2opAo{ z-obaU$N1o0)p_3N)aIfGuTOM7{QvHpcg>}e2m&yK>-v%HS+|EgO1#rF!~QQ;f~EOk zE9PI1!q=2-pWdo5F>u1IIcebT#aT4=zm}6LqDJL z{i>`Kt!GCfvS-JSt}UCH(KlA3aaBJzm9s;4t3*cpuT(iCkRLH7(G)N)KR#l#h?c;= zclCB4{!wN&D8p%goCWg5;y2n$Ylts_Uz5_NpOVnf7a=@(}KidhkDlA0_I~ z(tOiN`|n(KL{zN#bQCD~Zvj$Xg(ZK2pEW0gN}tco(Q0ms#^UFU znNK|aBAD}wZGCTtE3&&T7!!^!vJ)v67DgX)qz@hqDNd*-tj2Az(7qA6@@`F|N??T1^HKZsvV#1B6v&trGdm>V% z=1N>X3yf=x~;s4kA^<(+Z2tZPi zU1NXXQ!1IZ9kmquu++ifyJ`XBQ>H}Uhn?idkl&0k9y`;XZ!RnP7yoj@zL9aqqOjsjRD8uhd2KCN=Y4`Tl966v%y_~ zjfcSC|B`wf1g&K=AMx~hOqW|Z*4k96E5qp#ds@PH)!@dY2LCJ4*}%g$S2maA{Weqw zGI?ANEc-uq-!2D_Wk2g6*3BFfModg9&f|YrQ{2zDG0n;3f+fZSkf-eOS9yWtzGh+_ zVGNS-qp2&zY8(CQZ`xhqhHe$ys?IRz{*n()vXVU_g^TYk$f;M(~IQsrl)AwZl!uj+XHoqRFxxdEizxaHIP)K zH4K)1xn#Fh4X(B|A3&A}2R}K}*FNukZ>CQoyu?%07if{8i-*oiM)IP0cS4>ERSMAz%9@l)o+sw>(STUCJ(H9fZ`5OF{uak>Te06HtQjqhUpGeSIHXBs`x|=D@ zn|>F}$%;8;lE~+r7GGH4pA`$`w{Q(6q5O5_$?y};dxasbi&S7q4%KbM_hp~`@s6%L zLtmAiS`nne*|Qh?{aF3-^fUisq* zutexP_-SxaM^>g`xIMf0+x|Di&#f=s=H=`M#KJM>-iO*sdD4+2Zem&xEaaESIb-Cs zkn)MTnzsvwRgde3wRaXbB676Hwe11!2Y3pq5Q$>%C9vZjj@o!e@I7gamW`&fLId) z1;+1l@U7bmR?4TSzok55)!cgd(t_se+165cAOi35EcC5s+Oso$o zcpiGcsCgLODcnF0_y@C9?Pq0=4KVkLn_tAa`6NTp!+;5LSwPvGpKRa5zqC+g(~KBOPyGBM)(QC^cB>S820O+qT#f(n ztHZaddp&{3)geQ{@h@g=$ER>0neQ9@g{+TmEvnALe~;OO6y2>D7*4#Ue4B&X*te-u z{61x>C$6NZhwx1y&(%v=C;F(1@WO~#2G;iGx}ikO(EO?u-1F<6?6bt^F5reER0ySEF*#^6R9^Z<5nu~q-UGhYb zclgQ^eD!zN=d}t}azOC1ax@V9iueb=uwyMmq8URbLx_KVxW>oXY-Ew&Yw3XRVIPO+ zY(P7LasG>+%@s~<7C9=v_zF5qUr_mZ;hZ#7GL@d*9#cWg&n@eL%0x`yApEM3lZTov zUUhtCn%rz5+A9RMBL9%~)5lxmLHD6sH{6!AcUEW7Uu-~HN#bGS8=>&$7~iDNz8aoA zuc5n+u3Gr8UR;2IkZsCPdOuh?r|5$hd~1!Z&HZgzAOq>QL~Xk&Cv?9Aq%BR}17j%EdTk2!~mQ^YXVi#-Qmn~}Q zcE^3P^LSn~T;*NlBZlCsQC+1&)n9i8{KRA>jcdOG0^y0 zJx1myNB_Q~Ojg(MqKtCOGK*E-RbwUY&$9PCL7jp={T0>4{`wr!pE@$+b8L8)xU;Kx zYSDEGB6$4S|7BL!)4qp`Yq8hP4?@#Z5-3jmjXSPetrJIAg%<2Rt>K~1F?yArSFr}| zEM31M2FPELVm~R=vi_)tB8J(?h(FDiWYpT7)hYG|~7J^u^!S)y#Ei#D4q`X@0GPk_k?~&Fw9FyxPYBZ@ENe}C8g`|oZ1V75 z8(;fl(4b}|v%x-1`!U%mqsMT(b2`jRBt-{ad-bv?`J zbli^^&zh!a;KB3zI;2H)AIwZtMQ`kH+rlW$$K}^)iK8W<*jJ1%sMQ_PL!7N{2eWgZ zRSbF8q88yF*UM)*x@pyF)K;kWUxP@cuuF-o!7-H17UKSp-*bVNo$K z*V58*ZL$$pEHzD0a6v#o&6Qjb(*y-XZBbGL6;sEh=BY-TGV7_vCATI^GuPZOwVbK> zT8(A%)Xb0H{TJN(>$*PYocGzTKlH0BiX5V~0ls2;shMsP-J)EV7aqx()byzlA;!Rq z*DT|T)QEW{QmX8>D2#IUK~ay*OEqY1*gSvxpzmU#d0vPs7+*6TnBet)?~v*dGSQ~O zs@-LzG%aEq9-XwJ+Yx*6_lI4PrzDY)2{?q)hv{>dzjah+u!}mYS(U0hETSq5HJcd0 zQ!m@+=Z%rr*OOVVc*ApsF)*Nq5D@oFd3)Buwzqm7*ggsGqfM#pF`4t>!+uH2_ARkV z+8UoCsSLh&!fYj^lMoxVH4H+|jv=*ZM~Kq$4A|C;IsL44bQ9%0XXFZXkjRFgjSla* zoM0{S^9A~?!?iHlP7oh<@u;`pchdco)?fWf zn4P9JgSJzrCXk$0%@iDrBoG{dU7wZ3xxGFZAd0rxM|aH1ieP`jd=Y1SYu<@<8oqOC z4{3Y8w7=j;FsG42b0t-pUyircNAKoz_@_se3!Z`)i;?50#w_HL-hbUj(I88|Jdka> z2#{caB2LU}_jY#@BYp~+q?mL~j_fhMCVYJo=GQeGbJ%u?JxdLsg_&o(2A9ZTQ%h(1 z3ja^zYJY)C{4H_BCy}g)$$eitViKWoxE}NMnwHFLJaY32B!uo1n-s$=F<=qe$}U-X zvpRru`kjeo;4R8wLU@#`5rMtM^S+X%aXv@jIG|KDX=OjXJ8Nj3!tlv7d2mRcWx8<( zpvRKiP_jKacg#54>pQ>G?0a(ww7&JfOMp#(uSS9O{SIAXxyRR1_-^28s^)V?t^Q0v z>zn0l&ih&grM-LS_q|8nnLM*Hx~{P&Z|)A`a$HfHhKReklz75L^N%PDbA3IfbQgc{?B3Z;W9@P3?6jIXyLO zfgL7ug1x^i@?9?Q`IIwGt%KB|qClV#2j4doH8kx?#y?XULrzH_RzEXb>~<@SHCl%> zP&~c*lo{PiEM>~nd%pm9{A5zJb_+~xo6K3VYRHx$tSDr0%bWNJfuKE*pkUbo=n>Ze z=yT&~zN^{bHF`+FIb2)meyNE~KfubR$|B@`dAE1IK1QxI-hlqvkGwgrDKFA`gj=%6 zJl|XyAHn~qDd2j*gN%zK;F1+V2_D# zIqzU&e?8Orq1znk;9CL?+d9!)YPa~kBiOEE{KG4pRM1jtt?h>z)sb!ie8XKrsuhJj zewKaqL4wGb2u_L%*d)JyXfdkiXxDPsJXm#wc`r*%Dcx&4GIP>8vRM$T9Q*u?YWk9E z#PBkHvs5@SF@e!r;@nYYb;3D5)QqhjO+26kZ*i{lE4|@#lO1vvI29Ct2t+d4u+O{tRcc}%_wvC^^oYrR=%yA5BKK;>8aOV22pCvXpb!ye-XBw7 z4LH2#oX6Wu%DId&w`KD}VvpaRIAxYpz0s+qo``cqEPi3qpeDK7_0Xw>N*n%dZH+rGq6XgZs*mK9j zd$6Pw!cyTUy@PVTC(aZ%KMuu4k6VJ7Gl+bPR5aNaml)~XOgXj;*42sYX% z6P`@so_Cgcv$qr@L%@{>vMYA^!DV`6%dY9NGAlZ?|30|zsr?cNY>JucPE z)m+i^BM+7C8Q5|UDbipYj@iTASY;X0gsU@|5iUa-0-NC3$ZXrMx9d*c@}GNFV)LNW zm$yCk*|c!&=$*h6*dyF<31KlzC$&C|9gxz3XdNuLu^3sx`Qp{bkB(i9wxDf&2q&FU z=90dnLEsakc(T`iC=3 zhYW;w{6dC#Z)QS@^WNF?=axEy8vPI+b#+;wwHH*u`N$z9c5Y{{g2VQ10cL4EsXNZi zXNgy`-HA>xA7#ku0wQ?vr9!A9c1t*;R*|0MY!xyp(>yni9Q*qfl#M zQ3?w;P(U*R(JO);`;)U{rrGtB+hq2eQ$I4x!z6bV{I_f5suAkw$G$y%R;b{D`>eyO zz#o}Dk7M(z=pe0q%sezdj);y=;h2oX0gpH|huXGZFT)}s1rwOiUu*h&4fl-G>xI)d z0xQ#2QsCHJH57h;Tgw`bIsK6yu37Z2WYP@zl^mhqx%=ZAxWE)a1LWZKFG@_Fpbts- z9BC7XI{I`#2lZ(uQS+SODd{D=N75fp-pBlG%H0u6OvitY3ykAbZ2VNt6+i_GxYS&m zVT6HI|3Vb-deW@mFR&(r^hS`_&qY|Zm;x)m%bIL4@!Ji#3I(Uu@{j|eBKC+}v-Hrc zI!LY^@&PC3JU8~IF?z@hP-y8!DH;1OIWO3rk=!+vqvdcl))9KG`FYOp1+IW}vq)=N zo9kH?hK+DuH^V3u+wrNOfj3Hx7h4^^1$FDwB~-Y1`)omPPC&qsto}F8;(J5v&L@L3 zZR0G0b*tjg;X&jDLlT~k!`Bf5TFwN@0l-AXTN9t+mGAETnKegOv6z_&?*=E(Og8|m z^&l%Aced6?k0u=ozzR>~im#NI`P0bZib*Sq=iXko0Zf;5(vt3vL}UYc0snaL@SPwV zzyZHS+htsFMxPc|@V_wIM%WMSWo1bI92|-@iUIpN{x(^qNV`tCy9_pZ;Y^0{a&1+b z#^xw2>A{wGPWYi838MAts(rU7o(5vsH-x#~CchFqz|_*CwvCDQ-yn0`VLf&bJA`n` z9PKxuLCOpXiKaRjM%j&n12Itxh_E1_F8b5EjUg($US{|oK`#V~OtDC4C3jZx_H!V!W&A1yGjL>V~S@JNyF)g)IW1|HDBj87lEr7?aU- zy5ry9yOxEY;*+Lf1wdWXk;F)A|78bmORJqb1xnr8-&NE`;*ac15d3bDblceySJ+-TKf zWQmIhEy1+7{HXDSp7~ak7NtF$Ey{K^*1~5UR>z-HeY=qAV-sHqNSk&}IJ3pGZOA}$ zI7zY?--iA74~^ZOHM!3^^%(hQb?ac{wjyjPD#JXW)Fa03R|_lB*S1%p_tmdwtfcV* z5UoOa=n6{_QWh4?aa)>BMPJYP&=Y_fgZg($xJMzylpH2-F!pT`NX^Ho$gmi zFN58Qlr7Q%bVb8(RnT@UIf8?0pC7J~97hKjp_S#Gv5q~x-4>cW2jT({*=4fokU(Y|(U&)p&;p|-TqDK*MhE!F z4kphpfA0i6G-9edK!yZ`Lg%z6T27hA2G5;Yq`5o0LGrGTj{tzV@bIbvYZtXxe2bin zhYU>e_XN|!KPIFg5BLhtf-IuV50UQV&N*y3s}?z5bNuJ^zMD8*$~yM|BuX_3?egJh zJwb(~-xUonU|a6F&l%`Q`)geg>pt`8ja{u~*-KU&R4y{Vxg~l#1+P)MBwX{Me@s3V zaaQewTrK%!LSvj~)U$qZkBeldK?J6TodUTv&id>F9kCrseH{7OXP@F;i+ulzYStKY z!evLFM!(krCLf{EG?5Z7TTJ4=51jfVQMYGmm|GNA`2pldZ#nJH@Xe|H#kaXAtZ$9Y zNl~$OoR3i8MRe0R_l=&_m_??c`#E=O!=B{v+HAqanM8J<;jc&ArgA@<4``D9qlYzl zgmz6&qC%!;6qb(=@z{-C>M(DGA5SQna0)5&r0u*gYdc4!)_%aBI3VIEu)y^12~OOBm+S&bG6cN?0z1NwO0 zJR;JDKwfP52sx+I(^;B^k)L`Mb6_h=8`>0S7tE;(8S&TNO?j(i`aOn^0j?ygE)fi4 zvIu4N@PIL%ZU2S}sAw0R&^*}YJ&f8VLRSh7hHWB``ZYRD(N0DZD0=xdHm|fLim(w5 z?lE}EFvP@vkP9Dh^NW&E-2H#x*|E)$6G9m#B?5}lJ^nx4JxKU3xO_25;o4JTht#i9 zFb$7)^yU1v(b*{c{McJZd@v}V#13?9ZSk#`bS50uG9HY%wkiAzxHFNOsPQ7^`T(zHHhiSrMk+D%86UJRF4PS5_^9E5yJTD8u)wmkyVx~ zI){+tqm^UVH)GqOe^S zKTj9BblEJ^ko!7fbKG;Qn_?}q)`5Z=S1#70)IRF>_|b1Ol!!6R2dMtfA$Mu0zq;}i zLaF0b3YANyDYc$bJWA5s@p=A0$L-EJ;hs>?oH$?N< zD5)Vq9Rs`o-OWpOp~=0?oFh-G>s@* z=0kLkdZ^_o`<@eLIi76XDO81ACD<$Mk2HPXEz%J91-C*Al;sg{C(lV-gM^d2+28?h zY8%YH?iIFx{`?It$bQ$N-ha?0@lEEx-uM#F)w0nVv)ih@-2}U-C>h;iq<7fx63U7fjn24F@5HA$9UFh6;wkI{2>BL<$?EiF+)uBl z?^TE614{efn4N%NQ5B%}9VQ4Zy@!;cOTT|?DGQpkR5^fZD@4hR&k8%8Kq+jfaoaqW`v zQ-Sx?V5o6n@Z^jJ!^bDh5V;|b%JpKYrcxU#_i%x`-Lh@&G zQoVsKX?``^Ezpr_4lF~u z=Q1jZcEsx+I1n7R5~|}sHbwAjlT}pcM&0bmJ2a0gjufJ7kUOjhPdI1VI~k8_#=oQ{ z@vHG`kt5~kc*j21Y@Z^t<0V?O-yZgvWpuS=MYGyP(@py)6u5E3eadcwv(8M-eD-=s z`>UM$_rhe1S%oBw<(d{A3uFUq7lFTpco34Wf6vwkF=StDNEc#RoIY z*`+VT5nMDq&cYtrMGf@~AvJN+-ZzJ`{!}7l%xExuKoonOJ(c~DQWbl~%#=G-^5=N; z9;(ZOTtj-0u9M0+SR=2MbxaB!?IbSKE31A zpCLn_O;i85QH9HT;;O2z5WU@Qp!2MgROy`DVG`gvrmPhQ9&pl#Pxn{jhW*>!=^Qr@ zO)Po7BpWK8n#3!ZztQ_n*1Lx5DAajL=71GPb_CyGk-CixIbD`~SzDh6Fkyac(ru^M2R8UXmTgakoW%g)@d?IY-X>TU-|SU!O?TZOb} z(NUP&U3CYVNWF_K;dTkJeM^)e@-=8ciZeT+8RswCnPh%b^#f%)*P)u z-J8T=#OhE<~ z0lnXydpSer7Aww?TmwOho;Ym3D$Fp+uk$cmFjDgJzUP4x!N;SjV!usltZ-36&6cwX z>e&1`Tks>gERbaN3}-G*XymS1OKWXZ5tlD`PiJQY zL9XOYDym^{NBKk)%4L1;g_CDf5Pf2YQ1=A(;g@a1&^>O}SAg#EG&Gl#HdxXJAT>Iv!;s&m2jcI(>?cLQZ#t3BEl!X0WxMCD59Smrz3SGWRANUg zc`;?`apVmpe;KqKe$^KqmHSeU5eY|JE?aT3W9y(sb*CI)xdjR7|iVF|qNm!?C*KR!G_3{$j@`&P(M-=OW8k zFULDons6(0Kj_a57F`?OvBs!Gw2dwwdNgfS9s9Z2V>)-rx!cTnz#oU#dhR6>32SP% zYlKE^*-aXI3?%{ioOr%>_lIR{T)^-cuxb64qS(vpQ7{?6tz6J@R4iiMHM-Al~-;nLw8t)tVFe3PO6C=ct~ zWi1xJu^@}$sJDGF@rDP;(}y#{H!q2z)Gz_@i!5SumZ|-zdPd4)5sJOoebrzuPcWw_ zT$|ZKq{~4Y36{+PC>(5W{*lgv0r` z&x^Dl7dg~quroBV^1l?hPlfHGpfWQ=L=ex6n`%^0#rD z)9*N%N<1q(u#Y%Zrn?q_ETG>5Jj>y1M87nMC-*j;w^SN0?6J+-iFNLr=n~NvvC(S; z|2uY;mBx7im;*DCWSn7?kCv7lk&>*+?fAFO1 zlV9U=-m7f&g)!tQr5F|FaVc+7o$fyH?`k$fGb3cS#?E@?R3rEL1y_RLeo^4G@b4hG zcZ7$}q(8uL-PPxUk|!@?xE`>>M^9n=$`}S&w)o=iF=s5;0l#f*fXeExEv|C|gl|^`sMIx!TBBXI(~sg~fG; zvffl9hMioENqblu!BEJtgOWjd+SD{!S@!)-vXLIniA&`?cRr-b+@Sy#0j3u<>d}Mz zp8(~v)%`jmfRFrDVMzZMVCaFY?q$O`NBRg`h6t~}ctn*%AQv-US}t5P?5Nhv0p)x) z_t5G|QgbWxAyS8a#gFN{IVFX2nLWx#j(!;a2e@ z|J|1n|M7^v>AxJU3*-9RPb)YwPG`^o%e=p1nUU5e0+0Xc-iWc;e{9e7&Dix^FWgrr&2hiHsfah-Dl9noj$qVZ`O%*C664pn}z?_&j^J2FXvRC zXa)Uu1n}`rq`2yB4?pX##@SUU>>2mUL9?d2O@%dE08J-7u_z&(espB6q_8kL(9v>} z?wgDz<0xV`H{nXi(c|LRfN0ljdPK`o{$+=DKPQOZpBKUtU^U&zmOs>_2qw-45CcHk zSAcn|0Ta|5&4&o z*1G-OjvU?p-q}WjVfgM)Ez|AWtggp%uQ^%fGmh5F3XySbbb8&@TFlua{CrvoJ11&j z&-3mPz<$He(@)EE$an=dBwSDkw@7{c zeb<+@zi0M*nbE-BvGT5QTLu+(F}gf{Ety6>e+*Xklitt`cPN9C;;)HblSdBPKf7K+ z4p+A)onZH@*8!-yHB}{~yq8vrGVJ`Sh-o-%J)%c=8Hr)#qs0lL;*Fi~flTImf8XT$ z-8Ql8gQluixK`p!A5^F3t`9q+*2WUfMnK!nV<5MhGPc2#E0kbAA{L{ZyGlu!>b@IY zbmX?v9M7S;UzYK{yRHTq^Ar+i$q^7OZMgHJSfBmxW}a}~3SFD_>d5;E`q9(GLE*=0 z;%cQD)wCGzs%g1SwSL-J$}HWGUAC)$@s=(E=dZ?Ec^;7fpyT6j#H7!C!j+s4B7dl; zdhSqL{`ofaQ}B3jHRRkH`Pb#tqr{m;tyXWlf&Be9wT6J4+<@T3r@3`LFuKY^v${9j z8!8TfM#pGRdk)4NCCnJlUU0c8SAdNF;Gg96IG{zs;PW^N8+7yP9F4c3g)a~=XMiY} zm>ka@cdfRlI%QnzQ-llco7Pv9?>6es{w=Z;z2gN&C7z|wE*ILyca8|e>Cja*i?Tyb z7;)V^WuY(`=!-Bm%!}ojqN7hFD>Wbq7Y!KhRFr*AWPOTsk~mCfhK#O}jE{#M*N#wA zAPS+MYY3$OG&UO~PbO~%hXbe)g9aAWeetJ8yIE$1(SF;nD%K>#6M7D(2hoM+Rro~e z{$sPoLjA8bmYMg*-?TDZZ=z0V8j3eVMZ4C0trti_*Y$KMkB-ts?#n9?_S6JS>!fas zFkl1o?XhCtQ5DX|f#Gz;(s}vK$trPNqRNTbf5t*j-MT2w?o)V=6ui8S!W&tY&jnL6 z9g`^_5t+P)Yb3S~P3mhuWkmzaJ&>gfJ2Yh_2|-6$YX!p}#|HwoU(pW|M_a><_lYk_ z(4(_dTh{{GT+xli^%jD)bPiy1eXMnveyfw!5#sW=Hf&_?idb;^=Wdadu}55lpo~ z>J}IyOM?=$;^E%s(65q^1Bc4Ew?|9KY~(X0UdZc~T*|U|G`x&3b(*(7P%E6j|p0C}nm@~pWUl6BpF`Wd2w9i^%wXl4oe z9ziyb)qdIr)Ni+^HM%RiN456$yqCWe7uR^0u;|v=6^t|M)pA=P8JfW5jJ+AI`0tKo zBU1a;T*IZKmSaNuQl8Hmr$qQ!$$!wh0Z9(Zvs?ql2XhGF)@hFyN{*y)a0W!FvC?JR znT;GX7pVc;9(QDN1}>6^Z`{qBr7*vMN8$ zlP#xsZT|oVz4#m3MwJgpQZvLeJK3e^##u#XU{FXx`*`6O+uxZKKEN3}Td=ufYEKM-WVPDjOuJm5F zMWva(X6!}Tbh4aTi@yd;^?hoo;5gJz2&K~ZwQ72hGg?{r_~l*VVfcZb<#Rt2kP{e} zuDdOjFh>L1D%IsYNO%q9b1bAz)j`)7?hY`A7XR7JZi&@cs1bV+)~~(>vcs4y%!j?z zm@>-}J51`1)9?ZUpRD3b^cCW^vNWv8qDF*WRKmGuMDeoqfL>65#{z43FzTJ-){^m& zDh>0qh_{1v!n!`xE6yErrVq#A)?p>GCq4`2a&W%QpR6^HGmj>ky02%W<#IEDwVa?3 z^%k}$&YktCd}^P2mkTNvXowOg!Ep&6}%n8Obq=+*k4+u725o&>^uA;&JlU& z5IXNauP}4&iR-iBlI(Y)mJ2bfz~Stj@}FYQcqra#=y}{?g;;|sS}xgLA7atLE`@m*-$vwJ;%_%C*SEfJ>uqVRr<+LcMWsM(--DH@UXV)mS{*ypLEI- zg%kt{2$Q)#t2q#0LZgbLtsLuF#y-@`iY++rRi>dP?1Ps;Ng;M+`bKEU7}Qvnm7oJS zIx_0mwT`aK%o#;BfbJKeffuoNS{8t}s>LXYp#xo&^Fl;uMf;7?XP}TCBc@f7YUF=y5^%cPj?Z=!senXlhHE z5;}z@KP@x+7qt=98eA7)ac|x)0W0oK28pkS2Mm&w^tYDhd>H-Yv%aAIN-(CWEAZke zLuYK(NYJRP%xc{ZN>X}pwIF)b%K&VI*bS`5?y_Ag$P4md7L^uls>*ML^{V!S9g8TX zeTtv6a1VI;MF(8=ylDb&`-l!Cr5C&9%Q7pqFlv|_HULr>V_1F^(^oeY`t-EtMs-OE}5 z9MV9_GyT@z22&OH?Dz&hBkU?Nv`nPJOaeKty^?I<2Rw)TN1$PG8-#y)SSzPra&gb_ zr#<|3Fd;aW7z!a5>;;8aipXxZ^ot&*z23o}>~M5x7cK>haClKYE5_>elCll$yagvK z-uq)Jk#p{m;eFFcv1q`_8(etev8bv_QCk%&^m3A8DpQAOzFwGx$rzkJp*8l0TirR- zxXj>AQOOd)`9$*1_dZ0*Q0VG;jCTimCe`64usO8dp-W#+jTBS??|pFgE|=nG0F^TT zQ&bZpMioWVUk@XcxbDcpvKO!6T1f4#E^97J;(qqtj*eA@#k;JZ z64?$h@cyI6K1S6G563tyahU7mvg$t-e5)cSbF`{ln(N|o(z~mpRJ3oQzpbkD0@1Gk zbG%1G@YlB}Op%42S<{x(ETBKnJbqUPJg=zvI#V4QEq$U?D`shq-i@o=rG)Iu(((w7D0wdVd$ zzvW3U{yjvLBNADg06npmHF&(3ym{49FD4Bpb!{6Hx4D_Vdx;=DbUiE-dD0^j%5SNi zn|WVD+$0x|4!4^bnf~)JAx;|Pq-5-V=aOO8_1+{nZ0+-kkmKy6q$`J56#c^WC`y36 zyl*-?^0cpzY33Rg7xJ7HwGc^R$`iF4a5=3UAZ>JSVcwSdCgg61X~TapmH@etO*M6# z;&&!7!Z=yaMaj>cjX8qbvq7k!HmH{oxRjzWtE#j9OqTA6kyhyM-rJt4BHofOW8Q}k z3oxKl)lD8N2)U+Z&iN5+bfk?jx}er>n}6ty2NzSrx4I({3A`?X2J4*45^ zt#(vDuBrA_tdsG}kLHzM=Gy?$&Ig0aGbZPtG-IfJax}E)m&fCcfm| zld-NPV(~@y4TOc0po@jyYg<2!C7ZHs=e?61Tdd2+6jiU-ehYy1wDDf+@PZ@!{wj^w zxxA(7TdG-lI{GmyF}+>mE8v{jE%^&xGHGJ5Tx3lwttBF7lxah*egP>A4-b{pC1<#W z>EcM!avmTgw`lHmjb7GodK##(txi@U10vV@>SYJ?eRWO8$K0A+$9w&0hJ@oi!|_$4 zNF11P$D5&peBncn&1B6A?dm4JoTvUw61~d&L0B6txd^g}b$sUtTc?tVZY8n%Pg(@w5Nl##yEQwyxEtci`h*EvvoP zzpP|BJd^B+z9g_w6&AP$<%HGTyQ#?FZVfHecSd)QFN1E1Ss-J zAW6?wmaKx_B{`E#ncG>Rb?yWokaj7{<^sdzfo0>Nfv+_c8DLo-6?7o9otzYREAVkp zKt8O^mY(j>1k2gpxX3g{x6qtxpQ2VYQu6KMYThYU8Eng&n?W|aZOM-#qBIEcMG61x z)TVb@Z4aeyD(YZ}s>nGE-|DX%95RCymGFbk@vFe7C0L!d@eeTI71_Rcd|BDCX(tWL z$1Q6`?vrZ4x^&;i@IAcMIAL3wpKkb1qSE(CkAVjBwZ$u}5Co%>mIM0p1 zC8hD77shP7rLrmY&TVo|k*^Ld?E0)IE1C?man`w57a5)y&}v<=cioS~smO)d97x04 zv#Q27+&6*0xLUUuOX=HYNuXzRSsJ_|nH4?@T4UH&hd^n`o*6miELu$O0Pp0Qb)yb+ zoH$tLBfZDUuAoQ+nP|zVKb({!XlLmQJn6jH^OT@Gio@5^w1d5OSUAP?x0X?g+;v%{ z?l+kh&{kh#A?*DQ94Uwh+qJ4W0yjck&UI?3lN?4er>Wz?Sy75{^fja)bNUTmKg1-r z)oG6-tV6wN*kbr1HJgoVEFVZ;S4|b&Z4$+w2Ip0qyT!QlmYu zZN`Q!dHR)HvNZRZ+z01YFA^}SL8?&aK<}LT`L}mq;sx%k}r{H=ylQ0{`|1oCjH$Kn5HQdMo~Dm z-dY!tmNK|sO7oEG5>&^ga}cPmTxrg}>qrbtvROV=V|jnNtjz_rerH*DCyZETxfePp zmywP$O|sMzReAXe-lfCy%>~$r^p!%vbJ@udQitC?iR7_y9;GfkP9Jw@P6WScOVP&i zXAs=BhntL)=O#hx*~lzh|3$6wGQ8D!RbH9MU(Yi!`u-B|{EzE#&2vIjoS;VZpLNyo zKq`Vr@X(B)qFO{b6^dntcBP#@J*sib9qa`S0z5nk*`7ONFpK56+OQWN^XmY3J*;G zFep2I4A)xxMm_qb3SQSs%qZ~4gD`5UdQ|xTTQn#(*f5-P0#LPdn2oSt*M*rHzG&O1a%b8wQetFN6xnsx zPGoGw9K4Cw5Y!XR+YY+>*svvK%bVl0+-q5T{zI2l<-%5SBi;548!c@YcvLcxhu}@Q zCoU$L<4;I{v5I%|`FMo{hl$dNM9}fho!*C63~{@Vi<0s67M0$u_AE9p$+U=pY%N+1!y|x!mn@n&wv}akXWjbVDB$EnwS( z7-$&1m1k1K3+`+%`)i)xkp5NK`nu3?^s0B6q%6TsASgfEwv1x9I^r~y{I6)4uszhgal9=rp z03)gLYwzolVnL1#zPxC0^Rk1kXl77`C`^9N^*%sc#af<8(zL2L8fC8e>z3-dWi*8X z5k$V9MvKJ#!!cqaa|m>)axxn1F*Fnf5A5=j{s}G zI&XHaV`K7CqbWRjAp1Ypy=KRPf9~b~;Dxb0e&Hw%r?_C5kuqCQTifAJ<@@`zXL;U8 zQUR8oWfoRkD<`T~z^HNWQW3YdPeuLFBgnG$zU$_urd3q33d;-MLS1Sv>O9VV3_e3hTD%aZ zQ*GvB&j@r!)>#=D{;@fb+GYY~YPz7=)NHIq-Vj$P05l$sr&i7CT3o&Nq7gvlSr}=I z%K9n0cXE%LH46BT4@+<`bF00?W>k62bQwJ^GF{g{lpZbtZhyNh!OfR6BTRK1MWCbxXL=V4cc%Zg62~=; zVWj~twk{bza^$UMqmKjRX5)*b*tm?h0qv)30K6)vE}S1F#HiIeC}(+#eZGn=8+crsk=kJkC4X8uq#L}L;Do)p!=oZZ-XUKtEYRN3Q>+f6q7W+L5NXu#Z! zt3M7Y84;rRr#d8^=G;Wbxb&Kn*t|Gf5u@gY#}e=p6lE!g8_q8oOS|2yq)>BiAp7)j z1QL-zy}NNZ@BlrqHnHigN>)R7yA*LJ80W3#Cr0BBV#mwcvLlr4K9^oUd`+MRo3r~e zD!0~kKfJ(b7kS2CovY&Nx%n3XLEI~#z?zh}Fw360D?e^;RGaIUF2Ng5 zLiY8niX3dZu$8@v55|{r>YbCs>>ZV5&emA?PnwZ4_ZY5uF=5Z3^jaH&#NVrntwW3< zUp~J&F~~?ll6!HrNGZDRhr7<*qvc0JBve)mB+FR-ZSI94$!Gzi)On{8JqDu+?@{ah z{{3)4@?-*UF0wKld!2*47-re9#^=>=8@_d%(zU&6-_Q^x&W=0fdhQ-78F%p-n*UF( z2{hTk)SqDdhIE(Fc)~?t0k!_uN?Q+f%i!-#9@xH{GiLgyag%U#d_c9jF`vARM=8+@p$C_F?4V>eZC(UVNrlD48yY{>j`xAB&@x~Ta|b5~U`5)ROmSw}O>!%SguSnHKI^ zHTfRvYRN2S=BxQgTyZ%6tdt)1%CI)qeNLN1NpA7?{24QIYH!7vi^^xN+cm&m-RY&h z`^es{4fW@ta`lX5)U;`1a$R*mS$90N)cgwGJ7)rZcSKP+mvwpAoznYYY@+4gj zjlt5NgXb5_WV6|6;yi&lxL`NlB;#g}rQZI5z?IOmAK%QBtvC+=PSD;`z><44^MOgn zA0D1uMNCYPFv8+vM5cAg))yVQ+WL4=UvM({9|{iI>Ck(^@Rq~ zae4C`>d79K2$ZV)#Ix5`sA#9P+%mp|y$adfWBxAk6=fL#A@`CjRt z_?i(>Q4D2i|BS|rdP`r^Q`fNM8u%EbThi5F``eAxP8m+vZ+W1+uMT5Wl11#uu2}DH z{lV>l%obgoc^a;)=U8tV$j|2|1+r{S^?7&QO;|Cufg4RL6;pZqGDc_~oi%tZCe#y*-O#^Epy|RiMoroi*5e1u9uF z`UCIkSd8qyub-5$I-m*=y&ZAOtl9EZR8_-~3A~0C&m5GL>CjWMUbuJqUKGc_y@Yup z8gSR5=?Qagk59&cJ{>*K4hQGcNnbvPMG!}e2btMz?afZSJHf;mk zU7W)%ONz-*c2SAA(>KAy0$$FH`A1gA+8UQfljGpk#Mn(vhk4Ea>K3dTg>!g*JX(?@YRlx2^?BBryD&on)y{?;EiJDiPUR+mKB{P@!uz(ytsTgftUs-t>_Y6PYXVZ>`kSWMx!@#-7})hzjNz?Q z&QpY&0l>=RA-&6?Cd&ab2#QJJTi;o_=bhy6tYok-MJASWSX(rcL}7|ToROB{ymX%T zebu0_IPaAFCs_ORERd@IQ>-Hf6*lC(g8r;zzeF1KDkt9IK=i~B^)U;ahj+!8iM zfendx?UsS1IqQmck32^CdbnlloF>h7-D3``(?Pyc8+=t!m*k3|G%2O7zp6w>st64k zI{GCS>l1$7i?RBwaj#Bipx62-D$k-Lq-7C&I!wk(hOHOP7p<9BXD6ef$#3oRHbPF{ zY{rWm|KXoJ%Uj-9Huk^J*%4dK>gYIi2lTO>G>$%kmhMun!gO1|Wf2;!43ost<}C=b zc~($ubLE%EwVJ8mJ7fJ^8suxA^xJxhigWTtO~gLI`aIQy^v)`@JXN;326>dy$~t51 zH*vCH8|%^}NRx>Z&uwHGBIQpT&vYVtbLe*58EAB4oB0U|37dDGoy|FxPqh6xq_628~+0NKvR{>;{Ka&4Hiq8C>&GdcymRLe5K@fXtNkUEcqRXI`pcJ*n(g=wJRn(SPYD*-s zl$1z9kefteE2dRU7u8y4+G;x#RYh%~?MFLZ)Xenzc>aRx^}2t!uKPUB<2c?S8VUvD z066M+qpPz6I;akJ4&l3qWyqQVMs)hcfMoKCqe8d*O)`xan>qxUgy=U-{rYIU*03r!D`iOkV#HN;%^}(vb0^sxGE>Q{q|v&rsQo>zc)*>>uT#WJXn*5&M18Xhvm z0Q-^x<8$tdlrw_oSE7h}t}^|UfwaGuK)ROVbM@rxmxJ;)yS-8MiBmzC`Z*BO31ygi ziv#CN51B`%y5yO2qR_)oAS;IKo3t$iGpRdYk%mQvf4U2!QsWLyc)$}k%uEW6im+}u zXVX_RX1ing80|HX>ptMiv4v#$v2UJ~UqY0p71LpsaGi{}?xN#yv}$poUV%iuNI|xL zu*iU)>=NQ)N|w#u$x$vixEazlm73979m~Bb?x`<+KinM%eln(9W~%|BG?v6ecpKR` zbB0VbScX(d!z`2LX{fp8^@y$HF`%-_J9ABy_Ci24c{l9p0!(@YHL=OUf@U?}zgCLF zTt@I}M2PK}S&7sGA-;t2DK@{JF1o0t0HYnB*SW$HuOpAi^vacxEKzWly^+;xv+B^1 zrb>tGlXH~fS!JW-fqXZ7ML>Cl91FA22&WTWIXSH^zd*(eKGQK0W*DYw?rG;S_{jOvXs?WwEK z&pMt?tGHlnW0r?cVFm}(r_Ug{p)vFB(FBGMr-h@Ce7g~UjqEU58kPqZLC%I?n+@k! z@*CEgw`HiKzM$N@(UBJ*`eBgR_m>$E^WH2JQF7M%kenA+x+535ZiZc?&3bsjzr)cnP$xstR}2riUQ3GdXW&lGXlPDU3vmlZb1T zhtoDrf99hFs+Fmn*uB`iy<>e{^C(z=PK+833@^1Zt4@TBM>?GP_}HxI8c&xdh#jZ3 z@IaOh4?QxTE19~wO`Oa#(SARL4^%bnuGjpz*Zi7I7Kc8)xSQO+iaTq(u7J;43)+um z-iH9WLv4D{zl16zZ$Sl!ciJVa)|oaA{GPEI4A zND31A!HMAwG6SKiCvK$j4 zSYA(CR@Fm4BhFbm4QaTlB>vd~1PUHMqK9rPq*NuGJT#@xy+(saE%K$(ld@_8zaRTJ z5v~2^&}+C`e%y@m;Q0u<#LxyHxODP-S;$21g6dZCNx|jVeR?s37{9T#@q!)R zuRgo@3mO^$_Y&*2@U-NVyuo~dk!UAZ zf`-^#0xT-VA_N)7j+W^=ZO#&?_(b73wwF0dJLT%>3g_@A(jYIMHV-7y`_fHV%H3L7 z5oanbj|>)&eS|oblf%;55?>9vJjcdXc8xlw0CzcP7;?OU`W)%`r@V^yD~rZEPilm+ zrBKNNH&Fu`%q!m!EH*hVtwlsr83&@Kt<G8W`jA9@@ca$1706PA$>wlu{QPlr=Kf*Rs2R_v6_ zzu?F6o7~2vOV}dPBXKGX&MTl=Xz&F3;Z$jTW(o}-Re4JTOj5C54rGLa$I`29(M-Cm zPbH~k#7|GN~;+Qobzrp0+aS?tJQ42QOgEa3x%mGzHR1V;m%zGzlFHr&1>r}2lie{1Ez}2 zaVMS-YMRJ8%!Y%(Kkt}jR4nTUSzSG!a1aU{+(c|P-}P4HClHRgouN<|n!{MyF^wZFG*?sbiZ3jX|kV+V1*!Rn(o@v#>Yh!SH6|7^XkQM7aFEdW7K`VLugF zxtTsHKQI*l6f&hE->(q)Y9%!nlqC(a9B36GmHcB$Yjt-zzURRy%Sz_)kRn-= zik89POQc+Oi<58Y2K5ryFOpSYqVt6WT!1(_i!~TDnfO&F_QMP_ZX%osSn#tDS+P{$JmfJCrKD%=~61Yhn{NSGC@(2iX)? zc5KL*fG(y*J>*BtHjf#omfzu4|5+BQ&59FgJjA9(iN~(of9|-%#p1?sYQy%ss=r>a zh*JyGtDn@edGcXONjS<73j~+&`Y(SKjJFWONt?dm_z?O@+3F0!TCE`Rpfaw!n$?1U zon9=6Ic1OYTQsT=UB%}g+wQ|>jc-7S!ha5O*Nut>Ttk42y?iT&lPlGadsVHQD=jX!WgQmBFd_8oz)+~C*!GP? z*F2Vf{9;(v#19=3?-u9p7A4n@)vFeYayP_@*D48_5}&tb>FQ22m=pwmpQDK`8|X0Q z)&_V?h%_xqyFi)&%uK7}Ac)FrNtDOho1??By#m$SGai3jN%*M8r?UM;8%M-80t>26 zC)z@r0vQUZh{NcK)XyA51R1{w*(R!_zsPTi+2NlwFG`e{&e~&mO0*{RRFd1p2S&ko zqD}aXS+>^Z7@PL)ICd3x$(ZZju-7gz9qjz$_fdrGC)el2*z3U%Wo+2mv;(Ok9`)YRFB)&Jmv0}5gW5; zcocGfvOdK%Ma%R@j4%;3s9ZwMX?esqwQE7hXuKF6#46c#$td4WO4rS08y|K-MNj-d zaMU%L5dd@5o+Igk3E`#2+U>F}e@D@f%kM zq+@y7MVpF2vG{M~$P~bQlf$X|>v=32Y+a zmFY%uu@)PyU=YlEbJR%6`CO8+q)3S;e?|0>6V`%meI zxKM`t(_WbQmK?Hko%9td+;_!N&O;8bC7<=MoXzgaZ?dR5CKH`!Pz~?*+xJX?!M0_P zs;>)lo4KZpi~oYxBQ1PFOz7{&r?JTakb+vAXLEto5f&S%6dwkEQ40`d-QBnq|1z2` zWTFT}!TU1=ra@u>s}3R9U()m$ugsxOq#hT`o>AyGaP+$Ayn?+=v+_J=s2 zX3YzoH}hkXTfzR8<(rn{CDq@KIq|eop>ci}wRPrLXsJh$;8@j~qSb$f=`Z%%##kCg zZR(7&6Wc?{Yv*#}Cg$Xa^*tHYZ#=q$)UW52d5POpMlm~}{<{?owANQs@1OonD7Jry zT+3(PALp@OlBqFe5aReC$jis>p*7K;S(*GY&;GngI7Abq{!FO9VnIhkr2z)5gqjPg zRoEJVeai8eB-WW$3u08{_o!;vq@HYc6uv?mPg3l*fL8Z5B1jxdjDE&veR4f}{fz~Z zW9&>9Lwoi*JCp-fbqduJ(R0`93X#0gR4tZ;Tk>^?)Xd1qvvJ>5$Qqijo^Ni)DQA5M zt#GF3|?k&OgTTW+E5Lr2WwFA zCKBEJ9MCfj^u7PJ)~34gQ9?^eVknX;l+5Be6zD5SEu&NEFV$0LCGr_5E|zhq1cygF zg!ODl=%JnNOi=8`nL}@?ukD$I!fUR2D&kTTLzVYwt3-~1sQe#;pRFZV{{Bo^cV2gB5>_#wY0OyU>@hGep#-yrV`HQGdBP3z^Na5mAfh z5BZjcVya(7r0X%>%1c8w*Tj$z-$8jZL-B@!75%7@d5{OxILy`Ym{ag-{^IDxfW4iy z@4K%wlln=gJjK|o-4V9dISP98TIKTUMr!$-??N-(GT@!U`PPm6qCRs^3!$;gK;z!K z@NE*C%ybgOxDQAq)Vp>AQI)3eb(-OK11MO<^BRI-nOj|!7Qr=RpNPr93&*LabE7I- z8m@P`5p`8$rt6uBizCISp=|JsBGduX)RdfpLgmv67-szP&goHVmX5IYP@1Vz!%-qU zFUI)(n^a*MD$Z~Ia#rF*6gbuY+kAjxvg4*NKMvenYn;$!RY8t$4YW!xFV4G~{jcJ3 zJTdt@Ez_6|6VTEN9vWv=*Aun!dPpImgwL*fa-Y}p?!Bl5F3F|b4I>tNzt_VFOQ6gq ztFwH+R;&&dED1~TszTPw{sLMK2b1qj#!9LnjR&H^=%7Ceg5o|^RaC)Q-Z}pFfYo^N z(0UL9GnqjG^h7mg@vfK2B$`_)c1ZM@A+DtX#K4AXAo6x2Q1_#G199NJQbV=)%n6hF zeWu@y4qzyV*E}KGT>ub9q)} zv|~ngCJTq9lTZkbqeBbJd`$ECC-M7jMur0?YsAmH5Z&=RP)znC165~3_1=uHq9q&}h`t7}$jOiP&147d>Z*rHZQ zod8bDx@t~ z6v|9KY7&VnJLUUrDYM!eOEZMp`nhvX<`2unjD(uT>Jt_I76}v1qWq6Kp^4@h(cyWh ze92SJe0H*&hef*A3dh{}#(66P)=tG?0nK4!5ME0gv4Edw?^gtxJomblk~)W%&9!K~ zx3!dlD(zac!%ibr0PvSXUS^8gR^`IBgCR)RUbquknRB-%Do*P?w^&@az<_3jyD}?U z9Tr0`ft)ZL!exurxTXACe-;2(m4sbqpKQ}3&SgxW44^ruultqC(qDdaAeM(>bJLgp z=T=eGPy1S1s~j>~5GQ0lWI;uzc0XX+JK(>`Q>#w;h>&-c)HAqg2WCu%lTK+I22q^4j1@^ zELSy>7y#WarY-{`B$#e@&*1=9Gi03KK(nR?phX*r?@-Mrcw^T5!6Zw0_5x5j({rTM_y zw!6ohU>s~hzePUWR{2kM&d0A&>@GFmP|7yA#VlmSk>1esYY{9M?4Q$}XSd+DhO6h$ zLPl9yL|tVlyy0U4`0Y<2*B6K@Ran8ET!FD#hPy)p4`OX~@P~;D72` zvt*uYOemz;KUY4>N@oyFb6|o^c}V@>dTMjJ6;kfUCnQP$%O$-EwO5d-J9uYYaw(Mk z71c0$Y#Nv@rea?D-Y*0tZ6X51{}g&lFt@$hx=soTg2mUUKcFr@ak$C$SL!ful6FVKJ&t)*4T7y|8^nLeoH zS4&=O+j95F!^|ECZYw8a=&R)c#vIBTB^ew5@kjM*0w}7Y;6Y}oT%Q1lwN1tnj3*mq z_%Jb-*oq->7cmCAt9;<1POSScchcP&+51lOR&(k+r==ODALZBBxu;LYRh~{?dl+c0 z9#kkW&g^*{4|JvJUkui16$vJ#0fuVB-Ly82WUtOZ=@0L15kAK`bn4XerB{1}E)QcO zfVUpc9fd^{qQD@$E2vSv-_4XOUON07E+4vpfpO5#;#kY4U%9k{b!?P*>@NsdM2!sl zM=QXTlTZ^sq8n=yU*gRrAcBUIn;KeuS#-(7dAdMz#bazp2L4o6x9$4SD}kolUBAr^ zXp&NGOt7{U*POY=-6U6|cr908c49H`C>!1yQ>974<8CW|pSKvGIC_!PCd@XkCStm_ znwk2)IkzR~SiNQ)<~lKo3qR#8gS>Zc3utuc4;r9jJ`m}1*VA&(dhO}9NG_d@k;L>k zerg3l9tSdu4+VP8Hik`-B25n^uM?6nFAg<_R!<*#Q|Hki-CE%*CPS;@{=4%~`P%2n ziJf zt<^)CG@MLnIQVqlj7bNa<;`$C5y~Ni4Phv>8dGMzaDjEEuQ@gfCue7bb^90p9xi^F%vh<_1u0r{^!^gpCN>X93h=fe zVoN8oXx+8?3$m4-=#cxvqRp0x)YpcthW>FQ=!c@HXh0vete3H2sMeWTq~$-bd+OyCEA${&;`uh zIJ1)b%M*@zpDSBMz)oNA;vpup6(Kt5rlePY+fPCWJdtqm5o`TevN^O=&O=#18jxCc zWycj?tWW0Mw#Yx1?iQP6x0z=iE)49)=b>Lb47kbFcYOru*c~?(zSD8Napc-);Gvl- z!E*2Fj8(od_H~ZV_AjOx_18pRZeQZj+HZfFlonA$71HSIf;7E1> zcweApZ``CV^Inp13Hodc=KwMf+^l2Ne|XJ4+-wLaJC|u1$BBNidE?Z4V5`u;hcXB& zX+Eo4!%A3fG2ozkEdR^|!&=M)r|0vVJNRnQH>pyO5fsP4PLE%nGl zSp%Ij7K^L3=6By@-;~l`MIzIMIpePFR6|?4)(oBdP_aBF4A?DA1?+$C@{g(586$NJ#4hH;MqRQ ztp=K`$DV@S&5_M!M*6SpFY>q0&-u+Vut6w1jwRO1`jS??q3Y>6sr%7%v)m`27%`ob zX>Kb4CpAMt%aAt8dPyk(l&AYmU_4?Qi}z3`r^1pKZT`zfUWH^Kd0i6oWz{9Ho-FGY zoneh|aBK)0tBeMpLHEVyRIB&m&)9stT?rj3?{e%&mSy1TIzKg*97r6v!?tq*kqFif z^ct&@YW1jaUf`NtyPXZjE?<;#|J|RdP1u3!&0*>WW7VLl_<89txLG`sRrFd z8os7%q8S`T%Mn3Ba;{IWui0Qu55%4+nj=nkVdjvVXTOy?bF&3f5m6ynvl|b$Nnu&Y zJNOc}EQEp6g)zJ}*Y*r1mBI{^yUEzgPM*#IR} z&IY3)`O2q#S_m?Z( zGyWb9P7pwmEb^vX91r&IC|vv0ll}sVdq`X}yBOk0>)x4q!M1U+wXZgEnz|Ef<#K3X zIkgf6ZEw1)c8C*a?4YuK8H73^rvb7YFs2)H^@RxDYPM}CBz7n_2QrUf3h)ujHSGM_ zxxctg7*nh(mZm;JG7Qr6BC0+p%PXn&NZEZv=%Uab1-#c#c@x$SlOU=eh$@KSvjvmR zu|*CJ$|t^8Eh5eal)D$#dRY#b30?|g+d7IwOKZg$yxrh>_)kuO5(%dA5}TgGcviIY zSMOfnUgST99PuMN`GM9fq{VF?(i@K?^CgA9E@+OuDH@rAHwfz&Eg~r#CQp}BZhL2u zt;!xG>2!Y!z{R@yrN>5huoca*4vX*jNOteK7|t}VWkKWi)@%x+3_mIBi;>$@k*_Dh zsO0SX)B{?nrV|lYpq(K@H?N%@wLFl%7vF4Vu4U$Di~Mywsp<5IjkJeHKGil19QKC^ zF0F9&JFa1v?JVwioHLKy#WcwWR%SOr3ZAVci5EUS!tr|VvfFRo=}&$a016sAm#MGZ zvZmrl zG4l0wm_-WF%>HawpIJ$7x+hU@UG3__ybqeOVJAM{9z{XYr6g-{c=cM8&$XHzf_0MC z-PYD@_Z3MP#eR1nMz3D6mBXa35?`9Uzc&{^&F(RcW4Ipdwh0?BJf#GA*xTPIZpP{G zs1NK>dCd>uzA%mK`zwkOih z>)O~2Gv?Ymn%BlIV3@5F64mR@(NGBmGZTpq#E(Vwd{&SpIxstxd4R(rh8n{UwF|uT zi@!ztFKe>y38=@=uk-N_)0@xPyZbmRFhVwv`W?ZZ6)lS8LynJ(+hL>7Lyiu=4{2BZ zL>aa-=f=Iy^f{cAX}Zo^j8moaGGu|bIyD7g-Bqyo!efZFIv&nMzfC6F#&0x1A#FrL z+hN(Z+H@wWA<26JgH$WikDAG@UeKH_C_gbFP#-|HB9!Sp>CY=#{ zr?hnrBa!>%^t)hQd(f(Rw7UkTNw)|dgKh8epht$gG>;D-AT5*3lNED64IbzWgeu>l z`%&`_LVI^#QAj+y5={fPVp%;K{-W|AK#&5>f8?@4L7H{LY+(N&rb&R&`|H)__W(;?P>iT+4lxR6V=5W#5;tSZ)uBu7*jZHPrF?sq>}RF1f|)Nlx2@ z#^?N4s)TKPQPy81+^X+vP2#?e^Q!ghBof!^IB|63N5qTvj9E+ImzJo|(x zkP}A_bi1A*G}S?p?iAgE5dA{yZ`<@NLHq(7wwNPEweM=~9ocnmK(l3-PU)>52izg_>xNEvn%aODjjg(+Yg!3{rt^Gsdu_(CModF7I6h7*MZYzD`Ld+ z_~XgdSMUSpLgmUKo?FT)jv)9yB=84b6`p;bFMzxa{ zzzSy!i~}R(nDvOwTZdI7d(*_L`ymHzdH=_o6aG!PnkT!!7D1p7k z4@Jej4PP@eKCcl3NEz}!@bxP|;}Jb+iB^26QjI(#?5$ZI3hJ8kd{ zsG+3UIUcXa_t}FXq(j#76CH`$aKR_p{ut8D)3JCT<_Qaf{IE@E5$NtuNt4>!kP{82 zJqPVuJ8al)(vqjk&tEE^cDCC)F7mmFQKtVtGEGdyc$RvxzEsGYb`A(P+WFEb5HRF! zaB4ljsSpTJmTqEVC*wJgctdU+*B0iWQm6jbf>I|IdAiNgkVTVqF$d5XUK_l;RbJo8 z+|#A(Szoeww=;R2XrwyN;S^aP@_f(fgBy61-O@nR9l3eXRNqvq{l`9<-ntH0CD#3L*JJR9@o1q7~ zjVA_NWBov1rqYOA#1`R+RK|sz^Ue7U3c4Y7)pg@R!uFe(AvYVY6z$xCXfswcZ+i0Y z07w`EVyqmvlJXraeEGvXR-jx(*ywq@$th~K_L(x&U(@tJbjCtjiH8WV6W0rUSnepv zju7&`=ppZWe3_%8s(vpVqO#TrKH+YW1zj*}(;Yt3s_&dw7K=dSeI>VdM7HnFTld2A zBaY`NdLWaqarRE-`BA?Ilr3X7BvGJQcuIiw5P+pP8#F_B&!ly88EJ zMVNMbT#bj-Be+Kkuo?*S>0R(vrP2SM<%}xNu?H`p94WYifYFKDEp}S{4m35v^Wp}x z|7D`FH(5VMR&^<`2}xM{?X1n;8ZX0Ck~}Ck9-aTbnkwT6Ta~z3|%oT&D+wp$4}QYTn{f@zB!0=Kxw+lPH!E4 zRYnkqcYG!9KoFP}T#fmeuqjYuH^v`5=P0L8r2V+Kp^#i~VoF_4kr|uZKGPRjI*$Le z75%5jbOg9l;df9rv)<{w{LtAnor>ydaiy^CY#bN)cwj`QGdy2o*5a0N=4z4l@}mIC zTc4&5#I|5trthTV5XPZ>c8O*{p`cxRE!3M3&}ek)2Sd7NQlrr;H81yQZ1UF#z!%ZA zc5{4=S{e1HC#}9E>OT_kCbM;}E%}^hZz+hLYtilGMntqHLYln~YrQuR zuE>UX`y+NQT{iI_7g#k4qQ)bIKS?M}^nKPv!dC^St?a~paX42U(fYdah$nU<3xcA& zXj%l3MjJ60JDIk}4w$(Bf2P*^0LsYh^$aXT)#mKd3)7D#%Jwr;Sfz?MXFzX7=-zg5 z-#h(^2Y5s~-M9yB-QKf=b<9FvD3bmNYsLkv_#ew?tB1PwVM5S}4ahj&^NN0y3XVAdr7`A1@ z;MaX3OZNkNcX0pKWrki&X&lL|e~;~Kqk;C{xehE&ayP1VexkNi;}TMxbA;5k(rn}* zvj%`ax5;+?%qVISm=2o-NXo>qJXFHHFs zlVXKRVrnqh)c}MiHusttfn|U^*CK%pIEG1Oj!(LxJ*Y%4af zF_nj-2lzh*8anoXuqNH6YyIe(Pbl^cNy1h7Tex>~>n7wFN%~S(suMJn{hnKS!29-` zTYJnL3(+DzRz9|TXB6@>PINEoQ5cE*FTS{s;nphbAMg{c2Cf|3x*VGbV_st9{N(vv zWPNQi=zzQNR%KY~9d&6h+;6S*j#*1Ju03)J_jpCTwUv5Y;9j?R_LTv|3T<+ zSafd}-&}YusU?r0Hm_-ZSqq^Z3OUr7o{Fm-l8AWK#B!!(ywV*!6fP}tpsO4d(BP<+ z?0VY}F5s9FyIwPb^aS-5>TAl>KEV4f^sRIAJGvY~GMls0J?I_%N9G(N{O)us9js(C z$CfKTC0pU^jdL?suMP}{jGnY?S6xvklx`?y+|FI!>K~$JF4OvNO)Pet^2}G{KSMf> zi1MT%p4aC0dK#Eqq{_j4k{~LwoxwaSV2B^z{2}_ z9996Zd_v|@p}q14`>x|kh(d^1jMC54tc`6Tuk|~Yzd5~K1%^7nkkB6y8%s4)5awlz z0G=Q36rY*z2t31yBF_Ec9NSSuhf5RoqM-JY{y;THvDFO`szK6gF=1KP_x}53))~0l zBB&lE-h?!q9~H$wVR7Qb-hv;4calXFuUM@ILv?5XW=GK|u}l9IgL&kSkI1thZnsle zi}oL{ST6DWyRf^_)QfAoC!BI#vj$o&^#!5yZ(Yq?l<&lF^5T!L!98tq^qpO1(jHU9 ztb)~hyKM#UP_?1g?{|-d*Ih7{KiDyrEBSbaZ#GRL9jn{fQuXW7d0&z7t>0Aee-;BV z=k13B9dmf$gbTmV^lZTRiE;*Rep|?158-~(Jq>J)?KZ-}xG9eS+RncVS`v~~^uh|& z4?V76uEhy{2YiwbcBK4t=uC_&_o&Vf@V`@>bYu}Tt2wVZXPeD`p@+XV=lV_V_gvXs zqgI!$DekGn+yk2hY6IOsLSlh*L(SG_n{@*;lrawqivQ@MNstx5bMPq|id{a9pfV37C1r-`3eyt}R`H#kD=|`6sGEYBm9j z`CAyQEl+ipmIL>Ylk?tiPZT_Ua;R0Wa%S$xX5W`3mCHa+A89G?+6iGML;PlHWBNDM z%y_F@v41)NOoM|uz{9sO%H(m)cvtr!PeoCagwC^6`EVrOOuJSG9SiO{jWf?J)JEV^ zB5b!TB^qbl#VIL14+oEO5i0LffjO6@%fnw44q7lovsm^oo*FjJeLdub)OT|B&J9su zN8-&V%Dx2PU4fU5plsmtURMJqvxQxU+^p{iS;@E*ZoDtO<(&9ut3=hjGs}>k`84*u zTd(aHT$uR7QrMi%{Eb>f8vtA1>MLt(Z4NdTmsh+RYLR5%7j_t6tcV;QNlOpH#|JST zI;jsn&H^>%L7USC$7BZbspSMq8_rp?yvO-wrZOMhN>TB|z@;9}2l6{VhY%{vX3VzY z<>jG}ivRKcAp%)ysE2}R7}|<<5Ht*Q4f-U@wYNerN_P{VW1W*zgIWt?=ugLlGR4CD zM@q%I>!R zDtpr|b7af1BH#>;56To7gbK;do^u7y=BihVcKXRGN|bNC!aM&)Y;+XSwsinA5xN^{U41VL02{f9HuaSG!GnjZx_; z+W8P&qbx^J@#3u>1#48hR?J3X>!c^*5p9nQVa5>y_E85p;{f3AV8}WD`sqa4%%is zWgNevF|hL}HqgtHrqSDr(|xZ>TBACp?$;ANx(XSX3hjBKf&Smk8y*h)#DgJ3Tb!X3 zTU0yJ92T;t-#e^y5KU!n+R`J&_O`BOsE^t2PE>bDc0%2k()KJwrDqJ~#N%?erq^xr z>kE)5hR(5!@_mKKxi*>owl@42a|<eoPtvSzo2hpkQS zA0VDYbF~KT#lW`FoqGD3(?21&=`}C0+RYg$+)j|@2A52%*d45Ud?q&DdjQW?5UMcW z@u4?T#du43dgf-_MLkq_x&9lZH?L>uAKU zrlU}!vQ-Anaw`rW_+T7Qj2%0R!MYpI3${@V?9Z}*#wHDf@FFTt*# zjT8U65BrapqQS0kY5$J;qf-&U+>8(blWf zuTKB6wPv$T{PCV)Kk%baJz*}Tw4XWD)y?bYDMMN zdp6u2c2n<+!}`rDT922B4NM1KBRC_ISR3zvRbeNtG3imoEY081?zRf52g!#Z6S$BY z+Xs-A2UpBDA4nOxHD^_o!_2$rXxv9VuIxOCoK-*5nf4(rDZcRSVVPe#t2|E~3~*c? zU(n2+j8h8GEm&cIA!9A@>7^;6c?fW#SpvwludR4&Or0tLI zI@@Yt^LmcDY4|QP$qDv3+d@D8oqwiC?wsOl{3ZGe-@?Y;pW~qDhJ+s-&eyhu;|z!P zCFa|nfB%dp^?);5XEJ&r2Ck7io&%5X{B8&OMJQ`sJa4`!7gX1AZZ5@y_V~Tm(r-2& zC6)a&ixFh!{V2UIiBivSV*LYk>#loGdtOI3bo97iOtoaM?V&Zd_Ye*82JWHE0sMA+ z&qoxqGsX+C`M;iTKgad+2H2)%?YDZ}3$J#3WSIO0^n4dIow`3{d-ok?GOnw~)1ixc zPR^?M{%F1SlcGpwoVny`5MI9Xu%>4hl{rwm&^NOde8A$WBWMZSUTtY3hp!rhSC=7~ zR=B|c6xZ%IpQzW&qdvMez#~>Akq0Z-+VIY^XFiLno>;#@cd*&`cp2DD$35J+T*3!d z+5X79cd$y&-^jdVya3+1DMNsFfe~Pda6a zR*Inq*R{}h5=7uJb_@M;AlFI@C-UgJNv%h;;8>T52h-$g2ofE}(9%1`-ER<3`I_fg zQ{oU9D}=rs+7c;#Fg9H2VSoJ{OQ;`EP3n3y&P3COzM^fqF$KQ^7kb%lOwDvhRY~Y_ zsA*XGogSb@IL^3^Pz7j&sO|3sh`7} zaBJz#N7D(aY*Lr(2dV{Ya>A2qf<1`Q7Yc^{nfJE1yM?SU29eCl9VsQ^7}>X3(Whj> zP+hWMgkl}(11w=)erPvu>s~@TdiLgiqID}}e>Si|*+VLr3+vaag45rL98J|?JvSU1 z9?af)=l${?zTh_yZrhsrpa9&NShWDYJQ(d$kvJ4Q^G{vvM}H`&<*-knPVKQ~O{31j zP?`UUM+s15JQL@HkJXY%DPlfUJRBVvzt6B#mC{Xa!aqh~F5%NEBtpp`dg8;4r;&m# zdFBw3)KCSV3GdxbITB;5{N|s=m^ZTeYIk$oGTId1Mp>8sdVB=AAXj0N5Jh0!JK9OP z`k$vY2M9X+v4j8opG!WvgY5dQ)&*6QZl>Ii7MlvxiNt2+KA8~Ztop+(;+ZF#^U+`Z z>?3nhhpdZvVTz|ck|B%W|6!fb(>J>y8lOT;_iuLP$(eMn?pIT~4SU?jdk%V>3S-V# zr#`l2y>}ix6Kuh#13vj^{If=`h5k#I2Lxb~=b!CgYk+Q0`-{du`xKQ;$+pp-A5s{_fJ*eTcktKR zp_|#ug3A?Ipil4mWd7HmXXKvrGNyTOb~n6s4Uz^lqxF~w&H!^W{MI{<^ra5;(=MA^ zsNCRoII|}%yf4S{j&ae=*+FE>zJ}iyiQAvEOmke*qx6II=Bio{ZrW)#K&((Gs^V{> zKX}de2go|NEX-Al_9m)$gl(TJd*i0mV?%oX*_un>1+$-X+t|AxvpC8Sq-{3)>L;gd zwQJ9MIEb@cVM|0HAY*Oz>zy|!c!ScrfrT;~hf)(hW)$nZytm2@w*7o-ql=|WJZtZTGVcf0Z$_~XanfiZnr(-EL>W3cok_x7@C)m;rfHWJ7?aYlG34DLm%~b^Vl;874>d4tHwj1wI1vE2lQ2CTt`NnK>Qdi zQ@U|yh>M=RqOA5!Odrrh%t!tAbfU<>$#Gdsb>bMjlJi9j#N;aT|Cvp_#q``5IIro?7sV>p(iiZtAzm5qAYS=-T7NAts5l-uG&` zwM+PJdO4{1{j!GzFt}*N>`|=!2YM_f(skk}12$3D^o|^X`5~bS z)R=+}r1mBg#qfT{Vl%CckeRv)5*n7A0_-E(eYJfn1bs^~JfChm?pgvClCI~W!GIDM zFeIk%_N%$ciV^7&mHmX|18y!UDTB342k*G84kiF#?X3r`q!uv&@2~Dz*qDk?R2rSR zT;kg4u1{%bXc$aPx854~!s;eVRD$ZBmo;MhSsDrHFs+1)p(!K3uNsF7dj~#t+qq8G z25)q7dMcuPxDfD`4iv(7fMjd}N3m?__|^;tn3YK_B#Pdps))bBd&hzcDuBS2Hjc|% zh6furkq&mXi!HnbiXbYXo_ea`m_Uwz=c~`+H&wD!E&6J5_^oi0mQ%`hV8r(h*INP! zbM>6K7%rE`tyNX*?FWbwC}E-#!0V`l7k;Rraf)h@Zl$-qv+u9E>bCH@W)ycEt{4Vv zq^%A=m!X^EHg!W|nbC@{#mEI5sH);*NrQ({dUyi9zCkNnW!XXNTfcPH(Ey+6Cn_Ns7>#X_5HXJ~Zh=$i_cup_g-T4ve>k^;A`p3nxILYR)C3va(f zgmRE~2U_)NeG&#-F>9*kxzTig>EQw8B~Frdmzo$Koa{4smS6&3ly;hKfgP>ef?~fa zd~qd%f~KLu5!7d~#RnRpgM?3FJ8r<=>Dk%2s>wMptq`wg?t23#i<@qdDMEp#ZdJ^% zqEB*3DTwH`I_`$z=1D7GfSm*{s_5QlCw#Elg@*|pL2O}`6cVc_hoPBUl^C+w5F1r1 zggIZDqpCTch#I^V@OODWT$#Cp(WgV41UhPArRH8M$7S^?wxyN|`|2TOYxW6kqCScd zXJ+F9+$_N~jjQO2nuvIeb!?H^;&h27&@HU#i6|ju%|7A}TkwiofwoBA>nOk@nDGD) zYhePV7=mjboN9?oHX(-4HhLYB*#YiH`u3PmnfU8*^SeV|6h#D&Cx}oJ~;)`4M zrYO7t8+2n>6IOO&cA1pcNS;rH2Jc~7cGj)3cHN-pt=R08>F&h95`mGV>ikViQ23m}mqmoSsA(>v?y0F6zt1D>u0ogI3|p2#pacnS`cV!RZ9Q9p~LTBJMe8pPZ5!XISANN36obdML^S ziavl)R^y7g&$Aj!A+Vzk1I&T7iV_2)ryCn;=zVe$_$?xo=6QiEc|zMv-kt$r`k@BEnT^1uFXM0qu^VsHS1G z+Dyg|e5fO|9tWXODLtA9X>h+mNe z!g()+-;&VX!6O7~;Uc~kVjlztFZ@TIcvTv%3CB9z=eK*o3l?mWVe3JqND7(YkkFL_%G!S|cFg4hdUo)w+h5dzpAiD#jr9vV!Ul&SfuZNRO-98WacWT{~1ade18~9T$-X5%$QgL2#ad1YEM@lwD__8mh8Eo{zofSzvTVXCZK-9p%I$Q61_`lU zjIxN)QP0XsptO0;H(hC5AQ>_SNGfdTRYdlA>X})N+VO=qBKf2l9$W|{uGB#R8-X_+ z3nY*h6H8xiAfgFwG6sm;@3{3TXs{w4@{_D@BkqVKVGyhOK~r{Ec0^zgZ24xK9;zua zbW(8jY-O?fV=p!l;M*&^@_2=oqjzM?VJQIztg3fGm}}(4?&8{U1Swd>1Woga8X_Kh z#Rw$47RTiVbUL^Jv7%8xa6*3Tp-Ta`}?x}bRS%>t~&OdM3Nx&q-gRek_>%o?=!E?L#coZ3sG#Sr&U=@7!6vhbvgZh4pl z(QUk!Uyl+xpcA?gJ6?D8%GQ}xAHHS;#2w>G1AfA#7nXNegrz8(#cXM@#i4oN+j>_b z%BzM1ih805t44Uky{z4lP96nbXrPgJAu7y&us-Rf$T#ZHab|CvNhPM=MoMI`jv{*8 zvxLw=Mt! z4Un8&OJuAoROb3OsAE1P7JofWo7K?+X}R|W~u_A{7T?%xuQNR0AnxS^+(2iT388X zoiQh>mn<5&?uUag;-QD=;+iA0CBLOkEhZ-yT3!%~sM@U}<5SS%DD7N_N26;slbZ64zeX0F2iogCtpBbWE+ zgqnKjTgNn*TdajFUg-yZ6NvolmW#dWfnt(z%c#Ze{%WI*KQtP|QxvMI#}@*VET+P^ zf?#5KxZY$NDgF#0ijMT2yaOp=b<84*+{MLg!UX z7M} z%;{z=BLHh1i~IJ?|!0A}S#uAI4%$KR}UGYLlV7 zu&)_wo6eQpx;cPSbd;E^#d8)=Z-urBvxLa-;V>Nn?8cQQqaV)cqGGO|8(0(uKcFZY z=5AP=n{O(L?U+4e{8SXm(6B9-@VUI9h$C|ZCTu59NX_+-W>*)i)mcZVlTu{m)sTnKEAg2!BFtV%^ znrrB^BSVm}38MPOz=V#L`R}I?mo~0(6c1B3x@#fB@DVJnFm_tYB9iycFdK< zzXg#45P>u>0{?Hk&i3p6zYx-$@At^$c}{9L{lPN)C^-$H97%CVI;)wrTomFQ;} zD(XhOzrrU9yuL1ZaThM;`EGT#T1qM+Fna>Ag_4}xj-7cbIv5JQ1}rS1oc5NPxzKX; z0(^fi6Pp=@7VG))#-gyuZm0x~JZPR-1`KDQgbuN!E(&Ak0Bb{HaN@<8m6mLr+M25< z9>Lzh-Fk_-B&T!gjhu=bHCh}&T;Q_HD-Swg+_9r4+9Adlj8zP53Xx_a;=x{e0x(sI zvigI?OUOuah`*9a=ogKeyhX>wiL9u|2~Pm1Fhyl+D1L^rc5yR~nz5F~G2f{$u0+}x zL9*tOTkuqDDOzQ^l<|eqxF$d=su5~B3}gufb_}kS{ru$&2K{#r;zItffyQ~50>|mAZwj#-*z7XfQ0bJmT zyg4cg+kY1C*YQ(w(Nx;HbD=3}8Im3cFUm91LP5quzFg{=RtY1rmfhYpraYEH%+S5J zroe=(bglP-4i`_srcHTW8>xjG5=ip|>E_w7qIj|^S*0oemL|M3w<#w=!KzrCg*Ce? z8MPy4P-75)oi$a$vibR_IG9xRsTpo{6zsZ*`qrvWR}97q7uUKm%dh}DYM@;TA2=8? zEZY2QTuJ&<@4}|$crJF|(b4a&rEqBIxCsNRsHko(`xeAOieap8xSBg1rip%O=yawa z_1goYDk>v^nSFbprU_T}MiRjeS)6V&g4=P8H!CVGqBvW4lWq=6!KW5x&^ZOl8}{}t zYzKOnS)@{W7+|}&%K9CGES3<2g~@J6sBU{Lsfh=^jJp$%W*A15qAY$lortyQre>9u zT5N%w3hG8fzkiFo8!yRP))z=xBkKmUyRwRWVvQcEXfP8CdYDt~8=yIR6~prvf>g=A-9#hNeeya+S6#U(74?YObQ-W-RiP_QrJ}!-h_40?OQp9IVTBh#KUO z9ZLklz!i$xZlcM;TUDiXB}&*-Y-Lj1hDYk4=n|glFj%0rLYxl2FON$pV4_02Zq9M) ztn-ztS~sf9S-3^jpHx<=&Ir(I(Q&l62pdf*o&J{@XgECzZ5|450q+q;49S+fDY7dj zzzvJaues)G_Ti!yCMu%CTtRUHM80Y3@}nJhWQJ?IQkEWr<8C^Si4!cbp}8K=*_;jo z6asOjRPG$GdyBBfnp~yvfvc!;xD^V0OXBvZ#fj!v4wK570kER$1q`yS-My-wzc!qC z?x451%yYelVya>uvNkMg&af_vBD6Z>!6u8k5h$6QEJ}FgR;H1hmvO;VIYN4Vh{(FOYw^c*z0^sbG!gvG@hB9M;%2peE z((Xms%p@P@nlOA`b#RSfh)k(&x-B`fxd5-0?9Pvh+=T>)ifUocgeIphl@{VE-FOzS zsva=)$Z_yQPGKtr<~leXcZ4Z(muh+KW!!Tk zk2|YrCjb|lPnl+kVOzX@`bNfz2AtWe0bAUg#RAVV2txb1`!S{68St}~cy@#+fzNDc zDTNjT%i=&{*jr;}a_UK$geC}EAmu-TdhI&gr_H2_D3__G=JzL%0Ziy@ zW?|)NsHX7x#1$O^qI;%xW)POEq0`}}7`J)Sp)hVM=W^7&4E#zXi)kL!D#{%dci)vH zyPRZuj!q!ln08cgLriHLr?Yh73QX+AJcn|wuWDY&qo@E{I4;C2ht`atHYKY=#Cn=s zM|3*RM=Qc4H`uJmi2Vw1Z`O4NGp4YnNruPYia1+^eXf_@#yWo&FPQuau%~YJPN%55 z<2t%}DZ z%397xBv7K5R3c_9yCk#roRLEk$fmY`j?R1wu2xO4VbDJ}g)N=UQ1F2f7Y?!ThVmfB z1jvu>T*u2cq!E|TB9pu?q2vh-FR_$~teC8ZrjTc=v6!pqt6Mk>WlFeoD@%}uavT{x zj0LhKw@UOo^n#CWX(y^TR>~}w>(jq9oih)?AFL;LFm%RoIA+d^n z+mp!W)nIFq^|I!a4nu4i&$oMu`YXt|x-4nTI_`Cxy`9oJZpXiUm~YAxvg#!b-*wET zWMOIXf(|{Cd~g6M z!b_zQ%_O?O1S8!0!*|PiKno2lV$Ij%e9Lu-%%#D7G`EzBS1G97M zbizVRVNQxlR%y{9x4YtWHGVpBxfj=mXUE3{97e~g;w!1cmA0DjfkKYB?O+oI0u02L zOs8e9%~8uKsa7gh;lTg`7ID#bCR#DTzlv%ou@shKrpMOMVJ@8nwshwf)Y>t0ZdQ@Z zCbsZ;TA6JYuf(P@4!c{1s{8&tAqNsXCt1KcdNM+HgtDOJxU?k9=L3xDW`j-B25TRw z4Z=&B!iv7Eo0e5vPz%YT4pXU~n%>E%fZ&b^ZKHqU+9FJf9Qu^P!Lb_cVpTi6(_XPX$eJ9YPwb6o-PF2Ee0Y|b_CHml`ybwwY6FY(hIU$ z+q@SRMe}srL7Ql$fLWL$yq#SvYOO^4D?q% zE2$`o#B6kXK*Bp}zwQktqK6je`kkSSS_rYZ$4yA-O%vvsw8azGXMtOrrZ9)FQyyz7 z$Tb!fu*DFQ#|J+X-1OZb<^HSafzJs$P;5jfymQ0EYBFb@L*r>Nn)G(3TbF>*K&;RP zJ3Q_dS2hKqVxpR=1)Drb#z$L}A_r}# za&avHENrBHTwC83p7!h$p?S)YY?dejI~}})QcA~BvVy9JY%Y@wR)-f@Bj5#gEY_#a zMaychk@#E*?GgRTDq+Kx#+pox!y0C2ng^dKtN^J(taM->rU`2hp9Ye#$R;8h>9Ok$ zP4aIUUo7&m@Upn<&nqhI){sMkfS)+d8ogy6K51~Xh$qx{@2vz@s%<#LE?ruVD5v7b z%OFQ$Mvy+3J6*c${Ys_7qU?oo(G<)qp{d^qiQ$+c;$<;S3(IKlU;$GFg>e>3Sn01s zh$`H#l@80pp0*$I)+bJxNnN4tKj3jrQ;<4?4ENaIj1|sUdE(0m3ml{F~PNj+Fgb2DV zj^&leL`PcRbpe|QB%#9ONwSATQdV=j0Go!2y^0p4G#BU+`&}*IPDnV%^Baw+6O8#2Cv8f=A5p%wpMy3#Q2za@xUzRdojZOhB26A zQHUz*I=4MHw8*j%N~Owo&68skiz!X>2|D-TkgY_|M`9EfFWI5PI$PClcaDCgD4D%R zL5Reaxm&2P?kY!gcL}FSWTjf%5X7q!`Sk33BF+aKe1ka*1=9{wD=Ls_po}uRO~b1& zp()(q&NEI!sNl`dMXYFN-EI0*#*V^QXj+o-0e*vW{1jp00Lk%*;*CDzcr6{v29d1fszyW%!iP)X(-BJ;w`HsM)UvI*9zhQyrsB zL6#AOrm_S*i_xlX@cts1(S+G5+H*E^LNO0o*7hfAZ#sO3tdEMQu!46IJK?NGbeFWw zF6P;AJ}X)buNz=ytZzrq4vIh^EGcTS$Qvr0LuD^sxqziN0$KC6N837cWBqnji_bdW zX|cF%;o2Uj@S4l6dsE>n>KWf^(PwHvmY1>6*CLAVdf1A$s?YvZpbDW+i?~8)?G~k{ z(pFm8sHt-F3@@2(PT}2dakY+-$x()_c}vZ~;y(juemaM2c;a+je{ zf9EdBBab|zt%NE1sG-M6mR4`^EnshVpDGG2p*7q}9(?0g`ZUCTys@(mf4*6!OIjD0 zm6&AaQa1D=+3BgJx$R6KEXHx+itZ&@d6)Bsgsv>C!bVu2Wx#I6Oenm`mDn^(ic0pY z1U@Gxavs=uR8Dx>Fd{^+1XqG`&>@YCzPLIle;N)}kh%_&T!(+fnMw9>}iX|B%f z#xil$S6Hsk%t`971f}$AURm!*y7cHyB3e$RLb|a5TM1w9uoF|=f zPF&`)luCH>cShc+WkHGN99LWs!z&60fR1|!)6#Z~t*>JO%=FM~*6SwBM7Uci4HoAj z><^)8`)gIWjtha#NGdZb%yecvO`c8z`|)_?{S0rCqAFI{ttE?UotDsMTD8MAttzz+ zSVniT!iK_N#@PuZ1IOoED zO?xJ5(Of2~GhRD4eWJ6?xD3@{mAV&}WWpKRZ;|7^Q8cpFsp`gHr_hNjdVk!hFklqF z7UUPr+~-@3k{!0OSc>&&O-C9OJwV4#3ufWPA7Aoe#sI73L3^^z%qk7v-PSWqxYd`) z%=r2Q%?UZ7`dB6}L_jKV34sFoHW7VW88b{2)hS(saN$HYQC5MWm(78#}A zD#Kb;2_M!T#6xrU0KhuyR-O*6#1%!(3Ukfk6mN>yZe?b$rZ9<~fy-^iz`XWyjply$ zoEyZ>43>>bqnl?6cBK)lSM#2i-?|37EGv>Oj;o;nk&X;sp4~<4o|}&bOf05^RugGX zGsk%zkqZ)d?};=I4KSir15E>9PjC6;g{Eq`O25x-L49rL879LE&vH8EEZj9*7{ofXmjo+tuV>>G#e*@U2! zQFQ^c_??Sa3^_ihD9KH$X(+$}Tix+pirNY7(_LTit8CCx6I-HC>sE9sUi&MmE-hFZ zCoJx6XjR8?y4Rx1t zJjl5V_Z->9OR&~z(l$9P^Mp!2?T51Ne(beRG$%~*%SBuG>H-;GYbm!u)%Y$Bgofqc z5|NtN)&zes`{Ad!ofgnpdBhS*;BgRJ2<<(Er0hn+_!2P$YZG=XkD8)QydRh)^h+7h zIuH6PTvuXY=%AT>e3H9SO!$g33rvS!)4@)lVNvNW+yT7n{tN9S7l?W>*nx25>9SSa zuyCJ5OexzX8xzc|9Z%=XFhp9|Ir9ir9hW8q*PS->x83~e!Er!m{93QEjiPCuO#|uk zx;gn{*9Da>xZ;d(ggu+VtP=U%z7}iP^ny%_qT_Tui>zp{j4FJy8HVCxsAU~mOe||C zBV^^W_qBUP(r4=YA+c_Ror0p2GF;rpZY~V3ucFFVRC=OTjR<%o+A6825CZ_Q*BPJ7 z-_vfM`0J8IGrF*JioV<#m599@wuskGXlQoOzIt%5MPDs;Q8kMkC!KQ2npe9b(2@mQ^bso!8dACnf!(E0JuVy@#J@sZ!UxHQ zbwp7mtN`T86yWM-!?C?ObbbCp6G+ir#j_E=*Qdxj|F=`0Y>|Ol zF7N^N^vPmX=I~+`-`FuzwO+Ad#wFl#r=e5v3#2X!i%KZ2MRcv|V?Zz4ue<7cZ6ug- z{A{tpEMCIq&#WS8p~6_tH}8TzN;WDPFOIPA&r~Sta!nRq++MFm8$I;0R*x-m$KwGk z*@SW;FmyOb5>bMg7L0H+%4gBHwVhhOoX5}#i#oK$&q;|br;3&v@C2PY3-Byby34h& z|2hhx!#=-dZjO0As+(;?Q_X5O7XW!w%8N)`#{?MaIONZ@L|tCOxHf&Wl`hW=hI?*6 zXoILU4rV7ZqQa7%2Y+DiJ4LYNWl*#QbU=N|dgkH-Ys|K!u`+T>Goj(YB^W?vn+{glWHK44?d zWZgLPZAB*w!p}3;+#bnwE|H1EfYG36bDd#LYOgLYoEOxemZDrgGRtb}KTS7D28O_r z;VYp*MibXO0B9aV4-1oU$I);`L02tw@rn-NU1anl4Sz z@hj`Ik^*ZeAw|m?FvXe4C~L{TzCx9$HT!xX$wh04Acq!nV77Hd(OTNKz|~9Ttcu!4 z>@x5^Riv&gsSNGe9K<}qb6vRE%&f{Xz}(PJs2Velh`I|fyn*O=VF|U>oQKdII~-%5 zu02q+#w)l8qt}`aec)A&J}Rzm%w1GKP}I}Jg8lIXr9o?GX(jlAZ#g$7)^eX%7hti@*MW_z z%Qx4DEx}}0%8iG0;yGM)!1{W@V555d1K2Aj3hEhqono2SknGEKsvAOFT%IC>FqqL4 zdz~m_8o2!Q!!P6c2Aevgme^($d#rHA-mRNq#vB`Z+?I!R46wTvDwBW?jYan>Ex2Z^ z=*rWLH$iAF|28YT=fYZRuV8xIM`m}y3-DAc2hnk!!Ke&w7r`Q`MKdzXW9Jzb+FIJ! zSf`zdkc8GN_0U@a*C*I^h>9!6e{FV5sD?G^>8sdyS^S^9?4fIKSmQ!#g9QuM{HxF* zyR>fC0b@%;(dm^3ADF2U@f^uIuw1DNx+yX=2014CbEOtPFfO~2Y1!F$L;tcxo@(FJ z<+w67jYztC1q}UGPKT5Sr{0SLoexd9+&d-b6oY2Tkj)^_G$$Uk0Jor$UomK0d*5F zk#43eGDz%%%gAbln9!2C<$@j(mP*FH!Hc!K{|**5))o>=^ST<>+i|EDLoKIwiAreA zAm-``EUf1e;`N7MkSWH7x>+2m1O_v0L6HB!TlCtArpcnq&gmcy05sWXac51lO^3UN z#u;uJL731qr4}b@Ba1_M_{b7g?$Zc4_Nu?}EVQaWkRga$~h_eU2isY&yjC>%|1hv15DVw!Jp8 zMJuZF6zD2lVxAk$lI0&@ucIi+nYqawu9C(|GK7SZeBC`w=c%-XWV78dSRlXoa{~(} zbqC6ddMof)dFrMmLVKoGw7Cltx?s%^3oR~dI!h{I%vl2Fvj=1I;!k)-8zyR=2;o+T zh%{>~BDA{Yh(n)>6&3Kzh!V*fo=u16GS)>?;c|JbN|314Ypa}QcoTMkC zQhGCEUTMTHC#=yrYlw2k{uH;X zh{l?0DwJ-k+H}(jk3bw%iYnmUstDi;71z0v=+Dkp=pXuWoJNJChfRk zS(vfPxcyl)w(JcH5e*x(*XOIrit=ZA<8JK-EJ_avT#bcIx1?@ZyAAe%ZW+hHghMNF z?_HIiSqjazO7^tQ4Cp2bm`$%OvcDZmFm})zdAIBohQ?S06D>52ve#SI@oKB~vgvZNSi{@Jvrs&sCaguXhM2hw z{uNQ=E zkU)&2k#Qj+-bh2`89Xz)s^LDijxAnL1%ZBo-M4{VjyMS2b2gy|(}DA8fB zO)Sbt>^qptwT)aG&{|lEAEBlEhBDBU&KK;^Civ6Ck}(tNcF|;52rZB*{@^gywXq%W z6!ek$DyfvFP^5*wu5Cxiin{F^La;skDXt+lOH8M7DzY}Eikj=;*=45~NvlO$>=S&i z{Mwx&fWhska68T{3NjM#dt#YIoiMh=0j$lbYDDfxpvZrNvH7dIH&0hDa1W&CA;U;c zX&j4*xZ8BcURMqGx@!|wbikn&64%oZZ}Bvj+%yPaYziOd3uJFOcPA>zD&vPmQ#VaRQI3_~8=p;b z#N7jHi6t6v$2rw!hNH$>EG)c9f7hqG61p4Rw!}*IZqCcNU7W&er|ISz8b@IWbnF%_ zX`lR}T&B(jldQJb6qIt6q8&?0*w1MblR^x;X)*4&tRZQFmI!NkL8LlQFg6sK86>L9 z8hl$EfnOjT#>@(PTEv)r%AN6h+)-(6+yR;p9la2z=C#7ah^;V-VM!a_+UC|FCl4RT zV33v;l04WP{BW1S%L}L1>9{&4<+87LHq2Ium8$Hv8B7G6?mj`MEb@97RGOzuv|4wq zWRkLrtxY=6V6n?Y!ws3i#j)mYpblI3Nebq^3$788@rWy~DA$%J%_0s4tJ`j{`rX(1 ziu9|pio#tqv^{rruFkm8x)Y*s=iFqC78YmW)#rkGbFz+NYVVzF5B*%gQ;99IKMnsX zbHaUMw6!fLH~a&kZMlQ8&WZ(rXi+m;2&bX&mDzLCNgJv(++zDA%79<%maNjoBW=+jU@_oyA3KjG@TwE*oiS7sx6s+kY)jcqG=6JUZR4 zZvWBnEXNgXg~%X`pmUcmM(~DBrL6r3yE(#YNe4xDk+MLkm+~fHrxS zIqa~)ccrF<4I5d|^cmy68l<@vcI$P*dg>-A4&#nHl{!TaDe|64|7>x@xqibK)%MF7q8wJKt4?FkT zd8M{Ccy@L?mAQ&OP3j$F!)t=bh3pxZccdj5x27+<+Z1BB8S!CjWWx(Lp3U^kE1lWq z@in`nQmM0%B>$HzVIupaa|$Q`(eIvF2H1=dDF`T(qO`_mD3~TH3Kcw+7&>{)Dm1n46wNw7M)WbBI1`e+Lgu%F-;bC!XMlc zFu{eY#1`GO%fYerE7(PshMOE0%WYxN>7}i(%R}e+G~7jlYq3v~9eppn*m^=}6}sV9 z>4IYmsivW2dT>`~#L^v?*W3nySaUZIy#QBi2GVPvKf4zsBI|mnXt(FWP3dhfVmN4@ zgi7$`(}|M(1;%&K;I+=OJ%{bMKildE9UVJOsGb*cEw?mav-aJs#8Ud}*ysj!qM`{i zskEn0r>Q8-rUm@AqhKOt@oNwCImyqUF#t)Wbla+O(a=r^x2UMf4K00}#_ezre~L9) zniOs;3N5Z@i+U5x80eO&s#H5H@)%3r>muFhW=u96qSoyqyUE6=!OSTzJp&M9?~td% z369$|l4C-*z_N8)hP4p|JfN7qMlQ_WmqRDUCa{t!OlXcxp*m>K=Gt-e67zLhsLmrS zv!AC{CVg1buy#yg$JMQumogv+oP?4VYOr-Ubr&ki++5c(A(a`YIdIQZe*N!XCFV(5 z-Aq5ic2PRVH6FG;y`kF?vxYT`X$G9x&akrQN5qd#SNDSB zmPp^i$>Fmm*a2I1)wpU}W~+tf-Wu9#G&no}k|HkR;$8~-7VMF-3Xm7cVYw`3%?fvE z_uOhOsIa*kDy;LP(|J<&*l)|L8?IRYsdQ=Kf<1D&irsu~r64d;RF17Qh8d|vk2)ru z8p_IUq%4{>ZFxrX;<6?&BdIjjlF^;EcVYMYTHVB|mvq3HR3)z5Me@oTz(tobK)G|r zmE5_-Z7i~(ZYu;gqHN#I#ji@|l;i|q7qA`$5BnO(T@b=6^27Xg-KVVP1*_%FXVa3S zp+g@x1=R2cmRODU0%)nlgDr?p9f@L%C)6DSi&;~;xvjH{IIL|G1usTg-Vxk_J@;z_ zasmV15f^18i%s91vCeb9SKJFoGUn+PwvG+v1UJ>q)rEb+;Rb6Cgjl!B<<{LP$Zq$W z_s}n=>h8-K`!?>iwt)~Q-G=sTwZwWOiRRoiZ=L9v&<|TTdBZ1io*)N}r@4369W%fkgS|k}MXxPsr9PS< zo&bDv1^3z+v&J{qB8vRyl$MraF}-7(qKjmK5$od9ZYTXN1}vIO<-lKHc?7#7Xj(|begkHffa8~_8iu~@NZUR#{D2^ttSXwgZt zsC7Gy*xB$VSN_b!3d{a-|dgZWP{x? z!%(<*17L$0$2Joxud6qKTT>2*w z^4;(%8Y9FLH*N3MMR#JarxacdZP6uA2&tllx?xtkz0U1io{E~MB@=EV$(f=T=gh9# z(eSGqGIq`}f@EX6Z7pPGch)tmBM~@ov&9mzcBFFyM<)n%YuyyTlJK*z2X^ST!FO0& z*>@{L_Z=5LUW@9dt&Zl!qN;#-ovhkn6_@8=YrN4LdqgN#+yUOLt%KLC)<<;%Yx~34 zcMiL4v0H*hec}e#Qn`oMiuSBD+nc1?vb$!T2%4T@do5fo!@@f@mIk-BfIAksabku)krceYSA5^r6t61kDX}Tn;98N4|ZNqqR-iV7PFwqAd5=N2r|Ib#hll3L34m&g|1t0<2iDjnSe&goWnrF@G`2o!f?n9keu zReJNa-2FCaq}p1G!33~s$?v727Fjo#7IIg#Zu0><^2T%59YNfA>DDnMeLGro(WO=T zRtxZ!)N!Js_6;qb%UV45cv!+cx72c+1?va{RNA(L#`b+t(e;H(sfgj3%Qm>sjtyVE zevzH=-MUfe)4eSFo#%-;MalLO(u&HiVvV!-&%MD*bGpqDq!@(rq;@wP-_Y zsqJx(z8vYVe6Oge& z&NO?SOrkO0ylhn_s44+z5$80siPGpmGOk$PhqudRUefAnvQB|FogI=2W+I5u>ay2B zHfw~%MXwEQj<8}VHM+Fot**lmhwXQ7xa#ee&pNvu-O9J}`Lo3Y%HfWhTulh9UF*UN zEyVZA2x|*q-{Cf|7S@fosYBjPvXK4!1p~78T-BlN5Zn{P9Wdgu6*9w~jh!{6T1Qv=sh2L&H zoM^iJvdH4rrRuGNU1lius@rtdeIi>`K`mUy9a!0Yr8>ydjA> zTG6)&F=tXYp+74&9@(P$WtXF!{oFSK{-TQ{Lb`}5-`&LG+Ff1&143k_-`ySdm*lDo zb7@b`NU5KmX11fb#Ik6vWPgPsx|zuDt%b0g*G!c{zr)UA?uM`2po7xP-aWRQz@Y1O z-(~v>>(Oi{JD${l|Gh4>3e(JrFgo`w4t)~nhU7*c=2hvq2>+a>uxDj#?xZgxCf~h; zvQ2Ao?i3v`vYg(PXO$VNY8k*f+q-~>p_c8(o;svwX>m%sNwv<3LTeg}aUa{1S~@!8 z_KyV5U9+7+i~6%1=kBYp0AU#lMcuZhTi?%XOPF8@w$e)IvcHx#ADD`UU9T-23mdnb z(9*)U%QY9R0?mGpw{65+h#ahBc~Ms15=`ePDR4te15Rn@%&Y*CD(`(}0S+I=c4m^g zou%9N#@RO$Zwd)G7(ZZ(Zg$HCF5#Mb>Y#M8Nye%$&G2S9PC*vR#7D{Xk+8%As=?HeX!#hQk;am)>giYa_)f<1WA07vKbcZyp4K)N}4_^Xh&`usE5 zYmZ&2sEKM!c)(yEOya%90omHCcQy50(HAF>fZZDm?ykE!3r?VWH2?N%%aqlqsJ*OJ zHC@JioBODfB`}C}-;2QFu7@VGsQ06O3p)X{hCb~!%{79&7kwl?9WZxM>HWY2+IXEO z)YYykYSA=jJTtsVx;-%8MeEG2PGHkwVKW!+CEI&mHb*VlmK6vN%5k|lz}S>Mx@Dyq z2b^3AN#0GO*AzGRvxvg>?RI?=4vr_he;z8@cgGjI>~6tCNIOE4ce3cMN;|_72HwqK zE15hNmrW?hg{zEepW@1?bTRPtZKS=4&!?oEW%-k}_vsA_(RpW&aR9r)k! z{ivUV{7TlFo;SnHi9ywv{uYsP|;>h*zC z6Zlr#JFmxX-IQABaiW&ulJnRVm#rzM0avE?)>|fBw!6mt{KC@{=G-2kZg=Y*q;7X? zArEF+NT;3oC1q3J#;F=Ght%=+K+R6qjpzkV>kKckpRSD-%5eLZxX6aeDqN1bG0GOgI4Nvd6pMjql$qAbPzD@?F%%^Q-El9G9A!5FzL&Y}S`00~V7gqZ1qWK_^@Lo4 z;V8{+xUpB_8N&N(85tw_b9dK1=hNI_*+rznVD~HVqdK^3*Ncxys+iLR-i?>yHH&*; z-DVwJ6_DbP8t@l4KQ=emG&?1;#fjGzSEA{_8@OzLaw9wMZ<}JU?4T;68K`kNx*f2r zidGkM9TsynuBguy)tQZ0L)|gWUH&ZDT#<&YgDf3a{Vj~?9m_GRCqi4A$QiP!rlMvS zWz-1c@maSxYcFD##11c>vBEBQ%y^`$^?bBAe=M3UlZIvA>d)G~MGW-nUR|3&tjQ8&oDI$7Lt&&&yjEVr$2E z%V93xU^j=DXJcQf0pD1!o$-f1zr3KJ#x1C5Y_WM*@Xa;FT@@5Q_l>K{fWa#%-wrDt z>DJGQI&ypuvxMh!h6er}&P6sOVhSh|=D2fK=u9q6AFlg=&v8HFvfd8kx20u80aw(z zTjDvGZza^gH>pBni*!|n66!YAaJTYuCKt-QFgvsYMEJ4?y`GvveCZVG~E;Q z)`+``V$r`P?Kcu^vq-j~l@{vwp9Qr_gR@97j)Y%ydrhd%E{HfE zr%8(vM$u|AD=J8fFIC5fv_8|vZyOWqaK~-yP3w4gXKePxUKjmnjzb#Q_b%75n0DI2 zj_|0vkTB}EdqqcpAB*j7huA;OL19~vIfSY(tZOHoD$RKvOzc^NIULv6=7QN?!1r1R zueEjSP@cPAu7@+>V{?~NpNJRQ=eKEUId*ZG>FnE*3eO>86>Pg%+}$`>jO}1@%Q{!b zp*$g~$ZU}I=!!b@+c$z<|131t6V$!p-JfR>XhbdR+y&B+oabq;MC_ zZs8rnD@=-oyevp0eL}r)(lxuyc(yFE*zwEIj`|p;_8wdI*MnaTbq1HP%Jtew3-tD# zP2_m)!UTdXYTv;k#M*@fLP+Q0iz~i%#)>)mciuTa;^@5nhHawP44wBQ)&CdALy?)N zD@3KTU76R2#FvWDvPbs1T-)W^n|rO4?UHM+Yv$f-C3|F-b?;o(qKaOg{;$_FGFAWiyl>&{n(^@R?bQ{Bw$a-IpjJkiaGy<`>R2JBExsb5 z^0VdyFY*iSuB?dUx^A2QNhVxDQH00t)|{IAkq{r1ur+`grn>IJrE?HhfcaflKZ!Hs z>U84RF+Qq@qpHGMl54qaN{7I@XR2@w4TAEQMMPBd+RxEej1`Nu2Y}O-d~E<|D8FVS zhZ^LD(mZ@;H2iHQeYbL@Ow(OwFC7C_e@*lD zIev?RF>Hf+(-F5FoiqLofAMP7++Avc@Tml}N!Jhqb>SmHUm$X+w8QB#`bbW~@1GsV zD`GCsao1H}k zW8YBT8l)yqqK=-EJcjmN(AJ_TK&`wHD^xpwbgX+HVW{)C1WqJFvmH~;t{-W@XCx? z@V}&|6VtVywF*xhZqE*euO^$;Ki|0OrQ`onFc!cQC8gL4<{1MLCUlFAtc-qaw+v>4 z>**1F{uhWVdcp&&idDpoIQ0X$`=BU=MP$9jEUaU#!#z_O?a-?5Z|GfX$AaH5%X=^M zoYkEZA=IV{Ffwl?DLJoVqfr4@;dsbS%vPU`gza1dj;>}j>nr} z0w>-PY#Zpo3BG~+JHjDs22t5fSM}rsyeYr0?HL0p3~!nLY_2peXLylJ$o**B4_dba z8u=Rs$Dz=H9WSE7HKcr)wi;tI3Ms~RfYWqVZ2q8WET|YvTG<+TaWmhvY%I|ZjlZsd zARKvWw@FpUYQh<`tDj=={tO*qB9tbUi_Nflf-x^>UZ26tPRo124TlOcdpW=*_3l}0 zMN4DH8exdzu|lmsiG5};Mnv__LW$W`EDG+nNb`t;KgNu3q*~}rK5&Lu(!U@(E3ZAL z3G~9i63FIQKaqlRE5aVt%mmc zLdB)0n=`SYPxPS@ywH$cdKH?$_6DMD$7epi^!qNsE{8LqK+m4)yJ0=+M(f@_jn+z~ zE$5aOMdp=(+O_|?BrPB)A?|kfiO9zCyecz9iwJ9bwXer{ZCI!k7X6}W?q-jgGWmv$ zI#f;0fy4V2efCSaHaD*9bZuKF^i>!D8rEU)23m#TIV* z9|5`)D>yS>p*NE2NW@Z<3upMnr=y|WTyz_CpQl^AVkob6XcUDlD!J3wu7zI|$|;vAzt#{qPALCCjIMegCA3h>a3fA0P?Gh4$` z>!O}%6_ZADKY!2Ot-h6akga|UPQsf7zHZ`|mElww-9yJs^%rnJM1n8KxJ7$bu$LSy znV8t@>@fk0?UssFw7~Yvf11qRUGT4n-+lLBoX;j%s4qA3LPf0nN(QVY3Ey&VB8Pop z43c8ELVEHxA6`u&V(?$pcNK?b8FzPAM3UPB?3y`fnv=>uCoOZiBamc8d%5d76XXw% zX;)t>&5EpT0S)0FM+GM}uE-YhyREK|4W%42^UDU44fs)VC z03os9euV0&5qVf=O_~LIodQnRjBE%0H(;^?ZAt~up_JA)&yX#oJ^eWl9&m`{?nTVH z02_3I&$kIn-K+um0;w9!FKV5DZgn^AMv8>`ImM>KDcfJuGi(>Hud>>tFvvX~!`JR16vMgXvk zXEaw$Q;!#J%hS9Vb136=(FIyvl};K+z|x_=XjE=mkD*!XzXWjU`WcHS(UqboukAP2 zzOxuA45YwTxn5BHpPlN{rk_KBMLr*9&TAL7MWj?VBkZNV<%XK58+l0mXW`gIC-QG| z!u+a<=Mq=t_Wim4mc?a1x!+0gFc59az%3Rw#G$VbZ6$#l;b-hPGF*&P#c_s6{2@`m zKm4sr8_!N!tND3QQ+%{@{K~{MY(hKL9qM$ksVS)?@y&0uw}M zKiLOii^)Or*5~3Zpetd)0<@KB|MnA@V*8Z?tU%8TXPoyj%NxusJq~D0 z%e6%P*;AX7-r9O*$dLzn%t6u&Gm0J4@9`9ZD66E0&AMOCvv;m?+U#zD1vEh!ZDVpRXq&R%iUfm4!^bL^*L20lH@OH{A;%O zS-o?;_S=4?Ik9mzuiO{X4W+ZmP-WWIc*HqMz^cEtso9?_Igc~$u#}mV;}1BZ>veNw z>Lq!TpH7xJw;N9us}7D1zFVNl(Mvx`deHfi7W!s%Y(^p5u#9U z^u@U8jw6`MR&w$i>&5W+*X-}A zTXZpz(X6Il;lko8ShUb*i{u(+p36%?B9z}-eAecE8$$m*KUoVPD)Dji#|W4uYWJ%0I#+f{)g7nHK3kxqOJ((kH{}MC-jJRM3j6LS>P;%F)UcEo9r}FsLu)k_jerep(zqSv-nrbxP z{9`qT+E2OI2znbK*O)0Sx!o@)Y}dKQWSeq(snR>5TJcobF%dInQnq_Ik8-+nvI3}s zh%R`)zm2OMXmD*<`LvNx@&kTT{~kHyD#Fk=WLAxOd5cmlUb-M&^qauI$EI9%|9#kJ z6s)d#3u~-}7s+6wNx)j$6dpRafnHvS?;Cb;`bjrBp8?|FI{Sm9U&8*oeIZ#Uy&k#t z^>U#nyztHbR8XyGoIOG&vg3c%W~Y7@Wy}X5Zb9rIBas@ZB948!s}2StfWP@Y`o9y$ z38tVl`%=M_S{%Nc1L$L!PEC^ww#mx_jojeSV4O(_SYen4L?n}6ghDNUH_z!TC^oC? zpI@Jg@K0GG-z5c#-1zBXzdNDb1YU2j<)$@*GMj45$Th!(qeD#p?2Oy9NRQE`^TI!X zj0XCWYx7e@Dl69X9kT^nI@C=c$*~$ZK)ziOg=YJB{s{Z&pu5 zPS@sfxaWd?EnWT2jwRWcPl%U^xzAr3%j^g-T6>33530*(Qa52vX-jUzpJ{Wvhq0;y zT`yo0AA7Tmx2T~yriXtWqv*)`;LL;6 zdN5+=-FA}*ovf@5Dw`!umeba-iW$5e9UG=4J>i4EBnPy9o1{`HoPET1-8q*49RP^y z9!7_R{9iA~G`Tw`EO)9-!+o0rp?BUkWNu7W* zL!{ZZ7VQ7G4T>!be)Eg;xEW0cwa1&wtO0pSztf|*j^(qhdnD-CsWYa~>FbN3(q=_p z+H6WlH!ZtxufERU9Q5oy$aEc4DDN5xQCot#GPDpbxSAs=!gS^-d%@sh<|#eN#`@Ap z-Yq^h*rv*Tm7t%&3I^{k3-rfq#ny;S&m6hwugZPyRh zZMC=7-AKi3sysKRwQ4@ORF@2wPJAkq)}#vk>}R5ijjwNI(++(i)_w}_)vP(QfYZ&& ze7zga^uEB5Nw9uvg7UYw>+kM_n%s$UFaJ}IvsKrG$E3|1647%$C;;6PzB94x z&}9~%YtXNC|HJ9V>wcPl>jL>1sF*DB({i)4#fOc+Pv2}{5#KURz4r~>IB&&4ILxPYWlvX)-fCM zbgW$UohsUxKuCu%j8?S{L2rdespIgj`^oo)VwBH7U8Tt=jc%%D*lDs`_71ReXjBuJFu=j~~aZA50VD!$hjR1A2ie$)-fqmoQ zhQMmRnAX0e{AO8Hh$ooc4p{T2c{I%RnX^k1hWcN+%IOKspEhZL|KvBB&*jSyc1n3h z8(A42AHTHGARN^gm-ftuW z5@L0Y<-@x6lN(zaqnrX`w{6D++e)58%!aM;Z!ozcf5pM18xv4Ye2JF3^!1#8Unipa z4HOrtLMTgZUVo^yd@tk)``qg)!EA)+My|KW=Ps!;zqYhJ1@hbvMGpzEx0T#C-=Md* z9z@;>u!i>8q$0ZV!#N7#`da?pezcbQUzKwE(n<`bnD>8Un2xxCgbPc8n7Ok4Wy9w& z6m9AtZ7KA>;p3%9)36!euM1OksM&iznx$r3H>o^^)GhyknxGwv0qJKc4r@${$cBo@ zV>OP&K!)#5qa8C=q&heyZD~Q~tGgbt7sd*mc4Zw2>_73)P;3VnLMIraQrnioxzqD& zD!7`<_mM*>Sy2@B`uB zncdR&DU>5B55VJ5;b5279!PYLW8BOKd^AVQqI6IAZ@@>9{zML~u<>He=xwYVLT?d- zSbolP`pur3j=GAn)~LvgYxHQw`k9MR#`7f7W#e{O*r7KodpsJH=EPq@Nxb;hlFLD_ zF9PKCoF2gX0nHjzT95`>o<6KFet&GJr1B#3GS+!!1bDEIaqjiU>BQ+OSU$HlKk z)p`-ZqDg+YtiO7%t_4Wo!Q=#y{EKfIu_Mbpq4}?fpA>N9Tpzv|q-Il!n6~R(xzAut zSkq4B#5lyONxBvO6BT!_wwXazJPt5;4gK(lDQkPoTKc=uz%BZxOeB88LGjg^EgYr} z6k$*`+aXK@Uv$s>mS5eruE`$xXwlw6QjW4B#7{qE-ieP!lArj{3%F?#@`pL$Oh5#odw=A5|n?b*L{@d$lrQf?+l7zuHh$ zN)_OKx>;`WyBbz7&cTMMz482bhrwexYnAfi>+Ki_IQ6`GOcD~w^fuvm$A@@7i=hSp z|L2xXs<2;@he~AQS_zIOop@fF(J*Fu`Xo^3ix^#uG;8M{thjHK4w)HmmY4Z$Y9C?&aXDcmFN01(6v-pG$_cITlCj@)q_*r8N)c= z=~j=VWjXaeM7+)A`IPowJYU}LsLC3R-LOU_M8L0hn+*sL@@!Ld&o_#ruv;ylv6#bH zam^YJLtR4&3!F~F87+4n|JglVzkE#t>Ful~Vg6(0Dpo*`7^AYCH)6E?thN<$_*|}J zi`m9C%$jC3SR!GXB*6hs={WALId@gQ4v<8j$k`FjU8Y)zoLA|g&QbnTp=8(Z4j0F*EDYJcUye&EOK^wgqDN}VPeT+9ek0UV#`tFR1T>eA3?jYw|q|8j{+yR zU!+vu3Foe=A&KTv(%M+wrMw!YBf|?d(^9=qC`fpx+W@?(TB%v|{^a^hwIQwP);(DZ z&yo%R6E2ha5Aqpur{7hse2G!EOh7g@&o6V8zU8t}$3v>bT4)bKDxG&vq5&Tsp8+6q zacH+z*t7hoUiXXCbMhkleB zQsVWg>SxW5Gh=Nk#`b{jn}k(kmZE}Wb>#dE*cp{wp%R_+%F)!Ms!zK4jgFYmEt)@p zA)T&g*XAqH<}6}uy~2eh9S8D3-CH#;n1YmF^+M_LV-$!r9+rGvY0(?iZPtdsl_=Ge zMQ1X9VcTvFaG<2(Ls;Fp<3J4Ku1jeKMRE5caB=r%3LYpx zp;uat2}%EsaSnh#j+GWE&fl-DiaZy7l(taYWVB-w zSOW-EGT1Secb1~GQwvT$+3WG`tA6aj#&Cf z?rY6?K5P@_e6HhkmE9Fx@urPf6##BygI)eF=d`plNoRPYUhbKQN~nD!&9z^IFwC~G zI#cUg9w>*ti|_tNsGNQB0N)MuATeJw>6GU<{dnl(tn59#rP0%g_&U>2N@qxGE{@^^ zYq94%?X)WoyU!n3swD{XCWMW9G$`s?49k%Yb83-cQ0W(+$0qC;ah2Byp)Yda-LTIN zF^ZwfxJ<*JQ0J3AHI=m#IJeiW0ZoGu%%vtk5sdw+GfLP-|L2~jjWe^`B-IMF1q&BZ ze^_ZAWQbPidCW7>{Dapy(ZjkX@~OLEAk~TTz1+h61Uo%NC)L0h6Myy5YY82ZHAdRS zs6eSG6=sfd@&<%>hgxVt3K|D0NTKgzSylzt*u4jMEZ7(k(Dj<54JA#xkF%=<2hUXb z!h%2Nf_c6)6$6`2hoKY3i}PHNERXUkWx+1KxmBrsBr3qJY=2sxN9}YWqYZPMS;%xq zA8}u$#^tLZJ>h}9F1!=AtZuPIBc)jsP*HJCgDZ+Jnj8t>PX$E%q4cQ4-T_GNO>!Tc ztDzNNd}eiwb>|1)ONVBW-`<{R9mF(P&uW6RcKIad$AK58>mtr32{*qFPxdhYI1=nB zU_CyBiM_^T0oCh%Z5r6+B~q&#GyW8qF)^VN8Ib(2SE^jJ&n(-7IkD-FT!EPoSYXMJ zIspm+M*X|w__40zGwDMiP0JB<(F`%+OJ!{6h}~36;87s$)I+wPf-yKWw?q&*pWeOF zD`a&;+?0Xg-aOak1mMMuTpYeR3yD6BiUDb~7mbHelS&3$hglBiLQ$4mR}-VUilAO& zmM}*so0|-8Xp>Wr#6$C!ExB;n8OxH7s{&q}b`rfPnXU9Sm1t)jq%g%+QK@?oY=k0PPaZ*QS)CRD)MropQY!nSl+xuBGe6P(;AQK z!i(Eme`@Eknpb;7<$y~K_+NZ3_^=RM4S~P837Wko&w3>`dOx|6e+NfC9)-hm-4+ps zA`(zfi@&@%oLZf+6}+p&?#u-9l$hCz#ng5s22SU6E8ADxp_G?<)0WPn?4M6t1UJ}w zDV+JTo?k@^uGDKz-)p}<{nq1u%{T$-=k54Uufy&~{%-Erw)O%EbP+<|1iUg*(Ljhs zGD-t$HewrpgL;FMU& zGrU-@>Q`^g`oj3p+(qp1UyM?Pu>!IuFWSc3cS~2eW`M(@hLZ50=OS7%^{;)r@m!I8 zqbu%>TSe6Z5uqH{x${??NaiA3n9#W0U;=k-%U#0c|9jb#n+dmW<|zd8it+lU67CS_ z>ULZlOKCD^{n6ez^EtPYq*U$%eI2edN2v?c^uF9wERX&2{aIxupc^LawU3^C=(xS? zA=9BM5vLr@t+Ua>d>L{}WQLc4<30P+$MGe2^MIQD$W#MSXeRWHlMAUq$L*lnLs&d- zYF}^?Hpe3Q+__gyIz@-5_ZUcB;dyX&J^fRFv+}SCwf;*i`{wtvB*IUtXVbQKuo2z+ z;_7a4u<}z}f@vMmZ$japPISzh{&%O-dP0x0No7*3)U=E!NVmTGo~>W{;z^G&=Rw4l zSgB1@PQesFLZZr9h@!MX>WsQB-YR$|S}iBC!Y(_jkRDbYYm8`xPmHGo55;%GgB!qp zU2b~hH-@j|NEe*K#@mpfTIiTHLfoaKTEzrpYRaqYNT)BxVrc*yxLIZN@kk^mBGk@f zudd?*(XBqbA$P*n`g4!@Nj+$##bk;20#Hdv4#)UsRF~1y!pzN0w)zAxEPFGoq)PWu zyAZQtRCMO+Uqdja#k#?#JfVzhuF&D!5S5QaZ-1L>92*-$i}@!TvD>Trb$50ZOj#Dp ziYcUNGt&Z&huJDGP)?Dw!j7Yx9sZY5{abmZB!IXN`QZ;W$oHC3Ww&*Kwhq&qBKq42 z9N3#C_~JU)?@{Z0pEG`x=7eZ6&93LiEnI#<*nWI9#dI1;=7L>gy3#_KLDK}=OJM{1HxF1IiZZrqm&Serzo*d%DA& z_j`;m2d=n1<~zK0UGL z^@%>U;3n$+O!(6UM8%KHy`ZK(@U^g-#er9R4cw_J`LbZA!7bZyZqsb}-id`-?4s!G zH>LFV32&PiWP(rO6|e`PQlob^HQ)#E(-+&kqj& zlJizOMQGDT?8tkXSrY=Y?nl;B>kx^#XA3ErI+7vodG`P@Y?2atiG{(*vKt&C=eCzV zh;-KVA@}vYq%>0Wn#|$pEdE3rH#3&5hyTP^xUL$h!wUQ7Gc~S1ZG1tU?(KBES6}5e zBvfXoUR5zz#WjY`kBIzT zKB1Jq3 z$q+LGijN9|*##AVVnba31S1ciu)X!5y9b&DJW}>A>FUPboxvJV=04}NxyveNUF2O( z>c(cMxN1=8JHm}f04k2ffwgyL6dGq#M{J<~p_?YM#>(e(&`{E;+gQQ*r$drm;nU~5 zN33b?>njmOGA_Bj3(B|<|7-2PH@BT6Q>9Q%SMJYG54Eo0H@+(3tE^xjwvgvFDSAkEiLnJmVTYExAS5bLo9mO8=DO}N<2bUT z$Cj!mrd;WUES_+>)<2)!f!aNw?!ZyXJ)^F7I)|C7MuOfK*)qR9AOuc2cqR@vreWKK z(spYvNqHUey2@n1>;Mj5l6eH`lOqhhEW{XSNEnLt&ug!mqlY>`epRvH;t93rY#s}$ z+DC=t13B&tIcGmO+o1S}JR@$GBu)%@U9)effbNb|wyG*b`(Dv5A226E+cJbxtc(Bd zkv?6)ThxX0WSm_SSMNNDOE(K-#S8Gb09$;BW|a^yZ)K5tv_Z0bQh+p&I(x&E5LA+u zk3bhcWiw7$gy+6~6e|3^;WK3X8=rGoN0osrdhy*NG%%f~M|9oy3F2^iT-^&bXdoT< zu147&Os*r=?6{|dv}w~3QBFXXdTVa53?6n&J^WyJ?rs*$X6jzu6W0WXPh~@$;x9|~ zocp9D{CGr<^cK9lL4o)=wGP_(jY+{;@C;^VYUo28DM2HBs$9HuH+zTD$4t2jpIso2Bozp5EM82vi^s6L?;ulJ z;w%#2D+VeLF<;B{U3!9?+>1sMRNJKlKJ>B#k%MdVasU~f-*fv^{5uuV&hJ6E;0($V z^7F1RE|9n@j)atleW1It5nd>P#Q78*Czn)?m!ka%Yy;nlY%4$h9R|~jJ+7$B;WwzL zuuMQV&VGo8WQ;{0`eqldYl3q$Nyifsya{6-TYfnSFpy1|p224nD$2u!ywC1oOEE!r z*j-4V0znH&3_nii6IXOWTc39(y!<8>s^#%zbRZic~fa+7A9lF@spbJ7S znMw;75L#itZ22P4n)N|`Fc}-6w}8RE)w2Ch#cz77SQ3j8PP!Omp$1h&Jwj_cwUu^A zj`po6jAH2lp}Pq^qpNq2GWSPdEFzE8sU+ZFZE8v}rYB{#r5d@iP+ZLM$i6 zpL~MCEaM*E;pu%7WG!Sbm$qH}H!U05Drbk!F6k|+Z5;DbT@7mV7O^;4R32ctjZYO> zj<8b5B?h4c9UiaNWg?*i6{giI%9>T(x}tMkKLi#Uwz#mD50?E75j}>qHYhRfDyyVEKmNB8 zFEtXFlULuklZX6nx5(EoP^VUVE29vy`h}e6zR%Db#= z%-gDDw?S8LzDpr86TSP~(Wvliy_~&n=yMY#{rb*wjkF6~=r=zpuc_)f+l<6U(kraN z_F&Y+w$+8reBl)Kc3)rOzLtoG1d+D#2I{1jqgTUk@#AI1r`WdFJc}R(gJ+YRSvDpW z&jNB;Y!6a9i`B0HIEK}w^3y_J* zCrL4+h1eTE6tYFtB6MGPm{wRF{Zh8T$h=%Mef3Q%E^$H!UK90!Or)`dTr)4LrivxS z#z$ydd>Yffb3bX2r$+EH0(B~9H5G%-o-Nco3zZ@2*PVa&1_u+Py%O^7xfz6*0KrN? zgNa?tXIAGc=`Xuz`~o(I`thRX|5$cvAYr@Tzf+IZaFBgS_E_2~qvh!%fjjw+`VSYA zeIj4}?SMFoAHSr_1qhE3sj)jp5JV9oY^rBb3o{Bo4xB!4(gxaf&i;s&Hwu6D*NmQ z&C&XBm*D&#tu#MJNb$>3Q!(I34tTeIWskS8Y8tAp#qGqvM6vqnkd{1Grl%#%13*pt zm8tj868}06rR<}Bke0b%nmguds8CcNzN;y&JcR7gdq4Rd@C@8wp`R^I*q?H`TyZVJ z3wBWt3_Mwxeu#LwrsJfj*r1ZqwhL3>IOayj=vrZF<(-Mt^8PC+(y`aD8SVq2z)dhk zF=4@zZZ1F>MlKCvSCXB=c96YMi(N7e@P77-$g8g%y0J=A%WkT+{Ps?_%1<_HIqKDUL~)yD*eM5{|sN;ljdER1oq)bNUJX7ptK zX#elUx>r`R2nkWX1AvB0s904WCMz#zb7}c_7t$F%Qidq&us$DadsXmZcq42xx+JYf z6;?2ExiO}ja!j~6iWO(^teOtBmi|Gw&~Bv;a;aXV5N936>griQCaI9e=vR645WsyY za`5!1E+)5n8ch11e3O-ZoT31C>AijX2MRh6w1B=1Ys^xpVZCDZNvSgCwg}|BwDki) zAOR2*d(W#0-2ieT{)H60Wjc!7Jet^7vp$@HQeVkPn$9*I&(io;Z7fb$kfpL zfac6u%;HBAS@iWJXPb9%+J+D9V5G$n1@tF&<|7*|J5xy71B*>!EaIzW)MhjThsW2N ztz-!omH)YWb6z4LJqJr`U8tQme(4{&Jm9uy_DsOH)#rJcXe%z2v(!B76#GVl3Xxpp4pgP#?d_}^nXa~Q6sqn`NmY45JLeob z{>JpBTB35k)wriR6P$5KPV z``@~B2~`E|PPJqwConT*rG*j))%WMwiNS`$1GW{g@f=GE*47|&&q_Lzj84K|b+6sN_$wfP=IK(=#%lECIzspKh1bq$h8;Y~B$8udF1< zf2{aMXP-Q#OsM?Vz9S zy6A+nWoWpIQA*}DWI2*ur;39RyT7>rAKm9FV%}f_`*YX?)~i26 zyHyN|Sf0fXDwNqcf8~Df;_2!iezqB-*km2J5Z&rw!ni2>J3k@q*=!LKt3FZkosNO| z^VU(uzbg0F4|oIW&=}IXorp)0~GQ_MTINEd-PEZlK<(_HP%}Tp0n3Ks>!V(*PHj} zEZQo|TkPN`jL>aGFo+PgYDQuhk7TWbR_UX$-P&0e@1ao=Dxf(VCv&kIFZO;@t1p>^ zG;DH^EX3Nkh4qi4EKJbM_hPD&eT20~bB;VBEb^_F!mU*;Z!AH<%dV5&g|m-b`2KSe zoo~I@n#Ey@7=|+1e?(Vw3rD$BH19h_E0_rReE)gXRJ?VVAq_841Kk$qi$$&SVU$dR z*OOzRbKPydy;>3;EBw@sr^mh!U1QCH@VZMn%F_+CO|y&v5C^!)ec=3r4gODQ|A~;p z!${iHOHTt$?gQ|~BL*GG=A=K2wcWR#3_yGg|K#R^HyWWsn~LnXvzc!7S5XeL55t1G zYmoq>G02h6eOErgqmBrj-hT7q zAP9@2LMQ-+XB!!Ta4D8j_X|@+x!_Uq4h|)5uH(G##8&&H(Bh?&zWe*7ggz(tAD#s9 z?($35L-3Bh3mjSynU>_XY$>6C{dwixVNaUeb72B)Zuv}*Ii;ovVbx~v2j~K(5zN#= zzPxX&dkAL{$(Xd}%}dk%{K7S7GX%~tcCz%p+n}fOSSLoWf%g{U zEA3m2yCP5-LqclRxF*C5&+fhZ^t4^6t@WG5{tfe6Paon@Nvwg)EisF?+K_c&U`Ov# zh%~8WObzJuw%d90i*H-r@tR~K%%;B%&Q?9Uk+MH+Af&^hgbt6WB{I))wP0k|{Ve)t znz6qh9Cl&uDQ^Y>(?hL?zvk{!J?nB+MOSXAQ&z@xG{ES=<6MM852~BhE62u|$-4j< zZSZ-FuWPotTlvn?bY_xgSAD%tpn%fFb~i*fbX9FkXxLtlwKlo?Pz{$y;$?Aj3JXTc zr)%oDP!a_S5xzzrnNmDhIpsPdZ29ZjUX^}2Yd&j_z+Y6I@hs*4s`WSNwC!6p&o`qW zzX?35UsZ6Q&Jl<&ORTdUVLAgm(L$T_1p8N>H02(hD-D$51R_!V9|?ZxH zVBbX?njvhpu%4{2;1gJD0#^@7MDTx72VAa-GtzC{f;&*+gwL?ha3k*F@`c&^*~PTJ z0zR1kGN*7Oy)x_>&huNGu$X`8PZ9An;}<^V#zN8jZzzo~fPUU!iOdF-Qsvrp86k-p*F97_!S>l%`*MPAK^uzRsS~|Zq_77rbUAug zJvUlCY+cGtotgI=Z5oF*;yEO4XH^7C{bR}H^Z_XfZ2hjP;Pr01r<7-(m%Z5y{*v2` zjR6iSKGHUSM~9J4KdHGJ~DK;%xXT63KOH8=udE??a2i1AlsY=-VRmUM^~ zDm`eizhC*{;t}O6v*y>z8#!2J=UOosXxSW4_=d_T82KCkd9ktz=wNC$UT9Ek&x|ag z)V1Wa9q2n2n_GM*gjt_>a_Du;c1wU}y-U+P^_E7tU>%UQ0VBcxwT8dcxzvh)EBb?4 zM19@xpaG+zxPt7|57_n< z-~BRpz|DzA!UI~Po!cLktl))n>0 zaqe`1`XZ-6R1Xf9ovvU^atJxs{O*!nYIf}B4Y2>rOTgyf1=(MyC*Qj4Tb@&IXYsn< zy#8R_>;Z`(wA%IC1UjByc3&vcBS+z`$QJ_jeBnIk*mT)VqZ3BKJ_antgILf*{j;tp1PTabu9c_8LoD zo+sf$6RX!+SovMI!agev>9~A(>tma7^zO!7sGCHiMo_N$Fz9!R`)-?S(;wxZu($nk zYhetJwd;i?gZHpJ%NflaTIL~()5vhvI_BgLk+dtKo_Ozq_J5atuXUOy$cF0Hb;J}s zTxC>g?apYax5}RW;I_DI?6}nb(fRC0W%3Buj%Ls6T1uN6L)(I?L; z>O*YZarGukKPxyOQO!E9v}|a)Z^n{$B}uIj=a`SPYxIA=Kn%+ZZm%}9(s}IrK z#wT{a1h%P+847i6r+>+e9FEp!ltlQvH3V z8jJ4r-Cz63grsM3iwqsN7oZuMub5J~lUO}nbMDyCOS#yi}xx@i(g|&t8DleAkl%%Hmi3 zS_3vjr54bAO~ImVt=||uhCy9FW7{tte14(+euLmoxe^RMx3*PgQ!OkreQX;_!$tDT zV)B7w#oli)%(cUCKHHqxS1&~ugET_g94Dze!7J9!$X7)etwYY_Tx+L>-q-*_BD-xZuGU=+ zm!#azE&5;XkKL;%^H;g+U%& z>jZyV;CYCX8+%&ZAHaS3-A$$;A4PNeLgRlQ%`x%cR&H_b(U+ZhXQk&D%oAdLzpE5UQx$X|1!8-4DX04zEa^yo%_pHMu_!>sOBr9}h>IzSe!T%CA^v-OvswB7 z6rGDdQ;+}0l~Qg~sY#+jlKXwkElC%`w@*d6?n9}c-`{Y~<9%M|^?tuzPqBNxIYI-C8n)9@hPxMTeQT;U=>k}|URdb7BK$Gv z`N<=-^EY;HW6zO>{19?jF9EFBVVr{(bnZ&^XP-(QKR0~5!XBClyw2~*kZf3ldMChCv_LI7*-W-|lsuqWhy;#wr3e+>~oyYK7#5;{N}b>{mHywkvCFjoWisb|4Sa;XQdT4wesDnz ztDNg%_*CVFb8;2+o#5vjzrJvrms$40IE;% z8o+$AuYbxsJfIPtiKQ0|3E2DN2KG^0(yapRmTLWXFS~p8?WqpgTPe#28+^;t{&E2F ztw9KMs;ESjM{D!RW&ye_-a8`Sx5d5^j!~1m(J6{HDLLaGQm)Jg)zsf75*U-LZ{|;W zXN}|E4gQF-)JnkQCnc_?^aL2apT5+MLVXB9+n?Vb2*=GmSI;3~8lY!iOFwl5)|czo zcn@69RTe9bTV5<{61K$_o&`{Qjse4<{(BR#N(mtWDKH)^6PxvxPa|yTVEDE;Nj_+Y z6I2!CG14-ZyZ7W(&2Yaxn}6UY;2W$WP!C*p(@!&DxL!Hc1(JPnREAIwPd)Udhu+gv zSxi?Y`a3ja0EkAy|76RA11@azW*Vh|1{+F!@UUK2wY>1=dBD-5MNx$CnK-2|R}8-qY~Wm-ahkW1fRe{DMEvxG26B=9aG zdrEW`7z*|Av3QesiEv({_xO?q%tihQ*VCH850mSmd<(KxcM?A^itHfLh&7jFXB+(R za+0x;pB$6-M$7(;lp8ggvz)xhb5BQ@_ap2Zj8lkFvHLBAn<#tdMYT?)ZZy8>F>on{?sCDXsOx*DUgw4G(GxA&&A%4#j+D?PTle91vHA|5Q2}I}jaYOIlaUfk znEDe|>D{Zk-;(69{x*wfhg_REnX`9KV%HK%$>CqP+`TWM{!E8>j|43ZzI@dntB?iX zE3uw4izVj=(-4*Os6APRkI3jxc>La_^7RhDO6iq>5=kQXR342OK{3$O7SCD%YUgyR zf8Lz$&@hcsvUiVH*!SI&0~`@__0e=|eccuQ3g&CgQ&R!Q8mB`~k+gk>1suMeq5`UI zN;~H^r2N_g{<6Yabd-}id#&Oy4$oB*%Y3LW+-jXBgvm-U&imQ2rp28G!H)lvLu-jN zte!GsA;1FE&2NeDX6of%;0ht>g-+NWd{9G1rWW$Cxw33)w4y$;{SfD0*eq+MVIy+Q zt~gJoItn_m@0Rcwan;AEmn)oEx|8rQ^8#t&(+H`7ZlKBIITb`^+-4_$+tvE(eLqZ1 z7AjXQr?6WFZHU_yvo)3hP5rmx?m1VG&jaCS{4rPonQ|xi+3f03<8a=sv&$x|?*i+J z);ES9?rQH`dI8ej%ynbjRI)kN(UBSoP2xJ==Gm26zG&FiB!V^zC}vUQp~g!O3tO&l zbOLe6t}v_hbfXdd`;@P_VY))9U_e5=~T%VE<03xY-AfE9s?({F|u+v-?4{Utc+-DK>E^8=N6;e!v{HD3?SR z443K~91S97)u7{kF6E%^PW#5q>WCx1txC++Xm^x>>{Q+SoK)7UY{T&O-ShdZ?+7gD zb&X%j|M)C?vEmYf%hRCK%{5A+5IO$@!knq`!M54vn3fHBvgmKw5BzT2YDBw zLn@c47hm*9(1kL7L*8}}IRb)<9G7L~z#A9qN|4SvrBoaIHzg4Rhrt=%5AhUr%w^&#L^+%F&+};TP1X-V?X^&r46X1V`OlNgNE?n2W3<+@HoTm%5E3xtyUF?k*gI zpfyTz`}1%K#^$mm@#*5^wadn(L#E->>_*CuW-C3*lS_~xKWX8fna%8T)v(nEPpF>& zzetyFjm{q9v1d5QyCdtfRMs>vca!?Gcb8@X!DnR3w~*`6?Bz=p$BegZ|0B^odnfL? zmkh>2tl-~(DQYF7wtNZZ&Q7Uhe9yAnc_)T3N!W2hqXwbZWpW7|hSk;Oh0T1}zpU1D zhUk$#VVA*t7a$*USU3Lfm?-j-N7rI{DEc)|0QJ2M1%6s%5Vuzh+LN`+2+@whl#Ezr zZpIdPFye}Xy>FS^4*boFS(Q#qa}LHpF{aqrsw3zfxP;!;R(UXG6~ z^sOYGt+7k^qwwb0r%HY{2Cw#v|{yGy6LkWeN zUij+jIiOu0P7i)`N3g~07>uBPl0Is1M3X?)ZPkrdpju!V!h6iM?rrx=UHI(vTI?OJ z#)y0Sm2ZcQ(&DRtEA#bik)*MR8{Z|R!I$CaHp_;}(-KeX#DRDL){NLl*3l?M!>x+^ zASAyofd50&{QyijG@Qwamy%91Hoe+DsJep{u26GJyBB!|5pAW-FBAM^Ow_QKkln+{ z8CxTqISjgZQl59@=f+66Jc}x$r$nutMERRA`Bwha$4gUemPQD}$*E1~lk}ekabM+K z0!HwvJx|4{vnQ*rv$9BBhNkber29Ioe3=P^YOjiZ7JW!Ea7EY-EH)Dvp_^mx6&P$< z0v-@Y4`_@_)2*kw@BfqNoA%=l#F70^g7$p|=*KQ2UR@sTljW(E;qJ@vO)#3TfOc3< zTa0i`0W^IU{@=p#E=RKjFl=_j$1?D#UrY%4C%zT)8btOnJlH^pR%1jO>>4pD4RSfH zHxtj-d;EGC{}AU{dlmpoLpyA9zsO32&8`@8@Z43ZPn2NR<#9kJ4#7XNX8&4jn^trNo$$Ke@nLeeo2VEO+ttKzw)rK`AY*ResdEN2WbHiWQ`fz~#55f|Z z0t^4|(+&fE3Ohx7-r<197lbfV=9E2bm(=+v^dT`$s zY4HkAdDecc8WEFSslWl%Y|^Ogun>PYA6}U1m>xr_t?yZ&uAd4OdgDQvQt0G80cTdJ zm5`0Q47-%B0G{DzeSY8bS>!pcY=ED%EFZdC3?Y@gl?bjy4}Q(+c^2cAyAw>o z8F*gZL#YZ<265Uj=fPmA%WZ;8O*IL?|J!%OU#yfoQ&%VwO@PO)*JW;B|5G3RQ1TPr zQINFmF=kpESVc^^tq4~><#65ui^Lk0;%p{(@$nxU3F$At9;KvrF}<&Vnr(LCYO&P_ zVxCCS)N2~W9Uc#9vXwr&vL1QDZ52J@L-Vv{ARsZ_*XIMs(`X zULx=ERiLFds2LfkUezahZsXI>=_{4K$esY}hCxRciJUjp^q^lY_v|UzSUCr#T4hLu zkd&iyIm`NyX@8Hg?HG2P_mI0g{r8t)r)9g1vsbH;6GQ*B@4aQ;gk2-iV(+?FjuFPS zKr?bb3j|2nf8?p_ zxN!93k&RyPY;EL(dPkWUcCVEZoi5X+N=y{L+pd{=l0(bME}XaTJP(w z3sV3=VIHZ5O-1;Uu-}W z3xXtKfrcZzo5|*~KTEJ{9HbK=vfMvI+Mg8&AHRUsN)vuHa}D_OjnXzN`gvn1>nsRz zf183_cm}6T?Q^QyCY>#>FMA-K>s*$!mA2&(46*}T*33%~;pVz=djUz8WD6>y(q$XE zvl&4f^M?Q6TO-cNQMIIxAJ;A8-u($W*~7R^H>jh&Si7G6d{&F6urt(fJ0EokamLA; zm3{|nP|8sF39CRVH?di0?OTg{Tel`-s{lKk<^;mbOzGjk?nJV~RYMveBv|2=h-e3+ zu0hlW-xlnN{?e(R>cx~d@b$y2H?@gk@j5dz)#S~N67%+pCm-lh2X5F#A6OnyY_v#qQv zWd7G_(NF?uYB>*=bG8DR5R?DHNA=@d_palXcdd{D&TiKs8H6%Kv06vt?k!^bC9#lrKWeM+J;VsLQL)oTSbHcPd*frhE$#hIefQ$K z*mX?F=DT&JWbh6q3(Jh5gUAv4&A9d_o+c##MKl^X^;zuba3J@$hho35{PlwgV>rck zu9Y*r(gPe49f1|>b35|&CuUwMME4lq91yZUUoG?5HLoPphMcKF1##)Q`}ETzwEIU;=MrJ znpV4=u^$Dv5xBg3$~4oZ$(URr+nyXX)HkzggQ}xH5u5Q`_Tn|(9@2e2`Hc#k&>(>Q zM_N47RUYp*r0RUsS{qp|>w{mh;qG@yht(V184Ao$AQmi0#qG4Z`erna7`!>o3mB_x zX~2dM$@{4xT%^jU3X!@NB6Fr)EsEVo1I1HLeC=FEmrMg?S7$}rz@kLdU%_Qc%8vHU zfpeLdS~@LMW4CkNHXTe6>+*1Df$Be=`W-kx*RWJ=yknZ5Y!JCJq4@Wr+(O2wh=}MG^yDiYNzhX z5;WlMwG)n{O6BrXMz!Mc)twXtO5+o@n&`d(puen{D&D3&>68tKSL_kM+Y|EZbVt$8 z#5JXEqgW&?Ld>%g)XdV^M9n`=*@sW?xgGk(eNt%_oeFgjIV$|1|8)8XRA=gj)AIJb zLM=B8u&;ahsmQ6KmN2>US@4Cc>S%Q0CG{!0;;6m3S081|@;4g2YfBd5Tl}lRp4!xe z0X1u-mv>ghq^T}*_?3BwbM-KDpc@ycd)Xq$XGzm|)u$I2t{pbZ9?Sc#DfIdGUG4}t z$Z<+<)S8tJyLT7m{tob$H6t!B!8y+WYO-0)2zZ3}1Tq_?9tRK&p&<0e@yc-F1?BP!l1@J=%c>|O*!Cg>LsBE{1cKRq3vcGw@KxbSG(8*t@jNp!B^zZ=EObnAg1Haf-A^Y7 zQP(F`A`OariaNFUU+<gHO;E9EGzI#Yp`#&q%fUNvQZ%mn{i&)ul%%sAh!(j= z*MzH(JDlsb=dvp^9V--p@$L{K4zRZ_e<0{Z-`%WLh(Ymy>e-W{2;86vU(l4VjmtQ` z=EGkKYyKn&V@DCwB^Gp?mv)W9K5o6Y)E&!OpNF7|*6}_LwDr#H6oI`DS$~6$cOz|d zn_y0fx)Rbwc86<%Rr;x$7&4+a`uvK?jy7AVA6(-s>3@GzPC3)L2JS40&Qi!$M`!>)(=9;B)57X?Zj+({oeSuV?||Y5co?8g3L) zRT?tFYk0ej*O-`&%C;=r_eoy*F5mIiqu zGlgzbBKAN`5AsOf)m)xF(AybDKCKra-P93iGibnC?&5>72lxJ{WMbh(#My_bQ1>c` zKwO>1-S3wPgE12E%t@nokc52E!HD|E1@2lj}wSc$fNaDY2M9sCf3RvMvP>jv;hJ zb#UYI?;UA_Jn(j!J~P66fLGZYt>wzg`EIK?jGeX*sIuS2K&A?gE)k;Uwh`Bwc;b&) zL&b5&SNbJRiUPczeBxyFy2R(@kqiF=_Kt`VS{Bc8@KG_Ig=m3}d1E1y-cf+8BBQ7D z&WuVB?DtW?*y__(|FIB+*n@X88@XUK)*#hu^!WlHYv6f#pi5!JQ`}nRU-79WtgTHE z`J7ExcjGYGLs~+m3L|vQY=sS!S91FeMHa=a(q!Q4@sv0S!hl1NS;Bl;EuAxp)w3fr zHuZ5#&&R#f0W{%XC{{k|ejko^c&z_u709yA=)~{`|F9RGkj?9KoKxL63($Qhl4!`3 z@h^CtlEP0xZCHYs{r7basGhIT)GNs1O38M+oUgE3F~LyDm_jbf)+|)0!UJ4wk8xk} z>5AR<{;Yqh2$(z}(_2m+Pq^ckSgl%GQ2N|;o-vBjvP)mEA%P0){ATe+7*dO)Nin~Y zFO~lHl;=|T{dhA5+Va&t?cuTvZj!I~BC|4an95-1o7Fs^e=;AfCKvoGVl8>cGq-K` z%@ll7Uh%CO^qM<$e*v`NP#Uz%1&bR+h#lUmP3NCHl!I*?1IC`J9%H9Hfe8jKh}|hEHA^JDbM-dI8e&elO(&eiAZ+8 zoUja@!gt!nlee-=h#PDd(Ie;O9tNPYUeh*F^^LVEU*P-#JI^%gu<6Miy8;)O#~ZdP zeNz6|Vtt)cIKcHW7DI@!tk%yK$P0R(9fpzXzjh;3ZKf;?Q|T1QZ+39r z1<#9+p>CKKu^PjAQo@N29LHRt|7ZIPqG%a=-EBneF5$5K z9M~|r251rNGU7+`xH2jD&&9j@U_JRL$h!5COmfi3BPFNzw~yt-PYRk8f8t&|hJUNE z-}o8SY8E^{!yl_XP+zsgYby(E4XUj;vlpk2P55|BpIbIL3%jn{)IuEZ&3^X6*w9mE zx+?tC+rg=VINs&7O_7G9skWQW?A=^JwS*UU0c<5`uJnv{i%E^kAFLG#weFg`Vvz>_5$gv|0Kpt zH8Mtl5d{!S^Ox!rIYv1c+NmUGFsHA8&mL4u?f}v4K9e?@iZfbqG^3{J!fbC^+@km~ zwmFYRP#x-+LN8c^4VTFwE60D<9)3;D6g)8^ZwH{_aO=7x2^JMaxj3c7E#c6=eA#l8YUqrf$DH8tT)!oNQa=;`;~ z9T)|m8Mo1ro9l}yF}OgKeTXtM@7_ezHTVwW;^=hkxMKK_#R>>3~2Xb^87oR;R!yj`Bo zCIVeuSu>y3<+1f2Gu_gH;(817x%DFR&-Ur0OOz!>(7!mlf>%VV2JC@(*jkRq^TDGrMWKix3ri@zB74v<3dk8XM`-|N7@LcqU(_rj|4?H)g4SvERN}h z>VTl>=t(~r|B`qIz!nw#^gy|L<36`WvX6A5TE~-mp~E_WY1&b!Z8$*f3i;dpzj$Mzc#*o0Fv~geG*Z9E$uoRfTk&7-YsGUz?E=~Jc&4_+|CsNb6cLjR4 z*7zD@@7wK#K4;FD;75XVx8t>Pv*NFJ1!LcXv?sGa8$0b6zCGQFGsaW}v#6WJ|u`?4gFKeSFL%I^zSaRnrVIQB&uZbsf@Lx>@l>b_d znGJc<97W0p;P!Eb}Kb_=51wlq-M!r_*1({+|{CSR{wr=jU)UH<%JkU+bt z%6o!0vTHkFg3r;%`y1S1O^||N8m$zK{+FVd6pXi=`Q-0?&H6(7{?+;(I}Oy?WaE5Z zyz%Jd&@!KEYu1>McGPR9KJ%$(hcvLg8oWlZoy;zVNrj>vq08J{;TrJSEm{IC0ks^K zx?J;R^-{UVWOCK4??{EdTp5;d`UHzQC<-X(%*f{b6_yhcfa_N)XthaG`-V41h(ZED z(>d(ixaz1lEvW|OK<#%+k7Qc+Pp!r|NDh$x=cY2hz+t~N|DMXRXPfJzX-bP`wydzT zv2S3xL)q6ND!H#+4vSI4GER{G~$gL~*|9ZS#3M+g7n zKdG@xFfB6rrp6QvvB_Y7t5X{@{Z>el{Y!u2^oK>4>2EX6JrKN>=15j5V?VIHYsnzA zI=fCJrN264kJHX>pSv8)+=ig4Qi_udno0`05GC#nOPUuCl;IgC_wgiTcsz^pd0qTg z4`*AGySHC;W(CxSbUZzXx|kx_?Ov(#O4`Py#viMZD1)^#tY5aGrod(qlydfA&oNb) z%}kaXWaa@N+J1xDDIQ4O9glW1*f&P~|8R!>(ukmiO3wuJ9^^@{B?aQ3id8<@zm;+$ z>Vn6CMSE0MlK%3sRKUxY*u~5Rog>OhNXk#J9ufS?D55&>>Trr>;-p zM@;6Yh5zBq&DLUBH2PLR(L(eI0fHphw(m>JlC%7^D0rvIo_1e8Z-@PFEb`HKg8X0R z2vrq1C%t!j$m?c6K1G9^5BnpP7dl9^DgFQzDH#6vcmL4)gQ_+m@`DuDHT$H$h(ijo zv?5a!(Ii<{b8xt*6o1D~9V)eva%yz~cZ!5l&;5tP@_H^A=MD-4omU$M(zNRfQaEC_ z+1=T#4ikVOLq9B&n7NkYtYFfMUeRis>wyV;iaCthBW=kc@S{zQa5suc)TIGmdKC{48-Icj-T>itS7e~`G!g|?7YJ}|I>i`cR?Zs{^(R~ zBD~IpstlyDzy9@Fln_nvVXUGP6Y?# zO7LGG9#Y`(=$cH&6?2uP08X=}S?GgI`?Y+qVq^tnrP&2dD7rOdZ zot@5Qae5{rx8W>W(BNmWTKDpRa}DqNUUuS_O(>12*x(Y_5Q3J*J`f{ycBc{CnUmZwemlm~+rqpOg@4Iy5h*HW>$qzVJ&jb+ZH%fhCr_$7gA z;cEz-S*#G{-VV|!G9wd1qu0Hbd^U_;`Jx_a=xHN?n!G!6;cO_MhYS44r{*u`F7Nhr zj1;2n%L|g?jHX*!?@87T3g-+%CvKYj-A+ipD5j%F&OfA%%%R@?3RXC^O4Yxz0@q2CTr@9tCK-~Jui z5nDc2@_HbB*aKMJa{siUAI+RK(nuQd>!SU+K17kJb%gNFL^xAsAb(vCuw-Q*O+2Ei z5Pp{x5;4f^vv+HxuP=Ihs$j*aq$SJ24IJVl9hq+D(@ISJ09cxM_z*4*quU;EA^046 z@*5DAHP!Pay}UBEeNrly6ibt3jC3I5Z(x15H9-v@&t;yryX|}ix)dg)nCF-Dci_xY zr~vW_&5MRkgB#!b@^gi+ZWdX#^ONl(9jSNp>S%_10Aa{cV<9QFLCpBoXQd~J`V1hBdx7B zE!mX`SR8grsU<6*wUco`vC<~CjcKd_e$=gqN%>6?j#7JL*x4(8X zx;htpPDe6Sl!f@!6g(kJXpDGQwnqW#Ru+1;st#pX2Nhc$F7B=(tI2FE>#z^&DRG?) zgnUKS*PMmTZz*QIXQ$?!ia0$Np_kTS6UZF7p4WR8=jTgLoJy}80mru$<1;v3P?98- zd#w)W=Jj)CbJZgPYsFfRg1cq`7Dq&*43#rehGJFcLZt7F{R#q7*3Vrk?ONZOdfxP> zfsP5U^71pfnXVXQU@GftiHfg0fvmpFJzEhD*HX88^}2MYRac;8v&^SU+pPCEEUyS_ zJF8h!dPXTxo(6lKGTr7c_F|E2NTP53gauEpSAz?V0^09nEBTI9$;e$#6Xv%59%c|O z*hBMaI&VI<+zBC$CnYue7oX-Q%m%_g^KQi^a+U8)DdyZe#e|;KxiL^hGF+*|7E`_3 zg|squ=lJupB$K!@6~u2jb{>0r1H+ApjW+D$<+R*BEy7?p&DU+tHn4Gj&_~FINnMp~ zg@vOLSJfIY=3-DzUFBzL)N@GE^@$H4W68qmM&9Z{j-Gs@rq{J zn^hhw}Lr zZMp zt*j1*=P>;Y?qUzjl9+%;aSs&4t4P=ki-BCl)JAU;s?S?33ML3q~`pS1~^vLkzc<3gzkzA_Fvo(>gt5uZ2)(1X(9-y1LB0Vye z_p_WsOY1ES8znIh6)Uh&?8vL4eoJ??G;Um;kNFmwl8DHzUQV$VjOalEhOhnDZn686 z?=Mh^U^tn`9fW=a*ladEPd0uxtvf;emC;tXsp4DMA_TJxQG8@lL653LKFA61Gyx@a zWpS2U1MRbmbLA|-tf|j}6+J&}O{egu&t%AoH(?OM-NwNonNvY42&hGNb=V)@{|xFg z9u?&MB-W)FrKl~F*fiIej3<1;86}@@X`F-#SeOb^khoSyj+Mi2EcV8VMiFiKNLV2O zJ$GCNH`sv)d= z>F?pl?F6bIW%IuV$cndlZ51F#7yd!5yjmO7=J-ZNiSJeu_o^*eS|UA@PiuIWek=nZ zR@%983W@oo07@HeM!u%aAwN|pu5=<=aMOKv&1`4}e8P-T)8exJ>HmE?d{2ho5A0}M zsXD02Mw7nJ6Xn!n=a(F!3P4>GFRLm$jgBw^&4QY-idW&QdEDKP>-L^a+BBV3qHY2L z8Y5^AkKPVxILO&I%^83XqXfE!%$!YMGhkPfiQlqEghO;x%3}jr>cy*P-4WA|!-l-5 zT>5~3x=$+wC4-F8 z+8PY?8e~oZOs}qetK{4KIc4RWEih6kP^r+&UO%n!TpZ|8y^3Tu=Tc(Bp{L_p3n%e~ ziM^@{6chwoiwzQrk*vi=34`du%EtIPpK9cjLMwjRazUFx{HMmCMGc&73he3J^cu1J zfa*53K0guKM@{#J47&Ur!8DZ>R$tlpu2E~_Km|Dk&@ja*TQRG8t?qCdlMboQq{zHT0E!W_%Y0;+0l2y0%pD)s#KcJG=P( zNw~~sn_s;9`C2j}*~{`Vw(ET@2K2Hj-2B(X`I=+OnRA^|sNwDVfSZf)nX~w%<9S|h zWuNNGR~TU?C7WbG)83#jP5XMw!0(&`kz)Y7l?BQaVRtg-Z)}QZ=*al4uh+_6?;dOg(V%|gD;PCgOZGFTbeP?q)x4Yj5UbsWKl2+B=8S>v*%o$4- z)t8|wAR5516^js?Ayic=Od_f?Kc%(bjr}!U?&9ISdK0Y$jgsNAl*A3Agx78AQ5CG2 z?OP&SwPk&>>BGRm6knUGA2Z*>-@Fg#BqlW)s1?4yQ(Vd>dgHvJdEqU??Rn;*1}?8c z*<>ZfBc9?_oZj}Sz8@bg~Q1a>zCr2zaiHW<@c?rGMExgxXWyc-Bj_$+L!W z-x)4kW4xT#i*X(GSOhuB$;#V?0Orf2%FG4H~lYWCjC z!uR7GUD4YK5l7eH6j44oy0~$wwy#8k+55+@T2X&}BvaCU)8mJ7&*4iKBF?D<8Szj$EWKT7hIPmw}ZSi8Fq6svhjZJUrP+#hQI1tf_?BK?W`cY zN7l=Qr9NRC`ke6TUu{FHH_DgO9K3I#5rG->2|yJU4~GWcgv{!1dPuW*qcdEv1lL6O zf)h;DI^ISe@M^@WFpIk?gM&wUC=`BVT`v<(X$Z zhv4I7I;^y>LsSZENtDP7d&U- z(8CI7EHrSK+-V9zGgE}0PyAs|C?@gZ3rZiI4zN1;hWWK~bI8*~HWd_~)R_{w5=m$n)teC*Z! zyoub#HZ5FFsHSVv*|?j6v^am@ZyHcxxuT)mss{1a1aB#b64%r+IA|^)T-O6)f=0hG;ao^`gRW>@rcyaVtnS;>L(%Yu zcx<(ZCQ+u;Lg)TixHLm@P!d&tFy}pd=tOtQkPbLCw~vzU1{P@ecl+f_zs^C?j7w*I z`;O1`zp&B4<)gAsTCKT++#c1P8z`pFyPs~vS$XXu@uFE5SG!W@GXF32pc|63r995LiGKmz6q- z6F``9#(vKy<aCkV?o3eVif9td(TVt(_M3cI2 zrG=B4Mzhx)qYq7_F+mpw5}i%*u+*PU)J~;y;1*3E&BO);-(l`k#H3qrel|NuHM&ew z{79`U&r`L`rlM6Q^|_0ZoTWpx5y*=mqw{kS@-JZm2_Z|@o>9LQwe>LX$oPKLdZJa;$`54do z=Yv{Sc|uBKr^@aP;Y zQ`Did@`r1@)h(ifLkY-1c!Go%v<-%bJ%WZCzFjG``@KGlkb@%HKF3fSA3aH7qY*%I z0QFCn$8HaN7K8t)w5Zu$SnY8)P5f5ItS9}U1g;@Q^9 zg#tPUW)|h%G4eVZrL^ixfPu)v`+?JXKB>x4u3*Y%<7f6Gt##bx*f)uPSQO(oe{WO1 zs0f?&!VG~hn$<_N#?($3Nvdgf==!ea$7L(AG}mj&DvQwYvzuAE<|d~oc480HX@j=H z1TP>OC3rUUL2GgKukZgIkfAHu1(MMU{c6*~l_wSnP`Qee_B0y-nt%Y^u4d87HhgA= zIR2U;9d@i)xpMV5r$wJnvFi%~1J>#hUSh3;rbGuwfUkIykk~+T+z_ZsJ`kjqhB{kT z;{PAFWqzm4V8#*oNs~|<}5Wvbu(48Ieb3-(#x96c2Tcx4hRHUnz#Rr<@` zFQMXki@J(@T}uVMY3^QZoBsw|bc&LJw{;RJD(N3HR5S)oR53o&(~|_vZc93nYmngr zow&>loGsS9S6G>}W@YR$;cj>`d5u$1d!to_R6NyG|6BI=lx*oY3k_j5@R28N#~CC= zmxnNMDKv%G5^pd2aN0kAFe2q*&G_U5nXry4aC##co^sEE!HI5(SE%S0ET7(`Se{dm zqm_pbc`AI_=T&Rxi1~A|ACr-5K}98q5ypb4V=xaOs}h?<)caIa=Ie~jO6(2> zEdTH>wozZs+p~aM1u1Kl%m!;(xn4kUm$Nn38|c)xD5Ei-x(Zb>^ogeJy5hvmx;sQo zj$$hoMTBjCx3}(f)`M=lAd zMv+XA1{4`?ei^5aE@^l9fWXX5)Wo;j(?WOB8wyZdTp0tVBSXI+0kjf)50?M)(U8Qc z7(W+Li?8?(Yy0Jqs@-VuE=58 zNdm>6klL+yFzA}Co$P4HTAf{elpnOmUCpECIZ^guXs0!7-fgQ5dOFLOc1Gw}=5pZK zio<}X3PrMuta<*KGZ*xsx4yQcik2HUWP@d%qCDyF(TZ(kA>f@w5Iz^fLVjoz*L;+` zT7~9eHK|ovHA!<(Mc<=7X zcAx;*r{bU*b&X?vawK?I4&BN2cV_89L%&`h`o=SQs~|iWXNgA~zxj5G!R9qHdhO^% z=Y#7fy5rTq0Qs9AnQ(5@jC1F_Pm7B@oA3L8!~Z1q@C;Xj3Idbqs0J&%>DP)JIV z7)%1D7;TYzwAjUL#JPkhtdX;=YZ5=f3C-#e3VUvf_KyL}UM5h$Fy7Lq$)JAm@Hp-; zKjZ@*;AQeq#8_ht3~xoy;0xm5h0!v(N{Rz*Xm0{iKg*i-ua0Mat3}8vksVkbj!0CP z0BDZuniOON$bfW-Hb$KtsvdvYso}sVW`-@D8aqA%Rf%O=PcHc?*HVLlzKAGNh{M5bg3TsH1 z9{CZY7~$K+i|@RU|7Uw-gL61zIrmeGdJ+rTg2TSAH-^Qb;*s1GF$G@vWFSCOjj|U9 zI8g=xYOL642^K1Bic6T!KP@Q=H-&Kj9Xhf=#fi55#WP%S;H2HMa)Ie!;rD@sER zTqm0 zvpKP9H7Y-)e{aG%=N;pNNYhmB_0q1}7YOS19a`(Qt^zdNexxE&I=Fddhrw*X=b=s15uarP!cHsLE>WzhnM^+>paY$AIBt_zL`vjAh@6 zYOFn>^_eNh{HHS1l_1FXzk*>CaD|UCK*{D8b=S$ZWP)V>=YF)aVGCjjm}$9t#)dyM zVbFjipq35Pxg0=AU<-U;1qPMgIdOaYhuC z2-%EwWN>a&@t%#u$9;h~`MH!he@_AqVHV|uN?8QW%GUNDxfpG?;i|sm=#rHp-nVh1 z4~xym45FS{EG7*gSW}Wd>PHL8^~)Ox2YSE#CxYu?5f?N3A1ieyoV#Afu6I6lje3u0 zeK+CmWzI%NUr7Jzym5G=9NA!ks4)A$Wac83@SeGq=2wk@+E4WJ;wK_>&WX3$l*bEF zqXX&=C^pL9W+CPNdz-=z=6xit)4vJTSmp9|8r=$t>bC}M`%OsbFzX)K0W*!}OT65~W zD6(;%_?M@$L^W9cKw~gc(p^6A%sfJ!U;3Y{YV+nm*e$G8^)dAuB0OSu0g_o#GDygM zdSY=SJoc^wnM2*QkNVuzt1sR?bD*mERmoB*qFk_cZVNBF5CFd>f?;Gjm2{{b^zg4Z}|Cdc0|7`2&B_{|$S@8HUJg{|;k zY#drR$=C&LIcR{=^xdYbxzvWQPnxvQgQQA);fJ7qvh}s05d-UC=mlQSnOpgYVlo@4 z9vsEiRL*ISiPG7iiq!}o%trBk;GiTvvL(nyT+34HkACt<6<6r`zt@4!&#pxeU8G$P z=!9er5CI{hOX!W6;ZR|gv5hHoE5uG!ixB0FIj$G83g>oZgg(+TU8(*L=kK<&m#07X zFDApKHZ~PUq(g)(So3I8rBjPCa#d&h3v{Ti3kko&8=Vbr0Pw5HAAR?4hlKaT7jxKW zFVgf`>j0tw*w(Hx*E>!l^UkAcyJX+2X?g_jKJZUwJnS11&miXq_44Ny!~cby2k*I z>-3-nQb5x~oxkte;nK(I3F?1k5JkE>+7bhSy~pqM!ub%Y;%^2ASnQ8vMBK9^qU9WO z1WdnFPj2)YH*}$3*>@V?x2J~t+NViFL&)#uB$7Dt+Eqwn*yVNHRRo@932V zR9^r=P&crcyrC3>Av?}{1fY=Q_KK_@*E!eyKQ)oTiGut~hsxl-^GSBiF&9LjK&LN) z>^eyWVe>ddp`(TxKUl!AksmUE@TX<+maBypf=V=0r(ZCf+Mk)vfM@So$d@)7w z7HuonhshLaSu-0lK2(2oi8MCon&N=O`=}7fm*BHJ$X4}BPq9Sm3RuJ+50DoYBg6)n z!*Dv-39@wd;vmDnTmGJYi6^3l&AyKG4(4?kAz|K+1+VALZ&9fP4NsqWmPiane5C^KgUya(20uaWIoO??0i-7 zBpt&%mzm+*9c5Y77)e3hbUIu&XlQ??i)lhEdz}akQ?cBGK8gFq91`)mTcIn8fr;nfwJQ zX#Q_nm`_JiO`5b-B?cE?b!_$0xXB1Eq|0>kx{?~cR8M84~K`@!d?B$3@9 zsltP(MXBy?3q8dSAiUW?U$JPxU{p3htW`jC<yM6h1iaQu5?iuEQ1m$exGiyPcSf&k}r`Zq$K|Xl+awjE~qSAaH?8LAC>E4))dy z$?>+p7yEkm&?WF&0N8Q(uNc1)t2$yk=e*FV@$E~WX}_N`mG6hp_LXKntre&;YKFgd4L1=Q1C~Mxd6PL;4*6M7_oIFK%2ZpGlDl*{ z-}#U3${(k7r7k@Gyhl06sx&h6wimXr`;6^ zh(OaT)y)2L#XG&&pn%j+j-Xs$J_J(9LEH-)h~mr_Lrwqds;*Iic_2K!zTHT~-Mvs~ z*OJsZ8v)rRY{Z#}a(`GTg!3{!LuSsWNx$T;Z@+Ava!uBTJm{fLrJIy*Nka@*d_U7V zdL-M@2>P&`z^UHW75gvoVO_x6#jMHKVURX`S6Jz~=WXm9LtWj@PZI(`QRrn!vSZG{ zdPGy9UAGjci~IO)7JCAaX{UEB!)ayOCo1?HM-=W#R8Xd?aud-tmn~u>=-8d<7Wt$lqCj*UaH+y%TH7J zl&m@|ufa3%blS^467>4R=YOer+GL=gh*-Krr~|C2EN}px`NK~%d$-==HcK@cbcW-3 zns)TtA^G)y;!24AW{(E^Ps4=8djs)?5gP@?Jsc)A@nVLaC%Y*OecWyf!2E_Mo=H`QXufBY zao6D#*$Wlt+wNsqc_|)jZ{m3d7wHxICr`lf#V<(o@I7e#@HbIoFvZ{|#u7i=Y}#0O zmwUjsg@VGx*?WBKq0n#hd9?Swvo2<(Jr6skPk5QEZ9@kh!n54%qh22;egn6(4fh(U zyLM`v_69tAE&6s4X1$hA>GW0iJv_OM=GCme29FTcb>Mwu^!v(zu%4q3XW{cxT}JO7EFww4VewxqOc*dS(W1;0a9Jc ziy>o?ooIY~2Jq1?1stAk-{qs201*R4@&ITZaDqG!Ia`WXpE#X?)?FY-DjG#6oPj)( z$KD-F4p3QhePSVd;g396_S?P|kp&m^f|hKFr(cunW}co+Gqou>9f@<=wlrN)tmonn zr7q?#4Bi<-iB8tz28%-8H*POv9vMa9FPQwjevjpLx{n4vLTRYJ_u;t7FT*^uQ6sX* zIg*-IwlOcd$Z``Q`C9sAE;YrduiGU8@ug^jOaqm!QCwxP3IC73h^Wx^_4MAA^YHxUH;r#FRUh;qd;g$&fw#$){>k_KT6>6X2&cJJ&PME#osf*1% z?cJzjMuxfHvIs@uZX<-qLU17>}7Zxa4( zv{>wVLq#eoIi8^KXtGsU_$RVi!AY*}29b7e&asYF@K6ABQI3kH!#c(`I84Z8N1zH~ zI_1|@TT5uiWhHoP^AyX z3kA;JKZ+c<&Zq&3_A49t;OVP)pnT1Nx}1Ue#Uzh$Uh!2~FtbPZ?J#bn15faYKN@m9 zqNDO&>iwORAl!T}=R-@-kUv8@g<&Fq^E2idB*1dDK}<6z#P|jp;*e0wmUlIKvhqKD}vg0&rL&JuE-JIE^;7--zb(TFESbh>3=l#VF>Oh_nO0QY8Ze^@lN}X z1@k7i)&mT<#9tG2{=GU1J)CK&R+THjhnJJ$HFY^uxv14Uj+~A=s{?!u+3HMz<1!_{hc67MY<({sD(?cl9kuwPxXY7>xOg{$U_;V)cDV-Q5dKlO>b2^Yo-lUz-esl#{| z+xq6YV;?IQf8wEp!Raj5LKi&wd2U0>?<||ubL@YD;(%rxW7|jIn9LvB@^o!}{KVqnp3?Sx3&RN#KROx`$m8UBOLz<-@#dUD z_7iiR-8s*{%|l`pSPU9R=pF`%b&<1(`_8F(V%orc;a@$WvbtwJo1kahat+UnwDN9y zV*9r01@!|UP^RqD3YLo@`T?}gFxGvUfz?4g5XQafy+LNs`H(Uc#VX#jgTLSf(cDzK zYpH~M@t{8?JEdEXCsM8+nyc^|fd&#R`l-c}ZUdI(kqvUYrc9)ie(4~W-)t@k>@N$D=nM5S8SSA?9GNg$-XTohbv^)+!f59Gp(N_WZ_rl?GYmSoYmc-IwZmTFL{UM!U8?r=m#!Q%n&McXCqVf!Zn`V28f=-Wn0= z8Zn$ZA}w^)AAjY`62K&f4;r#B(Cwg^7epp|Ftlw@PuE;iy44x6LOKtr6$0{sGONxH z8xubb?wS&sjP2oZkU#BklY|!zB~D|2NIJTf4l>+UV@V7e@m~BE5kcefE@k8_$@|D2 z-+!n#lE>r|RP!`+S1b3^bLVu>xYYDQ0W9W&m&dz2cQo>6T5; zUICvIas+4f|2cQMhMcLEy5@YWc=%CbS)}-@@Hz;&$)mY&-c_IC$On%P#qxKJ*O~HI z{5zEGUW}YQ?dS=_e7fG|0Chfh0FNx=p%xVh101_#ldC+Hk}W3H4Itrkjuy7xMJOz@YCv= zI;3Nf{v3sY$UfQ0Iwrq+0C_A-o>STv&Pn*kq0XRnrp7ATX6~LkSKDA+EF$H2c^iO} z^dYlQ>#aX02K6T|gu;k+dyQKPw)p-R8%bkv8s5%Tu!4H><2ISZ$wN5px1XnPT(n_@ z_-ciZbzMX9k9pHU`>Mi?$K3$UjrVi2uiE8w4U7g0H7+>INaDGUhGKmSySE+l|2XWz zGhu*bZ$;YGqxrom_2bftB0y^*fU>~K73>LEBqp+}#ebLj8W`^>(-8zs||?kdGf40S7VJm0(B_fK)DL(@U_TEH7POfH;a zJN_c4Gj=xo)(Q;n{VMFmWgNx|qt$Z^GjwkphgMaOUs&W>K2Cck$6O!6(k1dz<|xG_ zLGE{w+V{Ko0>?j^gIAw~b{c5oh1wU2zVJh{Ont7JE{Hg`_ZNkp-|wdn)d^H)woVGK zvgY-W_wz97l;uZQHv6nFJVGy_9X>PK-vH?%qOg?x)Q-c7hvB6m$LmLAycvs=XKr7q3=?7u~y9i z3P~Tt;U98iEXt@S8)^`L0WQM)Y?@~!S$2Atc7;q*KPS_dP8TH*!h+_FcMjMsP1f-m zD)NV5I%ExO9VJvocLmxjrw7HA*puC*09`Ei{o-P)>S|w=>atPnDrwnPvwzr+S*P9X z3LBYicOpQSM(0=7>A$P(^6Xa(*f&kSMkYt5BAxYr$szuD!&5!I&j%v->HIf(x3k4d zTqGRYomsa^%VJICoL$~HD9bc)mkb*V!T#;fz|wCn)nZ0HEDEv9wjC^)5nQmmM}$uR z(IW)s9{L>|lo0-U)-6SXz%a=ZVgEgWocpSqNqzjyyK}n3!{wn$j4lujt3)e&r(5bB zEWVZNY?{0?SA3ecM-<)}*IC#Mbc%!8CR{qzcTvFkTRykg?&gw2Xt1K~A9Z5jpN4#G zJ#aa)I+{ISSL=6kf5R{Y`R1Qe9MbN zdz^yNhPpkT&SEL@< zJyUC)xa}DMP#5FH8_lwC=M^wx0#NAauz0>XCp+l$-@ENp#Cm2M z@*&(1H~ADA*mLZn>8Qa|3Us6rzw6TnoDuir3jIao6U9zBRT}UZUoIbV7ooXON~>Sb zhFw4Xhz_CRy%I?KdM9SO@s(V;eyTY8;RD{}tZ_l4uW*}r-j8Rz(`5}uT`wR8qY~gK z2oYJxNs*$z++9jedD!NuMsQSFl%@j{-w*5GFyFAG+T=SB21s+o=3ttvYlQ|l z`waj(UT{`9#rnUQ6Fv6?plLK%NptVTSs!*vmfytHrozSOi%2bT0S9UAw$atzthLs~ z32@F%IQ>p-?To)TKlnATr@r8B4lfVDIpjEx_n0i1wnM`JGCLJS_S}7^Y4xm+Jc?W? z6wEft-f$c*!s2#3Dp_q{-U!-}FNa%x^xp|eN#-m47>XVZc;(kx51B_vNs?duGZiD& z%*V z!CuQw-PD8Ihj{gstJhmo?9enG_7~}yvJD$VW(K9R6sqmw9`1d;!Bh61Yb{%S=6mB` zzJ=ba4`BA65;m=F?~_a`-X0|JZ-#2(cfS;(VEP}K=cW7*@0U*HeiPfYULIwIOEZOe zAFp&B%WYFS zl>J&I%cKHoC?i8 zHmJ47il--9E>`RuDb$U(-qumOP|_cD+-4yY4zo(o=g_z=w7aVyCADd8RDj4C+q%j z&mo0wUzgJrqOS5Z={kYg0*67KO>^?BVwZc-0IzOgu9Dpnt>oBxyV%FHhZvCRR9E#o zGP6(13V#Yc*K+BU$rK-da_gxw1-2EB{!sMpt=E-t zJKdeEJ7AWlEhvMY1+MiNMn0vG#`g8=kEyX!+*+OVB#l5z_{KlU{4+-;H31lw~C@53hWD z&_pIbU>6!HZ=%U+QO4zPbp2-f?kE-VOJs}Y`se2X3ath{Fn%W%a+i6*Jti_5-;cr9 z8*w96swcd2y^84S<;M!qH~D)79jbK{KL()lJPecooSLl?bhQD^#CBU}BS|WvE>TI> zr$jrPHjiRcX|mGb@zz?gn_a&FJh7MVl4BvfKR?d+#&UX8Ktt&%e+~{{zyDn0+K~e* z;?fgp`3}y9blaCqKGk_bSb*nbOvzVCIt`q|0S z=WE5Y8br5?%3FQ0jG|e&#|?Y!a&_dZuU-<%CYR?9`)$|uTJi-41n8;J znSE7)4b8uFQAy6HxQ>(RfdUQu+Pz<#^8}5k5T1ZGocB?kX=QdxA3#15FD|o4J{H=-NXWZm_Dc#nVy^7y|;_S&fqw=Iw{17S%vDZDjB4@Qzd)NUs z&aG>u4NC~pRDPRIsNNY9a_t;}Z8Q!{`fv^Snn22}35m9Y4#E9VeIN(`eh8{gCR4v_ z0+n+<&f^1MVj*hg6XN6X2DnVd`0vel(;YSR1g+&$;vaU*d=foEjWRa6@Rb!+qd{t{ zd47tC1hdH9)R5%M7!%H^Z6c#sNhFTys_1=I#P@=tL9O__1e%f*Xgql$b_PpuhBS8Z zbSgXuGS^NSFEdT>3+o|Hb+Bi9m%r_9zfiC3HA%9Bu1Xwp7 zGyyJWO|WkVtFUkjI_B(P!Z_!^43e8&5;!MZ5G@EA?u zEz#>65i-8+?p#~PbLC}1wT@qo3Rq*K0H!SbdXbN*31;S|sXFen%Sv~y2KD?zY4jsY z@9v7{ZAMs;mgNnN`j8d)o6rzbAp?th?7WT&+Ir3wO7aa8-WPHn`5@Fn8uKG-JT8S0 z6z~5;Sc@g~J`V3E*Qw0dV+4H5HW8L%+co)Ea=o&z>~AziuB+n(9C`HD!bYd6#X(~L z;=s*RJHP_@&vS7m@i>KqaloC- z2hJMzLCnkCCg`#Z#SpRfdZ{zJA`jADuF}c8x})#@`90#hFIAkpRq%d}Fqoq0*)fWd z;Q4wdF{p7>+dAUY)k3(UbQgpj#w7US>uT&(sLWd}yyy)GzwR`9n>YD7`6Z5nk8U_` zy{h_W$Ued*(jYV5jK-<@c>Hcs!zgdQUceS%-t3dv8#gHXpJ zZ1U`~uE;UGreT}(UtaHWhaeOylP$1Jyj(?9&}eFL<3ynz=Fd(@eEh>rE&~TS*65YF zbT_;h;Drct6aac6GG7$+2TJ<&V!LZA5&^>~UQ#C+H4J^(|)y zQD8~+0RK2|{9+F0Bi)_={C6q0vO~uGfv`6$m_j;;H@C|$etm--?<5>w?+AVKo0xjT zO#q0NETLp`J?7K1>4JIO`YCosjM3@7lBM$lxd%C32jWV<{sB|48mhH}6}!7~WNK5c z_~t|k&u;=B5!fOc5pl`}kKfnla{O0nvhMR4m&A=OPJy;F8n|58)#Qyi=aOwXhIbyr z0Pk%cC!LD1Z+xugk1Y1Tv9CBOD}h~h=QjoB?z`nVa}<$jz$tma5{0W_!??j;*p{#&Rorc3GY@T$P(MI@g< zP}II)G;qqd>KV~FG~-DAqjQ_h6klYgiu3Vg$Okjaa@?VnrxPeJRf)$1)6;L;7clQ=DWXTV%K zP6X+>2M@(_M3)u!w|X8F+h!fWl{sNu)nu%B{1T|gd^`$bCbF#Udg#&zw3y4~ZklE( zG}$gH2G7Td@=1xB1TmOgA9h~|BWGod!I+|sezLe@2PvLuwgcT!iOzY>jFlpm3X(HJ z{`$;Nv0d|$;9q-x8r43`d}b5V+&m7O6@`oM6zYEulfmzpbJ6s1+e_rR_ssKXjS(xf z61X%d_#XDWx9f=01+rI3HDVhmyY7kkV2L!oS@;4hXm4_41S-N8qz%@00**HvHZ4v4 znD8vuZW?-loDD)C;mcX!7I1JdKiq+hYi%gKYEcYa;z{W}R)!J0^FmT7^fijYeW`wu z#TOxBt?rd`Hv!pG#>q)kCf~u77n|NwEW9pgLuvQpz)}CzClsgx$*fNemrhWf8yEX} zT4Y6D=tFSoPM)bvVM_83mjOT9#@blkxFmE-SN>KfeOesd{CJUiN*N|^En_a_R z0__DUFG8~IevVqCdu%vAmWAc&hWm!uajM<1^U>o?q8TTL5U$rBE&=O{OC0AO2~&J- z%gno{0{!jyKGC4ebKbz3o0D`4}9>cH}ZE&MN<^vRps* z=74891e(tzbWKtu>*x-C%lV zby!R&e|G#XKZGapF2i;Z9A0tR%QxAoUu#G@*(z1sRk~%+Q23>~y6@K}R2ZFG5 z`-n_MelRYu;!JejVvcXDVuW2eJDn$+1TX{Pn0Y+DC=5KCLL)BIPhJ8C-I&}5LCaI! zy#swSg~xgDE`U85vQ99?N>a*rLxMdK)dpV?|G}*Gqde+cV_Awypt1q3*^wYRHM^czp>Tfjv+;iJ(5pZWPWVA-kwe`25xq zkY61@+mJIM+(MNgt`>336Q4z<7@32z_mws067WJjUg84c`%*|Cd2@|RT0pN@3mE^I zW(NpMWZkK~I}xr4Y_o-Kqz><1m~pw(hZfR*vf~Q{+COY z#-t_y&RPz0f=LcN9l?8nnB7?>wi{ioxujrTa8l>;<#gJ6{av{1pHGp%^j-szZ25$O zp$)-0a=>0Ae;E1b&Rh2msZ1U&ijfaZz4seEHc<6N6|ZN`KKXyAgA3=u&ua;&y04H6 zmFT@%C*ja(_1;u3M>VdoNT$rzde5F zjFpA>9gSYn0O&bz$~=><(Kzo^a$v|Kvqsd z2iLAe)tT&g7yT^O0T)I?mA+81bQoE>H$O6mgKq6%sP$oXhamMhX?Sk+wgCrM^P)!X z$UHFFSu@tQa%?@`;zhR4sDZ2+Hr2xKYHE_LZ)Hk1tfxus@G-^=v-a!&En&(uS}*P$ z{k?q&%yj^HG@iGBFkHWvJojt4Qp!GqW?}_RsGcG>hP|KiW<$75Lf4tn<S?X`nm{dKs zqztlQ?yuQy?-_XyHlKA6ByQ?N2_1AkDcvc=da=E2I>0*_2)wb^^ z)*rSAi5;tAFnNMIR{eiFHy)gzstprW3veH~|Cg-N=|)rMRMVB?sN7s;g3-|I7A7~> zF*u@(fyA1nwtrajQsHaq0?wn0uI#Y9`Q#FCC+3l&bYfNiN}{ku*@~S+5O+6myshc_@*Gv#rh1vNIc=)YKC!k+9MPUzr2N# zN;K@DTmGMzsN#j{zr9I<2ZnsSUUM&3t^dhb%BZV+iC)6`?q$p4z27LSvEBDZtgqAD zqo+wYA+`YmK0~#xCp3O6%Gr>+&J2XA%K_Pxzj$M4+ZWIN{bVkYMq&)IPT0nqKf=xZ zKFSW(-o+GKX5WrC1Y8Im;t&(&9m;lV`{^CV%WjSffCH1Y4dkpCFZ+G(acfbF3afN? z7oT4}J_sX>)xXo&%kIoAc~RIHIVi$Qp>wFmxxo;K*`ta{L&jl%Tva=E(qnQ!bF#Bn z3OQ?r*EJR8S4`FhHbt2Qvnm~#)b+e7j|~>jB%mgJ zMIl6pf0-Nh*o&Zj zh#)GTKSObDyJ7wH9Xsgwj|roC)?oc}I>3AW%W7Re??8VD#izf4&3jAE>Z z#Q?q-*#@kVUs!GOzu#ZP%hye32jXA+x_D3bI_f{%W=7l&_VX-zMthNX1pbZ9aB-X- zz2)<`0p1<$H!%UX+(R*81j@tujL<)ZqvKR}ty8v6CT)H*p#@U+0KznH+s-5ZW0RwT zR5C;xMeTwC1fd}|(urxb`JBB&;qH+bR=|v>KE|BwASzv4YGfxQd$yh+)AkKVh3$81 zw6Rjaw=GKZlk6zGMGW*IfYAbU#OQ{Q&oW2h%bXmq-L(!QcJTaqmXh~ULFaSH_l$2UvjEO*G-kNK`Yiis zd&RF!7MeE-ow|{k5$2eV85|#{CcCR=vGKjQv|WD)T!l8~vEWVoD|pL1V-fAy|B-(U z7=SiCgMNrqV2Tf707kVH(0`t-oqohmlA@FjNb{|4nM1}j%~%GobenW-e~%zx)MKpd zXcTeBub#<`7y3_)(x|9#=;VfID}fTez_a|L&mu4K>pNS*S^b-e6%t&s@K8+s2Kk(w zLhXA2FaKXs3Fq$`^ZZY5(-|W3NF|Bo+t26f{GJXH7GvV<2mU7RmxS^naP*|DB?&*i zu|job5xf70Q*RqPi62(s(m77)U^!v?MTD#Gw?Phn$-ahqpN6MGw9uNIEw_$n2``zF zROR_hDo@a#)4ImE^eGyVYvjrR+6KRi-q~y=N|!-Vk47?QkbdsqOtxK~7TuZNf^SVX z4#|0|`BpC_(^$uKVaoK6$SFnc_rrV{*cX;_0cQK}km)@MY47|ce_s`qa@m?^G0{;N z)01ZzyzSMvqW+4O2i@+^7!(jM-q>8o)M%= zfe@YT!=B??fw1R9-0h02i1S*^=Z&|c<^QF*(EYN@a4D@%G6ib<9BWxTcm9NB_P4dC zv}At(rVUe9X}cPIgC?+>&HGfSmm6kN8BZxB_N~YBW``KISruSou|@A-lbm)EVoSmkXrRb0X^`0RaPm|Ki_&F zHPLkIW?_qBq1P@W4t%3BHUGIwZ0jz`Nn-99*JNQ7`!(d`>H6WvCOteb!^jIYr6HWR zzfb|=e**BUQ_=#XPk^j>mV$LlS9BC923kE818vBz0(6Jcv}t3uh6lXKcVNmB0ZHXp zrWxo*;ja^M=icPR&hEp)E}Pe7cTHpGMapRh+=b|(s{ir+FsfRR{|0o3dwhl^v4)qB zE?4`O9zRK7rk<4;MWixu-RLF$7iPdCNi6_gEkV_AQiQJ|sLdFWLKB{3X7=h1pH2=2 z`SN^Fo6;ED!3XBk_;Bk$D*=+5gSj}qU%eJ#zb!pMYdPI{>h!Vx+^%OBoP_4BChZDM)EC5(9IVs27amS0Z) zD?pbyD-Z`87z*qt(ptiIn2^AER7CU-op24%*cd)8zm3#M1z#0bbl<9kbsl+p?gvYi z>*PuiYmD@5qzs%coUSTBSVQ#0W;de#HRF?*pcMAklZ4mu4V<{A%EJOciK26sO|FO4;0K%Fd@j7zp0pkc1l{}^&D*8=~mvR3=*}HTK;_1MQa91(fw-VYn z20~9_*KOc24pLT$Uam8ywezpXs_agW04q8hJx3X$}TYEHiY4MYfU73QRar1jW#9y)zm`EeD8#SBgDD z_uB;V_Oi10=cZuCDiGPmDP8Cl0&IW9;4;?GKGlQ|AlD{b7$&ZBw@#Fv`&;hq|MASN>; zFwN#x@+|lNH0f~;skD9tR3C;B8(#gpqa4<0>kUzq5ZGNO`q@_Vo6GlRK84p$=gpzr z5Z;0fq&Gon#BmV3v1c8oWdqy=#y=_){JfSRi z#H#rgO%xiAzCwe-S=-Gx#X!Kt{oR=YXEdd*6fBU5PQi`mKeG7ui%z4;i}Xtl)nV8S z{6`MoHB$HprRx5D{h->{VzjOku=w^Bg$L&nkU*a#&Z`S{Is;<3V*0MdU}W+0Q-?JI&UtQaA_(XwFl~!TfFe-n4XcGJ$o#MkHTD$Ec?0qcPS){SuqZw;A563iH<< zOgma)xwx%u9mME4Z@0(`!pn<(JpKD6clPLGb<{09Sz;eP>huU~c$d|ss+{^+P?jE^ zkz1fQ$A%U6_EWTp#b?!G`2>Qjn-R?`hv)itZ*=eD6l)CRD>Sh%NR?2Q#*8Yg^!41= z1Gd#fV*VGK337wJn9@sa>wkYc=K59t{HTlVn(kG{+@Jf=XC z!Ju%-DddeUz-T7O=K=pA5er0H6<=8;-oD%5Gd9d;%6 zX|8%l6$iilVv8R7@)~O?j9BS6GFYg5S%jZWUeWo=5-PDrit(bge4rnRWR{KM4WHPN z&B^#yUet?KN%t9xk~p&Io2;t7la`%G?60cGb*#0VS1fwA>Te+BR&}=C5qNzZTZX9A z^;&ESW}mS%_W9I#V%{0Xr=p_qZzZBkY_|SKkDY9zEB@<4SW>dVt{q`>Ua_GrGVQ)u>7cL$Al@dxySXU<0kqVroS@uvu<* z6XU}NjzwAthY|~5cwKZHLa%7Q^!PP|-C{NYH%=axkf;&O{$@qC;hSXwuocB%m6YLF z?o(_|(<~T5^|dm`fI8vzj$*DQ$iu+|jnO0kd&?f)oQ&#)?qwq!iEsP;f#sQdWJ){J zTJfur-aTjG!=+?ZuyCMh)~hEE^nFQH?pZx83!Qg>Plm55Fk8V`iK?&Fh-xuG{s$q1 zzQj6}zX@2mj*@K<$GqEu$*N&-#_@q7(uV$erF{1$5+Fb4N+w$&n42{}yzoPr`xSW( z+DK9x;h=I`KsAao3-8p>p+ z9!$0qSG)AKURKvGkME%t?DQdc_7F_@}|wo4wpVMGehB z6a4rBkM71CspvDAQ@=UHG@s5$lB-hpRrq|*#bj@J{n_X8&5A1hiGV!OKfjvRWvO{( zldlD47Fs%c1FdyaY!`tMocXvKOYmiZw2As(XW9PXy0J{9*3xcF=-WSS1EE%{LYp(~ z1FAe!O8XSr8C9qX&LE_wm4%Ru;KHQ>CP_dnOA`Y7OQBQ$Y()IyV58*tQ#gadZYjFWb3%r<~b&JZmv-?i9KYTO}VQA&4uij&BXW)+4_!{eWC&(K3@Gw zv5yS9Jhg>yDpjP8vgxpmF>tJ_h-9+k+@N|7R)IC2HHyzpf&B+@0T*32Ld(Anxsn6u zYKX2^XwGVnu)cQeh93X5Z*;-^FKd$Aj+}YXyKxR_)+Phze=OJ-^t&m2!Kh|CV&5Wo zP!pfi#(viaR%J8foH_^4vr*Ut6F1L#fe&UH2lZZ7+iKdH*DY^i$C(<}?xJYvJ?AU4 ze;-d-cdGLd<3}ZkOO#?a}`hE43BQtRdPAiXZoZc~OAjx)oejOtDwGD5et^ zGQ%iM1E|=pn*VMkInX{~{=uGo%{3bLI}rQ{MRW>K{r3CYrpvrI<~j+&NA}4v=AEK# z73``0o3~3fZuRBC(P*ar!_WDsp6TfMgwm7L+k9MelI_9_)TLAu0ld0=;R9UwJChm9 zivD5DKdxRmN$7kZ*J7Xxu%=C_TNXYW5l>Qx#j8kV++iWvnzGIc>9Zt_92ZtpiTUj! zy2D@;HCxx3lMTLG4(qQq6mQc0Ul$u+~XDtsvgtrjs*W-+U zqjW{NlGIX_gedT6kWi)hxy7s8z$(@F96#d-a>*o)JL+*uWZ?(q?XRQ|IDOaEO;d@_0JoKy zwto~z4|jH_ZDR=LNvTtthoImBqs@==_*ZTY{*vGgy9TLQ$%Ku2*>2K%5>)DT*Zgr5 z*eEMev`vqmGk$f!_m5_>?OUw8&rqdvls8~ByYI;IdlPhfRchC z0fCD#yq^Xi`UKVs59vBgzjLT*@eq#bUdmNoFACQD?d+$ZTV!qzjgyCHVso=vaZrWD z{H36YdV3wGUhW!2J2!m+)W#q2e^tTry7TL{tl>?cx0??3z}3*#Lg~h64IrU8b5RoC zKeRW+hPzcw$%}SFfyE`)gF+=}fKPl=Di18+SspheMcUfrtM5T}PbAX3WcC*?n?yIQ zkISaaslH3;y7`>jbH(AD_kOc`*~`yrbQF-{Zu%(Henr3-TS+xbl?viY3J@I`k%` zVbt1(ZFYrEek;mGXuP%Mz!#!5EtiH2ppETr)cIi^cZ}K_pVj!;@FP0%dmd-+Q2MyX zTZ~p=Px-U|vZ&W=jxnW^q6sE4ejh-;_Q2zCWa|>-3XykN$L#s&qWXoH`iPAJnZs*W z!ggD^z5zuhgK+hq-jKQfyOYF~@ZG1ZMFcjP#ic>StRv#c|5FHCRQdScF6Pa(G%ioB z_$MO~yfCBQ$IaZ|^7O7n0a0QVrdM{mIfCg@IiBB+1sce|630TR!1egQ zMsdo^Na}mya_rVm5%w8CQUR>+Sx;@lC31RvaLF#LIeZMyzm)?am!D;6gv>d#N!{+4-gV*+I!uF>2C(8R} z5S-y`&3-b!R8p8hKd5XH{dE@mm-z+$%2|+t@a#z}JPTfA^Y}IN_o;T~V>`FOy_#y% z$o~LKK(xQ{mGmH!3rvuKaYdOD){hWtP61$&&^q#{Oyl^H09S_}POf0)T7C5JV@a%f zZEND+<-ssTzL;rcDchEf-IWb=(mB+4rEApU45 z44W;|u1F9S`IsQDa@0-TJ-|G(-J8>g=56fq;Ik?&_}(!1OdwOuJKR_|bY`A%Lvg9Z znB%KgG;u17Ni!;+*n*Llz^AW*bq`L(qrz40FUwn%(#h~u*#r|ys3<$QXwXq0lT<-$ z{%mD~AQJ<&nZmsBb%|0LdEL__f|wTR zQV+&dX}7wp>>6L>!c_cHqvImT4qp9fJ=@Bd9JoC(C{p)?5IsA~o!^#C+Da5{7HV?6~4F^AlUKduhr3BzI$n@5WMvyD~n0Mz6|8{;XKSQShgsO|HBFd3m zrRKeCZ|*{CwYzbrE(jGBaelTii8Vxu`%)9@W!L|lkH(o(PZuQc`}Nf%PCh}>z0Jb~ z$?OX#f8@yKzHioUwfF6IbxVBGLQ3lz{@N5WS)DTt>)FwIpP%d&ymJsH|1cl7C6gL( zX&@+%S>=PB>7G8rkd*98vxITwJ0jxp^3{dOnAE60Xz4+Kkt_@Af3x%KR)_k*dP7OY zsi(oF{ zC(Dk2Qs(8=cQDd@=go_vu(aA6CGR|Xn(rS;-F}WDD&JO;S|q9HOg&}*i=N*8Z^dHRJ+Ve9^hbYN@hqLucK6gIl2 z5Xxf}wG#a`*iFJef4@;zuIB~cHivIY^SG)+?n}S8%5~_D--Pyox>3qOiM14s;aHEY zpIHz5KH8T&?#?CT#*g@8w3U>Z zTD02E=GtUpE0S}7$j`F!#G{aYSF?S%D|L6tpV!rqSC@C>uz-dA@pbm9+~`u23{JZ1 z{7;n`v5KvR`$;=J_L$0WW)htGM^JY?S2KzSe2lUI*D+HnZn+UCB2)_Hs?zjNzMh}V zaab}=-rHua^Pa2SYfIA+Dv=C3|Fnd48-sC$MMC{H8X4;3>$5MDtcZS{CIVB!t<@bf zU<6L4ddxG^;D&J(^nsi>7cFo-Fc1wCwl-!is8DSDy(_)Fby;6M46YA15cK4jz1`kg z{#5mu=>C$XfF$j@e@ox2hTx}GIhK{r8uVwC*C*00V&+976(*8PeBod5jrIj^<as;AAi-C5{Q^#Y?%hr89CY)>JBZf7v6iMonwZQXp z4^X*v-Wj*CxtARC?9zI6s(rr-86Jch{Bd;buQ-s|AJwB<&glA3O~f}B{@d%gMlRxJ z!PVG4o!%4Kfg?ISZgWFyYc>s5JGDr_)rk)ud#^fm^dG5yjv_MAx#;gL!z4$k2;ozp z1bv)FCUf5&7St9P)@K;$J2V-Z0H!VdGfGZ$09_-Wvn7!|@`^>V?jf01>_VtT=B*XS z+;>4z<{EJKGXV1Hb&jR*RPmy%f>e;)5aqw#x(~76*W(AY&YTGjbx_%$E{r(kD9bO6 z8zuhtV|L9o7KX0!#732S%Sc|&?x@4wbJHdtGY{xMVDwN@Pl@pL#p;7xi0 z0w@F!U0d5T>cM0B^R-~(Ui7HGQwX65^FCg?_USsNzw-9+Bu4xX-Ot&~4s1BrZ6d@V zBeMHU41;2Dk}S~3@VC2|XL;El5PQa`-c*O}tYH*fk2%3Kf|%YHST=TysF7^J=jUD@ zY0t*8da>m@q{CbOzJYwQ?;!n1BJ`;J#twVtnmT;E$V!7zuGK9v+H-xFxoL8YRuAt? z)-yN9^gJ;+L3LQ;6%e8(iaqU?)DM*H56T*nnnAtPIJXqi%j4A+k`b^B~AY zZSUA<*uBWWO_yG2y>|o#|EI)Qz|Ugj!o09&6b_ub=_QRiVFseC0K4JNg|ztoAhHq2c}+h{oD9vchWAyME34^A=U* zr)rw3ykI+N)~hD0O5*ltaWri0)h0WpFJlum5BmVCd5isiXJVaLHmD`JGMB6yH6ik+ z!TOWa|O={hA2KoNB$bL3Haxp-fpz|Mbr38in^0yK>P-)?MQ)e z8_eOeLT^F2&kKXAlqV$Yb^8|FpZiJZuoECDA*RO%o3#rGoCzB>;pX9x-pTvb>BBsQ{OhnN6B*+ zr#-O$9L#kK{;6@DJWApU-}6sC%H9>*I?Cwjpj(ZTi?2w#TgViE_GL54_?yo~+De-f z+N*%1cIutp6(~G$`niqQTS@ys*OvHH2-rceaFX!Df%aigK5t8f%x zw99@pd)ODGw7|>mC9Rry@ZR6mTy1^tmYxov4G`S^ntN|xlO7y`h}-(cVOf(aXWM-G z2YPHt!#!PA^5Tgk7s4<-nK~?tIrLTE3jhS!GDkK?wr;KcYa5H)?dh_ysbWuZzQg0f zpvZlTW@k%`&0QFhV46`qsoZ>T)U%+n^Uy)RWM9l@tk3_}Sh%8ChMQqa2{o!l{gixj zO$#rVUr%jaq_6OXi{<{4&DB0ti6n5{Byf#{f4P~*Ie8P2$e~I#YpK+@f_h($iFo&a zVuOTaklI}QHHYY>lWp1{TKhG%J5x(mdpl*s-q+TVFRainUU7}u(_yEakq&Q}SaP(M zuy3IyEHM`Dls6+HPjj+>-4nGa(Y1jbs1W!uk5URknlPIPH`f8|k8|aZR@#q)stWwZ z6{7LI{<<#dqHnz+2=)u9OU`PpX(&kFaw1h&DnMs5@p)GO-CX25Vzizucrujb)6Tj( z@qo*U8hp2_4G=D=CA8o=E&K{9hcS~Bag|C92knC#I7-|U^XspjCu{|vCpEc|^CsJ) zo_RYsd6c?Yp$z_99d461Um$j`f)Pug?YF1Z`qMeq3J-5}j1my1pfg@M3$DtCge#ir zRX}$F;iBTh1h}CSly?0-`rnl&fs$CpRl`1}1aLwlsE1ZHC~XxK)UlheaEw z4{NOnz=7`5G1vqRCXHOWTJo3S?SjHXtO@{Dv5H7s^lUs6he7UJ@_LqjS9V6Emev5a zO&i=||Xw$B4JjbE&WB?Eo55uf#; zSst4nG5L(auukOUy@2-G8g1rdq%$|4K%9HL*-k{#J5B{|lX(gcjh;dsI&aOU?Z}J! zLir+FwJv?GiX^fwXz+%JC~huvsYjeQHIjX$AQbPf)FC4I<}Vjdck#cAu#~c>-~k_h z{sAO(NCLMN2v<6k1;a|%$@rsTdam&WYTX>SM+1V36kxN5=LpUYtGa-lM$Ct{TDlD_ z?jd^BSl2dZA1!*h2L>cAlgAQuX8*V%khlg=<4Bi27e?W$*_Mq%$M+QiHaleNt|ctl z8lfdQDuAU#pnz3%E3+tGlD~h6EzVQNqnu=?L45Csa}h6r^;p6mGLhzaEK;4p%HO3* z*wphZpIkg+bXlb!d^p0^PQ}{|z9>X~Ud;^}=rQn$eP^_DiQ*Bsa`EOt8j_lEDtwRy z36%lW&CHXO>1(>$8NzB^gj7OUQ79l&=9mPS$t9PaTwsapg!KyFme5D}4y5eDArn zcAZ|BR*FLf}+9+4ePyu ztsQmqB(ArovD>yWHnhq_GHlH^*=NYp+|g%;hrTfKI!VUWUwgpPg^?}QNr+u2$K^7` zoDZ!zeMX_8_5G!=JYp`@-YnQu3+ga&Z0r<1!q~ge8jP_8?^TI|*EnafD|$Rv;&Dp| z4KbE$=bkMBsxvEh&*bN3ZGdRX5xY%0DS&@~y2m0{fzT?t#lliV0?AJMUh@6i%@Pd% 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�Vz#^SH3W^DVr1HVUAEZxp5{1Q`@&8~;Ftii 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�C;I$8S8@nvbqpW7OQBq}R!^>HoHK)C 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 z ?a#MX1 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ⓈQfxYvh^bj=5p9mATg~e- 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�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 literal 0 HcmV?d00001 diff --git a/pytorch_widedeep/datasets/data/MovieLens100k_items.parquet.brotli b/pytorch_widedeep/datasets/data/MovieLens100k_items.parquet.brotli new file mode 100644 index 0000000000000000000000000000000000000000..5331eb5aa1c750f2eb8d83103d94d5b53626b369 GIT binary patch literal 70731 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 YhkRw26ZLiU&wqeh($ literal 0 HcmV?d00001 diff --git a/tests/test_datasets/test_datasets.py b/tests/test_datasets/test_datasets.py index 516535ea..30e54c90 100644 --- a/tests/test_datasets/test_datasets.py +++ b/tests/test_datasets/test_datasets.py @@ -10,6 +10,7 @@ load_bio_kdd04, load_womens_ecommerce, load_california_housing, + load_movielens100k, ) @@ -116,3 +117,46 @@ def test_load_california_housing(as_frame): assert (df.shape, type(df)) == ((20640, 9), pd.DataFrame) else: assert (df.shape, type(df)) == ((20640, 9), np.ndarray) + + +@pytest.mark.parametrize( + "as_frame", + [ + (True), + (False), + ], +) +def test_load_movielens100k(as_frame): + df_data, df_items, df_users = load_movielens100k(as_frame=as_frame) + if as_frame: + assert ( + df_data.shape, + df_items.shape, + df_users.shape, + type(df_data), + type(df_items), + type(df_users), + ) == ( + (100000, 4), + (1682, 24), + (943, 5), + pd.DataFrame, + pd.DataFrame, + pd.DataFrame, + ) + else: + assert ( + df_data.shape, + df_items.shape, + df_users.shape, + type(df_data), + type(df_items), + type(df_users), + ) == ( + (100000, 4), + (1682, 24), + (943, 5), + np.ndarray, + np.ndarray, + np.ndarray, + ) From d30203a0a02a75b5bf2a421ff0aac35c8b1c93b5 Mon Sep 17 00:00:00 2001 From: Javier Date: Mon, 31 Jul 2023 13:11:32 +0100 Subject: [PATCH 7/9] Fixed a bug related to the padding idx and the fast ai transforms. Also adjusted the scripts to show how one can use the 'load_movielens100k' function in the library --- .../ml100k_data_preparation.py | 38 +++++-------------- pytorch_widedeep/datasets/_base.py | 4 +- .../preprocessing/text_preprocessor.py | 16 ++++++-- pytorch_widedeep/utils/fastai_transforms.py | 20 ++++++++-- tests/test_datasets/test_datasets.py | 16 ++++---- 5 files changed, 47 insertions(+), 47 deletions(-) diff --git a/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py b/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py index ebcf82b1..f701ce19 100644 --- a/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py +++ b/examples/scripts/wide_deep_for_recsys/ml100k_data_preparation.py @@ -4,34 +4,17 @@ # https://github.com/jrzaurin/pytorch-widedeep/issues/133 In this script we # simply prepare the data that will later be used for a custom Wide and Deep # model and for Wide and Deep models created using this library - from pathlib import Path -import pandas as pd from sklearn.model_selection import train_test_split -raw_data_path = Path("~/ml_projects/wide_deep_learning_for_recsys/ml-100k") +from pytorch_widedeep.datasets import load_movielens100k -save_path = Path("prepared_data") -if not save_path.exists(): - save_path.mkdir(parents=True, exist_ok=True) +data, user, items = load_movielens100k(as_frame=True) -# Load the Ratings/Interaction (triplets (user, item, rating) plus timestamp) -data = pd.read_csv(raw_data_path / "u.data", sep="\t", header=None) -data.columns = ["user_id", "movie_id", "rating", "timestamp"] - -# Load the User features -users = pd.read_csv(raw_data_path / "u.user", sep="|", encoding="latin-1", header=None) -users.columns = ["user_id", "age", "gender", "occupation", "zip_code"] - -# Load the Item features -items = pd.read_csv(raw_data_path / "u.item", sep="|", encoding="latin-1", header=None) -items.columns = [ - "movie_id", - "movie_title", - "release_date", - "video_release_date", - "IMDb_URL", +# Alternatively, as specified in the docs: 'The last 19 fields are the genres' so: +# list_of_genres = items.columns.tolist()[-19:] +list_of_genres = [ "unknown", "Action", "Adventure", @@ -53,10 +36,6 @@ "Western", ] -list_of_genres = pd.read_csv( - raw_data_path / "u.genre", sep="|", header=None, usecols=[0] -)[0].tolist() -list_of_genres # adding a column with the number of movies watched per user dataset = data.sort_values(["user_id", "timestamp"]).reset_index(drop=True) @@ -95,9 +74,6 @@ lambda x: x / dataset["num_watched"] ) -# Adding user features -dataset = dataset.merge(users, on="user_id", how="left") - # Again, we use the same settings as those in the Kaggle notebook, # but 'COLD_START_TRESH' is pretty aggressive COLD_START_TRESH = 5 @@ -118,6 +94,10 @@ df_valid = valid_data.drop(cols_to_drop, axis=1) df_test = test_data.drop(cols_to_drop, axis=1) +save_path = Path("prepared_data") +if not save_path.exists(): + save_path.mkdir(parents=True, exist_ok=True) + df_train.to_pickle(save_path / "df_train.pkl") df_valid.to_pickle(save_path / "df_valid.pkl") df_test.to_pickle(save_path / "df_test.pkl") diff --git a/pytorch_widedeep/datasets/_base.py b/pytorch_widedeep/datasets/_base.py index 235b5f9a..bb4d410b 100644 --- a/pytorch_widedeep/datasets/_base.py +++ b/pytorch_widedeep/datasets/_base.py @@ -378,6 +378,6 @@ def load_movielens100k( df_users = pd.read_parquet(fpath) if as_frame: - return df_data, df_items, df_users + return df_data, df_users, df_items else: - return df_data.to_numpy(), df_items.to_numpy(), df_users.to_numpy() + return df_data.to_numpy(), df_users.to_numpy(), df_items.to_numpy() diff --git a/pytorch_widedeep/preprocessing/text_preprocessor.py b/pytorch_widedeep/preprocessing/text_preprocessor.py index d8c31627..364e6faa 100644 --- a/pytorch_widedeep/preprocessing/text_preprocessor.py +++ b/pytorch_widedeep/preprocessing/text_preprocessor.py @@ -9,6 +9,7 @@ pad_sequences, build_embeddings_matrix, ) +from pytorch_widedeep.utils.general_utils import Alias from pytorch_widedeep.utils.fastai_transforms import Vocab from pytorch_widedeep.preprocessing.base_preprocessor import ( BasePreprocessor, @@ -16,7 +17,6 @@ ) -# TODO: Add alias to already_processed class TextPreprocessor(BasePreprocessor): r"""Preprocessor to prepare the ``deeptext`` input dataset @@ -36,8 +36,12 @@ class TextPreprocessor(BasePreprocessor): pad_idx: int, default = 1 padding index. Fastai's Tokenizer leaves 0 for the 'unknown' token. already_processed: bool, Optional, default = False - Boolean indicating if the text is already processed and we simply - want to tokenize it + Boolean indicating if the sequence of elements is already processed or + prepared. If this is the case, this Preprocessor will simply tokenize + and pad the sequence. + + Param aliases: `not_text`.
+ word_vectors_path: str, Optional Path to the pretrained word vectors n_cpus: int, Optional, default = None @@ -70,6 +74,7 @@ class TextPreprocessor(BasePreprocessor): array([[ 1, 1, 9, 16, 17, 18, 11, 0, 0, 13]], dtype=int32) """ + @Alias("already_processed", "not_text") def __init__( self, text_col: str, @@ -112,7 +117,10 @@ def fit(self, df: pd.DataFrame) -> BasePreprocessor: texts = df[self.text_col].tolist() tokens = get_texts(texts, self.already_processed, self.n_cpus) self.vocab = Vocab.create( - tokens, max_vocab=self.max_vocab, min_freq=self.min_freq + tokens, + max_vocab=self.max_vocab, + min_freq=self.min_freq, + pad_idx=self.pad_idx, ) if self.verbose: print("The vocabulary contains {} tokens".format(len(self.vocab.stoi))) diff --git a/pytorch_widedeep/utils/fastai_transforms.py b/pytorch_widedeep/utils/fastai_transforms.py index 5235f2f8..087df37a 100644 --- a/pytorch_widedeep/utils/fastai_transforms.py +++ b/pytorch_widedeep/utils/fastai_transforms.py @@ -391,7 +391,13 @@ def save(self, path): pickle.dump(self.itos, open(path, "wb")) @classmethod - def create(cls, tokens: Tokens, max_vocab: int, min_freq: int) -> "Vocab": + def create( + cls, + tokens: Tokens, + max_vocab: int, + min_freq: int, + pad_idx: Optional[int] = None, + ) -> "Vocab": r"""Create a vocabulary object from a set of tokens. Parameters @@ -402,9 +408,9 @@ def create(cls, tokens: Tokens, max_vocab: int, min_freq: int) -> "Vocab": strings (e.g. list of tokenized sentences) max_vocab: int maximum vocabulary size - min_freq: int - minimum frequency that a token has to appear to be part of the - vocabulary + pad_idx: int, Optional, default = None + padding index. If None, Fastai's Tokenizer leaves 0 for + the 'unknown' token and defaults to 1. Examples -------- @@ -427,12 +433,18 @@ def create(cls, tokens: Tokens, max_vocab: int, min_freq: int) -> "Vocab": Vocab An instance of a `Vocab` object """ + freq = Counter(p for o in tokens for p in o) itos = [o for o, c in freq.most_common(max_vocab) if c >= min_freq] for o in reversed(defaults.text_spec_tok): if o in itos: itos.remove(o) itos.insert(0, o) + + if pad_idx is not None: + itos.remove(PAD) + itos.insert(pad_idx, PAD) + itos = itos[:max_vocab] if ( len(itos) < max_vocab diff --git a/tests/test_datasets/test_datasets.py b/tests/test_datasets/test_datasets.py index 30e54c90..f22c61ac 100644 --- a/tests/test_datasets/test_datasets.py +++ b/tests/test_datasets/test_datasets.py @@ -8,9 +8,9 @@ load_birds, load_ecoli, load_bio_kdd04, + load_movielens100k, load_womens_ecommerce, load_california_housing, - load_movielens100k, ) @@ -127,19 +127,19 @@ def test_load_california_housing(as_frame): ], ) def test_load_movielens100k(as_frame): - df_data, df_items, df_users = load_movielens100k(as_frame=as_frame) + df_data, df_users, df_items = load_movielens100k(as_frame=as_frame) if as_frame: assert ( df_data.shape, - df_items.shape, df_users.shape, + df_items.shape, type(df_data), - type(df_items), type(df_users), + type(df_items), ) == ( (100000, 4), - (1682, 24), (943, 5), + (1682, 24), pd.DataFrame, pd.DataFrame, pd.DataFrame, @@ -147,15 +147,15 @@ def test_load_movielens100k(as_frame): else: assert ( df_data.shape, - df_items.shape, df_users.shape, + df_items.shape, type(df_data), - type(df_items), type(df_users), + type(df_items), ) == ( (100000, 4), - (1682, 24), (943, 5), + (1682, 24), np.ndarray, np.ndarray, np.ndarray, From 801c597ae6d5d9224af43d9d495d59e81062f3b1 Mon Sep 17 00:00:00 2001 From: Javier Date: Mon, 31 Jul 2023 13:59:17 +0100 Subject: [PATCH 8/9] Adjusted the notebooks to show how one can use the 'load_movielens100k' function in the library --- .../19_wide_and_deep_for_recsys_pt1.ipynb | 130 +++++------------- 1 file changed, 38 insertions(+), 92 deletions(-) diff --git a/examples/notebooks/19_wide_and_deep_for_recsys_pt1.ipynb b/examples/notebooks/19_wide_and_deep_for_recsys_pt1.ipynb index 0d743437..b6a57e6d 100644 --- a/examples/notebooks/19_wide_and_deep_for_recsys_pt1.ipynb +++ b/examples/notebooks/19_wide_and_deep_for_recsys_pt1.ipynb @@ -23,7 +23,9 @@ "import warnings\n", "\n", "import pandas as pd\n", - "from sklearn.model_selection import train_test_split" + "from sklearn.model_selection import train_test_split\n", + "\n", + "from pytorch_widedeep.datasets import load_movielens100k" ] }, { @@ -43,44 +45,31 @@ "metadata": {}, "outputs": [], "source": [ - "raw_data_path = Path(\"~/ml_projects/wide_deep_learning_for_recsys/ml-100k\")\n", - "\n", "save_path = Path(\"prepared_data\")\n", "if not save_path.exists():\n", " save_path.mkdir(parents=True, exist_ok=True)" ] }, { - "cell_type": "markdown", - "id": "929a9712", + "cell_type": "code", + "execution_count": 4, + "id": "5de7a941", "metadata": {}, + "outputs": [], "source": [ - "Let's first start by loading the interactions, user and item data" + "data, users, items = load_movielens100k(as_frame=True)" ] }, { "cell_type": "code", - "execution_count": 4, - "id": "38de36ff", + "execution_count": 5, + "id": "7a288aee", "metadata": {}, "outputs": [], "source": [ - "# Load the Ratings/Interaction (triplets (user, item, rating) plus timestamp)\n", - "data = pd.read_csv(raw_data_path / \"u.data\", sep=\"\\t\", header=None)\n", - "data.columns = [\"user_id\", \"movie_id\", \"rating\", \"timestamp\"]\n", - "\n", - "# Load the User features\n", - "users = pd.read_csv(raw_data_path / \"u.user\", sep=\"|\", encoding=\"latin-1\", header=None)\n", - "users.columns = [\"user_id\", \"age\", \"gender\", \"occupation\", \"zip_code\"]\n", - "\n", - "# Load the Item features\n", - "items = pd.read_csv(raw_data_path / \"u.item\", sep=\"|\", encoding=\"latin-1\", header=None)\n", - "items.columns = [\n", - " \"movie_id\",\n", - " \"movie_title\",\n", - " \"release_date\",\n", - " \"video_release_date\",\n", - " \"IMDb_URL\",\n", + "# Alternatively, as specified in the docs: 'The last 19 fields are the genres' so:\n", + "# list_of_genres = items.columns.tolist()[-19:]\n", + "list_of_genres = [\n", " \"unknown\",\n", " \"Action\",\n", " \"Adventure\",\n", @@ -103,9 +92,17 @@ "]" ] }, + { + "cell_type": "markdown", + "id": "929a9712", + "metadata": {}, + "source": [ + "Let's first start by loading the interactions, user and item data" + ] + }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "f4c09273", "metadata": {}, "outputs": [ @@ -185,7 +182,7 @@ "4 166 346 1 886397596" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -196,7 +193,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "18c3faa0", "metadata": {}, "outputs": [ @@ -282,7 +279,7 @@ "4 5 33 F other 15213" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -293,7 +290,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "1dbad7b1", "metadata": {}, "outputs": [ @@ -499,55 +496,13 @@ "[5 rows x 24 columns]" ] }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "items.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "7b1ce069", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['unknown',\n", - " 'Action',\n", - " 'Adventure',\n", - " 'Animation',\n", - " \"Children's\",\n", - " 'Comedy',\n", - " 'Crime',\n", - " 'Documentary',\n", - " 'Drama',\n", - " 'Fantasy',\n", - " 'Film-Noir',\n", - " 'Horror',\n", - " 'Musical',\n", - " 'Mystery',\n", - " 'Romance',\n", - " 'Sci-Fi',\n", - " 'Thriller',\n", - " 'War',\n", - " 'Western']" - ] - }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "list_of_genres = pd.read_csv(\n", - " raw_data_path / \"u.genre\", sep=\"|\", header=None, usecols=[0]\n", - ")[0].tolist()\n", - "list_of_genres" + "items.head()" ] }, { @@ -1899,16 +1854,7 @@ "execution_count": 29, "id": "68555183", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/javierrodriguezzaurin/Projects/pytorch-widedeep/pytorch_widedeep/preprocessing/tab_preprocessor.py:309: UserWarning: Continuous columns will not be normalised\n", - " warnings.warn(\"Continuous columns will not be normalised\")\n" - ] - } - ], + "outputs": [], "source": [ "X_train_tab = tab_preprocessor.fit_transform(X_train.fillna(0))\n", "X_test_tab = tab_preprocessor.transform(X_test.fillna(0))" @@ -2291,16 +2237,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "epoch 1: 100%|██████████████████████████████| 149/149 [00:16<00:00, 9.08it/s, loss=6.66]\n", - "valid: 100%|██████████████████████████████████| 38/38 [00:01<00:00, 23.53it/s, loss=6.61]\n", - "epoch 2: 100%|██████████████████████████████| 149/149 [00:16<00:00, 9.11it/s, loss=5.99]\n", - "valid: 100%|██████████████████████████████████| 38/38 [00:01<00:00, 23.07it/s, loss=6.55]\n", - "epoch 3: 100%|██████████████████████████████| 149/149 [00:16<00:00, 9.11it/s, loss=5.67]\n", - "valid: 100%|██████████████████████████████████| 38/38 [00:01<00:00, 22.89it/s, loss=6.55]\n", - "epoch 4: 100%|██████████████████████████████| 149/149 [00:16<00:00, 8.81it/s, loss=5.43]\n", - "valid: 100%|██████████████████████████████████| 38/38 [00:01<00:00, 21.43it/s, loss=6.57]\n", - "epoch 5: 100%|██████████████████████████████| 149/149 [00:16<00:00, 8.79it/s, loss=5.24]\n", - "valid: 100%|███████████████████████████████████| 38/38 [00:01<00:00, 22.39it/s, loss=6.6]\n" + "epoch 1: 100%|█████████████████████████████████████████████████████████████████████████| 149/149 [00:16<00:00, 8.82it/s, loss=6.66]\n", + "valid: 100%|█████████████████████████████████████████████████████████████████████████████| 38/38 [00:01<00:00, 21.14it/s, loss=6.61]\n", + "epoch 2: 100%|█████████████████████████████████████████████████████████████████████████| 149/149 [00:17<00:00, 8.53it/s, loss=5.98]\n", + "valid: 100%|█████████████████████████████████████████████████████████████████████████████| 38/38 [00:01<00:00, 23.20it/s, loss=6.53]\n", + "epoch 3: 100%|█████████████████████████████████████████████████████████████████████████| 149/149 [00:17<00:00, 8.61it/s, loss=5.66]\n", + "valid: 100%|█████████████████████████████████████████████████████████████████████████████| 38/38 [00:01<00:00, 23.16it/s, loss=6.54]\n", + "epoch 4: 100%|█████████████████████████████████████████████████████████████████████████| 149/149 [00:17<00:00, 8.76it/s, loss=5.43]\n", + "valid: 100%|█████████████████████████████████████████████████████████████████████████████| 38/38 [00:01<00:00, 22.03it/s, loss=6.56]\n", + "epoch 5: 100%|█████████████████████████████████████████████████████████████████████████| 149/149 [00:17<00:00, 8.28it/s, loss=5.23]\n", + "valid: 100%|█████████████████████████████████████████████████████████████████████████████| 38/38 [00:01<00:00, 22.60it/s, loss=6.59]\n" ] } ], From e75c119073312e6bee047e52ad89a900125f524b Mon Sep 17 00:00:00 2001 From: Javier Date: Mon, 31 Jul 2023 17:36:48 +0100 Subject: [PATCH 9/9] bump version to 1.3.1 --- VERSION | 2 +- pytorch_widedeep/version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index f0bb29e7..3a3cd8cc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.3.0 +1.3.1 diff --git a/pytorch_widedeep/version.py b/pytorch_widedeep/version.py index 67bc602a..9c73af26 100644 --- a/pytorch_widedeep/version.py +++ b/pytorch_widedeep/version.py @@ -1 +1 @@ -__version__ = "1.3.0" +__version__ = "1.3.1"