ThisIs-Developer commited on
Commit
13b2da2
โ€ข
1 Parent(s): 78828a5

Upload 9 files

Browse files
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ vectorstore/db_faiss/index.faiss filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Baivab Sarkar
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ๐Ÿฆ™ Llama-2-GGML-CSV-Chatbot
2
+
3
+ ## Overview
4
+ The **Llama-2-GGML-CSV-Chatbot** is a conversational tool powered by a fine-tuned large language model (LLM) known as *Llama-2 7B*. This chatbot utilizes CSV retrieval capabilities, enabling users to engage in multi-turn interactions based on uploaded CSV data.
5
+
6
+ <img width="2000" src="assets/workflow_1.jpg">
7
+
8
+ ## ๐Ÿš€ Features
9
+
10
+ - **CSV Data Interaction:** Allows users to engage in conversations based on uploaded CSV data.
11
+ - **Multi-turn Interaction:** Supports seamless multi-turn interactions for a better conversational experience.
12
+
13
+ ## Development Specs
14
+ - Utilizes [Llama-2 7B](https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/tree/main) and [Sentence Transformers](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2) for robust functionality.
15
+ - Developed using [Langchain](https://github.com/langchain-ai/langchain) and [Streamlit](https://github.com/streamlit/streamlit) technologies for enhanced performance.
16
+ - Cross-platform compatibility with Linux, macOS, or Windows OS.
17
+
18
+ ## ๐Ÿ› ๏ธ Installation
19
+
20
+ 1. **Clone the Repository:**
21
+ ```bash
22
+ git clone https://github.com/ThisIs-Developer/Llama-2-GGML-CSV-Chatbot.git
23
+ ```
24
+ 2. **Install Dependencies:**
25
+ ```bash
26
+ pip install -r requirements.txt
27
+ ```
28
+
29
+ ### Download the Llama 2 Model:
30
+
31
+ Download the Llama 2 model file named `llama-2-7b-chat.ggmlv3.q4_0.bin` from the following link:
32
+
33
+ [Download Llama 2 Model](https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/tree/main)
34
+
35
+ ### Llama 2 Model Information
36
+
37
+ | Name | Quant method | Bits | Size | Max RAM required |
38
+ |--------------------------------|--------------|------|---------|------------------|
39
+ | llama-2-7b-chat.ggmlv3.q4_0.bin | q4_0 | 4 | 3.79 GB | 6.29 GB |
40
+
41
+ **Note:** After downloading the model, add the model file to the `models` directory. The file should be located at `models\llama-2-7b-chat.ggmlv3.q4_0.bin`, in order to run the code.
42
+
43
+ ## ๐Ÿ“ Usage
44
+
45
+ 1. **Run the Application:**
46
+ ```bash
47
+ streamlit run app.py
48
+ ```
49
+ 2. **Access the Application:**
50
+ - Once the application is running, access it through the provided URL.
51
+ -
52
+ ## System Requirements
53
+ - **CPU:** Intelยฎ Coreโ„ข i5 or equivalent.
54
+ - **RAM:** 8 GB.
55
+ - **Disk Space:** 7 GB.
56
+ - **Hardware:** Operates on CPU; no GPU required.
57
+
58
+ ## ๐Ÿค– How to Use
59
+
60
+ - Upon running the application, you'll be presented with a sidebar providing information about the chatbot and an option to upload a CSV file.
61
+ - Upload a CSV file containing the data you want the chatbot to interact with.
62
+ - Enter your query or prompt in the input field provided.
63
+ - The chatbot will process your query and generate a response based on the uploaded CSV data and the Llama-2-7B-Chat-GGML model.
64
+
65
+ ## ๐Ÿ“Œ Important Notes
66
+
67
+ - While robust, this chatbot is not a substitute for professional advice.
68
+ - Ensure the CSV file adheres to the expected format for optimal performance.
69
+
70
+ ## ๐Ÿค Contributing
71
+
72
+ Contributions and suggestions are welcome! Feel free to fork the repository, make changes, and submit pull requests for improvements or bug fixes.
73
+
74
+ ## ๐Ÿ“„ License
75
+
76
+ This project is licensed under the [MIT License](https://github.com/ThisIs-Developer/Llama-2-GGML-CSV-Chatbot/blob/main/LICENSE).
assets/workflow_1.jpg ADDED
data/heart.csv ADDED
@@ -0,0 +1,1026 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ age,sex,cp,trestbps,chol,fbs,restecg,thalach,exang,oldpeak,slope,ca,thal,target
2
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
3
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
4
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
5
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
6
+ 62,0,0,138,294,1,1,106,0,1.9,1,3,2,0
7
+ 58,0,0,100,248,0,0,122,0,1,1,0,2,1
8
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
9
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
10
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
11
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
12
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
13
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
14
+ 34,0,1,118,210,0,1,192,0,0.7,2,0,2,1
15
+ 51,1,0,140,298,0,1,122,1,4.2,1,3,3,0
16
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
17
+ 34,0,1,118,210,0,1,192,0,0.7,2,0,2,1
18
+ 51,0,2,140,308,0,0,142,0,1.5,2,1,2,1
19
+ 54,1,0,124,266,0,0,109,1,2.2,1,1,3,0
20
+ 50,0,1,120,244,0,1,162,0,1.1,2,0,2,1
21
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
22
+ 60,1,2,140,185,0,0,155,0,3,1,0,2,0
23
+ 67,0,0,106,223,0,1,142,0,0.3,2,2,2,1
24
+ 45,1,0,104,208,0,0,148,1,3,1,0,2,1
25
+ 63,0,2,135,252,0,0,172,0,0,2,0,2,1
26
+ 42,0,2,120,209,0,1,173,0,0,1,0,2,1
27
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
28
+ 44,1,2,130,233,0,1,179,1,0.4,2,0,2,1
29
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
30
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
31
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
32
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
33
+ 50,0,1,120,244,0,1,162,0,1.1,2,0,2,1
34
+ 57,1,0,130,131,0,1,115,1,1.2,1,1,3,0
35
+ 70,1,2,160,269,0,1,112,1,2.9,1,1,3,0
36
+ 50,1,2,129,196,0,1,163,0,0,2,0,2,1
37
+ 46,1,2,150,231,0,1,147,0,3.6,1,0,2,0
38
+ 51,1,3,125,213,0,0,125,1,1.4,2,1,2,1
39
+ 59,1,0,138,271,0,0,182,0,0,2,0,2,1
40
+ 64,1,0,128,263,0,1,105,1,0.2,1,1,3,1
41
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
42
+ 65,0,2,160,360,0,0,151,0,0.8,2,0,2,1
43
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
44
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
45
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
46
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
47
+ 42,1,0,140,226,0,1,178,0,0,2,0,2,1
48
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
49
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
50
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
51
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
52
+ 58,0,3,150,283,1,0,162,0,1,2,0,2,1
53
+ 57,0,0,140,241,0,1,123,1,0.2,1,0,3,0
54
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
55
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
56
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
57
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
58
+ 56,1,3,120,193,0,0,162,0,1.9,1,0,3,1
59
+ 48,1,1,130,245,0,0,180,0,0.2,1,0,2,1
60
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
61
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
62
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
63
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
64
+ 67,1,0,100,299,0,0,125,1,0.9,1,2,2,0
65
+ 59,1,2,150,212,1,1,157,0,1.6,2,0,2,1
66
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
67
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
68
+ 53,1,2,130,197,1,0,152,0,1.2,0,0,2,1
69
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
70
+ 37,0,2,120,215,0,1,170,0,0,2,0,2,1
71
+ 62,0,0,160,164,0,0,145,0,6.2,0,3,3,0
72
+ 59,1,0,170,326,0,0,140,1,3.4,0,0,3,0
73
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
74
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
75
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
76
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
77
+ 47,1,2,138,257,0,0,156,0,0,2,0,2,1
78
+ 48,1,2,124,255,1,1,175,0,0,2,2,2,1
79
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
80
+ 52,1,1,134,201,0,1,158,0,0.8,2,1,2,1
81
+ 52,1,1,134,201,0,1,158,0,0.8,2,1,2,1
82
+ 50,1,2,140,233,0,1,163,0,0.6,1,1,3,0
83
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
84
+ 46,1,2,150,231,0,1,147,0,3.6,1,0,2,0
85
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
86
+ 37,0,2,120,215,0,1,170,0,0,2,0,2,1
87
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
88
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
89
+ 59,0,0,174,249,0,1,143,1,0,1,0,2,0
90
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
91
+ 68,1,0,144,193,1,1,141,0,3.4,1,2,3,0
92
+ 54,0,2,108,267,0,0,167,0,0,2,0,2,1
93
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
94
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
95
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
96
+ 62,1,1,128,208,1,0,140,0,0,2,0,2,1
97
+ 45,0,0,138,236,0,0,152,1,0.2,1,0,2,1
98
+ 57,0,0,128,303,0,0,159,0,0,2,1,2,1
99
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
100
+ 65,1,0,110,248,0,0,158,0,0.6,2,2,1,0
101
+ 76,0,2,140,197,0,2,116,0,1.1,1,0,2,1
102
+ 43,0,2,122,213,0,1,165,0,0.2,1,0,2,1
103
+ 57,1,2,150,126,1,1,173,0,0.2,2,1,3,1
104
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
105
+ 47,1,2,138,257,0,0,156,0,0,2,0,2,1
106
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
107
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
108
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
109
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
110
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
111
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
112
+ 44,1,0,110,197,0,0,177,0,0,2,1,2,0
113
+ 53,1,0,142,226,0,0,111,1,0,2,0,3,1
114
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
115
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
116
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
117
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
118
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
119
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
120
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
121
+ 42,1,1,120,295,0,1,162,0,0,2,0,2,1
122
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
123
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
124
+ 60,1,0,145,282,0,0,142,1,2.8,1,2,3,0
125
+ 65,0,2,140,417,1,0,157,0,0.8,2,1,2,1
126
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
127
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
128
+ 66,1,0,120,302,0,0,151,0,0.4,1,0,2,1
129
+ 53,1,2,130,197,1,0,152,0,1.2,0,0,2,1
130
+ 52,1,2,138,223,0,1,169,0,0,2,4,2,1
131
+ 57,1,0,140,192,0,1,148,0,0.4,1,0,1,1
132
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
133
+ 51,0,2,130,256,0,0,149,0,0.5,2,0,2,1
134
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
135
+ 50,1,2,129,196,0,1,163,0,0,2,0,2,1
136
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
137
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
138
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
139
+ 64,0,0,180,325,0,1,154,1,0,2,0,2,1
140
+ 47,1,2,138,257,0,0,156,0,0,2,0,2,1
141
+ 41,1,1,110,235,0,1,153,0,0,2,0,2,1
142
+ 57,1,0,152,274,0,1,88,1,1.2,1,1,3,0
143
+ 63,0,0,124,197,0,1,136,1,0,1,0,2,0
144
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
145
+ 34,1,3,118,182,0,0,174,0,0,2,0,2,1
146
+ 47,1,0,112,204,0,1,143,0,0.1,2,0,2,1
147
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
148
+ 51,0,2,120,295,0,0,157,0,0.6,2,0,2,1
149
+ 41,1,0,110,172,0,0,158,0,0,2,0,3,0
150
+ 52,1,3,152,298,1,1,178,0,1.2,1,0,3,1
151
+ 39,1,2,140,321,0,0,182,0,0,2,0,2,1
152
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
153
+ 54,1,1,192,283,0,0,195,0,0,2,1,3,0
154
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
155
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
156
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
157
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
158
+ 40,1,3,140,199,0,1,178,1,1.4,2,0,3,1
159
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
160
+ 67,0,2,115,564,0,0,160,0,1.6,1,0,3,1
161
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
162
+ 77,1,0,125,304,0,0,162,1,0,2,3,2,0
163
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
164
+ 77,1,0,125,304,0,0,162,1,0,2,3,2,0
165
+ 48,1,0,124,274,0,0,166,0,0.5,1,0,3,0
166
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
167
+ 59,1,0,170,326,0,0,140,1,3.4,0,0,3,0
168
+ 56,1,0,132,184,0,0,105,1,2.1,1,1,1,0
169
+ 57,0,0,120,354,0,1,163,1,0.6,2,0,2,1
170
+ 43,1,2,130,315,0,1,162,0,1.9,2,1,2,1
171
+ 45,0,1,112,160,0,1,138,0,0,1,0,2,1
172
+ 43,1,0,150,247,0,1,171,0,1.5,2,0,2,1
173
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
174
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
175
+ 39,0,2,94,199,0,1,179,0,0,2,0,2,1
176
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
177
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
178
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
179
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
180
+ 44,1,0,110,197,0,0,177,0,0,2,1,2,0
181
+ 56,0,0,134,409,0,0,150,1,1.9,1,2,3,0
182
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
183
+ 64,1,3,110,211,0,0,144,1,1.8,1,0,2,1
184
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
185
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
186
+ 45,1,1,128,308,0,0,170,0,0,2,0,2,1
187
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
188
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
189
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
190
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
191
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
192
+ 41,1,2,112,250,0,1,179,0,0,2,0,2,1
193
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
194
+ 67,0,2,115,564,0,0,160,0,1.6,1,0,3,1
195
+ 69,1,3,160,234,1,0,131,0,0.1,1,1,2,1
196
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
197
+ 59,1,2,150,212,1,1,157,0,1.6,2,0,2,1
198
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
199
+ 45,1,0,115,260,0,0,185,0,0,2,0,2,1
200
+ 60,0,2,102,318,0,1,160,0,0,2,1,2,1
201
+ 50,1,0,144,200,0,0,126,1,0.9,1,0,3,0
202
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
203
+ 34,1,3,118,182,0,0,174,0,0,2,0,2,1
204
+ 52,1,3,152,298,1,1,178,0,1.2,1,0,3,1
205
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
206
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
207
+ 42,1,3,148,244,0,0,178,0,0.8,2,2,2,1
208
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
209
+ 41,1,2,112,250,0,1,179,0,0,2,0,2,1
210
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
211
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
212
+ 42,1,2,120,240,1,1,194,0,0.8,0,0,3,1
213
+ 67,1,0,100,299,0,0,125,1,0.9,1,2,2,0
214
+ 50,1,0,150,243,0,0,128,0,2.6,1,0,3,0
215
+ 43,1,2,130,315,0,1,162,0,1.9,2,1,2,1
216
+ 45,1,1,128,308,0,0,170,0,0,2,0,2,1
217
+ 49,1,1,130,266,0,1,171,0,0.6,2,0,2,1
218
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
219
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
220
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
221
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
222
+ 57,0,1,130,236,0,0,174,0,0,1,1,2,0
223
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
224
+ 64,1,3,110,211,0,0,144,1,1.8,1,0,2,1
225
+ 39,0,2,94,199,0,1,179,0,0,2,0,2,1
226
+ 51,1,0,140,261,0,0,186,1,0,2,0,2,1
227
+ 54,1,2,150,232,0,0,165,0,1.6,2,0,3,1
228
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
229
+ 44,0,2,118,242,0,1,149,0,0.3,1,1,2,1
230
+ 52,1,1,128,205,1,1,184,0,0,2,0,2,1
231
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
232
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
233
+ 56,1,1,120,236,0,1,178,0,0.8,2,0,2,1
234
+ 60,1,0,125,258,0,0,141,1,2.8,1,1,3,0
235
+ 41,0,1,126,306,0,1,163,0,0,2,0,2,1
236
+ 49,0,0,130,269,0,1,163,0,0,2,0,2,1
237
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
238
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
239
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
240
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
241
+ 62,0,0,150,244,0,1,154,1,1.4,1,0,2,0
242
+ 54,0,1,132,288,1,0,159,1,0,2,1,2,1
243
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
244
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
245
+ 60,1,2,140,185,0,0,155,0,3,1,0,2,0
246
+ 51,1,2,125,245,1,0,166,0,2.4,1,0,2,1
247
+ 44,1,1,130,219,0,0,188,0,0,2,0,2,1
248
+ 54,1,1,192,283,0,0,195,0,0,2,1,3,0
249
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
250
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
251
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
252
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
253
+ 45,0,1,112,160,0,1,138,0,0,1,0,2,1
254
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
255
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
256
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
257
+ 62,0,0,140,394,0,0,157,0,1.2,1,0,2,1
258
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
259
+ 64,0,0,180,325,0,1,154,1,0,2,0,2,1
260
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
261
+ 66,1,0,120,302,0,0,151,0,0.4,1,0,2,1
262
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
263
+ 54,1,2,150,232,0,0,165,0,1.6,2,0,3,1
264
+ 48,1,0,122,222,0,0,186,0,0,2,0,2,1
265
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
266
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
267
+ 45,1,0,104,208,0,0,148,1,3,1,0,2,1
268
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
269
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
270
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
271
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
272
+ 43,1,0,110,211,0,1,161,0,0,2,0,3,1
273
+ 44,1,1,120,263,0,1,173,0,0,2,0,3,1
274
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
275
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
276
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
277
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
278
+ 57,1,0,132,207,0,1,168,1,0,2,0,3,1
279
+ 44,1,1,130,219,0,0,188,0,0,2,0,2,1
280
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
281
+ 41,0,1,105,198,0,1,168,0,0,2,1,2,1
282
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
283
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
284
+ 41,0,1,130,204,0,0,172,0,1.4,2,0,2,1
285
+ 64,1,3,110,211,0,0,144,1,1.8,1,0,2,1
286
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
287
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
288
+ 64,0,2,140,313,0,1,133,0,0.2,2,0,3,1
289
+ 71,0,1,160,302,0,1,162,0,0.4,2,2,2,1
290
+ 58,0,2,120,340,0,1,172,0,0,2,0,2,1
291
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
292
+ 52,1,2,138,223,0,1,169,0,0,2,4,2,1
293
+ 58,1,0,128,259,0,0,130,1,3,1,2,3,0
294
+ 61,1,2,150,243,1,1,137,1,1,1,0,2,1
295
+ 59,1,2,150,212,1,1,157,0,1.6,2,0,2,1
296
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
297
+ 67,1,0,100,299,0,0,125,1,0.9,1,2,2,0
298
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
299
+ 58,1,0,150,270,0,0,111,1,0.8,2,0,3,0
300
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
301
+ 52,1,1,120,325,0,1,172,0,0.2,2,0,2,1
302
+ 46,0,1,105,204,0,1,172,0,0,2,0,2,1
303
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
304
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
305
+ 60,1,0,145,282,0,0,142,1,2.8,1,2,3,0
306
+ 52,0,2,136,196,0,0,169,0,0.1,1,0,2,1
307
+ 62,1,0,120,267,0,1,99,1,1.8,1,2,3,0
308
+ 44,0,2,118,242,0,1,149,0,0.3,1,1,2,1
309
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
310
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
311
+ 56,0,1,140,294,0,0,153,0,1.3,1,0,2,1
312
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
313
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
314
+ 70,1,2,160,269,0,1,112,1,2.9,1,1,3,0
315
+ 74,0,1,120,269,0,0,121,1,0.2,2,1,2,1
316
+ 40,1,3,140,199,0,1,178,1,1.4,2,0,3,1
317
+ 42,1,3,148,244,0,0,178,0,0.8,2,2,2,1
318
+ 64,0,2,140,313,0,1,133,0,0.2,2,0,3,1
319
+ 63,0,2,135,252,0,0,172,0,0,2,0,2,1
320
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
321
+ 53,0,2,128,216,0,0,115,0,0,2,0,0,1
322
+ 53,0,0,130,264,0,0,143,0,0.4,1,0,2,1
323
+ 48,0,2,130,275,0,1,139,0,0.2,2,0,2,1
324
+ 45,1,0,142,309,0,0,147,1,0,1,3,3,0
325
+ 66,1,1,160,246,0,1,120,1,0,1,3,1,0
326
+ 48,1,1,130,245,0,0,180,0,0.2,1,0,2,1
327
+ 56,0,1,140,294,0,0,153,0,1.3,1,0,2,1
328
+ 54,1,1,192,283,0,0,195,0,0,2,1,3,0
329
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
330
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
331
+ 53,0,2,128,216,0,0,115,0,0,2,0,0,1
332
+ 37,0,2,120,215,0,1,170,0,0,2,0,2,1
333
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
334
+ 37,1,2,130,250,0,1,187,0,3.5,0,0,2,1
335
+ 54,0,2,110,214,0,1,158,0,1.6,1,0,2,1
336
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
337
+ 58,1,0,150,270,0,0,111,1,0.8,2,0,3,0
338
+ 57,1,2,150,126,1,1,173,0,0.2,2,1,3,1
339
+ 54,1,2,125,273,0,0,152,0,0.5,0,1,2,1
340
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
341
+ 60,1,0,130,253,0,1,144,1,1.4,2,1,3,0
342
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
343
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
344
+ 65,0,2,155,269,0,1,148,0,0.8,2,0,2,1
345
+ 52,1,2,172,199,1,1,162,0,0.5,2,0,3,1
346
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
347
+ 66,1,1,160,246,0,1,120,1,0,1,3,1,0
348
+ 50,1,0,150,243,0,0,128,0,2.6,1,0,3,0
349
+ 54,0,2,108,267,0,0,167,0,0,2,0,2,1
350
+ 43,1,0,132,247,1,0,143,1,0.1,1,4,3,0
351
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
352
+ 66,1,0,120,302,0,0,151,0,0.4,1,0,2,1
353
+ 50,1,0,144,200,0,0,126,1,0.9,1,0,3,0
354
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
355
+ 57,1,0,110,201,0,1,126,1,1.5,1,0,1,1
356
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
357
+ 46,0,0,138,243,0,0,152,1,0,1,0,2,1
358
+ 59,1,0,164,176,1,0,90,0,1,1,2,1,0
359
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
360
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
361
+ 53,0,2,128,216,0,0,115,0,0,2,0,0,1
362
+ 48,1,0,122,222,0,0,186,0,0,2,0,2,1
363
+ 62,1,2,130,231,0,1,146,0,1.8,1,3,3,1
364
+ 43,0,2,122,213,0,1,165,0,0.2,1,0,2,1
365
+ 53,1,2,130,246,1,0,173,0,0,2,3,2,1
366
+ 57,0,1,130,236,0,0,174,0,0,1,1,2,0
367
+ 53,1,2,130,246,1,0,173,0,0,2,3,2,1
368
+ 58,1,2,112,230,0,0,165,0,2.5,1,1,3,0
369
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
370
+ 58,1,2,105,240,0,0,154,1,0.6,1,0,3,1
371
+ 51,1,2,110,175,0,1,123,0,0.6,2,0,2,1
372
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
373
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
374
+ 54,0,2,110,214,0,1,158,0,1.6,1,0,2,1
375
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
376
+ 46,0,2,142,177,0,0,160,1,1.4,0,0,2,1
377
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
378
+ 59,1,1,140,221,0,1,164,1,0,2,0,2,1
379
+ 64,0,0,130,303,0,1,122,0,2,1,2,2,1
380
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
381
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
382
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
383
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
384
+ 59,1,0,110,239,0,0,142,1,1.2,1,1,3,0
385
+ 58,1,0,150,270,0,0,111,1,0.8,2,0,3,0
386
+ 35,1,0,126,282,0,0,156,1,0,2,0,3,0
387
+ 51,1,2,110,175,0,1,123,0,0.6,2,0,2,1
388
+ 42,0,2,120,209,0,1,173,0,0,1,0,2,1
389
+ 77,1,0,125,304,0,0,162,1,0,2,3,2,0
390
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
391
+ 63,1,3,145,233,1,0,150,0,2.3,0,0,1,1
392
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
393
+ 45,1,3,110,264,0,1,132,0,1.2,1,0,3,0
394
+ 51,1,2,110,175,0,1,123,0,0.6,2,0,2,1
395
+ 62,0,0,160,164,0,0,145,0,6.2,0,3,3,0
396
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
397
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
398
+ 68,1,2,180,274,1,0,150,1,1.6,1,0,3,0
399
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
400
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
401
+ 63,1,3,145,233,1,0,150,0,2.3,0,0,1,1
402
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
403
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
404
+ 70,1,1,156,245,0,0,143,0,0,2,0,2,1
405
+ 46,0,1,105,204,0,1,172,0,0,2,0,2,1
406
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
407
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
408
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
409
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
410
+ 46,0,0,138,243,0,0,152,1,0,1,0,2,1
411
+ 46,1,2,150,231,0,1,147,0,3.6,1,0,2,0
412
+ 41,0,1,105,198,0,1,168,0,0,2,1,2,1
413
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
414
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
415
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
416
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
417
+ 41,0,1,130,204,0,0,172,0,1.4,2,0,2,1
418
+ 54,1,2,125,273,0,0,152,0,0.5,0,1,2,1
419
+ 52,1,2,138,223,0,1,169,0,0,2,4,2,1
420
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
421
+ 65,0,2,160,360,0,0,151,0,0.8,2,0,2,1
422
+ 57,0,0,128,303,0,0,159,0,0,2,1,2,1
423
+ 42,0,0,102,265,0,0,122,0,0.6,1,0,2,1
424
+ 57,0,0,120,354,0,1,163,1,0.6,2,0,2,1
425
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
426
+ 45,1,0,142,309,0,0,147,1,0,1,3,3,0
427
+ 51,0,0,130,305,0,1,142,1,1.2,1,0,3,0
428
+ 54,0,2,160,201,0,1,163,0,0,2,1,2,1
429
+ 57,1,2,150,168,0,1,174,0,1.6,2,0,2,1
430
+ 43,1,0,132,247,1,0,143,1,0.1,1,4,3,0
431
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
432
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
433
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
434
+ 60,0,2,102,318,0,1,160,0,0,2,1,2,1
435
+ 37,1,2,130,250,0,1,187,0,3.5,0,0,2,1
436
+ 41,0,2,112,268,0,0,172,1,0,2,0,2,1
437
+ 57,0,0,120,354,0,1,163,1,0.6,2,0,2,1
438
+ 59,0,0,174,249,0,1,143,1,0,1,0,2,0
439
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
440
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
441
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
442
+ 62,0,0,150,244,0,1,154,1,1.4,1,0,2,0
443
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
444
+ 57,1,0,152,274,0,1,88,1,1.2,1,1,3,0
445
+ 57,1,2,150,168,0,1,174,0,1.6,2,0,2,1
446
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
447
+ 52,1,1,128,205,1,1,184,0,0,2,0,2,1
448
+ 53,1,2,130,246,1,0,173,0,0,2,3,2,1
449
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
450
+ 51,0,2,120,295,0,0,157,0,0.6,2,0,2,1
451
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
452
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
453
+ 49,0,1,134,271,0,1,162,0,0,1,0,2,1
454
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
455
+ 49,0,1,134,271,0,1,162,0,0,1,0,2,1
456
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
457
+ 69,1,3,160,234,1,0,131,0,0.1,1,1,2,1
458
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
459
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
460
+ 43,1,0,150,247,0,1,171,0,1.5,2,0,2,1
461
+ 51,1,0,140,261,0,0,186,1,0,2,0,2,1
462
+ 69,1,2,140,254,0,0,146,0,2,1,3,3,0
463
+ 48,1,2,124,255,1,1,175,0,0,2,2,2,1
464
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
465
+ 43,1,0,110,211,0,1,161,0,0,2,0,3,1
466
+ 67,0,2,115,564,0,0,160,0,1.6,1,0,3,1
467
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
468
+ 44,1,1,130,219,0,0,188,0,0,2,0,2,1
469
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
470
+ 61,1,2,150,243,1,1,137,1,1,1,0,2,1
471
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
472
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
473
+ 64,0,2,140,313,0,1,133,0,0.2,2,0,3,1
474
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
475
+ 41,1,2,130,214,0,0,168,0,2,1,0,2,1
476
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
477
+ 57,1,2,150,126,1,1,173,0,0.2,2,1,3,1
478
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
479
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
480
+ 39,1,2,140,321,0,0,182,0,0,2,0,2,1
481
+ 58,1,0,128,216,0,0,131,1,2.2,1,3,3,0
482
+ 51,0,0,130,305,0,1,142,1,1.2,1,0,3,0
483
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
484
+ 51,1,0,140,298,0,1,122,1,4.2,1,3,3,0
485
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
486
+ 65,1,0,110,248,0,0,158,0,0.6,2,2,1,0
487
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
488
+ 41,1,0,110,172,0,0,158,0,0,2,0,3,0
489
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
490
+ 54,0,1,132,288,1,0,159,1,0,2,1,2,1
491
+ 61,1,2,150,243,1,1,137,1,1,1,0,2,1
492
+ 57,0,0,128,303,0,0,159,0,0,2,1,2,1
493
+ 57,1,2,150,168,0,1,174,0,1.6,2,0,2,1
494
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
495
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
496
+ 51,1,2,125,245,1,0,166,0,2.4,1,0,2,1
497
+ 59,1,0,135,234,0,1,161,0,0.5,1,0,3,1
498
+ 68,1,2,180,274,1,0,150,1,1.6,1,0,3,0
499
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
500
+ 54,1,0,140,239,0,1,160,0,1.2,2,0,2,1
501
+ 46,0,2,142,177,0,0,160,1,1.4,0,0,2,1
502
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
503
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
504
+ 46,0,2,142,177,0,0,160,1,1.4,0,0,2,1
505
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
506
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
507
+ 44,0,2,118,242,0,1,149,0,0.3,1,1,2,1
508
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
509
+ 41,0,1,130,204,0,0,172,0,1.4,2,0,2,1
510
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
511
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
512
+ 54,0,1,132,288,1,0,159,1,0,2,1,2,1
513
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
514
+ 44,1,0,112,290,0,0,153,0,0,2,1,2,0
515
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
516
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
517
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
518
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
519
+ 41,0,1,105,198,0,1,168,0,0,2,1,2,1
520
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
521
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
522
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
523
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
524
+ 67,0,2,152,277,0,1,172,0,0,2,1,2,1
525
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
526
+ 58,1,2,112,230,0,0,165,0,2.5,1,1,3,0
527
+ 51,0,2,130,256,0,0,149,0,0.5,2,0,2,1
528
+ 62,0,0,160,164,0,0,145,0,6.2,0,3,3,0
529
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
530
+ 59,1,3,178,270,0,0,145,0,4.2,0,0,3,1
531
+ 69,1,3,160,234,1,0,131,0,0.1,1,1,2,1
532
+ 60,0,0,150,258,0,0,157,0,2.6,1,2,3,0
533
+ 65,0,2,155,269,0,1,148,0,0.8,2,0,2,1
534
+ 63,0,0,124,197,0,1,136,1,0,1,0,2,0
535
+ 53,0,0,138,234,0,0,160,0,0,2,0,2,1
536
+ 54,0,2,108,267,0,0,167,0,0,2,0,2,1
537
+ 76,0,2,140,197,0,2,116,0,1.1,1,0,2,1
538
+ 50,0,2,120,219,0,1,158,0,1.6,1,0,2,1
539
+ 52,1,1,120,325,0,1,172,0,0.2,2,0,2,1
540
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
541
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
542
+ 58,1,0,128,259,0,0,130,1,3,1,2,3,0
543
+ 44,1,2,140,235,0,0,180,0,0,2,0,2,1
544
+ 62,0,0,140,394,0,0,157,0,1.2,1,0,2,1
545
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
546
+ 54,1,2,125,273,0,0,152,0,0.5,0,1,2,1
547
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
548
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
549
+ 67,0,0,106,223,0,1,142,0,0.3,2,2,2,1
550
+ 51,0,2,120,295,0,0,157,0,0.6,2,0,2,1
551
+ 68,1,2,118,277,0,1,151,0,1,2,1,3,1
552
+ 69,1,2,140,254,0,0,146,0,2,1,3,3,0
553
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
554
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
555
+ 53,1,2,130,197,1,0,152,0,1.2,0,0,2,1
556
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
557
+ 67,1,0,125,254,1,1,163,0,0.2,1,2,3,0
558
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
559
+ 48,1,0,122,222,0,0,186,0,0,2,0,2,1
560
+ 39,0,2,94,199,0,1,179,0,0,2,0,2,1
561
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
562
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
563
+ 65,0,2,155,269,0,1,148,0,0.8,2,0,2,1
564
+ 42,0,2,120,209,0,1,173,0,0,1,0,2,1
565
+ 44,1,0,112,290,0,0,153,0,0,2,1,2,0
566
+ 56,1,0,132,184,0,0,105,1,2.1,1,1,1,0
567
+ 53,0,0,138,234,0,0,160,0,0,2,0,2,1
568
+ 50,0,0,110,254,0,0,159,0,0,2,0,2,1
569
+ 41,1,2,130,214,0,0,168,0,2,1,0,2,1
570
+ 54,0,2,160,201,0,1,163,0,0,2,1,2,1
571
+ 42,1,2,120,240,1,1,194,0,0.8,0,0,3,1
572
+ 54,0,2,135,304,1,1,170,0,0,2,0,2,1
573
+ 60,1,0,145,282,0,0,142,1,2.8,1,2,3,0
574
+ 34,1,3,118,182,0,0,174,0,0,2,0,2,1
575
+ 44,1,0,112,290,0,0,153,0,0,2,1,2,0
576
+ 60,1,0,125,258,0,0,141,1,2.8,1,1,3,0
577
+ 43,1,0,150,247,0,1,171,0,1.5,2,0,2,1
578
+ 52,1,3,152,298,1,1,178,0,1.2,1,0,3,1
579
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
580
+ 62,0,0,140,394,0,0,157,0,1.2,1,0,2,1
581
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
582
+ 46,1,1,101,197,1,1,156,0,0,2,0,3,1
583
+ 44,1,2,140,235,0,0,180,0,0,2,0,2,1
584
+ 55,1,1,130,262,0,1,155,0,0,2,0,2,1
585
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
586
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
587
+ 40,1,3,140,199,0,1,178,1,1.4,2,0,3,1
588
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
589
+ 59,1,0,164,176,1,0,90,0,1,1,2,1,0
590
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
591
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
592
+ 74,0,1,120,269,0,0,121,1,0.2,2,1,2,1
593
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
594
+ 70,1,2,160,269,0,1,112,1,2.9,1,1,3,0
595
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
596
+ 64,1,0,145,212,0,0,132,0,2,1,2,1,0
597
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
598
+ 59,1,1,140,221,0,1,164,1,0,2,0,2,1
599
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
600
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
601
+ 63,0,1,140,195,0,1,179,0,0,2,2,2,1
602
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
603
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
604
+ 58,0,2,120,340,0,1,172,0,0,2,0,2,1
605
+ 63,0,1,140,195,0,1,179,0,0,2,2,2,1
606
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
607
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
608
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
609
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
610
+ 64,1,0,145,212,0,0,132,0,2,1,2,1,0
611
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
612
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
613
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
614
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
615
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
616
+ 51,0,0,130,305,0,1,142,1,1.2,1,0,3,0
617
+ 50,0,2,120,219,0,1,158,0,1.6,1,0,2,1
618
+ 43,1,0,115,303,0,1,181,0,1.2,1,0,2,1
619
+ 41,0,1,126,306,0,1,163,0,0,2,0,2,1
620
+ 49,1,1,130,266,0,1,171,0,0.6,2,0,2,1
621
+ 65,1,0,110,248,0,0,158,0,0.6,2,2,1,0
622
+ 57,1,0,152,274,0,1,88,1,1.2,1,1,3,0
623
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
624
+ 62,0,0,138,294,1,1,106,0,1.9,1,3,2,0
625
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
626
+ 59,1,3,178,270,0,0,145,0,4.2,0,0,3,1
627
+ 69,1,2,140,254,0,0,146,0,2,1,3,3,0
628
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
629
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
630
+ 69,0,3,140,239,0,1,151,0,1.8,2,2,2,1
631
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
632
+ 45,1,3,110,264,0,1,132,0,1.2,1,0,3,0
633
+ 49,1,1,130,266,0,1,171,0,0.6,2,0,2,1
634
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
635
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
636
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
637
+ 53,0,0,130,264,0,0,143,0,0.4,1,0,2,1
638
+ 59,0,0,174,249,0,1,143,1,0,1,0,2,0
639
+ 58,0,2,120,340,0,1,172,0,0,2,0,2,1
640
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
641
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
642
+ 46,0,0,138,243,0,0,152,1,0,1,0,2,1
643
+ 56,0,0,134,409,0,0,150,1,1.9,1,2,3,0
644
+ 64,1,0,128,263,0,1,105,1,0.2,1,1,3,1
645
+ 65,1,0,120,177,0,1,140,0,0.4,2,0,3,1
646
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
647
+ 50,1,0,150,243,0,0,128,0,2.6,1,0,3,0
648
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
649
+ 64,0,0,130,303,0,1,122,0,2,1,2,2,1
650
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
651
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
652
+ 62,1,0,120,267,0,1,99,1,1.8,1,2,3,0
653
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
654
+ 66,0,3,150,226,0,1,114,0,2.6,0,0,2,1
655
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
656
+ 41,0,1,126,306,0,1,163,0,0,2,0,2,1
657
+ 41,1,1,110,235,0,1,153,0,0,2,0,2,1
658
+ 57,0,1,130,236,0,0,174,0,0,1,1,2,0
659
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
660
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
661
+ 59,1,0,138,271,0,0,182,0,0,2,0,2,1
662
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
663
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
664
+ 47,1,0,112,204,0,1,143,0,0.1,2,0,2,1
665
+ 58,0,0,100,248,0,0,122,0,1,1,0,2,1
666
+ 66,0,3,150,226,0,1,114,0,2.6,0,0,2,1
667
+ 65,0,2,140,417,1,0,157,0,0.8,2,1,2,1
668
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
669
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
670
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
671
+ 66,1,1,160,246,0,1,120,1,0,1,3,1,0
672
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
673
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
674
+ 68,1,2,118,277,0,1,151,0,1,2,1,3,1
675
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
676
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
677
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
678
+ 60,1,0,130,253,0,1,144,1,1.4,2,1,3,0
679
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
680
+ 41,0,2,112,268,0,0,172,1,0,2,0,2,1
681
+ 68,1,2,180,274,1,0,150,1,1.6,1,0,3,0
682
+ 42,1,1,120,295,0,1,162,0,0,2,0,2,1
683
+ 59,1,0,170,326,0,0,140,1,3.4,0,0,3,0
684
+ 59,1,0,164,176,1,0,90,0,1,1,2,1,0
685
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
686
+ 60,1,2,140,185,0,0,155,0,3,1,0,2,0
687
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
688
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
689
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
690
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
691
+ 54,0,2,135,304,1,1,170,0,0,2,0,2,1
692
+ 58,1,2,105,240,0,0,154,1,0.6,1,0,3,1
693
+ 55,0,1,135,250,0,0,161,0,1.4,1,0,2,1
694
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
695
+ 63,0,1,140,195,0,1,179,0,0,2,2,2,1
696
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
697
+ 35,1,0,126,282,0,0,156,1,0,2,0,3,0
698
+ 50,0,2,120,219,0,1,158,0,1.6,1,0,2,1
699
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
700
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
701
+ 35,1,0,126,282,0,0,156,1,0,2,0,3,0
702
+ 41,1,2,130,214,0,0,168,0,2,1,0,2,1
703
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
704
+ 71,0,1,160,302,0,1,162,0,0.4,2,2,2,1
705
+ 57,1,0,110,201,0,1,126,1,1.5,1,0,1,1
706
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
707
+ 58,1,0,128,216,0,0,131,1,2.2,1,3,3,0
708
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
709
+ 56,0,1,140,294,0,0,153,0,1.3,1,0,2,1
710
+ 60,0,2,120,178,1,1,96,0,0,2,0,2,1
711
+ 45,1,3,110,264,0,1,132,0,1.2,1,0,3,0
712
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
713
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
714
+ 45,0,1,112,160,0,1,138,0,0,1,0,2,1
715
+ 66,0,3,150,226,0,1,114,0,2.6,0,0,2,1
716
+ 51,1,3,125,213,0,0,125,1,1.4,2,1,2,1
717
+ 70,1,1,156,245,0,0,143,0,0,2,0,2,1
718
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
719
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
720
+ 55,0,1,135,250,0,0,161,0,1.4,1,0,2,1
721
+ 52,1,0,108,233,1,1,147,0,0.1,2,3,3,1
722
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
723
+ 45,1,0,115,260,0,0,185,0,0,2,0,2,1
724
+ 67,0,2,152,277,0,1,172,0,0,2,1,2,1
725
+ 68,0,2,120,211,0,0,115,0,1.5,1,0,2,1
726
+ 74,0,1,120,269,0,0,121,1,0.2,2,1,2,1
727
+ 60,0,0,150,258,0,0,157,0,2.6,1,2,3,0
728
+ 48,1,0,124,274,0,0,166,0,0.5,1,0,3,0
729
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
730
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
731
+ 55,0,1,135,250,0,0,161,0,1.4,1,0,2,1
732
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
733
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
734
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
735
+ 44,0,2,108,141,0,1,175,0,0.6,1,0,2,1
736
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
737
+ 50,1,2,129,196,0,1,163,0,0,2,0,2,1
738
+ 59,1,0,110,239,0,0,142,1,1.2,1,1,3,0
739
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
740
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
741
+ 52,1,0,128,255,0,1,161,1,0,2,1,3,0
742
+ 44,1,2,140,235,0,0,180,0,0,2,0,2,1
743
+ 41,0,2,112,268,0,0,172,1,0,2,0,2,1
744
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
745
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
746
+ 60,0,2,102,318,0,1,160,0,0,2,1,2,1
747
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
748
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
749
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
750
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
751
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
752
+ 55,1,1,130,262,0,1,155,0,0,2,0,2,1
753
+ 65,0,2,160,360,0,0,151,0,0.8,2,0,2,1
754
+ 48,1,1,130,245,0,0,180,0,0.2,1,0,2,1
755
+ 65,1,0,120,177,0,1,140,0,0.4,2,0,3,1
756
+ 51,0,2,130,256,0,0,149,0,0.5,2,0,2,1
757
+ 48,1,2,124,255,1,1,175,0,0,2,2,2,1
758
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
759
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
760
+ 46,0,1,105,204,0,1,172,0,0,2,0,2,1
761
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
762
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
763
+ 49,0,0,130,269,0,1,163,0,0,2,0,2,1
764
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
765
+ 58,0,3,150,283,1,0,162,0,1,2,0,2,1
766
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
767
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
768
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
769
+ 68,1,0,144,193,1,1,141,0,3.4,1,2,3,0
770
+ 46,1,1,101,197,1,1,156,0,0,2,0,3,1
771
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
772
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
773
+ 45,0,0,138,236,0,0,152,1,0.2,1,0,2,1
774
+ 62,0,0,150,244,0,1,154,1,1.4,1,0,2,0
775
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
776
+ 48,0,2,130,275,0,1,139,0,0.2,2,0,2,1
777
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
778
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
779
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
780
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
781
+ 34,0,1,118,210,0,1,192,0,0.7,2,0,2,1
782
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
783
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
784
+ 64,0,0,130,303,0,1,122,0,2,1,2,2,1
785
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
786
+ 54,1,2,150,232,0,0,165,0,1.6,2,0,3,1
787
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
788
+ 67,1,0,125,254,1,1,163,0,0.2,1,2,3,0
789
+ 51,1,0,140,298,0,1,122,1,4.2,1,3,3,0
790
+ 62,0,0,138,294,1,1,106,0,1.9,1,3,2,0
791
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
792
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
793
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
794
+ 68,1,0,144,193,1,1,141,0,3.4,1,2,3,0
795
+ 60,0,2,120,178,1,1,96,0,0,2,0,2,1
796
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
797
+ 62,1,1,128,208,1,0,140,0,0,2,0,2,1
798
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
799
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
800
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
801
+ 43,1,0,115,303,0,1,181,0,1.2,1,0,2,1
802
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
803
+ 63,1,3,145,233,1,0,150,0,2.3,0,0,1,1
804
+ 63,0,0,124,197,0,1,136,1,0,1,0,2,0
805
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
806
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
807
+ 53,1,0,142,226,0,0,111,1,0,2,0,3,1
808
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
809
+ 44,1,2,130,233,0,1,179,1,0.4,2,0,2,1
810
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
811
+ 54,0,2,110,214,0,1,158,0,1.6,1,0,2,1
812
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
813
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
814
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
815
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
816
+ 62,1,1,128,208,1,0,140,0,0,2,0,2,1
817
+ 58,1,2,105,240,0,0,154,1,0.6,1,0,3,1
818
+ 70,1,1,156,245,0,0,143,0,0,2,0,2,1
819
+ 45,1,0,115,260,0,0,185,0,0,2,0,2,1
820
+ 42,1,3,148,244,0,0,178,0,0.8,2,2,2,1
821
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
822
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
823
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
824
+ 60,1,0,130,253,0,1,144,1,1.4,2,1,3,0
825
+ 54,1,0,140,239,0,1,160,0,1.2,2,0,2,1
826
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
827
+ 63,0,2,135,252,0,0,172,0,0,2,0,2,1
828
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
829
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
830
+ 44,1,2,130,233,0,1,179,1,0.4,2,0,2,1
831
+ 54,1,0,124,266,0,0,109,1,2.2,1,1,3,0
832
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
833
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
834
+ 68,1,2,118,277,0,1,151,0,1,2,1,3,1
835
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
836
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
837
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
838
+ 53,0,0,138,234,0,0,160,0,0,2,0,2,1
839
+ 52,1,2,172,199,1,1,162,0,0.5,2,0,3,1
840
+ 51,1,3,125,213,0,0,125,1,1.4,2,1,2,1
841
+ 51,1,0,140,261,0,0,186,1,0,2,0,2,1
842
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
843
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
844
+ 58,1,2,112,230,0,0,165,0,2.5,1,1,3,0
845
+ 59,1,3,160,273,0,0,125,0,0,2,0,2,0
846
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
847
+ 56,1,0,132,184,0,0,105,1,2.1,1,1,1,0
848
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
849
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
850
+ 58,0,3,150,283,1,0,162,0,1,2,0,2,1
851
+ 52,1,0,128,255,0,1,161,1,0,2,1,3,0
852
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
853
+ 37,1,2,130,250,0,1,187,0,3.5,0,0,2,1
854
+ 52,1,0,128,255,0,1,161,1,0,2,1,3,0
855
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
856
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
857
+ 46,1,1,101,197,1,1,156,0,0,2,0,3,1
858
+ 68,0,2,120,211,0,0,115,0,1.5,1,0,2,1
859
+ 43,1,0,115,303,0,1,181,0,1.2,1,0,2,1
860
+ 68,0,2,120,211,0,0,115,0,1.5,1,0,2,1
861
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
862
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
863
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
864
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
865
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
866
+ 59,1,3,160,273,0,0,125,0,0,2,0,2,0
867
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
868
+ 41,1,2,112,250,0,1,179,0,0,2,0,2,1
869
+ 41,1,1,110,235,0,1,153,0,0,2,0,2,1
870
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
871
+ 56,1,1,120,236,0,1,178,0,0.8,2,0,2,1
872
+ 48,0,2,130,275,0,1,139,0,0.2,2,0,2,1
873
+ 39,1,2,140,321,0,0,182,0,0,2,0,2,1
874
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
875
+ 57,1,0,140,192,0,1,148,0,0.4,1,0,1,1
876
+ 59,1,3,160,273,0,0,125,0,0,2,0,2,0
877
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
878
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
879
+ 43,0,2,122,213,0,1,165,0,0.2,1,0,2,1
880
+ 54,1,0,120,188,0,1,113,0,1.4,1,1,3,0
881
+ 59,1,0,138,271,0,0,182,0,0,2,0,2,1
882
+ 57,1,0,132,207,0,1,168,1,0,2,0,3,1
883
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
884
+ 57,1,0,130,131,0,1,115,1,1.2,1,1,3,0
885
+ 48,1,0,124,274,0,0,166,0,0.5,1,0,3,0
886
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
887
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
888
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
889
+ 57,1,0,110,201,0,1,126,1,1.5,1,0,1,1
890
+ 60,0,0,150,258,0,0,157,0,2.6,1,2,3,0
891
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
892
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
893
+ 64,0,0,180,325,0,1,154,1,0,2,0,2,1
894
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
895
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
896
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
897
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
898
+ 59,1,3,178,270,0,0,145,0,4.2,0,0,3,1
899
+ 52,1,1,134,201,0,1,158,0,0.8,2,1,2,1
900
+ 42,0,0,102,265,0,0,122,0,0.6,1,0,2,1
901
+ 59,1,0,135,234,0,1,161,0,0.5,1,0,3,1
902
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
903
+ 42,0,0,102,265,0,0,122,0,0.6,1,0,2,1
904
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
905
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
906
+ 55,1,1,130,262,0,1,155,0,0,2,0,2,1
907
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
908
+ 42,1,0,140,226,0,1,178,0,0,2,0,2,1
909
+ 50,0,1,120,244,0,1,162,0,1.1,2,0,2,1
910
+ 62,1,0,120,267,0,1,99,1,1.8,1,2,3,0
911
+ 50,1,0,144,200,0,0,126,1,0.9,1,0,3,0
912
+ 50,1,2,140,233,0,1,163,0,0.6,1,1,3,0
913
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
914
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
915
+ 45,1,0,104,208,0,0,148,1,3,1,0,2,1
916
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
917
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
918
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
919
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
920
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
921
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
922
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
923
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
924
+ 44,1,1,120,263,0,1,173,0,0,2,0,3,1
925
+ 54,1,0,140,239,0,1,160,0,1.2,2,0,2,1
926
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
927
+ 57,1,0,130,131,0,1,115,1,1.2,1,1,3,0
928
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
929
+ 42,1,2,120,240,1,1,194,0,0.8,0,0,3,1
930
+ 54,1,0,124,266,0,0,109,1,2.2,1,1,3,0
931
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
932
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
933
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
934
+ 51,0,2,140,308,0,0,142,0,1.5,2,1,2,1
935
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
936
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
937
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
938
+ 43,1,2,130,315,0,1,162,0,1.9,2,1,2,1
939
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
940
+ 53,1,0,142,226,0,0,111,1,0,2,0,3,1
941
+ 49,0,1,134,271,0,1,162,0,0,1,0,2,1
942
+ 57,0,0,140,241,0,1,123,1,0.2,1,0,3,0
943
+ 52,0,2,136,196,0,0,169,0,0.1,1,0,2,1
944
+ 69,0,3,140,239,0,1,151,0,1.8,2,2,2,1
945
+ 65,1,0,120,177,0,1,140,0,0.4,2,0,3,1
946
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
947
+ 56,1,3,120,193,0,0,162,0,1.9,1,0,3,1
948
+ 67,0,2,152,277,0,1,172,0,0,2,1,2,1
949
+ 54,0,2,160,201,0,1,163,0,0,2,1,2,1
950
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
951
+ 57,1,0,132,207,0,1,168,1,0,2,0,3,1
952
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
953
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
954
+ 54,0,2,135,304,1,1,170,0,0,2,0,2,1
955
+ 45,0,0,138,236,0,0,152,1,0.2,1,0,2,1
956
+ 53,0,0,130,264,0,0,143,0,0.4,1,0,2,1
957
+ 62,1,2,130,231,0,1,146,0,1.8,1,3,3,1
958
+ 49,0,0,130,269,0,1,163,0,0,2,0,2,1
959
+ 50,1,2,140,233,0,1,163,0,0.6,1,1,3,0
960
+ 65,0,2,140,417,1,0,157,0,0.8,2,1,2,1
961
+ 69,0,3,140,239,0,1,151,0,1.8,2,2,2,1
962
+ 52,0,2,136,196,0,0,169,0,0.1,1,0,2,1
963
+ 58,0,0,100,248,0,0,122,0,1,1,0,2,1
964
+ 52,1,0,108,233,1,1,147,0,0.1,2,3,3,1
965
+ 57,0,0,140,241,0,1,123,1,0.2,1,0,3,0
966
+ 44,0,2,108,141,0,1,175,0,0.6,1,0,2,1
967
+ 76,0,2,140,197,0,2,116,0,1.1,1,0,2,1
968
+ 58,1,0,128,259,0,0,130,1,3,1,2,3,0
969
+ 60,0,2,120,178,1,1,96,0,0,2,0,2,1
970
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
971
+ 52,1,1,120,325,0,1,172,0,0.2,2,0,2,1
972
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
973
+ 52,1,2,172,199,1,1,162,0,0.5,2,0,3,1
974
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
975
+ 51,1,2,125,245,1,0,166,0,2.4,1,0,2,1
976
+ 43,1,0,110,211,0,1,161,0,0,2,0,3,1
977
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
978
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
979
+ 52,1,1,128,205,1,1,184,0,0,2,0,2,1
980
+ 44,1,0,110,197,0,0,177,0,0,2,1,2,0
981
+ 45,1,0,142,309,0,0,147,1,0,1,3,3,0
982
+ 57,1,0,140,192,0,1,148,0,0.4,1,0,1,1
983
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
984
+ 67,0,0,106,223,0,1,142,0,0.3,2,2,2,1
985
+ 64,1,0,128,263,0,1,105,1,0.2,1,1,3,1
986
+ 59,1,0,135,234,0,1,161,0,0.5,1,0,3,1
987
+ 62,1,2,130,231,0,1,146,0,1.8,1,3,3,1
988
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
989
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
990
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
991
+ 71,0,1,160,302,0,1,162,0,0.4,2,2,2,1
992
+ 56,1,1,120,236,0,1,178,0,0.8,2,0,2,1
993
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
994
+ 50,0,0,110,254,0,0,159,0,0,2,0,2,1
995
+ 43,1,0,132,247,1,0,143,1,0.1,1,4,3,0
996
+ 59,1,0,110,239,0,0,142,1,1.2,1,1,3,0
997
+ 44,1,1,120,263,0,1,173,0,0,2,0,3,1
998
+ 56,0,0,134,409,0,0,150,1,1.9,1,2,3,0
999
+ 54,1,0,120,188,0,1,113,0,1.4,1,1,3,0
1000
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
1001
+ 67,1,0,125,254,1,1,163,0,0.2,1,2,3,0
1002
+ 64,1,0,145,212,0,0,132,0,2,1,2,1,0
1003
+ 42,1,0,140,226,0,1,178,0,0,2,0,2,1
1004
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
1005
+ 52,1,0,108,233,1,1,147,0,0.1,2,3,3,1
1006
+ 51,0,2,140,308,0,0,142,0,1.5,2,1,2,1
1007
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
1008
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
1009
+ 56,1,3,120,193,0,0,162,0,1.9,1,0,3,1
1010
+ 42,1,1,120,295,0,1,162,0,0,2,0,2,1
1011
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
1012
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
1013
+ 45,1,1,128,308,0,0,170,0,0,2,0,2,1
1014
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
1015
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
1016
+ 44,0,2,108,141,0,1,175,0,0.6,1,0,2,1
1017
+ 58,1,0,128,216,0,0,131,1,2.2,1,3,3,0
1018
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
1019
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
1020
+ 41,1,0,110,172,0,0,158,0,0,2,0,3,0
1021
+ 47,1,0,112,204,0,1,143,0,0.1,2,0,2,1
1022
+ 59,1,1,140,221,0,1,164,1,0,2,0,2,1
1023
+ 60,1,0,125,258,0,0,141,1,2.8,1,1,3,0
1024
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
1025
+ 50,0,0,110,254,0,0,159,0,0,2,0,2,1
1026
+ 54,1,0,120,188,0,1,113,0,1.4,1,1,3,0
model.py ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import os
3
+ from langchain.document_loaders.csv_loader import CSVLoader
4
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
5
+ from langchain.embeddings import HuggingFaceEmbeddings
6
+ from langchain.vectorstores import FAISS
7
+ from langchain.llms import CTransformers
8
+ from langchain.chains import ConversationalRetrievalChain
9
+
10
+ def add_vertical_space(spaces=1):
11
+ for _ in range(spaces):
12
+ st.sidebar.markdown("---")
13
+
14
+ def main():
15
+ st.set_page_config(page_title="Llama-2-GGML CSV Chatbot")
16
+ st.title("Llama-2-GGML CSV Chatbot")
17
+
18
+ st.sidebar.title("About")
19
+ st.sidebar.markdown('''
20
+ The Llama-2-GGML CSV Chatbot uses the **Llama-2-7B-Chat-GGML** model.
21
+
22
+ ### ๐Ÿ”„Bot evolving, stay tuned!
23
+
24
+ ## Useful Links ๐Ÿ”—
25
+
26
+ - **Model:** [Llama-2-7B-Chat-GGML](https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/tree/main) ๐Ÿ“š
27
+ - **GitHub:** [ThisIs-Developer/Llama-2-GGML-CSV-Chatbot](https://github.com/ThisIs-Developer/Llama-2-GGML-CSV-Chatbot) ๐Ÿ’ฌ
28
+ ''')
29
+
30
+ DB_FAISS_PATH = "vectorstore/db_faiss"
31
+ TEMP_DIR = "temp"
32
+
33
+ if not os.path.exists(TEMP_DIR):
34
+ os.makedirs(TEMP_DIR)
35
+
36
+ uploaded_file = st.sidebar.file_uploader("Upload CSV file", type=['csv'])
37
+
38
+ add_vertical_space(1)
39
+ st.sidebar.write('Made by [@ThisIs-Developer](https://huggingface.co/ThisIs-Developer)')
40
+
41
+ if uploaded_file is not None:
42
+ file_path = os.path.join(TEMP_DIR, uploaded_file.name)
43
+ with open(file_path, "wb") as f:
44
+ f.write(uploaded_file.getvalue())
45
+
46
+ st.write(f"Uploaded file: {uploaded_file.name}")
47
+ st.write("Processing CSV file...")
48
+
49
+ loader = CSVLoader(file_path=file_path, encoding="utf-8", csv_args={'delimiter': ','})
50
+ data = loader.load()
51
+
52
+ text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=20)
53
+ text_chunks = text_splitter.split_documents(data)
54
+
55
+ st.write(f"Total text chunks: {len(text_chunks)}")
56
+
57
+ embeddings = HuggingFaceEmbeddings(model_name='sentence-transformers/all-MiniLM-L6-v2')
58
+ docsearch = FAISS.from_documents(text_chunks, embeddings)
59
+ docsearch.save_local(DB_FAISS_PATH)
60
+
61
+ llm = CTransformers(model="models/llama-2-7b-chat.ggmlv3.q4_0.bin",
62
+ model_type="llama",
63
+ max_new_tokens=512,
64
+ temperature=0.1)
65
+
66
+ qa = ConversationalRetrievalChain.from_llm(llm, retriever=docsearch.as_retriever())
67
+
68
+ st.write("Enter your query:")
69
+ query = st.text_input("Input Prompt:")
70
+ if query:
71
+ with st.spinner("Processing your question..."):
72
+ chat_history = []
73
+ result = qa({"question": query, "chat_history": chat_history})
74
+ st.write("Response:", result['answer'])
75
+
76
+ os.remove(file_path)
77
+
78
+ if __name__ == "__main__":
79
+ main()
models/llama-2-7b-chat.ggmlv3.q4_0.bin.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Download the Llama 2 Model:
2
+
3
+ Download the Llama 2 model file named `llama-2-7b-chat.ggmlv3.q4_0.bin` from the following link:
4
+
5
+ [Download Llama 2 Model](https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/tree/main)
6
+
7
+ ### Llama 2 Model Information
8
+
9
+ | Name | Quant method | Bits | Size | Max RAM required |
10
+ |--------------------------------|--------------|------|---------|------------------|
11
+ | llama-2-7b-chat.ggmlv3.q4_0.bin | q4_0 | 4 | 3.79 GB | 6.29 GB |
12
+
13
+ **Note:** After downloading the model, add the model file to the `models` directory. The file should be located at `models\llama-2-7b-chat.ggmlv3.q4_0.bin`, in order to run the code.
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ langchain
2
+ ctransformers
3
+ sentence-transformers
4
+ faiss-cpu
vectorstore/db_faiss/index.faiss ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bc07d04f5d8fcb8448383a55c0e75e65095ae942b6bd3aeec058bff4ec1b894a
3
+ size 1574445
vectorstore/db_faiss/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6b9507192a93533b88c86b186e6fe7af0f0b2e297f464b1fc888ad6f28cb10ab
3
+ size 252805