{ "cells": [ { "cell_type": "markdown", "id": "dca49492", "metadata": {}, "source": [ "# Tutorial 6: Quantifying variation in subcellular protein localization (CellAligner)" ] }, { "cell_type": "markdown", "id": "c27d59b5", "metadata": {}, "source": [ "To demonstrate the functionality of GW-OT, we will perform an analysis on immunoflourescence data from the Human Protein Atlas. We will working with a small subset of 373 cells from 70 images, which can be downloaded from this [link](https://www.dropbox.com/scl/fi/63tquyl5b6psiczrgihdn/hpa_images_metadata.zip?rlkey=7iz9cl5u35bvfupip6f0iicf3&st=ocpnazb7&dl=0).\n", "\n", "First, we will process the cell images, sample points from the cell boundary for morphological analysis and storing the subcellular protein information for localization analysis. We assume that cell segmentation has been performed on each image. Nuclear segmentation is optional, but can improve compartmental specificity in the localization analysis. \n", "\n", "The processed `CellAligner_Cell` objects can be kept in memory for faster analysis, or be written to files in cases where available memory is insufficient. All functions that take `CellAligner_Cell` objects as input, can also take in the paths to the saved `CellAligner_Cell` objects." ] }, { "cell_type": "code", "execution_count": 1, "id": "be4cb3a2", "metadata": {}, "outputs": [], "source": [ "import os\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from tqdm import tqdm\n", "import skimage as ski\n", "from cajal.subcellular import *" ] }, { "cell_type": "code", "execution_count": 2, "id": "c1ce056f", "metadata": {}, "outputs": [], "source": [ "# change to path to where data is located\n", "data_path = '/path/to/data/'\n", "\n", "# load image metadata\n", "image_metadata = pd.read_csv(os.path.join(data_path, 'image_metadata.csv'), index_col=0)" ] }, { "cell_type": "code", "execution_count": 3, "id": "e03a6861", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 60/60 [05:51<00:00, 5.86s/it]\n" ] } ], "source": [ "# create list to store cell objects\n", "cell_objects = []\n", "cell_metadata = pd.DataFrame(columns=image_metadata.columns)\n", "for i in tqdm(range(image_metadata.shape[0])):\n", " im_path = os.path.join(data_path, 'images', image_metadata.iloc[i]['image_file'])\n", " # load image\n", " im = ski.io.imread(im_path)\n", " channels = ['microtubules', 'protein', 'DNA'] # names of channels in image\n", " # load cell and nuclear segmentation masks\n", " im_cell_mask = ski.io.imread(im_path.replace('blue_red_green.jpg','predictedmask.png'))\n", " im_nuc_mask = ski.io.imread(im_path.replace('blue_red_green.jpg','predictednucmask.png'))\n", " # create cell objects from image\n", " image_cell_objects = process_image(im, channels, im_cell_mask, im_nuc_mask, ds_target_size=1000)\n", " cell_objects.extend(image_cell_objects)\n", " # save metadata for each cell\n", " n_image_cells = len(image_cell_objects)\n", " cell_metadata = pd.concat([cell_metadata, image_metadata.iloc[i:i+1].reset_index(drop=True).loc[np.repeat(0, n_image_cells)]], ignore_index=True)" ] }, { "cell_type": "markdown", "id": "363d4b4a", "metadata": {}, "source": [ "To capture the morphological variation between cells, we compute the Gromov-Wasserstein distance between each pair of cells, using points sampled from each cell boundary." ] }, { "cell_type": "code", "execution_count": null, "id": "d451e68e", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 69378/69378 [30:15<00:00, 38.22it/s] \n" ] } ], "source": [ "gw_dmat = gw_pairwise_parallel(cell_objects, num_processes=cpu_count(), chunksize=20) " ] }, { "cell_type": "markdown", "id": "7c526dd3", "metadata": {}, "source": [ "We can the cluster the cells based on the computed Gromov-Wasserstein morphology space to identify groups of cells that display similar morphologies. We can also use UMAP to embed the morphology space into 2 dimensions for visualization." ] }, { "cell_type": "code", "execution_count": 7, "id": "a7317fd0", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/umap/umap_.py:1780: UserWarning:\n", "\n", "using precomputed metric; inverse_transform will be unavailable\n", "\n", "/opt/conda/lib/python3.10/site-packages/plotly/express/_core.py:1992: FutureWarning:\n", "\n", "When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.\n", "\n" ] }, { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.io as pio\n", "\n", "# Choose the adequate plotly renderer for visualizing plotly graphs in your system\n", "pio.renderers.default = 'notebook_connected'\n", "# pio.renderers.default = 'iframe'\n", "\n", "import cajal.utilities\n", "import umap\n", "import plotly.express\n", "\n", "# Compute UMAP representation of the GW morphology space\n", "reducer = umap.UMAP(metric=\"precomputed\", random_state=1)\n", "embedding = reducer.fit_transform(gw_dmat)\n", "\n", "# Cluster cells based on the GW morphology space using the leiden algorithm\n", "gw_clusters = cajal.utilities.leiden_clustering(gw_dmat, resolution=0.003, seed=1)\n", "\n", "# Visualize the GW morphology space\n", "plotly.express.scatter(x=embedding[:,0],\n", " y=embedding[:,1],\n", " template=\"simple_white\",\n", " hover_name=[\"cell_\" + str(i) for i in range(gw_dmat.shape[0])],\n", " color = [str(c) for c in gw_clusters]\n", " )" ] }, { "cell_type": "markdown", "id": "28b35ff8", "metadata": {}, "source": [ "Cells in the same cluster should have similar morphologies. For example, we can visualize some cells from cluster 1." ] }, { "cell_type": "code", "execution_count": 5, "id": "2603a863", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABLkAAAGECAYAAADa5/IZAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPpZJREFUeJzt3X9QVPe9//EXCCxGZRGju1DBS1oj/ijGkAS3Jrmp0jDeNGMit9dk7MTmOsnEglVIpymd/LKTBJNM1dogJl6Lydx6aeiNNqkTvSmpONeAVRKmJjZEU++FVne97S276rcsFM73j1y22Qi6C7vsnrPPx8xnxj3ncHh/+LFveZ/PjyTDMAwBAAAAAAAAJpYc6wAAAAAAAACA0aLIBQAAAAAAANOjyAUAAAAAAADTo8gFAAAAAAAA06PIBQAAAAAAANOjyAUAAAAAAADTo8gFAAAAAAAA06PIBQAAAAAAANOjyAUAAAAAAADTo8gFAAAAAAAA00uJ1o1ra2v1/PPPy+12a/78+frRj36km2666YofNzAwoDNnzmjSpElKSkqKVngAkDAMw9D58+eVk5Oj5GTrPNsYaZ6RyDUAEGlWzTUjRZ4BgMgKOc8YUdDQ0GCkpaUZP/7xj40PPvjAeOCBB4zMzEzD4/Fc8WO7uroMSTQajUaLcOvq6orGW35MjCbPGAa5hkaj0aLVrJRrXnjhBWPGjBmGzWYzbrrpJuPIkSMhfyx5hkaj0aLTrpRnolLkuummm4zy8vLA6/7+fiMnJ8eoqam54sd2d3fH/ItGo9FoVmzd3d3ReMuPidHkGcMg19BoNFq0mlVyzWgfppBnaDQaLTrtSnkm4mOJe3t71dbWppKSksCx5ORklZSUqKWl5ZLr/X6/fD5foJ0/fz7SIQEAJMtMlwg3z0jkGgAYK1bJNZs2bdIDDzyg+++/X3PmzNH27dt11VVX6cc//nFIH2+VrwMAxJsrvb9GvMj1xz/+Uf39/XI4HEHHHQ6H3G73JdfX1NTIbrcHWm5ubqRDAgBYSLh5RiLXAABCF4mHKT6fb6zCBQB8SsxXhayurpbX6w20rq6uWIcEALAYcg0AIFQ8TAEA84r47opXX321xo0bJ4/HE3Tc4/HI6XRecr3NZpPNZot0GAAAiwo3z0jkGgBAdFVXV6uqqirw2ufzUegCgBiI+EiutLQ0FRUVqampKXBsYGBATU1Ncrlckf50AIAEQ54BAETTSB+mZGRkBDUAwNiLynTFqqoq7dixQy+//LJ++9vfas2aNbp48aLuv//+aHw6AECCIc8AAKKFhykAYF4Rn64oSStWrND//M//6PHHH5fb7dZ1112n/fv3XzKvHQCAkSDPAACiqaqqSqtWrdINN9ygm266SVu2bOFhCgCYQJJhGEasg/g0n88nu90e6zAAwHK8Xi/TJ/4PuQYAosNKueaFF17Q888/H3iYsnXrVhUXF4f0seQZAIiOK+UZilwAkCCs9IfHaJFrACA6yDWfIM8AQHRcKc9EZU0uAAAAAAAAYCxR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDphV3kOnTokO68807l5OQoKSlJe/fuDTpvGIYef/xxZWdna/z48SopKdHJkycjFS8AAAAAAABwibCLXBcvXtT8+fNVW1s75PnnnntOW7du1fbt23XkyBFNmDBBpaWl6unpGXWwAADr42EKAAAAgJEIu8i1dOlSPfXUU7r77rsvOWcYhrZs2aJHH31Uy5YtU2FhoV555RWdOXPmkj9SAAAYCg9TAAAAAIxESiRvdvr0abndbpWUlASO2e12FRcXq6WlRffcc88lH+P3++X3+wOvfT5fJEMCAJjM0qVLtXTp0iHPffZhiiS98sorcjgc2rt375B5BgAAAEBiiOjC8263W5LkcDiCjjscjsC5z6qpqZHdbg+03NzcSIYEALCQKz1MGY7f75fP5wtqAAAAAKwloiO5RqK6ulpVVVWB1z6fj0IXAGBII3mYIn3yQGXDhg1RjQ0AgM+67rpZGjduXNTu39Z2Imr3BgAziuhILqfTKUnyeDxBxz0eT+DcZ9lsNmVkZAQ1AAAiqbq6Wl6vN9C6urpiHRIAAACACItokSs/P19Op1NNTU2BYz6fT0eOHJHL5YrkpwIAJKCRPEyReKACAAAAJIKwi1wXLlxQe3u72tvbJX2yPkp7e7s6OzuVlJSk9evX66mnntLrr7+u48eP67777lNOTo7uuuuuCIcOAEg0PEwBAAAAMJyw1+Q6duyYvvzlLwdeD66ntWrVKu3atUvf+c53dPHiRT344IPq7u7WzTffrP379ys9PT1yUQMALOvChQs6depU4PXgw5SsrCzl5eUFHqbMnDlT+fn5euyxx3iYAgAAAEBJhmEYsQ7i03w+n+x2e6zDAADL8Xq9ppimd/DgwaCHKYMGH6YYhqEnnnhCL730UuBhyrZt23TttdeG/DnINQAQHWbJNdE2mGdYeB4AIutKeYYiFwAkCP7w+BtyDQBEhxlyzaFDh/T888+rra1NZ8+e1Z49e4JGAw8+TNmxY4e6u7u1aNEi1dXVaebMmSF/jrEqcl0OBTAAVnSlPBPRhecBAAAAIJ5dvHhR8+fPV21t7ZDnn3vuOW3dulXbt2/XkSNHNGHCBJWWlqqnp2eMIwUAhCvsNbkAAAAAwKyWLl2qpUuXDnnOMAxt2bJFjz76qJYtWyZJeuWVV+RwOLR3717dc889YxkqACBMjOQCAAAAAH2y2Ynb7VZJSUngmN1uV3FxsVpaWob9OL/fL5/PF9QAAGOPIhcAAAAASHK73ZIkh8MRdNzhcATODaWmpkZ2uz3QcnNzoxonAGBoFLkAAAAAYBSqq6vl9XoDraurK9YhAUBCosgFAAAAAJKcTqckyePxBB33eDyBc0Ox2WzKyMgIagCAscfC8wAAAAAgKT8/X06nU01NTbruuuskST6fT0eOHNGaNWtiG1yYiormROxebW0nInavSIpkH8MVr18TINFR5AIAAACQMC5cuKBTp04FXp8+fVrt7e3KyspSXl6e1q9fr6eeekozZ85Ufn6+HnvsMeXk5Oiuu+6KXdAAgJBQ5AIAAACQMI4dO6Yvf/nLgddVVVWSpFWrVmnXrl36zne+o4sXL+rBBx9Ud3e3br75Zu3fv1/p6emxChkAECKKXAAAAAASxm233SbDMIY9n5SUpO9///v6/ve/P4ZRAQAigYXnAQAAAAAAYHoUuQAAAAAAAGB6TFcEAAAAAAwrlrsYxquRfE3YkRGIPkZyAQAAAAAAwPQocgEAAAAAAMD0KHIBAAAAAADA9ChyAQAAAAAAwPQocgEAAAAAAMD02F0RAAAAAKKgvb3jkmPsVJi4hvves+siEDmM5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOmlxDoAswh1q1+2fwUAAAAAq/hgmONzI/YZLve3Jn9fAuFhJBcAAAAAAABMjyIXAAAAAAAATI8iFwAAAAAAAEyPIhcAAAAAAABMjyIXAAAAAAAATC+hd1cMdcdEAAAAAIiEy+2Wx98nkTLcjojx+jmG36lxuJ8Jdl0EhsZILgAAAAAAAJgeRS4AAAAAAACYXkJPVwQAAACkoacEMR0IAABzYSQXAAAAAAAATM+SI7liuWAjCwMCAAAAAACMPUsWuQAAAADAbIZ7MM6ui8MZi10U4xODK4ChMV0RAAAAAAAApsdILgAAACSMcEbEhHMtoycAAIi9sEZy1dTU6MYbb9SkSZM0bdo03XXXXero6Ai6pqenR+Xl5ZoyZYomTpyosrIyeTyeiAYNAAAAAAAAfFpYI7mam5tVXl6uG2+8UX/961/1ve99T7fffrtOnDihCRMmSJIqKyu1b98+NTY2ym63q6KiQsuXL9fhw4dHFajZ56FbbVtqq/UHAAAAAACYW1hFrv379we93rVrl6ZNm6a2tjbdeuut8nq92rlzp3bv3q3FixdLkurr6zV79my1trZq4cKFkYscAAAAAAAA+D+jWnje6/VKkrKysiRJbW1t6uvrU0lJSeCagoIC5eXlqaWlZch7+P1++Xy+oAYAAAAAAACEY8QLzw8MDGj9+vVatGiR5s2bJ0lyu91KS0tTZmZm0LUOh0Nut3vI+9TU1GjDhg0jDQMAYCE1NTV67bXX9OGHH2r8+PH60pe+pGeffVazZs0KXNPT06OHH35YDQ0N8vv9Ki0t1bZt2+RwOGIYOQAAiI4PYh3AGBhJH+cOefRyy/ywvAwSwYhHcpWXl+v9999XQ0PDqAKorq6W1+sNtK6urlHdDwBgXoNrP7a2tuqtt95SX1+fbr/9dl28eDFwTWVlpd544w01NjaqublZZ86c0fLly2MYNYB4VVQ055IGAACsa0QjuSoqKvSLX/xChw4d0vTp0wPHnU6nent71d3dHTSay+PxyOl0Dnkvm80mm802kjBMz2r/0RquPzwxABAq1n4EAAAAMFJhjeQyDEMVFRXas2eP3n77beXn5wedLyoqUmpqqpqamgLHOjo61NnZKZfLFZmIAQAJIxJrP0qs/wgAAAAkgrBGcpWXl2v37t36+c9/rkmTJgXW2bLb7Ro/frzsdrtWr16tqqoqZWVlKSMjQ2vXrpXL5eLpOgAgLJFa+1Fi/UcAAAAgEYQ1kquurk5er1e33XabsrOzA+2nP/1p4JrNmzfrq1/9qsrKynTrrbfK6XTqtddei3jgAABri9TajxLrPwIAAACJIKyRXIZhXPGa9PR01dbWqra2dsRBAQASWyTXfpQSe/1HIBHEwzqnQ8XAuqQAome4HRmH3nVRCv+9kvcwmNGId1cEACDSWPsRAAAAwEiNaHfFsXDddbM0bty4WIeBCIjG01WeKgDWxNqPAAAAAEYqbotcAIDEU1dXJ0m67bbbgo7X19frG9/4hqRP1n5MTk5WWVmZ/H6/SktLtW3btjGOFAAAAEC8ocgFAIgbrP0IAAAAYKQocgEAEOfCmfYdznTu4e7LlHBEUzwsEj9W+B0DAGBsUeQCAAAAAMTYcLsFIjwj+ToOvSPjSB5KUMRHrFHkgimxTTcAAAAAAPi05FgHAAAAAAAAAIwWRS4AAAAAAACYHkUuAAAAAAAAmB5rcgEAEGVjuZtcJD5XIu1+B8QCa4sCABAdcVvkam/vCHrNf7hxJWP1M8J/QmMnnO8x3ycAADCUmpoavfbaa/rwww81fvx4felLX9Kzzz6rWbNmBa7p6enRww8/rIaGBvn9fpWWlmrbtm1yOBwxjBwAcCVxW+QCAAAAgEhrbm5WeXm5brzxRv31r3/V9773Pd1+++06ceKEJkyYIEmqrKzUvn371NjYKLvdroqKCi1fvlyHDx+OcfRWNneY4x+MaRSJabiv8XDfk+HF6+AUHoAnDopcAAAAABLG/v37g17v2rVL06ZNU1tbm2699VZ5vV7t3LlTu3fv1uLFiyVJ9fX1mj17tlpbW7Vw4cJYhA0ACAELzwMAAABIWF6vV5KUlZUlSWpra1NfX59KSkoC1xQUFCgvL08tLS1D3sPv98vn8wU1AMDYYyQXAAAjEK/D8WEVkZs6EvkYRmss+2Aeo31PYSrOyAwMDGj9+vVatGiR5s2bJ0lyu91KS0tTZmZm0LUOh0Nut3vI+9TU1GjDhg3RDhcAcAWM5AIAAACQkMrLy/X++++roaFhVPeprq6W1+sNtK6urghFCAAIByO5gDCZffTGaJ/0mqX/o4mTp+EAAFhfRUWFfvGLX+jQoUOaPn164LjT6VRvb6+6u7uDRnN5PB45nc4h72Wz2WSz2aIdMgDgCihyAQAAAEgYhmFo7dq12rNnjw4ePKj8/Pyg80VFRUpNTVVTU5PKysokSR0dHers7JTL5YpFyMM+gDPLw0eY1UimrcfnlPThfld4uG09FLkAAAAAJIzy8nLt3r1bP//5zzVp0qTAOlt2u13jx4+X3W7X6tWrVVVVpaysLGVkZGjt2rVyuVzsrAgAcY4iFwAAAICEUVdXJ0m67bbbgo7X19frG9/4hiRp8+bNSk5OVllZmfx+v0pLS7Vt27YxjhQAEC6KXAAA/B+mfSC6IrFbYTj3CHXKSLR2URzt54vPKS/xKhLvX4kybccwjCtek56ertraWtXW1o5BRACASDFNkYt56EBk8DtzZczZBwAAAADzSY51AAAAAAAAAMBomWYkFwAAAAAg0Vxu6vJYT7fGlZlrR8bLzXJhFoc5MZILAAAAAAAApsdILgBAwrruulkaN25crMOAJcXD6IJ4iGE0orHIPi4nnHU7GeEAAIhHFLmAiGG3KAAAAAAAYoXpigAAAAAAADA9ilwAAAAAAAAwPYpcAAAAAAAAMD3W5AIAAAAAmNBwa92afeONRBPu94s1jjE80xe5Qt3ZJZzdYmAl8ZjgohETb/RjYaj3EXaXAoB4wE6MY+2zObG/v1/t7R0xigYAgE8wXREAAAAAAACmR5ELAAAAAAAApkeRCwAAAAAAAKZHkQsAAAAAAACmZ/qF5wEAGKnPLpLMJiVAImCRepgP+SlcZvvdjcfNsgBzSpgi11A7oJEsrCaRkwP/YY8VdlwEAAAAgPjAdEUAAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJheWEWuuro6FRYWKiMjQxkZGXK5XHrzzTcD53t6elReXq4pU6Zo4sSJKisrk8fjiXjQAABEwnXXzVJR0ZxAA4BgHwzRAABAvEoyDMMI9eI33nhD48aN08yZM2UYhl5++WU9//zzeu+99zR37lytWbNG+/bt065du2S321VRUaHk5GQdPnw45IB8Pp/sdvuIOhNN/PETb/hPZmSxGH20xcNi9F6vVxkZGbEOIy4M5prrrpulcePGxTocWBJ5yrrImUPp7+9Xe3sHueb/jNXfNPyNEq/IAbET/ffoePh/fSK7Up4Ja3fFO++8M+j1008/rbq6OrW2tmr69OnauXOndu/ercWLF0uS6uvrNXv2bLW2tmrhwoUjCB8AAAAAAAC4shGvydXf36+GhgZdvHhRLpdLbW1t6uvrU0lJSeCagoIC5eXlqaWlZdj7+P1++Xy+oAYAAAAAAACEI+wi1/HjxzVx4kTZbDY99NBD2rNnj+bMmSO32620tDRlZmYGXe9wOOR2u4e9X01Njex2e6Dl5uaG3QkAAAAAAAAktrCLXLNmzVJ7e7uOHDmiNWvWaNWqVTpxYuRzUqurq+X1egOtq6trxPcCAJgbG5wAAAAAGKmw1uSSpLS0NH3hC1+QJBUVFeno0aP64Q9/qBUrVqi3t1fd3d1Bo7k8Ho+cTuew97PZbLLZbOFHPsaGWlyOhR7HCgs3Rt9QX2MW1o2k4d4vWLgy2PTp07Vx48agDU6WLVsW2OCksrJS+/btU2NjY2CDk+XLl4e1wQkwNsJ5DyXPAQAARMKI1+QaNDAwIL/fr6KiIqWmpqqpqSlwrqOjQ52dnXK5XKP9NACABHDnnXfqH/7hHzRz5kxde+21evrppzVx4kS1trbK6/Vq586d2rRpkxYvXqyioiLV19frnXfeUWtra6xDBwAAABBjYY3kqq6u1tKlS5WXl6fz589r9+7dOnjwoA4cOCC73a7Vq1erqqpKWVlZysjI0Nq1a+VyudhZEQAQtv7+fjU2Noa8wcnlco3f75ff7w+8ZpMTAICZMIMEiB/M0IhvYRW5zp07p/vuu09nz56V3W5XYWGhDhw4oK985SuSpM2bNys5OVllZWXy+/0qLS3Vtm3bohI4AMCajh8/LpfLpZ6eHk2cODGwwUl7e/uINjiRPtnkZMOGDVGMGgAAAECshVXk2rlz52XPp6enq7a2VrW1taMKCgCQuAY3OPF6vfrZz36mVatWqbm5eVT3rK6uVlVVVeC1z+djN18AAADAYsJeeB5/E85wRIYYA0BoIr3BiWSeTU6QqFikHgAAIBJGvfA8AADRxAYnAAAAAELBSC4AQNxggxMAAAAAI0WRCwAQN9jgBACASw23TApLosQS08fj03Dfl3CWBhiZy/0+svPi2KHIBQCIG2xwAgAAAGCkWJMLAAAAAAAApsdIrjES6vBEhhwjfsRuqG8iGep3nuHMAIY31HswU2Yw9shVAIB4xEguAAAAAAAAmB5FLgAAAAAAAJge0xUBAAAAABgSU8IxepFclojp4pfHSC4AAAAAAACYHiO54kw4VVkWqQesKdTfbZ7iAACijVwDADATRnIBAAAAAADA9ChyAQAAAAAAwPQocgEAAAAAAMD0KHIBAAAAAADA9Fh43sSGWgiUxegBAACAxDCSjQH4e2E4H8Q6ACAkw/0Os1HIJyhyAQAAmAZ/hMXecN+DuWMaRTTwBxIAwOyYrggAAAAAAADTo8gFAAAAAAAA06PIBQAAAAAAANOjyGUxbW0nLmnmN3eIhugb6uvO1x4AAJhbXV2dCgsLlZGRoYyMDLlcLr355puB8z09PSovL9eUKVM0ceJElZWVyePxxDBiAECoWHgeAAAg7rDAPKLHGg9BR2769OnauHGjZs6cKcMw9PLLL2vZsmV67733NHfuXFVWVmrfvn1qbGyU3W5XRUWFli9frsOHD8c69IgY7vvProuAubHr4icocgEAAABIGHfeeWfQ66efflp1dXVqbW3V9OnTtXPnTu3evVuLFy+WJNXX12v27NlqbW3VwoULYxEyACBETFcEAAAAkJD6+/vV0NCgixcvyuVyqa2tTX19fSopKQlcU1BQoLy8PLW0tAx7H7/fL5/PF9QAAGOPIhcAAACAhHL8+HFNnDhRNptNDz30kPbs2aM5c+bI7XYrLS1NmZmZQdc7HA653e5h71dTUyO73R5oubm5Ue4BAGAoFLkAAAAAJJRZs2apvb1dR44c0Zo1a7Rq1SqdODHydWuqq6vl9XoDraurK4LRAgBCxZpcCWCoheZYWBIAkGhGmw9ZrBlmlGgLDocqLS1NX/jCFyRJRUVFOnr0qH74wx9qxYoV6u3tVXd3d9BoLo/HI6fTOez9bDabbDZbtMMGAFwBRS4AAAAACW1gYEB+v19FRUVKTU1VU1OTysrKJEkdHR3q7OyUy+WKcZTRdbmCKMV8mMfcWAeAGKPIBQAAACBhVFdXa+nSpcrLy9P58+e1e/duHTx4UAcOHJDdbtfq1atVVVWlrKwsZWRkaO3atXK5XOysCAAmQJELAAAAQMI4d+6c7rvvPp09e1Z2u12FhYU6cOCAvvKVr0iSNm/erOTkZJWVlcnv96u0tFTbtm2LcdQAgFBQ5AIAAACQMHbu3HnZ8+np6aqtrVVtbe0YRQQAiBSKXAkqnEVI43MO/lBzrT8Y8yisg7nrZjTc7yaLDAMAAABIRBS5AAAJq729I9YhxFR8PsQY20JtJD7XaO8x9PdhuIcPPNCJPR4MAQAQr5JjHQAAAAAAAAAwWozkAgAAAAAMK9wRq/E6UjgxxHq06ViMOI51H81lJL+PZl7+hJFcAAAAAAAAMD1GcuGKhqrixufTmXAq+om8pglPPqzus7+f/f39Cb/2FAAAAADro8gFAECCMvNQdCsJ7/uQdMmRoiIjcsHgM3gwBACAmTBdEQAAAAAAAKZHkQsAAAAAAACmN6rpihs3blR1dbXWrVunLVu2SJJ6enr08MMPq6GhQX6/X6Wlpdq2bZscDkck4gUAAAAAxLHLTcOOz7V9peGnJ8frWr7xOp06kl/HeO2j9Q33e2qGpS5GXOQ6evSoXnzxRRUWFgYdr6ys1L59+9TY2Ci73a6KigotX75chw8fHnWwiB/RWIx+bH9hLl3TZChD9ykeEx0JIBGZIckAAAAAwFgZ0XTFCxcuaOXKldqxY4cmT54cOO71erVz505t2rRJixcvVlFRkerr6/XOO++otbU1YkEDAAAAAAAAnzaikVzl5eW64447VFJSoqeeeipwvK2tTX19fSopKQkcKygoUF5enlpaWrRw4cJL7uX3++X3+wOvfT7fSEICAABISG1toY1ODlfspxSN9chpRkUDAGB2YRe5Ghoa9O677+ro0aOXnHO73UpLS1NmZmbQcYfDIbfbPeT9ampqtGHDhnDDAAAAAAAAAALCmq7Y1dWldevW6Sc/+YnS09MjEkB1dbW8Xm+gdXV1ReS+AAAAAAAASBxhjeRqa2vTuXPndP311weO9ff369ChQ3rhhRd04MAB9fb2qru7O2g0l8fjkdPpHPKeNptNNpttZNEDAAAAAExjuI1zYj9Fejhm23UxXjEl3Aou93saL5tihVXkWrJkiY4fPx507P7771dBQYEeeeQR5ebmKjU1VU1NTSorK5MkdXR0qLOzUy6XK3JRIy7Fyw91JA3dp6HXPonfxAwrsOLvVyg2btyo6upqrVu3Tlu2bJEk9fT06OGHH1ZDQ4P8fr9KS0u1bds2ORyO2AYLAAAAIKbCKnJNmjRJ8+bNCzo2YcIETZkyJXB89erVqqqqUlZWljIyMrR27Vq5XK4hF50HAGA4R48e1YsvvqjCwsKg45WVldq3b58aGxtlt9tVUVGh5cuX6/DhwzGKFLCmcIrr0XnQw1N/AAAQnrDW5ArF5s2b9dWvflVlZWW69dZb5XQ69dprr0X60wAALOzChQtauXKlduzYocmTJweOe71e7dy5U5s2bdLixYtVVFSk+vp6vfPOO2ptbY1hxAAAAABibdRFroMHDwamkEhSenq6amtr9b//+7+6ePGiXnvttWHX4wIAYCjl5eW64447VFJSEnS8ra1NfX19QccLCgqUl5enlpaWYe/n9/vl8/mCGgAAAABrCWu6IgAA0dbQ0KB3331XR48eveSc2+1WWlpa0OYmkuRwOOR2u4e9Z01NjTZs2BDpUAEAAADEEYpcQISEunYJC9SbV6Iu/j6Wurq6tG7dOr311ltKT0+P2H2rq6tVVVUVeO3z+ZSbmxux+wMAAACIPYpcAIC40dbWpnPnzun6668PHOvv79ehQ4f0wgsv6MCBA+rt7VV3d3fQaC6Px3PZqfE2m002my2aoQMAgFEY7mFi/D4gvtzmGB9E8F6AOQz3uzrWAwUocgEA4saSJUt0/PjxoGP333+/CgoK9Mgjjyg3N1epqalqampSWVmZJKmjo0OdnZ1yuVyxCBmARv8f2Pj9IxYAAJgJRS4AQNyYNGmS5s2bF3RswoQJmjJlSuD46tWrVVVVpaysLGVkZGjt2rVyuVxauHBhLEIGAAAAECcocgEATGXz5s1KTk5WWVmZ/H6/SktLtW3btliHBQAAACDGKHIBY2yoKR1mn6bBNBVE08GDB4Nep6enq7a2VrW1tbEJCAAAAEBcSo51AAAAAAAAAMBoMZILAAAAMTWWOy8xehgwl5G8P8T+95zdEoFYYSQXAAAAAAAATI8iFwAAAAAAAEyP6YpAHBjLaRrxyIqL8QMAAAAAxhYjuQAAAAAAAGB6jOQCAABAwojX0dOMYAYAYPQocgEAAAAALMOcOzJGRqwL+Vb5OiJyhvuZiNbPKtMVAQAAAAAAYHoUuQAAAAAAAGB6TFcEEJfYcREAAAAAEA5GcgEAAAAAAMD0GMkFAAAAxFisF4sGAMAKGMkFAAAAAAAA02MkFwAAAAAgocVyNOXl1p1llCcQHopcAExjtEmehesBAAAAwLqYrggAAAAAAADTo8gFAAAAAAAA06PIBQAAAAAAANOjyAUAAAAAAADTY+F5AAmD3WkAAAAQb/g/KhJRtHYVZSQXAAAAAAAATI8iFwAAAAAAAEyPIhcAAAAAAABMjyIXAAAAAAAATI8iFwAAAAAAAEyPIhcAAACAhLRx40YlJSVp/fr1gWM9PT0qLy/XlClTNHHiRJWVlcnj8cQuSCAOFRXNGbIBsUaRCwAAAEDCOXr0qF588UUVFhYGHa+srNQbb7yhxsZGNTc368yZM1q+fHmMogQAhIMiFwAAAICEcuHCBa1cuVI7duzQ5MmTA8e9Xq927typTZs2afHixSoqKlJ9fb3eeecdtba2xjBiAEAoKHIBAAAASCjl5eW64447VFJSEnS8ra1NfX19QccLCgqUl5enlpaWYe/n9/vl8/mCGgBg7KXEOgAAAAAAGCsNDQ169913dfTo0UvOud1upaWlKTMzM+i4w+GQ2+0e9p41NTXasGFDpEMFAISJkVwAAAAAEkJXV5fWrVunn/zkJ0pPT4/Yfaurq+X1egOtq6srYvcGAISOIhcAAACAhNDW1qZz587p+uuvV0pKilJSUtTc3KytW7cqJSVFDodDvb296u7uDvo4j8cjp9M57H1tNpsyMjKCGgBg7DFdEQAAAEBCWLJkiY4fPx507P7771dBQYEeeeQR5ebmKjU1VU1NTSorK5MkdXR0qLOzUy6XKxYhA3Gpre3EkMeLiuaMcSSwoqF+jvr7+9Xe3nHFj6XIBQAAACAhTJo0SfPmzQs6NmHCBE2ZMiVwfPXq1aqqqlJWVpYyMjK0du1auVwuLVy4MBYhAwDCENZ0xSeffFJJSUlBraCgIHC+p6dH5eXlmjJliiZOnKiysjJ5PJ6IBw0AAAAA0bB582Z99atfVVlZmW699VY5nU699tprsQ4LABCCsEdyzZ07V7/85S//doOUv92isrJS+/btU2Njo+x2uyoqKrR8+XIdPnw4MtECAAAAQAQdPHgw6HV6erpqa2tVW1sbm4AAACMWdpErJSVlyEUXvV6vdu7cqd27d2vx4sWSpPr6es2ePVutra0M7wUAAAAAAEDUhL274smTJ5WTk6NrrrlGK1euVGdnp6RPdirp6+tTSUlJ4NqCggLl5eWppaVl2Pv5/X75fL6gBgAAAAAAAIQjrJFcxcXF2rVrl2bNmqWzZ89qw4YNuuWWW/T+++/L7XYrLS1NmZmZQR/jcDjkdruHvWdNTY02bNgwouABAAAAAEB8YNdFxFpYRa6lS5cG/l1YWKji4mLNmDFDr776qsaPHz+iAKqrq1VVVRV47fP5lJubO6J7AQAAAAAAIDGFPV3x0zIzM3Xttdfq1KlTcjqd6u3tVXd3d9A1Ho9nyDW8BtlsNmVkZAQ1AAAAAAAAIByjKnJduHBBH3/8sbKzs1VUVKTU1FQ1NTUFznd0dKizs1Mul2vUgQIAAAAAAADDCavI9e1vf1vNzc36r//6L73zzju6++67NW7cON17772y2+1avXq1qqqq9Ktf/UptbW26//775XK52FkRABCSJ598UklJSUGtoKAgcL6np0fl5eWaMmWKJk6cqLKyMnk8nhhGDAAAACBehLUm1+9//3vde++9+tOf/qSpU6fq5ptvVmtrq6ZOnSpJ2rx5s5KTk1VWVia/36/S0lJt27YtKoEDAKxp7ty5+uUvfxl4nZLyt1RVWVmpffv2qbGxUXa7XRUVFVq+fLkOHz4ci1ABAAAAxJEkwzCMWAfxaT6fT3a7PdZhAIDleL3euF/38Mknn9TevXvV3t5+yTmv16upU6dq9+7d+sd//EdJ0ocffqjZs2erpaUlrFHD5BoAiA4z5JqxQJ4BEC+ssrNlf3+/2ts7rphnRrUmFwAAkXby5Enl5OTommuu0cqVK9XZ2SlJamtrU19fn0pKSgLXFhQUKC8vTy0tLZe9p9/vl8/nC2oAAAAArIUiFwAgbhQXF2vXrl3av3+/6urqdPr0ad1yyy06f/683G630tLSlJmZGfQxDodDbrf7svetqamR3W4PtNzc3Cj2AgAAAEAshLUmFwAA0bR06dLAvwsLC1VcXKwZM2bo1Vdf1fjx40d83+rqalVVVQVe+3w+Cl0AAACAxTCSCwAQtzIzM3Xttdfq1KlTcjqd6u3tVXd3d9A1Ho9HTqfzsvex2WzKyMgIagAAAACshSIXACBuXbhwQR9//LGys7NVVFSk1NRUNTU1Bc53dHSos7NTLpcrhlECAAAAiAdMVwQAxI1vf/vbuvPOOzVjxgydOXNGTzzxhMaNG6d7771Xdrtdq1evVlVVlbKyspSRkaG1a9fK5XKFtbMiAAAAAGuiyAUAiBu///3vde+99+pPf/qTpk6dqptvvlmtra2aOnWqJGnz5s1KTk5WWVmZ/H6/SktLtW3bthhHDQAAAMSntrYTsQ5hTCUZhmHEOohP8/l8stvtsQ4DACzH6/WyFtX/IdcAQHSQaz5BngGA6LhSnmFNLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJgeRS4AAAAAAACYHkUuAAAAAAAAmB5FLgAAAAAAAJhe2EWuP/zhD/r617+uKVOmaPz48friF7+oY8eOBc4bhqHHH39c2dnZGj9+vEpKSnTy5MmIBg0AAAAAAAB8WlhFrj//+c9atGiRUlNT9eabb+rEiRP6wQ9+oMmTJweuee6557R161Zt375dR44c0YQJE1RaWqqenp6IBw8AAAAA4XjyySeVlJQU1AoKCgLne3p6VF5erilTpmjixIkqKyuTx+OJYcQAgFClhHPxs88+q9zcXNXX1weO5efnB/5tGIa2bNmiRx99VMuWLZMkvfLKK3I4HNq7d6/uueeeCIUNAAAAACMzd+5c/fKXvwy8Tkn5259FlZWV2rdvnxobG2W321VRUaHly5fr8OHDsQgVABCGsEZyvf7667rhhhv0ta99TdOmTdOCBQu0Y8eOwPnTp0/L7XarpKQkcMxut6u4uFgtLS1D3tPv98vn8wU1AAAAAIiWlJQUOZ3OQLv66qslSV6vVzt37tSmTZu0ePFiFRUVqb6+Xu+8845aW1tjHDUA4ErCKnL97ne/U11dnWbOnKkDBw5ozZo1+ta3vqWXX35ZkuR2uyVJDocj6OMcDkfg3GfV1NTIbrcHWm5u7kj6AQAAAAAhOXnypHJycnTNNddo5cqV6uzslCS1tbWpr68v6KF9QUGB8vLyhn1oL/HgHgDiRVhFroGBAV1//fV65plntGDBAj344IN64IEHtH379hEHUF1dLa/XG2hdXV0jvhcAAAAAXE5xcbF27dql/fv3q66uTqdPn9Ytt9yi8+fPy+12Ky0tTZmZmUEfc7mH9hIP7gEgXoS1Jld2drbmzJkTdGz27Nn693//d0mS0+mUJHk8HmVnZweu8Xg8uu6664a8p81mk81mCycMAAAAABiRpUuXBv5dWFio4uJizZgxQ6+++qrGjx8/ontWV1erqqoq8Nrn81HoAoAYCGsk16JFi9TR0RF07KOPPtKMGTMkfbIIvdPpVFNTU+C8z+fTkSNH5HK5IhAuAAAAAEROZmamrr32Wp06dUpOp1O9vb3q7u4Ousbj8QQe6A/FZrMpIyMjqAEAxl5YRa7Kykq1trbqmWee0alTp7R792699NJLKi8vlyQlJSVp/fr1euqpp/T666/r+PHjuu+++5STk6O77rorGvEDAAAAwIhduHBBH3/8sbKzs1VUVKTU1NSgh/YdHR3q7OzkoT0AmIERpjfeeMOYN2+eYbPZjIKCAuOll14KOj8wMGA89thjhsPhMGw2m7FkyRKjo6Mj5Pt7vV5DEo1Go9Ei3Lxeb7hv+ZZFrqHRaLToNDPkmocfftg4ePCgcfr0aePw4cNGSUmJcfXVVxvnzp0zDMMwHnroISMvL894++23jWPHjhkul8twuVxhfQ7yDI1Go0WnXSnPhF3kijYSAo1Go0WnmeEPD8MwjN///vfGypUrjaysLCM9Pd2YN2+ecfTo0cD5wYcpTqfTSE9PN5YsWWJ89NFHYX0Ocg2NRqNFp5kh16xYscLIzs420tLSjM997nPGihUrjFOnTgXO/+UvfzG++c1vGpMnTzauuuoq4+677zbOnj0b1ucgz9BoNFp02pXyTJJhGIbiiM/nk91uj3UYAGA5Xq837tcI+fOf/6wFCxboy1/+stasWaOpU6fq5MmT+vznP6/Pf/7zkqRnn31WNTU1evnll5Wfn6/HHntMx48f14kTJ5Senh7S5yHXAEB0mCHXjAXyDABEx5XyTFi7KwIAEE3PPvuscnNzVV9fHziWn58f+LdhGNqyZYseffRRLVu2TJL0yiuvyOFwaO/evbrnnnvGPGYAAAAA8SGshecBAIim119/XTfccIO+9rWvadq0aVqwYIF27NgROH/69Gm53W6VlJQEjtntdhUXF6ulpWXY+/r9fvl8vqAGAAAAwFoocgEA4sbvfvc71dXVaebMmTpw4IDWrFmjb33rW3r55ZclSW63W5LkcDiCPs7hcATODaWmpkZ2uz3QcnNzo9cJAAAAADFBkQsAEDcGBgZ0/fXX65lnntGCBQv04IMP6oEHHtD27dtHdd/q6mp5vd5A6+rqilDEAAAAAOIFRS4AQNzIzs7WnDlzgo7Nnj1bnZ2dkiSn0ylJ8ng8Qdd4PJ7AuaHYbDZlZGQENQAAAADWQpELABA3Fi1apI6OjqBjH330kWbMmCHpk0XonU6nmpqaAud9Pp+OHDkil8s1prECAAAAiC/srggAiBuVlZX60pe+pGeeeUb/9E//pF//+td66aWX9NJLL0mSkpKStH79ej311FOaOXOm8vPz9dhjjyknJ0d33XVXbIMHAAAAEFMUuQAAcePGG2/Unj17VF1dre9///vKz8/Xli1btHLlysA13/nOd3Tx4kU9+OCD6u7u1s0336z9+/crPT09hpEDAAAAiLUkwzCMWAfxaT6fT3a7PdZhAIDleL1e1qL6P+QaAIgOcs0nyDMAEB1XyjOsyQUAAAAAAADTo8gFAAAAAAAA06PIBQAAAAAAANOjyAUAAAAAAADTo8gFAAAAAAAA04u7IlecbfYIAJbB++vf8LUAgOjg/fUTfB0AIDqu9P4ad0Wu8+fPxzoEALAk3l//hq8FAEQH76+f4OsAANFxpffXJCPOHjMMDAzozJkzmjRpks6fP6/c3Fx1dXUpIyMj1qFFhM/ns1SfrNYfyXp9slp/JPoULsMwdP78eeXk5Cg5Oe6ebcTEYK4xDEN5eXmW+lkaZMXfE4l+mY1V+yVZt28j7Re5JpjV/6YJlVV/T0KVyP2n74nZdyl6/Q81z6RE7DNGSHJysqZPny5JSkpKkiRlZGRY7ofDan2yWn8k6/XJav2R6FM47HZ7xO9pZoO5xufzSbLmz9Igq/aNfpmLVfslWbdvI+kXueZvEuVvmlAlct+lxO4/fU/MvkvR6X8oeYbHLAAAAAAAADA9ilwAAAAAAAAwvbguctlsNj3xxBOy2WyxDiVirNYnq/VHsl6frNYfiT4hcqz8dbdq3+iXuVi1X5J1+2bVfsVSIn9NE7nvUmL3n74nZt+l2Pc/7haeBwAAAAAAAMIV1yO5AAAAAAAAgFBQ5AIAAAAAAIDpUeQCAAAAAACA6VHkAgAAAAAAgOlR5AIAAAAAAIDpxW2Rq7a2Vn/3d3+n9PR0FRcX69e//nWsQwrZoUOHdOeddyonJ0dJSUnau3dv0HnDMPT4448rOztb48ePV0lJiU6ePBmbYENQU1OjG2+8UZMmTdK0adN01113qaOjI+ianp4elZeXa8qUKZo4caLKysrk8XhiFPGV1dXVqbCwUBkZGcrIyJDL5dKbb74ZOG+2/nzWxo0blZSUpPXr1weOma1PTz75pJKSkoJaQUFB4LzZ+jPoD3/4g77+9a9rypQpGj9+vL74xS/q2LFjgfNme38wOzPnGsl6+WaQFfOOZP3cM8gKOWiQVXORRD4aS2bPNaGwaj4KhVVzVigSJa+Fwkq5LxTxnB/jssj105/+VFVVVXriiSf07rvvav78+SotLdW5c+diHVpILl68qPnz56u2tnbI888995y2bt2q7du368iRI5owYYJKS0vV09MzxpGGprm5WeXl5WptbdVbb72lvr4+3X777bp48WLgmsrKSr3xxhtqbGxUc3Ozzpw5o+XLl8cw6subPn26Nm7cqLa2Nh07dkyLFy/WsmXL9MEHH0gyX38+7ejRo3rxxRdVWFgYdNyMfZo7d67Onj0baP/5n/8ZOGfG/vz5z3/WokWLlJqaqjfffFMnTpzQD37wA02ePDlwjdneH8zM7LlGsl6+GWTFvCNZO/cMslIOGmS1XCSRj8aSFXJNKKyaj0Jh1ZwVikTIa6GwYu4LRdzmRyMO3XTTTUZ5eXngdX9/v5GTk2PU1NTEMKqRkWTs2bMn8HpgYMBwOp3G888/HzjW3d1t2Gw249/+7d9iEGH4zp07Z0gympubDcP4JP7U1FSjsbExcM1vf/tbQ5LR0tISqzDDNnnyZONf/uVfTN2f8+fPGzNnzjTeeust4+///u+NdevWGYZhzu/RE088YcyfP3/Ic2bsj2EYxiOPPGLcfPPNw563wvuDmVgp1xiGNfPNIKvmHcOwRu4ZZKUcNMiKucgwyEdjyWq5JhRWzkehsHLOCoWV8loorJj7QhHP+THuRnL19vaqra1NJSUlgWPJyckqKSlRS0tLDCOLjNOnT8vtdgf1z263q7i42DT983q9kqSsrCxJUltbm/r6+oL6VFBQoLy8PFP0qb+/Xw0NDbp48aJcLpep+1NeXq477rgjKHbJvN+jkydPKicnR9dcc41Wrlypzs5OSebtz+uvv64bbrhBX/va1zRt2jQtWLBAO3bsCJy3wvuDWVg910jW+nmyWt6RrJV7BlktBw2yWi6SyEdjJRFyTSgS7efJijkrFFbMa6Gwau4LRbzmx5Sof4Yw/fGPf1R/f78cDkfQcYfDoQ8//DBGUUWO2+2WpCH7N3gung0MDGj9+vVatGiR5s2bJ+mTPqWlpSkzMzPo2njv0/Hjx+VyudTT06OJEydqz549mjNnjtrb203Zn4aGBr377rs6evToJefM+D0qLi7Wrl27NGvWLJ09e1YbNmzQLbfcovfff9+U/ZGk3/3ud6qrq1NVVZW+973v6ejRo/rWt76ltLQ0rVq1yvTvD2Zi9VwjmT/fDLJS3pGsl3sGWS0HDbJiLpLIR2MlEXJNKBLp58lqOSsUVs1robBq7gtFPOfHuCtyIb6Vl5fr/fffD5pva1azZs1Se3u7vF6vfvazn2nVqlVqbm6OdVgj0tXVpXXr1umtt95Senp6rMOJiKVLlwb+XVhYqOLiYs2YMUOvvvqqxo8fH8PIRm5gYEA33HCDnnnmGUnSggUL9P7772v79u1atWpVjKMD4pOV8o5krdwzyIo5aJAVc5FEPgKixWo5KxRWzGuhsHLuC0U858e4m6549dVXa9y4cZesvO/xeOR0OmMUVeQM9sGM/auoqNAvfvEL/epXv9L06dMDx51Op3p7e9Xd3R10fbz3KS0tTV/4whdUVFSkmpoazZ8/Xz/84Q9N2Z+2tjadO3dO119/vVJSUpSSkqLm5mZt3bpVKSkpcjgcpuvTZ2VmZuraa6/VqVOnTPk9kqTs7GzNmTMn6Njs2bMDQ3vN/P5gNlbPNZI1fp6slncka+WeQYmQgwZZIRdJ5KOxkgi5JhSJ8vNkxZwVCivmtVAkUu4LRTzlx7grcqWlpamoqEhNTU2BYwMDA2pqapLL5YphZJGRn58vp9MZ1D+fz6cjR47Ebf8Mw1BFRYX27Nmjt99+W/n5+UHni4qKlJqaGtSnjo4OdXZ2xm2fhjIwMCC/32/K/ixZskTHjx9Xe3t7oN1www1auXJl4N9m69NnXbhwQR9//LGys7NN+T2SpEWLFl2ypfRHH32kGTNmSDLn+4NZWT3XSOb+eUqUvCOZO/cMSoQcNMgKuUgiH42VRMg1obD6z1Mi5axQWCGvhSKRcl8o4io/Rn1p+xFoaGgwbDabsWvXLuPEiRPGgw8+aGRmZhputzvWoYXk/PnzxnvvvWe89957hiRj06ZNxnvvvWf893//t2EYhrFx40YjMzPT+PnPf2785je/MZYtW2bk5+cbf/nLX2Ic+dDWrFlj2O124+DBg8bZs2cD7f/9v/8XuOahhx4y8vLyjLfffts4duyY4XK5DJfLFcOoL++73/2u0dzcbJw+fdr4zW9+Y3z3u981kpKSjP/4j/8wDMN8/RnKp3f3MAzz9enhhx82Dh48aJw+fdo4fPiwUVJSYlx99dXGuXPnDMMwX38MwzB+/etfGykpKcbTTz9tnDx50vjJT35iXHXVVca//uu/Bq4x2/uDmZk91xiG9fLNICvmHcNIjNwzyOw5aJAVc5FhkI/GkhVyTSismo9CYdWcFYpEymuhsEruC0U858e4LHIZhmH86Ec/MvLy8oy0tDTjpptuMlpbW2MdUsh+9atfGZIuaatWrTIM45NtdB977DHD4XAYNpvNWLJkidHR0RHboC9jqL5IMurr6wPX/OUvfzG++c1vGpMnTzauuuoq4+677zbOnj0bu6Cv4J//+Z+NGTNmGGlpacbUqVONJUuWBN6MDcN8/RnKZ99kzdanFStWGNnZ2UZaWprxuc99zlixYoVx6tSpwHmz9WfQG2+8YcybN8+w2WxGQUGB8dJLLwWdN9v7g9mZOdcYhvXyzSAr5h3DSIzcM8jsOWiQVXORYZCPxpLZc00orJqPQmHVnBWKRMprobBK7gtFPOfHJMMwjOiOFQMAAAAAAACiK+7W5AIAAAAAAADCRZELAAAAAAAApkeRCwAAAAAAAKZHkQsAAAAAAACmR5ELAAAAAAAApkeRCwAAAAAAAKZHkQsAAAAAAACmR5ELAAAAAAAApkeRCwAAAAAAAKZHkQsAAAAAAACmR5ELAAAAAAAApvf/AaBZWcQVoY8ZAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cells_to_plot = [122, 177, 188] # Example cells from cluster 1\n", "fig, axes = plt.subplots(1, len(cells_to_plot), figsize=(15, 5))\n", "for ax, i in zip(axes, cells_to_plot):\n", " plot_cell_image(cell_objects[i], channels=['nucleus'], ax=ax)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "45b44dca", "metadata": {}, "source": [ "Before we quantify the variation in subcellular localization patterns, we must first map the protein localization patterns of each cell to an anchor cell. We recommend choosing centroid cell in in the morphology space, the most morphologically 'average' cell, as the anchor.\n", "\n", "There are two approaches for mapping to the anchor cell: Fused Gromov-Wasserstein and Fused Unbalanced Gromov-Wasserstein. Fused Gromov-Wasserstein performs a full cell to cell mapping, which is appropriate for datasets with relatively simple cell morphologies. Fused Unbalanced Gromov-Wasserstein allows for partial cell to cell mappings. This is useful in datasets with more complex cell morphologies (i.e neurons) where certain cell structures may be present in one cell, but missing in others.\n", "\n", "The \"Fused\" variant of Gromov-Wasserstein enables the mappings between cells to consider additional staining or segmentation information. By default, we choose the segmented nucleus mask to inform to mapping to better align cellular structures, but other stains can be used as well. The `fused_cost` and `fused_param` parameters control how much this additional information is considered in the mapping. Higher values of `fused_cost` and lower values of `fused_param` give greater weight to this additional information. In practive we've found the cell mappings to be more sensitive to changes in the `fused_cost` value, as opposed to the `fused_param` value.\n", "\n", "Finally, we have an option to perform a 'compartment-specific' mapping. We define this as enforcing a strict mapping of the nuclear regions of one cell to the nuclear regions of the other cell, and the same for the non-nuclear regions. This is more important in the full (non-unbalanced) mapping case, where large differences in nucleus size can result in poor alignment of the cellular compartments after mapping." ] }, { "cell_type": "code", "execution_count": 6, "id": "59478b5f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mapping cells to target cell:\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "373it [19:59, 3.22s/it] \n" ] } ], "source": [ "# We choose the morphological centroid cell as the anchor cell to map to\n", "target_cell_ind = find_centroid(gw_dmat)\n", "\n", "channels_to_map = ['protein'] # which distributions to quantify variation in localization patterns for\n", "# Mapping all cells to anchor cell\n", "mapped_distbs = map_to_cell_parallel(cell_objects, \n", " channels_to_map, \n", " target_cell_ind, # cell to map to\n", " method='fused', # 'fused' for full mapping, 'fused' for partial mapping\n", " fused_channel='nucleus', # addition info to consider for mapping\n", " fused_cost=1000, fused_param=0.1, # controls weight of additional info\n", " compartment_specific=True, # enforces strict mapping of nucleus to nucleus\n", " num_processes=cpu_count(), chunksize=1) # parallelization parameters" ] }, { "cell_type": "code", "execution_count": 7, "id": "1efce506", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mapping cells to target cell:\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "10it [00:48, 4.82s/it] \n" ] } ], "source": [ "mapped_distbs = map_to_cell_parallel(cell_objects[:10], \n", " channels_to_map, \n", " 0, # cell to map to\n", " method='fused', # 'fused' for full mapping, 'fused' for partial mapping\n", " fused_channel='nucleus', # addition info to consider for mapping\n", " fused_cost=1000, fused_param=0.1, # controls weight of additional info\n", " compartment_specific=True, # enforces strict mapping of nucleus to nucleus\n", " num_processes=cpu_count(), chunksize=1) # parallelization parameters" ] }, { "cell_type": "markdown", "id": "00434624", "metadata": {}, "source": [ "We can visualize some examples of the mapped to localalization patterns to see whether the mapping parameters need adjustment." ] }, { "cell_type": "code", "execution_count": 8, "id": "fe14f406", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABcgAAAPmCAYAAADQQXwHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2VBJREFUeJzs3Xl4VOX9//9XEsgkkSyEJYskgIBA2CxRIVUpAhpQESUuuKKlohaogFYbP25QNVStohbi8uELthpRFLRqhQIfCVqBSoSCUKlQKCgkKDYL2wST8/vDX0ZGEs59JjOZSeb5uK65ruTc77nP+ywz98w997lPhGVZlgAAAAAAAAAACDORwU4AAAAAAAAAAIBgoIMcAAAAAAAAABCW6CAHAAAAAAAAAIQlOsgBAAAAAAAAAGGJDnIAAAAAAAAAQFiigxwAAAAAAAAAEJboIAcAAAAAAAAAhCU6yAEAAAAAAAAAYYkOcgAAAAAAAABAWKKDHGhCDz30kCIiInx67oIFCxQREaFdu3b5N6nj7Nq1SxEREVqwYEHA1nEy9e2fLl266KabbgpKPgCA8ENbfXK01QCAUEB7fXK014AzdJADBrZs2aLrr79ep556qlwul9LT03Xddddpy5YtwU4tqMrKynTXXXepV69eiouL0ymnnKLs7Gw9/PDDKi8vb/J8/vznP2vgwIGKiYlRZmamHnzwQX333XdNngcAoOnRVtcvlNrqgwcPaurUqerUqZNcLpd69+6twsLCemOXL1+uc889V3FxcWrbtq2uuOKKgHZkAACaBu11/UKpvZ42bZoGDhyo5ORkxcXFqXfv3nrooYd08OBBr7iDBw/qwQcf1MiRI5WcnGz7g8A///lPjRw5Um3atFFycrJuuOEGff311wHeGsBMq2AnAIS6xYsX65prrlFycrImTJigrl27ateuXZo3b57eeOMNLVy4UJdffrlRXffdd59+85vf+JTHDTfcoHHjxsnlcvn0fH/75JNPdNFFF+ngwYO6/vrrlZ2dLUlav369Zs2apdWrV+uvf/1rk+Xz/vvv67LLLtPQoUP17LPPavPmzXr44Ye1f//+Br98AwBaBtrq+oVSW11TU6Pc3FytX79ekyZNUo8ePbRs2TL98pe/1H//+1/de++9nth3331XY8aM0cCBAzVr1ixVVlbq6aef1rnnnqsNGzaoQ4cOTZIzAMC/aK/rF0rtdV0+5513nm6++WbFxMRow4YNmjVrllasWKHVq1crMvL7sbbffPONZs6cqczMTA0YMECrVq1qsM4vv/xSQ4YMUWJioh599FEdPHhQTzzxhDZv3qy///3vio6ObqKtAxpgAWjQ9u3brbi4OKtXr17W/v37vcq+/vprq1evXtYpp5xi7dix46T1HDx4MJBp+s3OnTstSdb8+fNPGvff//7XOvXUU62UlBTrn//85wnlpaWl1m9/+1vH63/wwQetH78tde7c2Ro/frztc7OysqwBAwZYx44d8yz7n//5HysiIqLeHAEALQNtdf1Cra1+/fXXLUnWvHnzvJbn5eVZMTExVllZmWdZVlaW1b17d8vtdnuWbdy40YqMjLSmT5/uOGcAQPDRXtcv1NrrhjzxxBOWJGvNmjWeZUePHrX27dtnWZZlffLJJyfd3ttvv92KjY21/vOf/3iWLV++3JJkPf/88z7lBPgTU6wAJ/H444/r8OHDeuGFF04YrdS+fXs9//zzOnTokB577DHP8rq5vrZu3aprr71Wbdu21bnnnutVdrwjR47oV7/6ldq3b6/4+Hhdeuml+uqrrxQREaGHHnrIE1ffPGldunTRJZdcoo8++khnn322YmJidNppp+mPf/yj1zq+/fZb3XXXXerXr5/atGmjhIQEjRo1Sv/4xz982i/PP/+8vvrqKz355JPq1avXCeUpKSm67777vJa9//77Ou+883TKKacoPj5eF198sd8uo9u6dau2bt2qiRMnqlWrHy6M+eUvfynLsvTGG2/4ZT0AgNBDW12/UGurP/zwQ0nSuHHjvJaPGzdOR48e1dtvvy3p+/2wdetWXX755V6jyQYMGKDevXtr4cKFfskHANC0aK/rF2rtdUO6dOkiSV7TvbhcLqWmpho9/80339Qll1yizMxMz7IRI0bo9NNP1+uvv+7PVAGf0EEOnMQ777yjLl266Lzzzqu3fMiQIerSpYvee++9E8quvPJKHT58WI8++qhuueWWBtdx00036dlnn9VFF12k3/3ud4qNjdXFF19snOP27dt1xRVX6IILLtDvf/97tW3bVjfddJNXA/nvf/9bb731li655BI9+eST+vWvf63NmzfrZz/7mfbu3Wu8rjp//vOfFRsbqyuuuMIo/k9/+pMuvvhitWnTRr/73e90//33a+vWrTr33HP9Mp/ohg0bJElnnnmm1/L09HR16tTJUw4AaHloq+sXam212+1WVFTUCZdQx8XFSZJKSko8cZIUGxt7Qh1xcXHau3evSktLG50PAKBp0V7XL9Ta6zrfffedvvnmG+3du1d//etfdd999yk+Pl5nn32247q++uor7d+//4Tv65J09tln830dIYE5yIEGVFRUaO/evRozZsxJ4/r3768///nPqqqqUnx8vGf5gAEDVFRUdNLnfvrpp3r99dc1depUPfXUU5K+H/V88803G/8CvW3bNq1evdrzQeOqq65SRkaG5s+fryeeeEKS1K9fP/3rX//yzBUmfT/vWq9evTRv3jzdf//9Ruuq889//lOnn3660TxhBw8e1K9+9Sv94he/0AsvvOBZPn78ePXs2VOPPvqo13Jf7Nu3T5KUlpZ2QllaWppPH1QAAKGPtrphodZW9+zZUzU1NVq7dq1n9J/0w8jyr776StL3I+WSkpL0t7/9zev5Bw4c0NatWz2xpiPWAADBR3vdsFBrr+usX79eOTk5nv979uypP//5z0pOTnZcl9339W+//VZutztk5oRHeGIEOdCAqqoqSfJqmOtTV15ZWem1/LbbbrNdx9KlSyV933Afb8qUKcZ5ZmVlef0K36FDB/Xs2VP//ve/PctcLpenAa+pqdGBAwfUpk0b9ezZU59++qnxuupUVlba7pc6y5cvV3l5ua655hp98803nkdUVJQGDRqkDz74wPH6f+zIkSOSVG+DGhMT4ykHALQstNUNC7W2+tprr1ViYqJ+/vOfa/ny5dq1a5deeOEFzZ07V9IPbXlkZKRuvfVWrVy5Uvn5+friiy9UUlKiq666StXV1V6xAIDmgfa6YaHWXtfJysrS8uXL9dZbb+nuu+/WKaecooMHD/pUl9339eNjgGBhBDnQgLpGqq4xb0hDjX3Xrl1t1/Gf//xHkZGRJ8R2797dOM/j5/Cq07ZtW/33v//1/F9bW6unn35ac+fO1c6dO1VTU+Mpa9eunfG66iQkJNjulzpffPGFJGnYsGEN1tVYdZdh112WfbyjR4/We5k2AKD5o61uWKi11ampqfrzn/+sG264QRdeeKGn3meffVbjx49XmzZtPLEzZ87UN998o8cee0yzZs2SJF144YWaMGGCnnvuOa9YAEDoo71uWKi118fXNWLECEnSmDFjVFRU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9frrrys2NjaImSFYTnZOTJgwIYiZIZDGjRvn+btfv37q37+/unXrplWrVmn48OFBzMw/wvGzTkPbPHHiRM/f/fr1U1pamoYPH64dO3aoW7duTZ2mX4Tj566GtjkrK6tFHuNwRZsc2ppb29lS2sLm3r61lDarubdDLbGPIWSnWGnfvr2ioqJOuMNpWVmZUlNTg5RVy1O3L9nPvpk8ebLeffddffDBB+rUqZNneWpqqqqrq1VeXu4Vz341Ex0dre7duys7O1sFBQUaMGCAnn76afarj0pKSrR//34NHDhQrVq1UqtWrVRcXKxnnnlGrVq1UkpKCvvVT5KSknT66adr+/btnK+iLZe8z4lwwOeK75122mlq3759izju4fhZp6Ftrs+gQYMkqVkf63D83NXQNtenJRxjJ1py290S2uSW3M6GctvZUtrCltC+tZQ2q7m3Qy2xjyFkO8ijo6OVnZ2tlStXepbV1tZq5cqVXvPyoHG6du2q1NRUr/1cWVmpdevWsZ9PwrIsTZ48WUuWLNH//d//qWvXrl7l2dnZat26tdd+3bZtm3bv3s1+9UFtba3cbjf71UfDhw/X5s2btXHjRs/jzDPP1HXXXef5m/3qHwcPHtSOHTuUlpbG+Sracsn7nAgHfK743pdffqkDBw406+Mejp917La5Phs3bpSkZn2sfywcP3fVbXN9WuIxPpmW3Ha3hDa5Jbezodh2tpS2sCW3by2lzWpu7VCL7GMI6i1CbSxcuNByuVzWggULrK1bt1oTJ060kpKSrNLS0mCn1qxUVVVZGzZssDZs2GBJsp588klrw4YN1n/+8x/Lsixr1qxZVlJSkvX2229bmzZtssaMGWN17drVOnLkSJAzD1233367lZiYaK1atcrat2+f53H48GFPzG233WZlZmZa//d//2etX7/eysnJsXJycoKYdfPwm9/8xiouLrZ27txpbdq0yfrNb35jRUREWH/9618ty2K/+suP74zNfvXNnXfeaa1atcrauXOn9be//c0aMWKE1b59e2v//v2WZbFfLSv82nK7c6IlCMfPFSfb5qqqKuuuu+6y1qxZY+3cudNasWKFNXDgQKtHjx7W0aNHg526z8Lxs47dNm/fvt2aOXOmtX79emvnzp3W22+/bZ122mnWkCFDgpy578Lxc9fJtrklHmNftJS2u7m2yS2lnW0JbWdLaQtbSvvWUtqsltoONfc+hpDuILcsy3r22WetzMxMKzo62jr77LOttWvXBjulZueDDz6wJJ3wGD9+vGVZllVbW2vdf//9VkpKiuVyuazhw4db27ZtC27SIa6+/SnJmj9/vifmyJEj1i9/+Uurbdu2VlxcnHX55Zdb+/btC17SzcTPf/5zq3PnzlZ0dLTVoUMHa/jw4Z4Gz7LYr/7y48aL/eqbq6++2kpLS7Oio6OtU0891br66qut7du3e8rZr98Lp7bc7pxoCcLxc8XJtvnw4cPWhRdeaHXo0MFq3bq11blzZ+uWW25pdh1JPxaOn3Xstnn37t3WkCFDrOTkZMvlclndu3e3fv3rX1sVFRXBTbwRwvFz18m2uSUeY1+1hLa7ubbJLaWdbQltZ0tpC1tK+9ZS2qyW2g419z6GCMuyLP+MRQcAAAAAAAAAoPkI2TnIAQAAAAAAAAAIJDrIAQAAAAAAAABhiQ5yAAAAAAAAAEBYooMcAAAAAAAAABCW6CAHAAAAAAAAAIQlOsgBAAAAAAAAAGGJDnIAAAAAAAAAQFiigxwAAAAAAAAAEJboIAfgZejQoRo6dGhQ1r1r1y5FRERowYIFnmUPPfSQIiIigpIPAAChivYaAIDQRlsNNB90kAMNWLBggSIiIhQREaGPPvrohHLLspSRkaGIiAhdcsklQcgw+GpqajR//nwNHTpUycnJcrlc6tKli26++WatX7++yfP56quvdNVVVykpKUkJCQkaM2aM/v3vfzd5HgCApkN7bS/U2uuFCxdq4MCBiomJUYcOHTRhwgR98803J8SVlZXp5ptvVseOHRUbG6uBAwdq0aJFTZ4vAKBxaKvthVJbvWTJEuXm5io9PV0ul0udOnXSFVdcoc8+++yE2Ndee03XX3+9evTooYiIiJP+IOB2u3XPPfcoPT1dsbGxGjRokJYvXx7ALQHM0UEO2IiJiVFRUdEJy4uLi/Xll1/K5XIFIavgO3LkiC655BL9/Oc/l2VZuvfee1VYWKgbb7xRa9as0dlnn60vv/yyyfI5ePCgzj//fBUXF+vee+/VjBkztGHDBv3sZz/TgQMHmiwPAEBw0F7XL9Ta68LCQl1zzTVKTk7Wk08+qVtuuUULFy7U8OHDdfToUU9cZWWlzj33XL355pu69dZb9cQTTyg+Pl5XXXVVvccZABD6aKvrF2pt9ebNm9W2bVvdcccdmjt3rm6//XZt2LBBZ599tv7xj394xRYWFurtt99WRkaG2rZte9J6b7rpJj355JO67rrr9PTTTysqKkoXXXRRvT+aAE2tVbATAELdRRddpEWLFumZZ55Rq1Y/vGSKioqUnZ1d74incPDrX/9aS5cu1VNPPaWpU6d6lT344IN66qmnmjSfuXPn6osvvtDf//53nXXWWZKkUaNGqW/fvvr973+vRx99tEnzAQA0Ldrr+oVSe11dXa17771XQ4YM0fLlyz2Xef/0pz/V6NGj9eKLL2rKlCmSpOeff17bt2/XypUrNWzYMEnS7bffrsGDB+vOO+/UFVdcoejo6CbLHQDQeLTV9QultlqSHnjggROW/eIXv1CnTp1UWFio5557zrP8T3/6k0499VRFRkaqb9++Ddb597//XQsXLtTjjz+uu+66S5J04403qm/fvrr77rv18ccf+39DAAcYQQ7YuOaaa3TgwAGvS3+qq6v1xhtv6Nprr633OU888YR++tOfql27doqNjVV2drbeeOONE+IiIiI0efJkvfLKK+rZs6diYmKUnZ2t1atXe8XVzRX2+eef66qrrlJCQoLatWunO+64w2u0VZ2XX35Z2dnZio2NVXJyssaNG6c9e/acEPfCCy+oW7duio2N1dlnn60PP/zQaJ98+eWXev7553XBBRec0IBLUlRUlO666y516tTJs+yrr77Sz3/+c6WkpMjlcqlPnz76f//v/xmtz8Qbb7yhs846y9M5Lkm9evXS8OHD9frrr/ttPQCA0ER7faJQa68/++wzlZeX6+qrr/aaA/WSSy5RmzZttHDhQs+yDz/8UB06dPB0jktSZGSkrrrqKpWWlqq4uNgvOQEAmg5t9YlCra1uSMeOHRUXF6fy8nKv5RkZGYqMtO9afOONNxQVFaWJEyd6lsXExGjChAlas2ZNvfsUaEp0kAM2unTpopycHL366queZe+//74qKio0bty4ep/z9NNP6yc/+YlmzpypRx99VK1atdKVV16p995774TY4uJiTZ06Vddff71mzpypAwcOaOTIkfXO73XVVVfp6NGjKigo0EUXXaRnnnnGq4GRpEceeUQ33nijevTooSeffFJTp07VypUrNWTIEK/GbN68ebr11luVmpqqxx57TOecc44uvfRSo4bp/fff13fffacbbrjBNlb6fg7RwYMHa8WKFZo8ebKefvppde/eXRMmTNDs2bON6jiZ2tpabdq0SWeeeeYJZWeffbZ27NihqqqqRq8HABC6aK9PFGrttdvtliTFxsaeUBYbG6sNGzaotrbWE1tfXFxcnCSppKSk0fkAAJoWbfWJQq2tPl55ebm+/vprbd68Wb/4xS9UWVmp4cOH+1TXhg0bdPrppyshIcFr+dlnny1J2rhxY2PTBRrHAlCv+fPnW5KsTz75xPrDH/5gxcfHW4cPH7Ysy7KuvPJK6/zzz7csy7I6d+5sXXzxxV7PrYurU11dbfXt29caNmyY13JJliRr/fr1nmX/+c9/rJiYGOvyyy/3LHvwwQctSdall17q9fxf/vKXliTrH//4h2VZlrVr1y4rKirKeuSRR7ziNm/ebLVq1cqzvLq62urYsaN1xhlnWG632xP3wgsvWJKsn/3sZyfdN9OmTbMkWRs2bDhpXJ0JEyZYaWlp1jfffOO1fNy4cVZiYqJnf+3cudOSZM2fP/+EbT+Zr7/+2pJkzZw584SyOXPmWJKszz//3ChXAEDzQnvdsFBsryMiIqwJEyZ4Lf/88889+7hu3VOmTLEiIyOtXbt2nZCLJGvy5MlG2wQACD7a6oaFWlt9vJ49e3r2a5s2baz77rvPqqmpaTC+T58+DW5vnz59TjhmlmVZW7ZssSRZzz33nHFeQCAwghwwcNVVV+nIkSN69913VVVVpXfffbfBS8Ak75FR//3vf1VRUaHzzjtPn3766QmxOTk5ys7O9vyfmZmpMWPGaNmyZaqpqfGKnTRpktf/dfN0/uUvf5EkLV68WLW1tbrqqqv0zTffeB6pqanq0aOHPvjgA0nS+vXrtX//ft12221e83fedNNNSkxMtN0flZWVkqT4+HjbWMuy9Oabb2r06NGyLMsrr9zcXFVUVNS7X5w4cuSIJNV7U5eYmBivGABAy0V77S3U2uv27dvrqquu0ksvvaTf//73+ve//60PP/xQV199tVq3bi3ph/b6F7/4haKionTVVVfp448/1o4dO1RQUKAlS5Z4xQEAmhfaam+h1lYfb/78+Vq6dKnmzp2r3r1768iRIyfsR1NHjhzh+zpCGjfpBAx06NBBI0aMUFFRkQ4fPqyamhpdccUVDca/++67evjhh7Vx40bP5cSSvObbrNOjR48Tlp1++uk6fPiwvv76a6WmpjYY261bN0VGRmrXrl2SpC+++EKWZdVbpyTPl8///Oc/9dbXunVrnXbaaQ1uV526y6JMpi35+uuvVV5erhdeeEEvvPBCvTH79++3redk6j40Hb+v69TNI1ffZdoAgJaF9tpbqLXX0vc33zxy5Ijuuusuz026rr/+enXr1k2LFy9WmzZtJEn9+/dXUVGRbrvtNp1zzjmSpNTUVM2ePVu33367Jw4A0LzQVnsLxba6Tk5OjufvcePGqXfv3pK+nxfeqdjYWL6vI6TRQQ4Yuvbaa3XLLbeotLRUo0aNUlJSUr1xH374oS699FINGTJEc+fOVVpamlq3bq358+erqKjIrzn9+ENBbW2tIiIi9P777ysqKuqEeH99mezVq5ckafPmzTrjjDNOGls3l+j111+v8ePH1xvTv3//RuWTnJwsl8ulffv2nVBWtyw9Pb1R6wAANA+01z8ItfZakhITE/X2229r9+7d2rVrlzp37qzOnTvrpz/9qTp06OB1vK644gpdeuml+sc//qGamhoNHDhQq1atkvR9hwcAoHmirf5BKLbV9Wnbtq2GDRumV155xacO8rS0NH311VcnLOf7OkIFHeSAocsvv1y33nqr1q5dq9dee63BuDfffFMxMTFatmyZ1yVE8+fPrzf+iy++OGHZv/71L8XFxalDhw4nxHbt2tXz//bt21VbW6suXbpI+v5Xb8uy1LVr15N+cezcubOnvmHDhnmWHzt2TDt37tSAAQMafK4kjRo1SlFRUXr55ZdtbybSoUMHxcfHq6amRiNGjDhprK8iIyPVr18/rV+//oSydevW6bTTTjO6ZA0A0PzRXv8g1Nrr42VmZiozM1PS9zcBKykpUV5e3glx0dHROuusszz/r1ixQpKaJEcAQGDQVv8glNvqHzty5IgqKip8eu4ZZ5yhDz74QJWVlV436ly3bp2nHAgm5iAHDLVp00aFhYV66KGHNHr06AbjoqKiFBER4TU3165du/TWW2/VG79mzRqvecL27Nmjt99+WxdeeOEJv1TPmTPH6/9nn31W0veNqiSNHTtWUVFRmjFjhizL8oq1LEsHDhyQJJ155pnq0KGDnnvuOVVXV3tiFixY4HU37oZkZGTolltu0V//+ldPDserra3V73//e3355ZeKiopSXl6e3nzzzXrvHv7111/brs/EFVdcoU8++cSrk3zbtm36v//7P1155ZV+WQcAIPTRXv8gFNvr+uTn5+u7777TtGnTThr3xRdf6LnnntMll1zCCHIAaMZoq38Qim11fdO07Nq1SytXrtSZZ57pU51XXHGFampqvKaGcbvdmj9/vgYNGqSMjAyf8wX8gRHkgAMNXcZ0vIsvvlhPPvmkRo4cqWuvvVb79+/XnDlz1L17d23atOmE+L59+yo3N1e/+tWv5HK5NHfuXEnSjBkzTojduXOnLr30Uo0cOVJr1qzRyy+/rGuvvdbzq3S3bt308MMPKz8/X7t27dJll12m+Ph47dy5U0uWLNHEiRN11113qXXr1nr44Yd16623atiwYbr66qu1c+dOzZ8/32ieNEn6/e9/rx07duhXv/qVFi9erEsuuURt27bV7t27tWjRIn3++ecaN26cJGnWrFn64IMPNGjQIN1yyy3KysrSt99+q08//VQrVqzQt99+a7TOk/nlL3+pF198URdffLFnG5/8/9r792i76vJe/H82uWwISXYIl1xKoAgIBgjWKDFV0QoVqMfhBTu02l/R40+/eoJflXpq02GLejwNx55hrT2IPUcO6Lcira1o9VuhFiW0FShEOVyiKdBYYiFBqbkQyM5lz98f/RmNBPI8yZpZe+35eo2xxyA7b575mXOuNZ+5nr2y9kc/GnPmzInf/M3fPOD6AAwO/fonxlu/vuyyy+Kee+6JJUuWxOTJk+OLX/xi/M3f/E18+MMf3uOd4hERCxcujF/91V+N4447LtauXRtXXHFFzJ49Oz75yU8e8DoA6C+9+ifGW68+44wz4pxzzolnP/vZccQRR8R9990XV155ZezYsSMuu+yyPbI333xz3HzzzRHx7wP6rVu3xoc//OGIiDj77LPj7LPPjoiIJUuWxK/+6q/G8uXL45FHHomTTjopPv3pT8f3vve9uPLKKw94zXDAGmCvrrrqqiYimttvv/1pc8cff3zz8pe/fI/vXXnllc3JJ5/cDA8PN6eeempz1VVXNZdeemnzs0+5iGiWLVvW/Omf/unu/C/8wi803/jGN/bI/fj/Xb16dfPa1762mTFjRnPEEUc0F198cfPEE088aU1/+Zd/2bzwhS9sDj/88Obwww9vTj311GbZsmXNmjVr9sh94hOfaE444YRmeHi4ee5zn9vcfPPNzYtf/OLmxS9+ceoY7dy5s/nUpz7VvOhFL2pGRkaa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7979vUE7R/02UXr4oPfvCD1cDz+49PDxfX4i9PBBOEf9poePH3q4Hn4wTbQePtH6d4Qe3sZ5GvcD8j/7sz+LSy65JC699NL41re+FWeeeWacd9558cgjj/R7afvttNNOi4cffnj319///d/3e0lpW7dujTPPPDMuv/zyvf79Rz7ykfj4xz8en/zkJ+O2226Lww8/PM4777zYtm3bQV5pzr72JyLi/PPP3+N8fe5znzuIK6xZuXJlLFu2LG699db42te+Fjt27IiXvexlsXXr1t2Z97znPfHlL385Pv/5z8fKlSvjoYceite85jV9XPVTy+xPRMRb3/rWPc7RRz7ykT6teN+OPfbYuOyyy2LVqlVxxx13xEtf+tJ45StfGffee29EDNb5idj3/kQM1vn5abfffnv8yZ/8SSxatGiP7w/aOeqnidbDB7l/R+jhevjBpYeP7/MToYcPwjnqJz18fNHD9fCDaaL18InWvyP08FbOUzPOnXXWWc2yZct2/3nXrl3N/PnzmxUrVvRxVfvv0ksvbc4888x+L6MnIqK57rrrdv95bGysmTt3bvMHf/AHu7+3cePGZnh4uPnc5z7XhxXW/Oz+NE3TXHTRRc0rX/nKvqynFx555JEmIpqVK1c2TfPv52PKlCnN5z//+d2Z73znO01ENLfccku/lpn2s/vTNE3z4he/uHnXu97Vv0X1wBFHHNF86lOfGvjz82M/3p+mGdzzs2XLlubkk09uvva1r+2xDxPlHB0sE6mHT6T+3TR6+CDQwweDHj7+6OG9oYePX3r4+KeHj38TrX83jR5+oMb1O8i3b98eq1atinPPPXf39w455JA499xz45Zbbunjyg7MfffdF/Pnz49nPOMZ8cY3vjEefPDBfi+pJ9auXRvr16/f43yNjIzEkiVLBvp83XTTTXHMMcfEKaecEu94xzvi0Ucf7feS0jZt2hQREbNnz46IiFWrVsWOHTv2OEennnpqHHfccQNxjn52f37ss5/9bBx11FFx+umnx/Lly+Pxxx/vx/LKdu3aFddee21s3bo1li5dOvDn52f358cG8fwsW7YsXv7yl+9xLiIG/zl0ME3EHj5R+3eEHj4e6eHjmx4+funhB04PHyx6+Pijh49fE61/R+jhvTpPk3tSpSU//OEPY9euXTFnzpw9vj9nzpz47ne/26dVHZglS5bE1VdfHaeccko8/PDD8cEPfjBe9KIXxT333BMzZszo9/IOyPr16yMi9nq+fvx3g+b888+P17zmNXHCCSfEAw88EL/zO78TF1xwQdxyyy0xadKkfi/vaY2NjcW73/3ueMELXhCnn356RPz7OZo6dWrMmjVrj+wgnKO97U9ExBve8IY4/vjjY/78+XHXXXfF+973vlizZk184Qtf6ONqn97dd98dS5cujW3btsX06dPjuuuui4ULF8add945kOfnqfYnYjDPz7XXXhvf+ta34vbbb3/S3w3yc+hgm2g9fCL37wg9fLzRw8dvj9DDx/f50cN7Qw8fLHr4+KKHj88eMdH6d4QeHtHb8zSuB+QT0QUXXLD7vxctWhRLliyJ448/Pv78z/883vKWt/RxZezN61//+t3/fcYZZ8SiRYvixBNPjJtuuinOOeecPq5s35YtWxb33HPPwH2+3lN5qv1529vetvu/zzjjjJg3b16cc8458cADD8SJJ554sJeZcsopp8Sdd94ZmzZtir/4i7+Iiy66KFauXNnvZe23p9qfhQsXDtz5WbduXbzrXe+Kr33ta3HooYf2ezmMI/r34NHDxw89fPzSw+kCPXzw6OHjx0Tp4ROtf0fo4b02rj9i5aijjopJkyY96beSbtiwIebOndunVfXWrFmz4pnPfGbcf//9/V7KAfvxOZnI5+sZz3hGHHXUUeP+fF188cXxla98Jb7xjW/Escceu/v7c+fOje3bt8fGjRv3yI/3c/RU+7M3S5YsiYgY1+do6tSpcdJJJ8XixYtjxYoVceaZZ8Yf/dEfDez5ear92Zvxfn5WrVoVjzzySDznOc+JyZMnx+TJk2PlypXx8Y9/PCZPnhxz5swZyHPUDxO9h0+k/h2hh48nevj47RERenjE+D0/enjv6OGDRQ8fP/Tw8dsjJlr/jtDDI3p7nsb1gHzq1KmxePHiuPHGG3d/b2xsLG688cY9PldnkD322GPxwAMPxLx58/q9lAN2wgknxNy5c/c4X5s3b47bbrttwpyv73//+/Hoo4+O2/PVNE1cfPHFcd1118XXv/71OOGEE/b4+8WLF8eUKVP2OEdr1qyJBx98cFyeo33tz97ceeedERHj9hztzdjYWIyOjg7c+XkqP96fvRnv5+ecc86Ju+++O+68887dX8997nPjjW984+7/ngjn6GCY6D18IvXvCD18PNDDx3+P2Bs9fPzQw3tHDx8senj/6eHjv0f8rInWvyP08APWk1/12aJrr722GR4ebq6++upm9erVzdve9rZm1qxZzfr16/u9tP3ym7/5m81NN93UrF27tvmHf/iH5txzz22OOuqo5pFHHun30lK2bNnSfPvb326+/e1vNxHRfPSjH22+/e1vN//yL//SNE3TXHbZZc2sWbOaL33pS81dd93VvPKVr2xOOOGE5oknnujzyvfu6fZny5YtzXvf+97mlltuadauXdv87d/+bfOc5zynOfnkk5tt27b1e+l79Y53vKMZGRlpbrrppubhhx/e/fX444/vzrz97W9vjjvuuObrX/96c8cddzRLly5tli5d2sdVP7V97c/999/ffOhDH2ruuOOOZu3atc2XvvSl5hnPeEZz9tln93nlT+23f/u3m5UrVzZr165t7rrrrua3f/u3m6GhoeZv/uZvmqYZrPPTNE+/P4N4fvbmZ38D+KCdo36aSD180Pt30+jhevjBpYeP7/PTNHr4IJyjftLDxxc9XA8/mCZaD59o/btp9PA2ztO4H5A3TdP88R//cXPcccc1U6dObc4666zm1ltv7feS9tvrXve6Zt68ec3UqVObn/u5n2te97rXNffff3+/l5X2jW98o4mIJ31ddNFFTdM0zdjYWPO7v/u7zZw5c5rh4eHmnHPOadasWdPfRT+Np9ufxx9/vHnZy17WHH300c2UKVOa448/vnnrW986rm8K97YvEdFcddVVuzNPPPFE85/+039qjjjiiGbatGnNq1/96ubhhx/u36Kfxr7258EHH2zOPvvsZvbs2c3w8HBz0kknNf/5P//nZtOmTf1d+NP4j//xPzbHH398M3Xq1Oboo49uzjnnnN2NuWkG6/w0zdPvzyCen7352cY8aOeo3yZKDx/0/t00ergefnDp4eP7/DSNHj4I56jf9PDxQw/Xww+midbDJ1r/bho9vI3zNNQ0TbP/7z8HAAAAAIDBNK4/gxwAAAAAANpiQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHTS/w8SWNqBUDCJdQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cells_to_plot = [0, 99, 310]\n", "fig, axes = plt.subplots(2, len(cells_to_plot), figsize=(15, 10))\n", "\n", "for idx, i in enumerate(cells_to_plot):\n", " # Plotting original cell\n", " plot_cell_image(cell_objects[i], channels=['nucleus', 'protein'], ax=axes[0, idx])\n", " axes[0, idx].set_title(f'Original Cell {i}')\n", " \n", " # Plotting mapped cell\n", " mapped_cell_object = cell_objects[target_cell_ind].copy()\n", " for j, channel in enumerate(channels_to_map):\n", " mapped_cell_object.intensities[channel] = mapped_distbs[j][i]\n", " plot_cell_image(mapped_cell_object, channels=['nucleus', 'protein'], ax=axes[1, idx])\n", " axes[1, idx].set_title(f'Mapped Cell {i}')\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "id": "9f0a8a95", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mapping cells to target cell:\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "373it [19:59, 3.22s/it] \n" ] } ], "source": [ "# We choose the morphological centroid cell as the anchor cell to map to\n", "target_cell_ind = find_centroid(gw_dmat)\n", "\n", "channels_to_map = ['protein'] # which distributions to quantify variation in localization patterns for\n", "# Mapping all cells to anchor cell\n", "mapped_distbs = map_to_cell_parallel(cell_objects, \n", " channels_to_map, \n", " target_cell_ind, # cell to map to\n", " method='fused', # 'fused' for full mapping, 'fused' for partial mapping\n", " fused_channel='nucleus', # addition info to consider for mapping\n", " fused_cost=1000, fused_param=0.1, # controls weight of additional info\n", " compartment_specific=True, # enforces strict mapping of nucleus to nucleus\n", " num_processes=cpu_count(), chunksize=1) # parallelization parameters" ] }, { "cell_type": "markdown", "id": "56480efc", "metadata": {}, "source": [ "We can visualize some examples of the mapped to localalization patterns to see whether the mapping parameters need adjustment." ] }, { "cell_type": "code", "execution_count": 11, "id": "90dde1e3", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABcgAAAPmCAYAAADQQXwHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2VBJREFUeJzs3Xl4VOX9//9XEsgkkSyEJYskgIBA2CxRIVUpAhpQESUuuKKlohaogFYbP25QNVStohbi8uELthpRFLRqhQIfCVqBSoSCUKlQKCgkKDYL2wST8/vDX0ZGEs59JjOZSeb5uK65ruTc77nP+ywz98w997lPhGVZlgAAAAAAAAAACDORwU4AAAAAAAAAAIBgoIMcAAAAAAAAABCW6CAHAAAAAAAAAIQlOsgBAAAAAAAAAGGJDnIAAAAAAAAAQFiigxwAAAAAAAAAEJboIAcAAAAAAAAAhCU6yAEAAAAAAAAAYYkOcgAAAAAAAABAWKKDHGhCDz30kCIiInx67oIFCxQREaFdu3b5N6nj7Nq1SxEREVqwYEHA1nEy9e2fLl266KabbgpKPgCA8ENbfXK01QCAUEB7fXK014AzdJADBrZs2aLrr79ep556qlwul9LT03Xddddpy5YtwU4tqMrKynTXXXepV69eiouL0ymnnKLs7Gw9/PDDKi8vb/J8/vznP2vgwIGKiYlRZmamHnzwQX333XdNngcAoOnRVtcvlNrqgwcPaurUqerUqZNcLpd69+6twsLCemOXL1+uc889V3FxcWrbtq2uuOKKgHZkAACaBu11/UKpvZ42bZoGDhyo5ORkxcXFqXfv3nrooYd08OBBr7iDBw/qwQcf1MiRI5WcnGz7g8A///lPjRw5Um3atFFycrJuuOEGff311wHeGsBMq2AnAIS6xYsX65prrlFycrImTJigrl27ateuXZo3b57eeOMNLVy4UJdffrlRXffdd59+85vf+JTHDTfcoHHjxsnlcvn0fH/75JNPdNFFF+ngwYO6/vrrlZ2dLUlav369Zs2apdWrV+uvf/1rk+Xz/vvv67LLLtPQoUP17LPPavPmzXr44Ye1f//+Br98AwBaBtrq+oVSW11TU6Pc3FytX79ekyZNUo8ePbRs2TL98pe/1H//+1/de++9nth3331XY8aM0cCBAzVr1ixVVlbq6aef1rnnnqsNGzaoQ4cOTZIzAMC/aK/rF0rtdV0+5513nm6++WbFxMRow4YNmjVrllasWKHVq1crMvL7sbbffPONZs6cqczMTA0YMECrVq1qsM4vv/xSQ4YMUWJioh599FEdPHhQTzzxhDZv3qy///3vio6ObqKtAxpgAWjQ9u3brbi4OKtXr17W/v37vcq+/vprq1evXtYpp5xi7dix46T1HDx4MJBp+s3OnTstSdb8+fNPGvff//7XOvXUU62UlBTrn//85wnlpaWl1m9/+1vH63/wwQetH78tde7c2Ro/frztc7OysqwBAwZYx44d8yz7n//5HysiIqLeHAEALQNtdf1Cra1+/fXXLUnWvHnzvJbn5eVZMTExVllZmWdZVlaW1b17d8vtdnuWbdy40YqMjLSmT5/uOGcAQPDRXtcv1NrrhjzxxBOWJGvNmjWeZUePHrX27dtnWZZlffLJJyfd3ttvv92KjY21/vOf/3iWLV++3JJkPf/88z7lBPgTU6wAJ/H444/r8OHDeuGFF04YrdS+fXs9//zzOnTokB577DHP8rq5vrZu3aprr71Wbdu21bnnnutVdrwjR47oV7/6ldq3b6/4+Hhdeuml+uqrrxQREaGHHnrIE1ffPGldunTRJZdcoo8++khnn322YmJidNppp+mPf/yj1zq+/fZb3XXXXerXr5/atGmjhIQEjRo1Sv/4xz982i/PP/+8vvrqKz355JPq1avXCeUpKSm67777vJa9//77Ou+883TKKacoPj5eF198sd8uo9u6dau2bt2qiRMnqlWrHy6M+eUvfynLsvTGG2/4ZT0AgNBDW12/UGurP/zwQ0nSuHHjvJaPGzdOR48e1dtvvy3p+/2wdetWXX755V6jyQYMGKDevXtr4cKFfskHANC0aK/rF2rtdUO6dOkiSV7TvbhcLqWmpho9/80339Qll1yizMxMz7IRI0bo9NNP1+uvv+7PVAGf0EEOnMQ777yjLl266Lzzzqu3fMiQIerSpYvee++9E8quvPJKHT58WI8++qhuueWWBtdx00036dlnn9VFF12k3/3ud4qNjdXFF19snOP27dt1xRVX6IILLtDvf/97tW3bVjfddJNXA/nvf/9bb731li655BI9+eST+vWvf63NmzfrZz/7mfbu3Wu8rjp//vOfFRsbqyuuuMIo/k9/+pMuvvhitWnTRr/73e90//33a+vWrTr33HP9Mp/ohg0bJElnnnmm1/L09HR16tTJUw4AaHloq+sXam212+1WVFTUCZdQx8XFSZJKSko8cZIUGxt7Qh1xcXHau3evSktLG50PAKBp0V7XL9Ta6zrfffedvvnmG+3du1d//etfdd999yk+Pl5nn32247q++uor7d+//4Tv65J09tln830dIYE5yIEGVFRUaO/evRozZsxJ4/r3768///nPqqqqUnx8vGf5gAEDVFRUdNLnfvrpp3r99dc1depUPfXUU5K+H/V88803G/8CvW3bNq1evdrzQeOqq65SRkaG5s+fryeeeEKS1K9fP/3rX//yzBUmfT/vWq9evTRv3jzdf//9Ruuq889//lOnn3660TxhBw8e1K9+9Sv94he/0AsvvOBZPn78ePXs2VOPPvqo13Jf7Nu3T5KUlpZ2QllaWppPH1QAAKGPtrphodZW9+zZUzU1NVq7dq1n9J/0w8jyr776StL3I+WSkpL0t7/9zev5Bw4c0NatWz2xpiPWAADBR3vdsFBrr+usX79eOTk5nv979uypP//5z0pOTnZcl9339W+//VZutztk5oRHeGIEOdCAqqoqSfJqmOtTV15ZWem1/LbbbrNdx9KlSyV933Afb8qUKcZ5ZmVlef0K36FDB/Xs2VP//ve/PctcLpenAa+pqdGBAwfUpk0b9ezZU59++qnxuupUVlba7pc6y5cvV3l5ua655hp98803nkdUVJQGDRqkDz74wPH6f+zIkSOSVG+DGhMT4ykHALQstNUNC7W2+tprr1ViYqJ+/vOfa/ny5dq1a5deeOEFzZ07V9IPbXlkZKRuvfVWrVy5Uvn5+friiy9UUlKiq666StXV1V6xAIDmgfa6YaHWXtfJysrS8uXL9dZbb+nuu+/WKaecooMHD/pUl9339eNjgGBhBDnQgLpGqq4xb0hDjX3Xrl1t1/Gf//xHkZGRJ8R2797dOM/j5/Cq07ZtW/33v//1/F9bW6unn35ac+fO1c6dO1VTU+Mpa9eunfG66iQkJNjulzpffPGFJGnYsGEN1tVYdZdh112WfbyjR4/We5k2AKD5o61uWKi11ampqfrzn/+sG264QRdeeKGn3meffVbjx49XmzZtPLEzZ87UN998o8cee0yzZs2SJF144YWaMGGCnnvuOa9YAEDoo71uWKi118fXNWLECEnSmDFjVFRU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9frrrys2NjaImSFYTnZOTJgwIYiZIZDGjRvn+btfv37q37+/unXrplWrVmn48OFBzMw/wvGzTkPbPHHiRM/f/fr1U1pamoYPH64dO3aoW7duTZ2mX4Tj566GtjkrK6tFHuNwRZsc2ppb29lS2sLm3r61lDarubdDLbGPIWSnWGnfvr2ioqJOuMNpWVmZUlNTg5RVy1O3L9nPvpk8ebLeffddffDBB+rUqZNneWpqqqqrq1VeXu4Vz341Ex0dre7duys7O1sFBQUaMGCAnn76afarj0pKSrR//34NHDhQrVq1UqtWrVRcXKxnnnlGrVq1UkpKCvvVT5KSknT66adr+/btnK+iLZe8z4lwwOeK75122mlq3759izju4fhZp6Ftrs+gQYMkqVkf63D83NXQNtenJRxjJ1py290S2uSW3M6GctvZUtrCltC+tZQ2q7m3Qy2xjyFkO8ijo6OVnZ2tlStXepbV1tZq5cqVXvPyoHG6du2q1NRUr/1cWVmpdevWsZ9PwrIsTZ48WUuWLNH//d//qWvXrl7l2dnZat26tdd+3bZtm3bv3s1+9UFtba3cbjf71UfDhw/X5s2btXHjRs/jzDPP1HXXXef5m/3qHwcPHtSOHTuUlpbG+Sracsn7nAgHfK743pdffqkDBw406+Mejp917La5Phs3bpSkZn2sfywcP3fVbXN9WuIxPpmW3Ha3hDa5Jbezodh2tpS2sCW3by2lzWpu7VCL7GMI6i1CbSxcuNByuVzWggULrK1bt1oTJ060kpKSrNLS0mCn1qxUVVVZGzZssDZs2GBJsp588klrw4YN1n/+8x/Lsixr1qxZVlJSkvX2229bmzZtssaMGWN17drVOnLkSJAzD1233367lZiYaK1atcrat2+f53H48GFPzG233WZlZmZa//d//2etX7/eysnJsXJycoKYdfPwm9/8xiouLrZ27txpbdq0yfrNb35jRUREWH/9618ty2K/+suP74zNfvXNnXfeaa1atcrauXOn9be//c0aMWKE1b59e2v//v2WZbFfLSv82nK7c6IlCMfPFSfb5qqqKuuuu+6y1qxZY+3cudNasWKFNXDgQKtHjx7W0aNHg526z8Lxs47dNm/fvt2aOXOmtX79emvnzp3W22+/bZ122mnWkCFDgpy578Lxc9fJtrklHmNftJS2u7m2yS2lnW0JbWdLaQtbSvvWUtqsltoONfc+hpDuILcsy3r22WetzMxMKzo62jr77LOttWvXBjulZueDDz6wJJ3wGD9+vGVZllVbW2vdf//9VkpKiuVyuazhw4db27ZtC27SIa6+/SnJmj9/vifmyJEj1i9/+Uurbdu2VlxcnHX55Zdb+/btC17SzcTPf/5zq3PnzlZ0dLTVoUMHa/jw4Z4Gz7LYr/7y48aL/eqbq6++2kpLS7Oio6OtU0891br66qut7du3e8rZr98Lp7bc7pxoCcLxc8XJtvnw4cPWhRdeaHXo0MFq3bq11blzZ+uWW25pdh1JPxaOn3Xstnn37t3WkCFDrOTkZMvlclndu3e3fv3rX1sVFRXBTbwRwvFz18m2uSUeY1+1hLa7ubbJLaWdbQltZ0tpC1tK+9ZS2qyW2g419z6GCMuyLP+MRQcAAAAAAAAAoPkI2TnIAQAAAAAAAAAIJDrIAQAAAAAAAABhiQ5yAAAAAAAAAEBYooMcAAAAAAAAABCW6CAHAAAAAAAAAIQlOsgBAAAAAAAAAGGJDnIAAAAAAAAAQFiigxwAAAAAAAAAEJboIAfgZejQoRo6dGhQ1r1r1y5FRERowYIFnmUPPfSQIiIigpIPAAChivYaAIDQRlsNNB90kAMNWLBggSIiIhQREaGPPvrohHLLspSRkaGIiAhdcsklQcgw+GpqajR//nwNHTpUycnJcrlc6tKli26++WatX7++yfP56quvdNVVVykpKUkJCQkaM2aM/v3vfzd5HgCApkN7bS/U2uuFCxdq4MCBiomJUYcOHTRhwgR98803J8SVlZXp5ptvVseOHRUbG6uBAwdq0aJFTZ4vAKBxaKvthVJbvWTJEuXm5io9PV0ul0udOnXSFVdcoc8+++yE2Ndee03XX3+9evTooYiIiJP+IOB2u3XPPfcoPT1dsbGxGjRokJYvXx7ALQHM0UEO2IiJiVFRUdEJy4uLi/Xll1/K5XIFIavgO3LkiC655BL9/Oc/l2VZuvfee1VYWKgbb7xRa9as0dlnn60vv/yyyfI5ePCgzj//fBUXF+vee+/VjBkztGHDBv3sZz/TgQMHmiwPAEBw0F7XL9Ta68LCQl1zzTVKTk7Wk08+qVtuuUULFy7U8OHDdfToUU9cZWWlzj33XL355pu69dZb9cQTTyg+Pl5XXXVVvccZABD6aKvrF2pt9ebNm9W2bVvdcccdmjt3rm6//XZt2LBBZ599tv7xj394xRYWFurtt99WRkaG2rZte9J6b7rpJj355JO67rrr9PTTTysqKkoXXXRRvT+aAE2tVbATAELdRRddpEWLFumZZ55Rq1Y/vGSKioqUnZ1d74incPDrX/9aS5cu1VNPPaWpU6d6lT344IN66qmnmjSfuXPn6osvvtDf//53nXXWWZKkUaNGqW/fvvr973+vRx99tEnzAQA0Ldrr+oVSe11dXa17771XQ4YM0fLlyz2Xef/0pz/V6NGj9eKLL2rKlCmSpOeff17bt2/XypUrNWzYMEnS7bffrsGDB+vOO+/UFVdcoejo6CbLHQDQeLTV9QultlqSHnjggROW/eIXv1CnTp1UWFio5557zrP8T3/6k0499VRFRkaqb9++Ddb597//XQsXLtTjjz+uu+66S5J04403qm/fvrr77rv18ccf+39DAAcYQQ7YuOaaa3TgwAGvS3+qq6v1xhtv6Nprr633OU888YR++tOfql27doqNjVV2drbeeOONE+IiIiI0efJkvfLKK+rZs6diYmKUnZ2t1atXe8XVzRX2+eef66qrrlJCQoLatWunO+64w2u0VZ2XX35Z2dnZio2NVXJyssaNG6c9e/acEPfCCy+oW7duio2N1dlnn60PP/zQaJ98+eWXev7553XBBRec0IBLUlRUlO666y516tTJs+yrr77Sz3/+c6WkpMjlcqlPnz76f//v/xmtz8Qbb7yhs846y9M5Lkm9evXS8OHD9frrr/ttPQCA0ER7faJQa68/++wzlZeX6+qrr/aaA/WSSy5RmzZttHDhQs+yDz/8UB06dPB0jktSZGSkrrrqKpWWlqq4uNgvOQEAmg5t9YlCra1uSMeOHRUXF6fy8nKv5RkZGYqMtO9afOONNxQVFaWJEyd6lsXExGjChAlas2ZNvfsUaEp0kAM2unTpopycHL366queZe+//74qKio0bty4ep/z9NNP6yc/+YlmzpypRx99VK1atdKVV16p995774TY4uJiTZ06Vddff71mzpypAwcOaOTIkfXO73XVVVfp6NGjKigo0EUXXaRnnnnGq4GRpEceeUQ33nijevTooSeffFJTp07VypUrNWTIEK/GbN68ebr11luVmpqqxx57TOecc44uvfRSo4bp/fff13fffacbbrjBNlb6fg7RwYMHa8WKFZo8ebKefvppde/eXRMmTNDs2bON6jiZ2tpabdq0SWeeeeYJZWeffbZ27NihqqqqRq8HABC6aK9PFGrttdvtliTFxsaeUBYbG6sNGzaotrbWE1tfXFxcnCSppKSk0fkAAJoWbfWJQq2tPl55ebm+/vprbd68Wb/4xS9UWVmp4cOH+1TXhg0bdPrppyshIcFr+dlnny1J2rhxY2PTBRrHAlCv+fPnW5KsTz75xPrDH/5gxcfHW4cPH7Ysy7KuvPJK6/zzz7csy7I6d+5sXXzxxV7PrYurU11dbfXt29caNmyY13JJliRr/fr1nmX/+c9/rJiYGOvyyy/3LHvwwQctSdall17q9fxf/vKXliTrH//4h2VZlrVr1y4rKirKeuSRR7ziNm/ebLVq1cqzvLq62urYsaN1xhlnWG632xP3wgsvWJKsn/3sZyfdN9OmTbMkWRs2bDhpXJ0JEyZYaWlp1jfffOO1fNy4cVZiYqJnf+3cudOSZM2fP/+EbT+Zr7/+2pJkzZw584SyOXPmWJKszz//3ChXAEDzQnvdsFBsryMiIqwJEyZ4Lf/88889+7hu3VOmTLEiIyOtXbt2nZCLJGvy5MlG2wQACD7a6oaFWlt9vJ49e3r2a5s2baz77rvPqqmpaTC+T58+DW5vnz59TjhmlmVZW7ZssSRZzz33nHFeQCAwghwwcNVVV+nIkSN69913VVVVpXfffbfBS8Ak75FR//3vf1VRUaHzzjtPn3766QmxOTk5ys7O9vyfmZmpMWPGaNmyZaqpqfGKnTRpktf/dfN0/uUvf5EkLV68WLW1tbrqqqv0zTffeB6pqanq0aOHPvjgA0nS+vXrtX//ft12221e83fedNNNSkxMtN0flZWVkqT4+HjbWMuy9Oabb2r06NGyLMsrr9zcXFVUVNS7X5w4cuSIJNV7U5eYmBivGABAy0V77S3U2uv27dvrqquu0ksvvaTf//73+ve//60PP/xQV199tVq3bi3ph/b6F7/4haKionTVVVfp448/1o4dO1RQUKAlS5Z4xQEAmhfaam+h1lYfb/78+Vq6dKnmzp2r3r1768iRIyfsR1NHjhzh+zpCGjfpBAx06NBBI0aMUFFRkQ4fPqyamhpdccUVDca/++67evjhh7Vx40bP5cSSvObbrNOjR48Tlp1++uk6fPiwvv76a6WmpjYY261bN0VGRmrXrl2SpC+++EKWZdVbpyTPl8///Oc/9dbXunVrnXbaaQ1uV526y6JMpi35+uuvVV5erhdeeEEvvPBCvTH79++3redk6j40Hb+v69TNI1ffZdoAgJaF9tpbqLXX0vc33zxy5Ijuuusuz026rr/+enXr1k2LFy9WmzZtJEn9+/dXUVGRbrvtNp1zzjmSpNTUVM2ePVu33367Jw4A0LzQVnsLxba6Tk5OjufvcePGqXfv3pK+nxfeqdjYWL6vI6TRQQ4Yuvbaa3XLLbeotLRUo0aNUlJSUr1xH374oS699FINGTJEc+fOVVpamlq3bq358+erqKjIrzn9+ENBbW2tIiIi9P777ysqKuqEeH99mezVq5ckafPmzTrjjDNOGls3l+j111+v8ePH1xvTv3//RuWTnJwsl8ulffv2nVBWtyw9Pb1R6wAANA+01z8ItfZakhITE/X2229r9+7d2rVrlzp37qzOnTvrpz/9qTp06OB1vK644gpdeuml+sc//qGamhoNHDhQq1atkvR9hwcAoHmirf5BKLbV9Wnbtq2GDRumV155xacO8rS0NH311VcnLOf7OkIFHeSAocsvv1y33nqr1q5dq9dee63BuDfffFMxMTFatmyZ1yVE8+fPrzf+iy++OGHZv/71L8XFxalDhw4nxHbt2tXz//bt21VbW6suXbpI+v5Xb8uy1LVr15N+cezcubOnvmHDhnmWHzt2TDt37tSAAQMafK4kjRo1SlFRUXr55ZdtbybSoUMHxcfHq6amRiNGjDhprK8iIyPVr18/rV+//oSydevW6bTTTjO6ZA0A0PzRXv8g1Nrr42VmZiozM1PS9zcBKykpUV5e3glx0dHROuusszz/r1ixQpKaJEcAQGDQVv8glNvqHzty5IgqKip8eu4ZZ5yhDz74QJWVlV436ly3bp2nHAgm5iAHDLVp00aFhYV66KGHNHr06AbjoqKiFBER4TU3165du/TWW2/VG79mzRqvecL27Nmjt99+WxdeeOEJv1TPmTPH6/9nn31W0veNqiSNHTtWUVFRmjFjhizL8oq1LEsHDhyQJJ155pnq0KGDnnvuOVVXV3tiFixY4HU37oZkZGTolltu0V//+ldPDserra3V73//e3355ZeKiopSXl6e3nzzzXrvHv7111/brs/EFVdcoU8++cSrk3zbtm36v//7P1155ZV+WQcAIPTRXv8gFNvr+uTn5+u7777TtGnTThr3xRdf6LnnntMll1zCCHIAaMZoq38Qim11fdO07Nq1SytXrtSZZ57pU51XXHGFampqvKaGcbvdmj9/vgYNGqSMjAyf8wX8gRHkgAMNXcZ0vIsvvlhPPvmkRo4cqWuvvVb79+/XnDlz1L17d23atOmE+L59+yo3N1e/+tWv5HK5NHfuXEnSjBkzTojduXOnLr30Uo0cOVJr1qzRyy+/rGuvvdbzq3S3bt308MMPKz8/X7t27dJll12m+Ph47dy5U0uWLNHEiRN11113qXXr1nr44Yd16623atiwYbr66qu1c+dOzZ8/32ieNEn6/e9/rx07duhXv/qVFi9erEsuuURt27bV7t27tWjRIn3++ecaN26cJGnWrFn64IMPNGjQIN1yyy3KysrSt99+q08//VQrVqzQt99+a7TOk/nlL3+pF198URdffLFnG5/8/9r792i76vJe/H82uWwISXYIl1xKoAgIBgjWKDFV0QoVqMfhBTu02l/R40+/eoJflXpq02GLejwNx55hrT2IPUcO6Lcira1o9VuhFiW0FShEOVyiKdBYYiFBqbkQyM5lz98f/RmNBPI8yZpZe+35eo2xxyA7b575mXOuNZ+5nr2y9kc/GnPmzInf/M3fPOD6AAwO/fonxlu/vuyyy+Kee+6JJUuWxOTJk+OLX/xi/M3f/E18+MMf3uOd4hERCxcujF/91V+N4447LtauXRtXXHFFzJ49Oz75yU8e8DoA6C+9+ifGW68+44wz4pxzzolnP/vZccQRR8R9990XV155ZezYsSMuu+yyPbI333xz3HzzzRHx7wP6rVu3xoc//OGIiDj77LPj7LPPjoiIJUuWxK/+6q/G8uXL45FHHomTTjopPv3pT8f3vve9uPLKKw94zXDAGmCvrrrqqiYimttvv/1pc8cff3zz8pe/fI/vXXnllc3JJ5/cDA8PN6eeempz1VVXNZdeemnzs0+5iGiWLVvW/Omf/unu/C/8wi803/jGN/bI/fj/Xb16dfPa1762mTFjRnPEEUc0F198cfPEE088aU1/+Zd/2bzwhS9sDj/88Obwww9vTj311GbZsmXNmjVr9sh94hOfaE444YRmeHi4ee5zn9vcfPPNzYtf/OLmxS9+ceoY7dy5s/nUpz7VvOhFL2pGRkaaKVOmNMcff3zz5je/ufn2t7+9R3bDhg3NsmXLmgULFjRTpkxp5s6d25xzzjnN//yf/3N3Zu3atU1ENFddddWT9j1j3bp1zWtf+9pm5syZzfTp05v/8B/+Q3Pfffel/l8ABpN+vW/jqV9/5Stfac4666xmxowZzbRp05rnP//5zZ//+Z/vNfv617++WbBgQTN16tRm/vz5zdvf/vZmw4YNqX0GYPzQq/dtPPXqSy+9tHnuc5/bHHHEEc3kyZOb+fPnN69//eubu+66a6/ZiNjr16WXXrpH9oknnmje+973NnPnzm2Gh4eb5z3vec3111+fOj7QtqGm+Zl/KwIcNENDQ7Fs2bL4H//jfzxt7gMf+EB88IMfjB/84Adx1FFHHaTVAQAR+jUAjHd6NXAgfAY5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJPoMcAAAAAIBO8g5yAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTJvd7AT9rbGwsHnrooZgxY0YMDQ31ezkA0BNN08SWLVti/vz5ccghE/Pn03o4ABORHg4Ag6fSv8fdgPyhhx6KBQsW9HsZANCKdevWxbHHHtvvZbRCDwdgItPDAWDwZPp3awPyyy+/PP7gD/4g1q9fH2eeeWb88R//cZx11ln7/P9mzJjR1pIA9suSZ5+Szh6WzD1e2P6UZG64UHNWMldZ5/V3rimku2sQ+pweDkwUpxZ6eFbT84q1z70ca2H7a/TwlPHe5/a3f0eM/30DuqfSw7N9tI0e2sa/K6qs87t6+D5lelwrA/I/+7M/i0suuSQ++clPxpIlS+JjH/tYnHfeebFmzZo45phjnvb/9c+5gPFm8qRJ+WyPc23VzA7dsznyxnuf08OBiWRSoYdn9XtA7krbP+O5zx1I/44Y3/sGdFOlh2f7aBtXujYG5K7IvZXpca18gNpHP/rReOtb3xpvfvObY+HChfHJT34ypk2bFv/7f//vNjYHAPSIHg4Ag0f/BoD91/MB+fbt22PVqlVx7rnn/mQjhxwS5557btxyyy1Pyo+OjsbmzZv3+AIADj49HAAGT7V/R+jhAPDTej4g/+EPfxi7du2KOXPm7PH9OXPmxPr165+UX7FiRYyMjOz+8otBAKA/9HAAGDzV/h2hhwPAT2vlI1Yqli9fHps2bdr9tW7dun4vCQBI0MMBYDDp4QDwEz3/JZ1HHXVUTJo0KTZs2LDH9zds2BBz5859Un54eDiGh4d7vQwAoEgPB4DBU+3fEXo4APy0nr+DfOrUqbF48eK48cYbd39vbGwsbrzxxli6dGmvNwcA9IgeDgCDR/8GgAPT83eQR0RccsklcdFFF8Vzn/vcOOuss+JjH/tYbN26Nd785je3sTlgQC1ZvDCdPSyZGypsf2chmzUjmZteqPlwMre1UHMsmZtUqPmC5Pn8h1WrC1U52PRwIGNhoYe3IdvvK/cFvd52RESTzGX7ckT+HU6VmtnzuVoPH7f0byCr0sOzPa/fn988KOtsw2nJ83mvHv60WhmQv+51r4sf/OAH8Xu/93uxfv36ePaznx3XX3/9k35pCAAwvujhADB49G8A2H9DTdNk39hwUGzevDlGRkb6vQzgIJiI7yA/KpmrXHiz7yDfVag5K5mrvIP8sWSu6+8g37RpU8ycObPfy2iFHg7d0eV3kFdk+33lvqCNd5Bndf0d5Ho4MBF0+R3k42oA+jTa6OFdfgd5pn/3+zEMAAAAAAB9YUAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdNLkfi8AmHjevHhhKve9Qs2RZO6RQs3hZG6oUHNTMrejUDNraiH7eDI3qVDz8GRuSfLxEZHfp79btTpdE4CntrBwjc7KviOn3+/caXqci6j10ayxFmpmnV54fGTXuVoPB+iJ05LX6Eq/baPnVF5fD4LK/mTvIdq4J8o+Pirbv3sC9fB+34cCAAAAAEBfGJADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJ03u9wKA/lqxeGEq94NCzSaZO6NQc2oy90Sh5uPJ3KGFmtl9HyrU7KddheymZK6y79uTuTcnH8cREVetWl1YAcD4tTB57WvjHTGVmm30vGy/rcius989PLv9yjka25+F9Gj72cdxRMRqPRyYIM4oXPv6KXstr/TGfvfRrOw6K/ck/dz3Nu4HK4/ju8d5D/cOcgAAAAAAOsmAHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTDMgBAAAAAOgkA3IAAAAAADrJgBwAAAAAgE6a3O8FAO34ncULU7nVyXq7CtueVchmbU/mjizUzO5TZd+nJHOHFWqOJnOVdU5N5oYLNSclc48WamZtKWR/Jfnc+OtV2WcHQG+dnrxOZa+7TWHbQ4VsVvYdOZU+1obsvleOZ6+3XTFWyGbPUaVm9vFZecfWwuz9rR4O9MkZyetU9trXRs9pQ6WPZftDNheRP06Ve402emP2OO1soWZFG4+7Rcnnxl196uHeQQ4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnTe73AoCIixYvTOVmF2qemMydkMw9Utj2ccncPxdqrk7mxgo1R5O5WYWaTyRzuwo1pyVzWwo1syYVstl9OqZQM7tPmwo1DytkAfZlYbKHV96VMiWZq/S8fqr0vH7KrrNyLrN9tHKMhnqci8g/ltp48dgUst7dBfTSaS308Ox1P3vty94TROSv5ZX9qVyjs7L7VNl2tj9VemMbPWdnMld5HZ7V7/vGNh5LveQeAwAAAACATur5gPwDH/hADA0N7fF16qmn9nozAECP6eEAMJj0cADYf618xMppp50Wf/u3f/uTjUz2SS4AMAj0cAAYTHo4AOyfVjrm5MmTY+7cuW2UBgBapIcDwGDSwwFg/7TyGeT33XdfzJ8/P57xjGfEG9/4xnjwwQefMjs6OhqbN2/e4wsA6A89HAAGkx4OAPun5wPyJUuWxNVXXx3XX399XHHFFbF27dp40YteFFu2bNlrfsWKFTEyMrL7a8GCBb1eEgCQoIcDwGDSwwFg/w01TdO0uYGNGzfG8ccfHx/96EfjLW95y5P+fnR0NEZHR3f/efPmzZoznXPR4oWp3OxCzdOTubFk7pHCto9L5v65UHN1Mpfdn4iI9cncrELNJ5K5XYWaWXt/+bN3hyVz0wo1s/s0tVAzu0+HFmpm9/2vVmUfdTWbNm2KmTNntlK71/Rw2LeFyR5eeVfKlGQu2/MqN/tDhWxWqy82eih7PCvnclIyV7kvyJ6jSs3svrfx+ZyVe7ese/RwPRwSTmuhh2ev+9neWLnuttHH2ujh2fucyrazx31noWYbH7mR3X4bvbFSs43znq15dws9PNO/W/+tHbNmzYpnPvOZcf/99+/174eHh2N4eLjtZQAARXo4AAwmPRwA8lr5DPKf9thjj8UDDzwQ8+bNa3tTAEAP6eEAMJj0cADI6/mA/L3vfW+sXLkyvve978U3v/nNePWrXx2TJk2KX/u1X+v1pgCAHtLDAWAw6eEAsP96/hEr3//+9+PXfu3X4tFHH42jjz46XvjCF8att94aRx99dK83BePaG5KfZxYR8a5k7kuF7Wf/weRzk7mrC9vOfrb49ws15ydzDxdqzkjmKp+/Pr2QzRrddyQiap/tnVX5XPOs7GeAR+Q/n67yGeSzkrlfLDyHv9nSZ50ebHo4/Lvs54pH5N9tkv1szIj8Z0S2cd3fnsxV3mWTzVY+F7QNbfzT2jY+Q7SNzwXN7ntlf7I1K8c9+xipPIdX6+EwoWQ/Vzwif/2p9NtKv+/1trP7k319GZF/PZa9f4jIH6M2emjlg6Wy26/8zo/sOWqj11cem9l+28Y6zyg8h3v5eeU9H5Bfe+21vS4JABwEejgADCY9HAD2X+ufQQ4AAAAAAOORATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSZP7vQAYDz68eGE6e1Iyd3hh+/+UzO0s1BxJ5r6XzB1b2HZ2fyo1R5O5yjHakcwtKNTcmsxtL9TMbn9doWbWpBayjxdqTk3mKsfziWRuuFAT6J+FhR6evU5V3kGSze4q1MzKXvsq225jf7LZoULNrKaFmm2o9Ns2HkttGEvm2ni+AYPhjEIPz/aIypBrWjKXfU0SkX/dmr2eVa57UwrZrGzPqWw7ey6zfSQi30cr/TY7W6jse/berfI4zp6jyqwkq417t35xjwEAAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJk/u9AGjTexcvTOWOK9T8i2TuDYWaW+LeVO5ZhZr3JHOzkrkzCtteF6elclsKNaclc0cWas5K5jYWambXWTEpmZtVqLk9mZtaqDmczFXOexvrXJ/MzSzUPDdxrdm5a1fcdOeaQlXottOTPbyijXeG7Er28J2Fmtnr/lihZtZQsoefWaiZO0K1Y9QUslnZ41l5HGXXuatQsw1tPDeyx7PyOG5jnZlrza5du+I7ejiknZHs4UOFmtneeGih5uuTHWp1oeb/J5m7JZnbWtj2nckeXum3m5K5yrU8O4isDCyz/bZy/5B9jdlGb6qco2y2cjzbuMfM3utUztG+rjW7du2K1cn+7R3kAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdNLkfi8Aqr64eGE6e0sy9w+F7R+ZzE2Pe9M1v5XM/XK6YsSMZO6RZO62wrZ/MbnvNxVqTorTUrkFhZrZfd9YqHlcMrehUHNLMvdYoeYxyVxlnbOSuUmFmv+azG0t1JyWzDWFmocnMjsK9WCiWljo4W28iyP/vM738LFkrrI/2XVmt12T2/fsvUtExO8ne/gNhZrfLGSzhlqoWeklva5Z2Z9sto39qWjjMZ+p2c5zDQbLokIPz97vTylsf2oyd0ihh/9cMveidMWIZyZz2bnC/YVtPye579cWam5L9vBdhZrTk7ns6+DK9iu9MTsw3Vmome2jlX6bXWell2Wfw5XzntXL+7FKLe8gBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTDMgBAAAAAOgkA3IAAAAAADrJgBwAAAAAgE4yIAcAAAAAoJMMyAEAAAAA6KTJ/V4A/Nh/X7wwlfv5Qs2VydwZhZqr495Ubk2h5pRkblWh5hPJ3LOSuSML2/7HZG5SoeYpyeO+uVDzsTgtlTumUPPkZG5boeajyVz2cRQR8aNkblqh5mPJ3NRCzUOTuccLNbckczsLNecUsjARLUz28DbemTFUyI4le0mzf0vZx7Z7r5/vdKls+/3J435YoeaMZA/fWKiZVXnM9bNmGwZlnUDeGckeXhkeZbO1mrleMr9QM/v6aWOhZrY/Znte9vV6RMT3krnnFGpuSR73fy3U/F6yh1d6TvY1ZuU1XvZ+sPL6Nns/WLknys5+KvOX7Ovryv1gdt8r9+G7DvDvf1r5vvrmm2+OV7ziFTF//vwYGhqKL37xi3v8fdM08Xu/93sxb968OOyww+Lcc8+N++67r7oZAKCH9G8AGEx6OAC0qzwg37p1a5x55plx+eWX7/XvP/KRj8THP/7x+OQnPxm33XZbHH744XHeeefFtm2V90sCAL2kfwPAYNLDAaBd5Y9YueCCC+KCCy7Y6981TRMf+9jH4v3vf3+88pWvjIiIz3zmMzFnzpz44he/GK9//esPbLUAwH7RvwFgMOnhANCunn504dq1a2P9+vVx7rnn7v7eyMhILFmyJG655ZZebgoA6BH9GwAGkx4OAAeup7+kc/369RERMWfOnr+ubM6cObv/7meNjo7G6Ojo7j9v3lz5FXsAwIHan/4doYcDQL/p4QBw4Hr6DvL9sWLFihgZGdn9tWDBgn4vCQBI0MMBYDDp4QDwEz0dkM+dOzciIjZs2LDH9zds2LD7737W8uXLY9OmTbu/1q1b18slAQD7sD/9O0IPB4B+08MB4MD1dEB+wgknxNy5c+PGG2/c/b3NmzfHbbfdFkuXLt3r/zM8PBwzZ87c4wsAOHj2p39H6OEA0G96OAAcuPJnkD/22GNx//337/7z2rVr484774zZs2fHcccdF+9+97vjwx/+cJx88slxwgknxO/+7u/G/Pnz41WvelUv1w0AFOjfADCY9HAAaFd5QH7HHXfEL/3SL+3+8yWXXBIRERdddFFcffXV8Vu/9VuxdevWeNvb3hYbN26MF77whXH99dfHoYce2rtVMzDetXhhOntmMjdU2P5T/6PCPW0p1JyazP1ToebrkrnKP3zclcxl/xlJ5Z+bnJHM3V2ouTqZe2ahZvYYHV2o+cNk7sRCzceTubWFmk0yd1ihZnadlefb9mRuUqFmtvFlHx8REQ8lMjsL9dqgf1N1WqGHZ5+DlR6elb2eVbODYCyZa+OXDmW3Xdn+rxRq3pfMPVGoObrvSFn2Md/GY7ON51u/VR53E4keTtWZhR6evUZXhkfZbOW1xhHJ3LJCzQeSuccKNbOvXx5M5uYVtp0969MLNY9N5u4p1Lw8mav08B3JXKXfZvtopTdla1bu3bLPo+zr9Yj8c7iy79nXw/26Xy8PyF/ykpdE0zz1coeGhuJDH/pQfOhDHzqghQEAvaN/A8Bg0sMBoF1tvKEEAAAAAADGPQNyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTDMgBAAAAAOgkA3IAAAAAADrJgBwAAAAAgE4yIAcAAAAAoJMMyAEAAAAA6KTJ/V4Ag2nZ4oWp3LMKNeclc39TqJl3bzp5aDI3s7D1/5PMnV6o+XCPc48Wtn1uMvedQs0tydxooeaLkrnbCzV/lMxtLNR8PJmbXaj5SDI3vVBzWzJXOUe7krmphZo7k7mhQs1pPdwutO30ZA+vyD5fmhZq7ir08Oz2B+UdJIOyzrFk7oZCzRcmcz8o1Mz2xmxvioiY1ELNNlSem1nZx2f28RGRvy5UenhGG8cH9seiZA+v9IfsUKgyPMrem88s9PDfTOZG0hXzr8leXqi5JpnLvsbLvsaKyPecyuvGKcnc/ELNrMpMJfN6LCJiQ6Fm9thXnm/Z41npjTuSucpzeHsyV3mNm+2llR6+r2Nf6d+Dcl8NAAAAAAA9ZUAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnTS53wtg/Phfixems7OSuTMK2/9GMjevUHNN3JvKNYWa2ezJhZo/TOZ+UKh5YjJ3WzJ3QmHbhyVzUwo1Zydz2ws1f5R8fMyJ09I1n0jmpqUrRvwomas8jhckcxsKNYeTuUmFmrsK2azsT4Z3Fmo+3uN6ULWw0MOHepyrqDz/dySv0RXZ53/lHSRjLdTstcq2s+dox/4sZB+OKmQPSz4+phV6eLaPZXt9RL6PZR9HEfnzWbkvaONx3MY1JFuzcjz7UQ9+2hmFHp69Rh9a2H52KFTp4Ycnr9H/30LNY9Pbzjsnmav0vOxr9n9O5rKvrSMibk3mnlmouTaZe1ah5u8nHx+/X+jhDydzbQxB27jHq7x2zGYrvSw7V2nj9XrlHO1r+5V7Ie8gBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTDMgBAAAAAOgkA3IAAAAAADrJgBwAAAAAgE4yIAcAAAAAoJMMyAEAAAAA6KTJ/V4A48fRhezcZG5VoeYvJXOr4950zZnJ3I/SFSMeSeb+rlDzyGRuU6HmD5O5GcnczsK2/08yN79Qc10yt71QM3su5xVqbknmnijUPCGZy57ziIgdydwzCzUfSOamFGpmDRWy2e1XfoKcOZ+7CvWgqvJ4zWYrNbPXlF2FHj6WzFWe/1mVntfGu00mJXNTk7nssYzIn8vKfs9O5jYXah6XzN1YqNnGdTp77Pv9rqXsY64p1MxmK/teeSxnZa4hbVxn4Mfa6OGV50r28T2p0MPPTuZOTleMGE7mKtfy7OuC7Gu8iPxsIbvtbxW2fXgy951CzewMonIu7yhks7LnvXKPl1V5Dme3X3kOZ/ttpWb2vqDSH7PHqXKO9rXvlfuWft+LAQAAAABAXxiQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCdN7vcCaN/yxQtTuSWFmn8d96Zyw4WaVyVzRxRqPp7MjRVqnpjMbS/UHErmTi/UfCCZyx6jYwrb/oVk7vOFmqcmc5sLNQ9L5rYUaj6RzP18oeZDhWzWvGRuXaHm1GQu+3iPiJiSzG0r1GySOT9BZjxYmOzhkwo1m2QP31mq2dtcReWaMiiyxyl7jnYVtp29J8penyPyj8/fKdS8tpDN2pHMVfY9q3KOsv2pcn/bRs/LPjcr14XsPlX2J1OzjWsXE98vJHt4Ta6HV+4LjkzmKsOj7Ousyuuco5O5fynUPDyZGynUzL4enZHMPbOw7ewMYn2hZvYc/WOh5vRkbmuhZvYxX3luZHtOpYe3odLvs9ro4dnjVDme+9p+ZX1e/wMAAAAA0EnlAfnNN98cr3jFK2L+/PkxNDQUX/ziF/f4+ze96U0xNDS0x9f555/fq/UCAPtB/waAwaSHA0C7ygPyrVu3xplnnhmXX375U2bOP//8ePjhh3d/fe5znzugRQIAB0b/BoDBpIcDQLvKn0F+wQUXxAUXXPC0meHh4Zg7d+5+LwoA6C39GwAGkx4OAO1q5TPIb7rppjjmmGPilFNOiXe84x3x6KOPPmV2dHQ0Nm/evMcXAHDwVfp3hB4OAOOFHg4A+6/nA/Lzzz8/PvOZz8SNN94Y/+2//bdYuXJlXHDBBbFr195/D+mKFStiZGRk99eCBQt6vSQAYB+q/TtCDweA8UAPB4ADU/6IlX15/etfv/u/zzjjjFi0aFGceOKJcdNNN8U555zzpPzy5cvjkksu2f3nzZs3a84AcJBV+3eEHg4A44EeDgAHppWPWPlpz3jGM+Koo46K+++/f69/Pzw8HDNnztzjCwDor3317wg9HADGIz0cAGpaH5B///vfj0cffTTmzZvX9qYAgB7RvwFgMOnhAFBT/oiVxx57bI+fRK9duzbuvPPOmD17dsyePTs++MEPxoUXXhhz586NBx54IH7rt34rTjrppDjvvPN6unAAIE//BoDBpIcDQLvKA/I77rgjfumXfmn3n3/8uWUXXXRRXHHFFXHXXXfFpz/96di4cWPMnz8/Xvayl8V/+S//JYaHh3u3akp+NZm7tVBzfTK3oVBzTjL3fwo1tydzlUfnjGRuR6Hm4cncNws1NyVz2eOe3e+IiD9P5sYKNb+TzDWFmjPitFRubaHm0cnc1kLN7IW68jj+YTJXed/RI8ncU/+6qCc7LJnbWaj5WDJ326rVharjn/49mLL/1K9y7atce7Mq28/K7vtQoWZ2nT3/JT1F2XOUzbXxT0Yr5zx7PzarUPOwZA/PbjsiYnoyl+0jEfnjVDlH2cd8GzXbULkmZffpHj1cDx8Hso/XSs+ZlMxNLdTMXiefX6iZfS2cfc0akX/9srFQ8/vJ3NxCzezrl/nJ3M8Xtj0lmfvXFmpWXJHs4ZV7jezzrdJzsr2x8nzLvhauvL7NXhcqr8Oz26/cP4wmc/3q4eX7/5e85CXRNE/9ML3hhhsOaEEAQO/p3wAwmPRwAGhX659BDgAAAAAA45EBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJk/u9APbPPy5emM4+kcz9S9ybrvm9ZG5numI+O1So2SRzkwo1s8ezYlMy91ihZnbf/zmZy64xImJeMnd/oebUZO6wOC1dc1Yy95x0xYh/SeaGCzXnJnOVn3g+mMyNFmpmz/sjhZqPJ3OV58Ztq1YX0tB7Cws9PGuo0MPHer71/qrsT/YeolKzcg+RlV1nttdncxWHFbIvTeaOLvTwX07mjkhXjPjrZG5KoWa2j1YeR208h7OPkcp9eBvu0cPps+cUenj2fv+QQg/PDnAqrzWOK2Sz/jWZ216omb1O3lWomfVwIZu9ns5M5qYVtp29Rh9eqJnt4f9PoYdnH5/Z14IVbfTbSl/e1cealfvB7HGqzPzGew/3DnIAAAAAADrJgBwAAAAAgE4yIAcAAAAAoJMMyAEAAAAA6CQDcgAAAAAAOsmAHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOmtzvBbB/7itk5yVz9xRqbk3m5hZqPprMbS7UPCyZe6JQc2ohmzWWzB1RqHloMve9ZK5yjB5O5k4o1JyfzN1VqHlUMndvoeYLkrnsMYrIP47/pVAz+xxeUqj5jWRue6FmNjutUBP6rXLzNZTM7SrU7Oe7IyrbzvbGpoXtV2pm19nGTXd2ndk1RuSP0fRCzf87mfvLQs0XJXPfLdTMHqcdhZptPIezNfstezwrj0/ot52FbPaxXXl9ma05pVDz+GRuRqFm9rX9lkLN7Ou8yqykcu3NemYy93gyV+k52ddEzyvU/P1krnLv9Fgy18bspSL7PBot1Myez8rxzKr02+zr8InUw72DHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTDMgBAAAAAOgkA3IAAAAAADrJgBwAAAAAgE6a3O8FsKc/XrwwldtWqLkmmXu0UPPwZO6xQs3NydxQoeaPkrlZhZpZcwrZx5O5yr4/lMxtTOaOLWx7WjK3tlDz5GTumELNnclcZd+3JnO7CjUPTeaOLtTckszdUqh5VDJXOe/Z4/SNVasLVaEdpyd7eOVa3uzfUg667Dsuxgo1s9nKuz2yx7NSM3s+K/uevfa1cYymJHP/V6HmpmTu1ELNZyZzlT6WvS9oQ7+vC9ntV7adza7WwxkHfiHZw7PXyIh2hi3Z6/kThZrfT+bOLtScmsxV1vnPyVzlejqczFXO5YxkLvu6NXssI/IznRMLNf9DMvepQs2symvmynnvdc0dhZrZfarse3b7bazz3gnUw72DHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTDMgBAAAAAOgkA3IAAAAAADrJgBwAAAAAgE4yIAcAAAAAoJMm93sB7GkomVtfqDmazE0q1Mz+ZKUp1PyFZO6hQs0tydyMQs1tydzGQs3scdpRqPl4MrcgmZta2Pa/JXOHFWr+U5yWyj1cqDkrmXt2oebqZG5aoeZYMrexUPPIZO47hZrZ8/lYoeY3VmWPKAyOSm/MPv+zuYp+v4uin9uvHM/sOnfuz0L6YGYy9zeFmv8n2cMXFWq+MZn750LNrOz9ekT++V6p2YbsOiuP49V6OAOkcm+elb3f3lWo2evXeBERS5K5FxRqZmcQXynUzF6njivUPCmZq8xf/i6Ze1Yyt66w7XnJXGWm8vFkD688jvupch/+RDJX6Y3Z7W8v1Mxuv7Lv93awh5dee6xYsSKe97znxYwZM+KYY46JV73qVbFmzZo9Mtu2bYtly5bFkUceGdOnT48LL7wwNmzY0NNFAwA1ejgADCY9HADaVRqQr1y5MpYtWxa33nprfO1rX4sdO3bEy172sti6devuzHve85748pe/HJ///Odj5cqV8dBDD8VrXvOani8cAMjTwwFgMOnhANCu0kesXH/99Xv8+eqrr45jjjkmVq1aFWeffXZs2rQprrzyyrjmmmvipS99aUREXHXVVfGsZz0rbr311nj+85/fu5UDAGl6OAAMJj0cANp1QB/vuGnTpoiImD17dkRErFq1Knbs2BHnnnvu7sypp54axx13XNxyyy17rTE6OhqbN2/e4wsAaJceDgCDSQ8HgN7a7wH52NhYvPvd744XvOAFcfrpp0dExPr162Pq1Kkxa9asPbJz5syJ9ev3/msNVqxYESMjI7u/Fiyo/DoJAKBKDweAwaSHA0Dv7feAfNmyZXHPPffEtddee0ALWL58eWzatGn317p1ld/RCwBU6eEAMJj0cADovdJnkP/YxRdfHF/5ylfi5ptvjmOPPXb39+fOnRvbt2+PjRs37vHT6w0bNsTcuXP3Wmt4eDiGh4f3ZxkAQJEeDgCDSQ8HgHaU3kHeNE1cfPHFcd1118XXv/71OOGEE/b4+8WLF8eUKVPixhtv3P29NWvWxIMPPhhLly7tzYoBgDI9HAAGkx4OAO0qvYN82bJlcc0118SXvvSlmDFjxu7PMxsZGYnDDjssRkZG4i1veUtccsklMXv27Jg5c2a8853vjKVLl/rN2QDQR3o4AAwmPRwA2lUakF9xxRUREfGSl7xkj+9fddVV8aY3vSkiIv7wD/8wDjnkkLjwwgtjdHQ0zjvvvPjEJz7Rk8V2wcZkbmqh5v1xbyq3vVDz0GTuh4WaW5K5yq+PmVTIZmX/2UXln2ccnszNLNTcmMxtTeYeKmx77/+Q88mmFGpmzStks4/PWwo1s8/NynMje97HCjXvS+amFWo+nsx9Y9XqQlV6RQ9v337/YpenMZbs4RXZ3tgUalauP72u2cZxr9jVQs3sPmWPUaXfzk7mjt13ZLf/O5n7z4Wa9ydzlcdx9ri3cc4r62zDzmRutR7eF3p4+55I5ir3xj9K9vD9+tzbfVhSyD4zmav022x/yr5+iMj3snMKNdckc5sLNX+QzP1VMvcfC9v+VjJ3dKHmUCGble15ld64I5mr9PDsPXO2h0bk11mpmXW3Hv60Stfiptn3w/PQQw+Nyy+/PC6//PL9XhQA0Ft6OAAMJj0cANrV7zfdAAAAAABAXxiQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ00ud8L6IJbFy9MZzckc48Utr89mXtmCzUrsjXXFGoekcwNF2qOJHOPF2r+MJl7rFBzczKXXeeswraz5/L4OC1d83vJ3M+nK0aMJXPbCjWnJ3NTCzWzz/fs4ygi/9PRyjqvW7W6kIbBcHqhhw8lc83+LaVn2th+9pqSve5WalZkt1/ZdhvHs3KcMiprzG77HYUe/k/J3PnpihF3JXM7CjWz+559rke089zIns+dhZqr9XAmoMWFHp59XlVe42VfN1Zkrz9/V6iZHQr9a6HmvyRzcws15ydzJxZqZrOXFWqek8ydnsz9W2Hbo8ncbxd6eFblXiP7OG6jh1fWmT2elXVme3NlnXfr4T3hHeQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdNLnfC+iC+wvZ4WRuUqHm1GRuV6HmzmRuWqHmtmRuR6HmvyVzhxdqbi1ks55I5n5UqDmWzC1I5rLnPCLiF+O0VO77hZqHJXM/V6i5LplbWqi5NpmrPI6PSOYqP/H8+WTuA6tWF6rCxDPUQs3s9Tki/7yu1GxDG9vP1qxc+9o4ntmaTaFmNpvd9hsK2z4l2cOPKtR8JJn700LN7L1TGyrXhexjqfL4yN6TrdbD6bjKa+Y2ek729W12BhCRH+BUBj0PFrJZuU4SsbhQM7tPldf2/5rM/Wqh5qeTuZOTuS8Utv1XySNfeS2afR5VemO257Vx7zRaqJnd98osLZu9Vw8/6LyDHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTDMgBAAAAAOgkA3IAAAAAADrJgBwAAAAAgE6a3O8FdMGcQnZnMrelUHNaMvdQoeauZG57oWZ23ycVah6azI0Uamb3abhQ8/FkrvKEnZ7MZX9KdlRh248VslmLk7lHCzWPTObWFmpmz9HhhZrfSuYqP/H8wKrVhTR0V+W627Sw/bFkro13PAwVsv18x0X2GEXk19nG/lQeH9ntH53M3VfY9r8lc39aqPlwMle5v80+Ptt4XlZqZtdZeRyv1sMhJfv6MqKd/pDNTinUzF4rKq/H5iZzpxdqLkzmvlyoeVYyd02h5q8nc58p1My+Hr0nmVtX2HblMZ+Vnf1U7pmf2J+F7MOOZK5yjLL9vtLD79XDxy3vIAcAAAAAoJMMyAEAAAAA6CQDcgAAAAAAOsmAHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTDMgBAAAAAOikyf1ewCD768ULU7kjCzUfS+bOKtR8KE5L5Y6Je9M1Vydzk9IVI2YnczsKNXcmc6OFmtuTuey5jIg4KZn7UaHm9B7XPC35OIqI+LlkbixdMWJmMndnoWb2XB5aqLktmdtYqDmSzH1mVfaZCZye7OGV69Su/VvKPuSuvWOFHp5VeRdFk8xVbjzbOJ7Z8zlUqJnd9zbelZK917ir0MOz+/54umJe5fnWz3f5VNaZdY8eDmmLkz28Ivu8rry+PSR57d1R6OHZPlq5Tt2czK0r1My+JvpqoeZf9njbEREPJ3MPFGpmfSqZm1To4dnHR2Wmkr0fy85eIvL3TpV7wcpMJyt7nO7WwyeE0r3lihUr4nnPe17MmDEjjjnmmHjVq14Va9as2SPzkpe8JIaGhvb4evvb397TRQMANXo4AAwmPRwA2lUakK9cuTKWLVsWt956a3zta1+LHTt2xMte9rLYunXrHrm3vvWt8fDDD+/++shHPtLTRQMANXo4AAwmPRwA2lX6iJXrr79+jz9fffXVccwxx8SqVavi7LPP3v39adOmxdy5c3uzQgDggOnhADCY9HAAaNcBfXzfpk2bIiJi9uw9Pz36s5/9bBx11FFx+umnx/Lly+Pxx9v4lEIAYH/p4QAwmPRwAOit/f4lnWNjY/Hud787XvCCF8Tpp5+++/tveMMb4vjjj4/58+fHXXfdFe973/tizZo18YUvfGGvdUZHR2N09Ccfp7958+b9XRIAkKCHA8Bg0sMBoPf2e0C+bNmyuOeee+Lv//7v9/j+2972tt3/fcYZZ8S8efPinHPOiQceeCBOPPHEJ9VZsWJFfPCDH9zfZQAARXo4AAwmPRwAem+/PmLl4osvjq985SvxjW98I4499tinzS5ZsiQiIu6///69/v3y5ctj06ZNu7/WrVu3P0sCABL0cAAYTHo4ALSj9A7ypmnine98Z1x33XVx0003xQknnLDP/+fOO++MiIh58+bt9e+Hh4djeHi4sgwAoEgPB4DBpIcDQLtKA/Jly5bFNddcE1/60pdixowZsX79+oiIGBkZicMOOyweeOCBuOaaa+JXfuVX4sgjj4y77ror3vOe98TZZ58dixYtamUHAIB908MBYDDp4QDQrqGmaZp0eGhor9+/6qqr4k1velOsW7cufv3Xfz3uueee2Lp1ayxYsCBe/epXx/vf//6YOXNmahubN2+OkZGR7JL66q8WL0zlNhZqnr7vSERE/FOh5ui+IxER8eW4N13zsGTuiXTFiGnJ3M5Cze3JXO7R+e92JHN7f7YcmEmFbPbYPyOZmx+npbe99/epPNlj6YoRdydzWwo1Z/U4F5F/vv+3VasLVZlINm3alO6JvaSH72lRsodXruVjyVz6xquQHSr08DZk34NYOZ7ZPlY5noMi+xmIM5K57YUenj2elfuxNu6JsuvMPi8r7tHDO0sPHx+ek+zhFdnr1JRCzexrt8mFHp59h+PUdMV8tnLdz6rUzM41Kq+Zs9uv/FuL7Awi2+unFXp49lftZmcaEfl+W7kfy/bm7LGsbP8uPbyTMv27/BErT2fBggWxcuXKSkkA4CDQwwFgMOnhANCu/folnQAAAAAAMOgMyAEAAAAA6CQDcgAAAAAAOsmAHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTJvd7AePNqxcvTGc3JHObC9u/J5k7rFDz0WTulDgtXXNt3FtYQc6kZG5nz7cccUQh+/1kblah5pHJ3PZCzY3J3FDyvK8rbPvxZO57hZozk7nZhZo/l8w9VKi5q5AFeuv0Qg9vQ9NCzaF0Mt/DI9nDK++iGE3m8vuTz7Zx3NtQOZ7Z7PbkeR8ubDt7PCvHfayQzWrjfhDon+cUeni2P1R6ThvXvrze9/CKx5K5yr5nB02V/pC97ldqZtfZRs85JHnes6+tI/L3Y2305cqsIjv7qTzmvA7nQHkHOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ00ud8LGG/eUch+P5n7SqHmnGTuiELNqcncvxZqvjhOS+VWxb3pmpOSue3pihHTkrldLdTcVKj53GTuG8njHpFfZ/anZI+mtxzxvWTu6ELNx5O5eYWas5K5i1etLlQFBsFQH2s2hZpjPd52RMSkZC8ZK/TwrEq/7afKO0iy5+iQQg/P3hNljRayvd52RP4xX3luZK3Ww2EgtPH831nItjEYqWw/a1uylwwXeni251V6Y3bfK/0pe44qj6XsfcmuQg/Pys41KvOP7D1J5Rhlz2XlXnRHMne3Hs5B5B3kAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnTS53wsYb5pCdkMyd0ah5pHJ3KxCze3J3L8Wat6ezJ0Vp6Vr3h33pnJT0hUjnpnMPVCouTiZu7NQc3XyOA0Xam5M5o5J5rKPzYiIHcnc1kLNyvazfn3V6haqAv3Sxk/9K/cFlWw/jaWT+R4eyR5ekT2f+f1pq2blOPVWtt9OaqFmRfZ4Vo77aj0cJpRKD9+ZzFWufdnrT+Uamd3+E4Wa2dfCOwu9aUcLr8Ozg6Y27rN2FWoOJY/TaKFm9rGcfSxlH+8REUPJXBv3rJWad+vhjEPeQQ4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnTe73Ag6WLy5emModUag5JZnbUqh5VAs1/66FmrOSuRsKNWfHaanc0YWa/5bMPVGo+WgyN6lQc0Eyd2ShZvbJ/a/J3PbCtmcnc7sKNWckc8tXrS5UBQbB6ckeXtH0vGI72x7qca49uR7ehsq7PcZaqJlVuS/IrrOf5z27xkp2tR4OE84vJHv4zkLN7DW68lojW7PSw7OvnypDmez1tHI8m2QPr/TGHclcdqYSEbEtmav0xuxjpHLes8c+ey77ec9acbcezoDzDnIAAAAAADqpNCC/4oorYtGiRTFz5syYOXNmLF26NL761a/u/vtt27bFsmXL4sgjj4zp06fHhRdeGBs2bOj5ogGAGj0cAAaTHg4A7SoNyI899ti47LLLYtWqVXHHHXfES1/60njlK18Z9957b0REvOc974kvf/nL8fnPfz5WrlwZDz30ULzmNa9pZeEAQJ4eDgCDSQ8HgHYNNU1zQB9pNHv27PiDP/iDeO1rXxtHH310XHPNNfHa1742IiK++93vxrOe9ay45ZZb4vnPf36q3ubNm2NkZORAlrRX2c8gn1+oeXMyd2+h5gnJXOUnG/38DPLK521mP7e68ujIfp7bQ4Waz2qh5inJ3OOFmv38DPJpyVzlcwGzn79+qc8+Y5zbtGlTzJw5s9/LiIjB6eHZzyDv9+fG9fOzJPv/GeQ5lc+tbuN89vMzyCufs1o5ThmV/cn2Zp9BThfp4XXZzyBvoz8MSs+pfAZ5G/uevS9po49VamY/27vfn0Ge3fde5yLauR/M7rvPIGc8y/Tv/e4Du3btimuvvTa2bt0aS5cujVWrVsWOHTvi3HPP3Z059dRT47jjjotbbrnlKeuMjo7G5s2b9/gCANqjhwPAYNLDAaD3ygPyu+++O6ZPnx7Dw8Px9re/Pa677rpYuHBhrF+/PqZOnRqzZs3aIz9nzpxYv379U9ZbsWJFjIyM7P5asGBBeScAgH3TwwFgMOnhANCe8oD8lFNOiTvvvDNuu+22eMc73hEXXXRRrF69//+UYvny5bFp06bdX+vWrdvvWgDAU9PDAWAw6eEA0J7Kx11FRMTUqVPjpJNOioiIxYsXx+233x5/9Ed/FK973eti+/btsXHjxj1+er1hw4aYO3fuU9YbHh6O4eHh+soBgBI9HAAGkx4OAO054N9FMTY2FqOjo7F48eKYMmVK3Hjjjbv/bs2aNfHggw/G0qVLD3QzAECP6eEAMJj0cADondI7yJcvXx4XXHBBHHfccbFly5a45ppr4qabboobbrghRkZG4i1veUtccsklMXv27Jg5c2a8853vjKVLl6Z/czYA0A49HAAGkx4OAO0qDcgfeeSR+I3f+I14+OGHY2RkJBYtWhQ33HBD/PIv/3JERPzhH/5hHHLIIXHhhRfG6OhonHfeefGJT3yilYVXXZnMvbBQc14y9/8Wam5I5rYXag4lcyOFmruSuVmFmtOSuUcLNacmczMKNe9M5iq/5ubfkrnvFmpmVfY9K/uYe2ah5iWr9v8zFoHB7uFjyVzln8Vlr1MV2e1n94fey56jA/4nlgeo6XG97H1bRP7xWXkcr9bD4YAMcg/PXn8qfblyTcsalN68M5mrHM9sdluhZlbluPfzHGWPe0X2uFfuSbLHqPL4uFsPpyOGmqbp9T34Adm8eXOMjFRGtTmvWLwwlWtjQH5VoeZhyVwbA/LKT0uyF94jCzWzZ31zoWZ2QF7Z9x8mc5UB+cxkblAG5NlPMzQgp4s2bdoUM2dmn/WDpa0evjDZwyvX8jYG5NkbqkF5Ed6Gyr73c0jdxrYnFbJtDH+yDMjhqenhdYuSPbzSl9sYYLRxX5DVxuvwNgbkbQyJ29j3NvRzQF45l208Pu7Sw5kAMv2732+QAQAAAACAvjAgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTDMgBAAAAAOgkA3IAAAAAADppcr8XcLCclcydVKj5kWTulELNh5O5BYWak5K5jYWas5K5xws1sw/GaYWaM5O5nYWab0jmNhZqfieZm1WoOT2Ze6xQM2t2MnfJqtUtbB2YaPr50/ymj9tuS/Z4jrW6in3L3hdUengbj6WhZG5XoWb2cZfNtXEuV+vhQJ9kr7ttqNwXZNdZ6WPZ7U9poWZFtuaOQs3s8Wyj51Uec73u4ZX7h+x9zl16ODyJd5ADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB00uR+L+BAvHrxwnT2W8ncA4XtL0jmphZqjiRzDxdqTk/mdhVqPp7MTSrUzO7TkYWaO5K5KYWa2XVOK9Sck8xtLtQcSuayF4HDCtv+/VWrC2mgixYWeng/Za+lFZV3JzTJXL/XOZbMVfptVuVeIyt73CNq90+9lj3uFav1cGAfFhV6eBv9aaKp9Jzs8dy5PwvZh8o627h/qWy/19pYZxs9/G49HPabd5ADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSZP7vYADcUwh+2gy90Sh5qnJ3L8Vap6RzK0p1DwlmXuwUHNnMndooeZRydxwoeaCZO6hQs3sT5V+UKiZfdw1hZrrk7nPrVpdqArQG5NaqFm5RmazlXcSVLafld1+ZZ1j+7OQfciezzbWWTnu2ZpDhZq93nbFaj0cGOey1+jKdTdbs42+3EZ/aGPf29DPbfd7+5Uens3eq4fDuOId5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ00ud8LOBDbC9n3JnN/Vai5I5l7YaHmPydzv1iouTmZO6tQc14yd1uh5sZk7qhCzZ3JXFOomTWlkP1OMveZVav3ZykA486uQjb70/yxQs3sDVClPwz1eNsRtX3KauN4tlEzq42alcdn1mo9HJggsv0uIt9H23g91obKvvezN1a0ceyzx6mN+8E23K2Hw4RXusZcccUVsWjRopg5c2bMnDkzli5dGl/96ld3//1LXvKSGBoa2uPr7W9/e88XDQDU6OEAMJj0cABoV+kd5Mcee2xcdtllcfLJJ0fTNPHpT386XvnKV8a3v/3tOO200yIi4q1vfWt86EMf2v3/TJs2rbcrBgDK9HAAGEx6OAC0qzQgf8UrXrHHn//rf/2vccUVV8Stt966uzFPmzYt5s6d27sVAgAHTA8HgMGkhwNAu/b7Y5x27doV1157bWzdujWWLl26+/uf/exn46ijjorTTz89li9fHo8//vjT1hkdHY3Nmzfv8QUAtEcPB4DBpIcDQO+Vf0nn3XffHUuXLo1t27bF9OnT47rrrouFCxdGRMQb3vCGOP7442P+/Plx1113xfve975Ys2ZNfOELX3jKeitWrIgPfvCD+78HAECKHg4Ag0kPB4D2DDVNU/qlxdu3b48HH3wwNm3aFH/xF38Rn/rUp2LlypW7m/NP+/rXvx7nnHNO3H///XHiiSfutd7o6GiMjo7u/vPmzZtjwYIFqbW8efGTt/lU/q9k7q/SFfO/cfnMQs1/TuZmFWpm3wtwZKHmvGTutkLNjcnc/ELN6cnchkLN7Pa3FWrelcx9xm/PhoG3adOmmDlzZl+2PZ56+MJCD8/+c7exdMX9eIdAwlAL267sU69Vtt3GOcrK3o9VtLHO1Xo4DDw9/N+dWejhpWFDj7Wx7co/wW+jN7axT23UzN4TVXr4fn/8QQ/crYfDQMv07/Lrw6lTp8ZJJ50UERGLFy+O22+/Pf7oj/4o/uRP/uRJ2SVLlkREPG1jHh4ejuHh4eoyAIAiPRwABpMeDgDtOeAfwo2Nje3xk+efduedd0ZExLx52fcbAwAHix4OAINJDweA3im9g3z58uVxwQUXxHHHHRdbtmyJa665Jm666aa44YYb4oEHHohrrrkmfuVXfiWOPPLIuOuuu+I973lPnH322bFo0aK21g8AJOjhADCY9HAAaFdpQP7II4/Eb/zGb8TDDz8cIyMjsWjRorjhhhvil3/5l2PdunXxt3/7t/Gxj30stm7dGgsWLIgLL7ww3v/+9+/Xwt747FNi6qRJT5t5+r/d05eTuZcXau795/VPdkSh5i8kc8cVamY/1+uhQs3sZ3ZPLdQ8JpnbWaj59L+7/Scqj6XvJXP/3eeUAePIwezhpzz7lJi0jx7ehn5+NmVl+5U+llX5/NDs54JmcxH5e43KOtv4TNTs57z6vHBgPDmYPfz0RA/v97U825/a+H0SbfTGiuzxbOP3iFRkt185nlk+LxzYH6UB+ZVXXvmUf7dgwYJYuXLlAS8IAOg9PRwABpMeDgDt6vebrQAAAAAAoC8MyAEAAAAA6CQDcgAAAAAAOsmAHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOMiAHAAAAAKCTJvd7AU9l0v//q1dmJHMbCjVfncx9slBzRzK3pFBzbTK3ulDzF5O5Rws1z0rmVhVqzk7mNhVqfnxV5UgBsDeVn9CPtVBzZws1s4YK2V3JXGWdTY+3XZHddkT+OGUfHxERq/VwgANWuZb3c/tt9MY2VLbdxj1RpY/2WmWdd+vhQIu8gxwAAAAAgE4yIAcAAAAAoJMMyAEAAAAA6CQDcgAAAAAAOsmAHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6yYAcAAAAAIBOmtzvBTyVH0bElH1kZhXq/SiZ+2ah5spk7hcLNW9J5v6lUHMomTumUPN/J3PTCjXvSOYqD9pNydzHV60uVAXgQI1NwJrZbBvvTthZyPbz5q9pIbtaDwfomZ1Ru1aPZ9nXwdVsVhvHcVIL287uexs179bDgXHCO8gBAAAAAOgkA3IAAAAAADrJgBwAAAAAgE4yIAcAAAAAoJMMyAEAAAAA6CQDcgAAAAAAOsmAHAAAAACATjIgBwAAAACgkwzIAQAAAADoJANyAAAAAAA6aXK/F/BU/vrONfvM/OLihel6m5K5ygGZlszdWKi5KJnbUKiZ3ac7CzWzxzObi4h4LJn7i1WrC1UBONjWJHr4wkIPn2jGCtk23smws4WaWav1cIBx7buJHn5aoYc3ydxQumK+N1b6bRvrrGSzsuus7HvWvXo4MIF5BzkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdNLnfCzgQ31y1Op190eKFPd/+UDI3r1DzpmTuRYWatyVzjxZqbk/mdhZq3lA4nwAMttWFa/7CFnr4oBjr9wKSKucTgMF2bws9vClsv5+9MTsDqKjsz6RkrvJOyLv1cIADewf5ZZddFkNDQ/Hud7979/e2bdsWy5YtiyOPPDKmT58eF154YWzYsOFA1wkA9JAeDgCDR/8GgN7b7wH57bffHn/yJ38SixYt2uP773nPe+LLX/5yfP7zn4+VK1fGQw89FK95zWsOeKEAQG/o4QAwePRvAGjHfg3IH3vssXjjG98Y/+t//a844ogjdn9/06ZNceWVV8ZHP/rReOlLXxqLFy+Oq666Kr75zW/Grbfe2rNFAwD7Rw8HgMGjfwNAe/ZrQL5s2bJ4+ctfHueee+4e31+1alXs2LFjj++feuqpcdxxx8Utt9xyYCsFAA6YHg4Ag0f/BoD2lH9J57XXXhvf+ta34vbbb3/S361fvz6mTp0as2bN2uP7c+bMifXr1++13ujoaIyOju7+8+bNm6tLAgAS9HAAGDy97t8RejgA/LTSO8jXrVsX73rXu+Kzn/1sHHrooT1ZwIoVK2JkZGT314IFC3pSFwD4CT0cAAZPG/07Qg8HgJ9WGpCvWrUqHnnkkXjOc54TkydPjsmTJ8fKlSvj4x//eEyePDnmzJkT27dvj40bN+7x/23YsCHmzp2715rLly+PTZs27f5at27dfu8MALB3ejgADJ42+neEHg4AP630ESvnnHNO3H333Xt8781vfnOceuqp8b73vS8WLFgQU6ZMiRtvvDEuvPDCiIhYs2ZNPPjgg7F06dK91hweHo7h4eH9XD4AkKGHA8DgaaN/R+jhAPDTSgPyGTNmxOmnn77H9w4//PA48sgjd3//LW95S1xyySUxe/bsmDlzZrzzne+MpUuXxvOf//zerRoAKNHDAWDw6N8A0L7yL+nclz/8wz+MQw45JC688MIYHR2N8847Lz7xiU/0ejMAQI/p4QAwePRvADgwQ03TNP1exE/bvHlzjIyM9G37L1q8MJ3N/oO0WYXtH5bM7SrUfLzHuYiIv1m1upAG4Mc2bdoUM2fO7PcyWtHvHr6w0MP7qfILYMZa2P5qPRxgv+jh7Wmjhw/1vGL/3auHA5Rl+nfpl3QCAAAAAMBEYUAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHSSATkAAAAAAJ1kQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdNLkfi/gZzVN09ft79y1K52dlMztKGw/W3OsUDO7/Z2FmgDsn373uTb1e992FXp4P1WOUqXfA9Cufve5NvV739ro4UM9rwjAIMr0uHE3IN+yZUtft3/LnWv6un0AJrYtW7bEyMhIv5fRin738DV6OAAt0sPbo4cD0JZM/x5q+v2j4p8xNjYWDz30UMyYMSOGhn7yM9/NmzfHggULYt26dTFz5sw+rrA37M/4N9H2yf6MfxNtn+zPnpqmiS1btsT8+fPjkEMm5iec7a2HT7THQcTE2yf7M/5NtH2yP+PfRNsnPXzf9PDBZH/Gt4m2PxETb5/sz/h3IPtU6d/j7h3khxxySBx77LFP+fczZ86cMCc5wv4Mgom2T/Zn/Jto+2R/fmKivuvsx56uh0+0x0HExNsn+zP+TbR9sj/j30TbJz38qenhg83+jG8TbX8iJt4+2Z/xb3/3Kdu/J+aPvwEAAAAAYB8MyAEAAAAA6KSBGZAPDw/HpZdeGsPDw/1eSk/Yn/Fvou2T/Rn/Jto+2R8iJuZxm2j7ZH/Gv4m2T/Zn/Jto+zTR9udgmYjHbaLtk/0Z3yba/kRMvH2yP+PfwdqncfdLOgEAAAAA4GAYmHeQAwAAAABALxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdNBAD8ssvvzx+/ud/Pg499NBYsmRJ/OM//mO/l7TfPvCBD8TQ0NAeX6eeemq/l5V28803xyte8YqYP39+DA0NxRe/+MU9/r5pmvi93/u9mDdvXhx22GFx7rnnxn333defxSbsa3/e9KY3Pel8nX/++f1ZbMKKFSviec97XsyYMSOOOeaYeNWrXhVr1qzZI7Nt27ZYtmxZHHnkkTF9+vS48MILY8OGDX1a8dPL7M9LXvKSJ52jt7/97X1a8b5dccUVsWjRopg5c2bMnDkzli5dGl/96ld3//0gnZ+Ife/PoJ2fn3XZZZfF0NBQvPvd7979vUE7R/02UXr4oPfvCD1cDz+49PDxfX4i9PBBOEf9poePH3q4Hn4wTbQePtH6d4Qe3sZ5GvcD8j/7sz+LSy65JC699NL41re+FWeeeWacd9558cgjj/R7afvttNNOi4cffnj319///d/3e0lpW7dujTPPPDMuv/zyvf79Rz7ykfj4xz8en/zkJ+O2226Lww8/PM4777zYtm3bQV5pzr72JyLi/PPP3+N8fe5znzuIK6xZuXJlLFu2LG699db42te+Fjt27IiXvexlsXXr1t2Z97znPfHlL385Pv/5z8fKlSvjoYceite85jV9XPVTy+xPRMRb3/rWPc7RRz7ykT6teN+OPfbYuOyyy2LVqlVxxx13xEtf+tJ45StfGffee29EDNb5idj3/kQM1vn5abfffnv8yZ/8SSxatGiP7w/aOeqnidbDB7l/R+jhevjBpYeP7/MToYcPwjnqJz18fNHD9fCDaaL18InWvyP08FbOUzPOnXXWWc2yZct2/3nXrl3N/PnzmxUrVvRxVfvv0ksvbc4888x+L6MnIqK57rrrdv95bGysmTt3bvMHf/AHu7+3cePGZnh4uPnc5z7XhxXW/Oz+NE3TXHTRRc0rX/nKvqynFx555JEmIpqVK1c2TfPv52PKlCnN5z//+d2Z73znO01ENLfccku/lpn2s/vTNE3z4he/uHnXu97Vv0X1wBFHHNF86lOfGvjz82M/3p+mGdzzs2XLlubkk09uvva1r+2xDxPlHB0sE6mHT6T+3TR6+CDQwweDHj7+6OG9oYePX3r4+KeHj38TrX83jR5+oMb1O8i3b98eq1atinPPPXf39w455JA499xz45Zbbunjyg7MfffdF/Pnz49nPOMZ8cY3vjEefPDBfi+pJ9auXRvr16/f43yNjIzEkiVLBvp83XTTTXHMMcfEKaecEu94xzvi0Ucf7feS0jZt2hQREbNnz46IiFWrVsWOHTv2OEennnpqHHfccQNxjn52f37ss5/9bBx11FFx+umnx/Lly+Pxxx/vx/LKdu3aFddee21s3bo1li5dOvDn52f358cG8fwsW7YsXv7yl+9xLiIG/zl0ME3EHj5R+3eEHj4e6eHjmx4+funhB04PHyx6+Pijh49fE61/R+jhvTpPk3tSpSU//OEPY9euXTFnzpw9vj9nzpz47ne/26dVHZglS5bE1VdfHaeccko8/PDD8cEPfjBe9KIXxT333BMzZszo9/IOyPr16yMi9nq+fvx3g+b888+P17zmNXHCCSfEAw88EL/zO78TF1xwQdxyyy0xadKkfi/vaY2NjcW73/3ueMELXhCnn356RPz7OZo6dWrMmjVrj+wgnKO97U9ExBve8IY4/vjjY/78+XHXXXfF+973vlizZk184Qtf6ONqn97dd98dS5cujW3btsX06dPjuuuui4ULF8add945kOfnqfYnYjDPz7XXXhvf+ta34vbbb3/S3w3yc+hgm2g9fCL37wg9fLzRw8dvj9DDx/f50cN7Qw8fLHr4+KKHj88eMdH6d4QeHtHb8zSuB+QT0QUXXLD7vxctWhRLliyJ448/Pv78z/883vKWt/RxZezN61//+t3/fcYZZ8SiRYvixBNPjJtuuinOOeecPq5s35YtWxb33HPPwH2+3lN5qv1529vetvu/zzjjjJg3b16cc8458cADD8SJJ554sJeZcsopp8Sdd94ZmzZtir/4i7+Iiy66KFauXNnvZe23p9qfhQsXDtz5WbduXbzrXe+Kr33ta3HooYf2ezmMI/r34NHDxw89fPzSw+kCPXzw6OHjx0Tp4ROtf0fo4b02rj9i5aijjopJkyY96beSbtiwIebOndunVfXWrFmz4pnPfGbcf//9/V7KAfvxOZnI5+sZz3hGHHXUUeP+fF188cXxla98Jb7xjW/Escceu/v7c+fOje3bt8fGjRv3yI/3c/RU+7M3S5YsiYgY1+do6tSpcdJJJ8XixYtjxYoVceaZZ8Yf/dEfDez5ear92Zvxfn5WrVoVjzzySDznOc+JyZMnx+TJk2PlypXx8Y9/PCZPnhxz5swZyHPUDxO9h0+k/h2hh48nevj47RERenjE+D0/enjv6OGDRQ8fP/Tw8dsjJlr/jtDDI3p7nsb1gHzq1KmxePHiuPHGG3d/b2xsLG688cY9PldnkD322GPxwAMPxLx58/q9lAN2wgknxNy5c/c4X5s3b47bbrttwpyv73//+/Hoo4+O2/PVNE1cfPHFcd1118XXv/71OOGEE/b4+8WLF8eUKVP2OEdr1qyJBx98cFyeo33tz97ceeedERHj9hztzdjYWIyOjg7c+XkqP96fvRnv5+ecc86Ju+++O+68887dX8997nPjjW984+7/ngjn6GCY6D18IvXvCD18PNDDx3+P2Bs9fPzQw3tHDx8senj/6eHjv0f8rInWvyP08APWk1/12aJrr722GR4ebq6++upm9erVzdve9rZm1qxZzfr16/u9tP3ym7/5m81NN93UrF27tvmHf/iH5txzz22OOuqo5pFHHun30lK2bNnSfPvb326+/e1vNxHRfPSjH22+/e1vN//yL//SNE3TXHbZZc2sWbOaL33pS81dd93VvPKVr2xOOOGE5oknnujzyvfu6fZny5YtzXvf+97mlltuadauXdv87d/+bfOc5zynOfnkk5tt27b1e+l79Y53vKMZGRlpbrrppubhhx/e/fX444/vzrz97W9vjjvuuObrX/96c8cddzRLly5tli5d2sdVP7V97c/999/ffOhDH2ruuOOOZu3atc2XvvSl5hnPeEZz9tln93nlT+23f/u3m5UrVzZr165t7rrrrua3f/u3m6GhoeZv/uZvmqYZrPPTNE+/P4N4fvbmZ38D+KCdo36aSD180Pt30+jhevjBpYeP7/PTNHr4IJyjftLDxxc9XA8/mCZaD59o/btp9PA2ztO4H5A3TdP88R//cXPcccc1U6dObc4666zm1ltv7feS9tvrXve6Zt68ec3UqVObn/u5n2te97rXNffff3+/l5X2jW98o4mIJ31ddNFFTdM0zdjYWPO7v/u7zZw5c5rh4eHmnHPOadasWdPfRT+Np9ufxx9/vHnZy17WHH300c2UKVOa448/vnnrW986rm8K97YvEdFcddVVuzNPPPFE85/+039qjjjiiGbatGnNq1/96ubhhx/u36Kfxr7258EHH2zOPvvsZvbs2c3w8HBz0kknNf/5P//nZtOmTf1d+NP4j//xPzbHH398M3Xq1Oboo49uzjnnnN2NuWkG6/w0zdPvzyCen7352cY8aOeo3yZKDx/0/t00ergefnDp4eP7/DSNHj4I56jf9PDxQw/Xww+midbDJ1r/bho9vI3zNNQ0TbP/7z8HAAAAAIDBNK4/gxwAAAAAANpiQA4AAAAAQCcZkAMAAAAA0EkG5AAAAAAAdJIBOQAAAAAAnWRADgAAAABAJxmQAwAAAADQSQbkAAAAAAB0kgE5AAAAAACdZEAOAAAAAEAnGZADAAAAANBJBuQAAAAAAHTS/w8SWNqBUDCJdQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cells_to_plot = [0, 99, 310]\n", "fig, axes = plt.subplots(2, len(cells_to_plot), figsize=(15, 10))\n", "\n", "for idx, i in enumerate(cells_to_plot):\n", " # Plotting original cell\n", " plot_cell_image(cell_objects[i], channels=['nucleus', 'protein'], ax=axes[0, idx])\n", " axes[0, idx].set_title(f'Original Cell {i}')\n", " \n", " # Plotting mapped cell\n", " mapped_cell_object = cell_objects[target_cell_ind].copy()\n", " for j, channel in enumerate(channels_to_map):\n", " mapped_cell_object.intensities[channel] = mapped_distbs[j][i]\n", " plot_cell_image(mapped_cell_object, channels=['nucleus', 'protein'], ax=axes[1, idx])\n", " axes[1, idx].set_title(f'Mapped Cell {i}')\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "a459d477", "metadata": {}, "source": [ "After mapping all cells to the anchor cell, we can compute the optimal transport (Wasserstein) distance to measure the difference in protein localization patterns between cells. Similar to the Gromov-Wasserstein morphology space, we can cluster cells based on the optimal transport localization space to identify groups of cells with similar protein localization patterns, and visualize the space with UMAP." ] }, { "cell_type": "code", "execution_count": 12, "id": "4917bb17", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Computing pairwise OT distances:\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 69378/69378 [20:54<00:00, 55.29it/s] \n" ] } ], "source": [ "ot_dmats = gw_mapped_ot_pairwise_parallel(cell_objects[target_cell_ind], mapped_distbs, num_processes=cpu_count(), chunksize=20)" ] }, { "cell_type": "code", "execution_count": null, "id": "696ee320", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/umap/umap_.py:1780: UserWarning:\n", "\n", "using precomputed metric; inverse_transform will be unavailable\n", "\n", "/opt/conda/lib/python3.10/site-packages/plotly/express/_core.py:1992: FutureWarning:\n", "\n", "When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.\n", "\n" ] }, { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Compute UMAP representation of the OT localization space\n", "reducer = umap.UMAP(metric=\"precomputed\", random_state=1)\n", "embedding = reducer.fit_transform(ot_dmats[0])\n", "\n", "# Cluster cells based on the OT localization space using the leiden algorithm\n", "ot_clusters = cajal.utilities.leiden_clustering(ot_dmats[0], resolution=0.005, seed=1)\n", "\n", "# Visualize the OT localization space\n", "plotly.express.scatter(x=embedding[:,0],\n", " y=embedding[:,1],\n", " template=\"simple_white\",\n", " hover_name=[\"cell_\" + str(i) for i in range(ot_dmats[0].shape[0])],\n", " color = [str(c) for c in ot_clusters]\n", " )" ] }, { "cell_type": "markdown", "id": "13f8e5cb", "metadata": {}, "source": [ "We can visualize some example cells and their protein distributions from cluster 0." ] }, { "cell_type": "code", "execution_count": 14, "id": "839bec6f", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cells_to_plot = [335, 270, 309] # Example cells from cluster 0\n", "fig, axes = plt.subplots(1, len(cells_to_plot), figsize=(15, 5))\n", "for ax, i in zip(axes, cells_to_plot):\n", " plot_cell_image(cell_objects[i], channels=['nucleus', 'protein'], ax=ax)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "ed7eb1dc", "metadata": {}, "source": [ "We can also color the UMAP representation of the optimal transport localization space by the localization pattern annotations from the Human Protein Atlas. As expected, the annotated localization patterns separate in the localization space." ] }, { "cell_type": "code", "execution_count": 15, "id": "77c4d262", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.10/site-packages/plotly/express/_core.py:1992: FutureWarning:\n", "\n", "When grouping with a length-1 list-like, you will need to pass a length-1 tuple to get_group in a future version of pandas. Pass `(name,)` instead of `name` to silence this warning.\n", "\n" ] }, { "data": { "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plotly.express.scatter(x=embedding[:,0],\n", " y=embedding[:,1],\n", " template=\"simple_white\",\n", " hover_name=np.array([\"cell_\" + str(i) for i in range(ot_dmats[0].shape[0])]),\n", " color = np.array([str(c) for c in cell_metadata['locations']])\n", " )" ] }, { "cell_type": "markdown", "id": "86df85ac", "metadata": {}, "source": [ "## Applying existing cell image analysis methods to mapped cells" ] }, { "cell_type": "markdown", "id": "064876c8", "metadata": {}, "source": [ "In this tutorial, we use optimal transport distances to quantify differences in subcellular protein localization after mapping each cell to the anchor cell morphology. However, you can apply any existing cell image analysis method (such as CellProfiler or Cytoself) to the mapped cells. To use external tools, we can the mapped cells as individual images for downstream processing." ] }, { "cell_type": "code", "execution_count": null, "id": "7de842c7", "metadata": {}, "outputs": [], "source": [ "output_dir = '/path/to/save/mapped/cell/images/'\n", "cell_image_channels = ['nucleus', 'protein']\n", "for i in range(len(cell_objects)):\n", " # Create a cell object for the mapped cell\n", " mapped_cell_object = cell_objects[anchor_cell_ind].copy()\n", " for j, channel in enumerate(channels_to_map):\n", " mapped_cell_object.intensities[channel] = mapped_distbs[j][i]\n", " # Generate cell image from mapped cell object\n", " mapped_cell_image = make_cell_image(mapped_cell_object, channels=cell_image_channels)\n", " # Write mapped cell image to file\n", " ski.io.imsave(os.path.join(output_dir, f'mapped_cell_image_{i}.tif'), mapped_cell_image)" ] }, { "cell_type": "markdown", "id": "c37a71ec", "metadata": {}, "source": [ "Note, the cell images generated by the `make_cell_image` function are multi-channel images where the first channel is the cell segmentation mask, and subsequent channels are specified by the `channels` parameter." ] }, { "cell_type": "markdown", "id": "8b7a9703", "metadata": {}, "source": [ "## Utilizing multiple anchor cells" ] }, { "cell_type": "markdown", "id": "0930f006", "metadata": {}, "source": [ "One characteristic of the CellAligner algorithm is that localization analysis following the anchor cell mapping can be dependent on the choice of anchor cell to map to. While in practice we've observed that choosing centroid cell based on the GW morphology space results in informative localization analyses, one may want their analysis to be more robust to the choice of anchor cell. To address this, we suggest mapping the protein distributions of each cell to multiple anchor cells, and integrating the resulting localization spaces. One natural way to select a set of anchor cells is to first cluster the GW morphology space and select the centroid cell of each morphological cluster, thus utilizing a broad range of cellular morphologies in constructing each localization space. Here we utilize OT to construct separate localization spaces for each anchor cell. Note, since this approach involves repeating the GW-based mapping and OT computations per each anchor cell, it will substatially increase the runtime of the analysis." ] }, { "cell_type": "code", "execution_count": 18, "id": "a0d31aeb", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Find centroid cell for each GW morphology cluster\n", "cluster_centroids = []\n", "for c in np.unique(gw_clusters):\n", " cluster_inds = np.where(gw_clusters == c)[0]\n", " # subset the GW distance matrix to only the cells in the cluster\n", " gw_dmat_cluster = gw_dmat[np.ix_(cluster_inds, cluster_inds)]\n", " # find the centroid cell in the cluster\n", " cluster_centroid_idx = find_centroid(gw_dmat_cluster)\n", " cluster_centroid = cluster_inds[cluster_centroid_idx]\n", " cluster_centroids.append(cluster_centroid)\n", "\n", "# Visualize centroid cells for each GW morphology cluster\n", "fig, axes = plt.subplots(1, len(cluster_centroids), figsize=(15, 5))\n", "for ax, i in zip(axes, cluster_centroids):\n", " plot_cell_image(cell_objects[i], channels=['nucleus'], ax=ax)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "60e26557", "metadata": {}, "outputs": [], "source": [ "centroid_mapped_distbs = []\n", "centroid_ot_dmats = []\n", "for target_cell_ind in cluster_centroids[1:]:\n", " # Mapping all cells to anchor cell\n", " mapped_distbs = map_to_cell_parallel(cell_objects, \n", " channels_to_map, \n", " target_cell_ind, # cell to map to\n", " method='fused', # 'fused' for full mapping, 'fused' for partial mapping\n", " fused_channel='nucleus', # addition info to consider for mapping\n", " fused_cost=1000, fused_param=0.1, # controls weight of additional info\n", " compartment_specific=True, # enforces strict mapping of nucleus to nucleus\n", " num_processes=cpu_count(), chunksize=1) # parallelization parameters\n", " # Compute OT distance matrix for the mapped protein distributions\n", " ot_dmats = gw_mapped_ot_pairwise_parallel(cell_objects[target_cell_ind], mapped_distbs, num_processes=cpu_count(), chunksize=20)\n", " centroid_mapped_distbs.append(mapped_distbs)\n", " centroid_ot_dmats.append(ot_dmats)\n", "\n", " out_dir = '/path/to/save/anchor/mapped/distances/'\n", " for target_cell_ind, mapped_distbs, ot_dmats in zip(cluster_centroids, centroid_mapped_distbs, centroid_ot_dmats):\n", " with open(os.path.join(out_dir, f'anchor_{target_cell_ind}_mapped_distbs.pickle'), 'wb') as f:\n", " pickle.dump(mapped_distbs, f, protocol=pickle.HIGHEST_PROTOCOL)\n", " with open(os.path.join(out_dir, f'anchor_{target_cell_ind}_ot_dmats.pickle'), 'wb') as f:\n", " pickle.dump(ot_dmats, f, protocol=pickle.HIGHEST_PROTOCOL)" ] }, { "cell_type": "markdown", "id": "3c0b69e4", "metadata": {}, "source": [ "Having computed the OT localization spaces for each cluster centroid, we will now build a consolidated space that integrates information from each localization space. For this purpose, we use the Weighted Nearest Neighbors (WNN) algorithm introduced in:\n", "\n", "\\- Hao, Y. et al. [Integrated analysis of multimodal single-cell data.](https://www.sciencedirect.com/science/article/pii/S0092867421005833) Cell 184, 3573-3587 (2021).\n", "\n", "To do this, we construct instances of the `Modality` class for each input. The input to `cajal.wnn.wnn()` is a list of Modality objects and a number of nearest neighbors to consider in each space." ] }, { "cell_type": "code", "execution_count": null, "id": "dd369efe", "metadata": {}, "outputs": [], "source": [ "import cajal.wnn\n", "\n", "# Extract protein OT dmat from each centroid\n", "centroid_protein_ot_dmats = [ot_dmats[0] for ot_dmats in centroid_ot_dmats]\n", "# Integrate OT localization spaces from each centroid cell using WNN\n", "integrated_space = 1-cajal.wnn.wnn(centroid_protein_ot_dmats, 5)" ] }, { "cell_type": "markdown", "id": "4e979675", "metadata": {}, "source": [ "The similarity function returned by the weighted nearest neighbors algorithm is asymmetric. For this reason, the term \"space\" here is somewhat imprecise. To visualize the consolidated space using UMAP, it is therefore convenient to symmetrize the matrix." ] }, { "cell_type": "code", "execution_count": null, "id": "64fe8dd2", "metadata": {}, "outputs": [], "source": [ "def symmetrize(a):\n", " a = a.copy()\n", " a[a == 0] = np.max(a)\n", " b = a + a.T\n", " b = np.minimum(a,b)\n", " b = np.minimum(b,a.T)\n", " d=np.zeros(a.shape[0],dtype=int)\n", " b[d,d]=0\n", " return np.array(b)\n", "\n", "wnn_dmat = symmetrize(integrated_space)" ] }, { "cell_type": "code", "execution_count": null, "id": "64dd0a71", "metadata": {}, "outputs": [], "source": [ "# Compute UMAP representation of the OT localization space\n", "reducer = umap.UMAP(metric=\"precomputed\", random_state=1)\n", "embedding = reducer.fit_transform(wnn_dmat)\n", "\n", "# Visualize the OT localization space\n", "plotly.express.scatter(x=embedding[:,0],\n", " y=embedding[:,1],\n", " template=\"simple_white\",\n", " hover_name=[\"cell_\" + str(i) for i in range(wnn_dmat.shape[0])],\n", " color = [str(c) for c in cell_metadata['locations']]\n", " )" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 5 }