From 6e06afa9f8d5e9f05a38e605562ec10249216704 Mon Sep 17 00:00:00 2001 From: Marco Perini Date: Sun, 22 Dec 2024 01:31:14 +0100 Subject: [PATCH] docs: research agent --- ...h_agent_scrapegraph_langgraph_tavily.ipynb | 1302 +++++++++++++++++ 1 file changed, 1302 insertions(+) create mode 100644 cookbook/research_agent_scrapegraph_langgraph_tavily.ipynb diff --git a/cookbook/research_agent_scrapegraph_langgraph_tavily.ipynb b/cookbook/research_agent_scrapegraph_langgraph_tavily.ipynb new file mode 100644 index 0000000..8d02daa --- /dev/null +++ b/cookbook/research_agent_scrapegraph_langgraph_tavily.ipynb @@ -0,0 +1,1302 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "ReBHQ5_834pZ" + }, + "source": [ + "\n", + " \"Open\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jEkuKbcRrPcK" + }, + "source": [ + "## šŸ•·ļø Research Agent with `scrapegraph`, `langgraph`, and `tavily`" + ] + }, + { + "cell_type": "markdown", + "source": [ + "![Presentazione senza titolo.pptx (9).png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABxQAAAHsCAIAAAB0Zg8ZAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADcGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI0LTEyLTIyPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPmQ3ZGY1Mzc1LTkyNGEtNGZlZi1iMDA1LTQ3ZDZlYjU1ZGUyZDwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5QcmVzZW50YXppb25lIHNlbnphIHRpdG9sby5wcHR4IC0gMTwvcmRmOmxpPgogICA8L3JkZjpBbHQ+CiAgPC9kYzp0aXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSdyJz8+NbptkAAAIABJREFUeJzs3YdfFMfj//Hvn/AjGrDQFBtiF1EUjTVGJcaOvXdj7/qx9957792YYu8ldmzYC4ooBhUVRAUE7zcycbLeHcdxHCzI6x7Ph4/dudnZ2bkL6Duzs//nn6cnAAAAAAAAAEDr5O5L/6d7JwAAAAAAAAAgoyE8BQAAAAAAAAAzCE8BAAAAAAAAwAzCUwAAAAAAAAAwg/AUAAAAAAAAAMwgPAUAAAAAAAAAMwhPAQAAAAAAAMAMwlMAAAAAAAAAMIPwFAAAAAAAAADMIDwFAAAAAAAAADMITwEAAAAAAADADMJTAAAAAAAAADCD8BQAAAAAAAAAzCA8BQAAAAAAAAAzCE8BAAAAAAAAwAzCUwAAAAAAAAAwg/AUAAAAAAAAAMwgPAUAAAAAAAAAMwhPAQAAAAAAAMAMwlMAAAAAAAAAMIPwFAAAAAAAAADMIDwFAAAAAAAAADMITwEAAAAAAADADMJTAAAAAAAAADCD8BQAAAAAAAAAzCA8BQAAAAAAAAAzCE8BAAAAAAAAwAzCUwAAAAAAAAAwg/AUAAAAAAAAAMwgPAUAAAAAAAAAMwhPAQAAAAAAAMAMwlMAAAAAAAAAMIPwFAAAAAAAAADMIDwFAAAAAAAAADMITwEAAAAAAADADMJTAAAAAAAAADCD8BQAAAAAAAAAzCA8BQAAAAAAAAAzCE8BAAAAAAAAwAzCUwAAAAAAAAAwg/AUAAAAAAAAAMwgPAUAAAAAAAAAMwhPAQAAAAAAAMAMwlMAAAAAAAAAMIPwFAAAAAAAAADMIDwFAAAAAAAAADMITwEAAAAAAADADMJTAAAAAAAAADCD8BQAAAAAAAAAzCA8BQAAAAAAAAAzCE8BAAAAAAAAwAzCUwAAAAAAAAAwg/AUAAAAAAAAAMwgPAUAAAAAAAAAMwhPAQAAAAAAAMAMwlMAAAAAAAAAMIPwFAAAAAAAAADMIDwFAAAAAAAAADMITwEAAAAAAADADMJTAAAAAAAAADCD8BQAAAAAAAAAzCA8BQAAAAAAAAAzCE8BAAAAAAAAwAzCUwAAAAAAAAAwg/AUAAAAAAAAAMwgPAUAAAAA4FtQ0bVpidw1C+Qsm8uxkMP3uQEgPeV28iyQ07dk7lriZ5HuPw/tiPAUAAAAAIDMqk6eX/1cmhbKWeF7xzy6RycAIDk65vXMVbGiS3Pdf0imHuEpAAAAAACZUiXX5kwyBZCROTsWFj+pdP9pmRqEpwAAAAAAZDI/uncqmNP3/2XPpXsyAgCWiZ9UBXP51nTvovtPTtsQngIAAAAAkJlUdm3JTfoAMhcnx3ziZ5fuPz9tQHgKAAAAAECm4evcINv3LrrnIACQUuJnV3nXxrr/FE0pwlMAAAAAADKH0rlrc6s+gEwse+4yzj/r/rM0RQhPAQAAAADIBKq4tvmOOacAMrls37tWcW2t+09U6xGeAgAAAACQ0dVy757bqZDuqQcApF5uJ8/a7t11/7lqJcJTAAAAAAAyugI5y+medwCAvRTOWUn3n6tWIjwFAAAAACBDq+TaQvekAwDsKXvuqpnk5n3CUwAAAAAAMjQ3p+L6Jx0AYFd5cpTU/aerNQhPAQAAAADIuCq4NNY94wCAtFDRtanuP2OTRXgKAAAAAEDGlSdHSd0DDgBIC3lzeOv+MzZZhKcAAAAAAGRQtd27f/e9i+4BBwCkhezfu+v+YzZZhKcAAAAAAGRQ3LMP4NtWybWF7j9pLSM8BQAAAAAggyqcs5Lu0QYApJ1iuarp/pPWMsJTAAAAAAAyKDen4rpHGwCQdvLkKKn7T1rLCE8BAAAAAMigcjkWtHtUUaZcxdo/NyjoVUL30AQAcjsV1v0nrWWEpwAAAAAAZFDZv3ezY0jxQ9WawcEPDYmvzt166h6aAICjY17df9JaRngKAAAAAEAGZd+Q4sLFQMOXF+EpgIzBuY77r7r/sLWA8BQAAAAAgAzKjglFNieXjx8/GgyGP/7cnd+zmNjVOzEBgM8ITwEAAAAAgC3sGE+4eXjKOaf9BgzRPSsBAIXwFAAAAAAA2MKO8YRHwSIyPO3Rq6/uWQkAKISnAAAAAADAFnaMJ4qXLifD0zbtO+uelQCAQngKAAAAAABsYcd4onW7TjI8rVK9lu5ZCQAohKcAAAAAAMAWdgkmcrvl69T115CQxwaDIezZs+w5XHXPSgBAITwFAAAAAAC2sEswUbFKDTnnNCLiVc3adXUPSgBAi/AUAAAAAADYwi7BhApPY2NjO3burntQAgBahKcAAAAAAMAWdgkmsudwrfHTz1evBRkMhsjIyJwuHrpnJQCgEJ4CAAAAAABb2DGeqN+oqZx/yp37ADIUwlMAAAAAAGALO8YTRUuUkeFp2w5ddM9KAEAhPAUAAAAAALawYzzhUbCIDE979Oqre1YCAArhKQAAQHob0nTu2mm7d604cXD7hTP7bwSeuKeXc4dvbZizf2izeQ08++k+LACATMeO8YRb3kIyPB0weJjuWQkAKISnAAAA6WRsp2Un/rr2JiIm5oMhAwo8cW/N1N3dakzQfaAAAJmFHeOJbE4ucXFxBoPhzNnztfzruXl46p6YAIAD4SkAAEA6GNBg1rWzD3WPR620b+PZlmWG6T5oAICMz74JxclTfxu+vDp3s3PjAGAbwlMAAIA01KzUkGO/X9Y9D02pVy8+LB61U/fRAwBkcPZNKIqW9Dl67ERCQgLhKYCMg/AUAAAgrYxovTD8SZTuSajNbgWGchc/AMCCtMgpsudwLehVIperh+6JCQA4EJ4CAACkkU3zDuqefqbei2fvulYnPwUAmKd7qAEAaY3wFAAAwP42zT1gTTQZePzuloWHTu0JevrwdZpmoGGP3mxffGTLgkMPbvyT0mPDn77tVmOi7kMKAMiAdA81ACCtEZ4CAADY2doZe5NNJB/c+KdF6aHao2b0W/9PaJrc479/63ntibYsOGTD/NNOlcfqPrCZ2qBGswcHzP211uSmJQbr3hkAsBfdQw0ASGuEpwAAAPY0pOk8a+LIKb+uNj22f/2Zdk9Oo97ENSjUz+hEj++9TGk7V88Ep2ZYgm+Fq6Z0/4zSTdMSg9dO2/333qA3EbHawXwTEXPrUui6mXuNAvRMYc6QzYEn7kntyo/UvT8A9KV7qKE45c6TwzmvILazObnI7ew5XHXvmFnf53STPfzO0Vnsym3HXO7WtyAPkURrul8R8A0jPAUAALCbRl4DnlhxA/7fe4MaFu5vtoWVE/+wb3gaeOKe6Vl2rThhQ1NLRu+0eWSyYHg6Z8jmiPD3yY6q+CwCig/SvbfW085c7lJtvO79AaAv3UMNJSLilSHxlT2Ha68+A+T2vAWLde+YWb//8ZfsYb2GAaV8Ksjty1euWnm4VzFvg+a147ffdb8i4BtGeAoAAGA3v686mWxYdv1CiOVGnj2OtGN4euX0A9NT7Nt41rbWbL55P0uFpw0L9z936Jb1o/rozvP2fqN077aVCE8BaOkeaiiEpwDSCOEpAACAfbT1HWlNUjZ36BbL7Swbu8uO4algdG91i9JDo17H2dbUoR0XbRucLBWenvjrmtG4hd6POPbHlR1Ljq6dvmfz/IPXL4QYVbh29qHu3bYS4SkALd1DDSU09InBYIiJiRHbHTt3l6ni1OmzdO+YWZs2b5M9rFm7biGvknL79JmzVh6uwtMp02YW9CrhlreQ7lcEfMMITwEAAOxjy0KrHsQ0psNSy+00LjLg8YMIO4and64+bev7b37ao+aku9fCUtOabXMks054On/4Vu1w3Qt6NqL1QtNqw1sueHTneYpS9QyC8BSAlu6hhrJ33wGDwRAUdENsl69YVWaLHTp1E7uueQr6+FYSnHLnEbu1/Ot37tazTt2Gcr1Rre9zuoly8W5As9baRLJkmfLicK9i3qqkcNHSosS7rJ8qcc9XWHsWoWhJnyZNW4nWGgW0yFeoqPZEw0eMlj108/AUuy9fRojtlavXyncLFC4um0pqzVYVno4YNVb3kQe+eYSnAAAAdtC4yICI58kvcCmsnb7n8t8PNszet37WvgldV5htrUOlMfa6ef/8kdtyQ5z0XtAzuR3+9K3NDa6Y+IcN45NFwtMWpYdqnw118djdJkUHJlW5ZZlh2id3iU9c3843Kzl4cJM5gxvP6Vx1XCMv82vyCpvnHzQbnjYrNaRHzUn96s3IjE/BAmAz3UMNZfzEKTExMRs2bnFIfGBUZGSk2PX1qyJ2O3frKaPG1u06BQXdUHe7Xwu6XtCrhGrB/5dGcvqqfL1//2HIsJHyrYOHjoiS0CdPVeWbt27LakVLlJEl6zZskkfldsuXr1DRvfsOfPr0SbUWFxe3dNlK0TFZufbPDUT3Hj58JHcPHDosdvsPHCJ3ly1fJY/SxrVahKdAeiI8BQAAsIPxXVbYEEQ+efg6qQZ71p7yJiImlcnpkd8uiaY2zN6nLbx+PqSRV/8/rFie1aybFx/bMD6pD0/7/Dzt0I6L94KevXj2TrZz4+LjpWN+Cyhm/LSlBp791k7fI43rvFyUzB265eKxO/KosJDIi8fu7lhydHiLBcmcse60TXMPXDv7UGXN4oxTe64Rb41ovVCdQvvsL7GrHas2viMsn6JHzUna+mM7LdO+u3z87/IUQ5rOkyWty/1v/vCtstB0CvCABrPEJ37/+rOX//w7RFfPBC8csb1xkQGmgxl44p40qu3ifvVmnDlw0+iDvnTq/qh2S0z7bDrzdFL3VeKkX3+xX22ce8D0owHw7dE91LCGCk/fRkeHhz8/eOiI+FOWrFm3QdbxLuv3/v0HURId/e7I0eMqRW3XoYt4t3ffgXJXprH5PYupVLRrj96yhbBnz8Tu7j37xPb2nbtkkLpx09YFi5ZeunxFVh49doI1HSY8BTIUwlMAAAA72LrosG1Z5Ki2i5Nqc3DA3NQkpxHP37csM6yBZ7/Q+8aLAHSrMbFBoX4hd1/Y1nKzkoNTOj6pCU+bFB14Zv8NC5c5uv1XGV9A8UHq3dP7b1w9E5zUscd+v2z2jB0rjblw9E5SR+3deGbnsmNqt3mpIerAJw9fqfIdS45ac3Und39eIPWf0Khzh27JqFdRGejGuQf8TUJw8fXQXrKFDr949s5o6YDhLRaody0v43B4Z6BRh7UzT/vXn3nucJKPxnr2ONLmJ4wByCx0DzWsocLTO3fvubgXcEi8oV5OC71y9Zqss3XbDrH78ePHilVqiF2n3HnOnD0nSm7fueuQmJYmJCSI3f+NHCN2O3TqpsLT9Rs3i5JKVX7UZqlPw8LE9p69+2Xj2XO4bti4Ze78RQHNWlvT4WYt286aM19wzVPQbAXCUyA9EZ4CAADYwZXTSSZ0lv2+6qSFZoe3XJDSBm9efDxn8OYhTecNbjxHtLB98VHTOrcvP/FPnPY4ovXCid1WHtx+MUWnMDsh0TKbw9OWZYZZs0jroEaz1SHNSg62/lpM89N+9Wa8evHB8lHae/PVXeo960zR1hHtWHOBrXyGJxVGqzm2G+ceOLwz0KgPKjxt4zsi+Ga45Q4Lvf2n2va9Cjx5T9srbXia7OTo0OBXFhYuAPAN0D3UsIYKT0eNGa8KHz58pL0TPzIyUuye+vu0qtCzd395VPHS5cTu6TNnxfbRYyfE9uq168X2P+Hh4s9Hj0JEybgJU2T26p6vsNi9GHhJxbWLlixr0bq9fZ/pRHgKpCfCUwAAADtIacSp3LoUarnlYc3nR72Js7K10/tvaI/VzsE0YvTcqgX/22Z9n5eN25XS8bE5PN2/9bz21CF3X+zfcn7LwkPnDt0yKleHNC1hJjx9Hha9a8WJtTP2isONnselXXm2QaF+2nVIP8d/9yPWz9q3dvqe35YfNzsaLbyHyWOn9VqrCiOev0/9l+pFWLRs7cGNf0zPq8LTo7sua8sf3Xm+d9NZMURquVvpXlCYalk781S5eiZ4x5Kjf645dePiY6O3Vkz4XR2rDU+VyFexgSfvGd28L4me6PgfJoC0pnuoYQ0Vnnbq+qsqvHL1mih5GhYmtj0KFpEV4uPjo6PfSR8+fJCFjQJaiDrD/vf5EU8xMTG5XD2Cgx+K7YFDhsvpq0VL+pw9d0FsHDl6XDZer2GAXARAvWJjY7fv3JXfs5hdrojwFEhPhKcAAAB2YHN4ak2YOLLNIiubMl1kc8PsfWp1S+Fe0OdZnE8evjI9izUTPKU/15xK6fjYFp728p+qjnoTETOp+yrtux0rjVE3tn8OE5vMkeWmkfGhHReblvhqduf+Lf9lspdO3Vflq6f8pcqj3sQt+N827VFNig7cvf60cXj6Zebp2mm7VWHg8bup/1KpmafK5vkH1RxbOaOzf/2Z2sR2fJevHkHWpdp47eTQPnWnyXKj8PT1y5i+v0zXHtiv3gzt2cVQqK/WpnnG4al2lBp5DVg0aof2XdFO6ocCQIale6hhDRWetmnfWRVevnJVhadqDVOxu3vPPiM/1fnFIfFOf1mn34AhcqOgV4mr14LExtDho+Lj4+Vbqv3SPn7Llq96/DhUG6FeuXrtO0fn1F8R4SmQnghPAQAA7CA14Wmfn6cl2/6Ersk/kOpNREyy7YzttEzUPLUnyPStg9svWNnhc4dupXR8bAtPZ/TboI6a0Xe9aYW1M/aqCktG75SFRjNPzV5sk6IDI8LfqzoNPPvJcm1iaJTVKkHnHpkNT7VPUpKP6kolo/B0ZJtFpnXmDd1iucPaXs0dukUWGoWnYzsuNT1waLN52jorJv4hy41mnoqPwPTYv9b+/dUQfZmcC+Dbo3uoYY1kw1Ph9evXYjfw0mVVwbNIKXkPviKjUvmwqZu3bouSOfMWiu0XL16KPxMSEgp6lZA1czjnrVCpWrFSZcW2+LPbr73v3X+gXQQglQhPgfREeAoAAGAHqQlP5w/bas0ptiw8lGxTpjNPtc+FF+TSmY80N7krd648tbLDNy4+Tun42Hzbfr96M+5eC3vy8LXZdyd2W6ma3b74iCw0Ck9blx1u9tjAk/dUne4/ThQlvTUTXR/c+CepLo1uv8RseLpt8RFV+Nfavy1clIVHgY3ttExV086r3b/lfFKtDWw4S/T20Z3nZt+d0Xe9amTD7H2ycFjz+arwVmCSC0dcOnVfVZPr5PqbhKdGU3qljj+M1dbp8dOklH5hAGQWuoca1rAmPN24aaus06V7L7Gb2y3ftaDrcklT+YwpYfzEKWoO6ZJlK0RJg8bNVMmZs+dltdI+fvLpUqLEMZe7LNy8ZZsMWD0KFkm2w737DpSTXvMW8DJbgfAUSE+EpwAAAHaQmvD03GFrJ3KG3H1huSmjx0818ur/7HGk2ZoTu63U1hzVbon1HbbhnnSbw1NpQIOZartfvRlLx/x2cPsFoxU2d604IStow1NRJ6k2tXfuD2s+X5TMGbJZlaydviepAxt5DfgqPP0yrVJ7y7/lmadDmiYZnmrvu9eGpyPMTTvV6l//vyESw7Vs7K5DOy4aPUhq07yDsoJ25un2xUeTanPlxD+0h8tCbXhqIXh9pPmuDmw4y4YPHUCmoHuoYQ1rwtMS3r6RUVGyWtizZ2p76vRZ6hBfvyoqKm3eqp0oyeniERMTI0uGjxitam7fuUs1dejw0QfBwXJ346at1nR42fJVsr5XMW+zFQhPgfREeAoAAGAHqQlPhZZlrLqveXzn5ck29dvy452rjPNPfIy7+NPowUpK1Ou4hSO3ty73vxbew+YM3pzs8+W1bLgnPZXhqTC249KD2y9a6KcKT5uV/C88tTBJ9s/Vp1S14S0XiJJVk/9LP6f8usZCZ54+fP1fePpl5qn2DnrL+fKQpvOSugrZE0kbnlrzDRnXebn4aLSLnBrZPP9LeNryv/B08aidSTVodo6tdh0As0siSNovnrhe2z50ABmf7qGGNawJT4WKVWqcO39RxaMvX0aMHD3OqKm79+7LCaRuHp6y5MTJU6b34zvmch87fnLok6eqtdevX8+cPdcpdx5rOkx4CmQohKcAAAB2EBr8KjXh6f6tSd6UbeRWYKiVbYbcfdHIq38b3xFRr+NS0zdT62ftS+n4pCY8Hd95+T+hUcn2ymx4ev1CSFLN/rHqpFFkKa5LlUzusdpCl7RLHDQvNUQWyvVkJeufktSgUD/tVXStPkG9pQ1PLTcy5dfV4U/fJjtEZsPT2YM2JdXsgAaztId3qTbe/+uZp4d3BiZ1rFwgQhrajPAU+GbpHmrYXUGvElVr1PYu6/d9TrdUNvWdo3OR4t6iNR/fStlzuNqxk4SnQHoiPAUAALCDA9usfdpSUsw+tMfUmA5LrW9z9/rT/l9ngnZh9Eh3a9gcni4cud1sH66cfrBx7gHtnfKpD08Xj/7vMfHq2UpmPb73UtVUM08Dig3S9tCa54AJgxrNVodEvorVvmVleLp8/O9mh+jSqfvrZu5dO32PKvnvtn3rZp4aLebQLDEm1s48tRCe7t/636oIhKfAN0z3UCNrUuHp7LkLfHwreRYppXuXgG8Y4SkAAIAdaJfLtM2biNhe/lOtOZc2iEzW8T+u2Dc5VSFaitgWnrYrP1J73scPIlZP+Uu7/umI1gvtGJ5O+XWNKtm57JiFjml7pcJT4cLRO6b9sUycSB1ycvc17VvWhKddqo3XdubR3RerJv2pXf9UOx82iTVPjyTV+Apza54SngLQ0j3UyJpUeCpfO377XfcuAd8wwlMAAAA7MHq8uK35aYw29krK7EGbUtTs65cx84ZuaVJ0YMPC/Sd1X6Vdr9MGV88E2zA+toWny8btUkeF3o/QxpTSyDaL7Biedqr834f4+EFEUgcObfbViqXaXo37elHaX2tNtnyBAcUGvYmIVfWNFlq1JjzVTit+dOd5QPFBRhUmdF2hKvx3274mPLUwRIHH76pql07dl4WEpwC0dA81sibPIqWio98pVj6HCoBtCE8BAADsI/DkvdTnp1dOJx9NBhQflKI2+9WboT28W40JqenhzP4bbBgc28JTbb45f9hW0wra6DD14akQFhKpCqf2NP/MKKMP2ijSfXj7uXpLtNbjp0kWLvD8kduqcviTKKN3rQlPtRnljH5mPpqtiw5bDk9NvyHS4CZztHUWj94hywlPAWjpHmoAQFojPAUAALCPyT1Wpz48vXP1qWnLPetMMSpZNnaXlQ2aTQ+P2Xovf0T4+4aF+9swOLaFp9sWH1FHbVlwyOjdIU3navtml/B03cy9qjDqddyC/20zOkqcxWhMjMJT7RqmMYmziUXPO/4w1qidYc3nGz37yzSrtSY81V7F2hl7jd4doZmZayE8ffLwtVF+2uOnSS+evdPWaes7Ur5FeApAS/dQAwDSGuEpAACA3bwIi059ftrCe5hRs78tPx4R/n7/1vPdakxUhUbrUSbl3OFbpv0UDdrWN9ME00opWqdV6llnyqTuq7Qlqyb92b7CqFY+wyd2XXnir2tG9e0SnjYuMuCf0Chtsy//eff3vuvrZ+0T1x5808xVNDdZAXbOYDML4IbcfXHkt0ub5h0UPX/2ONLoXbMppDXh6Yx+67XtLB//e1vfka3L/W9yj9Wi20ZnMbvm6X9jdT7kz9Wndi49dvVMsNFba6ftVmckPAWgpXuoAQBpjfAUAADAbqb3WWdbKKk1e9Amo2avXwiRb71+GdOyzH/Ramjwq2RbexMR08hrgFGDty6F2tCxZ48jbXhUlGRbePr5Gu9HWFnfLuGp0LX6hPAnUVaeNMZk5qlklGlati2JRzZZE5428upv/SK2KvsW12t994xWuSU8BaCle6gBAGmN8BQAAMCeDm6/mNKU8NzhW3OHbhndfsn2xUfFdttyI7QN/lprsrbyo7svRrZZJCqP77KiZ50pUW/ikm3/wLYL2gbnDd2S0h5KI9ossnlYbA5Pu9WYEP70bVJ17gU9U8myvcJToZXP8CO/XUrqpH+uOXX9fIjaTWodg/71Z147+9DyNd6+/MTseqOSNeGpf+KqDtqaRm5dClVZueWZp2b9ve96A89+2tMRngLQ0j3UsIGbh2eV6rV+rPWz7j0BkCkQngIAANhT4yIDQu6+SFFKePHYnaHN5jUvNaS936h1M/eunb6nQaHPcZWcZNqwcP+pPdcMDpi7ef5B20JP4e61sPWz9omWj9u62umG2ftSMywLR2wXZ0+R1mWHy2PbVxh1ak+QUX+unA6WC5JO77NO1h/5Jdtt4NlPNTJn8OakujSq3RJVrWOlMaYVBjSY9fuqkxeP3Q179EacMfJVrBi9Yc3n+2tizag3cZYvXHxw+zaeffXig7bz8hb+0e2XWD52xYTfVQ8t1+xUeezZgze1pxAdu/z3g7lDt4h3Z/bfIBuRnff/eubpP6FRPWpOMg2Lb10Kndhtpem55gzZHHjinqS9nd/Iqsl/qWq9/Kfq8h8jgHSge6iRUkuXrYyLizMYDMHBD3XvDIBMgfAUAADAzjpXGRfx/H2KoskXz949/7Jeqth+dPfF9QshM/ptGN5yweMHn+9bv3YmmTmMaer4H1d0H9X2fqMGB8wVxPDq2xPtg6qun09yZmv661BpjBwi0+dTGdHOPP0nNEoWBhQbNLjxnMFN5nSrMTGg+CDdLwdApqB7qJEijQJaGL68CE8BWInwFAAAwP76/jLdmhvqLXtuj8dPpd7FY3fkTNisoL3fqDmDNx/57VJo8KuAYuYDxMDjd9XgbJizX/c+20A78/TZ40jd+wMg89I91EiRSVOmGwyG+Pj4OnUb5nL10L0/ADIFwlMAAIA0MaL1wtcvY3SPPlNp78Yzuo9kelIrqAqBJ+618f1q/dmBDWedP3JbOz7JzvHMmAhPAdiL7qFGiixassxgMISHP9e9JwAyEcJTAACAtNLGd0TgyXu6B6A2Wzhiu+5jmM4m91htNAhXzwQHnrh3/UJI5KtYo7cObr+Q1v1JI4SnAOxF91AjRZYtX2UwGEI5ek+nAAAgAElEQVRDn+jeEwCZCOEpAABA2lo4cnsGuQHfeldOP+hSbbzuQ6eL0/tvWDNEd64+beTVX/fe2obwFIC96B5qpMimzdsMBsPNW7d17wmATITwFAAAID3MGrgx+Ga47qloso7uujy48Rzdh0tHjbwGmD563sjejWcyb3LqT3gKwH50DzVS5MbNWwaDYf+BQ7r3BEAmQngKAACQfnr5T1016c/Lfz/QPSQ1cvHYneXjf29eaojuQ5RBdKk2fuGI7We+noUafCt8x5KjnauO0717qUR4CsBedA81rFSpyo/LV6w2JL76Dxqqe38AZCKEpwAAAProUm38iDaL5g/funb6nvS3espfM/quH9xkTvsKo3QfCqQzwlMA9qJ7qGGl3Xv2yeR085Zt2ZxcdO8PgEyE8BQAAAAAANhC91DDSio8PXf+orN7ft37AyATITwFAAAAAAC20D3UsFJBrxIjRo2V+emY8ZN07w+ATITwFAAAAAAA2EL3UCNFzp67YDAYjhw9rntPAGQihKcAAAAAAMAWuocaKbJ+42aDwXDr9h3dewIgEyE8BQAAAAAAttA91EiRZctXGQyG0NAnuvcEQCZCeAoAAAAAAGyhe6iRIgsXLzUYDC9fRujeEwCZCOEpAAAAAACwhe6hRopMmDRVPjOqb//B5SpU1r0/ADIFwlMAAAAAAGAL3UONlCUgdRsavryCgx/q3h8AmQLhKQAAAAAAsIXuoUZKDR0+Kjz8OeEpAOsRngIAAAAAAFvoHmrYxi1voQKFi+veDQCZAuEpAAAAAACwhe6hBgCkNcJTAAAAAABgC91DDQBIa4SnAAAAAADAFrqHGgCQ1ghPAQAAAACALXQPNewoh3NewTGXu9j+Pqeb3P3O0dly/ew5XJNt03Kd1PTBiFPuPPIQsZ3NyUV7drltgW0dTpHCRUtX+7FOLf/6Jbx90/SjlEMnRiON2jcaW+2w45tEeAoAAAAAAGyhe6hhL+UrVjUkvs6cPS92t27bIXcDmrdWdVq26eDjW0luF/QqISusXL1W2441dVLTB8siIl7JQ7LncO3VZ4DcnrdgseqJhZeze36vYt5ye9nyVfYd3oZNml8Luq49XeiTp0OHjzKq5pjLfcSosak/3aHDR8UpYmJi0ujbMnDIcHkV02fOEbtPw8LUGKbRGaEvwlMAAAAAAGAL3UMNe7EcXJb28Tt2/KTYreVfT9Y3DUatqZOaPlgjY4anAc1af/r0yexJtSPToHGzB8HB8fHxqT8j4Snsi/AUAAAAAADYQvdQw16Kly4n868jR4+L3VVr1snduvWbiN0x4ybKXRWM5nL1GDFqrFCvYYAsMa2T0vDUch+sERr6RIWGHTt3l4dPnT4rh3PeDp26Ke/evRflr1691hZmz+GaRuGpnHMqTtqzd/+iJcoIvfsOjIuLk+cqW/4HWU0mnpkiPO3Rq6/s/Njxk8XuvfsPZM+/z+mWRmeEvghPAQAAAACALXQPNewoMjLSYDAsWrLMQTO1sKBXCa9i3vMXLpG7nbr0kHflZ3NyERtCgcLFxa7ZOkmFp3nyezUKaNG5W886dRsaxW1J9UG+W7x0OdGyhQVD9+47IOoHBd1w0Mxj7dCpm9krfRoWZlRuFJ76Va4hOtmkaaucLh5GNUW3RefFuwHNWrvlLWRhVL9zdE5ISBBtHj9xSlsuTiHP1bN3f7HrXdbvzNlzMoIU11i0pI8oFC3LQc7tlk8dKC5flIih0LbmlDtPwybNO3X9tUKlag5fh6fiAzJtRChTrqI6UUr9ULWm7HyL1u3F7u9//CW27967r+8XGGmH8BQAAAAAANhC91DDjo4cPR4TE9OjV1+xXbN2XbEd9uyZ2N5/4JDRzebO7vmNglFr6kiDh454Gx2tqj0NC/u5XuNk+yDdvHVbHBIc/DCpSxg/cYo4ZMPGLQ6J8W5kZKTY9fWrYlQt2fB03YZNMhCUr5CQx1Wq11LV/H9pJKe4ytf79x+GDBtpYWBfvXotqsXFxQ0fMdo9X2FZmMvVI09+L/VMp+jod9rRu3zlqihUKw80CmihWhOXL0rEUKiSXxo0ef78hTp2247fTp76W4Wnnbv1lOWjx05Qh4gxkYUrVq6x4avimMs96u1b0X7JMuUdEicdi+3tO3fp/h1GGiE8BQAAAAAAttA91EgHe/bul3Mn5bxI8crtls8oGLWmjoMmyPsnPPzwkWMyxHz37n2xUmWt6Umy4amVkg1PxbVEvX179NiJGzdvyZLAS5dlHe+yfu/ffxAl0dHvjhw9rlLUdh26JHW6eQsWq2Tz48ePFy4Gzpg158daPxt1Sa2LKkZP1HGwLjwVQ6eC18tXrp49d0G1I8PTnC4ekVFRKpCVJk6eJuvU+OnnpLoNKISnAAAAAADAFrqHGunDmvVMranz5GmYTD/dPDzFbpHi3q9fv7Z+/uPQ4aNmzZmf+ufRJxuexsTEeJf1EyXZc7jefxAsSj59+pTL9fPN+/IxVh8/fqxYpYZD4v3y8nb723fuJnU6x1zuq9asM31m1PXrN6rWqK2qma55ak14unDxUlln3IQpsuTXXv204amweu16WaJWPBCnFrvi0nT/aiFTIDwFAAAAAAC20D3USB92CU/VQpmTp85QLW/Zul2UhIY+Sc/LSTY8PXDosCpUyaN4Vx176u/TqkLP3v1lBaN1SI1UqV5rybIVjx+HavPTqLdvZUrrYGt4euPGTZmTapc0lWdR4emPtX6W7cg790v5VJC7EyZN1f2rhUyB8BQAAAAAANhC91AjfdglPG3TvrPcjY2NjY5+J6mHzps+lCntJBuerlqzThUuWrJMFhYrVdajYBG5HR8fry7hw4cPphGnBSW8fYcMG/noUYg8as26DbLctvD05csI0zmkx46f1Ianwp279wxf7twfPXaCIXEurZWrJQCEpwAAAAAAwBa6hxrpwy7habsOXeRuUNCN3Xv2GbH8zHr7SjY8XbZ8lSrUhqf5PYvJbXGs6SX8VOcX03M1adpq+85dJ0/9/UuDJtpyzyKlZFMXAy/JEgvhaeOmLVVh6JOn2vBU9MSQ+EgrbeOnz5w1Ck9lYGpIvHM/8NJlsSHq6P69QmZBeAoAAAAAAGyhe6iRPlT0ZiE8TbaOX+UacnfOvIWq5RLevuk551SyOTwVu3KRVvX8KIfEGNQ9X+GkztWqbUd5+J69+7XlPr6VZPnZcxdkycFDR4zCU7V6adsvT6PK5uQiH1elwtMzZ8+L3bi4uLwFvGSJU+488glR2vC0kFdJ0bIoXL5itWyzV58Bun+vkFkQngIAAAAAAFvoHmqkj+EjRsvErXvPPkVLlMnm5GIaniZb5ztH55CQx2L3zZs3FSpVc0h8cn109LuEhIQ//txtTTcWL12+e8++FavWpvJyUhOebty0Ve526d5L7OZ2y3ct6LrYffQoxMW9gOm5crp4yDvrxWvb9p116jYU196hUzf5HCrxmjh5mqy5d98BNTlUnqtZy7ay5M+/9sgBnDJtpixR4enI0eNkyfadu3K5eojTrVm3QZZow1Nh/4FDhsS79cWfHz580E717TdgyL/zfxMf5CX+lLui3GwFy9au3yhqzp67QPfvLeyF8BQAAAAAANhC91AjfagUT6V7puGpNXXatO8sw7uEhISQkMexsbGGxCfXN2jczJpu3Lx1W9QPDn6YystJTXgqrkvO6xSvsGfP1PbU6bOSOl3bDl3E9RrMve7cvaci1wWLlqry0CdPRYmze37ZVfF6/fr1ixcv4+Pj5WKpKjzN5erxIPjfHFaMZ0xMjDzcNDxt3a6Tan/nrj+0b4kPSJaLj8zB3LRiowqWyZUELlwM1P17C3shPAUAAAAAALbQPdRIH06585w5e07GZ/Hx8dVr+pvma9bUcUhMEuX8U5UeNmnayspuZITwVKhYpca58xfVJbx8GTFy9DjLZ6zXMODCxUBtbBod/W7Nug3qXnuHxHm4MnYUr6i3b79zdBaFjQJaPH/+QhY+eRrWvFW7Hb/9rg1PZbdPnDylmhWdmbdgsWl46pjLPSLilawW0Ky19q20CE/PnD2v19cVdkd4CgAAAAAAbKF7qJGevIp5V672k+Ubt62pI5QsU77aj3WKliij+0XZrKBXiao1anuX9fs+p5uVh4hhqVTlx+o1/cVR2XO4mlbI5uTi41upwg/VnXLnUYWipl/lGuUrVpVxquWRz+Wa5AKyjrnc5QIC4k/r+2ybffsP/vb7n7p/RrAXwlMAAJBi9Qr0aV12eKfKYwEAKdKh0phmJQfr/mMcsBfdQw0gWfkKFc2T32vFyjVy9ui8BYvT9HQt23SIi4tr37Gr7hcOeyE8BQAA1hrabN6ulSeCb4XHfDAAAGwW9TruwtE7qyb92cZ3hO4/24HU0D3UAJL17J9/1HIBkVFRhYuWTrtzfZ/TLTj4oXoKFr4NhKcAACAZzUoOXjHxj8f3XuoeNwDAt+fk7msj2izS/Uc9YBvdQw0gWWqF1hs3btbyr5/Wp3PM5a77JcO+CE8BAECSGhbuv3ba7shXsbqHCwDwbXtw45/BTebo/mMfSCndQw3AGnkLeDm759e9G8ikCE8BAIB5PWpOenj7ue6BAgBkHfs2nq1XoI/uP/8B6+keagBAWiM8BQAAZkzouiLqdZzuOQIAZDVB5x61Kz9S998CgJV0DzUAIK0RngIAAGMjWi+MekNyCgD6uPz3g0ZeA3T/XQBYQ/dQAwDSGuEpAAD4St9fpr9+GaN7dgAAWdnFY3d+yddb998IQLJ0DzXsKIdzXkE+7ef7nG5y9ztHZ7GbPYer3DWqLMqtb1+1aUMHrOGUO49qP5uTi7aHopGUtqYXcfnaIZI9F6Ohe8fsxfS7ZEfyO5Bhh8vow7WBOFxco4PFb3taIDwFAAD/6VhpzIuwaN1TAwDA/q3nf/bopfvvBcAy3eMYeylfsap8IPuZs+fF7tZtO+RuQPPWYnfl6rVyt6BXCbEr/pS7otz6U+zes08eZUMHrBER8Uoekj2Ha68+A+T2vAWLxVudu/WUu23ad7bciF/lGgHNvjqjYy73EaPGps+nIHr+Njo6Pj7eNU9BWTJm3ETR7bnzF+nyrUgLRt8l+4qJiREtHzp8VPfLNGX64aZUjZ9+Fld36fIVB4vf9rRAeAoAAP7VwLPfrcBQ3fMCAIC0ePQO3X81AJbpnsjYC+Gpi3uBFavWJiQkjJ84RRU2aNzsQXBwfHx8+nwKVWvUFp28cvWaKtl/8JAoadqijY7fDfvKsuGp6YebUiNHjxMtzF+4xIHw9GuEpwAApJ+10/fonhQAAJS3kR/b+vLwKGRouicy9lK8dDmZvxw5elzsrlqzTu7Wrd/EwSTwyuXqMWLUWKFewwDrT2E5PLXcAWuEhj4R9WNiYsR2x87d5eFTp89ysC48ldP6xEsbnh46fFSUpFt4Oux/o8XpFi1ZJne/c3R+8+bNp0+f8uT30vG7YV/iOyO/POJbZPfGM3J4avTh2mDP3v2ihRat2ztY/LanBcJTAADwmfj3ufhXuu5JAQBA68Rf13T/BQFYoHsiY0eRkZEq3Bk4ZLg2LTUKT7M5ufj4VhIKFC4ujxXlYre0j59DYrTapGmrzt16lq9YVdu+aXhayqeCbMctbyHLHVBntDBdce++A6J+UNANB8081g6dujl8HZ6Kpvx/adSle6+f6vyijs2T36t9x66yjuiAOFFut3zeZf3OnD0nw1NRUrSkj6jp5uEpeyLayZ7DtUHjZuIU8sKNiPpyHBoFtMhXqKjRu8VLlxONlPD21Rb++dcecbrW7TrJ3Qo/VBe7N27e+j6nmzypNkUVJxUlXsW8VUnhoqXlp1CyTHmzb4krUiXu+QrLNn3K/2B9ZbngppLSjolt8Z1RA+iQuIin3BUDLg7p2Ll7jZ9+1rZfp25DMYYBzVrLL4kRMbAtWrcXn51nkVIOVoenRYp7t2rbsVOXHrX865ldIFX0RJxRdEZ8SWQ/tWdUgyOuWrQjvgBFS5SR77rmKSj6IwrF52vUptGHawM529SjYBHL3/a0QHgKAAA++3P1Kd0zAgCAkQ/vP/WsM0X33xFAUtIoqtDFkaPHY2JievTqK7Zr1q4rtsOePZNvJXvb/tr1G8VuZGRko4AWL19GGL68tm3fqZ7RZBSeqnj08pWrchVICx3wKFhEVhYnSqr/4ydOEYds2LjFITFsFZ0Ru75+VRw04enosRNu3Lylunf6zFmZ+o0YNdbw9Sugeevo6HfaEtFPbbfrN2oaHPxQbn/69GnNug0qhstXqOjefQdEoTo2Li5u6bKV2hju5q3boly0oL2E589fiEIVSfcfNFTsrli5xjGXu0yWt2zdrk4h23/0KEQdLvsjLurgoSNiI/TJU6PTiZeK+dZt2CR237//IIbd+sq53fJpO5zSjpl+l6pUryV3/zdyTGRUlNyuXtNfvOX/SyM5v1K+xNmHDBupPbv41GRaKkdYtJBseCr6v23Hb9qP9cnTsCZNW6kKLu4FxJc2Pj5eVRB9aN6qnaowa858URgbG9uidfu30dGyjqjfu+9AUe3NmzeqRPTHwoebUuUqVBaH375zN9lve1ogPAUAAD07VBrzPjpB94wAAGCKyafIyNIoqshorAxPP378+OHDhzt37x05evz9+w+yTqeuv8o62vC0Rev2CQkJMgySM+kssyY8tUCFp+KkYc+eHTh0WPwpS+bMWygqDB8xWuVloo7YbtK0VWRkpApARcmFi4EOmvBUxlWXr1xVGevsuQvk6bbv3CXDvo2bti5YtPTS5SuywuixE1SXTMNT77J+ouTuvfuqRMZ8cjrhtu07xfbz5y/kW+06dFHpnow4y5SrKHeHDh/Vu+9AuS3TtPyexVTlrj16yxbkCIgPJUWVTcc2RR0z/S6p8FR9YWTqKkZDlojhFV8nlaKK9uWJ2rTvLEtiY2NPnDwlxk2d10J4uv/AIVnnaVjYmbPnxLFiW3xpK1Sq5pA40fVi4CVZ4d27948fh8pt8TVQCz7I8NSQGNfeun3n+IlT8ksSl/gShxw9dkL8hyBLihT3TurDTak+/QYZUrjKsB0RngIAgJ6LR+/QPR0AAJj1+mVM4yIDdP9NAZilS5CR/qwMT8Vr85ZtsqRL916yRD7fxkETnv5Y62eZi4WEPC5ctLQ1Hcjl6jFrznyhVduONvRfhac3btx0ds8vSkqWKS8TrvMXAmUdK9c8VeHpP+HhpXwqOCTekx765KlM8dw8PEXJ07Awsbtn7355SPYcrhs2bpk7f1FAs/8efjV0+ChxOSNGjVUlPXv3F0etWbdBlchm5RCprLBytZ+0n4iKOOWSmp8jy5I++T2LyWxaTn7s0Kmbqrx+42ZRUqnKj+rYFFU2HdsUdcz0u6TCUzHITVu0EZ2pWqO2w5cnhonPqGKVGmLXKXceuYSCmnp5Lei6jDVr+dd3SFwfVgyybCqp8LRm7bqygvgqymnCqmTBoqVid8iwkaqCXJL1pzq/RL19K0pevozI4ZzXQROebtvxm2xWjJIsCQq6kdPl81FTps2UJS3bdEjqw02pLVu3GzT/KyKdEZ4CAICe184+1D0dAAAkZUa/9br/pgDM0iXISH/Wh6fVfqwjS4oU95YlKk5V4am6r/+HqjXTp/8qPB01ZrwqvP8g2KCZ+5nS8HTM+EmqcPTYCbJQzotUsxfv3L23aMmyFq3bm12v04jM/lRAWbSkj0Fz83tut3wfPnxOnMdNmKI6/094uIo4jx47YfiytoBw+sxZsSsKxfbqtetVZdmgaERGk+75Cqe0spGUdiyp8FQ+KEyRqwGc+vu0KpH5o3gVL10ubwEvuX3m7DlVQT1zLKnwdPrMObJCzdp1VaH43NWCrfKDi4uL065Rq46ST2pS4Wn9Rk1lBZUOi++GLAlo3lqW9B801OyHa4OQkMcGzUIK6YzwFACArO7nvL14VBQAZGR7N53V/ZcFYJYuQUb6sz48VTNJXdwLyJKt23bIEhWeqtfc+YvSp/8qPO3YubsqDAq6IUoePw6VuykNTxs3bakKm7dqJwvl5M16DQPUTejyFRsbu33nrvyexSx0Mjj4oUwGtX3etHmbqiAftn7m7DkxyCqtMyRO4M3tlk8u9zl2/GRZWSZ6ojCXq4dsWVSWN5gXLelz9twFbV6ZosqmUtSxpMJT7WPo1SoNYuSjo99JMqIVr0YBLXz9qsjt1WvXa3siZxMnFZ7K2azab6mR169fi3fvPwjWFjZr2VYeJVddUOGpeh5avwFDZIlaGlV8AdQ4mP1wU0oObGjok/T578UU4SkAAFldC++huucCAAALgm+F6/7LAjBLrywjnVkfnqoFTJ3d88sS0/D03bv3V68FyUhR3vme1lR4qlaudEh1eKp9ypC6dV3dhl/ax2/Z8lVq0Uz5unL1mnp8lhE5pE+ehhmNec/e/VVJt197GxJngA4a+j9D4rRWNw9PuVTr4KEj5Cl8fCvJynLiqnipaE+cQg770OGj5FHiLRsqm0pRx5IKT6dMm6kaVOuuPg0LE18bIz/V+UV8bWQF+cQkKZuTiwx8kwpPN23eJo/yLutntoJcbyEk5LG2sO2XVVyH/W+0gyY8VVekBq1RQAtZYhSemn64KSXXUlBP5Up/hKcAAGR1XaqO0z0XAABY8D46QfdfFoBZemUZ6cy+4Wm9hgG+flVkuKYWBk1T1oSn1Wv6m4an8rH1ZsNT7QoA6s7u9h27it0cznkrVKpWrFRZsS3+7PZr73v3H8gKSc09lAmdWkZTuHX7jlHMlye/l5xZGR7+XPy5bPkqURh46bLYfvHipUGzHqgk009Z+eat26JkzryFqnJCQoL8NG2obCRFHUsqPNUOu8OXSaCiEVXiWaSUWjcgl6tHXFycqCC6rSr8WOvf+Dup8HTM+Emygnbl0MNHju3dd0BOGT556m/5cWs/pqXLVsqjfq7X2MGm8NT0w02p5StWixb69Btkx/8oUoTwFACArK6X/1TdcwEAgGV18/XW/fcFYEqvLCOd2Tc8lbur1qxTWWqyHXBxLyBnHQ4YPMyG/lsTnv5Qtaass37j5rwFvGROt3ffAVlYwttXhqEqPA179kwmm+LP589fGBKnXubJ71Xax08+f+nM2fOOudxl45u3bJMRpBqfxUuXi8tZsWqt2hUV+g/8d3anaOfTp0/qEfbKseMnDV9e8tlZM2fPVSXTZ87RVh4/cYp6a8myFaKkQeNmqkR0z7bKtfzryc9CbNjQMSvD042btsryLt17OSSurCqfEPXoUYj4MoiS/QcPyQqDh474ztG5kFfJS5evyBIVnvYbMER2VT7Iq2z5H2SF+w+CxXY2J5f+g4bKErloQI9efeXu2XMXSpYpLz6+rj16y5T27r37sk0bwlOjD9d0DEX35K6a3mvU8+vXP39XRZ+t+baLs8tjK1X50Yb/WMwiPAUAIKvrX3+m7qEAAMCyegX66P77AjBlr2wig0uL8LRA4eJvo6PF7o2bt7I5uVjugFoEU5zIhv5bE56q6ZPy9WuvfqJwwaKlqiT0yVMHTXgaHx+fkJAQGvpE3iouXrNmz5NNbd+5S5aEPXt26PDRB8HBcnfjpq3q7Ddv3TZoHld15eo1g2YZzaYt2ojd3//4y+hCBgweJpsSp5aPOapbv4nqodEDuNTCoIYvy3HmdPGQK5CK1/ARo22rLG8hFy+xYUPHrAxPS3j7RkZFqWFU21Onz5IVKlSqprr37t17cd4PHz7IZ5Gp8NToXMKKlWtUr2TGbUh8vFWR4t4OiTf+y7nGRhWio9+pJ6HZEJ4afbimY2j6H5S25255C4meiEuz8tveq88Ao/6kHuEpAABZ3cBGs3UPBQAAljUo1E/33xeAKXtlExlcWoSnDl8e427QPJQ8KekQngrzFixWwZlcvdS7rJ9cB1O8ot6+/c7RWYWn/QcOkXemy/Bu5uy5aj1Tx1zuY8dPDn3yVLX2+vVrUcEpdx51Lm146uJeID4+/tWr1+pdecv84KEjjC7Es0gpmdVeuXpNlog25cOptBei3L13X4aAcgKjcOLkKdkl0wUErKxsNjy1vmNWhqdCxSo1zp2/qMbw5cuIkaPHaSvUqdtQBdNitBs2aX75ylWDxfA0m5PLtBmzZWovX0ePnfD1q6LaFN2ePnNORMQrVUEMQoUfqqsKKQ1PTT9c0zG0HJ42adpKbPz51x4rv+0qPLVmTreVCE8BAMjqCE8BIOMjPEXGZK9sAhmEe77Clav9pH0aezYnFx/fShV+qC6jTxWeymSqlE+FSlV+dHbPb9rUd47ORYp7V61RWxyePYerhZMW8io5ZtzETl16qJK2HbqIkqIlyug+ILor6FVCjKF3Wb/vc7qZHeTPn06lakk9icssx1zu4hDxwamY2Ij4vMqUqyi+Cep/BtjM9MNNqeo1/UUL2kUSkiV6Lr6i5SpUttenQHgKAEBWR3gKABkf4SkyJntlE8gsjMJTIKPxKFjk0OGjRk8PSyXCUwAAsjrCUwDI+AhPkTHpHpQgnRGeIoPrP3BIUNCN0j5+dmyT8BQAgKyO8BQAMj7CU2RMugclSGedu/UMDn4o1KxdV/fOAKYsrxFhG8JTAACyOsJTAMj4CE+RMekelABAWiM8BQAgqyM8BYCMj/AUGZPuoQYApDXCUwAAsjrC0wwiNubLdsy/27ExmkIAWRvhKTIm3UMNAEhrhKcAAGR1hKc6io01fPz4KSHhk+HT52cvfPr0yfTPTwmfN0W12JhPuncYgF4IT5Ex6R5qAEBaIzwFACCrIzxNf3GJmWliKvpJG5VaeKlqpKhA1kR4ioxJ91DDjnI45xUcc7mL7e9zusnd7xyd0+GkafGIG8Epdx7ZvtjO5uSS0nMZDYJ2fNSuIs5lx6sQTameZ0xiTGQPxSjp3hkLUvkdgER4CgBAVkd4mp5iY4wzU/mKj49//3SqBWgAACAASURBVP59ZFRURMSr589fCC9fRkRGRolC8ZaqpslSDUSoQJZCeIqMSfdQw17KV6wqf8OeOXte7G7dtkPuBjRvbd8TtWzTwce3ktz2KuYtz7Js+aq0uCjxlwrZfvYcrr36DJDb8xYstvLw3//4Sx5Sr2FAKZ8KcvvylaviLTcPT7P/rzfq7dvjJ07Vrd8kpV3N71lM9FDtrl2/UTboUbBI+n8ZrDFh0lTZw/Dw5xk5P03ldwAS4SkAAFkd4Wn6iI0xfPpyb742M711687UaXMaNW5buap/hYo/lfOtXqZsVaGsb3WxW7nqz/Ubtpo4aeaVK0EqRVVzURMSPsXF6n9pANIB4SkyJt1DDXtJh/C0tI/fseMnRZu1/OvJkm8vPJUv8TeWRgEtrO/n0OGjIiMjxeCokowfnj56FKKut037zrr3JymEp3ZBeAoAQFZHeJoOPsZ9Nc/048ePgZeuTJ46p2athvkLlipU2CdZBQp5V67iP37CtLPnLn78fM//J80/UfS/QABpjfAUGZPuoYa9FC9dTv5WPXL0uNhdtWad3LVhEmVSxoybKNtMt/A0NPSJaDwmJkZsd+zcXZ5r6vRZVh6+afM2eUjN2nULeZWU26fPnHXQhKe379zt0Kmb1L1nn9179snyK1evWd9P0UNxSCYKT+s3aqoNi48eO6F7l5KSyu8AJMJTAACyOsLTtPb5eVCJLxmbPnkS1rRZh/wFS1uTmZoq6FnGv27A7dt3P36M185CjY3R/0oBpB3CU2RMuocadhQZGSl+pS5askxsDxwyXP6GLehVQlUoWaZ80xZtuvbo3axl22KlymqPLeRV0se3krof3yFx1U5ZUqBwcYfEnHT+wiWyzU5desiaRuGpX+Uanbv1bNK0VU4XD9PuueYpWK9hgKgg/hTb2rfy5PdSZ69YpUbHzt1L+/iJ7b37DojGg4JuOGim1nbo1E0eVbx0OXFICW/fpAZk+IjR8hA3D0+x+/JlhNheuXqtgyY8PfX3aaOjgoMfivJ3794blYvTtWzTQfRN9FAV5nDOK/oQGxsrDjl3/qLYzleoqMPX4amze34x4J26/lqmXMWkuuqYy12OgKAW9BQHyhJx6mQrpOirsnPXH6JvCQkJV65ek38NE98Naz4RqcIP1Vu17SgK/X9pZGFdVzHIshHtZ5Tfs5j6XiVbIdnvAKxEeAoAQFZHeJp24mIN2uVNw8KedezUy6uob0HPMrYlp0qxEhVatuocEhKqnYLKLfzAN4zwFBmT7qGGHR05ejwmJqZHr75iu2btumI77Nkz+VZOF4+/du81fP0SJU6588gK6jZ/lYUZBaP7DxwyOtzZPb+qs27DJnWPvHiFhDyuUr2Wtm/jJ06JevtWVRDbokS9O2LUWFneu+9AuREZFeWYy13UEVexYeMWh8SHBUVGRopdX78q8qibt26LmsHBD5MakNo/NxD1Hz58JHcPHDosdvsPHOKQdHgqTvo0LEyldapw/cbNCQkJqv8XLgYWKe4t3hKXaTQs8o5yFZ526d5L3Xgu/s6zfMVqs139ztH5xMlTstq4Cf+OjMwNxWvIsJHJVrD+e5K3gJecKiu+MGou56w587V1kvpEqtaoff36De31vnnz5tde/cyeqEDh4s+fv5AXLmcru+Ut9OTp5+GNi4sTQ5dsBfnNsfAdgJUITwEAyOoIT9OITE7l32jFX2H37D3oW+HHVGamRlNQS3n/sHXbLvGvEXWij3H6XziAtEB4ioxJ91AjfSxfsVpGXZevXN1/4FB4+HO527f/YFkh2fB0z979Kj2MT3zldsun6oi3ot6+PXrsxI2bt2RJ4KXL6uwLFy9VBz58+Ojjx49yd8myFbKCiurev/8gN2RYZlmy4akFKjwVhw8dPkqaOHma6LbsZ+OmLVVllYTevnP3+IlT4l2xff36jew5XCtX+0nuyr/GiO3ZcxdoDxEjc+v2nQOHDr97916WNGnaymyXxGC+fv3akHiLeplyFXv27i/ri2OtrGAlcaXywM7deuZ08ZATlp8/f6F9bJTZTySbk4tMNsWfK1auWbpspdwVr+o1/c2eK6BZa1nhzt17TrnzbNm6Xe6OHjvBygqwC8JTAACyOsLTtBAXa1D/EoiNjZ00ZZYdY1OjtVA7d+n77t07NcWV/BT4JhGeImPSPdRIH/MXLrkYeGnNug1y17NIKflbftWadbIk2fDUweKapzExMd5lP9/WnT2H6/0HwfLvD7lcP9+8X7FKDfn7/d79B/Lu8sJFS6uMVc4uVFFd6JOn5StWLeHtq71JPClDh4+aNWe+ONaGAbH8wKgJk6aqmuK6ZP9/+/3P7xydHTR5X7sOXWQdC2uert+4WZZ07dFblsyaPS+pXrVp31nWuXT5ipyo+/z5i/yexayvYA05+G+jo3O75RO7q9eul222/XI5SX0i6qFbw/43WlYrUtz7z7/2TJ46Q7uUgREV3B8/cUptyJG0sgJSj/AUAICsjvDU7tScU8PnGQfvu/Xon/r79C1PQW3Vuuvbt9H/TXTl/n3gm0N4ioxJ91AjnX2f061K9Vqjx06Qv3O3bd8py1MZnmonP6owTrwrdmfPXSB3W7Rur+rUaxggC+UKrSqqGzt+cvqMgwpPP378GBHxSnj16rXMQOVLDIjM79TCqf6/NFKHyxmXmzZvk7sWwtNqP9aRJSqwFm9Z6NiGjVtUH8RnpJ0Aa2UFy2r89LM8VnX+pzq/yBJt/81+Ii7uBeSsYXHeM2fPTZ46Q4yJdr6qWTldPG7dvqP6LIa6cNHSKaqA1CM8BQAgqyM8tTv5hCjxN2PxD4kuXfukaXKqNG/Z6e3btyo/jfnwSfdxAGBHhKfImHQPNdLH9znd+vYffOrv0x8+fDBoXtt2/CYrpDI8VTNYhUVLlslC+UyqP//aI3c9i5RSdVzzFJSFBw8dcdBEddqANU0lteZpmXIVz52/KN/q2Lm7KBGXL3ffv/8QHf1OkisYXLgYKI+yEJ4W8ippdMaNm7Za6Jize/6wZ8+MPp0UVbBMdezAocPzFiyW4uLi5N++SvlUkNWS+kTGTZhi+Pr15s2baTNmq2dYmfVD1Zqqfp9+g2yogFQiPAUAIKsjPLUvOeVU/AVa/MNg0OBR6RCbKo0D2sXF/bsOWkI84SnwTSE8Rcake6iRPnbv2Sd/vZ6/EDhl2sy69ZvIlTpNZ57mdPGQJSW8fa0PT1UdB5PwVLVctKSPqpOvUFFZuGfvfgdNVPdzvcbpMyBJhadCk6at5Fty3dUVK9fI3WPHT4ph1Fq6bKU8xEJ46lGwiNEZLYentfzrq7Vl37x5I2fvpqiCBbnd8r2NjjYk/ZILtlr+RETJb7//KU6tPXDh4qUWzquNXMU30DRpTbYCUonwFACArI7w1I4+xv2bnIp/U02dNtfTq2x6hqcFPctMmz5XPT/qYxz5KfDtIDxFxqR7qJEOKvxQXcZSCxb9m3DlcM4rS7Zu2yFLNm/ZJkvyFSoqS2rWrmsUjI4eO8GG8HTSlOlyt0v3XqpO63adZOGUaTMdNFGdajmtWQhP1fPlV69dL3aHDBspd7UPeipTrmI2Jxe1K+fzpj48dc1TMCTksSFxMQFZ+cTJUymqYJl6xlTYs2c3b93WkoHsixcvHXO5W/hExFVU+7GOW95C3zk6+1WuMXzE6Ojod6JaaOiTpE5audpPcmar6vPkqTNSVAGpR3gKAEBWR3hqR/L16dOnixcvFyvhl57JqVS4SNlTf59VUypiY/QfEwB2QXiKjEn3UCMd1PKvJ3+rLl66XJaoOaTbd+6SJQsWLZUlQ4ePckhc3fLAocNGwaha/bN7zz5FS5TJ5uRiTXhaskx5+f9E/wkPr1O3oTiqZu26oU+eGhIfMyUfIWVbeCouZ/eefStWrbVhTFSUeffefXE5Uu++A2fNma/mZrZu18khcQau7P+ly1fc8xUWJZ269JCd/9/IMbI1+ewm0ZRb3kJydQLbwtNNm/+NsPsNGHL4yDG5rX0iluUK9RoGyCmxlar8aLb98xcC5SHlK1Y1euvgoSPyrfYduyb1iajsde78RbLEMZf7g+DPzwe7ceOm2TPmdPG4c/eeqBAXF+f/SyPxHRDb8fHxNX762coKsAvCUwAAsjrCU3v5+PHfh0TFxsZWrV43/ZNTqXIV/1evXhv+nQCr/7AAsAvCU2RMuoca6cDFvUBExCv5K/7v02cuXb4iNuT/pxS7sk4t//qGL6+nYWHR0e/+CQ+XMaIKRpu1bGvQvEp4+1oTngpjx09WR6n/PypeAwYPkxVsC09v3rotDgkOfmjDmKgoM6nXocNH1QPfly5bKQtjYmIePQqR2+Hhz9V6plevBakDN2/5/CAmG8JTNRv3+InPk0mLligjM1nxtzK/yjWsqdCrzwBZoVFAC9P2y1WoLN+9FnTd9N12HbpoGzf7ieR2yyejUvESg3/s+Mnnz1/I3e49+5i9KLVi7MTJ08RuyzYd5K741Jzd81tTAXZBeAoAQFZHeGov8vXp06e58xanz0OikrJg4XL15CgmnwLfBsJTZEy6hxrpw/+XRo8fh8pf9FFv344cPU4u5fnx40eV7o0ZP0k9bv7CxcByFSqHhz83aIJRp9x5zpw9JyvEx8dXr+lvZXgqdO7WU+VuhsRJmnJep5RBwtOEhAQxOKLZ8ROn5HL1UJW/c3SeMm1mZFSUqnns+Envsn6qQpv2ndWTuPYfOOSQ8vC0kFdJGXBHR79T49ZvwBCVVIpCyxVyOOdV4Wm9hgGmp1CTi4ePGG36rvhw1f+6Lu3jl9QnUqBw8VVr1snQVr4ePQrRLsig1bBJc1knKOjG9zndZOGO336Xhes2bEq2Qvr/l/KtIjwFACCrIzy1i49xn+QrLu5j1eq/6JicCp5eZZ8k3tCX+O86Vj4FvgWEp8iYdA810k02Jxfvsn6VqvzolDtPUnVc3AtUqV5LG3qa8irmXbnaT24enjb0oWhJn6o1ahctUUb30bDB9zndfP2qiGtXeahWDue8FavU0CaquhDdE393KlehcpqexTGXeymfCp8/Ss1DwJCREZ4CAJDVEZ7ahZrpuX7DVn2nnRZKfHLU5Cmz/01zP+k/OABSj/AUGZPuoQZgLx4Fixw6fPT2nbu69wQZDeEpAABZHeFp6sXFGmROGRX11rfCj/omp1LNWg0TEhJkpBsbw+RTINMjPEXGpHuoAdhL/4FDgoJulPbRefYrMiDCUwAAsjrC09SLj/93tdMLFy97FfXVPTkVChTyPv//2TsPt6aWrQ//Defe+51y76k2ROwCgth7QcWCWLCAvYGIqIiIIogoFlDEgg17xYqoIMUuKgjSRDrSe00l38CEybBTSELZgaw878OTrGlrZuJh8ztr1kR9xpKuUADiKQB0ekA8BTQT1kUNAGgr/vPrn6z7AGgmIJ4CAAAAgLYD4mnrEQrr8T0JJ0+dU+/MPmol3VAH/dRFRfrq6afLrNfhO3nr60E8BYBOD4ingGbCuqgBAADQ3oB4CgAAAADaDoinrQefjhcKhRYLrFXVTAf0nzh/8pkdi/N3LM410p9PF80Ys3/X0vLN8xNMR7v10Ruhqiw7cPDI8vJyfG0Ul8v+KgEA0BpAPAU0E9ZFDQAAgPYGxFMAAAAA0HZAPG0lXI74Yqbq6uo+fY2UFzcHDZhmPsFv30qh23JEPWLm2EOktE+fYdsWpWI7quC8tGjcMLt+/cYqL6H2GzAsMTG5STyF4FMA6NyAeApoJqyLGgAAAO0NiKcAAAAAoO2AeKqYutp6LlfE59ULBA0BphKEDalOeaiIX4+Pxn+O/tKj12BlZM2+fUctM73rvKSEyKbuK0To/bTRrlS1oZvnJyJjY5FYQnW0zJk+el9v3aHKjNKnr9HLV2+xbzxeg3ja6G2DwwIxIh5PxOWwv8gAALQIiKeAZsK6qAEAANDegHgKAAAAANoOiKcywYJpvVB8JB9LkCI5Lxx5evvOfcVhoTp9DPQHzVo45eKupWVYNiXCqPPSUotJp/v1G0cf2x86xGKl2VO35Xxcs6my0GHBd7OxB/X0hrcYhXrn7oN66iXP/8acA/VYC2Z95QEAkAmIp4BmwrqooSTjJ5mOmzitu05f1j0BAKDTAeIpAAAAAGg7IJ4y4PHEOiktmyp4kTo+x04pljLNxh1yX0GHmja8cVlWtXxmkG6fYXKSouoPGjDVziJ2jxWneUPhHqsqw8HmihOq+p06h++MUjwRWh1GP/kNYapwzB8ANAsQTwHNhHVRQ0ni4uLR7zg+n3/2fMC/fv6ddX8AAOhEgHjaBVk+cs8tv9DPL7/P1bMnxu3zfZ7e+PDk2jti2Tzz0AXPR8rgu/MWaXVq911in6Pbjg9w5zwe4lHQm7bt2cXqJJnChskeLO7UYkMn4skRh6ssegIAgJYD4ilBIJARTyoUCmtq6lJT02/fub/X7eAGm63rNzjs3OV+MeBaUlJKbW0tqoBrurl76erJPVDfS3fI1kXpRABt1EB5FpP8Bw+Y1ltX8aVS6KeR4WDzDXPfuS0XUCGo9Uum3dTR1Vcgnh708iHuCQSCysqqrKycz9FfwsNfvXr1LjHpW0FBIYfDETTWkZo7XDMFABoEiKeAZsK6qKEkWDzFryVWK1n3BwCATgSIp12NHYuOV5Ry0dNV1vcSYrzg+Qg/cj28+IoYgy6/VfJB7UNoEm6ycIgjMRbl1bTfLFaPcyMDpcbnq92PmY7dxQOPV45xpY0xb9JI51tmH2Zxsw7aBhBPnt/+2PoOLQ12BPpHsDUdj7Xn3NecZXE9AQBQGxBPEXweUzbl8/kJicknT51bscqmT1+j7j0bkpnq6g3V1TNsBL0Z2qPXYFS0YaPD2XOXUJM9rp4KNNBeukO2L8rG0mcj9dYzHg4ZZKb0BVBDhw9dvmVBEt2D1XRFiQJQkYfnkaqq6oePgvd7Hp0+c0GPXkO69xzUq7c+KkL01BnSrcdANIWFlisPHfaNiHhVW1tHYlHxT6EQkqICgEYA4imgmbAuaijJb390n2I6i8vlol9tPsf9WPcHAIBOBIinXYp5/R0Kc6vRo9Wzm1HWI3Zj45bZh+tq66srBad23zXv50AqJ8f8UPJB7crRp7jJrmUnifHts4T2m4gXpSoG3/igXidOlr7pSYUVZbwZ3W2IcUYPW2TBPddWC9s1eLZF7p4JJ9M86XKnNV2hOZ5wvl1aWPc+NLHjJ7JqzN4PoUloFvaz2BSjAQBQGxBPBQLJeXahUFhXV/ch6vNQo/G9essN6mSgbzgGNdzveVRXYbVNFl8YZ/bdVtRbTPLX0xupMOzUcED/ievnvCZpUsnJ/dnjjyg+tn/46Ik3bz706Wuk5ES69xx8xj+grKxCgK/HanqBfgoArAPiKaCZsC5qqER6egb6pRZw+SrrngAA0IkA8bRLcdo1ED1XfXmbThtfBcUh41Xvp7RxTh/72moheRSrKOWWl8hlt/Up3CrAK4g0Qe/bbyL3/CPIQHTSACVZpO8YFhiNm8e8SaOLNk71JD0nReewu1+x79KJM62JgbWZ5pn4ORv3Q5TujmFGd5vLR4KrK/ho6JoqITzTA0AnRcvFU4FAkvGTy+UeOeo3foKZ8rIpxtBonFAoPOMfoLjaoAFTLSad2bucy9BAnZYUWU0P1O1jLN3EWH/xJouYPVa1jISnO5cUjjPZ3EdvuGLx9MLFq1Efo1WaC2o1WH/UQsuVSUnfhE3H+dFPHo/9zQIAbQYetADNhHVRQyUSk5LRL7Vr12+x7gkAAJ0IEE+7FHHvM9BzVVhg9BGHqxYDtiKLed8tNVUNIunlI8H7118gNem/kxtiM3vYKtP/EqOdayfuw1j039reE8HYzfRStbmfyx3S/M6pMLro6NZrpOjRpTcsbtbMnraV5eIY2FbKjpGPYsmkXFec7shZbJiynwzNuhgNAIDaaLN4yuNKbkmKi4tftHiVrp4KOiNhwKDhAoHgeUh4T50WVFcdXYOB/SctNb3tsqyiUQyVRKG6rxAO019MV549/qg7DlClZNNtC9PnTTzZR89EGceCn4a+fv1eQSZWBej1M/I5dqqkpJQsEQfiTwGAPUA8BTQT1kUNlfgQ9Qn9Rnvw8DHrngAA0IkA8bTrMEd3M9ZJOdSBdKdFvuR569PLFFL51J5AYo9+ndoe/lgM2Go9Yjd9aZVMZnS3WWbsvNjQiVhm9rStaoxkRFRXCmbp2Kk69PNbUWR2nhsv0kWPL70hRUe3XsNGs16bkA9LjHYq07mlwY7lI/fMH7itletjY3qAeCJPdsSOoWXEUrg8cjPKSVcKZmHRv2FHkP/Tu9ko6A2D6iwcvB3NFNVXUO2ow1UydBuK0Wh0NK71cBf0ZWixskrzahPflFkZAOhcaLN4Wl8vPrCfnZNraDReDYUR06u3fnp6ZkZmVo9eg5VtpTt05cygPVY15DA++jlr3GFSoY+eybZFaW5N4ulea8HuZWXTRu3p1VvZIfr2N/4Q9Tko6Lna89LRNZhjvoTD4ZD8p6xvGQBoLSCeApoJ66KGSty99wD9OktLS2fdEwAAOhEgnnYdHOYcIY9WRIwjV0Uhbp4IJZVD734i9lt+L5Tp33rEbtQt5vWTr8TuvOQEsXttujSnjz0aND2pEHdeWy0MuxctU2pcauT8+NKb0sI6XLOsmHP7ZNhcPXvb6RJVMeFjlkqLgOaF3Cgv4ZIekCfIglzCFehMrxunetqbHXoVFEciQHPSyjzWnpPZM6ocfONDUV4NaZ75rejM3ntmvTapt18+26+Trh4FvKaLUJ8+jjfi3mcQNRz7dsM3hA74RWuV+DkbzY5+qsYbsXPxCVLN0mAHapiVUkzqFOZW3z/3Up72d8Dm4vvQRKJf462JfBTLSCxw2jUQDZSfXUmq5WVVIAuqqdI6oK0h35+1E9ythu16ePEVTt2Lh758JFimKqrMvPatOUc6tzLZRTf33HiRFHmsO08Xoe8hKXJccEzVlQGAzogWi6f1TZqgcMGiFUpf3CRbZAy4dJ3P5w8bPkmVVvr6g8xmjzviao1P5QunjHSmKgxtzJEqbDzXXzBphGPfvqNVcrJv/2FZWTkn/M6qPS88tV27PcTBp8J6trcMALQXEE8BzYR1UUMlNtra41w9N27eHjthKuv+AADQKQDxtOtAn1UnYhx9oJtWiGjJiaEcycNzwwXSJPx+DLHf8A0h9nP7HmSllkg/6kWFJTN6szc7VFJYK10zKTrH3+0++fjgwivlV2CWjl01JWzReG+7btoYnEsyvaI3j6goVEJtTf02c29Gz+f3P6yrlf3nIpqaevrpkytvSSdHHK4Su6XBjoSPWfIemtMSC4gSvX2+j7xqq8bsxXWcl5yQuc6I7NRS6+EutEvm/RyiX32X1ydageNON0nlzy9l1wy581GldfjalKKhpkro43iDXOdFQ7RvgpLz2m19iti3mh8lzad3s0ErSYrOut8nRVYmLkSzTk8qxLeNqbQyANAZ0VrxlMcT34aUlf2je89BrVEYETNnLeLzBQ5bd6kqwuroGvbvN2HhlPOLpl5k5DAd2H/S4mlX5oz36S0rHWqLjBo9jcvlWi3f0MqpjZ9oVlfHEaeFhZP7mkdWgSj0qyg5F6TtLg6Ip4BmwrqooRL//uWPq9du4t/+IaFhrPsDAECnAMTTrsOuZScDvIIwm2cewsbjTjeJkUTkLRi0jX4O27n4xOqxe2WycrQr6f/2yTDSxN9NIjZ9ikwhdqwwlhTUImNeVgU9yvrJHqSJ7fQDZcUcUlRdwU+O+UEsdLjl4S1XlF+BLbMPy3vW3DBlv6kcdSDhUzZ9cRMi7F403e3Di69IEfIt5k3a1/cZtEqr3h1N377kStxrWpzp3Wy+vJU4g9bkU8Q35F5tjeTPoWvHnuPK5/c/lDlZtP64gufGi3RDNOKnlym05sjI2BD58AspSor58exmVMSDGBIEiqe/ckzDV2JGD1uZKifCz+WO8otg1msTWUkiT2enlaJZV5RKwoeRD3Qr5eeFvnXESOf8dVvtT/t8+UgwKQqkLivz2nRJ1ZUBgE6K9oqnXPFVUfHxSd17Kn3cXm6Yp1FeXsGTYHXPyOu2anRZmqzBseOn6uo4ev3UEV5pTEZMrqmpwWsF4qmmkVMkMvMWrTovOhLCexonYN0foP0A8RTQTFgXNVTitz+6h0e8BPEUAACVAPFUG3FeckLJR7SkmB+kVfTrVGLfZuGDjdO72ZQV1dFN7p2NxHlOzftu+ZFeRux7V/njJjO625Cr4RGvguIWDGoIpTTv5/D2WQLDAVpybZFZOnaWBjtungglzdF7ZCGqMZ3pFZGeWLip6Taq066BMmftvuYssWellqweK47oXDdpHzmxXlpYhzPMKs+cPvYkBrailIvDGxnDITdIkCmdu/Zj+DdsRCuGpvblbRq9yMiC19N6uAvZmuoK/p7l4oukUJ/0VpIj58tH7iHGJ1ff0auK9gjbczMrvGwDTJtykqLhSBPkBl5qM1Vy1G6acZDeEeSn97br+JD+xqmedBFZCpXmhb6ExIJ2n4xL30iGuHM6HNsXDt5ORFsSdqrSygBAJ0WLxVPxbVGlpWWtObOP0dUb+iIsMiMjq2//YW0rg6rHwMEjKioqr9+40/qpjZtgVldXB5GnmsnW66KJB0WrG8VTRHoBxJ92WUA8BTQT1kUNlXBy3o2V073unjp6A1n3BwCATgGIp9rIxQOPlXxEC7r8FjeZ0d2GiEq1NfXm/Rywfe0Ed7o+42r796GJpMhx4XFsPLzlCjEmfMqmtTZLgx10ulJaVVSe10++kh52W5+ii0IDP5Oiorwa+m4lOmqVxC1O72ZD9N+62nqHuUfp3uh8stvmMU/6K2aruUSniH71ndhn9rRdauRsM83TeckJcvTetFEnJfXfPI0nduQhSRqLPJzX34EUhdz5SJowEJ/sYgAAIABJREFUjr3TKkmAVxA27lrqR4xh96LplV84eDuaINZkaWjFWcnMuQyOO92kvz+uK07TpSQoFX3lSG4EVedVnF/D8HCbBTPdAfmeBxx6Qowk7FSNlQGATofWiqccjvjYfn19/e49ngpCOIePnLxmrd2+/YcfPgx+//7ji7CX5y9ccdi6a6nV2kFDRpFqGzZuFQqFlktWs66cIlautuXx+EuWraXl3WnTLVat2bTRdtsOp707nd3st+xcvXaz6XQLBQIrKrJ32InmhddKXh4bgBWefmlQTmnx1P8lr7qGfceA9gDEU0AzYV3UUIngp8/R77K4uHhi0dEb+DgoGLF6nQ3r7gEAoJmAeKqN0PKiYny2X8dNNlDHn79/zSNdedldJvactLJZzaMO6chTolR+DP9GjE6Wvgzf6OBTxqFyJaGvMFoy1IkuojO9+u26TRcdspdIuuTW+B2LjhPjl7dpjIF2LTtJSlFzlZxsLjuGKqhp3s9hw5T9l48Ek/pE6UOsGS8Rr9MTCyWt+m4hx+qrKvjoI93nnD72pFXwjQ/YaGMquaeL05g59Jbfi23zvBXo1y8oMdpzwwUFs5DHk2vvSA+MbAkrRkniPdOTCtWeV8IncZhzaOBnbHn3XPwdIxGsLxqLUHNyEp+Enaq3MgDQ6dBe8bROJBDU41dlZdXEybOlpUO9fsZPgkOqq6uFQmG91IvH41dWVl69dgsfje+pM+Tbt9QfuXmsK6eIwMBH5eUVAwePQO979TZYt2FLSUlpbW0tkUGxaoxeyFhWVj7PwkpmPybDJ3G5XByii5aL9S0DCEVlotk+TPEUEZIAh/e7JiCeApoJ66KGSsR8iUW/zu4E3ieWwYYm+HfiEe/jrLsHAIBmAuKpNkLLi+f2Pdi5+IQ8SEjdEYerpMmTa5KTy/fPvST268ef06NYGuwgRQU5VdhoMWArOa6em1kh7Rt9idPtk2Eqzcu08bYf0pzR/8LB20lRg+7Wz4EupROb+jjewMZbfi+IMTnmx+NLb2hoDVrV+4LoGFjGhV0bpuy/duz5u+cJaYkFdN5Pwqndd0llWrx+fltyUxN9UVLhjyqG54+pRQ4LlEiW8VEyLqrKy6pA/iwc4ig9C/pyMPUyfn7/mkd6cF5ygi7av15yQdmLJt1TjXlFPIjBFhzhS/43QF1tPUkai4N5/XbdJs1J2Kl6KwMAnQ5tFk+5HBFRQktLy06dvmA0bEJvPUNjk4lu7l5PgkNqamqwbijvhUqFQmFdHefp09D1G7asW2/P5/OXWa9nVzk1m7WotrZu7Tr7iZNm37n7oKysnExT5hTwKzY2/uTp8ybDJ/foNbinzhAdXQOnnW45OT9IBTizr1HsvSdWThniKSKrCGTuLgiIp4BmwrqooRLfUr6jX3xXr90kFiKeeh32Zt09AAA0ExBPtQ4rk130Q9gifaWkH1pbPLbjBrF//ZBJ7Nvn+9BNaJ3rTfBXbNw004sYSSQgTfj9GFKBvuFHSfatOUeav3wcSxfRh6/fhyYyGpL4RISN6QFsDLsXreSz7AGbiyr5mfVdIjtaj9iNjTO629C3csnDYc4R0g8tXp+kbmo6vvOWkp4/bgqzRSw2dJJ3p3xpYR1aQHoKC4c4ktKSwlo1vormfbeQe5+qK/iMsGVauT7jek/ted3yE+fAzUopRh+f3xaf+n8VFGdvdgi/R7Oe0cM2O7UUf6TDTtVYGQDojGizeIrg80VEUqTfCARChtRINEShUCgQCLhcXl0dh8/no/dCYYMRvYqLS3g8/tt3H/r0HcqWctpvwLCYmLi8vILbdx8Im17Iz4rKypKS0urqGuQyHUjLEILxT1SNfMSlaKFY3yyA8DJRopxKi6fnXsm+1xHo1IB4CmgmrIsaKpGZmYV+o10IuEwb//Xz7xUVFfZbHVl3DwAAzQTEU62DcQOSkq1obXHTjIPYaKZjR7JSVlcKGM9z9EnzgIOPsXHP8tPEKDNLZk6a5KT/ilF7VJ0dfVsUIyEm8kHiT1NCTMwsNJFK8QG3qgo+Sa/56WUKaZKWWJASmyuPDVP2K+8kHQNL3yN/5ehTYq+rrY9+nXrDN8Rr0yV7s0PkKnnGOtMRkXRKVjp354/0MgWeH3W4ynBv11K/yEexVU07S6go41mZuJBqLlaSrAVRYclqfBXp3KPSKRposXKbubfa8/Jt0lvRjKyHu5DA580zD60c7YrfJ37OPmgbQHpmhJ2qujIA0BnRcvEUwecpCC2VqIroVVVVder0BZMRk3r3Mew/0GTAoBH9BgzT7TN0wcLliUnf+Hw+ER+PHPVr/U1N6rF6jZ2gMR8BcoPD5R4/4Y9c1etnPHDwyEFDRqGfen2NDYaOO+1/kcPhCJoyF8iUicl7Ho/9bQIIZZUi8+OKxFPEy2Q4vN/VAPEU0ExYFzWUxMBoxOp1Nug3NfrVdvioD7H/8r9/Dh3x5nK5fQfos+4kAACaCYinWscN3xDyBEYf2VaAPG2RDiNN+JjFaEUySyJIaJ7nBslZ7PvnXjKaOMw5QkqL82vUmN3nlxLFjXEM/E2w5JT9rmUn6aLNMw+Rorj3GcROR56qJI8qho6BffssARtndLchCmlZMQdfFo+xmeYpc53pfamtqZ+rZ0+K6AhNPyoiVXnm9Xfwsg2IepFEP7LTwa2XDkt0TEbGBiU5s/ce6YGR+BWtBrk6jJ6aGvOiI6DJZVNY7bXovxV/zEguSo75gd9Lh52qujIA0BkB8bSRegEVgsqQTb9/T3N22TfVdF6PXoPlSZa9eusbDB3rvMs9NzcfNSktLRs/0azjldPpM+eXl1cgB54+e7FmnZ1iAbd7z0FzzZfuP3C0qKiEDjIlQbiNEbj1PC7ruwM041BQM+VUpniKyC2Fw/tdChBPAc2EdVFDSeLi4snvuFlz5xO7kcnovPz8+YuWsu4hAAAaC4inWsenCMl9TeQ0tGLI6WZOc22RVrIeXHjFaEXu3kEsHLwdG50sfYkxKTqHrj+jh23061RSKn2yXhmI4oawNNhBFxXkVJEiRrICX2oigf4RxE7rg4e3NLsSymLA1gCvII9159dP9jBrft68RZrFwB56go10OoXw+zF0ffpsPr3OtHidmlBAN9k+XxLU+bTp6iTCadfAQ/ZXNs88hBO/LjZ0cl1x+pzHw+e3oki+VwJqTrqig3nfPI0ndkbaViWhtWlGD+sm7SNFKbG56s1LuisCSTFB1GcCHXaq3soAQGcExFNCXW09PsVPjud//Zq4crWtAs1UpiJ56fINHo/340duQwbVDlROBwwc/iHqU3FxyYqVNr1666vk805nt+Tk70RCRT/5PJDeNJGEbKZyilglSzy9+4l5WkIbePjw6ZWrtwoLyln3pM0B8RTQTFgXNZQEi6d5+fnOLq6Mop//+zfr7gEAoMmAeKpdTO9mQ24Y51CnoRVzwllykQ6tLQZff0/sjOvmrUfsJkVZ30uIfZG+I/q7lBT5u93HdvN+DiQqEHPl6FNVZ7fM2JnuwWLAVlJEXySVnVrKaBhMqWBetgHEvnrsXmJPTywkkit6cqXjWKVlNcXIjIG1GiYRTzOSi+boih+OnSx9aYHPb9dt0g990jwp5gc9xIzuNrkZ4r8ZUPNNM71I0cUDEukWp53du8qfWNDXg6R8NW0Mbv3yNo2UulhJInYzvxURu+vKM2p8G0mOUQ6V+BWDvk6k6MlVyQVlKs0LM1fPnvGHR+y7dFJKX57GkQo7VW9lAKAzAuIpgc+TnFUXCoV7XD0HDh6hxul7Xb2hK1bZcLjcF2GRPXWGdIxy2qfv0JiYuMzMbIOh49RojqY5cPDIwHuP6dP6kOdUAwmJVVY8PatlmU/LyupMZ87uO2AwYtiIMd9Tstt7xA4GxFNAM2Fd1FCSnrr9//xHh3U3AADojIB4ql2sGe9OHr8YB70V8FSOtpgan0/s6ybto5t4rJVc3MS4GOp9aCL9FJieWPgx/Ftxfg3j6dB1xWlVZ7d6nBvdQ1ZqSdSLpOM7b5k2v0gq7B4zWQE9EdQJXfTk6jtSlJtZ8fjSm/vnXv5IlyRm/RSZoviUtzTyYmBpIS83o/zN0/ik6BzGsqCJkPo+jjfoosTP2Wgl7WeJz/t7bbpEiirLeWgXbp8MS/goyZGK3Fhs6GTaKKnTF39VVwoiH8XePBH66NIbeqYpcXmopkxvSwpqo8KS6bunWgRNnDSnE79iHpyXBNsytGnl50Uoymv27dptfYoUffuSSxcxsp2qtzIA0BkB8RTD50tEw5ycH0ut1qkUvCmtRW6yc6yqqgoKejZYf1QHiKc3bt7NzMyeOHl2azpBU966zaXZPVGQ7VTDqKgS2V5WSjyNShey7m1HcjfwMVZOMW5uB1h3qW0B8RTQTFgXNQAAANobEE+1Cy+7y+Txiz4NrZjUhALSavXYvdho3s+BxJCWl3AZAiJ9cdNp10C6aO3EfRWlXOnHwaK8muw0SSjiEqOdqs7OrNcmWpfE4PPgtD8k3FV6IqWFdYw+5/Sx/xSZIu0tJvZdOh3fqgx0DCzjwi4/lzvSQ5QV1dEOeKyViKcbp3pK16eTFdCzZpCfXYmak5rLjJ3TEgvkVeY0CseM+7tePo5l1JFO3aAA+r4pkviVQF+EZTv9AKNU+XlhaGk1uXmILp3FQma2UzVWBgA6IyCeIng8yVH9nB+5Q43Ht4mgudFma01NTUTEa0MjdaJBFYmzlEo7YNDw4Kehyckpev2M2qTz8RPMysrKiX4Kt0VpIHGZoqjvoiuvmeLp6UheWn49orSiI9zYf+DokmUrMA8fPm3v4RRz//4TWjw9dkyc97ysrI44iSgqqmw/H9oVEE8BzYR1UQMAAKC9AfFUu7h3NpI8fj258laZJvP6y9YW6avSP7/8zmhF31O/1fwoo3TzzEPfv+aRCqj/l49jrUxcSDBjbmaFehPcNs87K7WEfsrE58Fpf0i+S+mJfAz/Jt3njO42/m73aWGX0yjSnfN4SO7OUh73NWdJJy+ax+SaNqZDpS9zR/6snbiPjrUM8Aqi6/vuvFVWzCGlyElGh64rz9BCJKKilPvo0htGQljTxuPtAYee5KSV0ZU5jWGh9/wjpDXipUbOdI5ajlTqBsWgsUjDS4ef0EVmci4oU29eps2Tq+5ff4EuQltAihhhp2qvDNDxLDZ0ehQQ+fpJzP7159p7rK4KiKc8nuR+pMrKKpMRk9tM4tQ1mD1ncVlZ+YuwyHYSTwcNGfUt5fvnz1+GGo9XI8OAPCZNmVNbW0f0U9b3CJDJ62TmhVHnX3foUf0Vq9YTsdL/bEB7D6eYstJa+th+Xp744a2kuJoWVYm90wHiqcZyfMf19yFxN44/ZZx/0hJYFzUAAADaGxBPAdZYP9nDdcXpnYtPtO1DxvRuNqjnXUv9di07aUflxGx9t2snuKNukc8bpuxX9ai+8swfuA2tyW7rU1Ymu5Spjx6j7c0OuVidRK1WjnGVWcfKxGX7fB+31f4Oc46QbKryWD5yj5Olr/uas6jDhpn2sFVQ2Xq4i9MiX+TtVvOjLfbc5qg0r9aj0soAHcbCIY5FuWXk7tS4dykyNXRAMVounnI55BskSs/IavsQUV0D0+nzV66ybXxv2Fu37cTTxt569dbftn23vuGYtnUbsdByJRFPhUK4PEoTAfFUxpq8ikIU5Ev+ryeIp0C7cvHAA/JLhMfle9ldZN2lDoZ1UUMN/uquO2b8lIlTprPuCQAAnQIQTwEAAIBOzL2zYaLmr4rSaqdFx1h3rHOh5eJpY3rPhheHw1m8dI2qwqjKNdtKPNVthAipyvmgamjqBputvKaMBoLOfHnU1/cZbqv9CR7rzpcU1NIVYt+l0xVOutyhr7jUWEA8VQaGeJqbW9LeI7YTIJ5qIIsNnQR8IeNR5Pmtd7N07Fj3rcNgXdRQldNnzqFfbWin0tLSWXcGAIBOAYinAAAAQCcm5nWySNbr+rFguMhLebRZPOVx63FwpVAodNzhqqS22K3HIAPDsfv3H7l9576f39lJU+b83W2Art7QNpFZW4Ipwuq0JJ720hnSvedgJ2e3kJDwl6/e+hw7NdR4fI9eg5XUW+/fDyI5Dbgc9rdMbZyXnKC/9kccrpKiilLuytGS0xvovx4KMp5rFCyKp0e9/ZYsW2FsMoqIkpOmTCd5RX/kFNGVCwvK/c8GLLRcNmLUuMEGRrPNF7h7eMXFNWQef/nyA2m1Y+duZCkvq1tmvZoYQ0JfynQg4NINUmf7DhdsXGq9ihgzM8U3gsqMPN2y1YnU3OO6X940V65aT6oFB79gd7tBPNVAHBf4yHwOyUzOJXdFdHlYFzVUYq7FIrJNIJ4CAKAkIJ4CAAAAnZirR4Nk/tGCXl/ff4cj/EqiteJpXa34THp9ff2X2PjB+qNaVBJNp1t4HvDOzy8QNn/V1tbevHVvylRzmSKpPOMy6/V7XD0XLFreq7c+giGGNrZqaIiKeugMmTFzgZOz2/yFy2X7JtNnXYM1a+3i45MEAoGwKcIWO5yXl3/goPfI0VNbVHVNRkzOzc0TR+fWs79rapOfXblI35H+5hOF9LjTTdp+zuMh694qCYvi6UbbLbQiySAt7QepGRn53mjYSJnV3NwPPngQTD7Omm2Bm6xes5EYN9jYy3RgiulMUsfbR3wRJd35t+RMbJQpnvr6nqGNRGmleR4SSdfJz2MmQO9gQDzVQMz7buHU8WQ+h3BquVpyhJ91UUMlPDy90O6gX4vTZsz575/dWfcHAIBOAYinAAAAQCdmRg/byIef5Omn5cVVOxb6tLcPXQCtFU8FArFyyuPxh5lMUqwh6vUzvhhwDf25RdKA0i+hUJiUnNK3/zDlxVOTEZOLioobjsMLBDwe7+vXBB1dfWnxdNSYafEJSVwuF6uflZVVffoaKR/ZiipnZeXI9Llx4rwNNltldkizYqUNGh234nLZ3zi1ef3kK/3NXznGtbKcF/UiiTZumulVUyVk3VVlZ6Tx4ml4+BsF1RDzFy6VFk8fPnxKjIMNjMrL6hijx339RneS+j0b25UXT9FP2njy1DnFc9zmuIv17QbxVDPZOu9oTWWdvEeRp9ffdPkj/KyLGirhd+oM2peCgkLWPQEAoBMB4ikAAADQ6Tmz9w6fJ5D5R4tQWH/N5wkc4VeM1oqnREM8f+GK4gBMY5OJsbHxJHiT1iJxLOf163d09RSFrEob55gvETTKt6TPxUtWN6/TIJ5ucXCmFVv0Zu16e+kOFfg/1Hhc8rfv8vRT5PzdwEeK9dP+A01ycn40Hd5nf+NaAyPI1HfnrWXGzuSjed8tGclF7e1DG6Lhx/aLi6pGjpnAUEtRk9nmC2QKqWaz5uHOK8o5BkYmxP7o0TPG6Ee8T5DSRYutiV0Z8ZTkPLW120qMEyebMoYoKqqkW335ksj6doN4qrEsH+Hy/Wu2PP00O7Wgax/hZ13UUIkz/ucbNiU7h3VPAADoRIB4CgAAAHQF7My8CnNK5f3dEv8BjvArQjvFUwFfrB7yeLyJk+cokA4HDBoeEfGali8FgobmJFnq46BnihOeymTK1Ll1dXWkWz6fP37iLOlqa9ZuxqItGX2O+VJVx9LRNYiLiyf98HjiqNum/8cgvHrtdv+BJgp6WLBoJY/Hx/V5nTn4tLKct2a8u7x/C8HX37PuoUpo1oVR/hcZpWfOXKT1R4sFS2Jjk3FRRTnnwYNgg6HD6Aok8hSx03kvsdvZb2f0PHnaDFJ67fodYlc+8rRh9V5F0fboz/H0EBcvXac9Z32vOSCeajZmvTY9uhgh7zmEy+HtX3+OdSfbCdZFDZW4dv0W2pGExCTWPQEAoBMB4ikAAADQRZjX3+Hd81h5f7dUlFQ5LoAj/LLRTvGUaJEXA64pCNvU1Rsa+fINObQuEDTcwM7liMgdSklJ3wYOHtGidilt1Otn9PFjNIlmDQ9/JbNtn75GmZlZpNqLsMieOvpKDkFjbDKRw+EQt/FV8rQm67H/iIJOUNGHqE/irKkC9revNSRF55jJOkXrse48676pioaLp9PN5tD6Y5nU6fuQ0JcyI08R7959JvYhhsb0yf34hO/0of7SkhpSpFLkKae5COu6t9m1UeYWi0jR3cDHrO81B8TTzoDHurO1VXKP8D+/9a5LHuFnXdRQifiERLQXT5+FsO4JAACdCBBPAQAAtA4bU8/Yt9+6KrkZhbJOJ4vlITjCLxMtFE+5XPFh+erqmtFjpyvQHFeussWaY0PAKb8eNxcKxbJjcXEJat6icCmvQr8BJhs2Ohw+4mtrt13fcIy85gMGDbfbvOO472nbTdsNjcapNARdYeUqGw6H2xToKl4K/O8FTaeionKqqbmCHvZ7HhVruMJ61newldzyC2X8K7Ay2VVSWMu6Y6rSSvG0rjSZk/+GW6P+xJuJp2cD6KKioipasgwJiZTZw6LF1jLFU8SY8ZNIEX3TvbfPSXlBqaqKpxcuXqXyCYwk9qTEdIl9+GjWNxrTlcTThxcjWH9gaCcSP6fVVXPk6add8gg/66KGkowcM9H/7AW8EfZbHVn3BwCATgSIpwAAAFqH4wIfec/02vCKfPgJ9FMGWiie8nli8VRx3KjRsAklJaVNx/OJYiiJ1nR22adYssT06q3fuyVxszXo4CFaqtanr9HzkHASbcrlNEyHjqL98uVr3/7G8ppPnDyb5HvFbTsvFWW8ef0d6H8FnTHslNM68bQ2615tojuiJvkwpzhOPQcURJ4mJqTRkmVRUaXMHvz8zso8ts9pLpLaO+wgdtOZs4k99MUruolKx/Y5UgovkWg99h8mxkNHjrO+0ZiuJJ7GR6Wy9BTA/qu2mrNhigfrW9CGsC5qKMnjoGC8Bddv3Pr3L3+w7g8AAJ0IEE8BAAC0Di0XT9HroO0F1ndBo9BC8RSfwm+8K+mhgphNn2OniNRI2oqaQjXLy8v79G0h1Wmv3vpmsxbtdfNqP+W0d2NugUuXb0yeOleZyhUVlXhGgqbgUx5P1JQLlTduwkx5DXvqDElLy8A1+fzOHXzqt+u29D+E8PsxrDumKq+TRdOPiJzviK6/Fb1MFiCi0oVKtq1JOoTFUzEZ1zjVsvVNBSgQT9++/UzrkvJ6uHPnobzI09TUHFJkYGSCT+7TMaEjR49n9EaPmJycgY3FzRVSOvIU4ei0mxRttN2CjahnYsxIz2N9ozEgnnaZV1ZKHutb0IawLmooCRFP33/4+PvfPVn3BwCATgSIpwAAAFoHiKcBXg9Z3wWNQgvFUxJrudneSZ542qPXkJSUVMaBfW7TWUyBQLDUaq3iJKHTplt8if0qFAq/paT21BnSfuJp956D09IyuFxeRMTr0WNNFVc+feaiUIinL1kQoghHvnwjL4gVzcj/bIA47WlnPrn/ITRJ5j+EBYO25WZWsO6eSmQViApK1Wxbm3ywmXiKSDpQV/hBpU4UHNtPTs5oFnlaKHttz5wNIHVmzjJnlC5espyUBgWFIosPFY564CDzv13KiKc/corpJh8/xpGigUMMi4oqQ55HEsv6jXas7zIBxNMu8+JyeKxvQRvCuqihJDp6A51dXPEW7HHzYN0fAAA6ESCeAgAAaB0gnm7sWsflWo+2iafkoLpQKBw1Rq7UONd8Cb4nClXmNt0vz28K0szMyh6sP1qBRjnDbGFpaVmT1CicOWth+4mnk6fOEQjErn6O/iIvL6p4XvOW1Te9yOl7LreeuDpuvNzg05WrN5G2rO+jehTl1Swx2km+/DN62NL/FpwsffFVWp2J0lqB3bb6UeP59jvQ+wZLZUFtXmTLMJRTQup5TmWRkqMriDwtK62lJcuHD5/K7GH5yrUKxNObN++R0s2N6U3pK56SktIZ9dUQTxEzzOaS0ivXbtvaOZCPkZHv2d/iJkA87TKvV4+jWd+CNoR1UUMl3r2PQlvwIiyCdU8AAOhEgHiq1aA/GM7vf3jB8xHC3+0+6/5oLNvn++BVQtibHWLLjVO77xI35uh20NOzeT8HMuhJlzvYuGHKfmLcu8qf9Q0CVEXLxdNz++6xvgWahtaKpxUVlfJUwl699QPvPZLKdioSCMQK4/PnYQoEyn4DhhUXl5IMoejn5as320k5Ra5GR8eSgZBvUVHRev2MFDQpKCjE9cnJfU5T8Clqvsluh7yG06ZbcLlcPBDr+6ge+9aco7/8oXc/2c86TFvunA5n3UkVKK4WLF5eb2iCEZ46x6nkcmr5zCP5apCr1DqsWWtDdMaTaPTmpUutVpLSCZOnlZUyb6Z6EfaaljUZOU85jQrsEENjXIreRH+OJ5UtFiyR9kfVnKeYGzcCSensufPJe9OZs9nfYgoQT7vGKyMpl/5fOF0A1kUNlbh89TrahcSkZNY9AQCgEwHiqVazcaoneRpL/JzNuj/ysDTYEegfwaIDLx/HkoXas/w0K1NeOMSR+FCUV9Nhc3dcKLkkIfrVd2y8eSKUGAO8gljcGkA9LAZsdVzg0yVxXXEqKTpD3p8rlWU1qA7r66+BaJ14Kr5wXpT87Xv3noNkqoS6ekNzc/OaMoFKhEL8Qvat210UnNm/dPkGvpgeV0Y/8/MLUZ/tIZ7OnbeUjCUSx8lyrZdvkFcfuX3y1Pmm+FHJsggE4mhcn2On5LUdPdaUpEztjHdGBd/4QH/z3decRcbUhIJZOnbEiN6nxGlKjssWvsmFlcIFSyXKqddR0emzgoi3qKgu40ZrxVNE+pUWfdjjup9IjctXrWOU3r37iFYtzedbZmZI1jY4+IWh8XDF4ili63ZnibJpvkASInr1lnRl9cTT8rI6hicKhmCRriSe2ph6sv7M0E5cORLE5fDkPYo8v/WO/g9O14B1UUMlzvifRxuRnZ3DuicAAHQiQDzVary3XSdPY48CXrPujzQzutuccL5dWlj3PjSRRTfoDGhLhjqxMuVdy04SH94+S+iwuZ91v0/GveUXio1M8dpQAAAgAElEQVSfIlOI0XnJCRa3BgBo7My8ivPK5P25Ev/hu6XBDtad1Ey0TTzlccWC5tt3UfJSkeobjqmsrMRaJK/pzD5JeCoUCkeOnipPYUR9/viR2xS1KtFbA+89ag/99Enwc7FyWi8ZKyYmTl7qUsT8hcuJ3kqWRSAQN792/Y68hsNHTi4pKRVLtJ1NPM1KLZnX34F87RcO3p6fLb4f6frx5/S/iA1T9ldX8Fl3WDHc/DKhuSVDOUUIHz9r+JJnXK1L2td6uJU5it24eOk6rTYaGg9fvHT5kmUrfuSID/4vXGzFUCQtlzRUoE/KKzi2j4iMfC9dEycnla6s3rF9xF43T8YQQ4eNKGu8okpz6EriaZfETMcu6Morec8hXA5v//pz7e0DK7AuaqjEiZOn0XYUF5ew7gkAAJ0IEE+1mqDLb8nT2FGHq6z7w8Bmmmfi52zs3pWjT9lyY5mxM1ml3IxytqYc4BVE3OjIYE/66mGPtQ0PfNO72ZQVif+WqKutnz9wG1tbAwA0Z/cFCvhCmX+uCIX113yeoK8u605qLNonnopP0wc/DZWnMI4eO72mppYRYklupS8uLlUgTc6aY0mkSdSWzxcLmgKBcMGiFW0om+roGuzffwRnO0UvPk+sC+PD+xMmzZLX0GTEZDS7ptSl4rhaPk8svoaEhstraGwyMT+/sDOKp7U19VvNj9Jf+9C7nySl1cJNM73o0jOu91j3udmX9sMXTnEN+cj9USycu4Aop/UHjmDlFMFPTG3YzbdjhM9/aiWCyH4tOlZWVjdu4lRpcTMt7Qeu8D0le/iosdIVCHTWVJmRp4hxE6YwWm3e4iizpnqRp4ikxHTGEO77vFjfdwYgnmoyy0e4pCf+kKecZqcWrB67l3Un2wnWRQ2VcPc4gDfFzn6bkclo1v0BAKBTAOKpVpMc84M8jW2Ysp91fxhEPpIclndd0RGH5WWyd5U/cQO5xNaUlxjtXDtxH8ai/9YOm777mrPn9z/ELuH0THN0N/tsvx58veH+hKSYH2ztCwAQ5vV3iAqLl/fnSkVJFRzVbxFtE0/5Tecp791/LO/o/dRp8+rqOFLiqVhe/BqfKO+8f6/e+gEB1xjJUvHt9qLGa6YmTp6t4Ly/SsyaY4nvpGoYSyAeq+n/GQg32zvJa2gwdGxRcQmuScRToil/jv4iLyDXaNiE3Nz8poadCUZsKf3LHZMSm2vWaxOpML2bzaeIb6y7Lf7GHvDGIqng5Hn0kZtVKDQzl8ScUsopDjvllia0Xjnlv5/CLc9Uxr3Y2OSZZubyxFNETnaR5ZLlMpXTmzfvPXgQ3KJ4eujIcUbDiPC3MmuqLZ4illqvoqulfMtifesZgHiqsXisO1tb1fTfX6lXlzyqT8O6qKGaAjJjDtmatLR01v0BAKBTAOJp1wQ98S82dFoxao+CM6pz+tjXVgvxo1hFGQ/fNoueyayHuyzSd1RyINT/8pF7Fgxql9jD3Ixy8rCodlZ1NC8rk11osjJXwMrEZZmxs+KnmWvHnhM3zu9/SCaO2ir5GKTkQK2fMuofTRZhpoRj6EuycPB2tH0tHmT2c7mD/PnyNo02vgqK40DCU0ADQF/g7NQCeX+uwFF9JdFC8RSrhIGBj+TJi7PnLOZwxLlROU3iqYAv/mq9efNenrzYq7f+x08xjOuYeI094UjPxKRvI0ZOab1+OmuOZW1tHUl1ShTeeqFYPD1w0Fte2yEGY/Ly8kXiBKlNTjZpyqmp6fKk4UbxNA835HSqyNPOCzc9TxJhamjCP+AtnDlXopwePCpRTh89E29l9m1eskeLyFVOX/zOS2eKyy0SHv7m2vU7x31Pe/ucREifqY+OTjjg5b3RdsuSZSsQ7h5eCfENQbJf41NwE4S8HKMZ6XmkDsLX94w8N44dP0WqFRZIHqvo5vIO4+/dKzm5v3rNRta3XhoQTzWTs/sC5T2HdOGj+jSsixqq4ujkUlBQCOIpAADKA+JpV2PXUr83wV8rSrnkMau0sO757Y+rxjDPiWw1l/ypHPMmzX7W4fchidWVAmzJ+l7ive26vFFcrE6+CoorK+aQHgpyqp5cfSfzNIr1cJek6BzMy8fMyM0bviGkFGfPnKtnn/g5G32kHxZxhZ2LFaXX3DzzEOnqkP2VOX3s75wOryznoeZoXmsnuONqi/Qdrxx9mpZYUFcrjrWprRZ+/ZB51OEqVpAZfAyXBJ64rjgdcPAxkTirK/hh96KtTFxk+qP8QC1O2XrEbjK110++MgYy07E7vvPW1/cZRA1H840KS3ZceFymYwdsLr4PTayisrmhrYx8FLtl9mFGzVk6dl52l/FG77Y+hY2WBjtunwxraFVUB7IUwDpBl1/K/HMFjuqrhBaKp/j14OETeSKmxQJrXpOaKGnIFyuV4eEve8o5tt+rt/7n6C/Sd9kTxVYoFObnF0yZZq62bIp8nmu+tKSkVHzlk0hEsrIihE33PnkekCue6huO+fGDaKDiX1Jcjnh2ubn5//QYKE88xaqrqHNeGNUZ4d8PpsVTGuHhY0Q5FTwJUbVn4YvfpZVT3idLbkXnuC+rbWHcGRUS8pJ1l6QB8VQDWTjEUZ5y2rWP6tOwLmqox1/devfqM4B1NwAA6BSAeNp1mNHdBp+klklZMceueTKvU3sCSWlBThUR+GiuejMzjc7R3Rx2L1reKJXlPJwWk2b/+gukQmjgZ0ZpelIhKV09zg1Zts/3kde/tARMc2avJD2Z+5qzX96mkY9f3qbjOk6WviWFtfL6/xSZYt7PgdFtaaEkPIHcLEGTl1VhNWwXo5VKA7U4Zc8NkjUMvx9DD7R85B55lwKjPfV3u09XRoNGv/oubyxU/7jTTbr+laNPcdGd0+HE+PVDwyG4qgq+68ozrH/tAeDzy0TpP1cqSqudFh1j3bdOhLaJpyTE8nHQM3ni6fyFK2SIp03H9t++/aAg8vTmrXuMo/SM5qg0P79wu+PuPn2NVFVO+w0wOXzkBM5Yirvi85vNrl4oFk/tt+xUIJ7m5xeImkeeEvEU+dZNjnhqbDIxr6kh6/uoJfDdvVpWTp+FqdGz8MUfzTKchuvwfjxmfb5scf78FaKcTpo6Q+aDMeuAeKqBbLM4KlM5fXr9Tdc+qk/DuqgBAADQ3oB42nW44SuJOKitFsa+S/8U8a28RBKCiix0/dDAz4wHstT4/C9v03CoJgY9OG6c6kmaoCe2+Khm6Z9qqoRFeTW0pbqCb2N6gB7olt8LUnpqTyBdNH/gNlJUWliHjSTDJoOSglrFK0Crum+fJdBt9yxvyB/queECic3EFOfXkGBbDEOaXD3OjeFGWVHd55ffs1JLaGPkwy90K1UHanHKONITQ+uh6ybtY6w/akJfEIx2kL4fA/lJipJifjy7GRXxIKYwt5re0JVjXEn9QP+IF4GfScypaeNhfzT9e2cjsdINAKzj73aX8edK3LsUiIlWFW0TT0kQ6POQcHn3PlnMt+JypcVT8dcs+VtKj16D5UmTK1bakNP0zKH5Ev1UKBR+jo41nTFfr59xi6f4UYUBg0aYTrdITk4hAaeixkui6P65HHFyAPSaajpPXm9DjceVlZUzAkh54iwFopycXHni6bDhkwoLixgNgXZFuGBpC8ppSIR6PfM/mEoynMbZc6pl/B9iLaG2Rjhm/CQinp47d4V1l2QC4qkGMkd3c3lxFf0cwuPyvewusu5YR8K6qAEAANDegHjaRVgy1KmmSqzWlRVzyO1PyE6ksdpqIX2CNeu7RP6rKONhedG0MZIxI7mIFAX6R5AmtIRXXSk4tScQ/w/VZcbOtFiJ3tO+fX4pCXVEf5/TRTsXnyBFUWHJ2Gjez8HSYAcdN7p3lT+ytJhZNTu1Wfp/5GHwjQ/e266f2n0XO0nHkMa+S98w2cO0MSnqAZuLtMpMh+h6bbpE9/kqKI5cLn/xgCQ6o7amniSKVWOgFqcc/TqVFG2zEF99Y9ZrE33lV0psru30BtnaTMfu4cVXxE6EXbSzxPjk6jsyR7SJOIEpIjezwss2gPXvMwAoD/qH8CkioUlFElz1hqP66qBt4ilRCaM+RvfoJTuAdLb5Ei63KeepVMPaurq+/YfJFzoNy8srmv6KZsavEekWS5y1tXWxsfFOzm44alVXbyjdFfrYo9dgvX7GR7z9kpK+cXk8oo2Kmp/Wx+CEp6g0NS1dgSA7ecpcPp+PO6mTXBglnl1aWka3HrJzno4YNaW0tEwcsgriaQdQzpURdnrEV6Kcvnildufc8kz+1238qHm8gjfsz5RVHj8OIcqp/tBhxUVVrLskExBPNROXZSf4XHFK7PTEH1pyVJ+GdVEDAACgvQHxtIswvZvNIn3HdZP2OS445jDnCF2U8CkbP29VlPGIceEQR/pRjKGX7bY+RYq+fsjExpVjXGtrJH8BetldppuY991CjrTXVAnRR+IYkQtrq4WMi5to/fGqzzN6OkR/rKutn9efeZReGkuDHfSMivNrGGkKnt2MIqXfvuQSDzH0kX/6Qt57ZyOJPSUuj/HMmvBREoe7a9nJ1gykYMozutuQJLZoC8h5/wuej0hXeVkViw2dSJM5uptxoGtJYe2nyBRs3LXUj9QPuxeNupV8HwZv3zbPu50u/gKA9mZmT1uP9WdPutxS+2Y5QNvEUy5XLF8WFhXJUxgtF6/i8/nS0aNE97SyXt9bTlvUZ0hoRFOG03o+j6lycjkigUASPYrF0JqamqSklDt3H/ie8D/odczr0LGTJ889ePgkNTWdw+HQ0aYN3QqYgZ88njgtAKomEAjtNjspCGL1POBNJiLpgSv2pLi4RF5Sgqmm87AzEHnaMfBef1SgnLZSPAUIiyyXEfHUZbc76/7IA8RTjWXdRHd/98Cdi2XfN9DlYV3UaEN+/b0b4uf//o3e/99vf+GP//r5d8X1//Prny32qbhOa3xg8Mv//sFN0Pt///KHgtH/+2d3Q+ORU6fPHjFmwm9/dGd98dtq+5Rf6taAdgQPh/ZIupSsPHqjXv/K7yPQMYB42mWZpWO3crSr58aL5BB35rciUkrraN++5DLazuvvQEpz0sqwMeCgROiMfvVdesTw+zGkAhEu106QPIAmx/xgNHn95CsppRNorhkvaZWeWKjMfF2sTtIPlySQFtNwoIYK+XRcwEyGuG7SPlJKR85+fZ9B7O5rzjJa0aG4h7dcac1ACqa8YbIHKfr+NQ8bp3ezyc2sIHaf7czbvaxMXBhStY3pAXqJslNLb/m92DbPm1ZRAQDQTrROPOVINNDFS1bLVAl9jp0i6ifdVtiUUfTW7XvSwiuyIPT6Gdtv2UnUTnnJSbmcetQbLYnSWqo8O2rCbS7FCgSS0sY3ovz8gomTZ/ftbyxPP83IyML1UVuZy7J85UaZDb29/aiMBJqYFLKLITh1vply6t1MOcXwX39g3c9OzadPcUQ5RSTEp7b3iGoD4imgmbAuarQVw0aMxb/g3r77gD7evHUHf7RYuITUsVy63NB4JH6vozcQVzh3IYDuR5k6rfFBMSUlpbjJf37902bTFvz+mO9Jus64idMePHwswA8QjS8ul/vwUdDQYaNY3wWVaM1StxJ3jwN4uIKCQmn91GG7Ey7dvGW7ev0rs49ARwLiaddhyVCnM3vvhd+PSY75UVIg46qiV0FxpHKAVxCxn9//kNHVjO42JMg063sJNtLZTmWe7H56Q/Ls7mTpi41edpeJ8fGlN4wm9P1LdMgY3er57Y/KTP/S4SekScybNEYpLa1mpRRLN6ePtJPbpcx6bSLSc0UpF31ktAo4JBnUa9MltQdSPOUjDldJ0ZNr4uP2tBJaUcZTMiE9I2UtJi+r4tqx5wuHOLL+HQYAgC20TTzlNB5vx+phUlLKgEEjGALo8hUba2vrpOVFTkPSUnHDtPSMwUNGMbTFHr0Gb3fcnZCQVFFRyefXlxaKyooaxM36ejGi+oYQUbrDxijUZgf55WmpAj4z2FPAxxXEIEtBtggNKuALkQMxX+JsbLfr6DKTulossBY2qrbS0aMCgdiN/PzCkaOnMhous1pX1xQDy1gWoJ0QbLBXrJxiuBUc1l3tvNht3kaU02XWq1n3RwEgngKaCeuiRluhWLgcYjg8POIl+jjF1AzXl1brlKnTGh+UoUXRDRnJlZiMV3V1zeRpM1nfCGVo/VK3koyMTLJuS61XMUpBPO16gHjaRThoG0AHPMrkgucjUv/N03hi3zbPm9HbkqFOpJQIkfTFRMuMnaV9+BTxjVQgqQPu+UsuMTi69Rpd33q4CynKzSini+6fe0mKTrrcUWYF6KSrhzZfZpT67rxFSoMuv5Vuvs3cm1SIepGEjZtmehEjOfxO8yjgNamwY9FxtQdSPGU6gemxHTew8ZC95CoDki62RRYbOkW/kqSgpSktrNu11I/drzEAAGyhheIpzu+JdcDYuPgNGx2Gj5wyaMhI0xnz97odLCsrJ5Ilsy1HLC9yuTyLBda05Dpx8uw3bz5UV9R/CKk/s1vksUrktrwBj9Uif1fRhxARt1b8kM245Yn0zOc33Cgl4NcLBQ0H89EbgaBBrpV5QJ7cPVVSIIp8IPJ1FLmvEI+4f40owFMU87KexxXcvx80YlQzGdT/7CUS28rokw4+zcnJdd7lPn3mApMRk2fNtnR1O1BSWkr0XNZ3UEuoHz1BfEOUj5885bRBPC2T8X/NASV59+7z61dRmIz0PNb9UQCIp4Bmwrqo0VYMGGKEf829CItAH89fvIQ/zpg1D33cs3cf/kjUuv/+2d3ZxRVhNscCW6TrqKroKfZBGbKzc1B9DoeD3q9YtQ43P+B1BJdOMZ3VdLBGGHD56lyLRWPGT1m9ziYhMQnXTEtL7xRnw5XZjvZj1tz5tOgcFh7JqNB68VTxPgIdD4inXQGnRb51tZI/Y1ITCu6djTy244bjgmPvQxOJnT5CXpAjSYQvndR835pzpPTpjQ+mjXcQEQsaa0YPW0YT9DBXUcYjdcjtSbHv0olx41RPugl9FxPjtno6QJJxx5Q86CvjpS/avur9lJReOvxEujkdinv/3EtsPO50kxhD736SbvX9q+QJe/nIPWoPpHjKJGstYtOMg9h41v0+MT4KeK3SF2bXUr/IR7FVTUG1BLSDViYu7H6ZAQBgBS0UTzmNB/CJUIje42BMEpKJ7TJVTqK6fo1PIif3TadbcDjc4rz6w7YN8qX7CiZYRS3KbQg+Fcm660klsHKKPE35Itq3WsZweEQfh/qK0gZ1WFfPCLuKfhYUFjVpuDI0UGHTGb6mLAENL4FASEfFyhZ/gbaGm54nVk4PH5Mnmwrv3Bd8jGXdVaBjAPEU0ExYFzXakIqKhvse/U6d+YnSv3T0Bur11z9+4hT+uHL1enxU/N+//IHeIHr1GYA+yqwjTzz9p6feXItFq9ZunDZjDuPQtzwfcOmAIUao54H6xvKm8CT4GaofFxf/ExXHunzlWlwaH5/AsGD+/EcnLS294Vc8nz9+kildhEa0XLp8xap1I8ZMoO3/+fVPPP2/e/RBH41MRqM68xct/d9fPaS9GjV2EhpxidXKfgMNaPuvv3fDnaBWaAFRDxMmTyelgwyGoQ7XrLddYLms/+ChxK7MdqC26P0Qw+H0cGipcZ3eeoNanKAC7t57gAXomC+x+JEJDUdXaL14qngfgY4HxNOuAJ059ITzbWKf0cO2OF8cLkrfQUSHfCI2Nb9YCRH5SPIUjhN9Tu9mgy8gwkjf4EQHQpIkqjO621SWixVV9IYhuX4ITSJNzu17QOyzdOzIWLU19XP17GXOmsZ6xG7SFckzQEPfrXTL7wWjFDmWkVxEKrit9sf24OvvifHN03hGq41TPUlpSmxuawZSMGW6qKqCT1IH0OLp7ZNh9CiWBjuuej/13HBhw2QPBcf50SZ62QZEvZDsAkfpOF8AALoY2imeciihkH4RiVCevkmiVoXCxmuj+hgOGDg8LT0zL7P+kE29TB2TcNhWlCGO7WgI81QPHk+sbEa/bAgyVTziMQdRaaEwOia2/0ATHV2DK1duSa6KknPjE6/p4imZK8PlQthpB8FNzmwQTw96NxNMz10UPnwieP+Zl57LqRa0tw+ARgHiKaCZsC5qtCEvwiI4HM56Gzv0ftLUGeh9bl4eev/0WQjjd+Lvf/dkCKPK1MFsc3Suqq4m1X7k5k43M2/RBwwOEU1LS5c3Bbd9nqjJlas3fmrUEysqKtBH4+Fj0EeTUePxiB8/fZZuOHz0hNHjJv/yv3+I5ef//n356nWhUEhcjfr4qe8AfVyq118fG13d9gfef0jqFBUVTzGdRTrp02/I+w8f6WW5eu0mvg4LMWb8FGzcuWtPRWUlfj9+kulvf3R/9PgJYz2RBbunzFKTjAd0IteVazZgo62dQ4sTlEe3XnpoSUWN0cEkJvSI93G6TuvFUwX7CLACiKddgazvJfiJqiivhrbTAaSpCQXE7rH2HP0cds6jWc7TLbMPkzjWsqK6Obrip7T0xELS5GDznKcLB2/PTislpX67xALuqjF7iZFxW9TeVf60D3RULH1YnnZbAR7rzpMmYYHR0hU8N1yg+2TIuGf23iOl+dmVZk2CY2p8PrEX5lab991Ct3r3XJIogKREUG8gBVO2NztEiuLeZxA72gJip7PZIgKpVAm4aLGhk+uK02ijn9+K8nG8wVgcOlktndsBAADtQWvFUwSXW08SfZLD7NJ32TPA10ahqq9evdPrZ3w38GFZUf3B9S3omBi/nSJunQxpkn7VK3zhCtnflRoOceUQmpHQbvOOqdPMKyurcCd8viINlMttWAShUDJoQ3BuQ55TUE47FMHDp6LTZ+svXBIGPRd8juPlFLX3iIAmA+IpoJmwLmp0AEFPnhKJTdD4+t9fPRhqnTJ1EKvWbsSW/IKC0BfhOM60pqaWjqxUQIviqQLstzrioT08vZSpH3D5Kq6flPwtIvIVvmDq69d4fK6fiKdV1dW1tXUvwiKSv6VgS2paGu7h/377C7XFzy1v373/EhuHK/ifvYArEPEU9YDfZGRkIjuqgD9Gx3x5+iykoKAQf7Sz36bkUk8xnSUta4aFR2KHf/+7Z4sTlIejkwtuhbbytz+64x0sLCyiI4hbL54CmgaIp12BrJRi/ERVW1O/epwbNloPd8lKLSEPW/S5+JsnQunnsNLCui2zD+Miu5le9B3up10DSavLR4KJPS+rYu3EfeKBRuymr6RPis4h0ZGoW2IvyKkiD3zb5nmXFUtuNqirrTfvJwllpWXBpOaSqzxu+UlmdGbvPekKqP+KUklO2Nsnw4is6bvzFrkdC+Gx9hxpQidDQDy/FYWnZqZjR6coRStG/FdjIMVTPuF8mxQF+kcQ+zJjZ9JbbbXQcWFDxlU01rl9D+iFtZ/VsLO0VF1WVGdjeoD0M0vH7svbNFLqYnWS9e8zAAAdjzaLpxI4LQimNPymixaEwvrrN+6WlpaF3m4h5pQ+TR95vyF8VVk4UnAbXL3ho6x4ikbMSBJ9if365u0HItoqP1kAADQEEE8BzYR1UaNjUCafqTJ1cn7kYvXzr+666GPfAfplZWXIcvbcRWXccHRyOeJ93NnFVY0peB32xs7guEvMvPmLUYc0yILs+kOH42eGwPsP//Xz78hisWAJbm61fPVPlHhaV1c3bMTYnxql0m8p37Hxj797/dR4ORX+6LDdCQ/nc9wPK5744DwRT5Fl/qKlPXX7j50wFdmPnzj18dPni5eu4Fa6fQfjaucvXlJ+qROTktFHtODYf7TUWHLFnbQ4QXnEJyRiBRYnKLgQcBm3Wka1AvG06wHiaVcgLDCaPFSVl3DfhyRGv06tbp7Rkk6v+fml+Mqg0sI6fKy+pkoY+y49PiqrtlpImiR8zKIDJy0NduRlSXRVVPPrh8yv7zPogcqK6oioaiqVHyDxc/bNE6FvnyUwRMnU+Hx6Oj6ONxitPoZ/wyKgPOhLkKTvv8IEHHxMd4vm8ini24/0Mtr45Oo7Un/7fB9iz8+uJK2iwpLJR06jQElO36s3kOIp02GhXs0DfkPufKTdSE8qJFkaMOQ4//RuNmiziL26UhD5KBbtxaNLb2jHUuLyUE3Wv88AAHQ8IJ6qgUBQT65cEArrfbYoK2UiPFaL/JwaOLFDCRyZ+G5vYN8qFUY8vk3sMPaZz2d/AQEAUBUQTwHNhHVRo2NoE/F01NhJ+OP+A4dIzzdu3kaW7Oyc9p7CAa8jePQdO3cT4zHfk6LmL3ylu5PzbvzRdOZcUhkrv9eu3/qJEk+fhYSSCpeuXMNGnJUVJ+7k8/kkKnOQwTBcAeclIOIpviBLGtQQ1dnt6o4fYG7dvqv8dmzfsQtbZs2djz7udffEH1GHykxQJhMmT8etSJ3J02ZiS3jES1INxNOuB4inXYFNMw7SCUkJr4LiyPsH58Xi6YzuNuUl4tDIN8Ff6dvhaRI+Zi0YtI0xkP2sw4U/quQ9z2V9L6GVU0zMmzTpmshbOo41+Pp7ugmdS5QgfQcUgZ5RbU0943A9YXo3G1qIlOaGbwgtHdJJRR0XHs/8JuOgHBrukP2VVg6keMqpCQXEwrjaa/7AbXRiAQZPrr1DK0MqLzN2TkssUOBVbmbFilF7WP8yAwDACiCeqgGXI/4bAz3M52WI9lqrEAcq80YpVVGpE9dlorIicgcU+6sHAIAagHgKaCasixodQ5uIp0utV+GPXC63uroGw+OJz7P89kf3dp2Cnf02PNCpM2eJ0WWP27eU74gfubm0eHrG/zz+WFtbR1zFkZtRHz/9RImnJD70p8aIUWwcbGjyU1OSAfQiPSCwBZ+mJ+IpviCL8H+//YW8ffX6TV1dnYh63boTqPx2/N2jD84GcOPmbfTxe2oaev8lNg6XtjhBmZCT/s9CQtFCYfAOokcsPOufQDztioB42kXYs/w0HQ6ZnlSILFYmu4jlU2QKrrlu0siXO7wAACAASURBVD5iDDj4GFkOb7lCt60o4905HS5PgrQ02PHo0puSwlr6SQ41v3bsucWArdL1rYbtSvgouUe+pkr48nHsmvHu7mvOEuNxp5uMVr47b9Hn+rPTShXMnZ7R9695ihfKc8MFOgaT0yiAfgz/tmPRcUbN8PsxuAK+pglN/M3TeDpmNik6h07VqvZACqY8r78kdUBpYZ10K4v+Wx9efFXVPMo4JTbXY9156cpz9ewDDj3JSWsWA8tpTOd6zz9C5vYBAKAlgHiqHjyuOHVp3BtVxNNGWi+eqqq0/kjDUm89HNgHgE4KiKeAZsK6qNExtIl4arV8Nf4YFxf/OCiYwV/derfrFIYOG4VH/5GbS65sIixaYk2Lp2fPXcQfwyNeMvw8febcT5R4esb/POmExLFiGREnPOVwONKTxdlLiXjqefAw7QyqgO0foj6hohmz5uGEpCpFniKuXruJLJVVVVOnz8al9g5iNbPFCUrzv7960Dd9Sb+O+vjimiCedj1APO06mOnYbTU/6rryzIbJHiq37bVp88xDqO02Cx9lbrdHY62btM9pkS9i1Zi9LZ713jjVc+8qf8cFx6SjWeWBng7tzQ65WJ3cufjEyjGubbtWS4Y62c86vGvZyS2zD8/r76B8Q6thu5A/e5afRrNu84HUnvIc3c0Oc4+iFd611M96xO4W6y8fucfJ0td9zVk00IYp+xm3WgEAoIWAeKo2+LqCL69Fbh0feaq6eFpfX8/jwY1PANBZAfEU0ExYFzU6ht2u7i2qdS3WGT56Av7ofewE6XmgvnF7x5wSomO+YAdc9rgxinbu2kOLp+TMO06BijEwGvHvX/7A75URTx89fiJqzGeKU6Ai/vxHBzUk9Yl46rbPkxhNRo3HRl+/09jy6+/dsOXmrTvKbwdi4hTxKXt8V1V1dQ1yABe1OEFpNtra4ya5eXkJiUk0OGS1qKgYq9IgnnY9QDwFAAAAAG0HxFO1EQgaFMmsFNFeqw4XT5eroJ+6LhOVFuCwUxBPAaCzAuIpoJmwLmp0DCRF5rqNm/oNNPj3L39Iq3Ut1vnXz79nZmahj+Xl5SYjx/3UeG0RPi3+4OFjZdw4edr/cVDw2fMBqvqPGTthKg7hRI8EV67eMJ9vOW7itBWr1kVEviLhk1g8HahvjI/XfI6O+btHH2RZuXq9qDGMdOeuPT8pJ56idcAfLwRcxpcynb94CX2sqKycNHXGT3LE0ymmZtiIJostJM709t17ym8HJj4+gUzt0pVrxN7iBKX5EPUJ94MvyKJ5HvICF1mvWPOTLPEUrRLaOLJWaI44yhWLv39118UflRFbzeZY4Mojx0xk8V+EtgHiKQAAAABoOyCeqg2P15BFVMAXHdigmni6e4kSLBXtYbBMjOtS1RTYA+tFyEnkKgfO7ANApwXEU0AzYV3U6BgWWC4TUa+B+sbSap0ydZZaryIXTmZmZnG5XFHjlUqzzRco4wbOIpqWlq72RFasWsdIJEq/Yr7EksSdp8+cw0YOh5ORkYnfFxQU9tYb9JNy4un//fYX6hBbysvL8/Lz8fvXb97i+jLF0z/+7lVSUkpqfo6OwctFN1RmqTFbtu0g1SZMnk4XKZ4gAyOT0bhCbNxX6VKSkCEi8tVPssTTbynf0Uf0E39cvnItroDe/CQnbFYeNpu24MpzLRax+49CqwDxFAAAAAC0HRBP1YbLwbcwiYICVBBPH10Q1VY3UMegphmcWkUEHFBhxK/vRI1/eEDYKQB0YkA8BTQT1kWNjuGX//3z9t17LFoJBILxk0ylBS9l6iCWLV+N40/xK/lbCn1yXDGtF08RJiPHXbt+i5ZQ0fsXYRHIMfrQ+r9+/t3z4OGKykpSLTzipf7Q4bhUGfEU0a2X3u279/h8PrZzudyAy1d//7snLpUpniJMZ87NysrGRZVVVbt278UpSlE/3XX6Kr/UPzUmCsC3VMXHJzDWQfEEGfj6ncZ1nJx3y/x6lJaWiRpDeocYDu8Y8dRsjkWHff8BEE8BAAAAQNsB8bQ1CIUND8q5GSKP1UpJmUfsRLVV4pum6pV40dXwszJ+k/hJWfHU3xU1aWjFh4SnANCZAfEU0ExYFzU6Er3++qPHTf6ru24r6yAGGQwbN3Fav4EGbM3lP7/+iUYfO2Gq/tDhv/zvH3nV/u+3v4yHj0Ezwqqlevzxd69RYyeZjBxHZNMW+fcvfyDHRo6ZqMA3JZdaMW0ywQ4GeYseBY1MRrPuifYA4ikAAAAAaDsgnrYGLgcLmqL0RJH7yhZ0zL3WooSohghQfOt9Xa06aiaPKw4jffNEicP7K0VFP7Dmyv5aAQDQGkA8BTQT1kUNANAquuv0DQkNS0r+xronWgWIpwAAAACg7YB42kpwOlGhsP7La5HXRrmCpscqUfx7cegon9eqEYUNlz2I+Lz6V4/kRrwiN7ztRZnJ4khVHpf9hQIAoDWAeApoJqyLGgCgVdg7bI+Lix9iKDu9ANBOgHgKAAAAANoOiKeth8/H5+tFZUWiGz4NquW+lSI36wYFc98qkc8W0R0/UU2VqCk5VxuMiNMFoBHzMkUBnqKjdg1BpnjE/WtEx7eJnl7Dqm5DNR4XDuwDQKcHxFNAM2Fd1AAAreI/v/7Jug9aCIinAAAAAKDtgHjaJvB5JJOpqKZSVJwr+h4nSv0qKs5rkE0FAnHG0lbGnNIIBBI1trpCVJgjSo1rCDUtK2q4b6pRNsXKKfuLAwBA6wHxFNBMWBc1AAAA2hsQTwEAAABA2wHxtK3gcuqbAkLFKiq+5AlbhIKGBKltOyKPS0JQxcPSIwraYUQAANgCxFNAM2Fd1AAAAGhvQDwFAAAAAG0HxNM2h8up5/NFYngNH9t5uAYVlcerF0hGZH8RAABoW0A8BTQT1kUNAACA9gbEUwAAAADQdkA8BQAA0HxAPAU0E9ZFDQAAgPYGxFMAAAAA0HZAPAUAANB8QDwFNBPWRY025NffuyF+/u/f6P3//fYX/vivn3//qfGWHvyRUVml23tIn2o4oAy//O8f0v+/f/mD9hB1ompvbIGmTy8R9hytBuuOtRXS36U2BH8HNHa5GJurPIzvM/1V7xhAPAUAAAAAbQfEUwAAAM0HxFNAM2Fdjmkrho0Yi69hfPvuA/p489Yd/NFi4RL08dyFAPxRR28g+oh+4o/IrvwQj4OCcSs1HFCGkpJS3OQ/v/5ps2kLfn/M9yQqWrV2I/641HqV4k6Gj55gsaDZiD//929nF9eO2QXkeVV1tUAg+PMfHWzZs3cfctvnuB8r34r2gPFdals4HA7qOSQ0jPVpSiO9ucrjsN0JL5rXYW/08UduLv74+989O8b5/2/vPtyiOB4/jv8LP5LYQVDsiBVQFDX23o29YMWKUWPUGHuLxthiiRo19t5i771FjYWvXbGj2BAFu95vZMy4OY7zODlmyb3veT0+t7Ozu7Nzl7vLh9lZwlMAANwd4SkAmB/hKcxJeyKTUghPvXxyzZoz7+3bt8NHjlaF9b5pciUy8s2bN6nzKpSrWE008uSp06pky7btoqRxs1Ya3xspy23D08QvruMIT+0jPAUAwOUITwHA/AhPYU7aE5mUUrBocRnH7Ny1RyzOmTtfLtaq29AjUeCVOavvgEFDhTr1Gzl+CPvhqf0GOOLmzVui/osXL8Tzdh06y83HjB3v4Vh4WrFKTVnHGJ5u37FLlKRaePrDj4PF4aZNnykXv0jv+fjx43fv3mXL6afxvZGyxHtGvnnEuyjFd27m8NTqxU2WLuE95Jtz6PCfxOKly1fk2zLVJiggPAUAwN0RngKA+RGewpy0JzIpKDY2VoU7aqSbTEutwtMvM3gFBZcWcuUrKLcV5WKxaFCIR0K02rBxiw6dupUoVc64/8ThaZGgknI/3tnz2G+AOqKd4YqbNm8V9SMizngYxrG2bd/J49/hqdhVjdoNwjqHV6leW22bLadfm3YdZR3RAHGgLN45AoqFHDp8RKZUosS/cJCo6e2bV7ZE7OerjFnrfdNEHEKeuBVRX/ZDg0bNcuTxt1pbsGhxsZNCAcHGwnXrN4rDtWzdXi6WLFNBLJ45ey5dJm95UGOKKg4qSvwKBKiSfP5F5atQOLCEzVXijFSJT458cp9BJco4XjlDlmzGBie3YeK5eM+oDvRImOhWLooOF5u069C5YpWaxv1Xr1Vf9GGjJi3lm8SK6NhmLduI1y5v/iIeDoen+QsGtAht1z6sS9UadWzmj6Il4oiiMeJNIttpPKLqHHHWYj/iDeBfKFCuzZott2iPKBSvr9U+rV7cZClTrrJ8c4qdi8W1f64Xzy9euuzErpxDeAoAgLsjPAUA8yM8hTmlWniRCnbu2vPixYsu4T3E88rVaonnUXfuyFWfvGx/3oJFYjE2NrZBo2YPHjy0/PNYvmKVukeTVXiq4tETJ0/JWSDtNMA3d35ZWRwoqfYPHzlabLJw0VKPhLBVNEYsBoeU9TCEp4OHjjhz9pxq3sFDh2XqN2DQUMu/H42atoyLizeWiHYam123QePIyKvy+bt37+bOX6hiuBx5/Ddt3ioK1bavXr2aMXO2MYY7e+68KBd7MJ7CvXv3RaGKpHt9308szpo9N31mH5ksL122Qh1C7v/atetqc9kecVLbtu8UT27eum11OPFQMd/8hYvF4rNnz0W3O145i3cOY4OT27DE76WyFarKxR8HDol98kQ+r1C5hlhVo3YDOZpYPsTR+/4w0Hh08arJtFT2sNjDJ8NT0f7lK1cbX9Zbt6MaNm6hKnj55BJv2jdv3qgKog1NW7RWFcZPnCwKX7582axlm6dxcbKOqN+9R29R7fHjx6pEtMfOi5ssop+fPH0qzq5wYAmPhJlwxfMVq9ak1H/7n0R4CgCAuyM8BQDzIzyFOaVaeKGXg+Hp69evnz9/fuHipZ279jx79lzWad+xq6xjDE+btWzz9u1b8fz8hYu+ufN/sgGOhKd2qPBUHDTqzp2t23eIf2XJxF+nigr9BwxWeZmoI543bNwiNjZWBaCi5Oix4x6G8FSGsydOnlIZ64RJU+ThVqxaI8O+RYuXTZk24+8TJ2WFwUNHqCYlDk8DioVY/j2cUMZ8cvDs8hWrxPN79+7LVa3bhql0T0acgcVLycV+/Qd179FbPpfZcc68BVTljl26yz3IHhAvSrIqJ+7bZDUs8XtJhafqDSNTV9EbskR0r3g7qRRV7F8eqFWbDrLk5cuXe/ftF/2mjmsnPN2ydbusczsq6tDhI2Jb8Vy8aUuWLu+RMND12PG/ZYX4+Gc3btyUz8XbQE34IMNTS0Jce+78hT1798s3yauEh9hk1+694j8EWZK/YEBSL27aQngKAIC7IzwFAPMjPIU5aQ81UoeD4al4LFm6XJaEdQ6XJZOnTpclKjytVLWmzMWuX7+Rz7+oIw3InNV3/MTJQovQdk60X4WnZ86clffYKRxYQiZcfx09Lus4OOepCk/vRkcXCSrpkXBN+s1bt2WK5+2b1+Of+/ls3LRFbvJVxqwLFy2dNHlaoyYfb37Vr/8gcToDBg1VJd269xJbzZ2/UJXI3couUlnh1+WrGF8RFXHKKTXfR5aFg3LmLSCzaTn4sW37TqrygkVLREnpspXUtsmqnLhvk9WwxO8lFZ6KTm7crJVoTLmK1Tz+uWOYeI1Kla0oFjNkySanUDh/4aI87umI/8lYs2qNuh4J88OKTpa7Sio8rVytlqwg3opymLAqmTJthljs+8NAVUFOyVqleu0nT5+KkgcPHmb0zO5hCE+Xr1wtdyt6SZZERJzJ5PV+q9E/j5MlzVu1TerFTVsITwEAcHeEpwBgfoSnMCftoUbqcDw8LV+puizJXzBAlqg4VYWn6rr+MuUqp077VXg6aMhwVXj5SqTFMPYzueHpkOGjVOHgoSNkoRwXqUYvXrh4adr0mc1atrE5X6cVmf2pgNK/cJDFcPF7Fu8cz5+/T5yHjRitGn83OlpFnLt277X8M7eAcPDQYbEoCsXzP+YtUJXlDsVOZDTpkyNfcitbSW7DkgpP5Y3CFDkbwP4DB1WJzB/Fo2DR4tlz+cnnhw4fURXUPceSCk/HjpsoK1SuVksVitddTdgqX7hXr14Z56hVW8n5RlV4WrdBY1lBpcPivSFLGjVtKUt6fd/P5oub5hCeAgDg7ghPAcD8CE9hTtpDjdTheHiqRpJ6+eSSJcuWr5QlKjxVj0mTp6VO+1V42q5DZ1UYEXFGlNy4cVMuJjc8/aZxc1XYtEVrWSgHb9ap30hdhC4fL1++XLFqTc68Bew0MjLyqkwGjW1evGS5qrBx0xYZF4pOVmmdJWEAbxbvHHK6T3k3do9/Ej1RmDmrr9yzqCwvMPcvHHT4yFFjXpmsyoklq2FJhafG29CrWRpEz8fFxUsyohWPBo2aBYeUlc//mLfA2BI5mjip8FSOZjW+S63ExMSItZevRBoLmzQPlVvJWRdUeKruh9bzu76yRE2NKt4Aqh9svrhpDuEpAADujvAUAMyP8BTmpD3USB2Oh6dqAlNPn5yyJHF4Gh//7NTpCBkpyivfXU2Fp2rmSo/PDk+NdxlSl66ry/CLBoXM/H2OmjRTPk6eOq1un2VFdumt21FWfd6tey9V0qlrd0vCCNDv+/1oSRjW6u2bV07V2qffAHmIoODSsrIcuCoeKtoTh5Dd3q//ILmVWOVE5cSS1bCkwtPRP49TO1Tzrt6OihJvGytVqtcWbxtZQd4fTPoyg5cMfJMKTxcvWS63CigWYrOCnG/h+vUbxsLQf2Zx/eHHwR6G8FSdkeq0Bo2ayRKr8DTxi5vmEJ4CAODuCE8BwPwIT2FO2kON1JGy4Wmd+o2CQ8rKcE1NDOpSjoSnFSrXSByeytvW2wxPjTMAqCu727TrKBYzemYvWbp8gSLFxHPxb6eu3S9dviIrJDX2UCZ0ahpN4dz5C1YxX7acfnJkZXT0PfHvzN/niMLjf58Qz+/ff2AxzAcqyfRTVj577rwomfjrVFX57du38tV0orKVZDUsqfDU2O0e/wwCFTtRJXnzF1HzBmTO6vvq1StRQTRbVahU9UP8nVR4OmT4KFlB3cRM2LFz96bNW+WQ4X37D8iX2/gyzZg5W25Vs843Hk6Fp4lf3DSH8BQAAHdHeAoA5kd4CnPSHmqkjpQNT+XinLnzVZb6yQZ4+eSSow6/6/ODE+13JDwtU66yrLNg0ZLsufxkTrdp81ZZWCggWIahKjyNunNHJpvi33v37lsShl5my+lXNChE3n/p0OG/0mf2kTtfsnS5jCBV//w243dxOrPmzFOLokKv3h9Gd4r9vHv3Tt3CXtm9Z5/ln4e8d9a4CZNUydhxE42Vh48crVZNnzlLlNT7pokqEc1zrnLVGnXkayGeONEwB8PTRYuXyfKwzuEeCTOryjtEXbt2XbwZRMmWbdtlhT79BnyR3jOPX+G/T5yUJSo87fldX9lUeSOvYiXKyAqXr0SK519m8Or1fT9ZIicN6BLeQy4ePnK0cGAJ8fJ17NJdprQXL12W+3QiPLV6cRP3oWieXFTDe61abp/4r0/UnDBpihP/aTiI8BQAAHdHeAoA5kd4CnNyXVphKq4IT3PlK/g0Lk4snjl77ssMXvYboCbBFAdyov2OhKdq+KR8dA3vKQqnTJuhSm7euu1hCE/fvHnz9u3bmzdvyUvFxWP8hF/lrlasWiNLou7c2b5j15XISLm4aPEydfSz585bDLerOnnqtMUwjWbjZq3E4to/11udyHd9fpC7EoeWtzmqVbehaqHVDbjUxKCWf6bjzOTlK2cgFY/+AwY7V7lt+06yUDxxomEOhqeFAoJjnzxR3aiejxk7XlYoWbq8al58/DNx3OfPn8t7kanw1OpYwqzZc1WrZMZtSbi9Vf6CAR4JF/7LscZWFeLi4tWd0JwIT61e3MR9mPg/qMQtt0PONnD02HEn/tNwEOEpAADuzmzh6d07MevWbZs4acbwkb+MGTvp91kLDhw4Hh/3RnvDTOJJ7Ms9e4/MmDlv9M8TR4waN3nK7xs27oi6/Uh7w+y4eeP+iRPnpHvRsdrbA6RFhKcwJ9elFabiivDU45/buFsMNyVPSiqEp8KvU35TwZmcvTSgWIhMpsTjydOnX6T3VOFpr9595ZXpMrwbN2GSms80fWafocN/unnrttpbTEyMqJAhSzZ1LGN46uWT682bN48exai18pL5Pv0GWJ1I3vxFZFZ78tRpWSL2KW9OZTwR5eKlyzIEVAMY9+7bL5uUeAIBByvbDE8db5iD4alQqmzFI38dU3344MHDgYOHGStUr1VfBdOit+s3bHri5CmL3fD0ywxeP/8yQab28rFr997gkLJqn6LZY8dNfPjwkaogOqFkmQqqQnLD08QvbuI+TJHw1GooccoiPAUAwN2ZJzyNvvu4U5ee6TJ5J/7JIn45jRo9IebRc+2N1OjG9Xu9vv/R5uVLX2XM2qBhi4MH/9beSJuGjxirmrpg4Qrt7QHSIsJTmJPr0gpo4ZMj39flqxjvxv5lBq+g4NIly1SQ0acKT+VsA0WCSpYuW8nTJ2fiXX2R3jN/wYByFauJzcUPFTsHzeNXeMiwke3DuqiS0LZhosS/UKD2DtFO/AYWfRhQLMTmL2TRye9fndLlk7oTl03pM/uITcQLl9RF8eL1CixeSrwT1B8DnJb4xXWFzVu2rV67znX7JzwFAMDdmSQ8vXz5Vv4CAfZ/uJQuW/nWzQfam6rFunXb5FVgdojfzT+P/VV7UxMjPAU+H+EpzMmlgQhMyCo8BbRr3qrtq1ev5M3KXITwFAAAd2eS8LRSlVrG3ygZsmTzLxSkbiqqNGoaqr2pqW/FivWfnA1NmTV7ofYGWyE8BT4f4SnMSXtuglRGeApTSZfJOzLy6siffnbpUQhPAQBwd2YITw8dOqF+neT2K7RmzebYxy/kqosXrtdv2Nz48yUi4pL2Bqemc+cis3jnUKefyct3wMARf/11+sGDuEcPnx09GvFtz77GaNXbN+/dOzHam21EeAp8PsJTmJP26ASprEOnbpGRV4XK1Wq5+liAI9Jn9nH1IQhPAQBwd2YIT6dOna1+nfwyfqrV2ocP4vPmL6IqTJs2R3uDU1Ozlu3UuefKV9Bmdrxs+TrjXFdm6yLCU+DzEZ7CnLTnJgDgaoSnAAC4OzOEpz//Mln9OunYpUfiCmPGTqpdr3GjpqGt23RasWJ94grbt+/v3LVXiVLlc+UrmM+/aKUqtYYMHX3lSpRVtYGDRoZ/20eYPmNefNwbUadwYMmCRYPFbo8ejZB1nsW/Xbx0TYvQDgHFSuXI4y8UCihRp36TcROmRd99bNyb2ETuTZCZpmibaKeff0BQcJkOHburfSZ24MDxsM7fykOINjRo2GLW7IVPn7yyqnbp0k1jKipOM6kdNmvZ7quMWYNDyrUPC1+7dosq/2PuEtnCPn0Hi8Uly9aGfF1RdJFo58qVG1S1PXv/6hreW6zK7Vcoey4//4KBlavW/nHA8HPnIq0ONPKn8XKHokPEYmRkVN9+g8Vx8+YvIjaZOnX2o4fPrDaxCk9Fz8+YOa9Ktbp5/Ar7Fwpq2qLtxo07tb8JAZMjPIU5aQ81AMDVCE8BAHB3ZghPV67cYPyBEtb52+PHzji4bcyj5y1CO9j8oZM5q++ixauMldXdYxs3a92zd39j5dWrN4kKDx7EVatRP6lfTmJz48DP5cs/3tZz/YbtNpshE0YrI38ab3P/xUuWvXzltrHmpF9nqLXlK9Ww0w/37j1Rcx0YtW3fVW7unT2PscFC7z4DZZ2+/QYndcoZsmQTWxl3KBopV1WuWnvbtn2Jb2MVHFLu8uVbxk2M4emUqbMqVKqZ+EADBo7Q/j4EzIzwFOakPdQAAFcjPAUAwN2ZITx98CAuRx5/q58p/oWCwjp/O3/B8mvX7trZtkHDFnZ+63yZwWvHjo+jNVV4msevsLFatpx+T2Jfigodu/Sw/+OpTv0mam/GLDIouExSm8ybv9zY4HETptnZf9GgkMcxz1VlYyA7dNgYJ/pWhacZsmSzCjoPHz4pKojm2T9l7+x5Yh59bJIKT/38A7x8ctncJLB4aWOSawxPM3n5JnWgY8f+p/2tCJgW4SnMSUuQAQCpifAUAAB3Z4bwVFi9epOdG8pXrFxz1uyF8XFvrLaav+Bj8Jctp98fc5dcvnL77+NnWrfppMqDQ8qp+io8lUqUKt/jux+qVq/XvUdfsfbKlSh1jbyouXXr3ui7j69duzvnj8VfZcwqyzNn9X0W/1buzWogp6gzZOjoI0dO7dx1sG6DpsaG3YuOlZuIQ4g9yPJMXr4zf58v9n/q1IU2bTur+j+NmagaXLJMRVXu3GyhKjyVcvsV6tb9++at2otzlxWKBIbIVekyef8+a8HNG/dv33q4bds+P/8AtdX+/cfVDlV4KpX6utKaNZtPnDg3depsT5+cqnzkT+PVJsbwVGjWsp2of+/ek0OHTgQWL63KnUuHATdBeApz0h5qpKCMntkFefMZ8Z0oF42T57juoOpnRsrKkCWb3L9Hwp+Tk3ssq04w9o9RkaCSVarXrlS1Zs68BdJcFznHqjON/Yz/JMJTAADcnUnCU2Hz5t3GwC6x4JByFy9cN25SplwVtXbLlj2qPD7uTbESX8vyQgElLl28IcuN4WmFSjXlaFNBDpOMuv1o/oLlffsNrlG74fr1240HqlmnodrwxvV7stAqPP1j7hJVP+7pa+PF6XPnLZPlQ4aOVoVTps5S9Z8/e6fq+xcMFIuy3L9wMVV/zZrNVj3WKjSsZJmKiVWsXFPVMYanXj65IiOjjKcsOmrVqo3Dhv/cqGno8JG/GHc+avQEteGSZWtVuTE8Fc8fPIhTq0SnqVUFihRX5cbwNLdfIePUrkuX/6lWNW/VXvubEDAtwlOYk/ZQI6WUKFXOkvA4dPgvsbhs+Uq52Khpy5Q9oEObZwAAIABJREFUUPNWbYOCP/zh0K9AgDzKzN/nuOKkHj58JPf/Vcas4d9+J5//OuU3Bzdf++d6uUmd+o2KBJWUz0+cPKUq9Os/6NbtKIvhIdY2aNQsBU/B1V3knN59+8tWjR03USzejvrQCca/IuO/hPAUAAB3Z57w9EXCBKa//fZHuYrVkxro4V8wUGWXd6JiPpYXLma1q8OHTx48+PfDB/HGQmN4umjJakea9CT25c5dB0uUKq82VFGsMTwtEhiiEk/JZiwY8vXHkaR378QY60+c9HF60xN/n5WFhQJKqEJjgikZx6UaZfHOoeoYw9Nu3b935JTFiYgGtAoNUxvOnbtUrTWGpwsXrbTa1jh9wYkT52ShMTzt2bu/sX5ExCW1qkbthtrfgYBpEZ7CnLSHGiklFcLTokEhu/fsE/usWqOOLEnT4enEX6dabD3evXvXPqxLSp0C4SnMgPAUAAB3Z6rwVLkTFbNq1cZe3/+oLipXuob3lnX27juqCr9p1NKR3RrD0/PnriZV7V507PLl63r3GVipSq3EF2FdOH9NVjOGp5279rLaycUL19XaMuWqyEJ1sduXGbzE/o2Mk7eqK/TLV6qhCidMmm51iOSGp7PnLErqlJ8+ebVt275hw3+uU79J4ntAzfljsappDE+vXImy2k+Hjt3V2nXrtslCY3g66dcZxvqRkVFqVeWqtbW/8QDTIjyFOWkPNVJKwaLFZf61c9ee9198c+fLxVp1G6bUIYYMGyn3mWrh6c2bt8TOX7x4IZ6369BZHmvMWNt3rUxs8ZLlcpPK1Wrl8Sssnx88dFis8s2d/9WrV2Lx8pXI+g2b5vYrFFAsZPrMWbLOnbt3U2q6A3OGp13Ce8hWDR3+k1i8dPmKeP7mzZt0mby1tw2uQHgKAIC7M2d4anTo0AljhuiTI58sN14k3qxlO0d2ZQxPrQalSlG3H3Xq0tP+b1+bI08HDhpptavou4/VWj//AKsS+34ZP1XuJKzzt6owtHVHq0P8NGZi+Ld9JLFW1UwqPLWai0B6Fv92zNhJiQNTo6RGnhrvCiX17jNQrVVZrTE8nb/gX7fPun49Wq0iPAXsIDyFOWkPNVJQbGysxWKZNn2mh2FoYW6/QqpC4cASjZu16tile5PmoQWKFDNum8evcFBwaXU9vkfCTOiyJFe+gh4JIeDkqdPlPtuHdZE1rZLBkK8rdujUrWHjFjZvrpg1W+469RuJCuJf8dy4SnyJq6OXKluxXYfORYPe/+150+atYucREWc8DENr27b/MC98waLFxSaFAoKT6pD+AwbLTbx984rFBw8eiuez/5gnnlevVV+uGjFqjHGTM2fPyXLRV6owQ5Zsor5oVZt2HavVrJd41lSx/9r1GopTEx0rW6443kXZc/nV+6ZJWOfwFqHtSpetZOeFLhJUUnaX6sYv0nvKEiGjZ3b1XE206umTU5aITvN4/0fxyrJVzVq28fhniO7FS5e1v4fhIoSnAAC4O+3h6dWrdzp07F67XuMSpconFZ/dvvXQOIRBLIrCHTv2q5Kq1es5cixjeJp47cMH8carzrN45/imcctfxk89cuRU0xZtVfnly7dk/X+Fp4NHWe3twvlram2hgBKi5NHDZ6pE/I9EmXJVkjJj5jy5k7nzlqlNxA934wSjVozXvycVnu7cdTDxhsaxol9m8BIvwaDBP23dulecuCqfN/9j4mkMT9WksUr7sHC1Vo2fNYanVre9IjwFHER4CnPSHmqkoJ279rx48aJLeI/3X0nVaonnUXfuyFWZvHzXb9hkdX26KBHf5rKCusxfXbBilfpt2brdanPxta7qzF+4WF0jLx7Xr98oW6GqsW3DR45+8vSpqiCeixK1dsCgobK8e4/e8knskyfpM/uIOuIsFi5aKr/iY2NjxWJwyIfv8bPnzouakZFXk+qQajXrifpXr374PbN1+w6x2Kt3X/G8ZOnyapBps5ZtVB7q7ZvXO3se482dmjQPvX//gfHEY2JivmncXK4Vv+4mT50eH//MWGHP3v058vhbdaP9LvppzC/Pnz837kScXVK58Oifx8k6cpSx8OPAIbJk3fqNokl79+2Xi8NGfOhkGUOLR98f3v+RWJyveAlEb8iMeMiwkeL5ilVrtL+H4SKEpwAAuDvt4WnMo+fiB736dRIRcSlxnccxz42jQW/dfPDi3+lk3vxFrKYc3bP3yM+/TF6/fvulSzdVoQpPxd4SH2XchGlqh6GtOxqTym8af5zyTF2rbgxP27brYrW3rVv3qrUqFlQDPDNn9X0W//aTnRN997FxbEXiiFZxJDzdu++o1VaHD59Ua4uXLKsG1QrjJ36cE82YeBrD07NnI612KM5UrRU9IAsJT4HPR3gKc9IeaqSO32f9IbOzEydPbdm6PTr6nlzs0auPrPDJ8HTjpi1v376VJW8SHuLLWtURq548fbpr9141cvP43yfU0af+NkNtePXqtdevX8vF6TNnyQoqPH327EOAKANT+z4Zntr394mTKql8Ghe3bftO0QzjgFPZCS9fvnwf5sbGin478texd+/eychVVhAdKPewecu2yVOni16Si2JvVt1op4tC24apRHXT5q0XLl6Si0mlmeJnp2iJrNOpa/fiJb+WwevtqCj5O00cNCYmxpIw40Fg8VLduveSlbdu36H9rQgtCE8BAHB32sNToVqN+urXSeWqteOevraq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)" + ], + "metadata": { + "id": "cJrlyZbLwQek" + } + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IzsyDXEWwPVt" + }, + "source": [ + "### šŸ”§ Install `dependencies`" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "os_vm0MkIxr9" + }, + "outputs": [], + "source": [ + "%%capture\n", + "!pip install langgraph langchain-scrapegraph langchain-openai \"langchain-community>=0.2.11\" tavily-python" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "apBsL-L2KzM7" + }, + "source": [ + "### šŸ”‘ Import `ScrapeGraph`, `Tavily` and `OpenAI` API keys" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ol9gQbAFkh9b" + }, + "source": [ + "You can find the Scrapegraph API key [here](https://dashboard.scrapegraphai.com/)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "sffqFG2EJ8bI", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "7e47aa4d-edca-48f2-df6e-bd7fafabfc9c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Scrapegraph API key:\n", + "Ā·Ā·Ā·Ā·Ā·Ā·Ā·Ā·Ā·Ā·\n", + "Tavily API key:\n", + "Ā·Ā·Ā·Ā·Ā·Ā·Ā·Ā·Ā·Ā·\n", + "OpenAI API key:\n", + "Ā·Ā·Ā·Ā·Ā·Ā·Ā·Ā·Ā·Ā·\n" + ] + } + ], + "source": [ + "import getpass\n", + "import os\n", + "\n", + "if not os.environ.get(\"SGAI_API_KEY\"):\n", + " os.environ[\"SGAI_API_KEY\"] = getpass.getpass(\"Scrapegraph API key:\\n\")\n", + "\n", + "if not os.environ.get(\"TAVILY_API_KEY\"):\n", + " os.environ[\"TAVILY_API_KEY\"] = getpass.getpass(\"Tavily API key:\\n\")\n", + "\n", + "if not os.environ.get(\"OPENAI_API_KEY\"):\n", + " os.environ[\"OPENAI_API_KEY\"] = getpass.getpass(\"OpenAI API key:\\n\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jnqMB2-xVYQ7" + }, + "source": [ + "### šŸ“ Defining an `Output Schema` for Webpage Content Extraction\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VZvxbjfXvbgd" + }, + "source": [ + "If you already know what you want to extract from a webpage, you can **define an output schema** using **Pydantic**. This schema acts as a \"blueprint\" that tells the AI how to structure the response.\n", + "\n", + "
\n", + " Pydantic Schema Quick Guide\n", + "\n", + "Types of Schemas \n", + "\n", + "1. Simple Schema \n", + "Use this when you want to extract straightforward information, such as a single piece of content. \n", + "\n", + "```python\n", + "from pydantic import BaseModel, Field\n", + "\n", + "# Simple schema for a single webpage\n", + "class PageInfoSchema(BaseModel):\n", + " title: str = Field(description=\"The title of the webpage\")\n", + " description: str = Field(description=\"The description of the webpage\")\n", + "\n", + "# Example Output JSON after AI extraction\n", + "{\n", + " \"title\": \"ScrapeGraphAI: The Best Content Extraction Tool\",\n", + " \"description\": \"ScrapeGraphAI provides powerful tools for structured content extraction from websites.\"\n", + "}\n", + "```\n", + "\n", + "2. Complex Schema (Nested) \n", + "If you need to extract structured information with multiple related items (like a list of repositories), you can **nest schemas**.\n", + "\n", + "```python\n", + "from pydantic import BaseModel, Field\n", + "from typing import List\n", + "\n", + "# Define a schema for a single repository\n", + "class RepositorySchema(BaseModel):\n", + " name: str = Field(description=\"Name of the repository (e.g., 'owner/repo')\")\n", + " description: str = Field(description=\"Description of the repository\")\n", + " stars: int = Field(description=\"Star count of the repository\")\n", + " forks: int = Field(description=\"Fork count of the repository\")\n", + " today_stars: int = Field(description=\"Stars gained today\")\n", + " language: str = Field(description=\"Programming language used\")\n", + "\n", + "# Define a schema for a list of repositories\n", + "class ListRepositoriesSchema(BaseModel):\n", + " repositories: List[RepositorySchema] = Field(description=\"List of GitHub trending repositories\")\n", + "\n", + "# Example Output JSON after AI extraction\n", + "{\n", + " \"repositories\": [\n", + " {\n", + " \"name\": \"google-gemini/cookbook\",\n", + " \"description\": \"Examples and guides for using the Gemini API\",\n", + " \"stars\": 8036,\n", + " \"forks\": 1001,\n", + " \"today_stars\": 649,\n", + " \"language\": \"Jupyter Notebook\"\n", + " },\n", + " {\n", + " \"name\": \"TEN-framework/TEN-Agent\",\n", + " \"description\": \"TEN Agent is a conversational AI powered by TEN, integrating Gemini 2.0 Multimodal Live API, OpenAI Realtime API, RTC, and more.\",\n", + " \"stars\": 3224,\n", + " \"forks\": 311,\n", + " \"today_stars\": 361,\n", + " \"language\": \"Python\"\n", + " }\n", + " ]\n", + "}\n", + "```\n", + "\n", + "Key Takeaways \n", + "- **Simple Schema**: Perfect for small, straightforward extractions. \n", + "- **Complex Schema**: Use nesting to extract lists or structured data, like \"a list of repositories.\" \n", + "\n", + "Both approaches give the AI a clear structure to follow, ensuring that the extracted content matches exactly what you need.\n", + "
\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "id": "dlrOEgZk_8V4" + }, + "outputs": [], + "source": [ + "from pydantic import BaseModel, Field\n", + "from typing import List\n", + "\n", + "# Schema for a single news item\n", + "class NewsItemSchema(BaseModel):\n", + " title: str = Field(description=\"Title of the news article\")\n", + " link: str = Field(description=\"URL to the news article\")\n", + " description: str = Field(description=\"Summary/description of the news article\")\n", + "\n", + "# Schema that contains a list of news items\n", + "class ListNewsSchema(BaseModel):\n", + " news: List[NewsItemSchema] = Field(description=\"List of news articles with their details\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cDGH0b2DkY63" + }, + "source": [ + "### šŸš€ Initialize `scrapegraph` and `tavily` tools and `langgraph` prebuilt agent and run the `extraction`" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "M1KSXffZopUD" + }, + "source": [ + "Here we use `SmartScraperTool` to extract structured data using AI from a webpage.\n", + "\n", + "\n", + "> If you already have an HTML file, you can upload it and use `LocalScraperTool` instead.\n", + "\n", + "You can find more info in the [official langchain documentation](https://python.langchain.com/docs/integrations/tools/scrapegraph/)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "id": "ySoE0Rowjgp1" + }, + "outputs": [], + "source": [ + "from langchain_scrapegraph.tools import SmartScraperTool\n", + "from langchain_community.tools import TavilySearchResults\n", + "\n", + "# Will automatically get SGAI_API_KEY from environment\n", + "# Initialization without output schema\n", + "# smartscraper_tool = SmartScraperTool()\n", + "\n", + "# Since we have defined an output schema, let's use it\n", + "# This will force the tool to have always the same output structure\n", + "smartscraper_tool = SmartScraperTool(llm_output_schema=ListNewsSchema)\n", + "\n", + "# Initialize tavily tool to look for URLs\n", + "tavily_tool = TavilySearchResults(\n", + " max_results=1,\n", + " name=\"urls_finder\",\n", + " description=\"Use this tool to find webpages urls that satisfy the user request\",\n", + ")\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "source": [ + "We then initialize the `llm model` we want to use in the agent\n", + "\n" + ], + "metadata": { + "id": "W54HVoYeiJbG" + } + }, + { + "cell_type": "code", + "source": [ + "# First we initialize the llm model we want to use.\n", + "from langchain_openai import ChatOpenAI\n", + "\n", + "llm_model = ChatOpenAI(model=\"gpt-4o\", temperature=0)" + ], + "metadata": { + "id": "ctrkEnltiBCD" + }, + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Here we use `create_react_agent` to quickly use one of the prebuilt agents from `langgraph.prebuilt` module\n", + "\n", + "You can find more info in the [official langgraph documentation](https://langchain-ai.github.io/langgraph/how-tos/create-react-agent/)\n", + "\n" + ], + "metadata": { + "id": "M0WY2Pa8Y8Pk" + } + }, + { + "cell_type": "code", + "source": [ + "from langgraph.prebuilt import create_react_agent\n", + "from langgraph.checkpoint.memory import MemorySaver\n", + "\n", + "# List of tools we want the agent to use\n", + "tools = [smartscraper_tool, tavily_tool]\n", + "\n", + "# We set up the agent's memory to review the different reasoning steps\n", + "memory = MemorySaver()\n", + "\n", + "# Add a configuration to specify where to store the graph states\n", + "config = {\"configurable\": {\"thread_id\": \"1\"}}\n", + "\n", + "# Initialize the ReAct agent\n", + "graph = create_react_agent(\n", + " model=llm_model,\n", + " tools=tools,\n", + " checkpointer=memory,\n", + ")" + ], + "metadata": { + "id": "Zo1BcIlHhcQP" + }, + "execution_count": 19, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Let's visualize the `graph`" + ], + "metadata": { + "id": "_UYcJ2Mxip5w" + } + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "id": "2FIKomclLNFx", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 350 + }, + "outputId": "3419b941-b409-499e-c1e3-54f2526d467f" + }, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {} + } + ], + "source": [ + "from IPython.display import Image, display\n", + "\n", + "display(Image(graph.get_graph().draw_mermaid_png()))" + ] + }, + { + "cell_type": "markdown", + "source": [ + "`Run the graph` and stream the agent reasoning.\n", + "\n", + "We are going to ask the agent to extract the content from a `specific webpage`." + ], + "metadata": { + "id": "cw-T5CYWkCEN" + } + }, + { + "cell_type": "code", + "source": [ + "# Inputs for the agent\n", + "inputs = {\"messages\": [(\"user\", \"Find latest news related to robotics December 2024\")]}\n", + "\n", + "# Run the graph\n", + "for event in graph.stream(inputs, config, stream_mode=\"values\"):\n", + " event[\"messages\"][-1].pretty_print()\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Qn1rC2y8kAe9", + "outputId": "15438700-b5ac-4439-b3b5-661de0bfef7c" + }, + "execution_count": 20, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "================================\u001b[1m Human Message \u001b[0m=================================\n", + "\n", + "Find latest news related to robotics December 2024\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "Tool Calls:\n", + " urls_finder (call_MpBC8kxJoRPFaBEoXLmSZ4RX)\n", + " Call ID: call_MpBC8kxJoRPFaBEoXLmSZ4RX\n", + " Args:\n", + " query: latest robotics news December 2024\n", + "=================================\u001b[1m Tool Message \u001b[0m=================================\n", + "Name: urls_finder\n", + "\n", + "[{\"url\": \"https://www.therobotreport.com/category/news/\", \"content\": \"The Robot Report Podcast reflects on the successes and challenges that defined the robotics industry in 2024. By The Robot Report Staff | December 19, ... Sanctuary AI showed its latest breakthrough with hydraulic actuation and precise in-hand manipulation to open up a range of high-value tasks. ... December 17, 2024. Slip Robotics picks up\"}]\n", + "==================================\u001b[1m Ai Message \u001b[0m==================================\n", + "Tool Calls:\n", + " SmartScraper (call_enar8djgNJfbcZAsp4nY1leM)\n", + " Call ID: call_enar8djgNJfbcZAsp4nY1leM\n", + " Args:\n", + " user_prompt: Extract the latest news articles related to robotics from December 2024, including the title, date, and a brief summary of each article.\n", + " website_url: https://www.therobotreport.com/category/news/\n", + "=================================\u001b[1m Tool Message \u001b[0m=================================\n", + "Name: SmartScraper\n", + "\n", + "{\"news\": [{\"title\": \"Matternet adds ANRA's UTM tech to expand drone delivery\", \"link\": \"https://www.therobotreport.com/matternet-adds-anras-utm-tech-to-expand-drone-delivery/\", \"description\": \"This latest partnership follows Matternetā€™s recent launch of a drone delivery operation in Silicon Valley.\"}, {\"title\": \"Helm.ai upgrades generative AI model to enrich autonomous driving data\", \"link\": \"https://www.therobotreport.com/helm-ai-upgrades-generative-ai-model-to-enrich-autonomous-driving-data/\", \"description\": \"Helm.ai said the new model enables automakers to generate diverse, realistic video data tailored to specific requirements.\"}, {\"title\": \"New research analyzes safety of Waymo robotaxis\", \"link\": \"https://www.therobotreport.com/new-research-analyzes-safety-of-waymo-robotaxis/\", \"description\": \"Waymo shared research with Swiss Re, one of the worldā€™s largest insurance providers, analyzing liability claims related to collisions from 25.3 million fully autonomous miles driven.\"}, {\"title\": \"From AI to humanoids: top robotics trends of 2024\", \"link\": \"https://www.therobotreport.com/from-ai-to-humanoids-top-robotics-trends-of-2024/\", \"description\": \"The Robot Report Podcast reflects on the successes and challenges that defined the robotics industry in 2024.\"}, {\"title\": \"Symbotic acquires OhmniLabs, maker of disinfection & telepresence robots\", \"link\": \"https://www.therobotreport.com/symbotic-buys-healthcare-robot-maker-ohmnilabs/\", \"description\": \"With the acquisition of OhmniLabs, Symbotic said it will be better positioned to expand its capabilities for supply chain customers.\"}, {\"title\": \"Sanctuary AI shows new dexterity with in-hand manipulation skills\", \"link\": \"https://www.therobotreport.com/sanctuary-ai-showing-new-dexterity-with-in-hand-manipulation-skills/\", \"description\": \"Sanctuary AI showed its latest breakthrough with hydraulic actuation and precise in-hand manipulation to open up a range of high-value tasks.\"}, {\"title\": \"Apptronik partners with Google DeepMind to advance humanoid robots with AI\", \"link\": \"https://www.therobotreport.com/apptronik-partners-google-deepmind-advance-humanoid-robots-ai/\", \"description\": \"Apptronik will combine its iterative design experience and Apollo humanoid in testing with Google DeepMindā€™s AI platforms.\"}, {\"title\": \"Alimak Group, Skyline Robotics create autonomous building maintenance unit\", \"link\": \"https://www.therobotreport.com/alimak-group-skyline-robotics-create-autonomous-building-maintenance-unit/\", \"description\": \"Skyline Robotics said the joint system can help the industry handle increasingly complex design challenges and labor shortages.\"}, {\"title\": \"DoorDash partners with Wing to launch drone deliveries in Dallas-Fort Worth mall\", \"link\": \"https://www.therobotreport.com/doordash-partners-wing-launch-drone-deliveries-dallas-fort-worth-mall/\", \"description\": \"Beginning today, when certain DoorDash customers in Texas select drone delivery, their order will be delivered via Wing.\"}, {\"title\": \"Mcity says open-source digital twin enables cheaper autonomous vehicle testing\", \"link\": \"https://www.therobotreport.com/mcity-open-source-digital-twin-enables-cheaper-av-testing/\", \"description\": \"The Mcity test facility has been open since 2015, and autonomous vehicle developers can now test their technology from anywhere.\"}, {\"title\": \"2024: The year humanoids woke up\", \"link\": \"https://www.therobotreport.com/2024-the-year-humanoids-woke-up/\", \"description\": \"Humanoids empowered by AI are coming, and the long-term market could be huge, Persona AIā€™s Nic Radford tells columnist Oliver Mitchell.\"}, {\"title\": \"Waymo robotaxis head to Tokyo with the help of Nihan Kotsu and GO\", \"link\": \"https://www.therobotreport.com/waymo-is-heading-to-tokyo-with-the-help-of-nihan-kotsu-and-go/\", \"description\": \"The first all-electric Jaguar I-PACEs for Waymo will arrive in Tokyo in early 2025 and will initially be driven by safety drivers.\"}, {\"title\": \"Realbotix earns Amazon development subsidy; partners with UOL\", \"link\": \"https://www.therobotreport.com/realbotix-earns-amazon-development-subsidy-partners-with-uol/\", \"description\": \"Realbotix plans to use the funding to directly support the completion of initiatives including the development of Robot Controller 3.0.\"}, {\"title\": \"Eyeonic Trace Laser Line Scanner offers sub-millimeter depth perception\", \"link\": \"https://www.therobotreport.com/eyeonic-trace-laser-line-scanner-offers-sub-millimeter-depth-perception/\", \"description\": \"Prototype of the Eyeonic Trace Laser Line Scanner, designed to provide subā€“millimeter depth precision for next generation warehouse automation, robotics, farming, construction and manufacturing applications.\"}, {\"title\": \"Slip Robotics picks up $28M for trailer loading/unloading robots\", \"link\": \"https://www.therobotreport.com/slip-robotics-picks-up-28m-for-trailer-loading-unloading-robots/\", \"description\": \"Slip Robotics plans to use its latest funding to continue RɦD on its trailer loading/unloading robots as it serves commercial customers.\"}, {\"title\": \"Jetson Orin Nano Super developer kit available from NVIDIA\", \"link\": \"https://www.therobotreport.com/jetson-orin-nano-super-developer-kit-available/\", \"description\": \"NVIDIA released Jetson Orin Nano Super Developer Kit, lowered the price and dropped an update for existing Nano users.\"}, {\"title\": \"Mbodi and T-Robotics are ABB Robotics' AI Startup Challenge winners\", \"link\": \"https://www.therobotreport.com/mbodi-and-t-robotics-are-abb-robotics-ai-startup-challenge-winners/\", \"description\": \"ABB Robotics is working with Mbodi and T-Robotics to make industrial robots easier to program and enable them to learn on their own.\"}, {\"title\": \"IEEE Awards announce Daniela Rus as 2025 Edison Medal recipient\", \"link\": \"https://www.therobotreport.com/ieee-awards-announce-daniela-rus-2025-edison-medal-recipient/\", \"description\": \"Currently the director of MIT CSAIL, Daniela Rusā€™ research interests include robotics, mobile computing, and data science.\"}, {\"title\": \"Eureka Robotics raises $10.5M to scale its vision systems in the U.S.\", \"link\": \"https://www.therobotreport.com/eureka-robotics-raises-10-5m-scale-its-vision-systems-in-u-s/\", \"description\": \"Eureka Robotics provides software and system to automate tasks that require high accuracy and high agility.\"}, {\"title\": \"Vision-guided cobot automates paint process for DENSO\", \"link\": \"https://www.therobotreport.com/denso-automates-paint-process-vision-guided-cobot/\", \"description\": \"DENSO deployed a 3D-vision-guided cobot with AI-based motion planning and control software to relieve employees of strenuous, tedious tasks.\"}, {\"title\": \"Brushed DC motors find use in robot applications, humanoid development\", \"link\": \"https://www.therobotreport.com/brushed-dc-motors-find-use-in-robot-applications-humanoid-development/\", \"description\": \"Recent research from Portescap found that brushed DC motors best fulfill the high requirements of humanoid robots.\"}, {\"title\": \"Diversity and inclusion can accelerate robotics innovation, finds Max Planck study\", \"link\": \"https://www.therobotreport.com/diversity-and-inclusion-can-accelerate-robotic-innovation-finds-max-planck-study/\", \"description\": \"The study outlined seven distinct benefits that diversity and inclusion bring to robotics research and innovation.\"}, {\"title\": \"Advanced Precision Strain Wave Gear Offers Torque Sensing to Robots\", \"link\": \"https://www.therobotreport.com/advanced-precision-strain-wave-gear-offers-torque-sensing-to-robots/\", \"description\": \"NA\"}, {\"title\": \"Innovative motion solutions are supporting the latest trends in robotics\", \"link\": \"https://www.therobotreport.com/innovative-motion-solutions-are-supporting-the-latest-trends-in-robotics/\", \"description\": \"NA\"}, {\"title\": \"Renishaw and RLS help to drive a robot revolution\", \"link\": \"https://www.therobotreport.com/renishaw-and-rls-help-to-drive-a-robot-revolution/\", \"description\": \"NA\"}, {\"title\": \"Ask an Expert Podcast: flexible conveyance for materials handling\", \"link\": \"https://www.therobotreport.com/ask-an-expert-flexible-conveyors-for-materials-handling/\", \"description\": \"NA\"}, {\"title\": \"Hop Onboard the AMR Revolution: Vision & Localization Unleashed\", \"link\": \"https://www.therobotreport.com/hop-onboard-the-amr-revolution-vision-localization-unleashed/\", \"description\": \"NA\"}]}\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# get last message (assuming the last one is the Smartscraper tool response)\n", + "result = graph.get_state(config).values[\"messages\"][-1].content\n", + "\n", + "import json\n", + "# convert string into json\n", + "result = json.loads(result)" + ], + "metadata": { + "id": "_12IqhcrkiHC" + }, + "execution_count": 21, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "YZz1bqCIpoL8" + }, + "source": [ + "Print the response" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "F1VfD8B4LPc8", + "outputId": "3aebeb27-c529-4bd6-e3a4-6318f9dabc0b" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "{\n", + " \"news\": [\n", + " {\n", + " \"title\": \"Matternet adds ANRA's UTM tech to expand drone delivery\",\n", + " \"link\": \"https://www.therobotreport.com/matternet-adds-anras-utm-tech-to-expand-drone-delivery/\",\n", + " \"description\": \"This latest partnership follows Matternet\\u2019s recent launch of a drone delivery operation in Silicon Valley.\"\n", + " },\n", + " {\n", + " \"title\": \"Helm.ai upgrades generative AI model to enrich autonomous driving data\",\n", + " \"link\": \"https://www.therobotreport.com/helm-ai-upgrades-generative-ai-model-to-enrich-autonomous-driving-data/\",\n", + " \"description\": \"Helm.ai said the new model enables automakers to generate diverse, realistic video data tailored to specific requirements.\"\n", + " },\n", + " {\n", + " \"title\": \"New research analyzes safety of Waymo robotaxis\",\n", + " \"link\": \"https://www.therobotreport.com/new-research-analyzes-safety-of-waymo-robotaxis/\",\n", + " \"description\": \"Waymo shared research with Swiss Re, one of the world\\u2019s largest insurance providers, analyzing liability claims related to collisions from 25.3 million fully autonomous miles driven.\"\n", + " },\n", + " {\n", + " \"title\": \"From AI to humanoids: top robotics trends of 2024\",\n", + " \"link\": \"https://www.therobotreport.com/from-ai-to-humanoids-top-robotics-trends-of-2024/\",\n", + " \"description\": \"The Robot Report Podcast reflects on the successes and challenges that defined the robotics industry in 2024.\"\n", + " },\n", + " {\n", + " \"title\": \"Symbotic acquires OhmniLabs, maker of disinfection & telepresence robots\",\n", + " \"link\": \"https://www.therobotreport.com/symbotic-buys-healthcare-robot-maker-ohmnilabs/\",\n", + " \"description\": \"With the acquisition of OhmniLabs, Symbotic said it will be better positioned to expand its capabilities for supply chain customers.\"\n", + " },\n", + " {\n", + " \"title\": \"Sanctuary AI shows new dexterity with in-hand manipulation skills\",\n", + " \"link\": \"https://www.therobotreport.com/sanctuary-ai-showing-new-dexterity-with-in-hand-manipulation-skills/\",\n", + " \"description\": \"Sanctuary AI showed its latest breakthrough with hydraulic actuation and precise in-hand manipulation to open up a range of high-value tasks.\"\n", + " },\n", + " {\n", + " \"title\": \"Apptronik partners with Google DeepMind to advance humanoid robots with AI\",\n", + " \"link\": \"https://www.therobotreport.com/apptronik-partners-google-deepmind-advance-humanoid-robots-ai/\",\n", + " \"description\": \"Apptronik will combine its iterative design experience and Apollo humanoid in testing with Google DeepMind\\u2019s AI platforms.\"\n", + " },\n", + " {\n", + " \"title\": \"Alimak Group, Skyline Robotics create autonomous building maintenance unit\",\n", + " \"link\": \"https://www.therobotreport.com/alimak-group-skyline-robotics-create-autonomous-building-maintenance-unit/\",\n", + " \"description\": \"Skyline Robotics said the joint system can help the industry handle increasingly complex design challenges and labor shortages.\"\n", + " },\n", + " {\n", + " \"title\": \"DoorDash partners with Wing to launch drone deliveries in Dallas-Fort Worth mall\",\n", + " \"link\": \"https://www.therobotreport.com/doordash-partners-wing-launch-drone-deliveries-dallas-fort-worth-mall/\",\n", + " \"description\": \"Beginning today, when certain DoorDash customers in Texas select drone delivery, their order will be delivered via Wing.\"\n", + " },\n", + " {\n", + " \"title\": \"Mcity says open-source digital twin enables cheaper autonomous vehicle testing\",\n", + " \"link\": \"https://www.therobotreport.com/mcity-open-source-digital-twin-enables-cheaper-av-testing/\",\n", + " \"description\": \"The Mcity test facility has been open since 2015, and autonomous vehicle developers can now test their technology from anywhere.\"\n", + " },\n", + " {\n", + " \"title\": \"2024: The year humanoids woke up\",\n", + " \"link\": \"https://www.therobotreport.com/2024-the-year-humanoids-woke-up/\",\n", + " \"description\": \"Humanoids empowered by AI are coming, and the long-term market could be huge, Persona AI\\u2019s Nic Radford tells columnist Oliver Mitchell.\"\n", + " },\n", + " {\n", + " \"title\": \"Waymo robotaxis head to Tokyo with the help of Nihan Kotsu and GO\",\n", + " \"link\": \"https://www.therobotreport.com/waymo-is-heading-to-tokyo-with-the-help-of-nihan-kotsu-and-go/\",\n", + " \"description\": \"The first all-electric Jaguar I-PACEs for Waymo will arrive in Tokyo in early 2025 and will initially be driven by safety drivers.\"\n", + " },\n", + " {\n", + " \"title\": \"Realbotix earns Amazon development subsidy; partners with UOL\",\n", + " \"link\": \"https://www.therobotreport.com/realbotix-earns-amazon-development-subsidy-partners-with-uol/\",\n", + " \"description\": \"Realbotix plans to use the funding to directly support the completion of initiatives including the development of Robot Controller 3.0.\"\n", + " },\n", + " {\n", + " \"title\": \"Eyeonic Trace Laser Line Scanner offers sub-millimeter depth perception\",\n", + " \"link\": \"https://www.therobotreport.com/eyeonic-trace-laser-line-scanner-offers-sub-millimeter-depth-perception/\",\n", + " \"description\": \"Prototype of the Eyeonic Trace Laser Line Scanner, designed to provide sub\\u2013millimeter depth precision for next generation warehouse automation, robotics, farming, construction and manufacturing applications.\"\n", + " },\n", + " {\n", + " \"title\": \"Slip Robotics picks up $28M for trailer loading/unloading robots\",\n", + " \"link\": \"https://www.therobotreport.com/slip-robotics-picks-up-28m-for-trailer-loading-unloading-robots/\",\n", + " \"description\": \"Slip Robotics plans to use its latest funding to continue R\\u0266D on its trailer loading/unloading robots as it serves commercial customers.\"\n", + " },\n", + " {\n", + " \"title\": \"Jetson Orin Nano Super developer kit available from NVIDIA\",\n", + " \"link\": \"https://www.therobotreport.com/jetson-orin-nano-super-developer-kit-available/\",\n", + " \"description\": \"NVIDIA released Jetson Orin Nano Super Developer Kit, lowered the price and dropped an update for existing Nano users.\"\n", + " },\n", + " {\n", + " \"title\": \"Mbodi and T-Robotics are ABB Robotics' AI Startup Challenge winners\",\n", + " \"link\": \"https://www.therobotreport.com/mbodi-and-t-robotics-are-abb-robotics-ai-startup-challenge-winners/\",\n", + " \"description\": \"ABB Robotics is working with Mbodi and T-Robotics to make industrial robots easier to program and enable them to learn on their own.\"\n", + " },\n", + " {\n", + " \"title\": \"IEEE Awards announce Daniela Rus as 2025 Edison Medal recipient\",\n", + " \"link\": \"https://www.therobotreport.com/ieee-awards-announce-daniela-rus-2025-edison-medal-recipient/\",\n", + " \"description\": \"Currently the director of MIT CSAIL, Daniela Rus\\u2019 research interests include robotics, mobile computing, and data science.\"\n", + " },\n", + " {\n", + " \"title\": \"Eureka Robotics raises $10.5M to scale its vision systems in the U.S.\",\n", + " \"link\": \"https://www.therobotreport.com/eureka-robotics-raises-10-5m-scale-its-vision-systems-in-u-s/\",\n", + " \"description\": \"Eureka Robotics provides software and system to automate tasks that require high accuracy and high agility.\"\n", + " },\n", + " {\n", + " \"title\": \"Vision-guided cobot automates paint process for DENSO\",\n", + " \"link\": \"https://www.therobotreport.com/denso-automates-paint-process-vision-guided-cobot/\",\n", + " \"description\": \"DENSO deployed a 3D-vision-guided cobot with AI-based motion planning and control software to relieve employees of strenuous, tedious tasks.\"\n", + " },\n", + " {\n", + " \"title\": \"Brushed DC motors find use in robot applications, humanoid development\",\n", + " \"link\": \"https://www.therobotreport.com/brushed-dc-motors-find-use-in-robot-applications-humanoid-development/\",\n", + " \"description\": \"Recent research from Portescap found that brushed DC motors best fulfill the high requirements of humanoid robots.\"\n", + " },\n", + " {\n", + " \"title\": \"Diversity and inclusion can accelerate robotics innovation, finds Max Planck study\",\n", + " \"link\": \"https://www.therobotreport.com/diversity-and-inclusion-can-accelerate-robotic-innovation-finds-max-planck-study/\",\n", + " \"description\": \"The study outlined seven distinct benefits that diversity and inclusion bring to robotics research and innovation.\"\n", + " },\n", + " {\n", + " \"title\": \"Advanced Precision Strain Wave Gear Offers Torque Sensing to Robots\",\n", + " \"link\": \"https://www.therobotreport.com/advanced-precision-strain-wave-gear-offers-torque-sensing-to-robots/\",\n", + " \"description\": \"NA\"\n", + " },\n", + " {\n", + " \"title\": \"Innovative motion solutions are supporting the latest trends in robotics\",\n", + " \"link\": \"https://www.therobotreport.com/innovative-motion-solutions-are-supporting-the-latest-trends-in-robotics/\",\n", + " \"description\": \"NA\"\n", + " },\n", + " {\n", + " \"title\": \"Renishaw and RLS help to drive a robot revolution\",\n", + " \"link\": \"https://www.therobotreport.com/renishaw-and-rls-help-to-drive-a-robot-revolution/\",\n", + " \"description\": \"NA\"\n", + " },\n", + " {\n", + " \"title\": \"Ask an Expert Podcast: flexible conveyance for materials handling\",\n", + " \"link\": \"https://www.therobotreport.com/ask-an-expert-flexible-conveyors-for-materials-handling/\",\n", + " \"description\": \"NA\"\n", + " },\n", + " {\n", + " \"title\": \"Hop Onboard the AMR Revolution: Vision & Localization Unleashed\",\n", + " \"link\": \"https://www.therobotreport.com/hop-onboard-the-amr-revolution-vision-localization-unleashed/\",\n", + " \"description\": \"NA\"\n", + " }\n", + " ]\n", + "}\n" + ] + } + ], + "source": [ + "print(json.dumps(result, indent=2))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2as65QLypwdb" + }, + "source": [ + "### šŸ’¾ Save the output to a `CSV` file" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HTLVFgbVLLBR" + }, + "source": [ + "Let's create a pandas dataframe and show the table with the extracted content" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 896 + }, + "id": "1lS9O1KOI51y", + "outputId": "76fb52bc-738a-44b4-ed34-13ce5ac9b26c" + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " title \\\n", + "0 Matternet adds ANRA's UTM tech to expand drone... \n", + "1 Helm.ai upgrades generative AI model to enrich... \n", + "2 New research analyzes safety of Waymo robotaxis \n", + "3 From AI to humanoids: top robotics trends of 2024 \n", + "4 Symbotic acquires OhmniLabs, maker of disinfec... \n", + "5 Sanctuary AI shows new dexterity with in-hand ... \n", + "6 Apptronik partners with Google DeepMind to adv... \n", + "7 Alimak Group, Skyline Robotics create autonomo... \n", + "8 DoorDash partners with Wing to launch drone de... \n", + "9 Mcity says open-source digital twin enables ch... \n", + "10 2024: The year humanoids woke up \n", + "11 Waymo robotaxis head to Tokyo with the help of... \n", + "12 Realbotix earns Amazon development subsidy; pa... \n", + "13 Eyeonic Trace Laser Line Scanner offers sub-mi... \n", + "14 Slip Robotics picks up $28M for trailer loadin... \n", + "15 Jetson Orin Nano Super developer kit available... \n", + "16 Mbodi and T-Robotics are ABB Robotics' AI Star... \n", + "17 IEEE Awards announce Daniela Rus as 2025 Ediso... \n", + "18 Eureka Robotics raises $10.5M to scale its vis... \n", + "19 Vision-guided cobot automates paint process fo... \n", + "20 Brushed DC motors find use in robot applicatio... \n", + "21 Diversity and inclusion can accelerate robotic... \n", + "22 Advanced Precision Strain Wave Gear Offers Tor... \n", + "23 Innovative motion solutions are supporting the... \n", + "24 Renishaw and RLS help to drive a robot revolution \n", + "25 Ask an Expert Podcast: flexible conveyance for... \n", + "26 Hop Onboard the AMR Revolution: Vision & Local... \n", + "\n", + " link \\\n", + "0 https://www.therobotreport.com/matternet-adds-... \n", + "1 https://www.therobotreport.com/helm-ai-upgrade... \n", + "2 https://www.therobotreport.com/new-research-an... \n", + "3 https://www.therobotreport.com/from-ai-to-huma... \n", + "4 https://www.therobotreport.com/symbotic-buys-h... \n", + "5 https://www.therobotreport.com/sanctuary-ai-sh... \n", + "6 https://www.therobotreport.com/apptronik-partn... \n", + "7 https://www.therobotreport.com/alimak-group-sk... \n", + "8 https://www.therobotreport.com/doordash-partne... \n", + "9 https://www.therobotreport.com/mcity-open-sour... \n", + "10 https://www.therobotreport.com/2024-the-year-h... \n", + "11 https://www.therobotreport.com/waymo-is-headin... \n", + "12 https://www.therobotreport.com/realbotix-earns... \n", + "13 https://www.therobotreport.com/eyeonic-trace-l... \n", + "14 https://www.therobotreport.com/slip-robotics-p... \n", + "15 https://www.therobotreport.com/jetson-orin-nan... \n", + "16 https://www.therobotreport.com/mbodi-and-t-rob... \n", + "17 https://www.therobotreport.com/ieee-awards-ann... \n", + "18 https://www.therobotreport.com/eureka-robotics... \n", + "19 https://www.therobotreport.com/denso-automates... \n", + "20 https://www.therobotreport.com/brushed-dc-moto... \n", + "21 https://www.therobotreport.com/diversity-and-i... \n", + "22 https://www.therobotreport.com/advanced-precis... \n", + "23 https://www.therobotreport.com/innovative-moti... \n", + "24 https://www.therobotreport.com/renishaw-and-rl... \n", + "25 https://www.therobotreport.com/ask-an-expert-f... \n", + "26 https://www.therobotreport.com/hop-onboard-the... \n", + "\n", + " description \n", + "0 This latest partnership follows Matternetā€™s re... \n", + "1 Helm.ai said the new model enables automakers ... \n", + "2 Waymo shared research with Swiss Re, one of th... \n", + "3 The Robot Report Podcast reflects on the succe... \n", + "4 With the acquisition of OhmniLabs, Symbotic sa... \n", + "5 Sanctuary AI showed its latest breakthrough wi... \n", + "6 Apptronik will combine its iterative design ex... \n", + "7 Skyline Robotics said the joint system can hel... \n", + "8 Beginning today, when certain DoorDash custome... \n", + "9 The Mcity test facility has been open since 20... \n", + "10 Humanoids empowered by AI are coming, and the ... \n", + "11 The first all-electric Jaguar I-PACEs for Waym... \n", + "12 Realbotix plans to use the funding to directly... \n", + "13 Prototype of the Eyeonic Trace Laser Line Scan... \n", + "14 Slip Robotics plans to use its latest funding ... \n", + "15 NVIDIA released Jetson Orin Nano Super Develop... \n", + "16 ABB Robotics is working with Mbodi and T-Robot... \n", + "17 Currently the director of MIT CSAIL, Daniela R... \n", + "18 Eureka Robotics provides software and system t... \n", + "19 DENSO deployed a 3D-vision-guided cobot with A... \n", + "20 Recent research from Portescap found that brus... \n", + "21 The study outlined seven distinct benefits tha... \n", + "22 NA \n", + "23 NA \n", + "24 NA \n", + "25 NA \n", + "26 NA " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
titlelinkdescription
0Matternet adds ANRA's UTM tech to expand drone...https://www.therobotreport.com/matternet-adds-...This latest partnership follows Matternetā€™s re...
1Helm.ai upgrades generative AI model to enrich...https://www.therobotreport.com/helm-ai-upgrade...Helm.ai said the new model enables automakers ...
2New research analyzes safety of Waymo robotaxishttps://www.therobotreport.com/new-research-an...Waymo shared research with Swiss Re, one of th...
3From AI to humanoids: top robotics trends of 2024https://www.therobotreport.com/from-ai-to-huma...The Robot Report Podcast reflects on the succe...
4Symbotic acquires OhmniLabs, maker of disinfec...https://www.therobotreport.com/symbotic-buys-h...With the acquisition of OhmniLabs, Symbotic sa...
5Sanctuary AI shows new dexterity with in-hand ...https://www.therobotreport.com/sanctuary-ai-sh...Sanctuary AI showed its latest breakthrough wi...
6Apptronik partners with Google DeepMind to adv...https://www.therobotreport.com/apptronik-partn...Apptronik will combine its iterative design ex...
7Alimak Group, Skyline Robotics create autonomo...https://www.therobotreport.com/alimak-group-sk...Skyline Robotics said the joint system can hel...
8DoorDash partners with Wing to launch drone de...https://www.therobotreport.com/doordash-partne...Beginning today, when certain DoorDash custome...
9Mcity says open-source digital twin enables ch...https://www.therobotreport.com/mcity-open-sour...The Mcity test facility has been open since 20...
102024: The year humanoids woke uphttps://www.therobotreport.com/2024-the-year-h...Humanoids empowered by AI are coming, and the ...
11Waymo robotaxis head to Tokyo with the help of...https://www.therobotreport.com/waymo-is-headin...The first all-electric Jaguar I-PACEs for Waym...
12Realbotix earns Amazon development subsidy; pa...https://www.therobotreport.com/realbotix-earns...Realbotix plans to use the funding to directly...
13Eyeonic Trace Laser Line Scanner offers sub-mi...https://www.therobotreport.com/eyeonic-trace-l...Prototype of the Eyeonic Trace Laser Line Scan...
14Slip Robotics picks up $28M for trailer loadin...https://www.therobotreport.com/slip-robotics-p...Slip Robotics plans to use its latest funding ...
15Jetson Orin Nano Super developer kit available...https://www.therobotreport.com/jetson-orin-nan...NVIDIA released Jetson Orin Nano Super Develop...
16Mbodi and T-Robotics are ABB Robotics' AI Star...https://www.therobotreport.com/mbodi-and-t-rob...ABB Robotics is working with Mbodi and T-Robot...
17IEEE Awards announce Daniela Rus as 2025 Ediso...https://www.therobotreport.com/ieee-awards-ann...Currently the director of MIT CSAIL, Daniela R...
18Eureka Robotics raises $10.5M to scale its vis...https://www.therobotreport.com/eureka-robotics...Eureka Robotics provides software and system t...
19Vision-guided cobot automates paint process fo...https://www.therobotreport.com/denso-automates...DENSO deployed a 3D-vision-guided cobot with A...
20Brushed DC motors find use in robot applicatio...https://www.therobotreport.com/brushed-dc-moto...Recent research from Portescap found that brus...
21Diversity and inclusion can accelerate robotic...https://www.therobotreport.com/diversity-and-i...The study outlined seven distinct benefits tha...
22Advanced Precision Strain Wave Gear Offers Tor...https://www.therobotreport.com/advanced-precis...NA
23Innovative motion solutions are supporting the...https://www.therobotreport.com/innovative-moti...NA
24Renishaw and RLS help to drive a robot revolutionhttps://www.therobotreport.com/renishaw-and-rl...NA
25Ask an Expert Podcast: flexible conveyance for...https://www.therobotreport.com/ask-an-expert-f...NA
26Hop Onboard the AMR Revolution: Vision & Local...https://www.therobotreport.com/hop-onboard-the...NA
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + " \n", + " \n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "dataframe", + "variable_name": "df", + "summary": "{\n \"name\": \"df\",\n \"rows\": 27,\n \"fields\": [\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 27,\n \"samples\": [\n \"DoorDash partners with Wing to launch drone deliveries in Dallas-Fort Worth mall\",\n \"Eyeonic Trace Laser Line Scanner offers sub-millimeter depth perception\",\n \"Mcity says open-source digital twin enables cheaper autonomous vehicle testing\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"link\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 27,\n \"samples\": [\n \"https://www.therobotreport.com/doordash-partners-wing-launch-drone-deliveries-dallas-fort-worth-mall/\",\n \"https://www.therobotreport.com/eyeonic-trace-laser-line-scanner-offers-sub-millimeter-depth-perception/\",\n \"https://www.therobotreport.com/mcity-open-source-digital-twin-enables-cheaper-av-testing/\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"description\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 23,\n \"samples\": [\n \"NVIDIA released Jetson Orin Nano Super Developer Kit, lowered the price and dropped an update for existing Nano users.\",\n \"The Mcity test facility has been open since 2015, and autonomous vehicle developers can now test their technology from anywhere.\",\n \"This latest partnership follows Matternet\\u2019s recent launch of a drone delivery operation in Silicon Valley.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" + } + }, + "metadata": {}, + "execution_count": 24 + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "# Convert dictionary to DataFrame\n", + "df = pd.DataFrame(result[\"news\"])\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "v0CBYVk7qA5Z" + }, + "source": [ + "Save it to CSV" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "BtEbB9pmQGhO", + "outputId": "fe011a56-b28a-4e28-f2d1-4580c8a65596" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Data saved to news.csv\n" + ] + } + ], + "source": [ + "# Save the DataFrame to a CSV file\n", + "csv_file = \"news.csv\"\n", + "df.to_csv(csv_file, index=False)\n", + "print(f\"Data saved to {csv_file}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-1SZT8VzTZNd" + }, + "source": [ + "## šŸ”— Resources" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dUi2LtMLRDDR" + }, + "source": [ + "\n", + "

\n", + " \"ScrapeGraph\n", + "

\n", + "\n", + "\n", + "- šŸš€ **Get your API Key:** [ScrapeGraphAI Dashboard](https://dashboard.scrapegraphai.com) \n", + "- šŸ™ **GitHub:** [ScrapeGraphAI GitHub](https://github.com/scrapegraphai) \n", + "- šŸ’¼ **LinkedIn:** [ScrapeGraphAI LinkedIn](https://www.linkedin.com/company/scrapegraphai/) \n", + "- šŸ¦ **Twitter:** [ScrapeGraphAI Twitter](https://twitter.com/scrapegraphai) \n", + "- šŸ’¬ **Discord:** [Join our Discord Community](https://discord.gg/uJN7TYcpNa) \n", + "- šŸ¦œ **Langchain:** [ScrapeGraph docs](https://python.langchain.com/docs/integrations/tools/scrapegraph/)\n", + "\n", + "Made with ā¤ļø by the [ScrapeGraphAI](https://scrapegraphai.com) Team \n" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file