aboutsummaryrefslogtreecommitdiff
path: root/src/sane-rules.h
blob: 5483b2834cd7c41d2570eb05b4436784f0ea07ca (plain)
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
void populate_scsi_scanners (GHashTable* scanners)
{
  GList* epson = NULL;
  epson = g_list_append (epson, g_strdup ("GT-9700"));
  epson = g_list_append (epson, g_strdup ("GT-9800"));
  epson = g_list_append (epson, g_strdup ("Perfection1200"));
  epson = g_list_append (epson, g_strdup ("Perfection636"));
  epson = g_list_append (epson, g_strdup ("SCANNER GT-7000"));
  g_hash_table_insert (scanners,
                       g_strdup("EPSON"),
                       g_list_copy(epson));


  GList* hp = NULL;
  hp = g_list_append (hp, g_strdup ("C1130A"));
  hp = g_list_append (hp, g_strdup ("C1750A"));
  hp = g_list_append (hp, g_strdup ("C1790A"));
  hp = g_list_append (hp, g_strdup ("C2500A"));
  hp = g_list_append (hp, g_strdup ("C2520A"));
  hp = g_list_append (hp, g_strdup ("C5110A"));
  hp = g_list_append (hp, g_strdup ("C6270A"));
  hp = g_list_append (hp, g_strdup ("C7670A"));
  g_hash_table_insert (scanners,
                       g_strdup("HP"),
                       g_list_copy(hp));
}

void populate_usb_scanners (GHashTable* scanners)
{
  GList* hp = NULL;

  hp = g_list_append (hp, g_strdup ("0101"));
  hp = g_list_append (hp, g_strdup ("0105"));
  hp = g_list_append (hp, g_strdup ("0201"));
  hp = g_list_append (hp, g_strdup ("0205"));
  hp = g_list_append (hp, g_strdup ("0305"));
  hp = g_list_append (hp, g_strdup ("0401"));
  hp = g_list_append (hp, g_strdup ("0405"));
  hp = g_list_append (hp, g_strdup ("0505"));
  hp = g_list_append (hp, g_strdup ("0601"));
  hp = g_list_append (hp, g_strdup ("0605"));
  hp = g_list_append (hp, g_strdup ("0701"));
  hp = g_list_append (hp, g_strdup ("0705"));
  hp = g_list_append (hp, g_strdup ("0801"));
  hp = g_list_append (hp, g_strdup ("0805"));
  hp = g_list_append (hp, g_strdup ("0901"));
  hp = g_list_append (hp, g_strdup ("0a01"));
  hp = g_list_append (hp, g_strdup ("0b01"));
  hp = g_list_append (hp, g_strdup ("1005"));
  hp = g_list_append (hp, g_strdup ("1105"));
  hp = g_list_append (hp, g_strdup ("1205"));
  hp = g_list_append (hp, g_strdup ("1305"));
  hp = g_list_append (hp, g_strdup ("1405"));
  hp = g_list_append (hp, g_strdup ("1705"));
  hp = g_list_append (hp, g_strdup ("1805"));
  hp = g_list_append (hp, g_strdup ("2005"));
  hp = g_list_append (hp, g_strdup ("2205"));
  hp = g_list_append (hp, g_strdup ("2305"));
  hp = g_list_append (hp, g_strdup ("2405"));
  hp = g_list_append (hp, g_strdup ("2605"));
  hp = g_list_append (hp, g_strdup ("2805"));
  hp = g_list_append (hp, g_strdup ("3805"));
  hp = g_list_append (hp, g_strdup ("3905"));
  hp = g_list_append (hp, g_strdup ("3B17"));
  hp = g_list_append (hp, g_strdup ("4105"));
  hp = g_list_append (hp, g_strdup ("4205"));
  hp = g_list_append (hp, g_strdup ("4305"));
  hp = g_list_append (hp, g_strdup ("4505"));
  hp = g_list_append (hp, g_strdup ("4605"));
  hp = g_list_append (hp, g_strdup ("5617"));
  hp = g_list_append (hp, g_strdup ("5717"));
  
  g_hash_table_insert (scanners,
                       g_strdup("03f0"),
                       g_list_copy(hp));

  GList* mustek_2 = NULL;
  mustek_2 = g_list_append (mustek_2, g_strdup ("1000"));
  mustek_2 = g_list_append (mustek_2, g_strdup ("1001"));
  g_hash_table_insert (scanners,
                       g_strdup("03f0"),
                       g_list_copy(mustek_2));

  GList* kodak = NULL;
  kodak = g_list_append (kodak, g_strdup ("6001"));
  kodak = g_list_append (kodak, g_strdup ("6002"));
  kodak = g_list_append (kodak, g_strdup ("6003"));
  kodak = g_list_append (kodak, g_strdup ("6004"));
  kodak = g_list_append (kodak, g_strdup ("6005"));
  g_hash_table_insert (scanners,
                       g_strdup("040a"),
                       g_list_copy(kodak));
                                              
  GList* creative = NULL;
  
  creative = g_list_append (creative, g_strdup ("4007"));

  g_hash_table_insert (scanners,
                       g_strdup("041e"),
                       g_list_copy(creative));
  
  GList* lexmark = NULL;
  
  lexmark = g_list_append (lexmark, g_strdup("002d"));
  lexmark = g_list_append (lexmark, g_strdup("0060"));
  lexmark = g_list_append (lexmark, g_strdup("007c"));
  lexmark = g_list_append (lexmark, g_strdup("007d"));

  g_hash_table_insert (scanners,
                       g_strdup("043d"),
                       g_list_copy(lexmark));
  

  GList* genius = NULL;
  genius = g_list_append (genius, g_strdup("2004"));
  genius = g_list_append (genius, g_strdup("2007"));
  genius = g_list_append (genius, g_strdup("2008"));
  genius = g_list_append (genius, g_strdup("2009"));
  genius = g_list_append (genius, g_strdup("2011"));
  genius = g_list_append (genius, g_strdup("2013"));
  genius = g_list_append (genius, g_strdup("2014"));
  genius = g_list_append (genius, g_strdup("2015"));
  genius = g_list_append (genius, g_strdup("2016"));
  genius = g_list_append (genius, g_strdup("2017"));
  genius = g_list_append (genius, g_strdup("201a"));
  genius = g_list_append (genius, g_strdup("201b"));
  genius = g_list_append (genius, g_strdup("201d"));
  genius = g_list_append (genius, g_strdup("201e"));
  genius = g_list_append (genius, g_strdup("201f"));
  genius = g_list_append (genius, g_strdup("20c1"));
  g_hash_table_insert (scanners,
                       g_strdup("0458"),
                       g_list_copy(genius));

  GList* medion = NULL;
  medion = g_list_append (medion, g_strdup("0377"));
  g_hash_table_insert (scanners,
                       g_strdup("0461"),
                       g_list_copy(medion));

  GList* trust = NULL;
  trust = g_list_append (trust, g_strdup("1000"));
  trust = g_list_append (trust, g_strdup("1002"));
  g_hash_table_insert (scanners,
                       g_strdup("047b"),
                       g_list_copy(trust));
                         
  GList* kyocera = NULL;
  kyocera = g_list_append (kyocera, g_strdup("0335"));
  g_hash_table_insert (scanners,
                       g_strdup("0482"),
                       g_list_copy(kyocera));
  
  GList* compaq = NULL;
  compaq = g_list_append (compaq, g_strdup("001a"));
  g_hash_table_insert (scanners,
                       g_strdup("049f"),
                       g_list_copy(compaq));
  GList* benq = NULL;
  benq = g_list_append (benq, g_strdup("1a20"));
  benq = g_list_append (benq, g_strdup("1a2a"));
  benq = g_list_append (benq, g_strdup("2022"));
  benq = g_list_append (benq, g_strdup("2040"));
  benq = g_list_append (benq, g_strdup("2060"));
  benq = g_list_append (benq, g_strdup("207e"));
  benq = g_list_append (benq, g_strdup("20b0"));
  benq = g_list_append (benq, g_strdup("20be"));
  benq = g_list_append (benq, g_strdup("20c0"));
  benq = g_list_append (benq, g_strdup("20de"));
  benq = g_list_append (benq, g_strdup("20f8"));
  benq = g_list_append (benq, g_strdup("20fc"));
  benq = g_list_append (benq, g_strdup("20fe"));
  benq = g_list_append (benq, g_strdup("2137"));
  benq = g_list_append (benq, g_strdup("2211"));
  g_hash_table_insert (scanners,
                       g_strdup("04a5"),
                       g_list_copy(benq));

  GList* visioneer = NULL;
  visioneer = g_list_append (visioneer, g_strdup("0229"));
  visioneer = g_list_append (visioneer, g_strdup("0390"));
  visioneer = g_list_append (visioneer, g_strdup("0420"));
  visioneer = g_list_append (visioneer, g_strdup("0421"));
  visioneer = g_list_append (visioneer, g_strdup("0422"));
  visioneer = g_list_append (visioneer, g_strdup("0423"));
  visioneer = g_list_append (visioneer, g_strdup("0424"));
  visioneer = g_list_append (visioneer, g_strdup("0426"));
  visioneer = g_list_append (visioneer, g_strdup("0427"));
  visioneer = g_list_append (visioneer, g_strdup("0444"));
  visioneer = g_list_append (visioneer, g_strdup("0446"));
  visioneer = g_list_append (visioneer, g_strdup("0447"));
  visioneer = g_list_append (visioneer, g_strdup("0448"));
  visioneer = g_list_append (visioneer, g_strdup("0449"));
  visioneer = g_list_append (visioneer, g_strdup("044c"));
  visioneer = g_list_append (visioneer, g_strdup("0474"));
  visioneer = g_list_append (visioneer, g_strdup("0475"));
  visioneer = g_list_append (visioneer, g_strdup("0477"));
  visioneer = g_list_append (visioneer, g_strdup("0478"));
  visioneer = g_list_append (visioneer, g_strdup("0479"));
  visioneer = g_list_append (visioneer, g_strdup("047a"));
  visioneer = g_list_append (visioneer, g_strdup("047b"));
  visioneer = g_list_append (visioneer, g_strdup("047c"));
  visioneer = g_list_append (visioneer, g_strdup("048c"));
  visioneer = g_list_append (visioneer, g_strdup("048d"));
  visioneer = g_list_append (visioneer, g_strdup("048e"));
  visioneer = g_list_append (visioneer, g_strdup("048f"));
  visioneer = g_list_append (visioneer, g_strdup("0490"));
  visioneer = g_list_append (visioneer, g_strdup("0491"));
  visioneer = g_list_append (visioneer, g_strdup("0492"));
  visioneer = g_list_append (visioneer, g_strdup("0493"));
  visioneer = g_list_append (visioneer, g_strdup("0494"));
  visioneer = g_list_append (visioneer, g_strdup("0495"));
  visioneer = g_list_append (visioneer, g_strdup("0497"));
  visioneer = g_list_append (visioneer, g_strdup("0498"));
  visioneer = g_list_append (visioneer, g_strdup("0499"));
  visioneer = g_list_append (visioneer, g_strdup("049a"));
  visioneer = g_list_append (visioneer, g_strdup("049b"));
  visioneer = g_list_append (visioneer, g_strdup("049c"));
  visioneer = g_list_append (visioneer, g_strdup("049d"));
  visioneer = g_list_append (visioneer, g_strdup("04a7"));
  visioneer = g_list_append (visioneer, g_strdup("04ac"));
  g_hash_table_insert (scanners,
                       g_strdup("04a7"),
                       g_list_copy(visioneer));
  GList* canon = NULL;
  canon = g_list_append (canon, g_strdup("1601"));
  canon = g_list_append (canon, g_strdup("1602"));
  canon = g_list_append (canon, g_strdup("1603"));
  canon = g_list_append (canon, g_strdup("1604"));
  canon = g_list_append (canon, g_strdup("1606"));
  canon = g_list_append (canon, g_strdup("1607"));
  canon = g_list_append (canon, g_strdup("1608"));
  canon = g_list_append (canon, g_strdup("1609"));
  canon = g_list_append (canon, g_strdup("160a"));
  canon = g_list_append (canon, g_strdup("160b"));
  canon = g_list_append (canon, g_strdup("1706"));
  canon = g_list_append (canon, g_strdup("1707"));
  canon = g_list_append (canon, g_strdup("1708"));
  canon = g_list_append (canon, g_strdup("1709"));
  canon = g_list_append (canon, g_strdup("170a"));
  canon = g_list_append (canon, g_strdup("170b"));
  canon = g_list_append (canon, g_strdup("170c"));
  canon = g_list_append (canon, g_strdup("170d"));
  canon = g_list_append (canon, g_strdup("170e"));
  canon = g_list_append (canon, g_strdup("1712"));
  canon = g_list_append (canon, g_strdup("1713"));
  canon = g_list_append (canon, g_strdup("1714"));
  canon = g_list_append (canon, g_strdup("1715"));
  canon = g_list_append (canon, g_strdup("1716"));
  canon = g_list_append (canon, g_strdup("1717"));
  canon = g_list_append (canon, g_strdup("1718"));
  canon = g_list_append (canon, g_strdup("1719"));
  canon = g_list_append (canon, g_strdup("171a"));
  canon = g_list_append (canon, g_strdup("171b"));
  canon = g_list_append (canon, g_strdup("171c"));
  canon = g_list_append (canon, g_strdup("1721"));
  canon = g_list_append (canon, g_strdup("1722"));
  canon = g_list_append (canon, g_strdup("1723"));
  canon = g_list_append (canon, g_strdup("1724"));
  canon = g_list_append (canon, g_strdup("1725"));
  canon = g_list_append (canon, g_strdup("1726"));
  canon = g_list_append (canon, g_strdup("1727"));
  canon = g_list_append (canon, g_strdup("1728"));
  canon = g_list_append (canon, g_strdup("1729"));
  canon = g_list_append (canon, g_strdup("172b"));
  canon = g_list_append (canon, g_strdup("172c"));
  canon = g_list_append (canon, g_strdup("172d"));
  canon = g_list_append (canon, g_strdup("172e"));
  canon = g_list_append (canon, g_strdup("172f"));
  canon = g_list_append (canon, g_strdup("1730"));
  canon = g_list_append (canon, g_strdup("1731"));
  canon = g_list_append (canon, g_strdup("1732"));
  canon = g_list_append (canon, g_strdup("1733"));
  canon = g_list_append (canon, g_strdup("1734"));
  canon = g_list_append (canon, g_strdup("1735"));
  canon = g_list_append (canon, g_strdup("1736"));
  canon = g_list_append (canon, g_strdup("173a"));
  canon = g_list_append (canon, g_strdup("173b"));
  canon = g_list_append (canon, g_strdup("173c"));
  canon = g_list_append (canon, g_strdup("173d"));
  canon = g_list_append (canon, g_strdup("173e"));
  canon = g_list_append (canon, g_strdup("173f"));
  canon = g_list_append (canon, g_strdup("1740"));
  canon = g_list_append (canon, g_strdup("1741"));
  canon = g_list_append (canon, g_strdup("1742"));
  canon = g_list_append (canon, g_strdup("1901"));
  canon = g_list_append (canon, g_strdup("1904"));
  canon = g_list_append (canon, g_strdup("1905"));
  canon = g_list_append (canon, g_strdup("1909"));
  canon = g_list_append (canon, g_strdup("190a"));
  canon = g_list_append (canon, g_strdup("2204"));
  canon = g_list_append (canon, g_strdup("2206"));
  canon = g_list_append (canon, g_strdup("2207"));
  canon = g_list_append (canon, g_strdup("2208"));
  canon = g_list_append (canon, g_strdup("220d"));
  canon = g_list_append (canon, g_strdup("220e"));
  canon = g_list_append (canon, g_strdup("2213"));
  canon = g_list_append (canon, g_strdup("221c"));
  canon = g_list_append (canon, g_strdup("2220"));
  canon = g_list_append (canon, g_strdup("2222"));
  canon = g_list_append (canon, g_strdup("262f"));
  canon = g_list_append (canon, g_strdup("2630"));
  canon = g_list_append (canon, g_strdup("263c"));
  canon = g_list_append (canon, g_strdup("263d"));
  canon = g_list_append (canon, g_strdup("263e"));
  canon = g_list_append (canon, g_strdup("263f"));
  canon = g_list_append (canon, g_strdup("264c"));
  canon = g_list_append (canon, g_strdup("264d"));
  canon = g_list_append (canon, g_strdup("264e"));
  canon = g_list_append (canon, g_strdup("264f"));
  canon = g_list_append (canon, g_strdup("2659"));
  canon = g_list_append (canon, g_strdup("265d"));
  canon = g_list_append (canon, g_strdup("265e"));
  canon = g_list_append (canon, g_strdup("265f"));
  canon = g_list_append (canon, g_strdup("2660"));
  canon = g_list_append (canon, g_strdup("2684"));
  canon = g_list_append (canon, g_strdup("2686"));
  canon = g_list_append (canon, g_strdup("26a3"));
  canon = g_list_append (canon, g_strdup("26b0"));
  canon = g_list_append (canon, g_strdup("26b4"));
  canon = g_list_append (canon, g_strdup("26b5"));
  canon = g_list_append (canon, g_strdup("26ec"));
  canon = g_list_append (canon, g_strdup("26ed"));
  canon = g_list_append (canon, g_strdup("26ee"));
  g_hash_table_insert (scanners,
                       g_strdup("04a9"),
                       g_list_copy(canon));
  
  GList* nikon = NULL;
  nikon = g_list_append (nikon, g_strdup ("4000"));
  nikon = g_list_append (nikon, g_strdup ("4001"));
  nikon = g_list_append (nikon, g_strdup ("4002"));
  g_hash_table_insert (scanners,
                       g_strdup("04b0"),
                       g_list_copy(nikon));

  GList* epson = NULL;

  // for testing (its a printer not a scanner!)  
  //epson = g_list_append (epson, g_strdup ("0001"));
  
  epson = g_list_append (epson, g_strdup("0101"));
  epson = g_list_append (epson, g_strdup("0103"));
  epson = g_list_append (epson, g_strdup("0104"));
  epson = g_list_append (epson, g_strdup("0105"));
  epson = g_list_append (epson, g_strdup("0106"));
  epson = g_list_append (epson, g_strdup("0107"));
  epson = g_list_append (epson, g_strdup("0109"));
  epson = g_list_append (epson, g_strdup("010a"));
  epson = g_list_append (epson, g_strdup("010b"));
  epson = g_list_append (epson, g_strdup("010c"));
  epson = g_list_append (epson, g_strdup("010e"));
  epson = g_list_append (epson, g_strdup("010f"));
  epson = g_list_append (epson, g_strdup("0110"));
  epson = g_list_append (epson, g_strdup("0112"));
  epson = g_list_append (epson, g_strdup("0114"));
  epson = g_list_append (epson, g_strdup("011b"));
  epson = g_list_append (epson, g_strdup("011c"));
  epson = g_list_append (epson, g_strdup("011d"));
  epson = g_list_append (epson, g_strdup("011e"));
  epson = g_list_append (epson, g_strdup("011f"));
  epson = g_list_append (epson, g_strdup("0120"));
  epson = g_list_append (epson, g_strdup("0121"));
  epson = g_list_append (epson, g_strdup("0122"));
  epson = g_list_append (epson, g_strdup("0126"));
  epson = g_list_append (epson, g_strdup("0128"));
  epson = g_list_append (epson, g_strdup("0129"));
  epson = g_list_append (epson, g_strdup("012a"));
  epson = g_list_append (epson, g_strdup("012b"));
  epson = g_list_append (epson, g_strdup("012c"));
  epson = g_list_append (epson, g_strdup("0135"));
  epson = g_list_append (epson, g_strdup("0801"));
  epson = g_list_append (epson, g_strdup("0802"));
  epson = g_list_append (epson, g_strdup("0805"));
  epson = g_list_append (epson, g_strdup("0806"));
  epson = g_list_append (epson, g_strdup("0807"));
  epson = g_list_append (epson, g_strdup("0808"));
  epson = g_list_append (epson, g_strdup("080c"));
  epson = g_list_append (epson, g_strdup("080d"));
  epson = g_list_append (epson, g_strdup("080e"));
  epson = g_list_append (epson, g_strdup("080f"));
  epson = g_list_append (epson, g_strdup("0810"));
  epson = g_list_append (epson, g_strdup("0811"));
  epson = g_list_append (epson, g_strdup("0813"));
  epson = g_list_append (epson, g_strdup("0814"));
  epson = g_list_append (epson, g_strdup("0815"));
  epson = g_list_append (epson, g_strdup("0817"));
  epson = g_list_append (epson, g_strdup("0818"));
  epson = g_list_append (epson, g_strdup("0819"));
  epson = g_list_append (epson, g_strdup("081a"));
  epson = g_list_append (epson, g_strdup("081c"));
  epson = g_list_append (epson, g_strdup("081d"));
  epson = g_list_append (epson, g_strdup("081f"));
  epson = g_list_append (epson, g_strdup("0820"));
  epson = g_list_append (epson, g_strdup("0827"));
  epson = g_list_append (epson, g_strdup("0828"));
  epson = g_list_append (epson, g_strdup("0829"));
  epson = g_list_append (epson, g_strdup("082a"));
  epson = g_list_append (epson, g_strdup("082b"));
  epson = g_list_append (epson, g_strdup("082e"));
  epson = g_list_append (epson, g_strdup("082f"));
  epson = g_list_append (epson, g_strdup("0830"));
  epson = g_list_append (epson, g_strdup("0833"));
  epson = g_list_append (epson, g_strdup("0834"));
  epson = g_list_append (epson, g_strdup("0835"));
  epson = g_list_append (epson, g_strdup("0836"));
  epson = g_list_append (epson, g_strdup("0837"));
  epson = g_list_append (epson, g_strdup("0838"));
  epson = g_list_append (epson, g_strdup("0839"));
  epson = g_list_append (epson, g_strdup("083a"));
  epson = g_list_append (epson, g_strdup("083c"));
  epson = g_list_append (epson, g_strdup("0841"));
  epson = g_list_append (epson, g_strdup("0843"));
  epson = g_list_append (epson, g_strdup("0844"));
  epson = g_list_append (epson, g_strdup("0846"));
  epson = g_list_append (epson, g_strdup("0847"));
  epson = g_list_append (epson, g_strdup("0848"));
  epson = g_list_append (epson, g_strdup("0849"));
  epson = g_list_append (epson, g_strdup("084a"));
  epson = g_list_append (epson, g_strdup("084c"));
  epson = g_list_append (epson, g_strdup("084d"));
  epson = g_list_append (epson, g_strdup("084f"));
  epson = g_list_append (epson, g_strdup("0851"));
  epson = g_list_append (epson, g_strdup("0854"));
  epson = g_list_append (epson, g_strdup("0856"));
  g_hash_table_insert (scanners,
                       g_strdup("04b8"),
                       g_list_copy(epson));

  GList* fujitsu = NULL;
  fujitsu = g_list_append (fujitsu, g_strdup ("1029"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1041"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1042"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1078"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1095"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1096"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1097"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10ad"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10ae"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10af"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10c7"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10cf"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10e0"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10e1"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10e2"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10e6"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10e7"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10ef"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10f2"));
  fujitsu = g_list_append (fujitsu, g_strdup ("10fe"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1135"));
  fujitsu = g_list_append (fujitsu, g_strdup ("114a"));
  fujitsu = g_list_append (fujitsu, g_strdup ("114d"));
  fujitsu = g_list_append (fujitsu, g_strdup ("114e"));
  fujitsu = g_list_append (fujitsu, g_strdup ("114f"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1150"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1155"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1156"));
  fujitsu = g_list_append (fujitsu, g_strdup ("116f"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1174"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1175"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1176"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1177"));
  fujitsu = g_list_append (fujitsu, g_strdup ("1178"));
  fujitsu = g_list_append (fujitsu, g_strdup ("117f"));
  fujitsu = g_list_append (fujitsu, g_strdup ("119d"));
  fujitsu = g_list_append (fujitsu, g_strdup ("119e"));
  fujitsu = g_list_append (fujitsu, g_strdup ("119f"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11a0"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11a2"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11ed"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11ee"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11ef"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11f1"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11f2"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11f3"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11f4"));
  fujitsu = g_list_append (fujitsu, g_strdup ("11fc"));
  g_hash_table_insert (scanners,
                       g_strdup("04c5"),
                       g_list_copy(fujitsu));
  GList* konica = NULL;
  konica = g_list_append (konica, g_strdup ("0722"));
  g_hash_table_insert (scanners,
                       g_strdup("04c8"),
                       g_list_copy(konica));
  GList* panasonic = NULL;
  panasonic = g_list_append (panasonic, g_strdup ("1000"));
  panasonic = g_list_append (panasonic, g_strdup ("1001"));
  panasonic = g_list_append (panasonic, g_strdup ("1006"));
  panasonic = g_list_append (panasonic, g_strdup ("1007"));
  panasonic = g_list_append (panasonic, g_strdup ("1009"));
  panasonic = g_list_append (panasonic, g_strdup ("100a"));
  panasonic = g_list_append (panasonic, g_strdup ("100f"));
  panasonic = g_list_append (panasonic, g_strdup ("1010"));
  g_hash_table_insert (scanners,
                       g_strdup("04da"),
                       g_list_copy(panasonic));

  GList* samsung = NULL;
  
  samsung = g_list_append (samsung, g_strdup ("341b"));
  samsung = g_list_append (samsung, g_strdup ("341f"));
  samsung = g_list_append (samsung, g_strdup ("3426"));
  samsung = g_list_append (samsung, g_strdup ("342a"));
  samsung = g_list_append (samsung, g_strdup ("342b"));
  samsung = g_list_append (samsung, g_strdup ("342c"));
  samsung = g_list_append (samsung, g_strdup ("3433"));
  samsung = g_list_append (samsung, g_strdup ("3434"));
  samsung = g_list_append (samsung, g_strdup ("343c"));
  samsung = g_list_append (samsung, g_strdup ("3434"));
  g_hash_table_insert (scanners,
                       g_strdup("04e8"),
                       g_list_copy(samsung));
  
  GList* pentax = NULL;
  pentax = g_list_append (pentax, g_strdup ("2038"));
  g_hash_table_insert (scanners,
                       g_strdup("04f9"),
                       g_list_copy(pentax));

  GList* apitek = NULL;
  apitek = g_list_append (apitek, g_strdup ("0202"));
  g_hash_table_insert (scanners,
                       g_strdup("0553"),
                       g_list_copy(apitek));

  GList* mustek = NULL;
  mustek = g_list_append (mustek, g_strdup ("0001"));
  mustek = g_list_append (mustek, g_strdup ("0002"));
  mustek = g_list_append (mustek, g_strdup ("0006"));
  mustek = g_list_append (mustek, g_strdup ("0008"));
  mustek = g_list_append (mustek, g_strdup ("0010"));
  mustek = g_list_append (mustek, g_strdup ("0210"));
  mustek = g_list_append (mustek, g_strdup ("0218"));
  mustek = g_list_append (mustek, g_strdup ("0219"));
  mustek = g_list_append (mustek, g_strdup ("021a"));
  mustek = g_list_append (mustek, g_strdup ("021b"));
  mustek = g_list_append (mustek, g_strdup ("021c"));
  mustek = g_list_append (mustek, g_strdup ("021d"));
  mustek = g_list_append (mustek, g_strdup ("021e"));
  mustek = g_list_append (mustek, g_strdup ("021f"));
  mustek = g_list_append (mustek, g_strdup ("0409"));
  g_hash_table_insert (scanners,
                       g_strdup("055f"),
                       g_list_copy(mustek));
  GList* artec = NULL;
  artec = g_list_append (artec, g_strdup ("4002"));
  artec = g_list_append (artec, g_strdup ("4003"));
  artec = g_list_append (artec, g_strdup ("4004"));
  artec = g_list_append (artec, g_strdup ("4005"));
  artec = g_list_append (artec, g_strdup ("4006"));
  artec = g_list_append (artec, g_strdup ("4007"));
  artec = g_list_append (artec, g_strdup ("4009"));
  artec = g_list_append (artec, g_strdup ("4010"));
  artec = g_list_append (artec, g_strdup ("4011"));
  g_hash_table_insert (scanners,
                       g_strdup("05d8"),
                       g_list_copy(artec));
  
  GList* microtek = NULL;
  microtek = g_list_append (microtek, g_strdup ("0099"));
  microtek = g_list_append (microtek, g_strdup ("009a"));
  microtek = g_list_append (microtek, g_strdup ("00a3"));
  microtek = g_list_append (microtek, g_strdup ("00b6"));
  microtek = g_list_append (microtek, g_strdup ("30cf"));
  microtek = g_list_append (microtek, g_strdup ("30d4"));
  microtek = g_list_append (microtek, g_strdup ("40b3"));
  microtek = g_list_append (microtek, g_strdup ("40b8"));
  microtek = g_list_append (microtek, g_strdup ("40ca"));
  microtek = g_list_append (microtek, g_strdup ("40cb"));
  microtek = g_list_append (microtek, g_strdup ("40dd"));
  microtek = g_list_append (microtek, g_strdup ("40ff"));
  microtek = g_list_append (microtek, g_strdup ("80a3"));
  g_hash_table_insert (scanners,
                       g_strdup("05da"),
                       g_list_copy(microtek));
  
  GList* avision = NULL;
  avision = g_list_append (avision, g_strdup ("0268"));
  avision = g_list_append (avision, g_strdup ("026a"));
  avision = g_list_append (avision, g_strdup ("0a13"));
  avision = g_list_append (avision, g_strdup ("0a15"));
  avision = g_list_append (avision, g_strdup ("0a16"));
  avision = g_list_append (avision, g_strdup ("0a18"));
  avision = g_list_append (avision, g_strdup ("0a19"));
  avision = g_list_append (avision, g_strdup ("0a23"));
  avision = g_list_append (avision, g_strdup ("0a24"));
  avision = g_list_append (avision, g_strdup ("0a25"));
  avision = g_list_append (avision, g_strdup ("0a27"));
  avision = g_list_append (avision, g_strdup ("0a2a"));
  avision = g_list_append (avision, g_strdup ("0a2b"));
  avision = g_list_append (avision, g_strdup ("0a2c"));
  avision = g_list_append (avision, g_strdup ("0a2d"));
  avision = g_list_append (avision, g_strdup ("0a2e"));
  avision = g_list_append (avision, g_strdup ("0a2f"));
  avision = g_list_append (avision, g_strdup ("0a33"));
  avision = g_list_append (avision, g_strdup ("0a3a"));
  avision = g_list_append (avision, g_strdup ("0a3c"));
  avision = g_list_append (avision, g_strdup ("0a40"));
  avision = g_list_append (avision, g_strdup ("0a41"));
  avision = g_list_append (avision, g_strdup ("0a45"));
  avision = g_list_append (avision, g_strdup ("0a4d"));
  avision = g_list_append (avision, g_strdup ("0a4e"));
  avision = g_list_append (avision, g_strdup ("0a4f"));
  avision = g_list_append (avision, g_strdup ("0a5e"));
  avision = g_list_append (avision, g_strdup ("0a61"));
  avision = g_list_append (avision, g_strdup ("0a65"));
  avision = g_list_append (avision, g_strdup ("0a66"));
  avision = g_list_append (avision, g_strdup ("0a68"));
  avision = g_list_append (avision, g_strdup ("0a82"));
  avision = g_list_append (avision, g_strdup ("0a84"));
  avision = g_list_append (avision, g_strdup ("0a93"));
  avision = g_list_append (avision, g_strdup ("0a94"));
  avision = g_list_append (avision, g_strdup ("0aa1"));
  avision = g_list_append (avision, g_strdup ("1a35"));
  g_hash_table_insert (scanners,
                       g_strdup("0638"),
                       g_list_copy(avision));
  GList* minolta = NULL;
  minolta = g_list_append (minolta, g_strdup ("4004"));
  minolta = g_list_append (minolta, g_strdup ("400d"));
  minolta = g_list_append (minolta, g_strdup ("400e"));
  g_hash_table_insert (scanners,
                       g_strdup("0686"),
                       g_list_copy(minolta));

  GList* agfa = NULL;
  agfa = g_list_append (agfa, g_strdup ("0001"));
  agfa = g_list_append (agfa, g_strdup ("0002"));
  agfa = g_list_append (agfa, g_strdup ("0100"));
  agfa = g_list_append (agfa, g_strdup ("2061"));
  agfa = g_list_append (agfa, g_strdup ("208d"));
  agfa = g_list_append (agfa, g_strdup ("208f"));
  agfa = g_list_append (agfa, g_strdup ("2091"));
  agfa = g_list_append (agfa, g_strdup ("2093"));
  agfa = g_list_append (agfa, g_strdup ("2095"));
  agfa = g_list_append (agfa, g_strdup ("2097"));
  agfa = g_list_append (agfa, g_strdup ("20fd"));
  agfa = g_list_append (agfa, g_strdup ("20ff"));
  g_hash_table_insert (scanners,
                       g_strdup("06bd"),
                       g_list_copy(minolta));
  
  GList* umax_2 = NULL;
  umax_2 = g_list_append (umax_2, g_strdup ("0020"));
  g_hash_table_insert (scanners,
                       g_strdup("06dc"),
                       g_list_copy(umax_2));

  GList* plustek = NULL;
  
  plustek = g_list_append (plustek, g_strdup ("0001"));
  plustek = g_list_append (plustek, g_strdup ("0010"));
  plustek = g_list_append (plustek, g_strdup ("0011"));
  plustek = g_list_append (plustek, g_strdup ("0013"));
  plustek = g_list_append (plustek, g_strdup ("0015"));
  plustek = g_list_append (plustek, g_strdup ("0017"));
  plustek = g_list_append (plustek, g_strdup ("0400"));
  plustek = g_list_append (plustek, g_strdup ("0401"));
  plustek = g_list_append (plustek, g_strdup ("0402"));
  plustek = g_list_append (plustek, g_strdup ("0403"));
  plustek = g_list_append (plustek, g_strdup ("040b"));
  plustek = g_list_append (plustek, g_strdup ("040e"));
  plustek = g_list_append (plustek, g_strdup ("0412"));
  plustek = g_list_append (plustek, g_strdup ("0413"));
  plustek = g_list_append (plustek, g_strdup ("0422"));
  plustek = g_list_append (plustek, g_strdup ("0454"));
  plustek = g_list_append (plustek, g_strdup ("045f"));
  plustek = g_list_append (plustek, g_strdup ("0462"));
  plustek = g_list_append (plustek, g_strdup ("0900"));
  g_hash_table_insert (scanners,
                       g_strdup("07b3"),
                       g_list_copy(plustek));

  GList* corex = NULL;
  corex = g_list_append (corex, g_strdup ("0002"));
  corex = g_list_append (corex, g_strdup ("0005"));
  g_hash_table_insert (scanners,
                       g_strdup("08f0"),
                       g_list_copy(corex));
  
  GList* xerox = NULL;
  xerox = g_list_append (xerox, g_strdup ("3d5d"));
  xerox = g_list_append (xerox, g_strdup ("3da4"));
  xerox = g_list_append (xerox, g_strdup ("420c"));
  xerox = g_list_append (xerox, g_strdup ("4265"));
  xerox = g_list_append (xerox, g_strdup ("4293"));
  xerox = g_list_append (xerox, g_strdup ("4294"));
  g_hash_table_insert (scanners,
                       g_strdup("0924"),
                       g_list_copy(xerox));
  
  GList* pentax_2 = NULL;
  pentax_2 = g_list_append (pentax_2, g_strdup ("3210"));
  g_hash_table_insert (scanners,
                       g_strdup("0a17"),
                       g_list_copy(pentax_2));

  GList* portable = NULL;
  portable = g_list_append (portable, g_strdup ("1000"));
  g_hash_table_insert (scanners,
                       g_strdup("0a53"),
                       g_list_copy(portable));
  
  GList* syscan = NULL;
  syscan = g_list_append (syscan, g_strdup ("4600"));
  syscan = g_list_append (syscan, g_strdup ("4802"));
  syscan = g_list_append (syscan, g_strdup ("4803"));
  syscan = g_list_append (syscan, g_strdup ("480c"));
  syscan = g_list_append (syscan, g_strdup ("4810"));
  syscan = g_list_append (syscan, g_strdup ("6620"));
  g_hash_table_insert (scanners,
                       g_strdup("0a82"),
                       g_list_copy(syscan));
  
  GList* canon_2 = NULL;
  canon_2 = g_list_append (canon_2, g_strdup ("160c"));  
  canon_2 = g_list_append (canon_2, g_strdup ("160f"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1614"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1617"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1618"));  
  canon_2 = g_list_append (canon_2, g_strdup ("161a"));  
  canon_2 = g_list_append (canon_2, g_strdup ("161b"));  
  canon_2 = g_list_append (canon_2, g_strdup ("161d"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1620"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1622"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1623"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1624"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1626"));  
  canon_2 = g_list_append (canon_2, g_strdup ("162b"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1638"));  
  canon_2 = g_list_append (canon_2, g_strdup ("1639"));  
  g_hash_table_insert (scanners,
                       g_strdup("1083"),
                       g_list_copy(canon_2));
  
  GList* digital = NULL;
  digital = g_list_append (digital, g_strdup ("0001"));
  g_hash_table_insert (scanners,
                       g_strdup("1183"),
                       g_list_copy(digital));
  
  GList* konica_2 = NULL;
  konica_2 = g_list_append (konica_2, g_strdup ("2089"));
  g_hash_table_insert (scanners,
                       g_strdup("132b"),
                       g_list_copy(konica_2));
  
  GList* umax = NULL;
  umax = g_list_append (umax, g_strdup ("0010"));
  umax = g_list_append (umax, g_strdup ("0030"));
  umax = g_list_append (umax, g_strdup ("0050"));
  umax = g_list_append (umax, g_strdup ("0060"));
  umax = g_list_append (umax, g_strdup ("0070"));
  umax = g_list_append (umax, g_strdup ("0130"));
  umax = g_list_append (umax, g_strdup ("0160"));
  umax = g_list_append (umax, g_strdup ("0230"));
  g_hash_table_insert (scanners,
                       g_strdup("1606"),
                       g_list_copy(umax));

  GList* docketport = NULL;
  docketport = g_list_append (docketport, g_strdup ("4810"));  
  g_hash_table_insert (scanners,
                       g_strdup("1dcc"),
                       g_list_copy(docketport));

  GList* dell = NULL;
  dell = g_list_append (dell, g_strdup ("5105"));
  dell = g_list_append (dell, g_strdup ("5124"));
  dell = g_list_append (dell, g_strdup ("5250"));
  g_hash_table_insert (scanners,
                       g_strdup("413c"),
                       g_list_copy(dell));
}