12-kNN-Fin.ipynb 302 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Classification using k Nearest Neighbours"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Previously we have considered regression problems for Machine Learning, where the target value is a continuous variable. The other primary type of supervised learning problem is classification problems. For example, a common Machine Learning problem is that we are given a number of images of animals, and we need to classify them into the various animals such as cats, dogs and horses. Another type of problem is the 'Churn problem', for which the object is to predict whether a customer will continue with a company based on their past activities. This is known as a binary classification problem, since there is only the two outcomes that either the customer will continue or they will not.\n",
    "\n",
    "One of the simplest classification algorithms is k-Nearest Neighbours (kNN). Consider that our dataset consists of m continuous features and 1 discrete target value, and we have n instances or measurements. Then the features can be plotted in 'feature space'. For two features this corresponds to the plane and for three features to three-dimensional space. Each pair of instances will be separated by a distance d. This is know as the Euclidean distance. If we are trying to predict the label for a particular instance the algorithm then finds the k nearest neighbours and records the target values for these neighbours. Then the most common target value is chosen as the label for that particular instance. This is known as 'hard' voting. An alternative form of hard voting is where the votes are weighted by the distance away from the instance, and therefore closer points have more importance.\n",
    "\n",
    "In this lesson we will use the [Iris Dataset](https://en.wikipedia.org/wiki/Iris_flower_data_set), which is a famous dataset which classifies three species of iris based on the dimensions of the flowers. We will also show how functions can be defined to repeat tasks.\n",
    "\n",
    "We first import libraries that will be required later."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns;\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Contents"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* Iris Dataset\n",
    "* kNN Algorithm\n",
    "* Confusion Matrix and Accuracy\n",
    "* Normalization"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Iris Dataset "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Iris Dataset can be loaded using seaborn. If we print the shape there are are 150 instances and for each instance there are 4 features and 1 label. The features correspond to measurements of the flowers, and the target value is the species."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shape of the iris dataset is (150, 5)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal_length</th>\n",
       "      <th>sepal_width</th>\n",
       "      <th>petal_length</th>\n",
       "      <th>petal_width</th>\n",
       "      <th>species</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.5</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.7</td>\n",
       "      <td>3.2</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sepal_length  sepal_width  petal_length  petal_width species\n",
       "0           5.1          3.5           1.4          0.2  setosa\n",
       "1           4.9          3.0           1.4          0.2  setosa\n",
       "2           4.7          3.2           1.3          0.2  setosa\n",
       "3           4.6          3.1           1.5          0.2  setosa\n",
       "4           5.0          3.6           1.4          0.2  setosa"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris = sns.load_dataset('iris') # load the dataset from seaborn\n",
    "print('Shape of the iris dataset is',iris.shape) # display the shape of the data\n",
    "iris.head() # display the first few lines"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can view the descriptive statistics of the numerical columns using `df.describe()`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal_length</th>\n",
       "      <th>sepal_width</th>\n",
       "      <th>petal_length</th>\n",
       "      <th>petal_width</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>150.000000</td>\n",
       "      <td>150.000000</td>\n",
       "      <td>150.000000</td>\n",
       "      <td>150.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>5.843333</td>\n",
       "      <td>3.057333</td>\n",
       "      <td>3.758000</td>\n",
       "      <td>1.199333</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.828066</td>\n",
       "      <td>0.435866</td>\n",
       "      <td>1.765298</td>\n",
       "      <td>0.762238</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>4.300000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.100000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>5.100000</td>\n",
       "      <td>2.800000</td>\n",
       "      <td>1.600000</td>\n",
       "      <td>0.300000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>5.800000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>4.350000</td>\n",
       "      <td>1.300000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.400000</td>\n",
       "      <td>3.300000</td>\n",
       "      <td>5.100000</td>\n",
       "      <td>1.800000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>7.900000</td>\n",
       "      <td>4.400000</td>\n",
       "      <td>6.900000</td>\n",
       "      <td>2.500000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       sepal_length  sepal_width  petal_length  petal_width\n",
       "count    150.000000   150.000000    150.000000   150.000000\n",
       "mean       5.843333     3.057333      3.758000     1.199333\n",
       "std        0.828066     0.435866      1.765298     0.762238\n",
       "min        4.300000     2.000000      1.000000     0.100000\n",
       "25%        5.100000     2.800000      1.600000     0.300000\n",
       "50%        5.800000     3.000000      4.350000     1.300000\n",
       "75%        6.400000     3.300000      5.100000     1.800000\n",
       "max        7.900000     4.400000      6.900000     2.500000"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.describe() # show the statistics of the numerical columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can also see the unique values of the species label. In this case there are three types of species or labels. We will be attempting to predict these labels, though it is easier to work with equivalent numerical labels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['setosa', 'versicolor', 'virginica'], dtype=object)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris['species'].unique() # show the unique values of the species column"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will try to predict the species using only the sepal length and sepal width, therefore it is helpful to plot how the labels vary with these features. As can be seen the setosa species is fairly well separated from the other two species, but the boundary between versicolor and viginica is fairly fuzzy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEICAYAAAC9E5gJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydd3hb1fnHP0eWvPfeI3vvwUrYe5Q2zELLKi07tIXSFlpo+RXKKG1ZDbS0bApl0zLDyiCQvZ3hON57yLJlWfP8/ri2ZFlKkBLZsuPzeR4/9j33nntfDd/3nnPe9/sKKSUKhUKhGN3owm2AQqFQKMKPcgYKhUKhUM5AoVAoFMoZKBQKhQLlDBQKhUKBcgYKhUKhAPRDcREhRASwHqiVUp4zYN+VwENAbW/T41LKfxzsfOnp6bK4uHgQLFUoFIojlw0bNrRIKTP87RsSZwAsBUqBxAPsf1VKeVOgJysuLmb9+vUhMUyhUChGC0KIygPtG/RpIiFEPnA2cNCnfYVCoVCEj6FYM/gL8AvAdZBjlgghtgohXhdCFPg7QAjxYyHEeiHE+ubm5kExVKFQKEYrg+oMhBDnAE1Syg0HOew9oFhKOQNYDjzn7yAp5dNSynlSynkZGX6nvBQKhUJxiAz2yOBY4DwhRAXwb+AkIcSL/Q+QUrZKKa29m38H5g6yTQqFQqEYwKA6Aynlr6SU+VLKYuAS4DMp5eX9jxFC5PTbPA9toVmhUCgUQ8hQRRN5IYT4PbBeSvkucIsQ4jzAAbQBV4bDJoVCoRjNiJEoYT1v3jypQksVfXRY7FS1monU6yhOjyNKHxFukxSKYYkQYoOUcp6/fWEZGSgUoaK8uYtfvrGNtRVt6ARcfWwJ1x0/lvSEqHCbplCMKJQchWLE4nJJXvqmirUVbdq2hH+s2s/GqvYwW6ZQjDyUM1CMWDp67Hy8s8GnfUu1MQzWKBQjG+UMFCOW+Eg984tTfdonZCeEwRqFYmSjnIFixGLQ67h20RiykzzrAydMyPDrIBQKxcFRC8iKEc3knETevP5Y9jV3Ea2PYFxWPCmxkeE2S6EYcShnoBjx5CbHkJscE24zFIoRjZomUigUCoVyBgqFQqFQzkChUCgUKGegUCgUCpQzUCgUCgXKGSgUCoUC5QwUCoVCgXIGCoVCoUA5A8UwwGSxY+y2hdsMhWJUozKQFWHDbHXw5Z5mHvlkDzaHixtPGMvp07JJVnISCsWQo5yBImxsqGznhpc2urfveHMbMZERnDcrL4xWKRSjEzVNpAgb72+r92l7fk0lNqczDNYoFKMb5QwUYSMz0bc0ZXZSNBFCfS0ViqFG/dcpwsbpU7OJj/LMVEZG6LjymGIidCKMVikUoxO1ZqAIG1Nzk3j9uqNZX9mO3eliblEK0/OSwm2WQjEqUc5AEVYm5SQyKScx3GYoFKMeNU2kOCgulwy3CQqFYghQIwOFXzq67aze18JL31SSmxTDZQsLmVWYEm6zFArFIKGcgcIvH+1s4Bevb3Vvv7uljjeuP4Zpak5foTgiUdNECh/azTYe/6zMq83qcLGxqj1MFikUisFGOQOFD0LgN7wzQqiQT4XiSEU5A4UPybGR3HrKeK+2uMgI5hSpNQOF4khFrRko/HLypCz+eeV83t5UQ05yDOdMz2GyCgFVKI5YlDNQ+CU+Ws9JkzI5aVJmuE1RKBRDgJomUigUCsXQjAyEEBHAeqBWSnnOgH1RwPPAXKAVuFhKWTEUdilGB+XNXXy1r5XKVjPHjktnbmEKCTGGcJulUAwrhmqaaClQCvibdL4GaJdSjhNCXAI8AFw8RHYpjnCq27q56tl1VLZ2A/D3lfv5v/OncflRRWG2TKEYXgz6NJEQIh84G/jHAQ75DvBc79+vAycLoWIYFaFhZ53J7Qj6ePCjXdQbLWGySKEYngzFmsFfgF8ArgPszwOqAaSUDqADSBt4kBDix0KI9UKI9c3NzYNlq+IIw+rw/dr12Fw4lOaSQuHFoDoDIcQ5QJOUcsPBDvPT5vOfKqV8Wko5T0o5LyMjI2Q2Ko5sJuUkEBsZ4dV2xTHF5CRFh8kihWJ4MthrBscC5wkhzgKigUQhxItSysv7HVMDFAA1Qgg9kAS0DbJdilHChKwEXv7RQp5aUc7epi4unp/POTNy0UeoQDqFoj9CyqEZLgshTgBu8xNNdCMwXUp5Xe8C8veklBcd7Fzz5s2T69evHzxjFUccNocTq92loogUoxohxAYp5Tx/+8KSdCaE+D2wXkr5LvAM8IIQogxtRHBJOGxSHNlE6iOI1Ed8+4EKxShlyJyBlPIL4Ivev3/br70HuHCo7FAMHUazlY3VRipaukmNi2RGfhJjMuLDbZZCofCDkqNQDBpvbqrl9/8tdW8fNy6d+787jYK0uDBapVAo/KFW0RSDQmldB498sterbVVZCzvqTWGySKFQHAzlDBSDQrfdSZfV4dPe2ePbplAowo9yBopBoTg1lgXF3vUPovQ6xmSoKSKFYjiinIFiUEhLiObOs6dw6pRMDBGCiVkJLLt8DnOLUsNtmkKh8INaQFYMGjMLkvnzxbOoa7eQGGsgOzEm3CYpFIoDoJyBYlCJjzIwIVsleikUwx3lDEYp9UYLpQ0mmkxWClJimJaXRFJsZLjNOiQqW82UNXURpdcxMTuBjASlO6QYPjSaGykzluGSLsYmjyU3Pjfoc1SZqijvKCcqIorxKeNJj0kPuZ3KGYxCmk0W/vVVBU+vKAdAJ+D3503l8qOLw2vYIbC9toPLn/kGY7cdgLlFyfz1ktnkp8SG2TKFAio6Klj62VLKTdr/WnZsNk+e8iTjU8YHfI6drTu59uNrMdm0sOw5mXO4f9H9h+RUDoZaQB6F7KzvcjsCAJeE+z/YxaaqkaUPaHM4+dsXZW5HALCh0sja/SPrdSiOXFbUrHA7AoCG7gbeKXsn4P5Wh5W/b/272xEAbGzayKamTSG1E5QzGJU0dfX4tJltTtrNdj9HD1/MNidbazt82vc1dYXBGoXCl+0t233aNjVtwuEMLN+m29HNjtYdPu0VporDNc0H5QxGIcWpsUTpvT/63KRo8lNGVrRPcoyBc2b4DpXnFKX4OVqhGHqOLzjep+2sMWehjwhshj4pKonTi0/3aZ+RPuOwbRuIcgajkJl5yTx0wQzS47UF48LUWP64ZDoTsv2VqB6+CCG4ZH4Bp0/JAiAyQsfPTh3PXOUMFMOEhTkL+eGUHxIhIhAIzh93PicVnBRwf53QceGECzkh/wQAInWR3DL7FmZkhN4ZDFk9g1Ci6hmEhh11HbSbbWQnRjMuKyHc5hwy3TYHNe0WDBE6ClNjidCpEtqK4YPdaaemqwaXdJEfn0+UPiroc3Tbu6nrqsOgM5CfkE+E7tDk2IddPQPF8GBqblK4TQgJsZF6JoxgZ6Y4sjFEGChJKjmsc8QaYhmXMi5EFvlHOYNRitMlKW/porXLRk5SNEWHICvdY3dQ3txNl9VBYWoM2Um+aw7Vbd3UGi2kxBooSY8nUq9mJhWK4YhyBqMQm8PFO5trufOt7dicLhKi9Dxx2RwWT8gI+BzGbhtPrShn2Zf7kBJykqL5+w/nMS3PM9pYu7+VH7+wAWO3Hb1OcNfZk7l4fgExkeprp1AMN9Rj2ihkX3MXd7yxFZvTBUCn1cGtr26mtt0S8Dl21HXwty80RwBQ39HD/e+XYu6VrW7utPKz17a4cwAcLsk97+1kT6MK+1QohiPKGYxC6jssuAbEDbSZbbR0WQM+R40fx7G2og1jtw2AVrPV7zG1xsAdjkKhGDqUMxiF5CTFMDDgJiXWQHp84FEOecm+6wPzilNIjtHCVdPiIv3mLeT6WVdQKBThRzmDUcjYjDju/94MDBGaR4iLjODPF88iL4iks2l5Sfxk8RhEr1PJSozizrOmEBetrQdkJETz8IUzSYzRtiN0gt+cM5mJ2fGhfTEKhSIkqDyDUYrD6WJ/i5mWLis5yTEUH0I0kcXmoLzZrEUTpcWSc4Boopr2blLiIhmbHo9BRRMpFGFD5RkofNBH6BiflcD4w4jPj4nUMzXv4LkKBamxFKQqBVGFYrijnMEgUGe0YLLYyUqMJiVucGoEtJltNJl6SIo1+H0itztcVLd3IyUUpMYQqT+0jEWFYrjSl9kLkB+fjyFCFVE6HJQzCCFOl+SzXU388o2ttJptTMxO4OELZjI9P7SZvltrjPzstc2UNZlJj4/kgSUzOGFipluGodHUw1Nf7uO5NZUAfH9BATeeOJ7sJFX0RXFk0NTdxDPbnuHV3a8CcPHEi7lm+jVkxmaG2bKRi5rADSF7Gzu5/sUNtJq18MrdDZ389LVNtJkDD9n8Nlq6rNz8yibKmsy92zaue3ED+5o98fsr9jTzz9UVOF0Sp0vywtdVfLarKWQ2KBThZlXtKl7e9TJO6cQpnby862VW164Ot1kjGuUMQkhVWzeOAQH8ZU1mGjp86wccKg0dPVS2dnu12Z2Sqlaze/v97Q0+/d7bUhsyGxSKcPPR/o982yp82xSBo5xBCEnzE6efHGsgMSZ0c5lJMQYSonxn9/pfe05Bss/+eUWpIbNBoQg3MzNn+rZl+LYpAkc5gxAyMSueHy3yqBPqBNz33ekhrcdbkBrLfd+b7pU0dv3xY7yigs6cnkNhvwievORozp0V2nqpCkU4Ob34dPLi89zbefF5nFZ8WhgtGvmoPIMQ02mxs6uxk5YuK0WpsYzPSsAQEVqfa3O42NvUSVVbN5kJ0UzMiic+2nv0UWe0sLuhE4lkQlaCKhCvOOKo76pnb/teEDA+eTw58TnhNmnYc7A8A+UMFAqFYpRwMGegpomOYPa3dLG/+cAqoS2dPexp7MRk8R/t5HJJ6o0W2oIQsDsUmjt7aDApATuFIpwMap6BECIaWAFE9V7rdSnl3QOOuRJ4COgLd3lcSvmPwbTrSKfO2M17W+r5+8pypISrjyvm/Jl55PVbR1hd1sJDH+6itKGTY8amcfNJ470KydcZLbz4dSXPr6kkOdbAXWdP5sSJmUQZQpe8ZrLY+WB7PQ9/vAe708X1J4xlyZz8oATzFApFaAjKGQghjgGK+/eTUj5/kC5W4CQpZZcQwgCsEkJ8IKX8esBxr0opbwrGFsWBWV3Wyv0f7HJvP/TRHlLjorh0QSGg1SK4/qUNmCxa7YHPdzdTZ+zhX1fNIzc5Fiklr62v5skv9gHQZXVw3Ysbee0nR7OgJHRRSesq2rjjjW3u7fvf30VaXCQXzC0I2TUUCkVgBDxNJIR4AXgYOA6Y3/vjd+6pD6nRN09h6P0ZeYsUI4z3t9X7tL23pc79d1lTl9sR9LG7sZPyZi1XobXLxsvfVPmcY0tNe0jt/HCHbz7ES99UYXM4Q3odhULx7QQzMpgHTJFBrjgLISKADcA44Akp5Td+DlsihFgM7AF+KqWs9nOeHwM/BigsLAzGhFGHv8ihgn7y1InRvh97ZISOuN78hehIHXkpMTR1eq8VpMWFdvqm0I+A3Zj0OPQ6tZSlUAw1wfzXbQeyg72AlNIppZwF5AMLhBDTBhzyHlAspZwBLAeeO8B5npZSzpNSzsvICLxW72jknJk57joCAAlRes6f44nJnpSTyFnTvD/K644fw5RsLVchPsrAbadNRN8vmaE4LZY5hSmEklOnZJHaT8gvxhDBD44uRjew8o5CoRh0vjW0VAjxHtrUTgIwC1iLthYAgJTyvIAvJsTdgFlK+fAB9kcAbVLKgyq7qdDSb2dTVTs760y4kEzJTmRusfdcf2WLma21RhpNVgpTY5mVn0RmP/VTp0uys76DXfWdxEVFMC0v2e+T/OGyr6mLHXUdOFySKbmJTMpODPk1FAqFxuHWM/B74w7wwhmAXUppFELEAKcADww4JkdK2TfJfR5QeqjXU3iYXZjC7IM8yRelx1GUfuCCNhE6wfS8ZKbn+UpbhJKxmfGMzVTVzxSKcPOtzkBK+SWAEOIBKeUd/fcJIR4AvjxI9xzgud4nfh3wmpTyv0KI3wPrpZTvArcIIc4DHEAbcOUhvZJhhMPposfu9MkKDoZuq4Meu5PUwwiz7OyxIV2QGOu/poLTJbHYHMRF6RHC/9SM2epAHyGIOox6CC2dPSRE64kyjHDFdHsPSBdEHvoIyWK3oNPpiIrw/7k6XA6sTitxhuArzykUh0PAGchCiI1SyjkD2rb2zvUPKcN5mmhnnYnn1uxnY6WRc2fmcv7svKCmV1wuFyv2tvDPVRU0d/WwZE4+p07OOuhT/ECMZisr9rbw7FcVSAk/PLqI4ydkeDmW3Q0mnl9Tydr9bZwxLZslc/O9Sl+2mq18urOJZ7+qICsxiutPGMu8otSg5vNL6zt4b0s9n+xsZGJ2Aj88qogFY9IC7j9scNigcjWs+jP0dMAxN8O4UyAm8FGTyWZide1qntvxHPGGeK6Zfg1zs+YSGeFx1DtbdvJC6QvsatvFuWPP5cziM5XEgiKkHJYchRDieuAGYAywr9+uBGC1lPLyUBkaKMPVGVS3dfPdJ1fT0mVzt509PZuHL5xFTGRgT9Zr9rVwxT/XYXO63G0/O3UCt5w8PmA7PthWz/UvbfRqe+zS2Zw7UxOrqzdauGDZV9QaPdLax0/I4Invz3aPZp5fU8Fv39nh3q/XCd64/hhm+lFE9Uenxc4db2z1ktNOiTXw4o8WMjU3tMV+Bp3KNfDsmdD/f2XJMzD9goBP8eH+D7l9xe3ubYHg2TOeZU6W9nxV0VHBZe9fhslmch9z4YQL+dWCX6kKXoqQcbhyFC8D5wLv9v7u+5kbDkcwnClr6vRyBAD/29ZAVVv3AXr4sr3W5OUIAF74upKKFvMBevjyzmbf2gVvbKzx2Nnc5eUIAL7c0+yuk9DaZeXpFeVe+x0uyaZqY8A2lDV38cGAPIL2bju7GzoDPsewoewTb0cA8NVjYAvsM+lx9PDCzhe82iSSz6s/91zCWOblCADe3PsmdV11KBRDQSCTuBGACbhx4A4hRKqUsi3kVo1Q/KmTGiIE+ojAp1Yi9b7niI2MCEr5NM5PvYP4fiMTf+fSCdx26iOE35FMtB/bDoReJzDodD6OTR9iBdchIdLPAndUIojARns6oSPezzniDZ42g8736T8yIpIInapdrRgaAvnP3ACs7/3djJYYtrf37w2DZ9rIY0JWAtPzvKdAfrx4TFBrBjPyk7xi7wFuOGEseSm+Re8PxPmz8jD0c0B6neDCeR6Jh/GZ8Rw1xjvU9IdHF1Pcuy6RFBPJz0+d6LU/KcbgpV30bUzMTuTKY4u92sZnxjMlJ8F/h+HMuJMhst+ajRCw6KdgCKymdGREJFdNvQqB5zOJ0cewKH+Re3tC6gTGJI7x6nfdzOu8NPsVisEkmAXkZcC7Usr3e7fPBE6RUv58EO3zy3BdMwCoau3mq30tlDaYOHpMGvOLU/1WQDsYGyraWFXWQqPJyuIJ6SwsSSUliOxfh8PF1/tbWbGnGZeExRMyOGZMGvp+T/Y17d18ta+VHbUdLChJY0FJChkJnptbj93Bpiojn+1qIiMhisUTMoLOAahpM7O2op2vy1sZl5nAMWNTmTbIoaqDRv0W2LscbJ0w/jTImwd6/1Fa/rA77Wxr2cbK2pXE6mM5Nu9YpqRN8Tqm0lTJ1/Vfs79jP0dlH8XszNkkRY+w9RXFsCYk9Qx6TzJ3QNv6A514MBnOzkChUCiGK4ebdNZHixDiLuBFtIzky4HWENinUCgUijATjDO4FLgbeKt3e0Vvm2KY4XC62Fxt5N0tdUgpOXdmLrMLU7wWjitbzHy2u4kNFe0cPymDReMyyE4KbA5cMTiUN27h8+ov2G0q56Tc45ifvYC05KIhtcFsM7O+cT0fVXyEIcLAaUWnMT9rPpFBTIkpRiaq7OURyLqKNi55+mucLu2z1Ql45dqjWNib8NXcaeWa59axtabD3efiefn87jtTiR7pWcIjlNrWXVz92c3UdXvCcW+YfAU/mXsruoih+0w+r/qcpZ8vRfYqzeuFnidOfoJj8o4ZMhsUg8dh5RkIIf7S+/s9IcS7A39Cbazi8Hl9Q43bEQC4JLz0TaV7u6yp08sRALy2oYaKlsDzIRShZW/bbi9HAPDMnn9T27ZnyGywO+y8tuc1tyMAcEgHH1d+PGQ2KMJHII8cfdkyhyxYpxharHbf4jA2hyfev7+j6ENKcI3AUeKRglO6/LQ5vW7MQ4HD6fBps7vsQ2qDIjx868hAStmXSxABrJNSftn/Z3DNUxwKF83zLRt52VGeuefxWQmMGaB1dMa07KD0jxShZULKBFKivPM4Lh3zHXKSxxygR+gx6A0smbDEq00gOK3otCGzQRE+ggktfR44Ci2CaGXvzyopZWhrIQaAWjM4OFa7k7UVbTz3VQVOl+TKY0tYWJJKdL9i9mVNnby1sZav9rVy5vQczpyWTcEg1CtQBM7u+g28te8dtpvKOTf/BE7IP4Gs1HFDakNHTwdr6tfwxp430EfouWjCRRyVfRQxkYEnPSqGLyHJM+h3slzgAuA2IFdKOeQrjsoZBIbLpU0yRBxEadThdI1MiYgjGIfDil4f2hKjwWJ32BE6gV6nAgqOJEKSZyCEuBxYBEwHWoDH0UYHimFKIHLTyhEMP8LtCECbMlKMLoJx+39Bk7BeBnwupawYFIvCSLvZxuZqI3saOylOi2NWYTJZicHF3tcZLWyuNlLd1s3knERmFSSRGOOJ0e6y2FlX2c7WGiMpsZHMLkxmen7oJRp21nWwqcqIlDC7KHnkyUYPJdYuqN0I9ZshMQ8K5kNyYbit8qHHYmR700Z2tJaSHp3KzIyZ5Gd4S1qUG8vZ0rwFs93MjIwZTEmbEvKn+wZzA1uat1DXVcek1ElMS59GQqRHc8rqsLKjdQfbW7aTEp3CzIyZFCYOeD9byqBmLViMkDcHcucEJe8BsKttF1ubtwIwI2MGk1InHfZrG80E/C2RUqYLIaYCi4E/CCHGA7ullD8YNOuGEJvDyT9WlfPE556SDefMyOEP508nKTawp6TWLit3vLGVlXtb3G2/OnMS1y4a435KX76rkVtf3eLen58Sw7LL54RUs2drjZFLnv6abpsWVRRt0PHvHx/NrABrEYw6tr8B793i2c6dA5e8BIm54bPJD59WfsQvv/k/9/a4xBKeWPwQuWmaqGC5sZyrP7qa1h5NGEAndDx1ylMclXtUyGxotbRy56o7Wduw1t1227zb+MGUH6AT2ihzVe0qbv3iVvf+woRCnjr1KfIT8ntPUgbPfwdMvbLqQsD3X9M0nwJke8t2rv7oaiwOC6AJ//3z9H8yLX3aYb7C0UvAcwRCiESgECgCioEkwDceboRS0dLNsi+9Nfz/u7WesqbA9ff3NHZ6OQKARz7ZQ2Wrpntf227hL8v3eu2vabewvdZbx/5weXtTrdsRAPTYXby2rjqk1zhiMNbAJ7/xbqvbCA3bw2PPAWgy7uehLX/zaisz7WdXq6dk+IbGDW5HAOCSLv625W9020OXP7K3fa+XIwB4fNPj1HRqN/b2nnYeXu8dhV7VWcXO1p2ehpr1HkcAWlzz8t+BxTv35WC8W/au2xEAWBwW3it7L4hXohhIMOPHVf1+HpdS1nzL8SMKi8PpN/6+20/M/oHofwPuw+pwYe3V9Lc6HLR123yO6bL6xnYfDnUdPb5tRoufIxU4rWD14/DtgRcTGgrsThsdNt+bZf8bYrvVN7Cv2dKM3WmHEC0BWJy+36MeZw82p/a9tjqtfu3wckg9fh5+zM3gsAZsR7253qetzqwKAR0OAY8MpJQzpJQ3SClf9ucIhBCPhda0oaUwNZYZ+d4SzRnxUT7x+AdjTEY8idHe/nXx+HTyk7WwvOK0OC6c650DEKETQUtDfxtL5vhq4F+8wDf3QAEk5cP0C73bDDGQMdH/8WEiM7GQJcVnebUZdAbGJntCT+dmzR3YjcsmXRZSGeySxBKvojwAi/IWkRuvTallxmZyycRLvPZHiAjGp/Qr25o7C8SAW8+Cn0BCZsB2fHf8dwNqUwROyLSJhBAbpZRzQnKyb2GwQkv3NnXy9JflfLariblFKdxy8nim5QX3j7Sl2sgjn+xhe20HZ03P5qpjSxiT4fnn2dtg4o1Ntby5sZaMhChuOXk8J4xPJyoydIt8nRY7y0sb+eune3FJuPmkcZw+NctrIVvRj7b9sO4Z2PYqpE+Ak34DhaGbZw8VtS27eL3sLd6q/IiCuByWzvgJc/MXI3TajdXmtLGmbg2PbnqUDmsHP5jyA84uOZv02PSQ2rGteRuPb36c3W27ObXoVC6ffDlFSZ6kxvquet4qe4vX97xOdlw2t8y+hfnZ8z1V25x22P8lLP89mJtgwbUw89Kg1mg6bZ18VvUZy7YuQyC4buZ1nFhwotdCtsKXkOYZHOQiI94ZANgdLtotNpKiDUQZDq3koMXmpNNqJzU28oChm1WtZmIjI0hPGDylUGO3DSkhJU45gW/F5QJzC0TFeVc1G2ZIl4s2UzXRkfHExab5PabT2ondZSc1JtXv/lBgcVgw28wkRyf7jVaSUtLW00ZURJTfkp8A9HSCowfiMw7ZDmOPVpc7OVoFRwRCqOoZjAoMeh2Zh3mDjomM8FtDuD+FaYN/w0mOVU4gYHS6oKYpwoXQ6b5V1johavCfjmP0McToD5yVLIQgLca/s3ITnQAcnq3KCYSOUDqDwKu+H8EYu23srDPR0mWlMC2OydkJQY8wGk097KwzYbY5GJcRz8TsBITwvL0mi50tNUYqW7vJSIhiem4iuSlKSuJIx+lyste4l/0d+0mMTGRi6kTSY0I7BQRQWb+RvR370AkdE5LHkZ81M6j+DoeNLU0bKTdVEmeIZUryBIrThtcajMKXUDqDv4bwXCOSDoudBz7czStrq9xtj1w0k+/NyQ/4HLXtFm5+ZSMbq7Thb5RexwvXLGBBifaU5XK5eHNjDfe85wnVWzInj1+cMSnoBDnFyGJN/Rpu+vQmnFKLWluUu4jfHfs7MmIPfZplILtqv+balbdjtGrfv+yYTJYt+iNjc+YHfI6VtSv52YrbcLi0KLmZ6TP53cI7GZs+OWR2KkJPIPUM/NYxGHsnf3QAACAASURBVFjPQEr57KBaOgLY09jp5QgA7n5nB9Vtgcd5b6kxuh0BaKGpD3ywm64eTUZ4Z72JBz/a7dXnjY21lNaHNldBMbxos7Txh6//4HYEACvrVrKrbVfIriGdTt4s/6/bEQA0WJr4onZ1wOdoNFXz6ObH3Y4AYEvLFna27z5IL8VwIJCRgapjECDGbl/d906rg66ewPMImjt9Y63Lmrsw25zERxvo7HH4zWdoM/vmLyiOHLod3dR21fq0979xHy5OZw87Oyt82veaKn0PPgBd9i53Alp/jDb1sDLcCaSewZcH+xkKI0cKRWmxRA6IHpqam0hOcuDTN5OyfRfUvjs7j/R4TbysIDWWsRne0RlReh0lqhbBEU16TDqnFJ7i1SYQFCWGrkayPjKO7+Sd4NN+Uu7RAZ8jN66AkwpO9GkvTlB5LsOdYOQoxgshXhdC7BRClPf9DKZxI43xmfE8c8U88lO0KIt5xSk8fOHMoKJ6pucn8fCFM0iONaATcN7MXK46ttgtQ52fEssfvzeNmflJvdsxPP792e5txZFJtD6am+fczPH5xwOQFp3Gw8c/zOTU0M7DH597DFeOvxCDzkB0RDS3TLma+ZmBR4zHRMdzxeTLOCH/eASClKgUfrPwLmalB7cIrRh6giluswq4G/gzcC5wVW//uwfPPP8M93oGzZ1WOnvsZCREkRB9aDoA9UYLPQ4XuUnRfqORmkw91Hf0kBxroGgIwlQVwwOLw0JTdxPR+miyYrMG5RoOWzf17XvRIchJm4QuSDVRgE5LG1WmamL0UYxJU2qiw4WQJJ31nmSuEGKblHJ6b9tKKeWiENoaEMPdGSgUCsVwJFRJZz1CCB2wVwhxE1ALHDRLRwgRDawAonqv9frAkYQQIgp4HpiLVlLz4sGqlWC02Chr7KLH7mRMRjy5yd5JM06XpLy5izqjhYyEaMZlxhGpP7Qs5MOhsaOH0gYTXVYtz2BSjrd2kcslKW/porbdQnpCFOMy4n1GDy2dVsqau5BSMi4znoxBzHQ+IFJqcsXtlRCXrkk9RAaZD2EzQ/1W6KiBlCLIngmGAcVfOmqhdS/ooyF9IsSm+D/XQahs3k6NqZLkqBRKUicTO+Acxh4j5R3l2Fw2ShJLyIrzfiq32y1UtO6ksauOzLhcStKnYDAMfanIKlMV+4z76HH2UJJU4qvx73JCy17t/UzI1j6TAU/+ze372W/ci05EMCZ1PKkDahH0OHrY37Gftp42cuNzKU4s9sqDCQUu6aKio4J6cz1p0WmUJJUQNaDoT6ullXJjOQgYkzTm25PcBgEpJRWmCuq66kiNTqUkqYRovff/WpuljfKOclzSRUlSSUhDgUNJMM7gViAWuAW4FzgJuOJb+liBk6SUXUIIA7BKCPGBlPLrfsdcA7RLKccJIS4BHgAuDsKugGjosHDPuzv5cEcDAFmJUfzrygVMyfXcaD/e2cDSVzZjc7rQCbjnvKlcPK/gkGUpDoX9zV388cPdfNRrZ3p8JE98fw4Lx3i+6J/vbuKGlzZidbgQQquZ8MOji4g2aB/n/pYulv57M1trNJXLKTmJPP792V4aSUNC+efw78ugT7HyhF/D0TdAoBmyNjNseFaTmHY5IcIAZz8Csy7XMoYBGrfDy5dAR69E9/gz4Jw/aQJ0AbK+6gtuWvVLzL1KpVdPuJhrpv2IxIRsQNPaufuru1lTvwaAgoQCHj3xUcalaCJxToeND8ve4bfrHsAhHeiFnnvm3c7Z45egH+i4BpHS1lL+vOHPbjuzYrP446I/Mi+790FQSih9F968VtMHEjo4608w+3K3Qyhv3MLPVt/Fvt6oolmpU7jvqN9SkDEVALPdzEulL/H4pseRSKIjovnLiX/h2LxjQ/pavqz5ktu+uA2by4ZAcNu827ho4kXuG21lRyW3r7id0jZNwnty6mQeWvyQl0bSUPBV3Vfc+vmt9Dh7EAhumn0Tl0++nFiD9tBTbarm16t+zebmzQCMTRrLIyc+wpikMUNqZyAEo1q6TkrZBZiAW6SU3xtwU/fXR/b2AU1E1wAMnJf6DvBc79+vAyeLUD9mABurjG5HANBosvLkF2VYHVqYZmWrmdv/sxVbr9y0S8I97+5gX/PQShlvqTG6HQFAS5eNRz/dS0ev9HVtu4Xb/rMFq0OzU0q47/1d7Gnscvf5ZGej2xGAlpvw/jZfyd9BxVQPb9/gcQQAX9wHTaUH7jOQ+q0eRwDaDeyDO6ChtziQww5fPeFxBAB7P4Sqg34tvWgzVXP3ugfdjgDgn3teZU/rDvf22oa17hssQHVnNf/e9W+crr7vzk7uWf8QDqmFEDukg99teJjKtn4a/kPA9pbtXnY2djfyUulLdFl7vxtt5fDOjdr7CCBd8MFt0LLH3ed/+993OwKAzW07WVXnyTMoM5bx2KbHkL3/xj3OHu5afReN3Y0hex21nbXcteoubC7tOy+RPLz+YfYZPYWnllctdzsCgNK2UpZXLQ+ZDYHQaG7krtV30ePscdv52KbHKDOWuY9ZVbvK7QgA9nXs43/l/xtSOwMlmGiieUKIbcBWYJsQYosQwlcz17dfhBBiM9AEfCKl/GbAIXlANYCU0gF0AD7jPSHEj4UQ64UQ65ubmwM1282+pi6ftnUVbe4cgDazzaeugEtCc6dvbYDBpLbd93rbajtoMWv5B+3dNtr95DM0mTz91pS3+exfVdbi0zaoWNqh048D6mzwbTsQnQ0eR9CHvRs6e288tk6o+sq3X+MO37YDYLK0U9XlW/inyeJ5v/rfdPpY17jOXUugzdLivnG5zXTZae0e2ve8vMM3uG9H6w5aenrt6G7RRlv9cTk15VDAYe/h61bfoj6b+jnGFj+vqcXS4haMCwVGqxHTgLwEiaSl32eytn7twG5+2wYTo9XoZVMfzd2e+9PGpo0++7+u+xqHM7Q1TEJBMNXQ/wncIKUsllIWAzcC//q2TlJKp5RyFpAPLBBCDKxL528U4LOqLaV8Wko5T0o5LyMj+Dm3ybm+NQNOnpRFUowW7ZOVGE3aAHVPQ4QgJ3lo531LMnwjg44em0Z2r9REZkIUOUnec5I6AbnJnrn4kyf5LuWcPjU7xJZ+C/GZkDbOtz05iHjz5AJtHaA/MSmeKaDoJJhwpm+/vG99RnGTGpfJlOQJvqeI99SEmJ0522f/SYUnEWfQPqvMuBxi9d5rITH6GLLicgK2IxT4qwG8MHshmbG934eEXO39648+Sqv7DOgN0ZycvdDnHMdketYbc+JzEAP+ZQsSCsiICd08eHpMus/5IkQEOfGe9/PEQt9cBn9tg0l6TDoFA/InBMLLTn/TZycXnYw+YvhphAbjDDqllCv7NqSUq4CAa0JKKY3AF8AZA3bVAAUAQgg9WjlN30fbw2R2YTI/XjyG3nB9ZhUkc/VxxW6J6dzkGB67dDapvQ4hPkrPXy+Z7ZPgNdjMKkjimuNK3HkFE7MSuO74scRFaU4rMzGaRy+ZTUaCNhcdGxnBIxfNYlymx84TJ2ZyzgzPF/L0qVmcOmVwwhAPSFw6fPcpj0a9IQbOexwygoiLz5kF5z2q3fQBYlPhvMcgu/d5QhcB86+Bgt7aA0IHC6+HggUBXyIxPpvfzv8FuXGanZG6SO6cfSsT+9XSnZs1l4smXOS+CS7IWsD54853L5oWZkzl4aPvITFSe+BIjEzk4aPvoTB9CkPJtLRpXDD+Anct4qlpU1kyYYl7/prkArjwWeiTvo5KhCXPQJqn8MyphaewONtTy+HcwlM4KsezPS55HPceey/REb0PJ7GZ3HfcfSGVy86Ky+LBxQ+SFq3ZGauP5b5F91GSVOI+ZnH+Yk4tOtVjd9GpLM5fHDIbAiEtJo37jrvP7WyjI6K599h7GZ/seT+PyjmKc8ec694eaPdwIpjQ0j+jLSC/gvbkfjHQDrwBIKX0GQ8JITIAu5TSKISIAT4GHpBS/rffMTcC06WU1/UuIH9PSnnRwWw51NBSq8PJ/hYzVoeLotRYv8lgte0WGk09pMVHhi1+v9tqp7ShE7PNyZj0OPL9KJLWd1ho6OghJTaSorRYn2gOs81BRbMZCZSkxREXHaYnEVO9FrkSkwKpYzwLv8FQvw26GrQn2Cw/N1iLUZsP10dB2ljf0UQANBsrqDdVkxCVSGHaZCIGRNj0OHqoNFXicDkoSCggMcp3pFnbsouW7ibSYzPIC5Mom9FiZI9xD1anleLEYgoS/YzEjNXaFFxcOqSW+OzuMrdQ1RtNVJQynpgBowmXdFFlqqLD2kF2fPag5Ts0mBtoNDeSEp1CQUKB73fcbqbKpGmBFSYWukdqQ01jdyMNXQ0kRSVRlFjkY6fFbqGysxKXdFGYUHjg+g5DQKjyDD4/yG4ppTzJT58ZaIvDEWijkNeklL8XQvweWC+lfLc3/PQFYDbaiOASKeVBM5tVnoFCoVAET0jyDKSUQU/ISSm3ot3kB7b/tt/fPcCFA48JF3VGC02dVlLjIilMVTUChgXtlVoVsoQs/yGjlg5o36+NDFLHaL9DjaMHWsvBZYeUEoj2U7faWA1djRCf5X9txNqpjWB0ekgdCwbvEUzfE3eXvYucuBz/cfPmFjBWalM8qWO0qbJg6ajRFuHj0iClOPj+I4jqzmqMPUYyYzN9ckMU3gTsDIQQWcB9QK6U8kwhxBTgaCnlM4Nm3RDz9b5Wbn5lE81dVhKj9Tx0wUxOmZLlnr9XDDEuF+z9CN66DnqM2rTGkmdgzAmeY1rK4L2lULlKWzM46kY4binEhTCxp7MRVv4J1v1dC8cccyKc/SdtSqqPsuVa/H53mzYl9r2/w7hToG/KoLUc3r8N9n2qtc27Bhb/QnNwaNNQ/yv/H39c+0d6nD3kx+fz8PEPMzV9qucaDdvh9auhZbfm8E65B2b/EKKCmHYo/xLeuAbMzRCdDOc/qS3CH8r03TDG4XLwadWn3P3V3ZjtZjJiMnj4+IeZkzUklXlHJMF8A54FPgL6qlbvQUtEOyKoM1q46ZWNNHdpIZymHgc3v7KJ8mbfkFTFENFaBv+5UnMEoD0V/+dKMPbWjHC5YP0/NUcA2o16zWNQHeIQw6o1sPYp7fygJdNtfllL8gDtaf8/V2qOALSw2v9cqbX3seXfmiMArd+6f0ClJ35/b/te7llzjztmvaarht999Ts6rL35ItZO+PBXmiMAcFi17Yatgb8OYzW8fqXmCEB7X1+/SsvePsIo7yjnjhV3uPNHmi3N/GLFL2jqDaNV+BKMM0iXUr4GuMCdE+ArrD9CaTT10NLlHStuc7qoM1rCZJECU602PdMfSzuY6rS/e4yw208CT02I15Oq1vi27XoP+pK5THXazbo/ti6PndYu7fiBVKxy/+mvVkFpeymtllZto7sVKlb4nqM98FoDdNZ5HFYfDqv2Ph9h1HfVexUCAm2ht9kSfI7SaCEYZ2AWQqTRmwMghDgKLUHsiCA1LpL4KO9ZM52A9IShkxNQDCA+03dO3BALsb11fyMTPGGl/ckMcUhn9gzftsJjPTpLcRkQMSAyLSLSM1VliIWi43zPketZTkuP9a1lnB+fT1JUb1htVBJkDUzRQdMXCpTYdIgcEHEjdBB3UImxEYm/2tCJkYkkRyWHwZqRQTDO4GfAu8BYIcRqNHG5mwfFqjBQlBbHA0umo+9dHxACfnvOFMYNtZ6PwkPaeDjzIe2GBdrC63mPeubq9QY45iYtmaqPcadCUeDFWAKiZBEU94thTyqABdd6HFXaODj3r55tXYSmodSXdKfTwbyrILmfbk7RcVByvHtzYspErp52tXs7Rh/DPcfc41lEjk2Bsx/WFo77mHcN5ARRJyB1DJz7mPY+gva+nvmgJlZ3hDE2eSw/n/tzd26IQWfg3mPvJS8h71t6jl6CCS29EG3NoABYAiwEfuMvv2CwGazQUofTxb5mM3VGC5kJUYzL9FUDVQwxdqumndPZAEl5kD5eE6zrj7GmV7U0CjImaclpocbcAs27wWnTbp5JA24qDptmp6keEnP8qoHSUasdExEJGRO1BfF+dNu72WfcR4e1g/yEfIqTin3taC3X1iJikjSFVn9RTQfD6dBscKuWTvRVgT1C6FNXbbG0uNVVIw4l+uoIIlR5BlullDOEEMehRRX9Cfi1lNI3f32QUXkGCoVCETwHcwbBTBP1rcacDSyTUr4DBF8CSaEIEmOPkSpTFSbrAYqq2y1alnLTrgOeo7m7mSpTFT0DF6RDiakO6jaD0f+CrMPloKazhvquAyvItnS3UGWqwmL3H7hgspoobS2lsuMgC8cdNdC2X1N1HSy6mqF1n+/C+QjD5rRR3VlNozl0qqsDkVJS21lLTWeNW+l2OBKMRkGtEOIp4BTggd6iNEdWcLJi2LGpaRP3rrmXvca9TEufxl0L7/KOvW/cAWuehK3/hsh4WPRzmHGRe2HV7rSzsnYlf/jmDzR3N3NiwYncOvdWL52bkFD+JXz0K82ezClwxv1e+RAN5gZe2PkCL+96maiIKG6adRPnjT3PLWvhdDlZXbeae7++lwZzA4vyFvHzeT9nbLInl2FHyw6e3PwkK2tXkh6Tzk/n/pRTCk4hJrJXTNHaCdvegOV3a9FMc34Ix/0Ukr2L0xwWLhfs/xLeuxWMFdq6xxl/9C8TMsypNlXz9Nanea/8PRIiE7h93u2cWnwqMfrQiVO297TzVtlbLNuyDKfLyRVTr+DSSZcOywI3wdzML0JbMzijV3QuFbh9UKxSKICazhpu+vQm9hq1OPjtLdu59YtbaeruFyu+9TXY/CK4HFqo6Se/8apnsKd9D7d+rvWRSD6r/ozHNj4W2hFC0y5480ce6eymnVpiV6OnnsHyyuU8v/N5HC4HZruZB9Y9wKamTe79e9v3cstnt9Bg1iS+V9au5IG1D7jj5LusXSzbuowVtSuQSJotzdy56k42t3i08qnZAP9dqr0PLoeWg7H55dC9ToCWXfDyRZojAM0xvHuzlgU+gnBJF6/ufpW3972NUzoxWo3cufpOdrQELn8eCOsb1/PnDX/G4rBgc9n4+7a/82XNlyG9RqgIprhNt5TyTSnl3t7teinlx4NnmmK0U91Z7aNr32Bu8MTkd9Rqlbt8Onqcwf6O/e5CLH0sr1oe2njztn3QNSCZydziTjrrtnfzVtlbPt1W1XryDCpMFT5x8Wvq17gdX625lhU13nkGEkmlqd90kb+iPptfBnNrMK/m4LSWa4vo/aldD6aa0F1jCGi1tPJeuW/uh7/aFYfD8krfgjtvl7094usZKBRDij9lUL1OT0Jkb9nMqARILvbtmOTRBXLH6fcjKy7Lp/7AYRGT6gl/7UPo3FFNkRGRjE8Z79Ot/1SVv/j3tOg0t51xhjiyY31zCtzvBUCKHz2k9InB150+GAPrIYAmMR5GJc5DIdYQS2GC7/RZZkxocy7GJfvW9JiUOmlYRjUpZ6AYtoxNGsuPpv3Iq23p7KUUJfbG60cnwrG3aEldfaSNhSJPQZFJqZNYlLvIva0TOu5aeFdoi6dnTYNjl3q3HX0zZGpJYnqdnssnX068wXPDLIgv4JjcY9zbE1IneOncCwS/Xvhrt7hafkI+P5v3MyKE5yYyN2suU9L6zdUXHuNdL8IQC8ffrtWSCBWZU2DGJd5tZz4IKUNbe/hwiTPEsXTuUiJ1nhiYKalTmJbhJ7HvMDip8CQvie/EyEQuGH+Bj8z1cCDg0NLhhAotHT2YbCb2tO2hwdxAXkIeE1Mmeoq19FG9Vpunj4iGnBk+i5ktlhZ2te6iw9ZBSVIJE1ImoNeFuL5DVxPUbdT0f5IKtOziBG+VzHJjOXuNezHoDExMmeiTANVqaWV3227are0UJRYxMWUihn45FVaHla0tW9nfsZ+EyAQmp072zUXoqNFqRzsskDk59NnYoE2BNWzTNI5Sx0LWVB8F1pGAlJK97Xsp7ygnxhDDpJRJg6JsWt1ZzZ62PTilkwkpE/znjwwRIckzGE4oZ6BQKBTBE6o8A8VoxNwS/lhyh1V78j6MuHljZz01bXtwOQ5j4c7S4Sv0FmIsDgttljZcfQqpA5BS0mZpo9vePah2KEYfw68qs2J40NkA2/4D3zylCa6ddBeULPaVghhsGrZrtQSqvtLqAxx9M2T6Fn4/EC6Hg6/qV/P0tmeoM9dxWuGpnF98BhOygtD0sVtg32fw+X1a/P7RN8PU833kJA6XLU1beHLLk5QZyzir5CwumniRV8H1uq463tr7Fm+VvUVBQgE3zb6JOZlzhuX8s2LkoaaJFP5Z/agWs9+H0MHVHwVVbP6wMdXBM6dBR7WnLWsa/PBdrUpXAGys+4ZrP70Bm8sTDvmdsedx5/xfEhOVcJCe/ahYCc+e4932nSdg9uWB9Q+AcmM5l/zvEiwOT+bx2WPO5ndH/44ofRR2l52H1z3My7s8eQORukhePvtlJqZODJkdiiMbNU2kCI6uZvhmmXebdIW+TsC30Vrm7QgAGrdD+0FLZHtR1rHfyxEA/K/8fapMFYHbsecT37ZvlnnqGYSAfR37vBwBwAf7P6DerElXNJmbeG3Pa177bS4bZcaykNmgGN2oaSKFL/ooLXZ+YNGTYBUyD5eBUUOgaYsHIRcQ7acecnxkPJEEEecd70c6ID4rpFNm0RG+0Tgx+hgMOu0akRGRJEYm0tbT5nPMkYDdbqempoaenkHUjhpFREdHk5+fj8EQ+HdUOQOFL9GJcPJv4ZWLPKUd47MhfwiniECTgZ5+obZ20ceC6zx1AgJgStI4ShJL2G/a7267YeZ1lGQEEXI59iQt2crSrm3rIjTNHz+O5lCZmDKRaWnT2N663d1265xb3eGnGbEZ3DbvNn696tfu/WMSxxwxU0Q1NTUkJCRQXFys1kAOEyklra2t1NTUUFISuAaXWjNQ+Mdh0+Lmq9dqN8LCheEpgtLZADXrtFoCWVMhf17Qxe5LGzaxpb2Upu4mpqZNZnbqVFIT84Ozo3EnVH8D9m4oWKjlEYQ4i7S2q5bNTZup76pnavpUpqdPJ75fZq/FYWFb8za2tWwjIzaD2RmzKUj0k3U8AiktLWXSpEnKEYQIKSW7du1i8uTJXu0qz0ChUAxrSktLfW5cisPD33uqFpAVw5/DfSgJpL/Lf+x+KDlQfoBCMdwfvNWagSJ8OO2a0ua6f2jyCfOv1XSFghFW6zFBxQpY94w2fTTvGsifr9Ud7qN+K2x6UYtEmnUZjD9FWwAOIVWmKj6u+Jgva77k+PzjObX4VI+GkuKI5qyzzuLll18mOdlXbNAlXVjsFtqsbUgpSYlOIU4fh043/J7DlTNQhI+a9fD8eVrYKsCej+Cy12H8qQfv15+yT+B1TyF5drwJV38MeXO07Za92jX6Fn8rV8MJv4bFt3s7jMPA2GPkt6t/y4amDQBsbt7MitoVPHrioyRH+94gFEcW77///gH3WRwWKvqFMXfaOilMLPRWmx0mDD/3pBg97Hzb4wj6WPOEVrQ9EKydsPIR7zanHfb30/1v3O5xBH2s/nNI9fcrTZVuR9DHpqZNXjcBRXgxm82cffbZzJw5k2nTpvHqq69SXFzMHXfcwYIFC1iwYAFlZVrORnNzM0uWLGH+/PnMnz+f1atXA9DV1cVVV13F9OnTmTFjBm+88QYAxcXFtLS0APDiiy+yYMECZs2axU9+8hPauttwOp3cedOdnL/ofL67+Ls8+KcHh+WUkRoZKMKHzk8MdLCx+/4ievq3DawzACAiCOVz0IEiYHT+rq0ICx9++CG5ubn873//A6Cjo4M77riDxMRE1q5dy/PPP8+tt97Kf//7X5YuXcpPf/pTjjvuOKqqqjj99NMpLS3l3nvvJSkpiW3btgHQ3u79kFFaWsqrr77K6tWrMRgM3HDDDbz16ltkj82msaGRt1e+DYCre3iuK6lvqyJ8TDkPBkpJH3UDRAT4jBKVoE339EcfDcWe+gVkTYf4AQVLFv8Ckrzlow+H4sRijss7zqvtmJxj1JrBMGL69OksX76cO+64g5UrV5KUpBU9uvTSS92/16xZA8Dy5cu56aabmDVrFueddx4mk4nOzk6WL1/OjTfe6D5nSop3oZ9PP/2UDRs2MH/+fGbNmsWnn35KY3Uj+UX51FTWcN8v72PVp6soyiwaliG0amSgCB95c+HK97U6xg6LVjSlYGFw5xhzElz2Bmz9t3bTn7YEcmd59qeNgR+8Azvf1WoeTD1fK+Iewn/GxKhE7jrqLlbWrGRN/RqOzjmaRXmL/FZZU4SHCRMmsGHDBt5//31+9atfcdpppwHeo7q+v10uF2vWrCEmxju7W0p50Ju4lJIrrriC+++/36vN4rDw2ZrP+Hz557z9/Nt8/eHX/Otf/wrlywsNUsoR9zN37lypUCiOHHbu3Dmo56+trZUWi0VKKeVbb70lv/Od78iioiJ5//33SymlfOGFF+Q555wjpZTy0ksvlQ8++KC776ZNm6SUUt5xxx1y6dKl7va2tjYppZRFRUWyublZ7tixQ44bN042NjZKKaVsbW2VFRUVsrm5WXZ0dLjPNXPmzEF9rX34e0+B9fIA91U1MlAoFEc827Zt4/bbb0en02EwGPjb3/7GBRdcgNVqZeHChbhcLl555RUAHn30UW688UZmzJiBw+Fg8eLFLFu2jLvuuosbb7yRadOmERERwd133833vvc99zWmTJnC//3f/3HaaafhcrkwGAw88cQTxMTEcNVVV+HqzXPpP3IYTgxqBrIQogB4HsgGXMDTUsq/DjjmBOAdoE885k0p5e8Pdt7RnoHcZmljU/MmNjZuZHzyeObnzCcvPsg5cGMVVKyGxm3a1Ezh0b5z60NB3WatVoDDCuNOhtw53msGHbVaOGj9Zi1/oPAYr3KSdqedrS1b+aruKxIjEzkq56gRq9dT1byDtQ3fUNFZzYLMuczMmktSQs6QtTDkwgAAG1pJREFU2uB0OdnRuoPVtavR6/Qck3sMU9OnDvp1w5GBXFxczPr160lPD21diuFCsBnIgz0ycAA/l1JuFEIkABuEEJ9IKXcOOG6llPIcP/0VA7A77Ty38zn+uf2f7rY5mXN45IRHAi/ybm6Bd26C/V9q22uegIU3wKn3hFR87Vup3QjPnqUVjwFY+RD88D0o7i1obzHC+7fB7n5x3HOugDP+6E5M+6bhG25YfgMS7aEmwZDAs2c+y4SUMOgoHQYNbXu5ZeUv2ddZAcBze1/n59Ov44pZ1yOGMEFpc/NmrvnoGpzSCcBTW5/i2TOeZVp6aAvFK4Yfg/otk1LWSyk39v7dCZQCoQvjGIVUd1bz3I7nvNo2Nm0MTte+ebfHEfSxdhm07QuBhUFQ+p7HEQC4nPD137TfAC27vR0BwMbntDoHQLe9m2Wbl7kdAUCnvZN19esG2/KQs7ut1O0I+niy9Dlq23YPmQ0u6eLl0pfdjgDA6rTyccXHQ2bDUFJRUXHEjgoOhSF75BBCFAOzgW/87D5aCLFFCPGBEMLvmFQI8WMhxHohxPrm5uZBtHR4Y3fZvf5Z3e3OIOoDO62+bdKlJWwNJT1G3zZLmycRzWHz3Q/g1NqdLieddt/6zGaHOVQWDhn+Pj+b04bDdRg1m4PEJV10WDt82k0205DZoAgfQ+IMhBDxwBvArVLKgd+sjUCRlHIm8Bjwtr9zSCmfllLOk1LOy8gITsL4SKIgoYDFeYu92tJj0ilJCly3nPQJMFDCecxJkBLEOULBlPN92xZe50k8Sx8PqWO89+fNg9SxACREJXDF1Cu8duuEjvnZ8wfD2kFlXMp44g3xXm3nF51OXvLYIbNBr9Nz6eRLfdrPKD5jyGxQhI9Bl7AWQhiA/wIfSSkfCeD4CmCelLLlQMeM9gXkalM1b+97m48rPmZW5iwun3x58IumDdu1YvdVX8Hkc2H2DyBt6G48gDZFtH+lVvDe0QPHLtWK3vevqNZUqgnZlX8BE8/U1gzSx7t3G3uMfFHzBS/sfIHkqGSunX4tc7PnuiuEjSR21H3Dv0pfZI+pknMKTuSckjPJTZs0pDZ02bpYVbeKf23/F5G6SH40/UcsyF5AjGFwK6opCevQE+wC8mBHEwngOaBNSnnrAY7JBhqllFIIsQB4HW2kcEDDRrszAC0/pNPWSYwh5tBvfE4H2MzazTecGZH2bk1eOire/36XU6s3HJVwQHE5s91MhIggWu9bPnIk4bD1YLGZSAhHZFc/uu3d6IRuyN5P5QxCz3CLJjoW+AGwTQixubft10AhgJRyGXABcL0QwgFYgEsO5ggUGkIIEqMOsyZxhB5ihkGWrL9ax/3RRXyrnXGGuBAaFD70kdEkRIbfocV+22cyynn22Wc57bTTyM3NDbcpIWNQnYGUchVw0EdOKeXjwOODaccRh7UL6rdAe7lWmzhnlv+i7SOB2k3QsAVcDsiaBoVHhdsixQjg7U21PPTRbuqMFnKTY7j99ImcP3voAhWfffZZpk2bdkQ5AyVUN9JwuWDzi1p8/js3wUv/3969x1VZpQsc/z0KBoqopSZJ3qZMQzDwhpfsImqjZBfxyBzL0DzlmLczOVPWVHzqM9OZcqb0nMqmi5o5hYOXMpuyUqdM8wJy0bxkhspFRFQEBRVZ5493g7C5bG6bvcHn+/nwgb3etV+eWWM8+33ftZ4VAV/Oh/OnHb/X3RzdDv+IgHVzYP2T8OGDcPjfjt+nrmprd6cxf3UyaWfyMUDamXzmr05m7e60Op23ojLXcXFx3HHHHfTr14/Ro0eTkZFBbGwsu3btYtKkSdx2223k5+fzzTffEBwcTGBgIFOnTuXCBWvG3tNPP82tt95KUFAQ8+bNA2DdunUMGjSI4OBgwsLCyMzMrOuQ1AtNBo3N6cPw1Qtl25L/CVn7XBNPXRz8wloAV+ziOYhbVv39DNRV6dUvD5B/qez06vxLl3n1y7qtySguc52YmMiePXu45557mDVrFrGxscTFxTF16lSeffZZIiIi6N+/PytWrCAhIQERISoqipiYGJKTkyksLOStt97i1KlTrFmzhr1795KUlMQf//hHAIYNG8YPP/zA7t27iYyM5JVXXqlT3PVFaxM1NhfPWzNv7BU0wrngZ46Ub8s5Yq2DqG4Za3XVST+TX6P26goMDGTevHk89dRThIeH065dO/bs2cPIkdbOe5cvX8bPr3x5kAMHDtC9e3d69rRWvT/yyCO88cYbzJw5Ey8vL6ZNm8bYsWMJD7eKLKSmpjJx4kQyMjK4ePEi3bs38JTuSuiVQWPTtotVv6e0Fj5w3U2uiacuelYwfz0gAlo0jYfByjluaFvxNNfK2quruMx1YGAg8+fPZ9WqVQQEBJCQkEBCQgLJycls2FB+NXZl8108PDzYsWMH48ePZ+3atdxzj/XvfdasWcycOZPk5GTefvttCgoq+HDnApoMGhvvtnD/m9Ar3NoY5oYQeGgVtG+EyaDb7TDqT9CqPXi1gdvnQc9Rro5Kubnfj74Fb8+yO9x5ezbn96PrVqAwPT2dli1b8tBDDzFv3jy2b99OVlZWyaY3ly5dYu/evQC0bt2a3Fxr9XuvXr1ISUkp2TZz+fLl3HHHHeTl5ZGTk8OYMWN4/fXXSUiwJlTm5OTQubP1sHvZsmX2YbiMXos3Rh17w4PvwvmTcI2ve0wPrQ1fPxgy01pMVnQZOjSu4nLKNYpnDdX3bKKKylx7eHgwe/ZscnJyKCwsZO7cuQQEBBAVFcX06dPx9vZm27ZtLFmyhAkTJlBYWMiAAQOYPn06p06d4r777qOgoABjDK+99hoA0dHRTJgwgc6dOxMaGsovv/ziILKG4fQVyM6gi86Ualp00Vn9c7dFZ01O2ul8Dmbm0qyZ0LOjD351vE/pNDlp1gwjA3S4Bdre6OqIKnY2w9qOsuiydcXjrnE2hIIcyPwRzmdb23W271Xpimul6psmgxo4mJnL1CU7SD1jPfD5VYdWvDO5Pz06VFJGwVWyDsJHkVdKUrftCv+5Ejo2bJ0bh7IPQczDVjIAaH2D9fzj+ltdG5crnD8NG1+CXe9Zr5t7QuRHcPNI18alrhr6saMG1sSnlSQCgJ+zzvHVj+6xYKSMfZ+W3ZvgzBHYs8p18VTmp6+vJAKA3HSIXw6N8NZlnWXuuZIIwConvm425B53XUzqqqLJoJouFxl2pJwq1777qBuu/D22o3zb0a0NH4cj6bvLtx37oWS/gqvKuQr26Dibbt06UqoBaDKopubNhHF9yy84GRXQyQXROND73vJtAeMbPg5HKroFEji+YbfedBftupevHOs/wKo9pVQD0GRQA2G9OzFxgD/NxEoOU4Z2Y+hNbrht3k1hMOC/rGqf0gz6TYGeo10dVXndbofBs631EiLQ9zfQe5yro3KN6wPggXfAq631ulMghL/WeKcNq0ZHp5bW0IXCyxzNPo+I0OVab1p4NHf8JlcovACnU6yf23UFd63zX3gJTv9ibXXZrht4ummcDeX0EbiQC76doWU7V0fTYJri1NLnn3+e4cOHExYWVqP3bd68mQULFvDZZ5/V6ffr1FInu8ajOTdf39rVYTjmcY01pdTdeXjqYrPS2nV1dQSNQ9JK+OZFyEmFNv4w4nkI+o8GD8MYgzGGZhVMAX7xxRcbJIbCwkI8POr+p1xvEylVDefOnWRv6lZ2H9nM6bOptTxJtlW2Oy0eCnLrN8CrSdJKa6ZVzjHAWN/Xzbbaa+mpp57izTffLHkdHR3NX//6V1599VUGDBhAUFAQL7xgVQtOSUmhd+/ezJgxg5CQEI4dO0ZUVBR9+vQhMDCwZKVxVFQUsbGxAOzcuZMhQ4bQt29fBg4cSG5uLgUFBUyZMoXAwECCg4PZtGlTubhOnTrF/fffT1BQEKGhoSQlJZXE99hjjzFq1CgmT55c6//dpemVgVIOZJ46xN92L+LzVOs/1t5te/I/oc/T4/q+1T/JyZ9g9WOQHm+9DngARv8ZfJvO5igN5psXrf2zS7uUb7XX8uogMjKSuXPnMmPGDABWrlzJ008/zZYtW9ixYwfGGMaNG8e3335Lly5dOHDgAEuWLOHNN98kLi6OtLQ09uzZA8CZM2fKnPvixYtMnDiRmJgYBgwYwNmzZ/H29mbhwoWAVQZj//79jBo1ioMHD5Z57wsvvEBwcDBr165l48aNTJ48uaTGUVxcHFu2bMHbu34WvuqVgVIOxGXuKkkEAPvOHGT1z2spqu6+C8bA7g+vJAKAvWsg5bt6jvQqkVPJlVll7dUQHBzMiRMnSE9PJzExkXbt2pGUlMSGDRsIDg4mJCSE/fv389NPPwHQtWtXQkOtXfl69OjB4cOHmTVrFl988QW+vmW3oz1w4AB+fn4MGDAAAF9fXzw8PNiyZQsPP/wwYBW769q1a7lkULrP3XffTXZ2Njk51nTjcePG1VsiAE0GSjmUkL23XNt3J+I5X3Cmgt4VuJgHP31Zvv3o9jpGdpVq41+z9mqKiIggNjaWmJgYIiMjMcYwf/78khLWhw4d4tFHHwWgVasrZdbbtWtHYmIid955J2+88QbTpk0rc15jDGI/bZjKS1876lN8rtIx1AdNBko50Pfa8uUxhnYIpmXxNFBHPFtZ033t3TiojpFdpUY8D552n4g9va32OoiMjOTjjz8mNjaWiIgIRo8ezfvvv09eXh4AaWlpnDhxotz7Tp48SVFREePHj+ell14iPj6+zPFevXqRnp7Ozp07AcjNzaWwsJDhw4ezYsUKAA4ePMjRo0e55Zaykz5K99m8eTPt27cvd+VRX/SZgVIO9Lu+PyNvuJ2v0q3bOj19exBx0wM0q+5ubM2aQfBk+HkzZCZbbb3uhW5DnRNwU1f8XKCeZxMFBASQm5tL586d8fPzw8/Pj3379jF48GAAfHx8+PDDD2nevOx08rS0NKZMmUJRUREAL7/8cpnjLVq0ICYmhlmzZpGfn4+3tzdff/01M2bMYPr06QQGBuLh4cHSpUu55pqyCy6jo6OZMmUKQUFBtGzZ0qn7H+g6A6WqIffcCVJOHeRS0SW6tf0V17bpUvOT5GVZxfmat4D2N4OXcz7hNUZNcZ2Bq+k6A6WcoHWrjgS26li3k/h0sL6UckP6zEAppZQmA6WUUpoMlFJKoclAKaUUmgyUUkqhyUAppSqUnp5OREREjd83bdo0fvzxxyr7LF68mA8++KC2oTmFrjNQSrlcTdcZrD+8noXxCzl+7jidWnViTsgcxvYY68QIr6ivktHOVtN1BnploJRqVNYfXk/01mgyzmVgMGScyyB6azTrD6+v9TkrK2Hdp08fAJYuXcqECRO49957GTVqFEVFRcyYMYOAgADCw8MZM2ZMSbnqO++8k+IPqz4+Pjz77LP07duX0NBQMjMzS86/YMECAA4dOkRYWBh9+/YlJCSEn3/+mby8PEaMGEFISAiBgYF88skntf7fVl2aDJqy3EzrS6kmZGH8QgouF5RpK7hcwML4hbU+Z2RkJDExMSWvV65cWVJltNi2bdtYtmwZGzduZPXq1aSkpJCcnMy7777Ltm3bKjzvuXPnCA0NJTExkeHDh/POO++U6zNp0iSeeOIJEhMT2bp1K35+fnh5ebFmzRri4+PZtGkTTz75ZLUK29WFU5OBiNwoIptEZJ+I7BWRORX0ERFZJCKHRCRJREKcGdNV4fxp2PkeLB4Ki4fA9rfh/ClXR6VUvTh+7niN2qujohLWXbqULTkycuRIrr32WsAqLT1hwgSaNWtGp06duOuuuyo8b4sWLQgPDwegX79+pKSklDmem5tLWloaDzzwAABeXl60bNkSYwzPPPMMQUFBhIWFkZaWVnJV4SzOvvFVCDxpjIkXkdZAnIh8ZYwp/XTl18DNtq9BwFu276q2Ur6D9b+78vpff4BWHaDPg66LSal60qlVJzLOZVTYXhfFJayPHz9OZGRkueOlS0ZX91O6p6dnScnp5s2bU1hYdg+Mys6zYsUKsrKyiIuLw9PTk27dulFQUFBh3/ri1CsDY0yGMSbe9nMusA/obNftPuADY/kBaCsifs6Mq8lL/Lh82+7lDR+HUk4wJ2QOXs29yrR5NfdiTki5Gw81Yl/CuirDhg1j1apVFBUVkZmZyebNm2v1O319ffH392ft2rUAXLhwgfPnz5OTk0PHjh3x9PRk06ZNHDlypFbnr4kGe2YgIt2AYMB+R4/OwLFSr1MpnzAQkcdEZJeI7MrKynJWmE3Ddb8q33btTQ0fh1JOMLbHWKKHROPXyg9B8GvlR/SQ6DrPJrIvYV2V8ePH4+/vT58+fXj88ccZNGgQbdq0qdXvXb58OYsWLSIoKIghQ4Zw/PhxJk2axK5du+jfvz8rVqygV69etTp3TTTI1FIR8QH+DfzJGLPa7th64GVjzBbb62+APxhj4io7n04tdSAjCZaFQ4G1PR7XtIZHPoMbbnNtXEpVojGWsM7Ly8PHx4fs7GwGDhzI999/T6dOdbtVVZ/croS1iHgCq4AV9onAJhW4sdRrfyDd2XE1aX5BMHUDHE8CU2S97lh+ty6lVO2Fh4dz5swZLl68yHPPPedWiaA2nJoMxHpy8h6wzxjzt0q6fQrMFJGPsR4c5xhjyj8dUjXTsZf1pZRyito+J3BXzr4yGAo8DCSLSIKt7RmgC4AxZjHwOTAGOAScB6Y4OSallBuqbON4VXO1uf3v1GRgew5Q5f+7xor6CWfGoZRyb15eXmRnZ3PddddpQqgjYwzZ2dl4eXk57lyK+xfYUEo1ef7+/qSmpqIzBeuHl5cX/v7+NXqPJgOllMt5enrSvXt3V4dxVdPaREoppTQZKKWU0mSglFKKRrq5jYhkAc4v1lG19sBJF8dQHRpn/dI465fGWb8cxdnVGNOhogONMhm4AxHZVdmybneicdYvjbN+aZz1qy5x6m0ipZRSmgyUUkppMqiLv7s6gGrSOOuXxlm/NM76Ves49ZmBUkopvTJQSimlyUAppRSaDBwSkeYisltEPqvgWJSIZIlIgu1rmititMWSIiLJtjjKbQMnlkUickhEkkQkxE3jvFNEckqN6fMuirOtiMSKyH4R2Scig+2Ou8t4OorT5eMpIreU+v0JInJWROba9XH5eFYzTpePpy2O/xaRvSKyR0Q+EhEvu+PXiEiMbTy327YdrpIWqnNsDrAP8K3keIwxZmYDxlOVu4wxlS04+TVws+1rEPCW7bsrVBUnwHfGmPAGi6ZiC4EvjDERItICaGl33F3G01Gc4OLxNMYcAG4D68MVkAassevm8vGsZpzg4vEUkc7AbOBWY0y+iKwEIoGlpbo9Cpw2xtwkIpHAX4CJVZ1XrwyqICL+wFjgXVfHUg/uAz4wlh+AtiJS9a7fVykR8QWGY+3ShzHmojHmjF03l49nNeN0NyOAn40x9hUEXD6ediqL0114AN4i4oH1AcB+q+D7gGW2n2OBEeJgowhNBlV7HfgDUFRFn/G2y9pYEbmxin7OZoANIhInIo9VcLwzcKzU61RbW0NzFCfAYBFJFJF/iUhAQwZn0wPIApbYbhG+KyKt7Pq4w3hWJ05w/XiWFgl8VEG7O4xnaZXFCS4eT2NMGrAAOApkYG0VvMGuW8l4GmMKgRzguqrOq8mgEiISDpwwxsRV0W0d0M0YEwR8zZVM7ApDjTEhWJfbT4jIcLvjFX0qcMW8YkdxxmPVT+kL/C+wtqEDxPrUFQK8ZYwJBs4BT9v1cYfxrE6c7jCeANhuY40D/lnR4QraXDLv3UGcLh9PEWmH9cm/O3AD0EpEHrLvVsFbqxxPTQaVGwqME5EU4GPgbhH5sHQHY0y2MeaC7eU7QL+GDbFMLOm27yew7nMOtOuSCpS+cvGn/KWl0zmK0xhz1hiTZ/v5c8BTRNo3cJipQKoxZrvtdSzWH137Pq4eT4dxusl4Fvs1EG+MyazgmDuMZ7FK43ST8QwDfjHGZBljLgGrgSF2fUrG03YrqQ1wqqqTajKohDFmvjHG3xjTDeuScaMxpkz2tbunOQ7rQXODE5FWItK6+GdgFLDHrtunwGTbrI1QrEvLDHeLU0Q6Fd/bFJGBWP9GsxsyTmPMceCYiNxiaxoB/GjXzeXjWZ043WE8S/kNld96cfl4llJpnG4ynkeBUBFpaYtlBOX/9nwKPGL7OQLr71eVVwY6m6iGRORFYJcx5lNgtoiMAwqxsm6Ui8K6Hlhj+zfqAfzDGPOFiEwHMMYsBj4HxgCHgPPAFDeNMwL4rYgUAvlApKN/xE4yC1hhu2VwGJjihuNZnTjdYjxFpCUwEni8VJvbjWc14nT5eBpjtotILNYtq0JgN/B3u79N7wHLReQQ1t+mSEfn1XIUSiml9DaRUkopTQZKKaXQZKCUUgpNBkoppdBkoJRSCk0GSiml0GSgVI3YShiXK2de6niUiPyfE35vlIjcUOp1igtXEqsmSJOBUo1DFFYdGqWcQlcgqybHVupiJVZ9m+bAS1grW/8G+AAngShjTIaIbAYSsGok+QJTjTE7bKUGXge8sVaaTrHVu69JHB2AxUAXW9NcY8z3IhJta+th+/66MWaR7T3PAZOwKk6eBOKAFKA/1krjfKB4A5tZInIv4AlMMMbsr0l8SpWmVwaqKboHSDfG9DXG9AG+wKowGWGM6Qe8D/ypVP9WxpghwAzbMYD9wHBbNdDngT/XIo6FwGvGmAHAeMrui9ELGI2VhF4QEU8R6W/rFww8iJUAMMbEAruAScaY24wx+bZznLRVgH0LmFeL+JQqoVcGqilKBhaIyF+Az4DTQB/gK1tdpOZYdeCLfQRgjPlWRHxFpC3QGlgmIjdjlf71rEUcYcCtpfYU8S0u1Aest1W8vSAiJ7DqNg0DPin+Yy8i6xycf7XtexxW8lCq1jQZqCbHGHNQRPphFT57GfgK2GuMGVzZWyp4/RKwyRjzgFj7x26uRSjNgMGlPskDYEsOF0o1Xcb6b7HKnagqUHyO4vcrVWt6m0g1ObZZN+eNMR9i7Qg1COggts3ibbdkSu9QNdHWPgyrdHIOVv33NNvxqFqGsgEo2R9bRG5z0H8LcK+IeImID9aWq8Vysa5WlHIK/TShmqJA4FURKQIuAb/FKvW7SETaYP27fx3Ya+t/WkS2YnuAbGt7Bes20e+AjbWMYzbwhogk2X7nt8D0yjobY3aKyKdAInAE6zlBju3wUmCx3QNkpeqNlrBWVzXbbKJ5xphdro4FQER8jDF5trr63wKPGWPiXR2Xavr0ykAp9/J3EbkV8AKWaSJQDUWvDJSqBRGZAsyxa/7eGPOEK+JRqq40GSillNLZREoppTQZKKWUQpOBUkopNBkopZQC/h8tw+OTshCQXAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.scatterplot(x=\"sepal_length\", y=\"sepal_width\", hue='species', data=iris); "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally, we define a vector with the names of the species, which will be used for plotting, and convert the species names to a categorical code. This makes classification simpler and also saves storage space. If we plot a random sample of the instances, it can be seen that each categorical code corresponds to a particular species."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal_length</th>\n",
       "      <th>sepal_width</th>\n",
       "      <th>petal_length</th>\n",
       "      <th>petal_width</th>\n",
       "      <th>species</th>\n",
       "      <th>code</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.4</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.3</td>\n",
       "      <td>setosa</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100</th>\n",
       "      <td>6.3</td>\n",
       "      <td>3.3</td>\n",
       "      <td>6.0</td>\n",
       "      <td>2.5</td>\n",
       "      <td>virginica</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5.4</td>\n",
       "      <td>3.9</td>\n",
       "      <td>1.7</td>\n",
       "      <td>0.4</td>\n",
       "      <td>setosa</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>5.7</td>\n",
       "      <td>2.8</td>\n",
       "      <td>4.1</td>\n",
       "      <td>1.3</td>\n",
       "      <td>versicolor</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>4.5</td>\n",
       "      <td>2.3</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.3</td>\n",
       "      <td>setosa</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>4.8</td>\n",
       "      <td>3.4</td>\n",
       "      <td>1.9</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81</th>\n",
       "      <td>5.5</td>\n",
       "      <td>2.4</td>\n",
       "      <td>3.7</td>\n",
       "      <td>1.0</td>\n",
       "      <td>versicolor</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75</th>\n",
       "      <td>6.6</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.4</td>\n",
       "      <td>1.4</td>\n",
       "      <td>versicolor</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     sepal_length  sepal_width  petal_length  petal_width     species  code\n",
       "6             4.6          3.4           1.4          0.3      setosa     0\n",
       "22            4.6          3.6           1.0          0.2      setosa     0\n",
       "100           6.3          3.3           6.0          2.5   virginica     2\n",
       "1             4.9          3.0           1.4          0.2      setosa     0\n",
       "5             5.4          3.9           1.7          0.4      setosa     0\n",
       "99            5.7          2.8           4.1          1.3  versicolor     1\n",
       "41            4.5          2.3           1.3          0.3      setosa     0\n",
       "24            4.8          3.4           1.9          0.2      setosa     0\n",
       "81            5.5          2.4           3.7          1.0  versicolor     1\n",
       "75            6.6          3.0           4.4          1.4  versicolor     1"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris['code'] = iris.species.astype('category').cat.codes \n",
    "categories = iris.species.unique() # create a vector with the category names,\n",
    "iris.sample(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## kNN Algorithm "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We first define a function which is helpful for plotting the decision boundaries of the kNN model. The first line defines the name of the function and its argument. The following lines enclosed in triple quotation marks correspond to a 'docstring' and will be printed when using the help facility for this function. Note that the function continues as far as the code is indented."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plt_decision_boundaries(skm,xx,yy):\n",
    "    \"\"\"\n",
    "    Takes a sklearn model (skm) with two features and plots the decision boundaries.\n",
    "    xx and yy correspond to matrices with the x and y coordinates.\n",
    "    \"\"\"\n",
    "    # ravel is a numpy method which converts a two-dimensional array of size (n,m) to a vector of length nm\n",
    "    # column_stack is a numpy function which takes two column arrays of length N \n",
    "    # and creates a two-dimensional array of size (N,2)\n",
    "    # now pass the (N,2) array to the model and predict values based on these features, zz will have size (N,1)\n",
    "    zz = skm.predict(np.column_stack([xx.ravel(), yy.ravel()]))  \n",
    "    zz = zz.reshape(xx.shape) # reshape zz so it has the size of the original array xx, i.e., (n,m)\n",
    "    plt.contourf(xx, yy, zz, cmap=plt.cm.Paired) # plot the decision boundaries as filled contours"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "From the module `sklearn.neighbors` we import the `KNeighborsClassifier()` function. Then we can set a parameter `n_neighbours` which will control how many neighbors to use in the calculations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "\n",
    "n_neighbours = 5"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We then set up our table of features `X` and our target values `y`. The features correspond to the first two features of the iris dataframe, and the target values are the categorical code for the species which was created earlier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# we only take the first two features. \n",
    "X = iris.iloc[:, :2]\n",
    "y = iris['code']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The syntax to use the kNN algorithm is the same as other `sklearn` functions. We first instantiate the model by passing the appropriate parameters. In this case the two parameters are the number of neighbours to use and the weights for predicted the labels. The choice `weights='uniforms'` indicates that each of the neighbours contribute equally to predicting the target value. The alternate is `weights='distance'` in which case the contribution of neighbours decreases with distance. Once the model is setup, then we train the model by fitting the features `X` and labels `y`. Then the model can be used to predict labels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier()"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf = KNeighborsClassifier(n_neighbours, weights='uniform')\n",
    "clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To view the output of the model we can plot the decision boundaries in feature space. We setup an x and y table which cover the feature space using the `numpy` routines `meshgrid()` and `linspace()`. Then for each point in these tables the model predicts the label using kNN and then plots the boundaries where each label applies. We can then overlay the scatter plot we viewed earlier for comparision. As can be seen the boundary between setosa and the other two species is fairly clear, but that between versicolor and virginica is quite irregular."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAF0CAYAAADYeLsVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3zURfrA8c9s35RNIyE06QqiWEAUCwqIiqeoeHZULCc2PPX07NjbWc7ezvN3pyJ2ERUUTwVEAQFFeu+E9LZJNlvn98cmMZtsyCbZTSHP+/XKi+zMt8yGwLMz35l5lNYaIYQQQnRMhrZugBBCCCGaTwK5EEII0YFJIBdCCCE6MAnkQgghRAcmgVwIIYTowCSQCyGEEB2Yqa0b0ByJyak6vXvPtm6GEGI/ZzQVkuUsoP8ePwCWvimUB9IpyC7DYclp49aJzmZLYWW+1jq9bnmHDOTp3Xvy6PTZbd0MIcR+LiFlBg/Of5uZdxcD0P31c1nunMJ/nlrIqT2fbePWic7mrBnrd4Qrl6F1IYQQogOTQC6EEEJ0YBLIhRBCiA6sQz4jF0II0X4Y7A7STp+CJb0XKOkftogO4MnbRcHs1wm4SiM6RQK5EEKIFkk7fQrdBx2Ow2ZGKdXWzenQtNaUpqUBU8j75KmIzpGPTkIIIVrEkt5LgniUKKVw2MzB0Y0ISSAXQgjRMsogQTyKlFJNekQhgVwIIUSndd6V11FSGtmz6PZKnpELIYTotD5669W2bkKLSY9cCCFEu1ZeUcH5V13P8X86l5GnncOnX37N0FGncv+TzzL2nIsYe85FbN2+E4D8gkIuu/4Wxpx9IWPOvpDFy34DoKy8ghv+fi/Hjj+H406fyKyvvwVg6KhTKSgsAuCDmV8w9pyLOOGMP3PzPQ/i9/vx+/1cf/s9jDztHI4dfw6vvPV22/wQ9kF65EIIIdq17xb8RLeMDD789ysAlDidPPCPf5KYkMB3n83g/U9ncdcjT/LBmy9z58NPcN2VlzJy+JHsytrLnydPYcncWTz10ms4EhP5ec5nABSXlITcY8PmrXz21Td8/eHbmM1m/jbtET76/CsGDezP3pxcFn0dPK89DsNLIBdCCNGuHXzQQO57/Bnuf/JZTh1zIsceNQyAP585HoBzzxzP3Y/+A4D5Py1hw+atNec6y8pxlpUz/6fF/Pv5P5ZzJSclhdxj/s+L+X31WsaccxEAlZVu0tNSOW3siWzftZu/P/AYp4wexZgTjo3pe20OCeRCCCHatQF9+zDv8w+YO28BDz31PGNOGAkQMlO++vuADjD343ex22wh19B1jq9Hay6cOIH7b7+5XtWPX37C9z/+xJvvvs/M2d/w0pMPt/g9RZM8IxdCCNGu7c3JxW63ccHZZzL16sv5ffU6AD796uuaP4864jAARh8/kn+9PaPm3FVr1/9R/s4f5XWH1kcdewyz5nxLXn4BAEXFJezck0VBYRGBQIAJp43jnltu5Pc162L3RptJeuRCCCHatbUbNjHtiWcwGAyYTSaeeeg+Lr/xVjweLydPvJhAIMCbzwWH1p+cdhe33/8ox50+Eb/fz8ijhvHPR6Zx2w1TuP3+Rxl52jkYjQbuuOk6zjz15Jp7DBrYn3tuncrEyVMIBAKYTSaeevAebDYbN95xH4FAAIBpt/21TX4G+yKBXAghRLs2dtRxjB11XL3yqyddyB03XRdSlpaawlsvPl3v2IT4OF59+tF65SsXfFPz/cQzTmPiGafVO2b+rA+b0+xWI0PrQgghRAcmPXIhhBAdTu2edGcnPXIhhBCiA5NALoQQQnRgEsiFEEKIDkwCuRBCCNGBSSAXQgjRabz38Uz25uS2dTOiSgK5EEKITuO9Tz8nOyevrZsRVTFffqaU2g44AT/g01oPr1OvgOeB04EKYLLW+tdYt0sIIUTbmL2pjBeXFpNd5iczwcjUo5I5fWBCs69XXlHBFVNvIys7B78/wO03TqFf717c89hTlJdXkJaawsv/eIQly39jxao1XHPrndhsVuZ+/C6/LF/BfU88g8/n48ihh/DMQ/dhtVp44B//5Ovv5mE0Ghlz/LE8fPdtzPluHs+8/AYer5fU5CTe+OcTZHTpEsWfTPO01jry0Vrr/AbqxgMDq76OBl6t+lMIIcR+ZvamMh76sZBKnwZgb5mfh34sBGh2MA+X5vS8K67jvddfoEtaKp9++TWPPPMCLz35MP96ZwYP33kbRwwdQqXbzfV/v5fP332TAX37cO3f7uat9z7gwnMm8NXc7/nl21kopWpSl44cfgTffjIdpRRvf/AJL7zxfzxy9+0t/6G0UHvYEOYs4G2ttQYWK6WSlVLdtNZ727phQgghouvFpcU1QbxapU/z4tLiZgfyumlOkx0O1m/azDmXXwOA3+8nMyO93nmbtm6nd68eDOjbB4CLJk7gzXff5y+XXoTVauGmu+7nlNGjOHX0iQDsyc7hyptuJzs3D6/XR++ePZrV3mhrjUCugblKKQ28rrV+o059D2BXrde7q8pCArlS6hrgGoAume3jhyeEEKJpssv8TSqPRN00p6OPH8mggf2Z+/H0fZ+oddhik8nEd5/OYP7Pi/n0y6/519szmDX939zx4ONcf+VlnH7yaBYuXsoTL7zS7DZHU2tMdjtOa30kwSH0G5RSo+rUh0sQW++nq7V+Q2s9XGs9PDElNRbtFEIIEWOZCcYmlUeibprTZStWkl9QxC+/rgDA6/WybuNmABLi4ykrLwdgYP++7NydxdbtOwH4YOYXHDdiOGXlFZQ6nZwyehSP33cHq9YFU6GWOsvo3jUDgBmfft7s9kZbzHvkWuusqj9zlVKfASOABbUO2Q30qvW6J5AV63YJIYRofVOPSg55Rg5gMymmHpXc7GuGS3NqMhm546HHKXWW4ff7uXbyJAYfOICLzz2LW+97uGay28tPPszkqX+rmex2xcXnU1RSwiVTbqLS7UZrzWP3/B2AO2+6jslT/0a3rl0ZfvhQduze0+KfRzTENJArpeIBg9baWfX9KcBDdQ6bBdyolHqf4CS3Enk+LoQQ+6fq5+DRnLXeUJrT2e//t17ZhNPGMeG0cTWvTzzuGBZ88VHIMZkZ6Xz32Yz6bR83htPHjWl2O2Ml1j3yrsBnwRVmmID3tNZfK6WuBdBavwbMJrj0bDPB5WdXxLhNQggh2tDpAxNaFLhFqJgGcq31VuCwMOWv1fpeAzfEsh1CCCHE/kp2dhNCCCE6MAnkQgghRAcmgVwIIYTowCSQCyGEEB2YBHIhhIhA9+nnstw5pa2bIVrJY/98iXk/LWryeQsXL+WCq1t3/nZ72GtdCCHalYSU4BriB+e/zcy7i2uC+H+eWsipPZ/l1J5t3EARFVprtNYYDPX7tHffcmOrtMHn82EytSwUSyAXQohaElJm1ATwX6afC9MJCeKi5cxb52L77TUM5bkE4jOoPOJavP1Oafb17n/yWXr16M7Vky4E4InnXyEhPp5AIMDM2d/g9ng445Sx3HXzDezcvYfzrryO448ZwdLffufd157niede5rdVa1EKJp13DtdfeRnX334Pp445kbPGn8KvK1dz50NPUOFyYbVYmPnOm5jNJv5238P8tmoNJpOJR+++nRNGjghpV1FxCTfecR/bd+0mzm7nn49O45BBB/HE86+QnZPLzj1ZpKYk8+Zz/2jRz1MCuRBCVKkdxGv3wkGCeLSYt84lbtETKL8bAGN5DnGLnqACmh3Mzz1jPHc98mRNIJ85+xtunnIVi5f9ynefzUBrzUXXTOWnX5bRq3s3Nm3dzktPPswzD93LilVr2JuTy6KvPwOoSVlazePxcuVNt/HWC09z5NBDKHWWYbdZee0/wYQsP8/5jI1btjLx8iks++7LkHMff+5lhg4ZzPTXX2DBz0u47rZ7+PHLjwFYsXotcz58G7vN1qz3XJsEciFEp1cdwIGwQ+kiemy/vVYTxKspvxvbb681O5APHTKY/IJC9ubkkl9YRJLDwZr1G/l+4SJGnXkeAOXlFWzdvpNe3bvRq0d3jjoiuFdZnwN6sn3Xbv7+wGOcMnoUY044NuTam7Zto2t6OkcOPQQAR2JwR7rFy37lmssuBuDA/v3o1aM7m7dtDzl38fLfePvl4O/PqGOPprComBKnE4DxJ4+OShAHCeRCiE6ubi9chtJjy1Ce26TySE04bRyz5nxLTn4+555xGjv3ZHHLtVdxxcXnhxy3c/ce4uz2mtfJSUn8+OUnfP/jT7z57vvMnP0NLz35cE291pqqbcZD6AZSoDZ2jKpK+Fm7DS0ls9aFEJ1WuKH0qdOGsHfGRAniMRKIz2hSeaQmnjGeT76cw6w53zJh/CmMOeE4pn88k7LyCgCysnPIyy+od15BYRGBQIAJp43jnltu5Pc160LqD+zXj+zcXH5duRoAZ1k5Pp+PY0cM46NZXwGwedt2dmftZWDfviHnHnvUMD76PHjMwsVLSUtNqenRR5P0yIUQnVK9nrhoFZVHXBvyjBxAG61UHnFti647+MABlJWX061rBpkZ6WRmpLNx81ZO+fMlACTEx/H6M09gNIb2X7NycrnxjvsIBAIATLvtryH1FouZt154mjsefBxXZSV2m43P3v4XV026kFvvfYhjx5+DyWTilX88gtVqCTn3zr9ezw133Mtxp08kzm7nlaceadF7bIiKZHigvel38FD96PTZbd0MIUQHFi6Qy5B68/S47iX69+ga8fHRnrW+P9qyJ4c9r4YugTtrxvrlWuvhdY+VHrkQQohW5e13igTuKJJn5EIIIUQHJoFcCCGE6MAkkAshhBAdmARyIYQQogOTyW5CiE5HtmIV+xPpkQshOo2ElBkNBvFgVjMJ4vuLvTm5XH7DrU0+76a77mf9pi37POat9z7k/U9nNbdpUSc9ciFEpyBZzTqXbl0z+O/L9f9eG0sb+sLjDzZ67SvrbPva1iSQCyH2ew33widKbvE2MDd3IW9s/4Bcdz4Z1i5c0+cCTsk4vtnXayiN6fSPZ7Lo68947+OZzJ23gEq3h4oKFzPf+Re3P/AYP/+yjAN69iAQCDDpvHM4a/wpnHHxFTx8520cMXQIPQ8dwZTLJ/HND/Ox22xMf/15Mrp04YnnXyE+Lo6pf5nM1u07ufW+h8gvLMJoNPKfF58hvUsal0y5ieLSUrxeL/feOpXTx42J1o+vHhlaF0LstxJSZvDMyvENDqWL1jc3dyH/2PQvctz5aCDHnc8/Nv2LubkLm33Nc88Yz2dffV3zeubsbzhi6JCQY5b+9juvPvUos6b/my+++R87d+/hp9mf8sLjD7L0t9/DXre8wsXwI4ay8KtPGHnUMN5+/5N6x1xz651cPekiFn71Cd989A5dM7pgs1p459XnmD/rQ76Y/hb3PvZ0RElWmkt65EKI/VK9XvhrU9jrRIJ4G3tj+we4A56QMnfAwxvbP2h2rzxcGtNe3buFHHPScSNJSU4CYPGy3zj79FMwGAx0Te/CCceMCHtdi8XMaWNOBODwQw5m3k+LQuqdZeXszcnhjFPHAmCzWgHwer08/Mzz/PzLcgwGA3tzcsnNL6Brepdmvb/GSCAXQux3GkqIIkG87eW68xsor5+ZrCnqpjGtKy7uj7ShkfaOzSZTTQpTo9GAz+cLqW/oOh99/hUFBUXM+/wDzGYzQ0editvtDntsNMjQuhBiv7fcOaWtmyCqZFjD90ozrGktum7dNKb7cszwI5j19f8IBALk5uezcMnSZt3TkZhA98xMvpr7HQBut4cKl4tSZxld0lIxm838uOgXdu3Jatb1IyWBXAghRKu5ps8FWA2h6T6tBgvX9LmgRdetm8Z0XyacNo7umV05dvw53HLPQww77NBm5wl/7enHeP2/73Hc6RM59bxJ5Oblc95Zf2LF6jWMPusCPpr1FQf279v4hVpA0pgKIfY74Wapgwytx0pT05j+MWu9gAxrWotnrTdHWXkFCfFxFBYVM3biRXz94Tsxe4bdHO0ujalSyggsA/Zorc+oUzcZeArYU1X0ktb6zdZolxBCiNZ3SsbxrR6467rwLzdQUurE6/Vy+w1T2lUQb6rWmuz2V2Ad4Gig/gOt9Y0N1AkhhBBR9eV7/9fWTYiamD8jV0r1BP4ESC9bCCGEiLLWmOz2HPB3ILCPY85VSq1USn2slOoV7gCl1DVKqWVKqWXOosKYNFQI0fHJ0rM2oAMx3fCks9Fag95XyAwV00CulDoDyNVaL9/HYV8AfbTWQ4H/Af8Nd5DW+g2t9XCt9fDElNQYtFYI0dGFm+Q2ddoQCeIx5snbRWmlV4J5FGitKa304snbFfE5sX5GfhwwQSl1OmADHEqpd7XWk6oP0FrX3gXgX8CTMW6TEGI/Ux3AAdmKtQ0UzH4dmEJ+ei9Qsqq5RXQAT96uqp9pZGIayLXWdwF3ASilTgJuqx3Eq8q7aa33Vr2cQHBSnBBCRKTeULpkNWt1AVcpeZ881dbN6LTaZItWpdRDwDKt9SzgJqXUBMAHFAKT26JNQrR3yTYTFqOBCq+fMo+/rZvTLkhWMyFaMZBrrecB86q+n1arvKbXLoSoz6gU6XYzHy7dxcrdJZx4UDonD+lKTrmn8ZP3UzKULsQfJGmKEO1clzgzf/9oJXnOYNKF95bsZFOOk2tG9ye/wtvGrWt9ktVMiFAyK0GIdq6o3FMTxKst3V6E3yczhIUQEsiFaPcsxvr/TI0Ghcmo2qA1Qoj2RgK5EO2c1WrkuAGhKR4vG9kbdyDyDSOEEPsveUYuRDtXUOFl8vF9GX9oN3YWVDCwawKJcWaKKn1t3TQhRDsgPXIhOoB8lxeTxcigXkn4DUqCuBCihvTIheggNOD2yXC6ECKU9MiFEEKIDkwCuRBCCNGBSSAXQgghOjAJ5EIIIUQHJoFcCCGE6MAkkAshhBAdmCw/E6IVGBWkxVnQVdujF7g8BGSrdCFEFEggFyLGzEaFw2Tk0S/WsjWvnAO7JvD38YMocvvwSTRvknD5x0Eyn4nOTYbWhYixFJuZ2z9ayda8cgA25pRx1yerSLOb27hlHUu4IP6fpxayd8ZECeKiU5MeuRAxVlrhpcQVmjc8z+mmTLZZjUjtAD4TQoK4BHAhJJALEXPxFhNKUfN8HMBkUMRZjJS7ZMvVfQnXC9/rlKF0IWqTQC5EjHm05toT+/PqvC01ZVPHDsDllyDekISUGQBhh9JP7fksp/Zs4wYK0Y5IIBcixpweH4cekMzLk46ksMxDWoIFbVCUumVoPZzavfBfpp8L05GhdCH2QQK5EFUMCuxmI5VeP/4oTyYvqQraJquREq8/uhffjzQ0oQ0kiAvREAnkQgCpdjMFpW4WbytiYEYCPdPiyXd52rpZnUZ1AAfCDqULIRomgVx0ekk2Ez+syeH9pbtqyo7pl8pVJ/Yjv8K7jzNFNNTthctQuhBNI+vIRadnRvHBsl0hZYu3FlLpliHwWAs3lD512hBZGy5EE0iPXHR6/oAOWRpWu1zEhgylCxE90iMXnZ7RpBjRNyWkrGeKHUec7LwWCyGz0nuPZe9rcyWIC9EC0iMXnV5+hZdrTxrAIT3ymL8hn2G9kznt0G7kVchkt2hraFa6rA0XovkkkAsB5FR4OKxPCscemE6lN0COBPGo21cQF0I0X6sMrSuljEqp35RSX4apsyqlPlBKbVZKLVFK9WmNNglRV4U3QF65B6en423UEmc2kmG3EGdQZMRbsBjlqZkQnUVr9cj/CqwDHGHqrgKKtNYDlFIXAk8CF7RSu4To8OItRnKLXNw+ZwMefwCH3cQT5w5Fa4VXJuwJsd+L+cd2pVRP4E/Amw0cchbw36rvPwbGKqVUrNslxP7CZjDw6Ffr8FTt3V7q8vHA52tIsclkPSE6g9YYf3sO+DvQUIaIHsAuAK21DygB0lqhXULsFwrLPfWWz+U63Xh8kpRFiM4gpoFcKXUGkKu1Xr6vw8KU1RsPVEpdo5RappRa5iwqjFobhejoUuIs1B3DSk+wYjXJc3IhOoNY/0s/DpiglNoOvA+MUUq9W+eY3UAvAKWUCUgC6kVqrfUbWuvhWuvhiSmpsW21EB2IJxDgztMGYTIEo3mC1cT9Ew6m0C3bywrRGcR0spvW+i7gLgCl1EnAbVrrSXUOmwVcDiwC/gx8r3W4fbaEEOGUef106xLHa5cNw1npI8luptjjw+trP/+MZOmZELHTJuvIlVIPAcu01rOAfwPvKKU2E+yJX9gWbRKipdLsJpJsZkoqvRS4WncJW7nHTznBveEr29EaeNmKVYjYa7VArrWeB8yr+n5arfJK4LzWaocQsdDbYeOb1dks2VbIUX1TOf3QbuwscTU4w7MzqNcLf20Ke51IEBciymRnNyFaqG+ynYdmrWXt3lIA1mc7WbqtkAfPGsLWYlcbt65tyFasQrQeCeRCtFBxuacmiFdbn+2ksLz9DHG3ltoBfCbIULoQrUACuRAtZG5gO1SzwQB0npzm4XrhMpQuROzJQlMhWshmNTLmoPSQshMPTMduM7ZRi1pfQ0Ppe2dMlCAuRIxJj1yIFtpZUsmVJ/TjhAPT+X1XMUN7JjGom4MdJZVt3TQhRCcggVyIKNjlrMSRYOWs4T0pLPeyo1SCuBCidUggF51CT4cVn1ezp9hFlwQLSXFmtke5x+wJBMh2uqN6zWpJVhM6oCkq95CeaMUd0JR7O8/zd9F2zPFJJJxzCbkJCos2kLwjm6KvP4r4fKsjDfvZF5FrD2DHROKWHRT/7/MYtrjzkUAu9nuZ8Wa25pRz/6w1NWWXHH0AZxzWLerBPBaSrCaWbS3grYXba8run3AwqQ4rFd7OvFJdxJxSxF1xA7dvf5nyvHIADk46kBvOvpTime80frrRhHnyFP62+QUq/cF/a8PTD+OK8edRPCfyDwNi32Sym9jvxZtN/OPr9SFl05fspMLdMXq0SuuQIA7w1NcbSDDL53ARW45DRjCj+AfKveU1ZWtLNrK3uwNlbDxNbtLwE/lX7hc1QRxgWeHvFPbrHpP2dlYSyMV+z1npo9xTP2h3lHXeZZX1t3ut8PiplKF1EWOmrt3YXL6zXnm2rwiTPb7R842Z3dlWVv/8YipRhs6zqiPWJJCL/V5qgoXeaXEhZVaTgV4p9jZqUdOkhklJekCqHZulffxHWHfpmdh/uFb/xsldRtYrH2jqiresuNHz3SuXMya9/vnd/fHogHwQjRYJ5GK/t7WonEfPOYQDuyYAkOmw8ez5h1Hma93EJs1V4vbyzPmH0S3JBsBBXRN44KxDKGgHyVHCrR+fOm2IrB/fT7iyd3B8STLjuo1CobCb7NzUfzL2nxZHdH7ZtrX8yTeA4zOOBiDBnMDfB/4F47zvY9jqzkd1xIyh/Q4eqh+dPrutmyE6ELMR+qfEU+H2YbeYyHJW4gwz3N5emQyKVLsZHdCgoMDlJdCG/3Qlq1nn4hhyFMbDh6Pcblzzv8GVt6dJ5ycddiyGQw5DuVxUzJtDZWFOjFq6fztrxvrlWuvhdctltozoFLx+yC33YDUaqHB5mrx0SwGpdjMWowFvQFNQ4UGHrVd4/JpCl5doxllfQJPbTp7pS1azzqd0zVJYs7TZ55f8/jP8/nMUWyRqk0Au9nsKyIy38tbCrSzclM+gzERuHncgTl8Aj7/x5VsGBRlxFl6ft4VfthUytGcyU8cOoNDtwxfQGJWii93Mqz9sZvmOIo7sncL1oweQX+nF35bd5hiQrGZCtD/yjFzs99LjLTw5ex0LNuYT0LB2r5NbP/idZGtkn2O7xFmY9tlqFm8tJKBhxa5ibv9oJWn24PKbLnYzd3+yiqXbiwhoWLa9iDs/XkkXe+PLczqKhJQZPLNyPEcc94IMpQvRzkiPXOz3PN4A67KdIWVlbh+FZe5gd7sRFW4fu4pC84oXlnsoKffWXCu7zpasuU43Tpe3hS1vH8L1wh+fthCQIC5EeyA9crHfs5gM9ZZvAcRZIvscazcbMYYJ+HHW4PIvm9mIqlOtFNj3gw1b9rW0TIK4EO2DBHKx3yv3+Zk6dmBI2YTDu2M0Nd4bB6j0B5hyYr+QsouPPgB/1ekerbnq+L4h9ZNH9sFLx94+tfbM9GrLnVPaqDVCiIZ0/C6DEI0o9/jpm5HAy5ccSW5pJcnxFuKsJgorIxv6dnr8HNIrmRcvPoJ8pzu4QYvFQFHVjmtOt49hfVMZ2jOZgjI3aQlWzBYDxWF2ZOsoElJm1Hxftzf+n6cWtkWThBANkEAuospsUPi1jtkaZ7NR4fPrBpd2NVRf6gkGVVucmUqtqYwwiFcrcf9xfkUgQEVlaG+7uFZ9eSAAlR2zN147gNcdUpfeeGwZrXbQGr+n/SfyEe2LBHIRFYkWI/g1G3OcpCVY6ZkaR16dtdYtkWQ14fH42ZxdRmaSjcxkO3m1djZLtpmodPvZkl1G92Q76Q4b+a72se66o6gO4rU3eqmrujcuz8ejx+pIw3b+ZWw2O1FAf08Crg//i8dZ1NZNEx2EBHLRYhajgWKnh3tnrq4p658ez91nHExuFLYRjTMb2JLt5Jm5G2vKjjggmRvGDiSvwkOC2ci63aW88N2mmvqj+6Zy9Yn9yN9PZo7HWkNBXHrjsWeddDV/2/4Sbn8wl73dZOepS67D89o/2rhloqOQyW6ixVJsZp7738aQsi155RQ43VG5fqLFxCs/bAkp+21ncc3yrjizkdfnh9Yv2VZIhbvjPqNuLQkpMySIt6GE7v343r2mJogDuHwu5vs2Ep/Zuw1bJjoS6ZGLFlNASZieb6UvgNnY8gxdgQC4wmyp6vYGwKQIBDRuX/1n0m5vAIyRzUzvjOoGcGg4iNee4CbD6tFjjkskz1tSrzzfV4LJntAGLRIdkfTIRYuV+/ycN7xXSJnFaKB7si0q1/ejGTs4I6QswWoiw2EFQBvg+IFdQuoddhNdqupFfeF64dUT2xoK4sFtWCWIR1PxtrWc6hhWr3xcwhGU7ljfBi0SHZH0yEWLOd0+xhzclQSriVkrsuiVYufqUf1wNjExSUMKXV4uOaY33ZJszF2Tw0GZiVx+XB8K3cFRgIIKL1ed0JdeKXb+ty6Xg7s5uOzYPhTI8/F6mtILB5ncFmva75pH9hoAACAASURBVMXx4xLuHXUd72TPRqG4NPN04uctpEzydYsINSmNqVLqWKAPtT4AaK3fbvCEGJE0pu1TnNlAgsWEPxD97F8ACWYjcRYjvqrr16u3GIkzG/EGAhS55Pl4XfualS5D6W3LZE8gccSJKK0pXTofn6u8rZsk2qEWpzFVSr0D9AdWANUfFTXQYCBXStmABYC16l4fa63vr3PMZOApoDrB7Uta6zcjbZdoPyq8ASq8sVvyVeb1U9ZAL99qMpARZ6GkwovDZgJNzYYtADaTge4JVkoqvCTYTJR6fCH15qp83y6PH5vZSKnHR2WY5+7NZTUZSLaaaq5f7Pbi8bdOZrS6a8Ohfi8cwg+li9bhc5VRNP+rtm6G6KCaMrQ+HDhYN6ULD25gjNa6TCllBhYqpeZorRfXOe4DrfWNTbiuEDUsBgMpFhM3v7+CvSWVxFuM3HX6YDKSrRS4fNhMBhwmI1Pf+41cp5sEq4l7/zSYlEQLRZU+zEZFvMHAHR+uJK/MjcNmYtqZQ7BbDLiiEMxtJgV+zS0zVlDi8pIab+Ghs4eAUUWURrUlZEKbEPu/pkx2Ww1kNuXiOqis6qW56mv/StAs2lwvh5Vpn69mb0lwR6xyj59pn6/GZgjOmO+eYOWez1aTW7Ucrszt496Zq4k3BetTbWbum7mavLJgfWmlj7s/XRXc5CYKHJZgmtPqmf2F5R7u/nQVKbbYTlFpThCXCW1CdDyN/k+ilPqCYPBNBNYqpX4h2NMGQGs9oZHzjcByYADwstZ6SZjDzlVKjQI2ArdorXdF/hZEZ1fm9rGrMDTNaEDDnmIXmA2Uurz10oz6AjoY+I2KCref/LLQRwIef4Cicm9wbV0Llbi89ZbPlbp8OFv5OX7tIC4T2oTYf0TSJXi6JTfQWvuBw5VSycBnSqlDtNarax3yBTBDa+1WSl0L/BcYU/c6SqlrgGsAumT2aEmTxH4m3moiLd5CQXloME5PtJJXGXwm7rCbKK0TOLskWMlxebBbjCRYTZTV2kDGoMBhN1PQxD3Zw3HYTJgMCl+tDeitJgMJNhMVUdj5rrlkKF2I/UOjQ+ta6/la6/nA6dXf1y6L9EZa62JgHnBanfICrXV1D/9fQP1FlcHj3tBaD9daD09MSY30tqITyK3wMO3Mg0Nyjl97Yj+MxuDrIrePaWcMwVy1OYxScNOYAWgVDKxOr497zxiMyfBH/d9OOQh3IDrPryt8Ae48fRDVKc2NBsU9ZwzG6Y19jzzc5LblzikylC7EfqQpD+nGAXfUKRsfpqyGUiod8Gqti5VSduBk4Mk6x3TTWu+tejkBWNeENglBmcdPks3EvycfRXaJi9R4Cxgguzz4+bCk0keK3cRbk48ip7SStHgLAYMit6oH7/IGsNtMvHbZcIrK3TjsZjwBTZknOut4y71+MpLtvHbZcEoqPCTHWajwB6iI0jr7SIUL4kKIji+SZ+TXAdcD/ZRSK2tVJQI/NXJ6N+C/Vc/JDcCHWusvlVIPAcu01rOAm5RSEwAfUAhMbvrbEO2BUSlS4sxUev3NCoI2k4GeSXaKK73klzdtyLmk0ofXH6B3egKFLg+F5aFD4kVuH2U+P8mJVko8Plze0N62yxfAr32kJFopc/uaNVvdYTXRNdFKbpmbkjq5yMu9fsq9fjAo8qMwXN+YfeUTh/BB3N6lO/a0TEp2rMdfWdHke8Zl9MKW3IWS7evCpuKMz+yN1ZFK8ba1BLzR2YdfCBFZj/w9YA7wOHBnrXKn1rpwXydqrVcCR4Qpn1br+7uAuyJqrWi3Um1mckpc/GfpLvqmJzB6UAaFbm/Ic+F96eWwsSGrlA8X7WRg1wROGZJJTnklngjj6QEOGyt3FTPj5x0M6Z7E2MEZ7CqtpPr0dLuZTTlOPt6wkyMOSOaofmnklv+RZjU9zsyGLCcfbcpjWO9UhvVJIbcJaVh7O2ws2lLA29sKGdE3lZH909hR2rZ5pWvPVgdqeuN1g7jBbGHYBX8htXITlpItVIyYyI5dxWye92VE9zFa40i87FoWsp1t7r2MHXcVmau2UrpgDhDc7CTh0mtZENjCDk8OJ4+7mq6/baT052+j80aF6OQiCeRGoBS4oW6FUiq1sWAu9n9xZgNrdpfUpBH9aUsBX/yexbMXHh5RGtOMeCtzV2fz9qIdACzaWsCcVdk8f/Hh7ChpPBj2cFj5aOkuZq7IAmDx1kK+WZPN0+cfxrZiFyk2E58t381Xq7L/qF+dzT1nDiG3wkOq3cz7i3fyv3W5NfUHZSby99MH1Qy/70ufZDtPf72e5TuCz6GXbCvkx0153HH6YLYXuxo5O7bC5RSva8ifLiRz7YuosuDPJ37Hj/Q/ZBJ5BxxIyc6NjZwNjnMv466c/1LiDib/WJyzlGsOvohB63vhyt1F4p8v546sf+P0Oqvqf+GGwy6l3/pMKguzW/DuhBAQ2Try5cCyqj/zCC4R21T1/fLYNU10FA6rmX//uDWkrMTlJTvCIBZnMjDjl50hZXllbnYVRDa8qwKKWb9nhZTtLnKxt+r+RlRNEK+2Nb+C0uoPGQFdE8Srbch2Uhbh8rDSCm9NEK+2YlcJJU18PBAtCSkzeHD+22GD+OTbj+eb3beGlCUnmmqCeDXrug/oO+L4iO6Xm2yqCeLV3tk1k/hR4wDIdqiaIF7t7V0ziR91SkTXF0LsW6M9cq11XwCl1GvALK317KrX4wlOXhOdndYoVX/BdbiyhigUdfcKivT8SI5SCuruSajCFTZDQ81syvuPluogXlfWJZ8wbPofG8DUDuaHea2k1DtDsaf8kGa3Q6HY1yaQ0frZCyGatrPbUdVBHEBrPQc4MfpNEh1NqcfPX07oG1KWEmcmMymyNKYun59LjjkgpKyrw0qv1LiIzg8YNOccEbq3wAGpcXRLtgPBNKgTDuseUj+wawKJcebgC6U47ZDQTQsP7uYgPsKd1xJtZo7uGxoKh/dOwVF9/VaQkDIjJIiH641nXfIJwxJfZ/LtoT3tbXnpBBJDf37OwVfyw/fOer33cLoW+Ui1hS4JvazXOVQsmAtAZkkAh8URUj+510TKF3zT+BsTQjQq4uxnSqlvgB+Bdwl2nSYBo7TWp8aueeFJ9rP2J8VmotDp4bt1OfTtEs/I/l0ocHvxRzzZzcqWnHK+X5/DwK6JjD4og6zySiKdPN4r0cb6vaUs2JTHkG5JnHBgl5DJbl3sZnbklbNwUz5DeyVx2AEp5NWazJZuN7Mlt4xFmws4/IBkDu2VHNHz/WoHJNr4dWcRS7cXMrxqstzOVprstq+sZnXV3dUNgiMK/Xo5ScieiylvJe6+Z5BnOpycXHNES9WMFhuOS69jiTGLbe69nJQwlPQVGyj9KTiZzWiLI3HStSw27GanJ4fR8YeRtmwVpUt+aNH7FqKzaSj7WVMCeSpwPzCqqmgB8GBbTHaTQN4+GRQk281Uepu3RtpiMNAj2Uqxy9usNKRWk4HuDiuFFd56y78ATAaFw2aiwuMPm9nMbFAk2kyUe/y4m7H8LN5iICPBSl6ZJ2pr0PdlX1nN9iVcMAcw20xYbCZcTjeBWpnZIt0Bzp7WDWtSGqW7NhIIkwXP3qU7VkcqpTs3EPBJrnghmqrFgbw9kUAu6rKbDCSYjRSUeXDYzQQUlNbacrV2fVKcGb/WlLZCsI2VfSVEiUTddeUNidae7H3OuwbXQf0o97voSiLZ//ci5dk7mnyd5up+9Z0UdEvCrb1089opeOUxPM6iVru/ENHQ7ECulHpOa31zreQpIRpLmhILEshFbVaTAe0NcOcnK/FW9SSvGdWPw/ukUOIOpjH1uP3c8+mqmnXtN4wewOCeDpwdMJg3ZSi9JaKVq7zv5Tczw7yOL3Z9B0CcKY6Xjn6YnEfuJOCJ/fK8zJsf5sX8z1mRtwKAVFsqTwx/gLz7ro/5vYWIpoYCeSST3d6p+vNp4JkwX0K0qSSLiUe+XFsTxAHeWLCVqq3UcVhMPPrl2pDNaV7+YTOmaKQ2a0XVE9og9kE8mgp6dakJ4gAVvgqeXvM6fS+oP7wfbQaLnS1xlTVBHKCwspD3t39G19ETY35/IVpDJMvPqteKG4HFWuum790oRAx5/QGKKuo/cy2u8IDJgNvnpzTMM/NSlxeMHSOYt3QovS0V+krrla0v2Yzp8Ktifu/4rr1YXVY/K/L6og2Y+l8MMt9O7AeasvxsMrBCKbVIKfUPpdSZSqn6y0+FaGVmk4E+aaFL1YwGRXqiFQCb2Uj3OkvhTAZFaoKl1drYEuF64R0liAN0N6fVKxvVdQSuVSvCHB1dzj2bGZw8sF75cd2PpWLJgpjfX4jWEHEg11pfprU+EDgX2A28THB3NyHaVEGFh3vPPJheKcF14w6biUfPOYTyqpnnBS4vD559CD2q1pUn2c08ce5Qylo5+1hT1V4b3pGG0usyLVnGnUNvwGoMfrA6OPlAru13ETu/eqeRM6MgEKDrlhwmDZqESQUHII/qehTjk4+haNXPsb+/EK0g4jSmSqlJwAnAoUA+8BLBdeVCtCm/hsJKHw+ccwgerx+LyUipx1ezBM4X0BR7fDw0MbS+ORnOWktHfBbekKy5H9F7zwj+e+YDuA0BbFn5bH34lla7f+70lzjh6FM48eRH8SpN3OZt7Hnk5la7vxCx1pR85M8BW4DXgB+01ttj0iLRZuLMBhIsJrTWFLi8RLiXS414i5F4s5GAhkKXp975GfEWEsxGAsDOYhfRDKN+ran0BbCbjXgDut46cF9A/5EApR3PVG/u2vBGGQzYxpyAeUBPKhcsx7t2fcuv2QSFa36hcM0vDdabbHH0PvcvGFNSyP/uCwrXhaZxMJgtJI0YjXIkUbF0IZX5WQ1cKbz8JXNhSXCnuXCLzozWOBzHjEbZ7JQvmY+7OHSw0WSPx3H0GDBbKF8yD3dpQZ36BA446kQMJjM7l85v8tI2c0IyiUefBFrjXPID3vL68wqEaEjEgVxr3UUpNYTghjCPKqUGAhu01pfGrHWi1aTHWVi6tYBPlu8mI9HKdaMHEDCoiDd2yYiz8OOGPGb9nkWvFDtTTuqPuyq4AvRJsvPFij3MWZ3NAalxTB0zEA9+StzRCeeZ8Ra+WJHF9+tzGZyZyFWj+lHs8YXMZG/vYjWhTSUn0+XxqViyP0YVLSRx8mhcFadQ9MALLb52NKQMHo668EIeXPsWObvy+fO48Yw95Sw2Px/Mdmzv3gffeRfw3N7PKXAXcfa5Yzlyp5fiOR9F5f7xA4bgPP00nsqaSbnfxQUXnclBa7MpmR9c4hp/0OEUn3ISL++dhdvv5sJJ5zDg9x01O9elDz6SoSOPJH7NO+Dy0ufsC9mwIYtdv8yL6P6Jw44na+RQnsv6EqUUl11xKd0W/oZzhQz9i8g0ZWjdARwA9Ab6AEkQ1U6VaCPxFiOLN+fz5o/bAMgv8/DXGb/x6qXDiGSJgsNqYu7qbD5YGpwdXFgePP+VS4dR6QvQw2Fl+uIdfLlyLwBFFSXc8N6vvHn5cErc7ha3Py3OzBvztrBoa3CTwUVbC1mTVcpzFx9BTowzkNXuQUdDLIbSk2+ahHXNQ+AOZiAzbPoUe888XONOovLbeVG7T3PFn38xVy66C78Ofmh8Y8N0/AMv4KhDR1KwahHGMydy24Z/EtDB/27+vf1DVJ8LGNyle5N75uH4Tz2d+zb8s+b1i1vf5rYhV5GxzIG3vBTvuHE8sPGP+ue3/Ie7Dr+G5F9/xlfp4uBjjyH+x3tr6uOWPM3AY+8la8Vi/J59b9NrMJkpHjmcJza9VFP2+KbXefT4qahVv6D9Td/hUHQ+TRlaX1jr6yWt9e7YNEm0tgSzkY+Whf51BjTsKqwgId5SfxegOuLNRj79NfR8r1+zt7gSs9WIRRmYvWpvSL3bF2BHQQVGq7HlbyBATRCvVlrpI7/UHbPlZeF6z9ES7efhphQNe0PTiBp2/0jc8fe0fSA3GNhWubcmiFf7YPtXnHbyHRStW8ZOY1lNEK/2afa3PDZiNJWzP6h3yW923xrxhjW21K785tler3xmwXz+dujRVG5dz0+uDfXqPy9ayI2Dh+PL2UNc7rJ69fE7vyV14GHkrVmyz/sn9R3Ce8762aC/df7Geb0HUbx1dUTvQ3RuTZm1PlRrfb3W+r1wQVwp9WJ0myZaiwbS4usvxbJbjI0G8eD5muS4+ufbTMFfL6WCM8XrXd8chSBOcKmZ1VT/V9lqbsrqysh1pCAOgA7zed0cR8DVNvnSQwQCxBnrZ8lLtaagnU4Cfj92Vf93J82aQqAkNAf6N7tvrcnWFknWNgBfZQUpxoR65RnmFPzOYnyuMtJMSfXqu5pTCDhL8FaU4rfXX17ni0vHE8Fzbm95CRmm5LDXl+fkIlJN6ZE35rgoXku0ogKXlxvHDuRvH66oSRHdO9VOZpI9ogxghS4vt4w7kLs/XVVTdlBmImmJVnIrPBRUern55AO5f9aamvrBmYl0S7Gzo6TlW3SW+/xcP7o///x2U03ZcQPSsFtNVLiil5wjZhPRYsy1bAfm/kdjyP6jd+gbfDXOp9rHNse9vfH0TujJjrJg/0ChuHXI1ex47lnQAXrke+gel0lWRXZN/dXdzqbks+dqrlEduGunaP3PU8E/99U791U4GVyZQIo1hSJ3cIKaSZm4IHU0JWsfB605zJuGw+Kg1BMMrGaDmbMTj6Vk0+MAlNj6Y7MlQWXVBwuTDWfmiZR8+c+w96ytLGsbYyznMcc0D5cv+G8hzhTHCcYBlOR81uj5QkAUk6YopX7VWh8ZlYs1QvZaj754sxGzgm155STazHRPsYek+WxMgsWIIQDb88tJjrOQmWwLOb9rvIVKt5/NuU7SEqz06RIf1TSfSVYTHq+fnQUVdE20kZpoIT8GQbwj7qwG4LjmQuyHpqMoxR9Io/SzRbjnLdrnOdHaa70xBpOFfrc+wlZjMcXeMg6K741vzmzyfglu66qMZpL/PJk9aRYqcNPb7yDw5Uxce7aG9Lyrg/iwxNeb1F6j1Y7j/CvYmajx4KOPNwHPp+/jLgg+DjLa4nCcfyU7E/x48dPHE4/7k+m4i3KB4Iz1w8+ZRJKpHHSAMpJYMetD3CX5Eb1/S2Iy9vMuZ6fNDWh6u6yUf/hfvOUljZ4rOpeYZz+TQL5/MKrg8/Hm/lY0dr7FYMAXCMRslqRRKfwxyOi3X6zrVgpltaIrG/8AVR3E66Y7jUUgr2EwYbLF4asIP6SsDEaU0UTAG5wgGa4XPizx9Zrv6wZz2He7ldGEMhjCpmCtqVeqwRSsjdU3RhmDjxC0X1K8ivAaCuTRHFrvGJtWi31q7mqt6h59VlElCTYTXRIt5IXZ/9wTCB/CEy1GDBr2FlfisJtIjg/tUWfGW3B7/OwucpESZyYz2R62Rx+LIL7f0LpFQRyCQfM/Ty1s0oSyRikDKWdPIq97Mk7lo5vHhv/LT3FlbQ85TAf86EDkewBU98yvuvN4Ug6tYINzM5WBuxmYcAClH75L3oqFIcdrvw8d5vLW1K50vf1RNrl24Q34GJjQm8q3XqVo42/1z4+4dfVJABfNFc1A/nwUryU6ELNRUen28dePV9Y8Yz+0p4O/jjuIvAiesdtMBgpK3dz/+R/P0I/um8rVJ/Unv8JDapyZzdllPDp7XU39yP5pTB07gB0l0Rue7+zCDaWHUzuYQ8t75ylnT+JZ4yI2bw4ufzQoA4+ddzPGV19odPlWQ7Iu+YTu089lWOLr7BhwPtf8PI1sVw4AJoOJN85/Glb9Av7Gfz/T73iUv/58N4WVwZURNqON5698Bu6MffY2ISLR6LRepdQXSqlZDX1VH6e1/k9MWyrarVS7hWe/2UjtzvCq3aUUlUU2KzrJauLZuRtDypZsK8RZ9SHAYTby/HebQuoXbSkg39nyNegiqHYvvPaQdO1h6dom3358zZB2pDPEG5LbLYnNzm01rwM6wOt7PiFp5Mktum7WJZ+Q87efWF64riaIA/gCPl5f+w5pF/y70Wsk9R3Corxfa4I4QKW/kvc3fUS/825oUfuEiJZI1uc0lIdc8pELIPhLlFdWP6hWeCLczEJDSZiJaa6qrVR9fk2Zu/61yt3td6vVjqTuUHrdAN5QMAdaHsyVwqXq/93muPJQKanNu2Ytxl49yXMV1CvfU5mDI8PQaLsTe/QnuyKnXnl2RQ6Wrt1b3D4hoiGSfOTzW6MhouOq8PqZcFh3PvttT02Z0aDolmyjIEwe8Lq8WjP6oHR+2PDH/tYWo4GuSTbyXF6MJsXRfVNZsu2PXpHNbKBXqp1d0itvtkhnpX+z+9aa8toTy6pVl0Wy3KserenmtaFQ6FpPmM/sNhbX7IY/QETKs3QZR6ZdU6/8/N7jMbmDHxT29bx/96KvOO7UJ5m55fOQ8j/1Gc/ud/6vxe0TIhoi3jFDKTVQKfWxUmqtUmpr9VcsGyc6hhK3jzOP6M4FR/UizmJkQEYCz114eMTZxQpdXi47ri9nH94Dm9nAwd0Sef6iw3F6gx8CdhRXcvO4AzntkK7YzAaGdHfw0kVHUtrO05C2Zw0NpUP9QFz7dd3e+bDE12tmije3d+7/ciaPD7qFPokHEGeK44JeZ3JigYOKrOj899J3ziqePnoa3eK7kWhO5NpBlzI+4wjKClwhbQ7bbr+f7luyuXvEnXSN64rD4uCaQ//CkYF0ynZvjkr7hGipiJefKaUWAvcD/wTOBK6oOv/+2DUvPFl+1j4lWk3EmwzBtKIuT5NnwCdZTdjNRvwBTUGY7Gk9HFasBgMBYHepi9bMQrpfLD+rI9yQOoTvUTe21CvcdRq6VjhGq52kY8ehklKoXPoT5XsaD5L7alPWJZ+EXv+ggzD84058cWasr3xI6p/NTWpzUt8hdL30RrTJiPPz98le/n1E70uIaIrG8jO71vo7pZTSWu8AHlBK/UgwuIellLIBCwBr1b0+rhv4lVJW4G1gGFAAXCApUmMj1W7GCCilKPP6qPCGRsI0uxkFGBqob4zT7aO5I92Gqva5vX7sFiOegImSWsPyBgUen6Yy4MVoNGCsWo9euz7NbiEQCGAyGiiq9OHxt16kV3FxJFw8AXPPNLx7Cil7bxa6vDzi8w3dupH64E2YUmx49zopmvYsgeI/PiyopCQSL5mAKcOBZ0sOZR99CREsJatm6t8f9wM3UpFkJmlTHoH7ngqZ2f27+3qufmkk6zftZu/Gp1k9dy/jugWnwHyz+1Z6DEjl/PsG4NYl9Azkk7hnHug/Amb1dZY7p9Qaao98mZrf7aLwh1kN1meOPA3ThD/jJUDcrr1seyX0vx1rnInMVCeYR4Cn/jNxQ/cMyvwufK5KTD0yqJvMtGsfBweenooyaRwbjqJ0zdKQ+pJtayh56LpG30dDEvoejHnkKLQC35KfKNu8KqQ+sf8hmI4J/ty8Py+gbNvaZt+rORyHHo3hsCNRPj/uBd9SkbUtpD7psGNRQw/H4PHimj8XV/aOVm2f2Lem9Mh/Ak4APga+B/YAT2itD9rHOQqI11qXKaXMBBOu/FVrvbjWMdcDQ7XW1yqlLgTO0VpfsK+2SI+86TLjLfzfwm0s2JiPzWzghtED6JeZSGnVJLLMeAv/mr+Vn7cUEGcxctPYgfRKj6+pjyUD0Mth45Ev17F2bylJdjN3njaItCQLBS4fBgUZdgtPzlnH+uwyUuLM3PWnwVitJiq8fgwK0u0WHv9qHZtyy0iLt3D3nwZjNBsiHt5vzL565CopifSnbsKy8QUo2QVJPfEMvIn8O18iUNR4z9006EAynrkOw3f3gDMbndIXPeYRsi+7n0BuLobMrqQ/dCXmdf+Eslx0Sn88fa8l/9an0a7Gt7g1HncMax64gAdXPk+xu5gDk/rz0OCpJJ1xPVRUkPHpFH5w9OXh31+lxF3CoJRBXGq/jm8f20rArznspEx6XFjBY7+/QKmnlENSBnP/wCkknHY1+P74/YjVTnDdr7iNXzN8vLn637h8LkZkjuCGg//Cvy8JBsNbHjuOAzzfYFn0JHhd6AFjqSg7mqKHgxnF1F03MHuEhdc2TMcT8HBy9+O55cDz6LltFsudUzBlwNyKOXyw+118AR8nZ57AxLIDKPzkP81uc21JY8/ix74GPt49G43mrO6ncHKWneKvg2lYk06ZyPe9vHy+J5gvfWLP8Zy4A0q+nRmV+zcm9byr+Mi+he9zFmIxWJjc+1wOWb4L59J5wfoLpzDDspYFOYuwGq1c2fvPDF6yGeevP7VK+8QfGuqRNyWrxM1AHHATwd7zpcDl+zpBB5VVvTRXfdX95HAW8N+q7z8GxlZ9ABBRkmg18fWqvSzYGNwystIb4Jm5G/FX9biTrCZm/rqHn7cEezIVHj9PzFlPoJXGrnsn23lyznrW7g3u6FXi8nL3zFWYq3490+wWnvp6Peuzg79KRRVe7vx4JXHGYH2XOAuPfrWWTbnB+oJyD3d8vJKEKCVlaYzj6j9jWf1YMIgDlOzGsvoxHH85P6Lz0x6eiuGrqeCs2ku8aBuGuX8j7YnbAUi67nzMvz0AZblV9VuwbnmBhElnR3T9onuu4LZlj1DsDn6o2FiyhWnrXsTwcPD6q3ckc/svT1LiDm4Jur5oPTMq/8XBY7ox+fbjGTE5mTuXPlKz1/jqonU8ufX/MP39xpD7ZF3ySU0PPdxz8+bObC/o34MXV7xUsxf5L9m/8NH2zznx4kEAdLNvw7LgAfAG69Xm77A5tmIa2B8MBjafNIAX1v0fnkBwOeP/shbyadbP6MR+wXbHb+fdnf+HN+BFo/k2ewHL0jzY07o1q721Ga129hzUnQ92fYFf+wnoAJ/t+ZqtfZMwxSVissezo38XPt09B7/249d+Ptr1JbsHZmK0xrX4/o2xp/dgUbKT73OCH7g8AQ9vbJuB86jDQSniuvVhfkIuC3KC2/m6/W5e3TqdimOOinnb+IyFlwAAIABJREFUROSakv1saVVQLgVu0lpPrN2zbohSyqiUWgHkAt9qrevm9esB7Kq6hw8oAeqnExLNZjcZ+HZtbr3y7QXlGA0Km8nI/9bWX2KTVeRqle36fL4Av+8O3Vdaa9hdFPyPWQc0a+uk4QxoyK0ax/f6AmzJDR3G9gU0ea00o93cxQqu0KFaKosxpUb25MpAMXjrZH53ZmN0BD9ImeL84KvzXkp2YTkgsuVZe3RhvTShG0u2UDwwHYCsBF/IjHGA1YWrGTYxuLxqj2t7vWsuy/+dshHhB+PCBfPmToSzOFLZ5qx//wW7F9D7pHhs8WbMhWvq1Rv3zsN+/DBMAwaw0rmxXv3XWQspTRmIxW7i95IV9eq/L1qKbdDQJrU1nITu/fi5vH775petxHHAIBy9DmR++cp69QvL15DYc0CL798Y++DD+L7ol3rl67x7sCZ1wTbkcH4oqF+/2ZeLOaF+1jbRNpoya324UmoVsBJYpZT6XSk1rLHztNZ+rfXhQE9ghFLqkLqXDndamPtfo5RaptT/t3fn8VFV5x/HP2e27HsCgbAEEFQ2QRFFUNwR97pb1GJVcJfaarX9qdSttS5Fa61Qq1SLVOtWt7oiCloV2TdBgQBJWLLvmcxyfn/cmTCTmSSTZCaTCc/79aKQe+fOPZki35xzzzmP+q6mojzIJaI1Tq05tG+QUo0p8bjcGqd2M7xvSsD5jOT2a5GHg9Viom9qXMDxzCRjQpLZrIKWWU33lEa1mU1By6SmBzkWCW6HBUwtQttkxt0U4hQUa7pR69XvWALanWC8vzvws8GWjKsutMcemebUgGMZcRkkVxvXZzgCP6echBwGmzZyVMp8smyB/2DnJuWSsK/1xwbe3nlXZ7U31VXRN6FPwPFhacOoK3TT1OjElTIw4Lw7fQRN23bjLC5mcELgeu+RaUNJbCzH2eQiP2lIwPnDkofg3BNQrbnDGsv3cWj8oMD7x+fTUFpEQ9leRsXnB94/biANnqItkeTcU8xhQb7/AZYsHHVVuPYUMTw5sH25lgycDbUBx0V0dGRo/XngRq11vtY6H7gJCHkhpda6ElgKnNHiVCEwEEApZQHSgICk1lov0FpP0FpPSAnDRhEHk4p6B9ccP5TkuAPBMnFIJtkpRkCU1zu46eRDSLQdGIqefEgWGUHCMxL21tn5zZmHYzEdCLNzj+hHaqIRMBWNTuOZt8/5y44eiMlTg7yqyTjvc5qrJg1Gm8IzntBe/fHqf76Pc8wtfsecY26mevEHIb1/1eJP0JPm+B3TJ/4fFU/8E4DaNz7HNfLnB04qhXPMHGpe9F/b3Jp+H63hiqEHhuHNysx9R85hQOL3AOS9t4KLck5rPm9RFn6bM4OcMqMnOfCLbZw38MAuaxaThftG34a690AZ0dZ0eajd5WKwTuPIPgfqMSVaEpk99jre+sM63C5NpfVwXAOOO3BNXCqO7HOwL/saamsZU5nEERmHN59OtaVyzYhLse5fgdulOdQ8khEpB0YX0uPSOSd+PDXbA3vSHWWvKmV8fToDEw/8MJGb0JdJzn40lBbTULaHiU196JfYt/l8XlI/jmrMwl5ZEuwtw6r6hzVckDSRtLgDNddHpo1g0L4G3I4mqjau4PLUE0ixHvhBf2z6SPoXVqJdkZ8/I0LTocluWuvJ7R1rcT4HcGitK5VSCcBHwCNa63d9XnMTMMZnstsFWus2Hy7KZLeOs5kV6XFWSmvsxFlMJCVYKPUpamIzm0iPs1BS3UiCzUxivP/5SMuIs5BkNbO7vIH0JCvJ8RaKfIbGEywmkixmSmrspCZYMZsVlT4T8RKtZhLNJkpq7KQlWFFmRVUYJuqFuuzMNm40KTNOx2xpwO2Mp3rxpzStChwybfU+My8l5fxjUU1l6Lg+VPztXRrf/aj5fNyUiaScdxwmix1XUwJVz7+Nc0vo65hNv5xF8WljqTTXMzCxL0PKN2CpNtZpF894Hef0kyg+eyKVFgd5NWayn/oXetfu5uvV/91G0ZRDqHbXkefOIOOeZ3CuXtvmPcM5+W3Q3X9iT6KbBmcDAxNyWfLAfnZtKW3+wSC3r5MBlhXgclC/soLKJ19CV/tUUfvrQ+zMT8SuHQy2pzDE+S00VTe3a8OuAqzDG3EpJ8Pqd1P11iJc9vpgTekwZbaQcc7lVPRNw40mq6SWiv+83FwkRZmtZJz7U8r6JKNQZO6rpuKdl7stKM3xiaSdfwUlaVZs2kTarr2UeybigVGmNfX8KyhJNWPTJlJ3FFHx8Rvd0jbhr8tlTJVSf8KY7LYYY+j7Uow1HK8DaK1XBblmLMZENjNG7/9VrfX9Sqn7ge+01m97lqi9BIzH6IlfprVucycICfLIUEBKvIUmp5vG7lyk3QN5Axy6b+24SknBnJeHa+fOoLPRVWoq5v79cRYUdGjpmVewqma+a8H33rwEU58+OLdvB0fgD3GmzExMOTmtn8/KwpSVhXPbNvq/eH7AvV5/biXJafEc4Z4btIpZXHoO1qRUaot3gG7971/L9ePN34Mtjf13f4Fz2zZo59+11tbQQ4RKtIZBUu5gtMtJfUlR+y8WvVI41pGP8/zect34cRjBfnLLC7TW6zACuuXxe33+3Ahc3IF2iAhIi7PQaHfyybo95KbFc1R+FhV2B86Wu7IcBIINpUc6xNNuv4aEfI2p7gdcyVNpWFdJ9d9eaT6ffud1xA9wYqr7EVfySdSvLKFm4WshvXdrPeOZd0xhZc1slIIjh6yh31NZ6KLvcSWfRu3S7dS95vlh2Wol854bsaWWoBqLcCdPo+bjzdT/52PjfFwcmffeiC1pL6pxD6bDL0ObGllZZAzHL3rqfxx/yyCybiulzFWAO/EWUr/+jpqVRnia4xI56pKrSWvaiaV+H/Wnn8aW71axd73/JCvfoXi/ELck0FTYH4vaRs51g3Cl/ISqf3yK/ZuAvkVMiu+fj/mCS1nWsBmrMjPJNhzHKy9h74Zn6CI2hBzkWuuTItkQET02s2J/VSNzfcqIpiXs5onLxrE/hDKkvUk0dnBLuvw8khI/x7TeCB4T72EacjZNU4+j8fOvSP7ZRSSZP0KtX998PuXwn9B07ATsX3/X5nsH64V7e5/e3++ZNxH18SOoyh3GhkC8S+qUa7GvHYbzh22k3fYzEipfQO02Jn+ZeYe0k6/HvmYQrp27SL/9ahJK56MKjOVzbHubpqn3Y4u3sOCBpZxwUz5PNTxAuWeS6nt8yi8nXUu/bVuwV5ZwxPkzyF33WPPM/7Qt/2HUcXdTtmMrjlrj829rFzf79j4kFD0C9hpP+94i/eq57F//Pbo+PMPjUaMU6qLL+MWWx5tXFrymLDxx2W3Y//JIlBsneoqOzFrvq5T6u1Lqv56vRyqlrolc00R3yYi3Mn/pNr9jVQ0OCstj/B/BDkjOWBy1bVgTxg/GtM+/92je8S5JpxsjaAmj+6FK/XcCM217i6SzjqMtrVU1mzbgieZfAPbC9ahK/528zFteIvni0wGIG5iAqilscf5FUi415q3G9begavf6nY/7+jHKCoy/U+YBW/3KgAL8fddrJB9vvH9avDNg+V7S+oXkTzoFCD6UflTKfGNm/DXvYU2pbg5xL8vOxSRMDxgkjDlpQ8fwdtX//JYHOrWTZfYtJPUNnA0vDk4dGVpfiDFL/beer7cCrwDtF/UVPZ4jyHambrdGEWQtYC8T/X3UW/uEted/g5zXGlTw6zoyyWzagCdQ3BX4Jm4niVPzqXyY4PdxO8FsrHKwDEgxFqX6nXcwJG0t0wYspIHAut0OtwOsFqPHGez7czVRUD+ZDwsHA4HPw72z4ZVSQZ+nK7cDk60j/7z1TMpiwa4D5yM0uR0oc+x/fyI8OrL8LFtr/SrghubNW6T8VC9QZXdy9WT/taTxVhMDMhMlxLuB/YdSdOZwv2PuvMk0fG0sD2sqqEan5fufH3Qy9UsDZ8UHq2rWnl0VfSAp2++YPuJyaDB64Y4SICHD77xr+CXUvrWE/osuRCdlQHya3/nqw69l+9efGW2qNZFo8d+l7IqB51G37GPQmhpnAlj9zzeMuoJlnxq9+GClU5vb2dCAsykbzP5LJZ2DL6bu/c/a+c4PaOse0VT1w1rOTfMfeVEopiaOojZM1eFE7OvIrPWlwIUYu7MdqZQ6FmMp2dQIti8ombUefpkJVvaWN/CfNUXkZSRw7rg8apwu7L109no0JrS1ymQic+4t2JJ2YqnegDN9Ao3FKVQ++jfjvMVC5u9uIS5uG+aaTTgzjqZhVyJVT/gPhgV7Hu6rtVrj1jgzc58YSfK2V7GUrEaPmIbO6EPxdGNeq0pMJOuhW7E5V2Gq24Ez83jqVtdQ88K/jXua41FZR+HavBRL+WZKcs9n+eZ8zGt+DYA1KY2kq67nv/a17LLvZ3ra0QzcuJuqz43/hm0pGRx9yUxS9y/DUruHukGnsm1rETv/90nrE9w40Cs35fYl695rsVZ+hnJU4Mw5lep3NtDw37aDPFJ7w4db0oixNE6bxpuVy7AqC+enTcb05us0SBnVg044lp8dCfwZGA1sAHKAizwz07uVBHlkmE2KzAQrTS63X+Wx3qYn9MKDMQ8ciOWQITg2bcG9L3DLXPOgQViG5ePYsBl3yYHNQtoLcF8t64mDT0D2eQNs6VBXRPGlLwW8zjL8EMx5/WhavQ5dVeV3b4BN+hZscTD/gWU01jkCwjBl4Ais6dlU/bAGV2Pg/IvUwYcSn5pJ2da1AWu4W11yxoFAt44dgyktBfuKVR1anteRcq7RoswW0kaMR7udVG1d2+byPNF7hSPILwY+xNiF7ULgGOCeYOvHI02CXHRGNNaGh0oNH0bZtT+hPMFNTrUm/Zl/oYsPLC+Km3YSGddfgHJW4SaVsvvn41y/sTmE1nEj9j41bCnYSVxNCqsX7+XCawL+e2/mDavWerktJc24iNSLjgdXLS5HMqV3PoZ79+7m+zemDGJNwmTqXHWUrnHx3ctFTM04MKs6edQEOGYSDcpFemUDle+94hfmfc65Evv4cdS7G+ljt1Ly7O9pqjkwAa7f2EkkjjgXK42k5I+kaI8N7dbttjtU/d+9G2VKpsbRlxqVx549Zl74Y88L9KCUiczTL6R2QB/MmIjb8gOVy0PbVTAUJouVjOmXUNUnDRtmrGvXUfXd52F7fxG6cAT5Oq31WKXUFOBh4HHgN1rrY8Lb1PZJkIuO6lFD6S2NGMZX91zA7wtfwKmdxJnjeChvNmNufxb3/v3En3U6WTNGoT5/ENwuYx/2s+ehG7dBQwlr1fWsTvmaJzf8Cbd2k2BJ4I7B9/Dt7yu45Pr2q1S1F4Ypt1xN6lg7asV8Y5JdfDrus56m+NK76f/MqVSnDeP5xgpe2OopyxmXxh395mJ67na0y0HKxBNZPiaNVwvfA4x93h8cdB1VzzyCdrvoc+WtvJ20i3d2GBs+ZsVn8fuj76Pk3pvB7WbIlGkcml6GbaunXnlKP7YcPo9q1+CQ2t+e1NmXk9z/e0yFRjjpzKFUnriAH3cm98jeeUuZV93CY/UfsK3GWHkwMWscM+sPo+Ktf4bn/WfdwQMliymuN1YmnNb3eM4rTqXqk9C2CBbhE44ypt6JbWcBz2qt/wN0z2bcQnRBsKH0HhPiQNm1F/Bw4fM4tfE4w+6yM3fP81RfZ+yTlHHt2ail9xshDuBoQH1wFw0ZZ7CyZjYNOVX8af3juD3DrQ3OBv5S9Dhjz+8bdCjdy28ZVxshmHzKKNS3zx7YLa2xErV0Lpn33gbAloSc5hAHqLJX8WLFs6RPMjaEaThyXHOIA1TYK5hf+h5pE4zpNSVD+jaHOEBZYxnztyyk3/nG/vKDDsk/EOIANXvI3/ccK5YYkwG9Q+L9F13oN9Qfkrg4EkanN4c4gCrfTvr2F4hPtoSlDGskJfQZwJdxe5pDHODbsjXs6JcYljKoKYeM5U37quYQB/h43zLKRgxCmbqnTLBoX0eCvEgpNR+4BHhfKRXXweuF6HY99Xm4r/IEV0CZ0VpHLZUZnp+TnRWBW442VGB1lLHw0eVsLdwZ8J5ljWXkDTCCzrt+3FdHerGqKbDaoCr7EesgowzqPkddwPmtVVswDTR6zBWmwHKyGyo3Yxli1AsvbaoIOL+xbBPmYSMwWeOwOgLPx+1bwZBhcc3fl+8s/Y6EuTk7G1PjrsDvb/c3jMpcAnStDGukxQ8YxsraLQHHNzfuJCErt8vvb80fxtrq7wOO73KWYUkMrJgooqMjQXwJxjPyMzyVzDKBOyLSKiEi5PyHe14N5exahaVFGdS0uDQyS4xnyNqSCS17P0k5NFmNIE2yp6FaVAPum9gXW1nwH1o6OhSt43ICj/UdhTnHaFOqeUTA+bEZo3Bt/wGA7CBlWI/KHIvjh+/B7SbXlhVwfnyfcbg2rcPtsNNkDax26Mg7hi2bO77ffEuu/ftxBSkjqoeeAA0HJhT21CH2hoItTEppWRkaxsQPoaG0uMvv3/TjZo5JD6zLnm/JxlFXHeQKEQ0hB7nWul5r/YbW+gfP13u01h+1d50Q4eLdfc130lp7aisuB+C+qVdx39SrgJ4X5pl/fZUHB1xPgsWoP55qS+XBPteQvOBVACrmvYI+/RGwGudJyMB11jy27TJqzG96rYI5Q+8kzmwEZkZcBncP/BnVn70TlvbVvPEVeupdYPbULU/tD6f9DvYsY2XNbNLKc/j54NlYlPHDSL+kflyfdSZVK5YCYP3fN1ybfylmZQT/gKQ8fp5+KlWrjXBM37SNKw+7ApMy/jkalDKIa4fNYM97xjPeHRs3Yx9zFXjO66zhlPc9mR/Wl3X9m3M4qP+mCNew85oP6f7jKRtwBStLjJ59Tw1xgMbyvRxdk8pRmQfCdlruVPJ2lOJq6voPOrUF33MmhzEi7RDAWMN+8YCzSF+3RWbO9yAhT3brSWSy28EnWHh7Q7qj79ETh9lN/XKpnHUxlSlmMksbSZ3/Cu6KA0PKtqPGk3Hn1ZjTXZCQxvqCfJrqnc0hk9kvmdOu3E+9DZKrGqj+8A2c9TUhrcMORdzpJ5M++3zMKW6IT2btj/k4m4x/yBc+upzcYalMvWQ/jRZN0r4KKj5+E7fjwJB60uBDsU49lUazm8Q9ZVR++hZux4F9/LOPPxNOPJUG3URGpZ3iBX/A3XSgAlzmsNEMnXgcZlyU7Stj2+fv8sHOW/2+r85+bwBxxx9L9m/PR2sXuxqPpmRfbFRE88qYPA37iEMwa4Vp9Sqq1n4VvjdXJjJOOofGwXlY3Sb0N8up+X5N+N5fhCwc1c+EiIpgM87vm3pV8/FQA7224nKSMxZz39Sr+N3nLzb3zL2Bbhk2hLgJY2ja+COODZvC+S20y71nL1mvf0q/UYdgX7kBZ4X/c+GmlavZd+nq5ue/TfX+a8bL99TSPzEH06B8ar9aQnm9/97jobAdcxTWwf1p/HIVriL/Upn2j5Zg/lkGNHonl7n9e6p2qPQsPQ/WD6zbtZW0lWkkZmZTt+5bvxAHKF3+AemV5cSlZbB/3Td+IQ5Qvm0D5ds2dPh7CoX3M9VlK3r0WvK2VHz5IXz5YWTeXLupWGLMUA8srit6Agly0WO1tu77/IfTm7/2Bnpnwtz7vj95OIOlTVcSn7QNc8mXuMaNocl2DmV3/wmauqH6m81G1kNzsDlXYK74EteEY7DXn0P53KfarasN0GdQGmf9cTBPb1nMlnUvMWXEFM475R9sv+NnId1epaaS9fAt2Co/xlTzP1yTTqJ+d2rzznFd3QHNlp5D3JXXsahiCcX2LZw56ixGFdRR9YFRhjUusy/WK67hxfJP2WvfyrljzuPQHyuo+vitkNrfFW1Vh4uVEBdCglz0SG2t+/b+7g30zoS59x73Tb2KtduKse74L+atKwEwV+wgPmUlqdf/lOqnFobrW2pV6qzLid87H1W9u/n+CX2PJPGis6j/97vtXA0XPTKcG5fNaa4w9q8t/2JndQF3//opPryloN3r0+dcSfz3D4HdmLxkLt9O4rBzaTjmKLJvzQcCAxxCD7rEC37KL36cR5Pb+KHor9U7+dngCxnXL5/6PQXE/eRyfvHDEzjdxvK7P1e/xHXDLuOw1f1pDMOErdbEwo5uQoRClo+JHifUdd/eY97XdXYi3LWDj8NWuNLvnKopwjYwueON7wTb4JTmEG++/75VJIwf0soV/grqdwWUCf3fnq8pywxtHbE1k+YQ9zJvf5fsBy5p9ZqOhF1xgrM5xL1eLXqfxONOAqUoim9qDnGvV4reJ+m4tsuQetvQ1lr51nRkW1shejoJctFjdKYmuG+Y+wZ6qPcD2Fhe1Dwj2o/upg0vgt1HKbQ7sE3eSVzeSV0z75iCzRy4L5PFZMGirM1ftz3RLcj9LfEhDeuHwqoDv48kaxK6oQG0xhbk/snWZHRD4H7sLbUMc+968vY2h2n5OfrqaWvFhWiPBLnoEXwD/Hefv9ih3dd8X9uyd97WL++9Xtn/Da7h/r1Pd95k6r/+IYzfYevqv9qCO+8Ev2OuQy6m7u1lQV/fMoSGxQ9ibPYYv9dcfuhl7Fum/TYzaW1Gd8P35eisw/yOOQ//OdRs6+R35K9vST39E/03J5k98GJqlhn7geeW2emb4L9WfdaAC6heHtrqVt8w9w10aHtzmGA/FPXUjV+EaIssPxNRF85lYR1dI+69V9IlZ5N0/DBM9gJ0XB4NGyupfvblTrejo1JnXUbCmEyUvQgdN4ja5Tuoe6X95+PeoNo6YiarKzewo3onY7JGM7CxP44C49FAsEphfpQi7VfXED/IhGraj9s2hJp3V5Fx1YEa5V15jqzMVtIvvYZtaS5KnFWMtg4gbulSajcZ9ZZMFitpl13HjylNlLtqGG0ZiOWTj6jb2vHCiqFUSQtGnpeLWNDloik9iQR57xDJQiahBHrAvcxmTNnZuMvLweEISzs6xGrFlJmJu7QUXK72X+/hDaG1jptIyUigYs+BpWcdWlcdH48pLQ33/v2gddjrdZvjErAkJGOvLGnlfCKW+ETsVaUdfm9fLcMcQvscWgtzkEAXPYMEuehRevLmLJEQf/JkUs6eiMnaiMuRQM0by7Ev/zbk6xPOPJnk047AZDaur/7XEppWHNiUo/+7d6FIgsZqauLHkOz4BjyFLjpbFcw3yNcmz6IkoZjd+/eR2pBN2pInaSze0cbV0dda7zyUMAfpnXvFpWaRcMFP2ZvgxoaJ7OIKyt9+WXZ2iwIJctEj9OSa4JFimzCOzBnDsGx6ofmYc/QNlM1fiWNTYEGKluJPOo6MM1Iw/3igwphz3C8pefQjXAU7SZg2lfQTTZi3HygrqU+/n71zXsZV1PnlW95QK88azX171vDFHqNCmELx4GG3YX3ubzjqqjr9/t1Bhtq7SJlIueUu7vzxKRpdxlY/h6QM4XamUPHaC+1cLMItHGVMheiSlhPaoPeHOEDKBVOxbF7od8yyaQEpl50W0vXJ0yf6hTiAZcNfSJ1xFgBJp473C3EAtfQRUq44u/ON9rHFktgc4gAazZ92/pOUE88My/t3p1CXm7U2Ea6nljONlLSxx7Ko7JPmEAf4sWYHu/vEY7JY27hSdCfZEEZ0i4NtKN2XMjsCl3K5XShLaM/BlSnI7nLORkwJyvP+Qc431WFKCs8/tFWuwE1XSxtKISstLO8vei5zTh92NnwXcLzUVU1GXCJuZ88ekTlYSI9cRFRn1ob3No79TZDYohRnSj8cRbUhXe+sBGxJfsd0xjDsP+wzzlebjXXfvuezD8e+0X+Tmc7Kt6U1VybzmpxzNK6NHZ9VLmJLw9oVnJE9JeD4cFOfHv9Y5WAiQS4ipitrw3uT6gWvYD/sbnT24QDonDHYD7mdmuf/3c6Vhqpn/kXT2PvQGcOM6/seiX3AbGoXv22c/8timsb/Dp0+FAB3v4nY+/yMutfDM4/kkLKN/PHox+ib2BeA47Inc6X1WKrW/S8s7y96roaSIiaW2Dh/wBlYlIVUWyq/Hj6LuM+/iHbThA8ZWhcRcbD3wn3pmhpKbnuExPNOJ+7Q87Fv3E79H38PTmf7FwPu8nL23/YYyRdMxzr0Euyrt1D/we+bl6i5S0opufVxki46C+uQy2hcsYmGD/8A7vDMKrbYy8kuGMTjh/yZLVuLKPqsjrLiu8Ly3qLnq3jzRU4aMpIzjvkZNNRT+9Kr1HZxiaAIr4gGuVJqIPAikAu4gQVa6ydbvOZE4D+Ady3LG1rr+yPZLhE5EVsbrhTuaSdRd9xY4nfvx/byf9B1daFfbzaTOP1k4sYfiqNgL3WvvWdsEdqNlNkMSoHJ87uv+HgjqIflYd+wjfp3PvYLegVUWC002qwkWi0Bm5rqxkZq/9m5ZWahcDvdNBXC538x/jMdNqBj1yf2HcSAy65DJyXRuGoFuz8IfU/8cLDGWyC3CbfJjbM+D0tdUfsXiWa1OzZRu6N7S/uK0EW6R+4Efqm1XqWUSgFWKqU+1lq3/BuxTGsdnim2ImoiFuImExXzfss86zK+rVhI/9H9ufvZOxl+13x0KMurbDayH7uTuP3/Qu19HZ07lMQnb6f0N/ONzVciTKWmkv3H27AVPIfa+xKJh44m6cm7KP3V4+j6elR6OjmP3IJ1+wLU3h9IHHkESafcRcmvHoPGRkxZWRT8aQ6/r3yVgtqPOeK0Ufxq+r1k3/JQp8ustrV1aUtdLSySM/FkKk8/gevXP015Yzmn5E1h1v/N44cH53TpfUM19OgsNuR8yzPr/0KDs4ELhk7n532PBiL3g48Q3Smiz8i11nu01qs8f64BNgN5kbyn6H3c503jD5YlfFthbIBSXFfML4r+TOltM0K6PvmSc4gr+htqn7ElqKrcjm3NXNJuvDRibfaVOusS4jY9jCrbYty/ZANxPz5OytUXAZB2w2XY1j+AKjf2dlf71xK382lSrvwJABUpyBYhAAAYuUlEQVS3XsGcvc9QUGtMXltbtZH/s7+GY8ZPOtWecIR4R5ZgWaefyZ0rHqSssQyN5pOiZby09wPyTjw/5PfoiryzzDyy9g/UOGpwaievbnuHt2sKMffv1y33FyLSuu0ZuVIqHxgPfBPk9CSl1FqgGPiV1npjd7VL9HyVRx/Gukr/zSecbidFGW6yQrjedmgualeLAiiOBixp3bMZkjXHBj9W+B+s2Yt1iLEXuiXTBKX+ZUSp3IVtiDHTfW+2hYYq/8cAO2t3UzryNDoSReEo3endWGXho8v5sPD2kDZI2W0P3JL1v4VLueqYB2HpW51uSyhSMhLYrrcGHH9791KmnzQJy6I3Inp/IbpDtwS5UioZYxxrjta6xb9YrAIGa61rlVJnAm8Bw4O8xyxgFkB2rnTqDybx5XWk5qZS3eT/VyfVFdo6aXe9C6yJ4PAvi6ldgeU/I0G7rMYzcd+15CYz2mluvR1mG2678ccUZ2CZz3hzPIm1oe8HH+762zPvmNIc5u05z5QacGxgch66LPKPNRrqmhhq6hNwfGjKQKy7iom9fS2FCBTxIFdKWTFCfJHWOuDHX99g11q/r5R6RimVrbUubfG6BcACMLZojXCzRQ+S/I83+fWfruO3u55pPnZm9gnkvb86pOtr/vku8XffjGX1H5uPuQ65iNoPVoS9rUHv//pSbFdcjXnT883HnKNmU/2sUaaz9q1l2C66AvOWfx44P/oGaub9F4C+by7n8iums3j/f5vP/6L/T8m453Xam5fe1t7hofItPtLyeCjvlbA3m4nZR/Bt6VoALMrCnWNuoODRBzvUjs5wNrlILspjaOpQtldvN9pjSWDWsLPRy2+O+P2F6A6RnrWugL8Dm7XWQcfglFK5wD6ttVZKTcR4bl8WyXaJ2OIuKWH8w6/zwvU3UJjURKbTxoCP12F968OQrnftLqT8b1+SesXvMFvrcbviqf14LY1Lvoxwyw1NK9dSkZpE8rlzMZsbcDkTqHllGc5NxjNz+9crqUxOIPnM+zBZGnA5Eql56TOcPxrBY176FZcnxnPCOTdQamuif2McuU++h7tgZ5v3DdYL78ye4QsfNX4PFuithbyfBvjNob+mYPB26tx1DLKmU7XoJRy13bMk8avndjP3yYfZY96N3W1nTLyToXu/oTgG60wIEUyke+STgSuB9Uopb6mm3wCDALTWzwIXATcopZxAA3CZjsVKLiKi1KYt5M55hLy+fXBXVKIbA7cNbUvT6vWUrl4foda1r/Gzr2j8Zg3WQ4fj2LwFWrS/4ZPlNHzSeu/W+v4S8t9fQn6I9wtn0Y9pA57gw8LbWfjo8qDB7VuIpDUrt8wmlRG88ehyoA44mWkD1rR3WVhot8a5y0QOgwEYGkJ7hYglEQ1yrfVyjCWwbb3maeDpSLZDRJ5vVTOvcG4Ck3DmyaRMH4PZvh23LZfGXW6qHn8+cA/zHir7mfux5TShSjehc87FvhvKfvFARO4V7ufhvlqGeSgh7n3dyprZnZosJ4Rom+zsJrosYuvHPSzDhpB+Ri7mdUbwmQFL1kjc111GzYLu3VikM9J+cytxte+jVhvPxBUQP+oCUm68mppnYqsUZEdqe/vqv+jC5mu8gS5hLkR4yF7rokuCbcUa7u1Yky+ZhrlFGVBVton4w3PCep9ISTw6H/XDR37H1MY3SD7tiCi1KHTesp3eMp7Q8RD3vjZYaVDfewghOkd65KJTfIfSI72furJZwGUPcia0MqBR5w6++5p2h758LBq84doywKFjIe6reMbrzb3zYEPtoZAevBD+JMhFh3V3QZT6T1YQf9Z0zDt8qnklZOCMkboNjhI3psyhqPLtzcd03zE0FdREsVWt8w3UrvTCW9PcM19kfO0b6O2R4XghAkmQiw6JRlUz+5ffUH/sNSSO7Id531LcqcNpSj6JyrvnRfze4VA6535yX52HeefbqMJv0YMm48qbRvlFt0a7aQFa9sIhvCHuq2XvPBQHevDG1xLoQkiQixBFekJbe6oe/zu1eXnEHXsMzh2FNK16qNvu3WWNjew993riz5xG/OTraHjja+yf3hjtVgWIxFB6e3zDPFQyWU4IfxLkol3JGYsxKTOrdyl+dshDTN5cT84bi4DuWQfs5Soqov714OUnVWoqqddejCU7Dnejovqld3HtaHvDlO5kyu1L/LihmFUVCUePwLFuA+6SwD3IoyHSQ+kA1rEjSbn4VJTFRVNBJTULXwO73e8eoRZz8X2+7vtsXQJdHKxULO69MnTkWP3Qovfbf6HoEt8JbeVl43juUxO7yxsxKbhhdBoXffwPrB9/EMUWGlRSEjlP/ALbpkegvgwscTjHzqH0z0uad0+LJnP/fmTPnYF17SPQVAdxKTjG/pqS374QsTBva2tW38DrjqH0hFMmk35OnrFFrXaj0wZhH3wzpbc9DO72NpkNFOqOdeEYYQj1cxSiO5y3+PuVWusJLY9LkIugfIfSj8mdSknBJXy7w39y1gvjLQy//dpoNM9PyqyfkpbyDlT79NaVomHYfZT9Ovr/2GbcdzNJ+58Ap89ubnEp1CZfT+UfIrvLWGs7vPmKVC/cK2fe7cRtnOt3zJ13LOVf9aXxo8869Z6h7iEfru+trc9RAl10l9aCXNaRiwAtn4ffunk0q3bWBrxujyWpW9vVGmv/dP8QB9Aak7Uh+AXdzJzo9g9xAHsN5tTI/+cXbO22b+870iEOYLLWBx4r/pb4Iw/r9Hu2tS7d++eZd0zhqJT5Yfne2vocZQ28iDZ5Ri6atbY23H3Gao4cdzjfFvmHeR9XzwhKZ0ktpORCzV6/425nQpRa5M/daAazDVw+68mtibgCfzaKiLaWe3XHhDa3I/D/B91nHPZVgXXCO6q1dekQ/h9OWvscZdKdiDYZWhdAO8vKTCb2PvV3rt+oKa01wuiqw1KZ+fW/sb3zZre3tSWVmkrOozdjW/cgNNWCMuEcczPlz6+kKYqFUrzM+YPIuet8LGseAZcDLHE4xt1N6dyXce3Z2/4bhFGwCWWRCnCvhLNOIf3EOMxb/2UcSMrGPuLXlNzyMLjCt6lPd35vMtQuokGekYtWhbI2XCUmUnvdTRTn5pOkneS+9xqmL5d1azvbYsrOJnXWxVjSFNpppXrRhzg2fR/tZjUzDxlM6sxzMce7cNWbqH7uDVxFxVFpi2/gRTrEveImTSD53MkokwPH3kaqF7yCrqsL+32683uTiXCiu0mQiwDRXhsuehbbqSejxhyO6633ce7Y0eHrrYcfhim3D00r16CrqyPQwp4nXDXfhQhFa0Euz8gPUtHYoU30TKbMTCpfeYw3Spewvno158y7lONL0jFfe1dI16vUVLIevBlrw9eY63fhvOASar8to/al6D92EeJgIEF+kOnOYiciNjT+7QGuX/cAFfYKADaVbaJgyDlce8lPcL7afhin/3Im8VsfBrvRC7cUryLlyJ/T+NUQnNs63rMXQnSMLD87iPj2wiXEhdeOhNrmEPd6reB9ai8/LaTrrZmu5hD3Mm99meQLQrteCNE10iM/SMhQumiNWZmDHjO5Q5s/o4L1B8w2tDNGyswKEeOkR97LJWcslhAXbRpSZmFQ0gC/Y9eMuJSkZ14N6Xp7kQOd3M/vmPOwq6l9RSakCtEdpEfei8msdBEK88/vZN6/n+R/7GBrTQEnZE9g1KpSHJ9+HtL1lU88j+meG7Hll6Aai3ElH0HNu2txFe+JcMuFECBB3mtJL1yErKmJhPNu4NTBg5g+fAT2r+ai6wO3VW3r+vJ75mHKzMSUmYlzxxdh3ehFCNE2CfJeRmali85y79yFfeeuzl9fXo67vDyMLRJChEKCvBeRXrgQQhx8ZLJbLyEhLoQQByfpkcc4mdAmhBAHNwnyGCa9cCGEEBLkMUgmtAkhhPCSII8xMpQuhBDCV0SDXCk1EHgRyAXcwAKt9ZMtXqOAJ4EzgXpgptZ6VSTbFatkKL1tcZOOJmHyOJp+2E39+5+CwxHtJgkhRMRFeta6E/il1vpw4FjgJqXUyBavmQ4M9/yaBfw1wm2KObLNajtMJrIeuYOssxTJtX8mY/T39Hn6LkyZmdFumRBCRFxEe+Ra6z3AHs+fa5RSm4E8YJPPy84DXtRaa+BrpVS6Uqqf59qDngR4+xLPOZ34mjdR+4yBHLV/HbbKuaTdOoeKuX+OcuuEECKyum0duVIqHxgPfNPiVB6w2+frQs+xg56EeGjijzykOcSbNdVhSXNHp0FCCNGNumWym1IqGXgdmKO1rm55OsglAfUTlVKzMIbeyc7t3TkvE9o6xt3gAGsiOPz3B9dua5RaJIQQ3SfiPXKllBUjxBdprd8I8pJCYKDP1wOA4pYv0lov0FpP0FpPSMnovc8+g/XCJcTbVrPoPZyjrvc75hp4CvXLv49Si8TBonjG6wAclTI/4NyHhbd3d3PEQSqiQe6Zkf53YLPW+olWXvY2cJUyHAtUHYzPx2VCW+e5dhdS8dJq7CPn4hh3J01j76VmSx71b34Q7aaJg0DLMJ95xxRm3jEFkDAX3UMZc8wi9OZKTQGWAesxlp8B/AYYBKC1ftYT9k8DZ2AsP7taa/1dW+87dORY/dCi9yPW7u4mQ+lCxL7+iy5s/vPKmtkALHx0OQDTBrTWjxEidOct/n6l1npCy+MRDfJI6U1BLr1wIXoXb6C3DHOQQBdd01qQS/WzKJGhdCF6JxlqF91NtmiNAhlKF6J3aw7zRcbXK2tmM/OOKSx8dDkfFt4uPXMRVtIj72YyK12Ig0ew3jkYPXPpnYtwkSDvJjKULsTBrWWYCxEuMrTeDSTAhRBCRIr0yCNMQlwIIUQkSY88QmRCmxBCiO4gQR4B0gsXQgjRXSTIw8gb4CAhLoQQontIkIeJDKULIYSIBgnyMJChdCGEENEiQd4FMpQuhBAi2iTIO0l64UIIIXoCWUfeCRLiQgghegrpkXeATGgTQgjR00iQh0h64UIIIXoiCfJ2yIQ2IYQQPZkEeRtkKF0IIURPJ0HeChlKF0IIEQskyFuQoXQhhBCxRILchwylCyGEiDUS5B4ylC6EECIWyYYwBO+JCyGEELFAglwIIYSIYRLkQgghRAyTIBdCCCFimAS5EEIIEcMkyIUQQogYFtEgV0o9r5Tar5Ta0Mr5E5VSVUqpNZ5f90ayPUIIIURvE+l15AuBp4G21nUt01qfHeF2tErWjwshhIhlEQ1yrfUXSqn8SN6js2QrViGEEL1BT9jZbZJSai1QDPxKa70x0jeUrViFEEL0FtEO8lXAYK11rVLqTOAtYHiwFyqlZgGzALJz8zp9QxlKF0II0ZtEdda61rpaa13r+fP7gFUpld3KaxdorSdorSekZGR2+F7JGYslxIUQQvQ6Ue2RK6VygX1aa62Umojxg0VZuO8jAS6EEKK3imiQK6UWAycC2UqpQuA+wAqgtX4WuAi4QSnlBBqAy7TWOpxtkBAXQgjRm0V61vrl7Zx/GmN5WtjJhDYhRE9QPON1+i+6MOi5DwtvZ9qAJ7q5RaK3ifZkt4iQXrgQoifxhvlRKfONA3fMBmDho8slzEWX9aotWmVCmxCipyqe8TrFM14HaA70mXdMAYyeuRCd1Wt65DKULoSIBb6985U1s5vDfOGjxnnpnYuO6hU98mC9cAlxIURP5dszl9656KqYDnIZShdCxKr2htol0EWoYjbIfQNcQlwIEetahrkQoYrJZ+RmSzkgvXAhRGzzLktbWTO7+djCR5cD8qxchC4mgxwkxIUQsa1liHsDHCTERcfEZJAX15Tx2W9UtJshhBAd5rs5TMsQlwAXnRGTQT6syAU50W6FEEJ0jAyli0iIySAXQohY09pQugS46CoJciGEiCAZSheRFrPLz4QQQgghQS6EEELENAlyIYQQIoZJkAshhBAxTIJcCCGEiGES5EIIIUQMkyAXQgghYpgEuRBCCBHDJMiFEEKIGCZBLoQQMeDDwtv5sPD2aDdD9EAS5EII0cP5BriEuWhJglwIIXowb3DPvGMKM++Y4ndMCJCiKUII0SP5BrivmXdMYeGjy5vPS+EVIT1yIYSIAUelzOeolPlAYLiLg5sEuRBC9EDenra35OnKmtlSBlUEJUPrQgjRQ00b8AQfFt7eHNwtzwkBEQ5ypdTzwNnAfq316CDnFfAkcCZQD8zUWq+KZJuEECKWeANbnomL1kS6R74QeBp4sZXz04Hhnl/HAH/1/C6EEMKHBLhoTUSfkWutvwDK23jJecCL2vA1kK6U6hfJNgkhhBC9SbQnu+UBu32+LvQcE0IIIUQIoj3ZTQU5poO+UKlZwCzPl7UDiwu3RKxV0ZcNlEa7ETFMPr/Ok8+uawI/v5Oe9PniSb9Tz0S+PbFG/v61bXCwg9EO8kJgoM/XA4DiYC/UWi8AFnRHo6JNKfWd1npCtNsRq+Tz6zz57LpGPr+ukc+vc6I9tP42cJUyHAtUaa33RLlNQgghRMyI9PKzxcCJQLZSqhC4D7ACaK2fBd7HWHr2I8bys6sj2R4hhBCit4lokGutL2/nvAZuimQbYtRB8QghguTz6zz57LpGPr+ukc+vE5SRpUIIIYSIRdF+Ri6EEEKILpAg72GUUmal1Gql1LvRbkusUUoVKKXWK6XWKKW+i3Z7Yo1SKl0p9ZpS6nul1Gal1KRotylWKKUO9fy98/6qVkrNiXa7YoVS6hdKqY1KqQ1KqcVKqfhotymWyNB6D6OUuh2YAKRqrc+OdntiiVKqAJigtZZ1qJ2glPoHsExr/ZxSygYkaq0ro92uWKOUMgNFwDFa653Rbk9Pp5TKA5YDI7XWDUqpV4H3tdYLo9uy2CE98h5EKTUAOAt4LtptEQcXpVQqcALwdwCtdZOEeKedAmyTEO8QC5CglLIAibSyn4gIToK8Z5kH3Am4o92QGKWBj5RSKz07AYrQDQVKgBc8j3aeU0olRbtRMeoyYHG0GxErtNZFwGPALmAPxn4iH0W3VbFFgryHUEp5y72ujHZbYthkrfWRGFX1blJKnRDtBsUQC3Ak8Fet9XigDrgruk2KPZ5HEucC/452W2KFUioDo4DWEKA/kKSUuiK6rYotEuQ9x2TgXM9z3n8BJyul/hndJsUWrXWx5/f9wJvAxOi2KKYUAoVa6288X7+GEeyiY6YDq7TW+6LdkBhyKrBDa12itXYAbwDHRblNMUWCvIfQWt+ttR6gtc7HGJpborWWn0pDpJRKUkqleP8MnA5siG6rYofWei+wWyl1qOfQKcCmKDYpVl2ODKt31C7gWKVUolJKYfzd2xzlNsWUaBdNESJc+gJvGv8OYAFe1lp/EN0mxZxbgEWe4eHtyJbJHaKUSgROA2ZHuy2xRGv9jVLqNWAV4ARWIzu8dYgsPxNCCCFimAytCyGEEDFMglwIIYSIYRLkQgghRAyTIBdCCCFimAS5EEIIEcMkyIUQQogYJkEuhGimlDqxrRK6SqmZSqmnI3DfmUqp/j5fFyilssN9HyF6IwlyIURPMBNjn20hRAfJzm5CxBjPFrSvAgMAM/AA8CPwBJAMlAIztdZ7lFJLgTUY+86nAj/XWn+rlJqIUW0vAWgArtZab+lgO3KAZ4FBnkNztNZfKqXmeo4N9fw+T2v9lOeae4AZwG5PO1cCBcAEjF3lGoBJnve7RSl1DmAFLtZaf9+R9glxsJAeuRCx5wygWGt9hNZ6NPAB8GfgIq31UcDzwEM+r0/SWh8H3Og5B/A9cIKn0tm9wMOdaMeTwJ+01kcDFwLP+Zw7DJiG8QPEfUopq1Jqgud144ELMMIbrfVrwHfADK31OK11g+c9Sj3V7P4K/KoT7RPioCA9ciFiz3rgMaXUI8C7QAUwGvjYs9e8GaOus9diAK31F0qpVKVUOpAC/EMpNRyjjru1E+04FRjpuSdAqrdwDfCe1toO2JVS+zH2wp8C/Mcb1Eqpd9p5/zc8v6/ECH4hRBAS5ELEGK31VqXUUcCZwO+Bj4GNWutJrV0S5OsHgM+01j9RSuUDSzvRFBMwyacHDYAn2O0+h1wY/9YoOsb7Ht7rhRBByNC6EDHGM7u7Xmv9T+Ax4BggRyk1yXPeqpQa5XPJpZ7jU4AqrXUVkAYUec7P7GRTPgJu9mnXuHZevxw4RykVr5RKBs7yOVeDMUoghOgg+SlXiNgzBnhUKeUGHMANGOUfn1JKpWH8dz0P2Oh5fYVS6is8k908x/6IMbR+O7Ckk+24FfiLUmqd555fANe39mKt9Qql1NvAWmAnxnPxKs/phcCzLSa7CSFCIGVMhejFPLPWf6W1/i7abQFQSiVrrWs9tbu/AGZprVdFu11CxDLpkQshutMCpdRIIB74h4S4EF0nPXIhRACl1NXAbS0Of6m1vika7RFCtE6CXAghhIhhMmtdCCGEiGES5EIIIUQMkyAXQgghYpgEuRBCCBHDJMiFEEKIGPb/rPim0KYRSj4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x_min, x_max = X.iloc[:, 0].min() - 1, X.iloc[:, 0].max() + 1\n",
    "y_min, y_max = X.iloc[:, 1].min() - 1, X.iloc[:, 1].max() + 1\n",
    "xx, yy = np.meshgrid(np.linspace(x_min, x_max),\n",
    "                     np.linspace(y_min, y_max))\n",
    "plt.figure(figsize=(8, 6))\n",
    "plt_decision_boundaries(clf, xx, yy)\n",
    "sns.scatterplot(x=X[\"sepal_length\"], y=X[\"sepal_width\"], hue=iris['species']);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If the number of neighbours is increased to 15 the boundary between the versicolor and virginica species becomes much more regular, as including more neighbours corresponds to averaging over a larger region."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_neighbours = 15\n",
    "\n",
    "clf_15 = KNeighborsClassifier(n_neighbours, weights='uniform')\n",
    "clf_15.fit(X, y)\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "plt_decision_boundaries(clf_15, xx, yy)\n",
    "sns.scatterplot(x=X[\"sepal_length\"], y=X[\"sepal_width\"], hue=iris['species']);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Confusion Matrix and Accuracy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will now look at how we can assess the accuracy of the 5 neighbours kNN model, which we have called `clf`. This will involve introducing the concept of a confusion matrix, and the function below provides a simple method for viewing this. \n",
    "\n",
    "The concept of accuracy and confusion matrix which we introduce here apply to classification models in general."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plt_confusion_matrix(cnf_matrix, cats, method):\n",
    "    \"\"\"\n",
    "    Given actual target values and predicted values for a classifier 'method', \n",
    "    plots the confusion matrix\n",
    "    \"\"\"\n",
    "    # write the confusion matrix to a dataframe with row and column names as the categories\n",
    "    cmatrix = pd.DataFrame(cnf_matrix,columns=cats,index=cats) \n",
    "    f, ax = plt.subplots(figsize=(7,6)) # initialise the plots and axes\n",
    "    sns.heatmap(cmatrix, annot=True, linewidths=.5) # plot the confusion matrix as a heatmap\n",
    "    plt.title('Confusion matrix for '+method) # add a title, + concatenates two strings\n",
    "    plt.ylabel('Actual label') # add a ylabel\n",
    "    plt.xlabel('Predicted label') # add a xlabel\n",
    "    # adjust the bottom and top of the figure, so we can view all of it\n",
    "    bottom, top = ax.get_ylim()  # get the y axis limits\n",
    "    ax.set_ylim(bottom + 0.5, top - 0.5); # adjust the y axis limits"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We introduce the `train_test_split()` function to split our data into training and testing sets, and a function for calculating the confusion matrix and accuracy for classification models."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split # import the splitting method from sklearn\n",
    "from sklearn.metrics import confusion_matrix # import the confusion matrix function\n",
    "from sklearn.metrics import accuracy_score # import the score functions "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We first split the data into testing and training sets, as to test the accuracy of the model we want to use data that has not been used to train the model. Then we train the model using the training data, and then predict the output of the model for our testing features `X_test`. These predictions, `y_pred`, can then be compared against the actual values, `y_test`, to assess the accuracy of the model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train,X_test,y_train,y_test=train_test_split(X,y,train_size=0.8,random_state=0)  \n",
    "\n",
    "clf = KNeighborsClassifier(n_neighbours, weights='uniform')\n",
    "clf.fit(X_train, y_train)\n",
    "y_pred = clf.predict(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The first way we can assess the model is to view the confusion matrix. This shows how and where the model makes correct and incorrect predictions. For each label that is predicted by the model this counts the number of times it has correctly predicted the species and the number of times where it should have predicted one of the other species. For example, the model has predicted versicolor seven times. Five of these times it has correctly predicted the species, and twice it has incorrectly predicted the species when it should be virginica. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cnf_matrix = confusion_matrix(y_test, y_pred) # create a confusion matrix for our actual and predicted values\n",
    "plt_confusion_matrix(cnf_matrix, categories, 'kNN')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now calculate the accuracy of the model. This is simply the total number of correct predictions, i.e., the sum of the terms on the main diagonal of the confusion matrix, divided by the number of predictions, i.e., the sum of all the terms in the confusion matrix. In this case we have 11+5+4=20 correct predictions, and 11+5+8+2+4=30 total predictions. Therefore the accuracy in this case is 2/3. For a very good model the accuracy will approach 1, whereas for a very poor model the accuracy will approach 0."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.667\n"
     ]
    }
   ],
   "source": [
    "print(\"Accuracy:\",np.round(accuracy_score(y_test, y_pred),3)) # calculate and print the accuracy score"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Normalization"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For many algorithms, and especially algorithms which are based on the calculation of distances, it is important to normalize the feature variables. For example, consider if one of the features varied from 0.4 to 0.6, whereas another feature varied from 200 to 300. Hence the closest neighbours will be ones for which the second feature is approximately equal to the value of the instance that we are trying to predict, and therefore the second feature is largely redundant for our calculations.\n",
    "\n",
    "The way to address this is to normalize the variables by the standard deviation of the feature. Recall that the standard deviation is the distance on either side of the mean value in which approximately 70% of the observations lie. In the example above the standard deviation will be approximately 0.1 for the first feature and approximatley 50 for the second feature. If we normalize (divide) by the standard deviation then the first feature will now vary from 4 to 6 and the second feature will also vary from 4 to 6. Hence the distances in each feature direction are now equally weighted, and each feature has an equal contribution to the kNN algorithm.\n",
    "\n",
    "For the Iris Dataset normalization does not have a huge effect as the the features have similar standard deviations, however we will use this to explain the process. For the exercise example, the normalization does have an important effect.\n",
    "\n",
    "We first show the standard deviations of the two features we are using. As is apparent they have similar magnitudes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "sepal_length    0.828066\n",
       "sepal_width     0.435866\n",
       "dtype: float64"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.std()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now create a new normalized feature table `Xn`, which is each column of `X` divided by the standard deviation of that column. Then we repeat the calculations from earlier to plot the decision boundaries of the model. Again the decision boundaries between the virginica and versicolor species are fairly irregular."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "Xn = X/X.std()\n",
    "\n",
    "n_neighbours = 5\n",
    "\n",
    "clf = KNeighborsClassifier(n_neighbours, weights='uniform')\n",
    "clf.fit(Xn, y)\n",
    "x_min, x_max = Xn.iloc[:, 0].min() - 1, Xn.iloc[:, 0].max() + 1\n",
    "y_min, y_max = Xn.iloc[:, 1].min() - 1, Xn.iloc[:, 1].max() + 1\n",
    "xx, yy = np.meshgrid(np.linspace(x_min, x_max),\n",
    "                     np.linspace(y_min, y_max))\n",
    "plt.figure(figsize=(8, 6))\n",
    "plt_decision_boundaries(clf, xx, yy)\n",
    "sns.scatterplot(x=Xn[\"sepal_length\"], y=Xn[\"sepal_width\"], hue=iris['species']);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We then calculate the calculate the confusion matrix and accuracy. In this case the accuracy drops slightly. However, it is best practise to always normalize variables when using the kNN algorithm."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.633\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_train,X_test,y_train,y_test=train_test_split(Xn, y,train_size=0.8,random_state=0)  \n",
    "\n",
    "clf = KNeighborsClassifier(n_neighbours, weights='uniform')\n",
    "clf.fit(X_train, y_train)\n",
    "y_pred = clf.predict(X_test)\n",
    "\n",
    "cnf_matrix = confusion_matrix(y_test, y_pred) # create a confusion matrix for our actual and predicted values\n",
    "plt_confusion_matrix(cnf_matrix, categories, 'kNN')\n",
    "\n",
    "print(\"Accuracy:\",np.round(accuracy_score(y_test, y_pred),3)) # calculate and print the accuracy score"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercises"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For these exercises we will use the penguins dataset from seaborn. First, we remove any rows with missing values and then create a numerical code for classification, rather than using the string value of `species`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>species</th>\n",
       "      <th>island</th>\n",
       "      <th>bill_length_mm</th>\n",
       "      <th>bill_depth_mm</th>\n",
       "      <th>flipper_length_mm</th>\n",
       "      <th>body_mass_g</th>\n",
       "      <th>sex</th>\n",
       "      <th>code</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Adelie</td>\n",
       "      <td>Torgersen</td>\n",
       "      <td>39.1</td>\n",
       "      <td>18.7</td>\n",
       "      <td>181.0</td>\n",
       "      <td>3750.0</td>\n",
       "      <td>Male</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Adelie</td>\n",
       "      <td>Torgersen</td>\n",
       "      <td>39.5</td>\n",
       "      <td>17.4</td>\n",
       "      <td>186.0</td>\n",
       "      <td>3800.0</td>\n",
       "      <td>Female</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Adelie</td>\n",
       "      <td>Torgersen</td>\n",
       "      <td>40.3</td>\n",
       "      <td>18.0</td>\n",
       "      <td>195.0</td>\n",
       "      <td>3250.0</td>\n",
       "      <td>Female</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Adelie</td>\n",
       "      <td>Torgersen</td>\n",
       "      <td>36.7</td>\n",
       "      <td>19.3</td>\n",
       "      <td>193.0</td>\n",
       "      <td>3450.0</td>\n",
       "      <td>Female</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Adelie</td>\n",
       "      <td>Torgersen</td>\n",
       "      <td>39.3</td>\n",
       "      <td>20.6</td>\n",
       "      <td>190.0</td>\n",
       "      <td>3650.0</td>\n",
       "      <td>Male</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  species     island  bill_length_mm  bill_depth_mm  flipper_length_mm  \\\n",
       "0  Adelie  Torgersen            39.1           18.7              181.0   \n",
       "1  Adelie  Torgersen            39.5           17.4              186.0   \n",
       "2  Adelie  Torgersen            40.3           18.0              195.0   \n",
       "4  Adelie  Torgersen            36.7           19.3              193.0   \n",
       "5  Adelie  Torgersen            39.3           20.6              190.0   \n",
       "\n",
       "   body_mass_g     sex  code  \n",
       "0       3750.0    Male     0  \n",
       "1       3800.0  Female     0  \n",
       "2       3250.0  Female     0  \n",
       "4       3450.0  Female     0  \n",
       "5       3650.0    Male     0  "
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "penguins = sns.load_dataset('penguins') # load the dataset from seaborn\n",
    "penguins.dropna(subset=['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g'],\n",
    "                how='any',inplace=True)\n",
    "penguins['code'] = penguins.species.astype('category').cat.codes \n",
    "penguins.head() # display the first few lines"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 1 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create a feature array which consists of the flipper length and bill depth, a target series which consists of the species code and a vector which contains the species names. Plot a scatter plot of the feature array against the target series. (3 marks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X = penguins.loc[:, ['flipper_length_mm', 'bill_depth_mm']]\n",
    "y = penguins['code']\n",
    "categories = penguins.species.unique() # create a vector with the category names,\n",
    "sns.scatterplot(x=X[\"flipper_length_mm\"], y=X[\"bill_depth_mm\"], hue=penguins['species']);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 2 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Split the data into testing and training sets, with and 80:20 split. Create a kNN model with 10 nearest neighbours and uniform weights. Fit the training data to this model. Then calculate the predictions of this model for the test features. (3 marks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_neighbours = 10\n",
    "\n",
    "X_train,X_test,y_train,y_test=train_test_split(X, y,train_size=0.8,random_state=0)  \n",
    "\n",
    "clf = KNeighborsClassifier(n_neighbours, weights='uniform')\n",
    "clf.fit(X_train, y_train)\n",
    "y_pred = clf.predict(X_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Calculate and plot the confusion matrix, and calculate accuracy for this model. (2 marks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.725\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cnf_matrix = confusion_matrix(y_test, y_pred) # create a confusion matrix for our actual and predicted values\n",
    "plt_confusion_matrix(cnf_matrix, categories, 'kNN')\n",
    "\n",
    "print(\"Accuracy:\",np.round(accuracy_score(y_test, y_pred),3)) # calculate and print the accuracy score"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercise 4"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Repeat the calculations in Exercise 2 and 3, but first normalize the feature array. (2 marks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.754\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X = X/X.std()\n",
    "\n",
    "X_train,X_test,y_train,y_test=train_test_split(X, y,train_size=0.8,random_state=0)  \n",
    "\n",
    "clf = KNeighborsClassifier(n_neighbours, weights='uniform')\n",
    "clf.fit(X_train, y_train)\n",
    "y_pred = clf.predict(X_test)\n",
    "\n",
    "cnf_matrix = confusion_matrix(y_test, y_pred) # create a confusion matrix for our actual and predicted values\n",
    "plt_confusion_matrix(cnf_matrix, categories, 'kNN')\n",
    "\n",
    "print(\"Accuracy:\",np.round(accuracy_score(y_test, y_pred),3)) # calculate and print the accuracy score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
1273
   "version": "3.8.5"
1274
1275
1276
1277
1278
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}