Upload 2 files
Browse files- Q&A_PDFquery_Llama2_Pinecode_Langchain.ipynb +0 -0
- main.ipynb +110 -0
Q&A_PDFquery_Llama2_Pinecode_Langchain.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
main.ipynb
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cells": [
|
| 3 |
+
{
|
| 4 |
+
"cell_type": "code",
|
| 5 |
+
"execution_count": 1,
|
| 6 |
+
"metadata": {},
|
| 7 |
+
"outputs": [],
|
| 8 |
+
"source": [
|
| 9 |
+
"from langchain_community.document_loaders import PyPDFLoader\n",
|
| 10 |
+
"\n",
|
| 11 |
+
"loader = PyPDFLoader(\"C:\\\\Desktop_folders\\\\Coding\\\\Projects\\\\Doc_LLM\\\\2 (2).pdf\")\n",
|
| 12 |
+
"pages = loader.load_and_split()"
|
| 13 |
+
]
|
| 14 |
+
},
|
| 15 |
+
{
|
| 16 |
+
"cell_type": "code",
|
| 17 |
+
"execution_count": 2,
|
| 18 |
+
"metadata": {},
|
| 19 |
+
"outputs": [
|
| 20 |
+
{
|
| 21 |
+
"data": {
|
| 22 |
+
"text/plain": [
|
| 23 |
+
"Document(page_content='========================================================================================================================\\nPANEL/TEST RESULT ABNORMAL UNITS REFERENCE RANGE\\n=================================================================================================================== \\nCOMPLETE BLOOD COUNT (CBC)\\nWBC 4.1 K/uL 3.5-10.8\\nRBC 3.78 L 10 /uL 3.80-5.22\\nHGB 11.6 L g/dL 12.0-16.0\\nHCT 36.8 % 35.0-47.0\\nMCV 97.4 fL 81.6-98.3\\nMCH 30.7 pg 26.0-35.0\\nMCHC 31.5 g/dL 29.6-38.0\\nRDW 14.0 % 11.5-15.5\\nMPV 10.7 fL 9.0-12.6\\nPlatelets 253 K/uL 130-400\\nAUTOMATED DIFFERENTIAL COUNT\\nNeutrophils 47.9 % 40.0-74.0\\nNeutrophils# 2.0 10 /uL 1.9-8.0\\nLymphocytes 29.6 % 19.0-48.0\\nLymphocytes# 1.2 10 /uL 0.9-5.2\\nMonocytes 16.0 H % 0.0-12.0\\nMonocytes# 0.7 10 /uL 0.2-1.0\\nEosinophils 5.3 % 0.0-7.0\\nEosinophils# 0.22 10 /uL 0.00-0.80\\nBasophils 0.5 % 0.0-2.0\\nBasophils# 0.02 10 /uL 0.00-0.20\\nMANUAL DIFFERENTIAL COUNT\\nNeutrophils 66 % 40-74\\nLymphocytes 22 % 19-48\\nMonocytes 10 % 0-12\\nEosinophils 2 % 0-7\\nBasophils 0 % 0-2\\nRBC Morphology Normal Morphology Seen\\nWBC Morphology Normal Morphology Seen\\nPlatelets Morph. Normal Morphology Seen\\nERYTHROCYTE SEDIMENTATION RATE\\nSed Rate (ESR) 42 H mm/hr 0-20\\nCHEMISTRY STUDIES\\n========================================================================================================================\\nPANEL/TEST RESULT ABNORMAL UNITS REFERENCE RANGE\\n===================================================================================================================\\nSodium 141 mmol/L 135-146\\nPotassium 4.4 mmol/L 3.5-5.5\\nChloride 104 mmol/L 98-112\\nCO2 25 mmol/L 22-29\\nAnion Gap 16.4 mEq/L 0.0-25.0\\nGlucose, Fasting 103 H mg/dL 65-99\\nBUN 11 mg/dL 6-23\\n6\\n3\\n3\\n3\\n3\\n3', metadata={'source': 'C:\\\\Desktop_folders\\\\Coding\\\\Projects\\\\Doc_LLM\\\\2 (2).pdf', 'page': 0})"
|
| 24 |
+
]
|
| 25 |
+
},
|
| 26 |
+
"execution_count": 2,
|
| 27 |
+
"metadata": {},
|
| 28 |
+
"output_type": "execute_result"
|
| 29 |
+
}
|
| 30 |
+
],
|
| 31 |
+
"source": [
|
| 32 |
+
"pages[0]"
|
| 33 |
+
]
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"cell_type": "code",
|
| 37 |
+
"execution_count": 3,
|
| 38 |
+
"metadata": {},
|
| 39 |
+
"outputs": [],
|
| 40 |
+
"source": [
|
| 41 |
+
"import os\n",
|
| 42 |
+
"os.environ['OPENAI_API_KEY'] ='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'"
|
| 43 |
+
]
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"cell_type": "code",
|
| 47 |
+
"execution_count": 4,
|
| 48 |
+
"metadata": {},
|
| 49 |
+
"outputs": [
|
| 50 |
+
{
|
| 51 |
+
"ename": "ImportError",
|
| 52 |
+
"evalue": "cannot import name 'BaseTransport' from 'httpx' (c:\\Python3.11\\Lib\\site-packages\\httpx\\__init__.py)",
|
| 53 |
+
"output_type": "error",
|
| 54 |
+
"traceback": [
|
| 55 |
+
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
| 56 |
+
"\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)",
|
| 57 |
+
"Cell \u001b[1;32mIn[4], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlangchain_community\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mvectorstores\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m FAISS\n\u001b[1;32m----> 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlangchain_openai\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m OpenAIEmbeddings\n\u001b[0;32m 5\u001b[0m faiss_index \u001b[38;5;241m=\u001b[39m FAISS\u001b[38;5;241m.\u001b[39mfrom_documents(pages, OpenAIEmbeddings())\n\u001b[0;32m 6\u001b[0m docs \u001b[38;5;241m=\u001b[39m faiss_index\u001b[38;5;241m.\u001b[39msimilarity_search(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mHow will the community be engaged?\u001b[39m\u001b[38;5;124m\"\u001b[39m, k\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m)\n",
|
| 58 |
+
"File \u001b[1;32mc:\\Python3.11\\Lib\\site-packages\\langchain_openai\\__init__.py:1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlangchain_openai\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mchat_models\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[0;32m 2\u001b[0m AzureChatOpenAI,\n\u001b[0;32m 3\u001b[0m ChatOpenAI,\n\u001b[0;32m 4\u001b[0m )\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlangchain_openai\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01membeddings\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[0;32m 6\u001b[0m AzureOpenAIEmbeddings,\n\u001b[0;32m 7\u001b[0m OpenAIEmbeddings,\n\u001b[0;32m 8\u001b[0m )\n\u001b[0;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlangchain_openai\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mllms\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m AzureOpenAI, OpenAI\n",
|
| 59 |
+
"File \u001b[1;32mc:\\Python3.11\\Lib\\site-packages\\langchain_openai\\chat_models\\__init__.py:1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlangchain_openai\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mchat_models\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mazure\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m AzureChatOpenAI\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlangchain_openai\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mchat_models\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mbase\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ChatOpenAI\n\u001b[0;32m 4\u001b[0m __all__ \u001b[38;5;241m=\u001b[39m [\n\u001b[0;32m 5\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mChatOpenAI\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 6\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mAzureChatOpenAI\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 7\u001b[0m ]\n",
|
| 60 |
+
"File \u001b[1;32mc:\\Python3.11\\Lib\\site-packages\\langchain_openai\\chat_models\\azure.py:8\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mos\u001b[39;00m\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtyping\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Any, Callable, Dict, List, Union\n\u001b[1;32m----> 8\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mopenai\u001b[39;00m\n\u001b[0;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlangchain_core\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01moutputs\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m ChatResult\n\u001b[0;32m 10\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mlangchain_core\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpydantic_v1\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m BaseModel, Field, root_validator\n",
|
| 61 |
+
"File \u001b[1;32mc:\\Python3.11\\Lib\\site-packages\\openai\\__init__.py:8\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mos\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01m_os\u001b[39;00m\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtyping_extensions\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m override\n\u001b[1;32m----> 8\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m types\n\u001b[0;32m 9\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_types\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m NoneType, Transport, ProxiesTypes\n\u001b[0;32m 10\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_utils\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m file_from_path\n",
|
| 62 |
+
"File \u001b[1;32mc:\\Python3.11\\Lib\\site-packages\\openai\\types\\__init__.py:5\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# File generated from our OpenAPI spec by Stainless.\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m__future__\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m annotations\n\u001b[1;32m----> 5\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01medit\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Edit \u001b[38;5;28;01mas\u001b[39;00m Edit\n\u001b[0;32m 6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mimage\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Image \u001b[38;5;28;01mas\u001b[39;00m Image\n\u001b[0;32m 7\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmodel\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Model \u001b[38;5;28;01mas\u001b[39;00m Model\n",
|
| 63 |
+
"File \u001b[1;32mc:\\Python3.11\\Lib\\site-packages\\openai\\types\\edit.py:6\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtyping\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m List\n\u001b[0;32m 4\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mtyping_extensions\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m Literal\n\u001b[1;32m----> 6\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_models\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m BaseModel\n\u001b[0;32m 7\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcompletion_usage\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m CompletionUsage\n\u001b[0;32m 9\u001b[0m __all__ \u001b[38;5;241m=\u001b[39m [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mEdit\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mChoice\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n",
|
| 64 |
+
"File \u001b[1;32mc:\\Python3.11\\Lib\\site-packages\\openai\\_models.py:22\u001b[0m\n\u001b[0;32m 19\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mpydantic\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgenerics\u001b[39;00m\n\u001b[0;32m 20\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mpydantic\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mfields\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m FieldInfo\n\u001b[1;32m---> 22\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_types\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[0;32m 23\u001b[0m Body,\n\u001b[0;32m 24\u001b[0m IncEx,\n\u001b[0;32m 25\u001b[0m Query,\n\u001b[0;32m 26\u001b[0m ModelT,\n\u001b[0;32m 27\u001b[0m Headers,\n\u001b[0;32m 28\u001b[0m Timeout,\n\u001b[0;32m 29\u001b[0m NotGiven,\n\u001b[0;32m 30\u001b[0m AnyMapping,\n\u001b[0;32m 31\u001b[0m HttpxRequestFiles,\n\u001b[0;32m 32\u001b[0m )\n\u001b[0;32m 33\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_utils\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m is_list, is_given, is_mapping, parse_date, parse_datetime, strip_not_given\n\u001b[0;32m 34\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_compat\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m (\n\u001b[0;32m 35\u001b[0m PYDANTIC_V2,\n\u001b[0;32m 36\u001b[0m ConfigDict,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 45\u001b[0m field_get_default,\n\u001b[0;32m 46\u001b[0m )\n",
|
| 65 |
+
"File \u001b[1;32mc:\\Python3.11\\Lib\\site-packages\\openai\\_types.py:26\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mhttpx\u001b[39;00m\n\u001b[0;32m 25\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mpydantic\u001b[39;00m\n\u001b[1;32m---> 26\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mhttpx\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m URL, Proxy, Timeout, Response, BaseTransport, AsyncBaseTransport\n\u001b[0;32m 28\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m TYPE_CHECKING:\n\u001b[0;32m 29\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01m_models\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m BaseModel\n",
|
| 66 |
+
"\u001b[1;31mImportError\u001b[0m: cannot import name 'BaseTransport' from 'httpx' (c:\\Python3.11\\Lib\\site-packages\\httpx\\__init__.py)"
|
| 67 |
+
]
|
| 68 |
+
}
|
| 69 |
+
],
|
| 70 |
+
"source": [
|
| 71 |
+
"from langchain_community.vectorstores import FAISS\n",
|
| 72 |
+
"\n",
|
| 73 |
+
"from langchain_openai import OpenAIEmbeddings\n",
|
| 74 |
+
"\n",
|
| 75 |
+
"faiss_index = FAISS.from_documents(pages, OpenAIEmbeddings())\n",
|
| 76 |
+
"docs = faiss_index.similarity_search(\"How will the community be engaged?\", k=2)\n",
|
| 77 |
+
"for doc in docs:\n",
|
| 78 |
+
" print(str(doc.metadata[\"page\"]) + \":\", doc.page_content[:300])"
|
| 79 |
+
]
|
| 80 |
+
},
|
| 81 |
+
{
|
| 82 |
+
"cell_type": "code",
|
| 83 |
+
"execution_count": null,
|
| 84 |
+
"metadata": {},
|
| 85 |
+
"outputs": [],
|
| 86 |
+
"source": []
|
| 87 |
+
}
|
| 88 |
+
],
|
| 89 |
+
"metadata": {
|
| 90 |
+
"kernelspec": {
|
| 91 |
+
"display_name": "Python 3",
|
| 92 |
+
"language": "python",
|
| 93 |
+
"name": "python3"
|
| 94 |
+
},
|
| 95 |
+
"language_info": {
|
| 96 |
+
"codemirror_mode": {
|
| 97 |
+
"name": "ipython",
|
| 98 |
+
"version": 3
|
| 99 |
+
},
|
| 100 |
+
"file_extension": ".py",
|
| 101 |
+
"mimetype": "text/x-python",
|
| 102 |
+
"name": "python",
|
| 103 |
+
"nbconvert_exporter": "python",
|
| 104 |
+
"pygments_lexer": "ipython3",
|
| 105 |
+
"version": "3.11.6"
|
| 106 |
+
}
|
| 107 |
+
},
|
| 108 |
+
"nbformat": 4,
|
| 109 |
+
"nbformat_minor": 2
|
| 110 |
+
}
|