harshith1411 commited on
Commit
ac292eb
·
verified ·
1 Parent(s): 976055f

Upload gen_ai(proj_47).ipynb

Browse files
Files changed (1) hide show
  1. gen_ai(proj_47).ipynb +857 -0
gen_ai(proj_47).ipynb ADDED
@@ -0,0 +1,857 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {
7
+ "colab": {
8
+ "base_uri": "https://localhost:8080/"
9
+ },
10
+ "id": "1UhcygQ3Xvl0",
11
+ "outputId": "ef65d3a7-2758-4345-8da8-ae899d2a73c1"
12
+ },
13
+ "outputs": [
14
+ {
15
+ "name": "stdout",
16
+ "output_type": "stream",
17
+ "text": [
18
+ "Collecting zipfile36\n",
19
+ " Downloading zipfile36-0.1.3-py3-none-any.whl.metadata (736 bytes)\n",
20
+ "Downloading zipfile36-0.1.3-py3-none-any.whl (20 kB)\n",
21
+ "Installing collected packages: zipfile36\n",
22
+ "Successfully installed zipfile36-0.1.3\n"
23
+ ]
24
+ }
25
+ ],
26
+ "source": [
27
+ "!pip install zipfile36"
28
+ ]
29
+ },
30
+ {
31
+ "cell_type": "code",
32
+ "execution_count": null,
33
+ "metadata": {
34
+ "colab": {
35
+ "base_uri": "https://localhost:8080/"
36
+ },
37
+ "id": "ktv3__0PVhvW",
38
+ "outputId": "59911ce3-7b6b-4ca1-b518-536d2676fdaa"
39
+ },
40
+ "outputs": [
41
+ {
42
+ "output_type": "stream",
43
+ "name": "stdout",
44
+ "text": [
45
+ " context \\\n",
46
+ "0 Super Bowl 50 was an American football game to... \n",
47
+ "1 One of the most famous people born in Warsaw w... \n",
48
+ "2 The Normans (Norman: Nourmands; French: Norman... \n",
49
+ "3 Nikola Tesla (Serbian Cyrillic: Никола Тесла; ... \n",
50
+ "4 Computational complexity theory is a branch of... \n",
51
+ "\n",
52
+ " question \\\n",
53
+ "0 Which NFL team represented the AFC at Super Bo... \n",
54
+ "1 What was Maria Curie the first female recipien... \n",
55
+ "2 In what country is Normandy located? \n",
56
+ "3 In what year was Nikola Tesla born? \n",
57
+ "4 What branch of theoretical computer science de... \n",
58
+ "\n",
59
+ " answer \n",
60
+ "0 Denver Broncos \n",
61
+ "1 Nobel Prize \n",
62
+ "2 France \n",
63
+ "3 1856 \n",
64
+ "4 Computational complexity theory \n"
65
+ ]
66
+ }
67
+ ],
68
+ "source": [
69
+ "import pandas as pd\n",
70
+ "import zipfile\n",
71
+ "\n",
72
+ "# Load the dataset\n",
73
+ "def load_data(file_path):\n",
74
+ " with zipfile.ZipFile(file_path, 'r') as zip_ref:\n",
75
+ " # Get the first JSON file in the archive\n",
76
+ " json_file = [f for f in zip_ref.namelist() if f.endswith('.json')][0]\n",
77
+ " # Extract the JSON file to memory and load it as a DataFrame\n",
78
+ " with zip_ref.open(json_file) as f:\n",
79
+ " df = pd.read_json(f)\n",
80
+ " return df\n",
81
+ "\n",
82
+ "\n",
83
+ "# Preprocess the dataset\n",
84
+ "def preprocess_data(df):\n",
85
+ " df['context'] = df['data'].apply(lambda x: x['paragraphs'][0]['context'])\n",
86
+ " df['question'] = df['data'].apply(lambda x: x['paragraphs'][0]['qas'][0]['question'])\n",
87
+ " df['answer'] = df['data'].apply(lambda x: x['paragraphs'][0]['qas'][0]['answers'][0]['text'])\n",
88
+ " return df[['context', 'question', 'answer']]\n",
89
+ "\n",
90
+ "# Main function for loading and preprocessing\n",
91
+ "if __name__ == '__main__':\n",
92
+ " file_path = '/content/drive/MyDrive/archive (22).zip'\n",
93
+ " df = load_data(file_path)\n",
94
+ " df = preprocess_data(df)\n",
95
+ " print(df.head())"
96
+ ]
97
+ },
98
+ {
99
+ "cell_type": "code",
100
+ "execution_count": null,
101
+ "metadata": {
102
+ "colab": {
103
+ "base_uri": "https://localhost:8080/"
104
+ },
105
+ "id": "s9iEqWHygwd2",
106
+ "outputId": "4b6c523d-8b6c-455b-ad2a-6a44f43854de"
107
+ },
108
+ "outputs": [
109
+ {
110
+ "output_type": "stream",
111
+ "name": "stdout",
112
+ "text": [
113
+ "Available topics in the dataset:\n",
114
+ "- Roman_Republic\n",
115
+ "- Prime_minister\n",
116
+ "- Daylight_saving_time\n",
117
+ "- Xbox_360\n",
118
+ "- Post-punk\n",
119
+ "- Database\n",
120
+ "- Beer\n",
121
+ "- ASCII\n",
122
+ "- Southeast_Asia\n",
123
+ "- Time\n",
124
+ "- Software_testing\n",
125
+ "- Classical_music\n",
126
+ "- Sumer\n",
127
+ "- Race_(human_categorization)\n",
128
+ "- Computer\n",
129
+ "- Himachal_Pradesh\n",
130
+ "- Hindu_philosophy\n",
131
+ "- Boston\n",
132
+ "- Cubism\n",
133
+ "- Pope_John_XXIII\n",
134
+ "- Seattle\n",
135
+ "- Alsace\n",
136
+ "- Ashkenazi_Jews\n",
137
+ "- Idealism\n",
138
+ "- Edmund_Burke\n",
139
+ "- Franco-Prussian_War\n",
140
+ "- Pope_Paul_VI\n",
141
+ "- Republic_of_the_Congo\n",
142
+ "- Montevideo\n",
143
+ "- Alexander_Graham_Bell\n",
144
+ "- CBC_Television\n",
145
+ "- MP3\n",
146
+ "- States_of_Germany\n",
147
+ "- Mammal\n",
148
+ "- 51st_state\n",
149
+ "- Hokkien\n",
150
+ "- Digestion\n",
151
+ "- Cyprus\n",
152
+ "- Southampton\n",
153
+ "- Russian_Soviet_Federative_Socialist_Republic\n",
154
+ "- British_Isles\n",
155
+ "- Digimon\n",
156
+ "- Anthropology\n",
157
+ "- Web_browser\n",
158
+ "- Green\n",
159
+ "- Mexico_City\n",
160
+ "- Slavs\n",
161
+ "- Communications_in_Somalia\n",
162
+ "- Insect\n",
163
+ "- Child_labour\n",
164
+ "- Orthodox_Judaism\n",
165
+ "- The_Sun_(United_Kingdom)\n",
166
+ "- Red\n",
167
+ "- Presbyterianism\n",
168
+ "- Elevator\n",
169
+ "- Punjab,_Pakistan\n",
170
+ "- Cardinal_(Catholicism)\n",
171
+ "- 2008_Sichuan_earthquake\n",
172
+ "- Samurai\n",
173
+ "- Association_football\n",
174
+ "- Identity_(social_science)\n",
175
+ "- Aircraft_carrier\n",
176
+ "- Group_(mathematics)\n",
177
+ "- United_States_dollar\n",
178
+ "- Political_philosophy\n",
179
+ "- Airport\n",
180
+ "- General_Electric\n",
181
+ "- Virgil\n",
182
+ "- Flowering_plant\n",
183
+ "- Circadian_rhythm\n",
184
+ "- Nonprofit_organization\n",
185
+ "- Comics\n",
186
+ "- The_Blitz\n",
187
+ "- Marvel_Comics\n",
188
+ "- Gymnastics\n",
189
+ "- United_States_Army\n",
190
+ "- The_Legend_of_Zelda:_Twilight_Princess\n",
191
+ "- Tuvalu\n",
192
+ "- Somalis\n",
193
+ "- Paris\n",
194
+ "- Antibiotics\n",
195
+ "- Neolithic\n",
196
+ "- Napoleon\n",
197
+ "- Treaty\n",
198
+ "- Raleigh,_North_Carolina\n",
199
+ "- Palermo\n",
200
+ "- Central_Intelligence_Agency\n",
201
+ "- Miami\n",
202
+ "- Pub\n",
203
+ "- Southern_Europe\n",
204
+ "- Szlachta\n",
205
+ "- Internet_service_provider\n",
206
+ "- Capacitor\n",
207
+ "- Military_history_of_the_United_States\n",
208
+ "- Spectre_(2015_film)\n",
209
+ "- Biodiversity\n",
210
+ "- Houston\n",
211
+ "- Arena_Football_League\n",
212
+ "- Guinea-Bissau\n",
213
+ "- Mary_(mother_of_Jesus)\n",
214
+ "- Switzerland\n",
215
+ "- Renewable_energy_commercialization\n",
216
+ "- Dutch_Republic\n",
217
+ "- Namibia\n",
218
+ "- Intellectual_property\n",
219
+ "- Videoconferencing\n",
220
+ "- Jehovah%27s_Witnesses\n",
221
+ "- Arsenal_F.C.\n",
222
+ "- London\n",
223
+ "- Atlantic_City,_New_Jersey\n",
224
+ "- Greeks\n",
225
+ "- Gamal_Abdel_Nasser\n",
226
+ "- YouTube\n",
227
+ "- Molotov%E2%80%93Ribbentrop_Pact\n",
228
+ "- St._John%27s,_Newfoundland_and_Labrador\n",
229
+ "- Hellenistic_period\n",
230
+ "- USB\n",
231
+ "- Hydrogen\n",
232
+ "- Late_Middle_Ages\n",
233
+ "- Neoclassical_architecture\n",
234
+ "- Somerset\n",
235
+ "- Westminster_Abbey\n",
236
+ "- Federal_Aviation_Administration\n",
237
+ "- Mali\n",
238
+ "- Uranium\n",
239
+ "- Oklahoma\n",
240
+ "- Chinese_characters\n",
241
+ "- Alfred_North_Whitehead\n",
242
+ "- Multiracial_American\n",
243
+ "- The_Bronx\n",
244
+ "- Protestantism\n",
245
+ "- Nanjing\n",
246
+ "- Royal_assent\n",
247
+ "- Near_East\n",
248
+ "- Adolescence\n",
249
+ "- Separation_of_church_and_state_in_the_United_States\n",
250
+ "- Infection\n",
251
+ "- Data_compression\n",
252
+ "- Glass\n",
253
+ "- BeiDou_Navigation_Satellite_System\n",
254
+ "- IPod\n",
255
+ "- Film_speed\n",
256
+ "- Estonian_language\n",
257
+ "- Universal_Studios\n",
258
+ "- Buckingham_Palace\n",
259
+ "- United_States_presidential_election,_2004\n",
260
+ "- History_of_India\n",
261
+ "- Aspirated_consonant\n",
262
+ "- Economy_of_Greece\n",
263
+ "- Matter\n",
264
+ "- Human_Development_Index\n",
265
+ "- History_of_science\n",
266
+ "- Royal_Institute_of_British_Architects\n",
267
+ "- Hunter-gatherer\n",
268
+ "- Iranian_languages\n",
269
+ "- Thuringia\n",
270
+ "- Financial_crisis_of_2007%E2%80%9308\n",
271
+ "- LaserDisc\n",
272
+ "- Dell\n",
273
+ "- Letter_case\n",
274
+ "- East_Prussia\n",
275
+ "- John_von_Neumann\n",
276
+ "- Crucifixion_of_Jesus\n",
277
+ "- Carnival\n",
278
+ "- Avicenna\n",
279
+ "- Northwestern_University\n",
280
+ "- Royal_Dutch_Shell\n",
281
+ "- Gene\n",
282
+ "- Crimean_War\n",
283
+ "- Pitch_(music)\n",
284
+ "- Materialism\n",
285
+ "- Vacuum\n",
286
+ "- Antarctica\n",
287
+ "- Race_and_ethnicity_in_the_United_States_Census\n",
288
+ "- Kathmandu\n",
289
+ "- Immaculate_Conception\n",
290
+ "- Copyright_infringement\n",
291
+ "- Liberal_Party_of_Australia\n",
292
+ "- Hunting\n",
293
+ "- Translation\n",
294
+ "- Elizabeth_II\n",
295
+ "- Czech_language\n",
296
+ "- Central_African_Republic\n",
297
+ "- Humanism\n",
298
+ "- Geography_of_the_United_States\n",
299
+ "- Rule_of_law\n",
300
+ "- Egypt\n",
301
+ "- Communication\n",
302
+ "- Transistor\n",
303
+ "- United_States_Air_Force\n",
304
+ "- Saint_Helena\n",
305
+ "- Greece\n",
306
+ "- San_Diego\n",
307
+ "- Mandolin\n",
308
+ "- Beyoncé\n",
309
+ "- Ottoman_Empire\n",
310
+ "- Bern\n",
311
+ "- Everton_F.C.\n",
312
+ "- Hanover\n",
313
+ "- Galicia_(Spain)\n",
314
+ "- Great_power\n",
315
+ "- Catalan_language\n",
316
+ "- Madonna_(entertainer)\n",
317
+ "- Brigham_Young_University\n",
318
+ "- PlayStation_3\n",
319
+ "- Madrasa\n",
320
+ "- Great_Plains\n",
321
+ "- Israel\n",
322
+ "- Pacific_War\n",
323
+ "- Cotton\n",
324
+ "- Nigeria\n",
325
+ "- Ann_Arbor,_Michigan\n",
326
+ "- Geological_history_of_Earth\n",
327
+ "- Hard_rock\n",
328
+ "- Umayyad_Caliphate\n",
329
+ "- Oklahoma_City\n",
330
+ "- Myanmar\n",
331
+ "- Norfolk_Island\n",
332
+ "- Florida\n",
333
+ "- Dwight_D._Eisenhower\n",
334
+ "- Swaziland\n",
335
+ "- Annelid\n",
336
+ "- Apollo\n",
337
+ "- American_Idol\n",
338
+ "- Nutrition\n",
339
+ "- Ministry_of_Defence_(United_Kingdom)\n",
340
+ "- Neptune\n",
341
+ "- Hyderabad\n",
342
+ "- Animal\n",
343
+ "- Valencia\n",
344
+ "- Wayback_Machine\n",
345
+ "- Exhibition_game\n",
346
+ "- Light-emitting_diode\n",
347
+ "- Modern_history\n",
348
+ "- University_of_Kansas\n",
349
+ "- Bird\n",
350
+ "- Richard_Feynman\n",
351
+ "- Tennessee\n",
352
+ "- Party_leaders_of_the_United_States_House_of_Representatives\n",
353
+ "- United_Nations_Population_Fund\n",
354
+ "- Estonia\n",
355
+ "- Sexual_orientation\n",
356
+ "- Copper\n",
357
+ "- IBM\n",
358
+ "- Washington_University_in_St._Louis\n",
359
+ "- Imperial_College_London\n",
360
+ "- Empiricism\n",
361
+ "- Separation_of_powers_under_the_United_States_Constitution\n",
362
+ "- Samoa\n",
363
+ "- Liberia\n",
364
+ "- Muammar_Gaddafi\n",
365
+ "- Imamah_(Shia_doctrine)\n",
366
+ "- Jews\n",
367
+ "- List_of_numbered_streets_in_Manhattan\n",
368
+ "- Tibet\n",
369
+ "- Serbo-Croatian\n",
370
+ "- Railway_electrification_system\n",
371
+ "- Pain\n",
372
+ "- Alloy\n",
373
+ "- Lancashire\n",
374
+ "- Law_of_the_United_States\n",
375
+ "- Infrared\n",
376
+ "- Tuberculosis\n",
377
+ "- Tristan_da_Cunha\n",
378
+ "- Buddhism\n",
379
+ "- John,_King_of_England\n",
380
+ "- Premier_League\n",
381
+ "- Frédéric_Chopin\n",
382
+ "- Phonology\n",
383
+ "- Solar_energy\n",
384
+ "- Steven_Spielberg\n",
385
+ "- Department_store\n",
386
+ "- Armenia\n",
387
+ "- Genocide\n",
388
+ "- Heian_period\n",
389
+ "- House_music\n",
390
+ "- Strasbourg\n",
391
+ "- BBC_Television\n",
392
+ "- Incandescent_light_bulb\n",
393
+ "- Muslim_world\n",
394
+ "- Tucson,_Arizona\n",
395
+ "- Nintendo_Entertainment_System\n",
396
+ "- Utrecht\n",
397
+ "- Bird_migration\n",
398
+ "- Arnold_Schwarzenegger\n",
399
+ "- Bacteria\n",
400
+ "- Melbourne\n",
401
+ "- Charleston,_South_Carolina\n",
402
+ "- Printed_circuit_board\n",
403
+ "- Affirmative_action_in_the_United_States\n",
404
+ "- Philadelphia\n",
405
+ "- Old_English\n",
406
+ "- Sino-Tibetan_relations_during_the_Ming_dynasty\n",
407
+ "- Adult_contemporary_music\n",
408
+ "- Saint_Barth%C3%A9lemy\n",
409
+ "- Eritrea\n",
410
+ "- Yale_University\n",
411
+ "- Super_Nintendo_Entertainment_System\n",
412
+ "- Federalism\n",
413
+ "- Rajasthan\n",
414
+ "- The_Times\n",
415
+ "- Political_party\n",
416
+ "- Diarrhea\n",
417
+ "- Wood\n",
418
+ "- Santa_Monica,_California\n",
419
+ "- Zinc\n",
420
+ "- Unicode\n",
421
+ "- On_the_Origin_of_Species\n",
422
+ "- Guam\n",
423
+ "- Black_people\n",
424
+ "- Richmond,_Virginia\n",
425
+ "- 2008_Summer_Olympics_torch_relay\n",
426
+ "- Friedrich_Hayek\n",
427
+ "- Indigenous_peoples_of_the_Americas\n",
428
+ "- Gothic_architecture\n",
429
+ "- Institute_of_technology\n",
430
+ "- Grape\n",
431
+ "- Bermuda\n",
432
+ "- Middle_Ages\n",
433
+ "- Christian\n",
434
+ "- Asthma\n",
435
+ "- Bill_%26_Melinda_Gates_Foundation\n",
436
+ "- Heresy\n",
437
+ "- Chicago_Cubs\n",
438
+ "- Mosaic\n",
439
+ "- FA_Cup\n",
440
+ "- Queen_(band)\n",
441
+ "- FC_Barcelona\n",
442
+ "- Appalachian_Mountains\n",
443
+ "- Dialect\n",
444
+ "- Korean_War\n",
445
+ "- British_Empire\n",
446
+ "- God\n",
447
+ "- Georgian_architecture\n",
448
+ "- A_cappella\n",
449
+ "- Karl_Popper\n",
450
+ "- Seven_Years%27_War\n",
451
+ "- Kanye_West\n",
452
+ "- Predation\n",
453
+ "- Josip_Broz_Tito\n",
454
+ "- Textual_criticism\n",
455
+ "- University\n",
456
+ "- Electric_motor\n",
457
+ "- New_Delhi\n",
458
+ "- England_national_football_team\n",
459
+ "- University_of_Notre_Dame\n",
460
+ "- Sony_Music_Entertainment\n",
461
+ "- Portugal\n",
462
+ "- George_VI\n",
463
+ "- Asphalt\n",
464
+ "- Energy\n",
465
+ "- Immunology\n",
466
+ "- Pesticide\n",
467
+ "- European_Central_Bank\n",
468
+ "- Emotion\n",
469
+ "- Windows_8\n",
470
+ "- Memory\n",
471
+ "- North_Carolina\n",
472
+ "- Freemasonry\n",
473
+ "- Philosophy_of_space_and_time\n",
474
+ "- Police\n",
475
+ "- Canadian_football\n",
476
+ "- Symbiosis\n",
477
+ "- Gramophone_record\n",
478
+ "- Clothing\n",
479
+ "- Poultry\n",
480
+ "- Armenians\n",
481
+ "- Dog\n",
482
+ "- Planck_constant\n",
483
+ "- High-definition_television\n",
484
+ "- Germans\n",
485
+ "- Capital_punishment_in_the_United_States\n",
486
+ "- Professional_wrestling\n",
487
+ "- Political_corruption\n",
488
+ "- Dominican_Order\n",
489
+ "- Endangered_Species_Act\n",
490
+ "- Zhejiang\n",
491
+ "- Canadian_Armed_Forces\n",
492
+ "- Pharmaceutical_industry\n",
493
+ "- Alaska\n",
494
+ "- New_York_City\n",
495
+ "- Macintosh\n",
496
+ "- Botany\n",
497
+ "- Tajikistan\n",
498
+ "- Federal_Bureau_of_Investigation\n",
499
+ "- Cork_(city)\n",
500
+ "- Dissolution_of_the_Soviet_Union\n",
501
+ "- Comcast\n",
502
+ "- Labour_Party_(UK)\n",
503
+ "- New_Haven,_Connecticut\n",
504
+ "- Order_of_the_British_Empire\n",
505
+ "- Dutch_language\n",
506
+ "- Compact_disc\n",
507
+ "- Bras%C3%ADlia\n",
508
+ "- To_Kill_a_Mockingbird\n",
509
+ "- Sichuan\n",
510
+ "- John_Kerry\n",
511
+ "- Computer_security\n",
512
+ "- Sanskrit\n",
513
+ "- Detroit\n",
514
+ "- Athanasius_of_Alexandria\n",
515
+ "- Space_Race\n",
516
+ "- Anti-aircraft_warfare\n",
517
+ "- Baptists\n",
518
+ "- Quran\n",
519
+ "- Architecture\n",
520
+ "- Myocardial_infarction\n",
521
+ "- Eton_College\n",
522
+ "- Mesozoic\n",
523
+ "- Qing_dynasty\n",
524
+ "- Montana\n",
525
+ "- Education\n",
526
+ "- Literature\n",
527
+ "- Comprehensive_school\n",
528
+ "- Plymouth\n",
529
+ "- Glacier\n",
530
+ "- Lighting\n",
531
+ "- Turner_Classic_Movies\n",
532
+ "- Queen_Victoria\n",
533
+ "- Paper\n",
534
+ "- East_India_Company\n",
535
+ "- Spanish_language_in_the_United_States\n",
536
+ "- Han_dynasty\n",
537
+ "- Gregorian_calendar\n",
538
+ "- Supreme_court\n",
539
+ "- Sahara\n",
540
+ "- Culture\n",
541
+ "- Religion_in_ancient_Rome\n",
542
+ "- Chihuahua_(state)\n",
543
+ "- Canon_law\n",
544
+ "- Kievan_Rus%27\n",
545
+ "- National_Archives_and_Records_Administration\n",
546
+ "- Marshall_Islands\n",
547
+ "- Alps\n",
548
+ "- Age_of_Enlightenment\n",
549
+ "- War_on_Terror\n",
550
+ "- Russian_language\n",
551
+ "- Iran\n",
552
+ "- Genome\n",
553
+ "- Antenna_(radio)\n",
554
+ "- Brain\n",
555
+ "- Warsaw_Pact\n"
556
+ ]
557
+ }
558
+ ],
559
+ "source": [
560
+ "import pandas as pd\n",
561
+ "import zipfile\n",
562
+ "\n",
563
+ "def extract_topics():\n",
564
+ " # Load the dataset\n",
565
+ " # Instead of directly reading the zip file, extract the relevant JSON file first.\n",
566
+ " with zipfile.ZipFile('/content/drive/MyDrive/archive (22).zip', 'r') as zip_ref:\n",
567
+ " # Assuming you want to use 'train-v1.1.json', change this if needed.\n",
568
+ " json_file = 'train-v1.1.json'\n",
569
+ " with zip_ref.open(json_file) as f:\n",
570
+ " data = pd.read_json(f)\n",
571
+ " topics = set()\n",
572
+ "\n",
573
+ " # Extract unique topic names from the dataset\n",
574
+ " for item in data['data']:\n",
575
+ " for paragraph in item['paragraphs']:\n",
576
+ " topics.add(item['title']) # Assuming 'title' represents the topic\n",
577
+ "\n",
578
+ " return topics\n",
579
+ "\n",
580
+ "if __name__ == \"__main__\":\n",
581
+ " topics = extract_topics()\n",
582
+ " print(\"Available topics in the dataset:\")\n",
583
+ " for topic in topics:\n",
584
+ " print(f\"- {topic}\")"
585
+ ]
586
+ },
587
+ {
588
+ "cell_type": "code",
589
+ "source": [
590
+ "import pandas as pd\n",
591
+ "import random\n",
592
+ "import zipfile\n",
593
+ "\n",
594
+ "def generate_incorrect_options(data, correct_answer, topic):\n",
595
+ " \"\"\"Generate plausible incorrect options based on the dataset and the topic context.\"\"\"\n",
596
+ " incorrect_options = set()\n",
597
+ "\n",
598
+ " # Collect all possible answers from the dataset that are related to the topic\n",
599
+ " all_answers = []\n",
600
+ " for item in data['data']:\n",
601
+ " for paragraph in item['paragraphs']:\n",
602
+ " for qa in paragraph['qas']:\n",
603
+ " if qa['answers']:\n",
604
+ " for ans in qa['answers']:\n",
605
+ " if topic.lower() in ans['text'].lower(): # Check if the answer is related to the topic\n",
606
+ " all_answers.append(ans['text'])\n",
607
+ "\n",
608
+ " # Remove the correct answer from the list of possible incorrect options\n",
609
+ " all_answers = list(set(all_answers)) # Remove duplicates\n",
610
+ " if correct_answer in all_answers:\n",
611
+ " all_answers.remove(correct_answer)\n",
612
+ "\n",
613
+ " # Randomly select three unique incorrect options\n",
614
+ " while len(incorrect_options) < 3 and all_answers:\n",
615
+ " incorrect_option = random.choice(all_answers)\n",
616
+ " incorrect_options.add(incorrect_option)\n",
617
+ "\n",
618
+ " return list(incorrect_options)\n",
619
+ "\n",
620
+ "def generate_fill_in_the_blank(question, correct_answer):\n",
621
+ " \"\"\"Generate a fill-in-the-blank question with a placeholder.\"\"\"\n",
622
+ " return question.replace(correct_answer, \"______\")\n",
623
+ "\n",
624
+ "def generate_true_false_question(question, correct_answer):\n",
625
+ " \"\"\"Generate a true/false question.\"\"\"\n",
626
+ " return f\"True or False: {question} (Answer: {'True' if correct_answer else 'False'})\"\n",
627
+ "\n",
628
+ "def generate_quiz_from_dataset(topic, num_questions, question_type):\n",
629
+ " # Extract and load the dataset from the zip file\n",
630
+ " with zipfile.ZipFile('/content/drive/MyDrive/archive (22).zip', 'r') as zip_ref:\n",
631
+ " # Use the 'train-v1.1.json' file within the zip archive\n",
632
+ " json_file = 'train-v1.1.json'\n",
633
+ " with zip_ref.open(json_file) as f:\n",
634
+ " data = pd.read_json(f)\n",
635
+ "\n",
636
+ " questions = []\n",
637
+ "\n",
638
+ " # Filter questions based on the topic\n",
639
+ " for item in data['data']:\n",
640
+ " for paragraph in item['paragraphs']:\n",
641
+ " for qa in paragraph['qas']:\n",
642
+ " question = qa['question']\n",
643
+ " answer = qa['answers'][0]['text'] if qa['answers'] else \"No answer available\"\n",
644
+ " if topic.lower() in question.lower():\n",
645
+ " questions.append((question, answer))\n",
646
+ "\n",
647
+ " if not questions:\n",
648
+ " print(\"No questions found for this topic.\")\n",
649
+ " return\n",
650
+ "\n",
651
+ " # Shuffle questions and select the specified number\n",
652
+ " random.shuffle(questions)\n",
653
+ " selected_questions = questions[:num_questions]\n",
654
+ "\n",
655
+ " for index, (question, answer) in enumerate(selected_questions, start=1):\n",
656
+ " if question_type == 'mcq':\n",
657
+ " print(f\"Question {index}: {question}\")\n",
658
+ "\n",
659
+ " # Generate plausible incorrect options based on the dataset and topic context\n",
660
+ " incorrect_options = generate_incorrect_options(data, answer, topic)\n",
661
+ "\n",
662
+ " # Combine correct answer with incorrect options\n",
663
+ " options = [answer] + incorrect_options\n",
664
+ " random.shuffle(options)\n",
665
+ "\n",
666
+ " # Format options as A, B, C, D\n",
667
+ " for i, option in enumerate(options):\n",
668
+ " print(f\"{chr(65 + i)}) {option}\")\n",
669
+ "\n",
670
+ " # Find the correct answer's position\n",
671
+ " correct_index = options.index(answer)\n",
672
+ " print(f\"Answer: {chr(65 + correct_index)}) {answer}\")\n",
673
+ " print(\"=\" * 50)\n",
674
+ "\n",
675
+ " elif question_type == 'fill-in-the-blank':\n",
676
+ " fill_in_question = generate_fill_in_the_blank(question, answer)\n",
677
+ " print(f\"Fill in the blank {index}: {fill_in_question}\")\n",
678
+ " print(f\"Answer: {answer}\")\n",
679
+ " print(\"=\" * 50)\n",
680
+ "\n",
681
+ " elif question_type == 'true/false':\n",
682
+ " true_false_question = generate_true_false_question(question, answer)\n",
683
+ " print(f\"True/False Question {index}: {true_false_question}\")\n",
684
+ " print(\"=\" * 50)\n",
685
+ "\n",
686
+ "if __name__ == \"__main__\":\n",
687
+ " topic = input(\"Enter the topic for the quiz: \")\n",
688
+ " num_questions = int(input(\"Enter the number of questions to generate: \"))\n",
689
+ " question_type = input(\"Enter question type (mcq/fill-in-the-blank/true/false): \").lower()\n",
690
+ " generate_quiz_from_dataset(topic, num_questions, question_type)\n"
691
+ ],
692
+ "metadata": {
693
+ "colab": {
694
+ "base_uri": "https://localhost:8080/"
695
+ },
696
+ "id": "xklEl5W_jqYM",
697
+ "outputId": "35b6b061-037a-4936-aa43-de77cbd6ef77"
698
+ },
699
+ "execution_count": null,
700
+ "outputs": [
701
+ {
702
+ "output_type": "stream",
703
+ "name": "stdout",
704
+ "text": [
705
+ "Enter the topic for the quiz: Database\n",
706
+ "Enter the number of questions to generate: 5\n",
707
+ "Enter question type (mcq/fill-in-the-blank/true/false): mcq\n",
708
+ "Question 1: What was the name of the database product created by IBM?\n",
709
+ "A) SQL/DS, and, later, Database 2 (DB2)\n",
710
+ "B) not be placed in the database\n",
711
+ "C) unauthorized users from viewing or updating the database\n",
712
+ "D) Database Task Group\n",
713
+ "Answer: A) SQL/DS, and, later, Database 2 (DB2)\n",
714
+ "==================================================\n",
715
+ "Question 2: The IANA database works by connecting names to what information about the location?\n",
716
+ "A) database is found corrupted\n",
717
+ "B) managing personal databases\n",
718
+ "C) database related application\n",
719
+ "D) historical and predicted clock shifts\n",
720
+ "Answer: D) historical and predicted clock shifts\n",
721
+ "==================================================\n",
722
+ "Question 3: How are today's database systems run?\n",
723
+ "A) structured document-oriented database\n",
724
+ "B) general-purpose hardware\n",
725
+ "C) database technology\n",
726
+ "D) SQL/DS, and, later, Database 2 (DB2)\n",
727
+ "Answer: B) general-purpose hardware\n",
728
+ "==================================================\n",
729
+ "Question 4: What database language is the most prominent?\n",
730
+ "A) unauthorized users from viewing or updating the database\n",
731
+ "B) SQL\n",
732
+ "C) relational database management system\n",
733
+ "D) database technology\n",
734
+ "Answer: B) SQL\n",
735
+ "==================================================\n",
736
+ "Question 5: What does database access limit?\n",
737
+ "A) by a \"database management system\" (DBMS)\n",
738
+ "B) who (a person or a certain computer program) is allowed to access what information\n",
739
+ "C) database technology\n",
740
+ "D) database is found corrupted\n",
741
+ "Answer: B) who (a person or a certain computer program) is allowed to access what information\n",
742
+ "==================================================\n"
743
+ ]
744
+ }
745
+ ]
746
+ },
747
+ {
748
+ "cell_type": "code",
749
+ "source": [
750
+ "import pandas as pd\n",
751
+ "import seaborn as sns\n",
752
+ "import matplotlib.pyplot as plt\n",
753
+ "import zipfile\n",
754
+ "\n",
755
+ "# Load dataset from a URL (replace with your link)\n",
756
+ "dataset_url = '/content/drive/MyDrive/archive (22).zip'\n",
757
+ "\n",
758
+ "json_file = 'train-v1.1.json'\n",
759
+ "\n",
760
+ "# Extract the JSON file from the zip archive\n",
761
+ "with zipfile.ZipFile(dataset_url, 'r') as zip_ref:\n",
762
+ " with zip_ref.open(json_file) as f:\n",
763
+ " df = pd.read_json(f)\n",
764
+ "\n",
765
+ "# Preview the dataset\n",
766
+ "print(df.head())\n",
767
+ "\n",
768
+ "\n",
769
+ "numerical_df = df[['version']].copy()\n",
770
+ "if not numerical_df.empty:\n",
771
+ " plt.figure(figsize=(8, 6))\n",
772
+ " sns.heatmap(numerical_df.corr(), annot=True, cmap='coolwarm')\n",
773
+ " plt.title('Heatmap of Quiz Data Correlations (Numerical Columns)')\n",
774
+ " plt.show()\n",
775
+ "else:\n",
776
+ " print(\"No numerical columns found for correlation analysis.\")\n",
777
+ "\n",
778
+ "\n",
779
+ "plt.figure(figsize=(8, 6))\n",
780
+ "question_counts = df['data'].apply(lambda x: len(x['paragraphs'][0]['qas'])).value_counts()\n",
781
+ "question_counts.plot(kind='bar')\n",
782
+ "plt.title('Bar Plot of Question Frequency')\n",
783
+ "plt.xlabel('Number of Questions')\n",
784
+ "plt.ylabel('Frequency')\n",
785
+ "plt.xticks(rotation=0)\n",
786
+ "plt.show()"
787
+ ],
788
+ "metadata": {
789
+ "colab": {
790
+ "base_uri": "https://localhost:8080/",
791
+ "height": 1000
792
+ },
793
+ "id": "x1TC97wS2zJq",
794
+ "outputId": "35056826-a310-4873-d048-c77929416a13"
795
+ },
796
+ "execution_count": 5,
797
+ "outputs": [
798
+ {
799
+ "output_type": "stream",
800
+ "name": "stdout",
801
+ "text": [
802
+ " data version\n",
803
+ "0 {'title': 'University_of_Notre_Dame', 'paragra... 1.1\n",
804
+ "1 {'title': 'Beyoncé', 'paragraphs': [{'context'... 1.1\n",
805
+ "2 {'title': 'Montana', 'paragraphs': [{'context'... 1.1\n",
806
+ "3 {'title': 'Genocide', 'paragraphs': [{'context... 1.1\n",
807
+ "4 {'title': 'Antibiotics', 'paragraphs': [{'cont... 1.1\n"
808
+ ]
809
+ },
810
+ {
811
+ "output_type": "stream",
812
+ "name": "stderr",
813
+ "text": [
814
+ "/usr/local/lib/python3.11/dist-packages/seaborn/matrix.py:202: RuntimeWarning: All-NaN slice encountered\n",
815
+ " vmin = np.nanmin(calc_data)\n",
816
+ "/usr/local/lib/python3.11/dist-packages/seaborn/matrix.py:207: RuntimeWarning: All-NaN slice encountered\n",
817
+ " vmax = np.nanmax(calc_data)\n"
818
+ ]
819
+ },
820
+ {
821
+ "output_type": "display_data",
822
+ "data": {
823
+ "text/plain": [
824
+ "<Figure size 800x600 with 2 Axes>"
825
+ ],
826
+ "image/png": "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j4t54n1iGOdfk+PGjXP87Oq1fal6SjIGDRpkfPjhh0b9+vWNgIAAo2XLlsa2bdsMwzCM6dOnGzfddJPh7+9vtG7dukgbeuJ1GxoaagwdOtRECwHn/SkijidOnNDRo0eLpLv6a/L555/XM888o+7du6t///46cuSI3nzzTd1xxx3asmWLQkJCJEmLFi3SmTNn9Oijj6pChQrasGGD3nzzTR04cECLFi2SJD388MP67bfftGLFCr333nsu6zZv3jzl5eVpyJAhys7O1ksvvaTu3burXbt2Wrt2rUaPHq2ffvpJb775ph5//HHNmjXLce2cOXMUGBiopKQkBQYGavXq1Ro7dqxOnjypl19+2ek+x48fV6dOndS9e3f16tVLH374oR599FH5+fnpoYceKrb9+vfvr7lz56pbt24aOXKk1q9fr5SUFO3cuVOffPKJJOm9997TjBkztGHDBr3zzjuSpFatWrksb/fu3crIyFDfvn0VFBTkMk/v3r01btw4ff755+revXux9buc+vXrF2n/nJwcJSUlqVKlSldV9j//+U/NmDFDy5cv15133impZF4br7/+ujp37qzExETl5eVpwYIFuu+++5Samqq77rrrkvXZvXu3du3apYceekjlypW7bP3/+OMPtWnTRj/99JMGDx6sWrVqadGiRerbt69ycnI0bNgwp/yzZ8/W2bNnNXDgQPn7+ys0NNRx7r777lPdunX1wgsvOIa2zL6fXDHTBu+995769++vFi1aaODAgZKkm2666ZJljh8/XhMmTFBcXJweffRRZWRk6K233tLGjRu1bt06p6jT8ePH1bFjR3Xt2lXdu3fXRx99pNGjR6tRo0b6+9//Lkn697//raFDh6pbt24aNmyYzp49q23btmn9+vW6//77L1mPgwcPav/+/WrWrNkl8wwbNkyTJk3S+PHjSzTq+NNPP+n+++/Xww8/rAceeECvvPKK7rnnHk2fPl1PPvmkHnvsMUlSSkqKunfvroyMDPn4nJ+1tGPHDt12222qWrWqxowZo7Jly+rDDz9Uly5dtHjxYv3jH/9wutdjjz2msLAwjR07VqdPn75knebMmaOHHnpIt9xyi5KTkxUSEqItW7Zo2bJljnY0874yy9Pvk6vxzTff6LPPPtOgQYMknf893H333Ro1apSmTZumxx57TMePH9dLL72khx56SKtXr3a6vqRft82aNdO6detK7PnwF3Cte65Xo/Av2+KOCyOOe/fuNXx9fY3nn3/eqZzvv//eKFWqlFP6xX/lGoZhpKSkGDabzdi3b58jbdCgQS7/+i2MHISFhRk5OTmO9OTkZEOS0aRJEyM/P9+R3qtXL8PPz88pyueqDg8//LBxww03OOVr3bq1Icl49dVXHWm5ublGVFSUUalSJSMvL69o4/1/W7duNSQZ/fv3d0p//PHHDUnG6tWrHWl9+vQxypYte8myCi1ZssSQZEyaNKnYfEFBQUazZs0cP19pxPFidrvduPvuu43AwEBjx44dxdbhchHH48ePG5KMf/zjH460q31tuCojLy/PaNiwodGuXbti6/vpp5+aattCkydPNiQZ77//vtO9YmNjjcDAQEc0prBNg4KCjMOHDzuVUdhGvXr1ckp35/3kKipjtg3Kli3r8nVxcWTr8OHDhp+fn9GhQwfj3LlzjnxTpkwxJBmzZs1ypBW+Z959911HWm5urhEREWEkJCQ40u69916XoxaXs3LlSkOS8fnnnxc5d+FISGHkvTDqWBIRR0nGt99+60j78ssvDUlGmTJlnF6fb7/9tiHJEY00DMNo37690ahRI6fPF7vdbrRq1cqoW7dukXvffvvtRUZALq5XTk6OUa5cOSMmJsb4448/nPLa7XbH/5t9X5mJOHrqfWIYVx9x9Pf3d/qdFf4eIiIinO5T+G/FhXk98bodOHCgUaZMGVN5AcMwjD/F4pipU6dqxYoVRY7GjRs75fv4449lt9vVvXt3HT161HFERESobt26WrNmjSNvmTJlHP9/+vRpHT16VK1atZJhGNqyZYvput13330KDg52/BwTEyNJeuCBB5zm9sXExCgvL08HDx50WYfff/9dR48e1d/+9jedOXNGu3btcrpPqVKl9PDDDzt+9vPz08MPP6zDhw8XOwF/6dKlkqSkpCSn9JEjR0qSvvjiC9PPemFdJV32L/1y5co58pakZ599VqmpqZozZ44aNGhwVWUFBgZKklM9S+K1cWEZx48f14kTJ/S3v/1NmzdvLva6kydPSrp82xZaunSpIiIi1KtXL0da6dKlNXToUJ06dUpfffWVU/6EhASFhYW5LOviRR7uvJ9cudI2uJSVK1cqLy9Pw4cPd0TQJGnAgAEKCgoq8loODAzUAw884PjZz89PLVq00C+//OJICwkJ0YEDB7Rx40a36nLs2DFJUvny5YvNN2zYMJUvX75EF1E1aNBAsbGxjp8LP3PatWun6tWrF0kvfN7s7GytXr1a3bt3d3zeHD16VMeOHVN8fLx2797t9PkknW/by81nXLFihX7//XeNGTOmyNzkC7fVKanPXMnz75Or0b59e6etqQp/DwkJCU71vfj3U6ikX7fly5fXH3/8oTNnzlzR8+Cv508xVN2iRQs1b968SHr58uWdhrB3794twzBUt25dl+VcOIy1f/9+jR07Vp999pmOHz/ulO/EiROm63bhB7UkRyeyWrVqLtMvvNeOHTv09NNPa/Xq1Y4PwkvVoUqVKkUWK9x8882Szm/x4WqCviTt27dPPj4+qlOnjlN6RESEQkJCrmj/ucIPv8t1Cn///fcS39tv2bJlmjBhgpKTk5WQkHDV5Z06dUqS8z9AJfHaSE1N1XPPPaetW7c6bflzuf3pCof+zXa49+3bp7p16zp1pKTzw/uF5y9Uq1atS5Z18Tl33k+uXGkbXErhs9SrV88p3c/PT7Vr1y7yrDfeeGORe5UvX17btm1z/Dx69GitXLlSLVq0UJ06ddShQwfdf//9uu2220zVybjMatXg4GANHz5c48aN05YtWy7b0TTjSj9zfvrpJxmGoWeeeUbPPPOMy7IPHz6sqlWrOn4u7vVS6Oeff5aky26NVlKfuZLn3ydX42r+TZBK/nVb+Bq9lntjwlr+FB1Hs+x2u2w2m/7zn/+4/Cu5MLp07tw53XnnncrOztbo0aMVGRmpsmXL6uDBg+rbt6/sdrvpe17qr/FLpRe+iXNyctS6dWsFBQVp4sSJuummmxQQEKDNmzdr9OjRbtXBjJL80CiM8l34QXaxffv26eTJk6pdu/Zl63Du3DlTqzT37NmjxMRE3XnnnXruuefcrLVr27dvlyRHx7okXhvffPONOnfurDvuuEPTpk1T5cqVVbp0ac2ePfuy24NERkZKkr7//vurfDLXLoz6XO6c2feTK1fTBiXlcu9B6XzHISMjQ6mpqVq2bJkWL16sadOmaezYscVGCStUqCCp6D/6rhTOdZwwYYImT55c5Hxx7wtXrvQzp/C1+/jjjys+Pt5l3ov/wCzu9eKOkvzMlTz/PrmQt34/7uRz53V7/Phx3XDDDSX2u8Sf31+q43jTTTfJMAzVqlXLEY1z5fvvv9ePP/6ouXPnqnfv3o70FStWFMnrqb/S1q5dq2PHjunjjz/WHXfc4Ujfs2ePy/y//fZbkS1SfvzxR0kqNqpXo0YN2e127d692/HXtSRlZWUpJyfnivZiq1u3rurVq6clS5bo9ddfdzlc9O6770o6P5RfqHz58srJySmSd9++fU4dTFf++OMPde3aVSEhIfrggw+KRA6uVOHClsJ/SEvitbF48WIFBAToyy+/lL+/vyN99uzZl63PzTffrHr16unTTz/V66+/XmznTDr/+922bZvsdrtTmxROdbiavfbMvp9ccacNzL7HCp8lIyPD6fWSl5enPXv2KC4uzq06Fipbtqx69OihHj16KC8vT127dtXzzz+v5OTkS24LVdhxudT79UKFUcfx48erT58+Rc4XRiFzcnKcFhuV9LfRFLZZ6dKlr7itXClczLR9+/YiHc9C7ryvzPDm+6S4z61ryezrds+ePU6f/cDl/CnmOJrVtWtX+fr6asKECUX+ijMMwzEvqfAvugvzGIah119/vUiZhR01Vx8cV8NVHfLy8jRt2jSX+QsKCpy+AaDwGwHCwsIUHR19yfsUbuJ9caTjtddek6RiV/gWZ9y4cTp+/LgeeeSRIn95p6en61//+peaNm3qWAUonf8H5n//+5/y8vIcaampqaY24H7kkUf0448/6pNPPimR4T5Jmj9/vt555x3Fxsaqffv2kkrmteHr6yubzebULnv37jX97SgTJkzQsWPH1L9/fxUUFBQ5v3z5cqWmpko6//vNzMzUwoULHecLCgr05ptvKjAwUK1btzZ1T1fMvp9ccacNypYta+r9FRcXJz8/P73xxhtO9Zk5c6ZOnDhxRa/li5/Bz89PDRo0kGEYxe4BWLVqVVWrVu2S32p1seHDhyskJEQTJ04scq6w4/X111870k6fPq25c+eaKtusSpUqqU2bNnr77bd16NChIuePHDlyReV26NBB5cqVU0pKis6ePet0rvD35M77yixvvU9uuukmnThxwmmE5dChQ44dKa4Fd163mzdvvuQOGYArf7mI43PPPafk5GTt3btXXbp0Ubly5bRnzx598sknGjhwoB5//HFFRkbqpptu0uOPP66DBw8qKChIixcvdjnsVNgpGzp0qOLj4+Xr66uePXtedV1btWql8uXLq0+fPho6dKhsNpvee++9S86ZqlKliv71r39p7969uvnmm7Vw4UJt3bpVM2bMKHauWZMmTdSnTx/NmDHDMTy+YcMGzZ07V126dFHbtm2vqP69evXSpk2b9Nprr+mHH35QYmKiypcvr82bN2vWrFkKCwvTRx995LRAqH///vroo4/UsWNHde/eXT///LPef//9Yrdfkc4v4Hn33XeVkJCgbdu2OX2ABwYGqkuXLpet70cffaTAwEDHAqUvv/xS69atU5MmTZy2AimJ18Zdd92l1157TR07dtT999+vw4cPa+rUqapTp06xw/uFevTooe+//17PP/+8tmzZ4vhKu2PHjmnZsmVatWqVY7h34MCBevvtt9W3b1+lp6erZs2a+uijj7Ru3TpNnjzZ9OIBV8y+n1xxpw2io6O1cuVKvfbaa6pSpYpq1arlWDhwobCwMCUnJ2vChAnq2LGjOnfurIyMDE2bNk233nqr04ICszp06KCIiAjddtttCg8P186dOzVlyhTdddddl227e++9V5988okMw7hs1DQ4OFjDhg1zOfzdoUMHVa9eXf369dMTTzwhX19fx3to//79bj9TcaZOnarbb79djRo10oABA1S7dm1lZWUpLS1NBw4c0Hfffed2mUFBQZo0aZL69++vW2+9Vffff7/Kly+v7777TmfOnNHcuXPdel+Z5a33Sc+ePTV69Gj94x//0NChQ3XmzBm99dZbuvnmm694odfVMvu6TU9PV3Z2tu69995rUk9YlOcXbnvOlW4AvnjxYuP22283ypYta5QtW9aIjIw0Bg0aZGRkZDjy/PDDD0ZcXJwRGBhoVKxY0RgwYIDx3XffFdkGpqCgwBgyZIgRFhZm2Gw2x/YLrrbVMIz/26z64o2OXT3LunXrjJYtWzo2eR01apRja40Lt9BwtQF4jRo1jClTpphqx/z8fGPChAlGrVq1jNKlSxvVqlUrsgG4YZjfjudCn332mREXF2eEhIQ4bZF0qY3BX331VaNq1aqGv7+/cdtttxmbNm267HY8xW3LZHYD8MIjICDAuPHGG427777bmDVrVpE2MIyrf20YhmHMnDnTqFu3ruHv729ERkYas2fPNr2xcaFVq1YZ9957r1GpUiWjVKlSRlhYmHHPPfcU2aw5KyvLePDBB42KFSsafn5+RqNGjYpsZXSp1+uFbXSpLYvMvJ9cbVlitg127dpl3HHHHUaZMmUMmdgAfMqU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AEtiOx7vI+IIAAAAU4g4AgAAS2KOo/cRcQQAAIApRBwBAIAlMcfR+4g4AgAAwBQijgAAwJLsxrWuwV8PHUcAAGBJDFV7H0PVAAAAMIWIIwAAsCS24/E+Io4AAAAwhYgjAACwJIPFMV5HxBEAAACmEHEEAACWZGdVtdcRcQQAAIApRBwBAIAlsara+4g4AgAASzIMzx2ekp2drcTERAUFBSkkJET9+vXTqVOnir3m7NmzGjRokCpUqKDAwEAlJCQoKyvLcf67775Tr169VK1aNZUpU0b169fX66+/7lTG2rVrZbPZihyZmZlu1Z+IIwAAgJckJibq0KFDWrFihfLz8/Xggw9q4MCBmj9//iWvGTFihL744gstWrRIwcHBGjx4sLp27ap169ZJktLT01WpUiW9//77qlatmr799lsNHDhQvr6+Gjx4sFNZGRkZCgoKcvxcqVIlt+pvMwwWswMAAOtZ/l2ex8ru0MSvxMvcuXOnGjRooI0bN6p58+aSpGXLlqlTp046cOCAqlSpUuSaEydOKCwsTPPnz1e3bt0kSbt27VL9+vWVlpamli1burzXoEGDtHPnTq1evVrS+Yhj27Ztdfz4cYWEhFzxMzBUDQAAcJHc3FydPHnS6cjNzb2qMtPS0hQSEuLoNEpSXFycfHx8tH79epfXpKenKz8/X3FxcY60yMhIVa9eXWlpaZe814kTJxQaGlokPSoqSpUrV9add97piFi6g44jAACwJLvhuSMlJUXBwcFOR0pKylXVNzMzs8jQcKlSpRQaGnrJuYaZmZny8/MrEiUMDw+/5DXffvutFi5cqIEDBzrSKleurOnTp2vx4sVavHixqlWrpjZt2mjz5s1uPQNzHAEAAC6SnJyspKQkpzR/f3+XeceMGaN//etfxZa3c+fOEqtbcbZv3657771X48aNU4cOHRzp9erVU7169Rw/t2rVSj///LMmTZqk9957z3T5dBwBAIAleXI7Hn9/v0t2FC82cuRI9e3bt9g8tWvXVkREhA4fPuyUXlBQoOzsbEVERLi8LiIiQnl5ecrJyXGKOmZlZRW55ocfflD79u01cOBAPf3005etd4sWLfTf//73svkuRMcRAADgKoSFhSksLOyy+WJjY5WTk6P09HRFR0dLklavXi273a6YmBiX10RHR6t06dJatWqVEhISJJ1fGb1//37FxsY6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vffqoYcekiR9+umnatasmQICAlS7dm1NmDBBBQUFjrw2m01vvfWWOnfurLJly+r555/X8ePHlZiYqLCwMJUpU0Z169bV7NmzJbkeqv7qq6/UokUL+fv7q3LlyhozZozTPdq0aaOhQ4dq1KhRCg0NVUREhMaPH++5hgEAFEHHEfiLu++++3Ts2DGtWbPGkZadna1ly5YpMTFR33zzjXr37q1hw4bphx9+0Ntvv605c+bo+eefdypn/Pjx+sc//qHvv/9eDz30kJ555hn98MMP+s9//qOdO3fqrbfeUsWKFV3W4eDBg+rUqZNuvfVWfffdd3rrrbc0c+ZMPffcc0755s6dq7Jly2r9+vV66aWXNHHiRK1YsaLkGwUA4BJD1QDUpUsXVahQQTNnzpR0Pgo5YcIE/frrr+rQoYPat2+v5ORkR/73339fo0aN0m+//SbpfMRx+PDhmjRpkiNP586dVbFiRc2aNavI/fbu3atatWppy5YtioqK0lNPPaXFixdr586dstlskqRp06Zp9OjROnHihHx8fNSmTRudO3dO33zzjaOcFi1aqF27dnrxxRc90i4AAGdEHAEoMTFRixcvVm5urqTzX13Vs2dP+fj46LvvvtPEiRMVGBjoOAYMGKBDhw45fSVW8+bNncp89NFHtWDBAkVFRWnUqFH69ttvL3n/nTt3KjY21tFplKTbbrtNp06d0oEDBxxpjRs3drqucuXKOnz48FU9OwDAPDqOAHTPPffIMAx98cUX+vXXX/XNN98oMTFRknTq1ClNmDBBW7dudRzff/+9du/erYCAAEcZZcuWdSrz73//u/bt26cRI0bot99+U/v27fX4449fVT0vXnBjs9mKzM0EAHgO+2AAUEBAgLp27ap58+bpp59+Ur169dSsWTNJUrNmzZSRkaE6deq4XW5YWJj69OmjPn366G9/+5ueeOIJvfLKK0Xy1a9fX4sXL5ZhGI6o47p161SuXDndeOONV/dwAIASQ8cRgKTzw9V33323duzYoQceeMCRPnbsWN19992qXr26unXr5hi+3r59e5HFKxcaO3asoqOjdcsttyg3N1epqamqX7++y7yPPfaYJk+erCFDhmjw4MHKyMjQuHHjlJSUJB8fBkYA4HrBJzIASVK7du0UGhqqjIwM3X///Y70+Ph4paamavny5br11lvVsmVLTZo0STVq1Ci2PD8/PyUnJ6tx48a644475OvrqwULFrjMW7VqVS1dulQbNmxQkyZN9Mgjj6hfv356+umnS/QZAQBXh1XVAAAAMIWIIwAAAEyh4wgAAABT6DgCAADAFDqOAAAAMIWOIwAAAEyh4wgAAABT6DgCAADAFDqOAAAAMIWOIwAAAEyh4wgAAABT6DgCAADAFDqOAAAAMOX/AYJcRUCKMPKsAAAAAElFTkSuQmCC\n"
827
+ },
828
+ "metadata": {}
829
+ },
830
+ {
831
+ "output_type": "display_data",
832
+ "data": {
833
+ "text/plain": [
834
+ "<Figure size 800x600 with 1 Axes>"
835
+ ],
836
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAArcAAAIjCAYAAAAZajMiAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAATrFJREFUeJzt3XlYFXX///HXAdlEAUEQSMV938o9yz0RzSWt3HJJyha43b3LX3dptrhUpplLdhdqqZV3ZWmJuWKLmWtqKS65C2qaIJiI8Pn90cX5egQ3OICOz8d1zXVxZubM+z1zBngxfM4cmzHGCAAAALAAl8JuAAAAAHAWwi0AAAAsg3ALAAAAyyDcAgAAwDIItwAAALAMwi0AAAAsg3ALAAAAyyDcAgAAwDIItwAAALAMwi2AW8aAAQNUrly5wm7DQUpKip544gkFBwfLZrNp6NChhd1SvipXrpwGDBhQ2G0AQK4RbgELmzNnjmw2m8MUFBSkVq1aadmyZQXWR8uWLR168Pf3V8OGDfXhhx8qMzPTKTVef/11LV682CnbunK7c+bM0TPPPKOPPvpIffv2veb66enpeuedd9SwYUMVL15cxYoVU8OGDTVt2jRdunTJ6f3lxk8//aSxY8fq7Nmzhd2KXU7natb0/PPPF3Z7AG4jRQq7AQD5b9y4cSpfvryMMTpx4oTmzJmjDh06aMmSJXrwwQcLpIfSpUtr/PjxkqRTp05p3rx5ioyM1J49ezRhwoQ8b//111/Xww8/rK5du+Z5W5dbvXq1mjRpojFjxlx33dTUVHXs2FFxcXF68MEHNWDAALm4uCg2NlaDBw/W4sWLtWTJEhUtWtSpPd6sn376SS+//LIGDBggPz8/h2Xx8fFycSm86x5Z5+rlatWqVUjdALgdEW6BO0BERIQaNGhgfxwZGalSpUpp4cKFTgm3mZmZunjxojw9Pa+6jq+vrx577DH746eeekpVq1bVu+++q1deeUVubm557iM/nDx5UjVq1LihdYcPH664uDhNmzZN0dHR9vnPPPOMpk+frujoaI0aNUrTp0/Pr3bzzMPDo1DrX3muXsuFCxfk7u5eqGEcwK2HnwjAHcjPz09eXl4qUsTx79s333xT9957rwICAuTl5aX69evrf//7X7bn22w2RUdHa/78+apZs6Y8PDwUGxt7Uz0ULVpUTZo0UWpqqk6dOnXV9VJTUzVixAiVKVNGHh4eqlq1qt58800ZYxz6SU1N1dy5c+3/yr7euNGTJ0/aQ76np6fq1q2ruXPn2pevXbtWNptNBw4c0DfffGPf7sGDB3Pc3tGjR/XBBx+odevWDsE2S1RUlFq1aqXZs2fr2LFjkqSDBw/KZrNpzpw52da32WwaO3asw7xjx45p4MCBKlWqlDw8PFSzZk19+OGH2Z47bdo01axZU0WLFlWJEiXUoEEDLViwQJI0duxYjRo1SpJUvnz5bPuV05jbP/74Q4888oj8/f3tr9s333zjsE7W8frss8/02muvqXTp0vL09FSbNm20b9++HI/Zzcja/ieffKL//Oc/uuuuu1S0aFElJydLkjZs2KD27dvL19dXRYsWVYsWLfTjjz9m284PP/yghg0bytPTUxUrVtR7772nsWPHymaz2dfJj9flZo/Phg0b1KFDB5UoUULe3t6qU6eOpk6dKkmKiYmRzWbT1q1bsz3v9ddfl6urq/0cA+5EXLkF7gBJSUn6888/ZYzRyZMnNW3aNKWkpDhcSZWkqVOnqnPnzurTp48uXryoTz75RI888oiWLl2qjh07Oqy7evVqffbZZ4qOjlbJkiVz9UawP/74Q66urtn+NZ7FGKPOnTtrzZo1ioyMVL169bR8+XKNGjVKx44d09tvvy1J+uijj/TEE0+oUaNGGjRokCSpYsWKV637999/q2XLltq3b5+io6NVvnx5LVq0SAMGDNDZs2c1ZMgQVa9eXR999JGGDRum0qVLa8SIEZKkwMDAHLe5bNkyZWRkqF+/flet269fP61Zs0axsbGKjIy8kUNkd+LECTVp0sT+h0VgYKCWLVumyMhIJScn29/o9v7772vw4MF6+OGHNWTIEF24cEHbt2/Xhg0b1Lt3b3Xr1k179uzRwoUL9fbbb6tkyZLX3K8TJ07o3nvv1fnz5zV48GAFBARo7ty56ty5s/73v//poYceclh/woQJcnFx0ciRI5WUlKRJkyapT58+2rBhww3tZ9a5ermsHiXplVdekbu7u0aOHKm0tDS5u7tr9erVioiIUP369TVmzBi5uLgoJiZGrVu31vfff69GjRpJknbs2KF27dopMDBQY8eO1aVLlzRmzBiVKlXqhnq72vG5kdflZo7PihUr9OCDDyokJERDhgxRcHCwdu3apaVLl2rIkCF6+OGH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vvmm/Q+1y2UdG1dXV4WHh2vx4sU6fPiwffmuXbu0fPlyh+fkx+tyo+655x6VL19eU6ZMyfb6XHl1t06dOqpTp47++9//6vPPP1fPnj2z3d4PuBPxXQDcAZYtW2a/0nby5EktWLBAe/fu1fPPPy8fHx9JUseOHTV58mS1b99evXv31smTJzV9+nRVqlTJ/u/0gtapUye1atVKL7zwgg4ePKi6devqu+++01dffaWhQ4c63O6rfv36WrlypSZPnqzQ0FCVL18+x7GikjRo0CC99957GjBggDZv3qxy5crpf//7n3788UdNmTIl12MWJ0+erN27d+vZZ59VbGys2rdvL0lavny5vvrqK7Vu3VpvvPGGw3OeeOIJTZgwQU888YQaNGigdevWac+ePdm2PWHCBK1Zs0aNGzfWk08+qRo1aujMmTPasmWLVq5cqTNnzkiS2rVrp+DgYDVr1kylSpXSrl279O6776pjx472/apfv74k6YUXXlDPnj3l5uamTp062UPv5Z5//nktXLhQERERGjx4sPz9/TV37lwdOHBAn3/+eaF/gIKLi4v++9//KiIiQjVr1tTjjz+uu+66S8eOHdOaNWvk4+OjJUuWSJJefvllxcbG6v7779ezzz5r/4OmZs2a2c5xZ78uN7M/M2fOVKdOnVSvXj09/vjjCgkJ0e7du/Xbb79lC+L9+vXTyJEjJYkhCUCWQrtPA4B8l9PtlTw9PU29evXMzJkzHW4tZIwxH3zwgalcubLx8PAw1apVMzExMWbMmDHmyh8VkkxUVNQN99GiRYvr3p7KmOy3AjPmn9tODRs2zISGhho3NzdTuXJl88Ybb2Trfffu3aZ58+bGy8vLSLrubcFOnDhhHn/8cVOyZEnj7u5uateuneMtlG70VmBZLl68aKZMmWLq169vihYtaj/u/fv3d7htU5bz58+byMhI4+vra4oXL24effRRc/LkyWy3nMrqOSoqypQpU8a4ubmZ4OBg06ZNGzN79mz7Ou+9955p3ry5CQgIMB4eHqZixYpm1KhRJikpyWFbr7zyirnrrruMi4uLw23BrrwVmDHG7N+/3zz88MPGz8/PeHp6mkaNGpmlS5c6rJN1q6tFixY5zL/WbbUul3Wubty4McflV9t+lq1bt5pu3brZ9zssLMw8+uijZtWqVQ7rxcXFmfr16xt3d3dToUIFM2vW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gGUUargdP368GjZsqOLFiysoKEhdu3ZVfHy8wzoXLlxQVFSUAgICVKxYMXXv3l0nTpxwWOfw4cPq2LGjihYtqqCgII0aNUqXLl0qyF0BAADALaBQw21cXJyioqL0888/a8WKFUpPT1e7du2UmppqX2fYsGFasmSJFi1apLi4OB0/flzdunWzL8/IyFDHjh118eJF/fTTT5o7d67mzJmjl156qTB2CQAAAIXIZowxhd1EllOnTikoKEhxcXFq3ry5kpKSFBgYqAULFujhhx+WJO3evVvVq1fX+vXr1aRJEy1btkwPPvigjh8/rlKlSkmSZs2apeeee06nTp2Su7v7desmJyfL19dXSUlJ8vHxyba83PPf5Gm/Dk7omKfnAwAA3Omul9ey3FJjbpOSkiRJ/v7+kqTNmzcrPT1dbdu2ta9TrVo1lS1bVuvXr5ckrV+/XrVr17YHW0kKDw9XcnKyfvvttxzrpKWlKTk52WECAADA7e+WCbeZmZkaOnSomjVrplq1akmSEhMT5e7uLj8/P4d1S5UqpcTERPs6lwfbrOVZy3Iyfvx4+fr62qcyZco4eW8AAABQGG6ZcBsVFaWdO3fqk08+yfdao0ePVlJSkn06cuRIvtcEAABA/itS2A1IUnR0tJYuXap169apdOnS9vnBwcG6ePGizp4963D19sSJEwoODrav88svvzhsL+tuClnrXMnDw0MeHh5O3gsAAAAUtkK9cmuMUXR0tL788kutXr1a5cuXd1hev359ubm5adWqVfZ58fHxOnz4sJo2bSpJatq0qXbs2KGTJ0/a11mxYoV8fHxUo0aNgtkRAAAA3BIK9cptVFSUFixYoK+++krFixe3j5H19fWVl5eXfH19FRkZqeHDh8vf318+Pj7617/+paZNm6pJkyaSpHbt2qlGjRrq27evJk2apMTERP3nP/9RVFQUV2cBAADuMIUabmfOnClJatmypcP8mJgYDRgwQJL09ttvy8XFRd27d1daWprCw8M1Y8YM+7qurq5aunSpnnnmGTVt2lTe3t7q37+/xo0bV1C7AQAAgFvELXWf28LCfW4BAABubbflfW4BAACAvCDcAgAAwDIItwAAALAMwi0AAAAsg3ALAAAAyyDcAgAAwDIItwAAALAMwi0AAAAsg3ALAAAAyyDcAgAAwDIItwAAALAMwi0AAAAsg3ALAAAA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0eDBgzV37lyn17oV5HReJSYmyt3dPdsfD/n1M/VK06ZNU40aNVS6dGm5u7urffv2mj59upo3b56vdU+ePKmUlBRNmDBB7du313fffaeHHnpI3bp1U1xcnNPqXO17uXfv3vr444+1Zs0ajR49Wh999JEee+wxp9W9mqw/XEaPHq2//vpLFy9e1MSJE3X06NF8/52WZenSpSpWrJg8PT319ttva8WKFSpZsqRTtm2Jj98tDJdfNatTp44aN26ssLAwffbZZ4qMjMy3ukeOHNGQIUO0YsWKPI8Hyq2qVatq27ZtSkpK0v/+9z/1799fcXFxBR5wC9pHH32kgQMH6q677pKrq6vuuece9erVS5s3b87Xup999pnmz5+vBQsWqGbNmtq2bZuGDh2q0NBQ9e/fP19rX+6DDz5QRESEU8e63qjNmzdr6tSp2rJlS6FcNS4sUVFR2rlzZ4FfScnSs2dP+9e1a9dWnTp1VLFiRa1du1Zt2rQpkB7S09P16KOPyhijmTNn5kuNzMxMNWjQQK+//rok6e6779bOnTs1a9asAv0eKyiFfV7lZNq0afr555/19ddfKywsTOvWrVNUVJRCQ0Pz9T+UmZmZkqQuXbpo2LBhkqR69erpp59+0qxZs9SiRQun1LnaMR80aJD969q1ayskJERt2rTR/v37VbFiRafUzombm5u++OILRUZGyt/fX66urmrbtq0iIiIK5M3KktSqVStt27ZNf/75p95//309+uij2rBhg4KCgvK8ba7cOomfn5+qVKmiffv25WudzZs36+TJk7rnnntUpEgRFSlSRHFxcXrnnXdUpEiRArmi4u7urkqVKql+/foaP3686tatq6lTp+Z73csFBwdLUrZ38p44ccK+zNkqVqyouLg4paSk6MiRI/rll1+Unp6uChUq5Eu9LKNGjbJfva1du7b69u2rYcOGFeiV+0OHDmnlypV64oknCqzm5b7//nudPHlSZcuWtZ/3hw4d0ogRI1SuXLlC6Sm/RUdHa+nSpVqzZo1Kly5d2O1IkipUqKCSJUvm+8+5LFnB9tChQ1qxYkW+XLWVpJCQkGx/nFevXr1Ah5oVlKudV8HBwbp48aLOnj3rsH5+/kzN8vfff+v//b//p8mTJ6tTp06qU6eOoqOj1aNHD7355pv5WrtkyZIqUqRIvr7+N/O93LhxY0kqkO+x+vXra9u2bTp79qwSEhIUGxur06dP5/vvtCze3t6qVKmSmjRpog8++EBFihTRBx984JRtE26dJCUlRfv371dISEi+1mnTpo127Nihbdu22acGDRqoT58+2rZtm1xdXfO1fk4yMzPt43cKSvny5RUcHKxVq1bZ5yUnJ2vDhg35Pv7X29tbISEh+uuvv7R8+XJ16dIlX+udP39eLi6O36qurq72Kw4FISYmRkFBQerYsWOB1bxc3759tX37dofzPjQ0VKNGjdLy5csLpaf8YoxRdHS0vvzyS61evVrly5cv7Jbsjh49qtOnT+f7zznp/4Lt3r17tXLlSgUEBORbrWbNmmW7RdOePXsUFhaWbzUL2vXOq/r168vNzc3hZ2p8fLwOHz6c7z9T09PTlZ6eXig/59zd3dWwYcN8ef1z872cdZvBgvgey+Lr66vAwEDt3btXmzZtyvffaVfjzCzBsIRcGjlypDp16qSwsDAdP35cY8aMkaurq3r16pWvdYsXL55t7J23t7cCAgIKZEze6NGjFRERobJly+rcuXNasGCB1q5dmy8BIyUlxeGv1wMHDmjbtm3y9/dX2bJlNXToUL366quqXLmyypcvrxdffFGhoaHq2rWr03uRpOXLl8sYo6pVq2rfvn0aNWqUqlWrpscffzxf6mXp1KmTXnvtNZUtW1Y1a9bU1q1bNXnyZA0cODBf62bJzMxUTEyM+vfvryJF8u9HxvVe7yvDjZubm4KDg1W1atV8r33mzBkdPnzYfp/VrF+EwcHBTr+qFRUVpQULFuirr75S8eLF7eMdfX195eXl5dRa19pvf39/vfzyy+revbuCg4O1f/9+/fvf/1alSpUUHh6er7VDQkL08MMPa8uWLVq6dKkyMjLsx8Hf31/u7u55rn+5YcOG6d5779Xrr7+uRx99VL/88otmz56t2bNnO7VOTq537jnL9c4rX19fRUZGavjw4fL395ePj4/+9a9/qWnTpmrSpEme619vP1u0aKFRo0bJy8tLYWFhiouL07x58zR58uR8rz1q1Cj16NFDzZs3V6tWrRQbG6slS5Zo7dq1eap7vWO+f/9+LViwQB06dFBAQIC2b9+uYcOGqXnz5k65xef19nvRokUKDAxU2bJltWPHDg0ZMkRdu3Z1ypv4rlU7ICBAr732mjp37qyQkBD9+eefmj59uo4dO+a820w65Z4L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165cb6NmzZpycfm/H4mlSpVS7dq17Y9dXV0VEBCgkydPOjyvadOm9q+LFCmiBg0a2Pv49ddftWbNGhUrVsw+VatWTdI/42Oz1K9f/5q9JScn6/jx42rWrJnD/GbNmuVqn811rsy6u7vf0HZ+/fVX7du3T8WLF7fvn7+/vy5cuKD9+/fL399fAwYMUHh4uDp16qSpU6cqISHhpnrdtWuX6tatK29vb/u8Zs2aKTMzU/Hx8fZ5NWvWlKurq/1xSEiI/bV64IEHFBYWpgoVKqhv376aP3++zp8/f1N9ALh9EG4B3PaaN2+u8PBwjR49OtsyFxeXbGHu8rGYWdzc3Bwe22y2HOdlZmbecF8pKSnq1KmTtm3b5jDt3bvX4d/ilwe3/FSpUiXZbLarBuJdu3YpMDBQfn5+kv7Z32sdu5SUFNWvXz/b/u3Zs0e9e/eWJMXExGj9+vW699579emnn6pKlSr6+eefnb5v13qtihcvri1btmjhwoUKCQnRSy+9pLp16+rs2bNO7wNA4SPcArCECRMmaMmSJVq/fr3D/MDAQCUmJjqENGfem/byoHbp0iVt3rxZ1atXlyTdc889+u2331SuXDlVqlTJYbqZQOvj46PQ0FD9+OOPDvN//PFH1ahR44a3ExAQoAceeEAzZszQ33//7bAsMTFR8+fP14ABA+zzAgMDHa607t271+GK5z333KO9e/cqKCgo2/75+vra17v77rs1evRo/fTTT6pVq5YWLFgg6Z8rxBkZGdfsuXr16vr111+VmprqsN8uLi6qWrXqDe97kSJF1LZtW02aNEnbt2/XwYMHtXr16ht+PoDbB+EWgCXUrl1bffr00TvvvOMwv2XLljp16pQmTZqk/fv3a/r06Vq2bJnT6k6fPl1ffvmldu/eraioKP31118aOHCgpH/uTHDmzBn16tVLGzdu1P79+7V8+XI9/vjj1w11Vxo1apQmTpyoTz/9VPHx8Xr++ee1bds2DRky5Ka28+677yotLU3h4eFat26djhw5otjYWD3wwAOqUqWKXnrpJfu6rVu31rvvvqutW7dq06ZNevrppx2ukPbp00clS5ZUly5d9P333+vAgQNau3atBg8erKNHj+rAgQMaPXq01q9fr0OHDum7777T3r177eG/XLlyOnDggLZt26Y///xTaWlp2frt06ePPD091b9/f+3cuVNr1qzRv/71L/Xt21elSpW6oX1eunSp3nnnHW3btk2HDh3SvHnzlJmZeVPhGMDtg3ALwDLGjRuXbdhA9erVNWPGDE2fPl1169bVL7/8kuOdBHJrwoQJmjBhgurWrasffvhBX3/9tUqWLClJ9qutGRkZateunWrXrq2hQ4fKz8/PYXzvjRg8eLCGDx+uESNGqHbt2oqNjdXXX3+typUr39R2KleurI0bN6pChQp69NFHFRYWpoiICFWpUsV+t4Msb731lsqUKaP7779fvXv31siRI1W0aFH78qJFi2rdunUqW7asunXrpurVqysyMlIXLlyQj4+PihYtqt27d6t79+6qUqWKBg0apKioKD311FOSpO7du6t9+/Zq1aqVAgMDtXDhwmz9Fi1aVMuXL9eZM2fUsGFDPfzww2rTpo3efffdG95nPz8/ffHFF2rdurWqV6+uWbNmaeHChapZs+ZNHTsAtwebud47CwAAljZmzBhNnjxZK1asUJMmTQq7HQDIE8ItAEAxMTFKSkrS4MGDb/qqMgDcSgi3AAAAsAz+PAcAAIBlEG4BAABgGYRbAAAAWAbhFgAAAJZBuAUAAIBlEG4BAABgGYRbAAAAWAbhFgAAAJZBuAUAAIBl/H+cadoeLKFw0wAAAABJRU5ErkJggg==\n"
837
+ },
838
+ "metadata": {}
839
+ }
840
+ ]
841
+ }
842
+ ],
843
+ "metadata": {
844
+ "colab": {
845
+ "provenance": []
846
+ },
847
+ "kernelspec": {
848
+ "display_name": "Python 3",
849
+ "name": "python3"
850
+ },
851
+ "language_info": {
852
+ "name": "python"
853
+ }
854
+ },
855
+ "nbformat": 4,
856
+ "nbformat_minor": 0
857
+ }