File size: 133,874 Bytes
c8aa036
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a9d0dadb",
   "metadata": {
    "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
    "_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
    "execution": {
     "iopub.execute_input": "2024-11-27T13:06:30.121624Z",
     "iopub.status.busy": "2024-11-27T13:06:30.121250Z",
     "iopub.status.idle": "2024-11-27T13:06:30.970581Z",
     "shell.execute_reply": "2024-11-27T13:06:30.969438Z"
    },
    "papermill": {
     "duration": 0.855415,
     "end_time": "2024-11-27T13:06:30.972819",
     "exception": false,
     "start_time": "2024-11-27T13:06:30.117404",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/kaggle/input/dynamic-relationship-expansion-dre/pytorch/organized-chaos/2/dynamic-relationship-expansion-dre\n",
      "/kaggle/input/arc-prize-2024/arc-agi_training_solutions.json\n",
      "/kaggle/input/arc-prize-2024/arc-agi_evaluation_solutions.json\n",
      "/kaggle/input/arc-prize-2024/arc-agi_evaluation_challenges.json\n",
      "/kaggle/input/arc-prize-2024/sample_submission.json\n",
      "/kaggle/input/arc-prize-2024/arc-agi_training_challenges.json\n",
      "/kaggle/input/arc-prize-2024/arc-agi_test_challenges.json\n"
     ]
    }
   ],
   "source": [
    "# This Python 3 environment comes with many helpful analytics libraries installed\n",
    "# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n",
    "# For example, here's several helpful packages to load\n",
    "\n",
    "import numpy as np # linear algebra\n",
    "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
    "\n",
    "# Input data files are available in the read-only \"../input/\" directory\n",
    "# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n",
    "\n",
    "import os\n",
    "for dirname, _, filenames in os.walk('/kaggle/input'):\n",
    "    for filename in filenames:\n",
    "        print(os.path.join(dirname, filename))\n",
    "\n",
    "# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n",
    "# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9b31f371",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-27T13:06:30.980234Z",
     "iopub.status.busy": "2024-11-27T13:06:30.979240Z",
     "iopub.status.idle": "2024-11-27T13:06:32.064405Z",
     "shell.execute_reply": "2024-11-27T13:06:32.063267Z"
    },
    "papermill": {
     "duration": 1.091209,
     "end_time": "2024-11-27T13:06:32.066540",
     "exception": false,
     "start_time": "2024-11-27T13:06:30.975331",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Captured changes for Training Example 0:\n",
      "Scaled Input:\n",
      "[[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n",
      "Scaled Output:\n",
      "[[1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]]\n",
      "Detected Changes:\n",
      "[[0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0]]\n",
      "--------------------------------------------------\n",
      "Captured changes for Training Example 1:\n",
      "Scaled Input:\n",
      "[[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]]\n",
      "Scaled Output:\n",
      "[[1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]]\n",
      "Detected Changes:\n",
      "[[0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n",
      "--------------------------------------------------\n",
      "Captured changes for Training Example 2:\n",
      "Scaled Input:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n",
      "Scaled Output:\n",
      "[[0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]]\n",
      "Detected Changes:\n",
      "[[0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]]\n",
      "--------------------------------------------------\n",
      "Captured changes for Training Example 3:\n",
      "Scaled Input:\n",
      "[[1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]]\n",
      "Scaled Output:\n",
      "[[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n",
      "Detected Changes:\n",
      "[[0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]]\n",
      "--------------------------------------------------\n",
      "Final Cumulative State Change Matrix:\n",
      "[[0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]]\n",
      "==================================================\n",
      "Initial Scaled Test Input:\n",
      "[[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]]\n",
      "Final Predicted Output after applying state changes:\n",
      "[[1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]]\n",
      "Predicted Output:\n",
      "[[1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
      " [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABNIAAAGXCAYAAAB2on2rAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABiLUlEQVR4nO3de3zP9f//8fs29t4cNsaOYU45n2qy5hCybMiHkpByyKF8UFKJvuVYDfmISnwSliKHPuhMyPhUQw4rSkITxUZkYzJsz98ffnt/vO3gNfbe8Xa9XF4XXs/X8/V8P56v1/v9er7fj70OLsYYIwAAAAAAAAA5ci3oAAAAAAAAAICigEQaAAAAAAAAYAGJNAAAAAAAAMACEmkAAAAAAACABSTSAAAAAAAAAAtIpAEAAAAAAAAWkEgDAAAAAAAALCCRBgAAAAAAAFhAIg0AAAAAAACwgEQaAADAVQYMGKDq1avnaZvR0dFycXHR4cOH87RdZFa9enXde++9BR0GABSY6tWra8CAAfb5mJgYubi4KCYmpsBiuta1MQJFCYk0lGguLi6WprwYdM6fP6+JEydabitjwPvwww9v+rXzyiuvvKI1a9YUdBgAioBDhw7pscceU82aNeXh4SEvLy+1atVKs2fP1t9//13Q4TlNYTxO7tmzRw888ICCg4Pl4eGhW265Rffcc4/eeOMNh3o3G/tPP/2kiRMnOi1ZmJiYqGeeeUb16tVTmTJlVLZsWYWEhOill17SmTNnnPKaAJBbGX84yZg8PDxUp04djRgxQomJiQUdXq58/vnnmjhxYkGHoZSUFE2ZMkVNmjRRmTJl5O3trTZt2mjx4sUyxtxwu/nZv9z+FkThVqqgAwAK0nvvvecwv3jxYq1fvz5Tef369W/6tc6fP69JkyZJktq1a3fT7RWEV155RQ888IC6d+9e0KEAKMQ+++wz9ezZUzabTf369VOjRo108eJFff3113r22Wf1448/6u233y7oMJ0iu+PkI488ot69e8tms+VrPN9++63at2+vatWqaciQIQoICNDRo0e1detWzZ49WyNHjrxu7Fb99NNPmjRpktq1a5fnZ/R999136ty5s86dO6eHH35YISEhkqQdO3Zo6tSp2rJli7788ss8fU0AuBmTJ09WjRo1dOHCBX399deaO3euPv/8c+3du1dlypTJ11juuusu/f3333J3d8/Vep9//rnmzJlToMm0xMREdejQQfv27VPv3r01YsQIXbhwQf/5z3/Uv39/ff7551qyZInc3Nxy3XZ+9q84/BbE/5BIQ4n28MMPO8xv3bpV69evz1QOALAmPj5evXv3VnBwsL766isFBgbalw0fPlwHDx7UZ599VoARFgw3N7cb+pJ/s15++WV5e3vru+++U4UKFRyWnThxIt/juRFnzpzRfffdJzc3N+3evVv16tVzWP7yyy9r/vz5BRQdAGStU6dOat68uSRp8ODBqlSpkmbOnKmPPvpIffr0yXKdlJQUlS1bNs9jcXV1lYeHR563mx/69++vffv2afXq1frHP/5hL3/iiSf07LPPasaMGbrtttv03HPPFWCUKGm4tBO4jvT0dM2aNUsNGzaUh4eH/P399dhjj+mvv/5yqLdjxw5FRESocuXK8vT0VI0aNfToo49Kkg4fPixfX19J0qRJk+yneuf2rx8TJ06Ui4uLDh48qAEDBqhChQry9vbWwIEDdf78eYe6Li4uGjFihJYsWaK6devKw8NDISEh2rJli0O97O4FlPFaV7eXkpKid9991x4/9zUAcK3p06fr3LlzWrBggUMSLUPt2rX15JNPSrpybHRxcVF0dHSmetceIzOOSb/88osefvhheXt7y9fXVy+++KKMMTp69Ki6desmLy8vBQQE6F//+pdDe9ndo8zqfWNmzJihli1bqlKlSvL09FRISEimS+9zOk5e+/r33nuvatasmeVrhYWF2X98ZXj//fcVEhIiT09P+fj4qHfv3jp69GiOMUtXLrFt2LBhpiSaJPn5+VmK/bffftM///lP1a1bV56enqpUqZJ69uzpsC2jo6PVs2dPSVL79u2zvDXCF198oTZt2qhs2bIqX768unTpoh9//PG6ffj3v/+tP/74QzNnzsyURJMkf39/vfDCC5nKv/76a7Vo0UIeHh6qWbOmFi9e7LD89OnTeuaZZ9S4cWOVK1dOXl5e6tSpk77//nuHehnvkRUrVujll19WlSpV5OHhoQ4dOujgwYOZXnfOnDmqWbOmPD091aJFC/33v/9Vu3btMp2BkJqaqgkTJqh27dqy2WyqWrWqxowZo9TUVId669evV+vWrVWhQgWVK1dOdevW1fPPP3/d7QagcLn77rslXfmDk3TlO3i5cuV06NAhde7cWeXLl1ffvn0lWf/9YYzRSy+9pCpVqqhMmTJq3759lsfV7Ma6bdu2qXPnzqpYsaLKli2rJk2aaPbs2fb45syZI8nxdjgZ8jrGrGzdulXr1q3TgAEDHJJoGaKionTrrbdq2rRp9ttGZNfXa79z5NS/jLozZszQa6+9puDgYHl6eqpt27bau3evQ7tZHd8z2s/4jZVXvwVReHBGGnAdjz32mKKjozVw4EA98cQTio+P15tvvqndu3frm2++UenSpXXixAl17NhRvr6+Gjt2rCpUqKDDhw9r1apVkiRfX1/NnTtXw4YN03333af7779fktSkSZMbiunBBx9UjRo1FBUVpV27dumdd96Rn5+fpk2b5lBv8+bNWr58uZ544gnZbDa99dZbioyM1Pbt29WoUaNcveZ7772nwYMHq0WLFho6dKgkqVatWjcUP4Di65NPPlHNmjXVsmVLp7Tfq1cv1a9fX1OnTtVnn32ml156ST4+Pvr3v/+tu+++W9OmTdOSJUv0zDPP6I477tBdd92VJ687e/Zs/eMf/1Dfvn118eJFLVu2TD179tSnn36qLl26SMrdcbJXr17q16+fvvvuO91xxx328t9++01bt27Vq6++ai97+eWX9eKLL+rBBx/U4MGDdfLkSb3xxhu66667tHv37iyTZBmCg4MVGxurvXv35njczyn27777Tt9++6169+6tKlWq6PDhw5o7d67atWunn376SWXKlNFdd92lJ554Qq+//rqef/55+y0RMv5977331L9/f0VERGjatGk6f/685s6dq9atW2v37t05Xgr68ccfy9PTUw888EC2da518OBBPfDAAxo0aJD69++vhQsXasCAAQoJCVHDhg0lSb/++qvWrFmjnj17qkaNGkpMTNS///1vtW3bVj/99JOCgoIc2pw6dapcXV31zDPPKCkpSdOnT1ffvn21bds2e525c+dqxIgRatOmjZ566ikdPnxY3bt3V8WKFVWlShV7vfT0dP3jH//Q119/raFDh6p+/fras2ePXnvtNf3yyy/2e9X9+OOPuvfee9WkSRNNnjxZNptNBw8e1DfffGN5WwAoHA4dOiRJqlSpkr3s8uXLioiIUOvWrTVjxgz7JZ9Wfn9I0vjx4/XSSy+pc+fO6ty5s3bt2qWOHTvq4sWL141n/fr1uvfeexUYGKgnn3xSAQEB2rdvnz799FM9+eST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vBQUFJTpRrzZuZHjT1bHPyvHxJs51v33v//VP/7xD91111166623FBgYqNKlS2vRokVaunTpddfPTteuXVWmTBmtWLFCLVu21IoVK+Tq6mq/ab90ZRxycXHRF198kWU/czO+uLu764477tAdd9yhOnXqaODAgVq5cqUmTJiQ43ojR47UokWLNGrUKIWFhcnb21suLi7q3bu3pbOkMuq89957Wf4B5+qzt7JSr149xcXF6eLFiw5nhOXEynvilVde0YsvvqhHH31UU6ZMkY+Pj1xdXTVq1Kgs+5WXY296eroaN26smTNnZrm8atWqkq6cDbhlyxZt2rRJn332mdauXavly5fr7rvv1pdfflkgT4IFYE2LFi0yPTjmWlefGZvB6u+PgpRfMdavX19r1qzRDz/8kO09T3/44QdJsv9RKL9/27i4uGQ5DvBbqngjkQbkoFatWtqwYYNatWrlcGlLdu68807deeedevnll7V06VL17dtXy5Yt0+DBg2/qrIUblXEWwNV++eUXlSlTxj7AVaxYUWfOnMlUL+MvSFcriD4AKFruvfdevf3224qNjVVYWFiOdTP+Gn3tMSir48/NupnX+s9//iMPDw+tW7fO4SzjRYsWZaqbm+Nk2bJlde+992rlypWaOXOmli9frjZt2jjc5L5WrVoyxqhGjRqqU6eO5bavJ+PH3fHjx68b+4cffqj+/fs7PAn1woULmbZldutnPLTAz88vVzeCztC1a1fFxsbqP//5j/r06ZPr9bPz4Ycfqn379lqwYIFD+ZkzZzKd4WhFcHCwpCsPOmjfvr29/PLlyzp8+LDDTaVr1aql77//Xh06dLjue8bV1VUdOnRQhw4dNHPmTL3yyiv6v//7P23atOmGtieAws3q74+MY86BAwccngJ98uTJTE/OzOo1JGnv3r05HkdyOq47O0bpyneKqKgoLV68OMtEWlpampYuXaqKFSuqVatWknI33l/v+Jvdb6mrzzKuWLFilreSuPb1+B1VvHBOOJCDBx98UGlpaZoyZUqmZZcvX7YfoP/6669Mf4lo1qyZJNkvAcp4Ck9WSStniY2NdbjPy9GjR/XRRx+pY8eO9r9i16pVS0lJSfa/5khXflitXr06U3tly5bN1/gBFD1jxoxR2bJlNXjwYCUmJmZafujQIc2ePVvSlTPYKleurC1btjjUeeutt/I8rowfDVe/Vlpamt5+++3rruvm5iYXFxeHvy4fPnzY/mTFq+X2ONmrVy8dO3ZM77zzjr7//nv16tXLYfn9998vNzc3TZo0KdM4Y4y57uWrmzZtyvIv5Rn3d6lbt+51Y3dzc8vUxhtvvJHpr+1ly5aVlHmci4iIkJeXl1555ZUs7yN68uTJHPvw+OOPKzAwUE8//bR++eWXTMtPnDihl156Kcc2spJVv1auXKk//vgj121JV5KTlSpV0vz583X58mV7+ZIlSzL9YHzwwQf1xx9/aP78+Zna+fvvv5WSkiJJOn36dKbl136/AFC8WP39ER4ertKlS+uNN95wOJZdfXuA7Nx+++2qUaOGZs2alemYfXVb2R3X8yNGSWrZsqXCw8O1aNEiffrpp5mW/9///Z9++eUXjRkzxp7QCw4Olpubm6XvFtn1L8OaNWscxoTt27dr27Zt6tSpk72sVq1a+vnnnx3Gsu+//z7T05UL4rcgnIcz0oActG3bVo899piioqIUFxenjh07qnTp0jpw4IBWrlyp2bNn64EHHtC7776rt956S/fdd59q1aqls2fPav78+fLy8lLnzp0lXbk8o0GDBlq+fLnq1KkjHx8fNWrU6IbvTWBFo0aNFBERoSeeeEI2m80+gEyaNMlep3fv3nruued033336YknntD58+c1d+5c1alTJ9PNlkNCQrRhwwbNnDlTQUFBqlGjhkJDQ50WP4Cip1atWlq6dKl69eql+vXrq1+/fmrUqJEuXryob7/9VitXrtSAAQPs9QcPHqypU6dq8ODBat68ubZs2ZJlsuRmNWzYUHfeeafGjRun06dPy8fHR8uWLXNIeGSnS5cumjlzpiIjI/XQQw/pxIkTmjNnjmrXru3wRwgp98fJzp07q3z58nrmmWfk5uamHj16OCyvVauWXnrpJY0bN06HDx9W9+7dVb58ecXHx2v16tUaOnSonnnmmWzbHzlypM6fP6/77rtP9erVs++H5cuXq3r16ho4cOB1Y7/33nv13nvvydvbWw0aNFBsbKw2bNiQ6T5izZo1k5ubm6ZNm6akpCTZbDbdfffd8vPz09y5c/XII4/o9ttvV+/eveXr66sjR47os88+U6tWrfTmm29m24eKFStq9erV6ty5s5o1a6aHH37Y/iCdXbt26YMPPrju2Y9ZuffeezV58mQNHDhQLVu21J49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5OPj41AeExMjPz8/1a1bV8OGDdOpU6fyPc5z584pODhYVatWVbdu3Rzea4V5my5YsEC9e/dW2bJlHcrzcpveqOu9V/Oi/86Qnp6us2fPZnqfHjhwQEFBQapZs6b69u2rI0eOFFCEUrNmzRQYGKh77rlH33zzjb28sG7T/FKS+l+Y3o/O5qxjcGFUGI7deSXjVhgZx9KdO3fq0qVLDvuxXr16qlatWpHdj9f2MUNO33NR9JWUsYZxhnGmsGOcKRnjTKnrVylaEhISHC4nkqRSpUrJx8cn0/16rvbQQw8pODhYQUFB+uGHH/Tcc89p//79WrVqlb3dq5NokuzzObXrjFiv9ueff2rKlCmZLgedPHmy7r77bpUpU0Zffvml/vnPf+rcuXN64oknLLWZlpaWZX9//vnnbPuSVf2MfmT8m1OdG3EjsV7rueeeU1BQkMPBLTIyUvfff79q1KihQ4cO6fnnn1enTp0UGxsrNze3fImzbt26WrhwoZo0aaKkpCTNmDFDLVu21I8//qgqVaoU2m26fft27d27VwsWLHAoz+tteqOye68mJyfr77//1l9//XXT7ylnmDFjhs6dO6cHH3zQXhYaGqro6GjVrVtXx48f16RJk9SmTRvt3btX5cuXz7fYAgMDNW/ePDVv3lypqal655131K5dO23btk233357nnxOi7KS0v/C8n7ML846Bhc2heXYnRfS09M1atQotWrVSo0aNZJ0ZT+6u7urQoUKDnWL6n7Mqo/S9b/nougrCWMN44zs80Xx+JQdxpmihXHmiiKTSBs7dqymTZuWY519+/bdcPtXJ6IaN26swMBAdejQQYcOHVKtWrVy1ZazY82QnJysLl26qEGDBpo4caLDshdffNH+/9tuu00pKSl69dVXLSXSSpKpU6dq2bJliomJcbiRf+/eve3/b9y4sZo0aaJatWopJiZGHTp0yJfYwsLCFBYWZp9v2bKl6tevr3//+9+aMmVKvsRwIxYsWKDGjRurRYsWDuWFYZsWVUuXLtWkSZP00UcfOSTfO3XqZP9/kyZNFBoaquDgYK1YsSLL+yY6S926dVW3bl37fMuWLXXo0CG99tpreu+99/ItDhSswvJ+RN4qTsfu4cOHa+/evUX+nko5ya6Pefk9FygojDPFE+NM0cI4c0WRubTz6aef1r59+3KcatasqYCAgEw31Lx8+bJOnz6tgIAAy68XGhoqSTp48KAkKSAgINOTNTLmr203P2I9e/asIiMjVb58ea1evVqlS5e+bn9+//13paamXrfvlStXlpubW5b9zS6u7LZPRv2Mf3PTphU3EmuGGTNmaOrUqfryyy/VpEmTHOvWrFlTlStXtr8f8jPODKVLl9Ztt93m8J7MaONG28zrWFNSUrRs2TJLX2ZudpveqOzeq15eXvL09MyTfZWXli1bpsGDB2vFihWZLkm9VoUKFVSnTp1836ZZadGihT2OwrZN81tJ7X9hej86g7OOwYVdQR27b9aIESP06aefatOmTapSpYq9PCAgQBcvXtSZM2cc6hfF/ZhdH7Ny7fdcFH0lcaxhnCmeGGcKL8aZ/ykyiTRfX1/Vq1cvx8nd3V1hYWE6c+aMdu7caV/3q6++Unp6un1nWhEXFyfpyiVL0pWzg/bs2eOQ+Fq/fr28vLzUoEGDfI01OTlZHTt2lLu7uz7++GOHM6ly6k/FihVls9muW9fd3V0hISHauHGjvSw9PV0bN250OEPqamFhYQ71pSvbJ6N+jRo1FBAQ4FAnOTlZ27Zty7ZNK24kVunKE3CmTJmitWvXOtyjLju///67Tp06ZX8/5FecV0tLS9OePXvsMRS2bSpJK1euVGpqqh5++OHrvs7NbtMbdb33al7sq7zywQcfaODAgfrggw/UpUuX69Y/d+6cDh06lO/bNCtxcXH2OArTNi0IJbX/hen96AzOOgYXdgV17L5RxhiNGDFCq1ev1ldffaUaNWo4LA8JCVHp0qUd9uP+/ft15MiRIrMfr9fHrFz7PRdFX0kcaxhniifGmcKHcSYLBfqoAyeJjIw0t912m9m2bZv5+uuvza233mr69OljX/7777+bunXrmm3bthljjDl48KCZPHmy2bFjh4mPjzcfffSRqVmzprnrrrvs61y+fNk0atTIdOzY0cTFxZm1a9caX19fM27cuHyNNSkpyYSGhprGjRubgwcPmuPHj9uny5cvG2OM+fjjj838+fPNnj17zIEDB8xbb71lypQpY8aPH285rmXLlhmbzWaio6PNTz/9ZIYOHWoqVKhgf2rpI488YsaOHWuv/80335hSpUqZGTNmmH379pkJEyaY0qVLmz179tjrTJ061VSoUMF89NFH5ocffjDdunUzNWrUMH///fdNbcPcxjp16lTj7u5uPvzwQ4ftd/bsWWOMMWfPnjXPPPOMiY2NNfHx8WbDhg3m9ttvN7feequ5cOFCvsU5adIks27dOnPo0CGzc+dO07t3b+Ph4WF+/PFHh74Uhm2aoXXr1qZXr16Zyp21TTPa3r17t9m9e7eRZGbOnGl2795tfvvtN2OMMWPHjjWPPPKIvf6vv/5qypQpY5599lmzb98+M2fOHOPm5mbWrl1ruf/5EeeSJUtMqVKlzJw5cxzep2fOnLHXefrpp01MTIyJj48333zzjQkPDzeVK1c2J06cuOE4byTW1157zaxZs8YcOHDA7Nmzxzz55JPG1dXVbNiwwV7HGdu0KCkJ/XfW+7EgXe+z4KxjcH7KqY/OPHbnl2HDhhlvb28TExPjcCw9f/68vc7jjz9uqlWrZr766iuzY8cOExYWZsLCwgow6ty5Xh+tfM9F8VDcxxrGGcaZwohxpmSOM8UykXbq1CnTp08fU65cOePl5WUGDhxoT5IYY0x8fLyRZDZt2mSMMebIkSPmrrvuMj4+PsZms5natWubZ5991iQlJTm0e/jwYdOpUyfj6elpKleubJ5++mlz6dKlfI1106ZNRlKWU3x8vDHGmC+++MI0a9bMlCtXzpQtW9Y0bdrUzJs3z6SlpeUqtjfeeMNUq1bNuLu7mxYtWpitW7fal7Vt29b079/fof6KFStMnTp1jLu7u2nYsKH57LPPHJanp6ebF1980fj7+xubzWY6dOhg9u/fn6uY8iLW4ODgLLffhAkTjDHGnD9/3nTs2NH4+vqa0qVLm+DgYDNkyJA8+RKSmzhHjRplr+vv7286d+5sdu3a5dBeYdmmxhjz888/G0nmyy+/zNSWM7dpdp+JjPj69+9v2rZtm2mdZs2aGXd3d1OzZk2zaNGiTO3m1P/8iLNt27Y51jfGmF69epnAwEDj7u5ubrnlFtOrVy9z8ODBm4rzRmKdNm2aqVWrlvHw8DA+Pj6mXbt25quvvsrUbl5v06KmuPffWe/HgnS9z4Izj8H5Jac+OvPYnV+y+8509XH/77//Nv/85z9NxYoVTZkyZcx9991njh8/XnBB59L1+mj1ey6Kh+I81jDOMM4URowzJXOccTHGmFydwgYAAAAAAACUQEXmHmkAAAAAAABAQSKRBgAAAAAAAFhAIg0AAAAAAACwgEQaAAAAAAAAYAGJNAAAAAAAAMACEmkAAAAAAACABSTSAAAAAAAAAAtIpAEAAAAAAAAWkEgDAAAAAAAALCCRBgAAAAAAAFhAIg0AAAAAAACw4P8BTiqkVbFwGw0AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1500x500 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.ndimage import zoom\n",
    "\n",
    "TARGET_SIZE = (30, 30)  # Define the target size for consistent scaling\n",
    "\n",
    "# Function to scale an input to the target size\n",
    "def scale_to_target(matrix):\n",
    "    scaling_factor = (TARGET_SIZE[0] / matrix.shape[0], TARGET_SIZE[1] / matrix.shape[1])\n",
    "    return zoom(matrix, scaling_factor, order=0)\n",
    "\n",
    "# Function to capture cumulative state changes from training data\n",
    "def capture_state_changes(train_inputs, train_outputs):\n",
    "    # Initialize the state change matrix as a neutral matrix (zeros)\n",
    "    state_change_matrix = np.zeros(TARGET_SIZE, dtype=int)\n",
    "    \n",
    "    # Iterate through each pair of scaled training inputs and outputs\n",
    "    for i, (input_matrix, output_matrix) in enumerate(zip(train_inputs, train_outputs)):\n",
    "        # Scale input and output to the target size\n",
    "        scaled_input = scale_to_target(input_matrix)\n",
    "        scaled_output = scale_to_target(output_matrix)\n",
    "        \n",
    "        # Compute the state changes (where input and output differ)\n",
    "        changes = (scaled_output != scaled_input).astype(int)\n",
    "        \n",
    "        # Accumulate these changes into the state change matrix\n",
    "        state_change_matrix += changes\n",
    "        \n",
    "        print(f\"Captured changes for Training Example {i}:\")\n",
    "        print(f\"Scaled Input:\\n{scaled_input}\")\n",
    "        print(f\"Scaled Output:\\n{scaled_output}\")\n",
    "        print(f\"Detected Changes:\\n{changes}\")\n",
    "        print(\"-\" * 50)\n",
    "    \n",
    "    # Since multiple transformations may overlap, apply modulo 2 to only capture the final state\n",
    "    state_change_matrix %= 2  # Ensures we're left with 0 or 1 states\n",
    "    \n",
    "    print(\"Final Cumulative State Change Matrix:\")\n",
    "    print(state_change_matrix)\n",
    "    print(\"=\" * 50)\n",
    "    \n",
    "    return state_change_matrix\n",
    "\n",
    "# Function to apply the cumulative state change matrix to a test input\n",
    "def apply_state_changes(test_input, state_change_matrix):\n",
    "    # Scale test input to the target size\n",
    "    scaled_test_input = scale_to_target(test_input)\n",
    "    \n",
    "    print(\"Initial Scaled Test Input:\")\n",
    "    print(scaled_test_input)\n",
    "    \n",
    "    # Apply the cumulative state change matrix\n",
    "    final_output = (scaled_test_input + state_change_matrix) % 2  # Flip based on state changes\n",
    "    \n",
    "    print(\"Final Predicted Output after applying state changes:\")\n",
    "    print(final_output)\n",
    "    \n",
    "    return final_output\n",
    "\n",
    "# Sample task data for testing\n",
    "train_inputs = [\n",
    "    np.array([[1, 1], [0, 0]]),\n",
    "    np.array([[1, 1, 0], [0, 1, 1], [1, 0, 1]]),\n",
    "    np.array([[0, 1], [1, 0]]),\n",
    "    np.array([[1, 0, 0], [0, 1, 1]])\n",
    "]\n",
    "\n",
    "train_outputs = [\n",
    "    np.array([[1, 0, 0, 1], [0, 1, 1, 0], [1, 0, 0, 1], [0, 1, 1, 0]]),\n",
    "    np.array([[1, 0, 1], [0, 0, 0], [1, 0, 1]]),\n",
    "    np.array([[0, 1, 0], [1, 0, 1], [0, 1, 0]]),\n",
    "    np.array([[1, 1, 1, 1], [0, 0, 1, 1], [1, 1, 0, 0]])\n",
    "]\n",
    "\n",
    "test_input = np.array([[1, 1], [0, 1]])\n",
    "\n",
    "# Capture state changes from training data\n",
    "state_change_matrix = capture_state_changes(train_inputs, train_outputs)\n",
    "\n",
    "# Apply state changes to the test input\n",
    "predicted_output = apply_state_changes(test_input, state_change_matrix)\n",
    "\n",
    "# Display the final predicted output\n",
    "print(\"Predicted Output:\")\n",
    "print(predicted_output)\n",
    "\n",
    "# Visualize the transformation sequence\n",
    "fig, axes = plt.subplots(1, 3, figsize=(15, 5))\n",
    "axes[0].imshow(test_input, cmap='viridis')\n",
    "axes[0].set_title(\"Test Input\")\n",
    "\n",
    "axes[1].imshow(state_change_matrix, cmap='viridis')\n",
    "axes[1].set_title(\"Cumulative State Changes\")\n",
    "\n",
    "axes[2].imshow(predicted_output, cmap='viridis')\n",
    "axes[2].set_title(\"Predicted Output\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f75a4a23",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-11-27T13:06:32.075519Z",
     "iopub.status.busy": "2024-11-27T13:06:32.074983Z",
     "iopub.status.idle": "2024-11-27T13:06:32.583378Z",
     "shell.execute_reply": "2024-11-27T13:06:32.582191Z"
    },
    "papermill": {
     "duration": 0.515397,
     "end_time": "2024-11-27T13:06:32.585520",
     "exception": false,
     "start_time": "2024-11-27T13:06:32.070123",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Captured changes for Training Example 0:\n",
      "Scaled Input:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n",
      "Scaled Output:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]]\n",
      "Detected Changes:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]]\n",
      "--------------------------------------------------\n",
      "Captured changes for Training Example 1:\n",
      "Scaled Input:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1]]\n",
      "Scaled Output:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]]\n",
      "Detected Changes:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1]]\n",
      "--------------------------------------------------\n",
      "Final Cumulative State Change Matrix with Colors:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]]\n",
      "==================================================\n",
      "Initial Scaled Test Input:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n",
      "Final Predicted Output after applying state changes with colors:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]]\n",
      "Predicted Output:\n",
      "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 1 1 1 1]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [0 0 0 1 1 1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n",
      " [1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABLEAAAGXCAYAAABMcsLYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJv0lEQVR4nO3de1iUdf7/8ReCDKiAiiiwIiLm+VR4iDzkgUTNUivTsg0ttVrU1HUr+m6ppaHVmtYaVtvqWpqHNmyz0lXXw1ZiHks7eAqTMsV1FRQTFT6/P/wx6wgog8DcMzwf13VfOvfcc9/vm4H7Pfdr7oOXMcYIAAAAAAAAsLAqri4AAAAAAAAAuBZCLAAAAAAAAFgeIRYAAAAAAAAsjxALAAAAAAAAlkeIBQAAAAAAAMsjxAIAAAAAAIDlEWIBAAAAAADA8gixAAAAAAAAYHmEWAAAAAAAALA8QiwAAGAJw4cPV8OGDct0ngsWLJCXl5cOHTpUpvNFYQ0bNlT//v1dXQYAuFTDhg01fPhw++MNGzbIy8tLGzZscFlNV7qyRsCdEGLBZby8vEo0lMUG/+zZs5oyZUqJ51XQbN5///3rXnZZeeGFF7RixQpXlwHA4g4ePKhHHnlEjRo1kp+fnwIDA9W5c2fNmTNHv/76q6vLKzdW3Ebu3r1b99xzjyIjI+Xn56ff/OY3uu222/Taa685THe9tX/77beaMmVKuQV1x44d06RJk9SsWTNVq1ZN1atXV0xMjKZNm6ZTp06VyzIBoDQKvrgoGPz8/NSkSRONGTNGx44dc3V5Tvnkk080ZcoUV5ehnJwcPf/882rTpo2qVaumoKAgde3aVQsXLpQxptTzrcj1c3ZfENbm4+oCUHm98847Do8XLlyoNWvWFBrfvHnz617W2bNnNXXqVElS9+7dr3t+rvDCCy/onnvu0cCBA11dCgCL+vjjjzV48GDZbDY9+OCDatWqlc6fP6/PPvtMf/jDH/TNN9/ozTffdHWZ5aK4beRvf/tbDR06VDabrULr+eKLL9SjRw81aNBAo0aNUmhoqDIyMpSWlqY5c+Zo7Nix16y9pL799ltNnTpV3bt3L/Mj2bZu3ap+/frpzJkzeuCBBxQTEyNJ2rZtm2bMmKFNmzbpn//8Z5kuEwCu13PPPaeoqCidO3dOn332mVJSUvTJJ59oz549qlatWoXW0q1bN/3666/y9fV16nWffPKJ5s6d69Ig69ixY+rVq5e+++47DR06VGPGjNG5c+f097//XQkJCfrkk0+0aNEieXt7Oz3vilw/T9gXxP8QYsFlHnjgAYfHaWlpWrNmTaHxAIBrS09P19ChQxUZGal//etfCgsLsz+XmJioAwcO6OOPP3Zhha7h7e1dqg/X12v69OkKCgrS1q1bVbNmTYfnMjMzK7ye0jh16pQGDRokb29v7dy5U82aNXN4fvr06XrrrbdcVB0AFK9v375q3769JGnkyJEKDg7WrFmz9OGHH+q+++4r8jU5OTmqXr16mddSpUoV+fn5lfl8K0JCQoK+++47paam6s4777SPHzdunP7whz/o5Zdf1o033qgnn3zShVWisuF0Qlhafn6+Zs+erZYtW8rPz0/16tXTI488opMnTzpMt23bNsXHx6tOnTry9/dXVFSUHnroIUnSoUOHFBISIkmaOnWq/fBiZ1P/KVOmyMvLSwcOHNDw4cNVs2ZNBQUFacSIETp79qzDtF5eXhozZowWLVqkpk2bys/PTzExMdq0aZPDdMVd/6VgWZfPLycnR3/729/s9XMeO4DLvfjiizpz5ozefvtthwCrQOPGjfX4449LurRd9PLy0oIFCwpNd+X2sWB7tG/fPj3wwAMKCgpSSEiInnnmGRljlJGRoQEDBigwMFChoaH605/+5DC/4q5JVdJrhLz88su65ZZbFBwcLH9/f8XExBQ61ftq28grl9+/f381atSoyGXFxsbad3oKvPvuu4qJiZG/v79q166toUOHKiMj46o1S5dO62zZsmWhAEuS6tatW6Laf/zxR/3ud79T06ZN5e/vr+DgYA0ePNjhZ7lgwQINHjxYktSjR48iT8X/9NNP1bVrV1WvXl0BAQG6/fbb9c0331xzHd544w39/PPPmjVrVqEAS5Lq1aunP/7xj4XGf/bZZ+rYsaP8/PzUqFEjLVy40OH5//73v5o0aZJat26tGjVqKDAwUH379tVXX33lMF3B78iyZcs0ffp01a9fX35+furVq5cOHDhQaLlz585Vo0aN5O/vr44dO+rf//63unfvXuhb99zcXE2ePFmNGzeWzWZTRESEnnjiCeXm5jpMt2bNGnXp0kU1a9ZUjRo11LRpUz399NPX/LkBsJ6ePXtKuvSFj3TpM3iNGjV08OBB9evXTwEBARo2bJikku9/GGM0bdo01a9fX9WqVVOPHj2K3LYW1++2bNmifv36qVatWqpevbratGmjOXPm2OubO3euJMdLsBQo6xqLkpaWptWrV2v48OEOAVaB5ORk3XDDDZo5c6b9cgXFreuVnzuutn4F07788st65ZVXFBkZKX9/f916663as2ePw3yL2sYXzL9gH6us9gVhHRyJBUt75JFHtGDBAo0YMULjxo1Tenq6/vznP2vnzp36/PPPVbVqVWVmZqp3794KCQnRU089pZo1a+rQoUP64IMPJEkhISFKSUnRY489pkGDBumuu+6SJLVp06ZUNd17772KiopScnKyduzYob/85S+qW7euZs6c6TDdxo0btXTpUo0bN042m02vv/66+vTpoy+//FKtWrVyapnvvPOORo4cqY4dO2r06NGSpOjo6FLVD8AzffTRR2rUqJFuueWWcpn/kCFD1Lx5c82YMUMff/yxpk2bptq1a+uNN95Qz549NXPmTC1atEiTJk1Shw4d1K1btzJZ7pw5c3TnnXdq2LBhOn/+vJYsWaLBgwdr5cqVuv322yU5t40cMmSIHnzwQW3dulUdOnSwj//xxx+Vlpaml156yT5u+vTpeuaZZ3Tvvfdq5MiROn78uF577TV169ZNO3fuLDKgKhAZGanNmzdrz549V93mX632rVu36osvvtDQoUNVv359HTp0SCkpKerevbu+/fZbVatWTd26ddO4ceP06quv6umnn7afgl/w7zvvvKOEhATFx8dr5syZOnv2rFJSUtSlSxft3Lnzqqcf/uMf/5C/v7/uueeeYqe50oEDB3TPPffo4YcfVkJCgv76179q+PDhiomJUcuWLSVJP/zwg1asWKHBgwcrKipKx44d0xtvvKFbb71V3377rcLDwx3mOWPGDFWpUkWTJk1SVlaWXnzxRQ0bNkxbtmyxT5OSkqIxY8aoa9eumjBhgg4dOqSBAweqVq1aql+/vn26/Px83Xnnnfrss880evRoNW/eXLt379Yrr7yiffv22a9N9s0336h///5q06aNnnvuOdlsNh04cECff/55iX8WAKzj4MGDkqTg4GD7uIsXLyo+Pl5dunTRyy+/bD/NsCT7H5L07LPPatq0aerXr5/69eunHTt2qHfv3jp//vw161mzZo369++vsLAwPf744woNDdV3332nlStX6vHHH9cjjzyi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+uXLysvL05tvvnnN13p7e8vLy8vhG9VDhw7Z7yB3OWe3kUOGDNGRI0f0l7/8RV999ZWGDBni8Pxdd90lb29vTZ06tVCPMcZc85TJ9evXF/ntcMG1PJo2bXrN2r29vQvN47XXXiv0DXP16tUlFe5x8fHxCgwM1AsvvFDkNSOPHz9+1XV49NFHFRYWpt///vfat29foeczMzM1bdq0q86jKEWt1/Lly/Xzzz87PS/pUjAYHByst956SxcvXrSPX7RoUaEdtXvvvVc///yz3nrrrULz+fXXX5WTkyNJ+u9//1vo+Ss/WwDwPCXd/4iLi1PVqlX12muvOWzPLj8tvTg33XSToqKiNHv27ELb7cvnVdy2vSJqlKRbbrlFcXFxmj9/vlauXFno+f/7v//Tvn379MQTT9jDtMjISHl7e5fo80Vx61dgxYoVDn3hyy+/1JYtW9S3b1/7uOjoaH3//fcO/eyrr74qdCdZV+wLovxwJBYs69Zbb9Ujjzyi5ORk7dq1S71791bVqlW1f/9+LV++XHPmzNE999yjv/3tb3r99dc1aNAgRUdH6/Tp03rrrbcUGBiofv36Sbp0WkCLFi20dOlSNWnSRLVr11arVq1KfS56SbRq1Urx8fEaN26cbDabfeM9depU+zRDhw7Vk08+qUGDBmncuHH2W583adKk0MVtY2JitHbtWs2aNUvh4eGKiopSp06dyq1+AO4lOjpaixcv1pAhQ9S8eXM9+OCDatWqlc6fP68vvvhCy5cv1/Dhw+3Tjxw5UjNmzNDIkSPVvn17bdq0qcig4nq1bNlSN998s5KSkvTf//5XtWvX1pIlSxzChuLcfvvtmjVrlvr06aP7779fmZmZmjt3rho3buwQ/kvObyP79eungIAATZo0Sd7e3rr77rsdno+Ojta0adOUlJSkQ4cOaeDAgQoICFB6erpSU1M1evRoTZo0qdj5jx07VmfPntWgQYPUrFkz+/uwdOlSNWzYUCNGjLhm7f3799c777yjoKAgtWjRQps3b9batWsLXTeqXbt28vb21syZM5WVlSWbzaaePXuqbt26SklJ0W9/+1vddNNNGjp0qEJCQnT48GF9/PHH6ty5s/785z8Xuw61atVSamqq+vXrp3bt2umBBx6w37Bkx44deu+996551F9R+vfvr+eee04jRozQLbfcot27d2vRokUORwo4w9fXV1OmTNHYsWPVs2dP3XvvvTp06JAWLFig6Ohoh2/gf/vb32rZsmV69NFHtX79enXu3Fl5eXn6/vvvtWzZMq1evVrt27fXc889p02bNun2229XZGSkMjMz9frrr6t+/frq0qVLqeoEYH0l3f8ICQnRpEmTlJycrP79+6tfv37auXOnPv3002seUVqlShWlpKTojjvuULt27TRixAiFhYXp+++/1zfffKPVq1dLkn17O27cOMXHx8vb21tDhw6tkBoLLFy4UL169dKAAQN0//33q2vXrsrNzdUHH3ygDRs2aMiQIfrDH/5gnz4oKEiDBw/Wa6+9Ji8vL0VHR2vlypX263Rdrrj1K9C4cWN16dJFjz32mHJzczV79mwFBwfriSeesE/z0EMPadasWYqPj9fDDz+szMxMzZs3Ty1btnS42Lwr9gVRjir4bohAsYq7zeqbb75pYmJijL+/vwkICDCtW7c2TzzxhDly5IgxxpgdO3aY++67zzRo0MDYbDZTt25d079/f7Nt2zaH+XzxxRcmJibG+Pr6XvMWqwW3h12+fLl9XMFt5q+83XZRt4+XZBITE827775rbrjhBmOz2cyNN95Y6Hazxly6DXurVq2Mr6+vadq0qXn33Xfty7rc999/b7p162b8/f1LdFtcAJXTvn37zKhRo0zDhg2Nr6+vCQgIMJ07dzavvfaaOXfunH26s2fPmocfftgEBQWZgIAAc++995rMzMxC28fitn0JCQmmevXqhZZ/6623mpYtWzqMO3jwoImLizM2m83Uq1fPPP3002bNmjWFbsN95S2xjTHm7bfftm9HmzVrZubPn+/UNrKobXSBYcOGGUkmLi6u2J/n3//+d9OlSxdTvXp1U716ddOsWTOTmJho9u7dW+xrjDHm008/NQ899JBp1qyZqVGjhvH19TWNGzc2Y8eONceOHStR7SdPnjQjRowwderUMTVq1DDx8fHm+++/N5GRkYV6wFtvvWUaNWpkvL29C/1c169fb+Lj401QUJDx8/Mz0dHRZvjw4YX6ZHGOHDliJkyYYJo0aWL8/PxMtWrVTExMjJk+fbrJysqyTxcZGWluv/32Qq+/8hbo586dM7///e9NWFiY8ff3N507dzabN28uNF1RvdiYom/Vbowxr776qomMjDQ2m8107NjRfP755yYmJsb06dPHYbrz58+bmTNnmpYtWxqbzWZq1aplYmJizNSpU+3rs27dOjNgwAATHh5ufH19TXh4uLnvvvvMvn37SvQzA+AaBdv8rVu3XnW64npYgWvtfxhjTF5enpk6dap9W9a9e3ezZ8+eQtvogm3ZlfsBn332mbnttttMQECAqV69umnTpo157bXX7M9fvHjRjB071oSEhBgvL69Cfa8sa7ya06dPmylTppiWLVval9W5c2ezYMECk5+fX2j648ePm7vvvttUq1bN1KpVyzzyyCNmz549hbbbxa1fwTb+pZdeMn/6059MRESEsdlspmvXruarr74qtLx3333XNGrUyPj6+pp27dqZ1atXF/l5wpl9QViblzGluComgKvy8vJSYmLiVb/hBgAA5Sc/P18hISG66667ijx9EABgPYcOHVJUVJReeumlqx7xjMqLa2IBAADArZ07d67QdbYWLlyo//73v+revbtrigIAAGWOa2IBAADAraWlpWnChAkaPHiwgoODtWPHDr399ttq1aqVBg8e7OryAABAGSHEAgAAgFtr2LChIiIi9Oqrr9pvIPDggw9qxowZ8vX1dXV5AACgjHBNLAAAAAAAAFge18QCAAAAAACA5VX46YT5+fk6cuSIAgIC5OXlVdGLBwCPY4zR6dOnFR4eripV+G6CPgMAZYs+44g+AwBly5k+U+Eh1pEjRxQREVHRiwUAj5eRkaH69eu7ugyXo88AQPmgz1xCnwGA8lGSPlPhIVZAQIAkqYv6yUdVK3rxAMpY6r7dri6h0ss+k6/Imw7Zt6+VHX0GuOSHGR1cXQLKQKOntrq6BF3UBX2mT+gz/x99BriEPoOykn/unH6aMq1EfabCQ6yCQ259VFU+Xmz0AXcXGMBpBVbBKQ2X0GeAS6r4+bm6BJQBS2zH/v9toOgzl9BngEvoMyhrJekz7H0CACxn7ty5atiwofz8/NSpUyd9+eWXri4JAOBh6DUA4H4IsQAAlrJ06VJNnDhRkydP1o4dO9S2bVvFx8crMzPT1aUBADwEvQYA3BMhFgDAUmbNmqVRo0ZpxIgRatGihebNm6dq1arpr3/9a5HT5+bmKjs722EAAOBqnOk19BkAsA5CLACAZZw/f17bt29XXFycfVyVKlUUFxenzZs3F/ma5ORkBQUF2QfuGAUAuBpnew19BgCsgxALAGAZ//nPf5SXl6d69eo5jK9Xr56O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",
      "text/plain": [
       "<Figure size 1500x500 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.ndimage import zoom\n",
    "\n",
    "TARGET_SIZE = (30, 30)  # Define the target size for consistent scaling\n",
    "\n",
    "# Function to scale an input to the target size\n",
    "def scale_to_target(matrix):\n",
    "    scaling_factor = (TARGET_SIZE[0] / matrix.shape[0], TARGET_SIZE[1] / matrix.shape[1])\n",
    "    return zoom(matrix, scaling_factor, order=0)\n",
    "\n",
    "# Function to capture cumulative state changes with color tracking\n",
    "def capture_state_changes(train_inputs, train_outputs):\n",
    "    # Initialize the state change matrix as a neutral matrix (zeros)\n",
    "    state_change_matrix = np.zeros(TARGET_SIZE, dtype=int)\n",
    "    \n",
    "    # Iterate through each pair of scaled training inputs and outputs\n",
    "    for i, (input_matrix, output_matrix) in enumerate(zip(train_inputs, train_outputs)):\n",
    "        # Scale input and output to the target size\n",
    "        scaled_input = scale_to_target(input_matrix)\n",
    "        scaled_output = scale_to_target(output_matrix)\n",
    "        \n",
    "        # Compute where there are changes and update the state change matrix with output values\n",
    "        changes = (scaled_output != scaled_input)\n",
    "        state_change_matrix = np.where(changes, scaled_output, state_change_matrix)\n",
    "        \n",
    "        print(f\"Captured changes for Training Example {i}:\")\n",
    "        print(f\"Scaled Input:\\n{scaled_input}\")\n",
    "        print(f\"Scaled Output:\\n{scaled_output}\")\n",
    "        print(f\"Detected Changes:\\n{changes.astype(int)}\")  # Display as binary changes\n",
    "        print(\"-\" * 50)\n",
    "    \n",
    "    print(\"Final Cumulative State Change Matrix with Colors:\")\n",
    "    print(state_change_matrix)\n",
    "    print(\"=\" * 50)\n",
    "    \n",
    "    return state_change_matrix\n",
    "\n",
    "# Function to apply the cumulative state change matrix to a test input\n",
    "def apply_state_changes(test_input, state_change_matrix):\n",
    "    # Scale test input to the target size\n",
    "    scaled_test_input = scale_to_target(test_input)\n",
    "    print(\"Initial Scaled Test Input:\")\n",
    "    print(scaled_test_input)\n",
    "    \n",
    "    # Apply the cumulative state change matrix\n",
    "    final_output = np.where(state_change_matrix != 0, state_change_matrix, scaled_test_input)\n",
    "    \n",
    "    print(\"Final Predicted Output after applying state changes with colors:\")\n",
    "    print(final_output)\n",
    "    \n",
    "    return final_output\n",
    "\n",
    "# Replace these arrays with the ARC data examples\n",
    "train_inputs = [\n",
    "    np.array([\n",
    "        [0, 0, 0, 0, 0, 0, 0],\n",
    "        [0, 1, 0, 0, 0, 0, 0],\n",
    "        [0, 1, 1, 0, 0, 0, 0],\n",
    "        [0, 0, 0, 0, 1, 1, 0],\n",
    "        [0, 0, 0, 0, 0, 1, 0],\n",
    "        [0, 0, 0, 0, 0, 0, 0],\n",
    "        [0, 0, 0, 0, 0, 0, 0]\n",
    "    ]),\n",
    "    np.array([\n",
    "        [0, 0, 0, 0, 0, 0, 0],\n",
    "        [0, 1, 2, 0, 0, 0, 0],\n",
    "        [0, 1, 1, 0, 0, 0, 0],\n",
    "        [0, 0, 0, 0, 1, 1, 0],\n",
    "        [0, 0, 0, 0, 2, 1, 0],\n",
    "        [0, 0, 0, 0, 0, 0, 0],\n",
    "        [0, 0, 0, 0, 0, 0, 1]\n",
    "    ])\n",
    "]\n",
    "\n",
    "train_outputs = [\n",
    "    np.array([\n",
    "        [0, 0, 0, 0, 1, 1, 0],\n",
    "        [0, 0, 0, 0, 0, 1, 0],\n",
    "        [0, 0, 1, 0, 0, 0, 0],\n",
    "        [0, 0, 1, 1, 0, 0, 0],\n",
    "        [0, 0, 0, 0, 0, 0, 0],\n",
    "        [0, 0, 0, 0, 1, 0, 0],\n",
    "        [0, 0, 0, 1, 1, 0, 0]\n",
    "    ]),\n",
    "    np.array([\n",
    "        [0, 0, 0, 0, 1, 1, 0],\n",
    "        [0, 0, 0, 0, 2, 1, 0],\n",
    "        [0, 0, 1, 2, 0, 0, 0],\n",
    "        [0, 0, 1, 1, 0, 0, 0],\n",
    "        [0, 0, 0, 0, 0, 0, 0],\n",
    "        [0, 0, 0, 2, 1, 0, 0],\n",
    "        [0, 0, 0, 1, 1, 0, 0]\n",
    "    ])\n",
    "]\n",
    "\n",
    "test_input = np.array([\n",
    "    [0, 0, 0, 0, 0, 1, 1],\n",
    "    [1, 1, 0, 0, 0, 0, 1],\n",
    "    [1, 0, 0, 0, 0, 0, 0],\n",
    "    [0, 0, 0, 1, 0, 0, 0],\n",
    "    [0, 0, 0, 1, 1, 0, 0],\n",
    "    [0, 1, 0, 0, 0, 0, 0],\n",
    "    [1, 1, 0, 0, 0, 0, 0]\n",
    "])\n",
    "\n",
    "# Capture state changes from training data\n",
    "state_change_matrix = capture_state_changes(train_inputs, train_outputs)\n",
    "\n",
    "# Apply state changes to the test input\n",
    "predicted_output = apply_state_changes(test_input, state_change_matrix)\n",
    "\n",
    "# Display the final predicted output\n",
    "print(\"Predicted Output:\")\n",
    "print(predicted_output)\n",
    "\n",
    "# Visualize the transformation sequence\n",
    "fig, axes = plt.subplots(1, 3, figsize=(15, 5))\n",
    "axes[0].imshow(test_input, cmap='viridis')\n",
    "axes[0].set_title(\"Test Input\")\n",
    "\n",
    "axes[1].imshow(state_change_matrix, cmap='viridis')\n",
    "axes[1].set_title(\"Cumulative State Changes\")\n",
    "\n",
    "axes[2].imshow(predicted_output, cmap='viridis')\n",
    "axes[2].set_title(\"Predicted Output\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7c18c00c",
   "metadata": {},
   "source": [
    "# All I needed to do was subtract the test input from the output... "
   ]
  }
 ],
 "metadata": {
  "kaggle": {
   "accelerator": "none",
   "dataSources": [
    {
     "databundleVersionId": 8951125,
     "sourceId": 67357,
     "sourceType": "competition"
    },
    {
     "isSourceIdPinned": true,
     "modelId": 175594,
     "modelInstanceId": 153146,
     "sourceId": 179738,
     "sourceType": "modelInstanceVersion"
    }
   ],
   "dockerImageVersionId": 30786,
   "isGpuEnabled": false,
   "isInternetEnabled": true,
   "language": "python",
   "sourceType": "notebook"
  },
  "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",
   "version": "3.10.14"
  },
  "papermill": {
   "default_parameters": {},
   "duration": 5.578095,
   "end_time": "2024-11-27T13:06:33.110284",
   "environment_variables": {},
   "exception": null,
   "input_path": "__notebook__.ipynb",
   "output_path": "__notebook__.ipynb",
   "parameters": {},
   "start_time": "2024-11-27T13:06:27.532189",
   "version": "2.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}