MAXICODE: scmvv option #212; postcode needn't be space-filled

This commit is contained in:
gitlost 2020-12-19 17:13:35 +00:00
parent 0ef9fdf684
commit 2b85585e69
23 changed files with 1703 additions and 378 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

View file

@ -0,0 +1,376 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.9.1.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 74 72
%%EndComments
/TL { setlinewidth moveto lineto stroke } bind def
/TD { newpath 0 360 arc fill } bind def
/TH { 0 setlinewidth moveto lineto lineto lineto lineto lineto closepath fill } bind def
/TB { 2 copy } bind def
/TR { newpath 4 1 roll exch moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath fill } bind def
/TE { pop pop } bind def
newpath
1.00 1.00 1.00 setrgbcolor
72.00 0.00 TB 0.00 74.00 TR
TE
0.00 0.00 0.00 setrgbcolor
3.69 71.57 4.56 71.07 4.56 70.07 3.69 69.57 2.82 70.07 2.82 71.07 TH
6.15 71.57 7.02 71.07 7.02 70.07 6.15 69.57 5.28 70.07 5.28 71.07 TH
8.61 71.57 9.48 71.07 9.48 70.07 8.61 69.57 7.74 70.07 7.74 71.07 TH
11.07 71.57 11.94 71.07 11.94 70.07 11.07 69.57 10.20 70.07 10.20 71.07 TH
13.53 71.57 14.40 71.07 14.40 70.07 13.53 69.57 12.66 70.07 12.66 71.07 TH
18.45 71.57 19.32 71.07 19.32 70.07 18.45 69.57 17.58 70.07 17.58 71.07 TH
35.67 71.57 36.54 71.07 36.54 70.07 35.67 69.57 34.80 70.07 34.80 71.07 TH
50.43 71.57 51.30 71.07 51.30 70.07 50.43 69.57 49.56 70.07 49.56 71.07 TH
60.27 71.57 61.14 71.07 61.14 70.07 60.27 69.57 59.40 70.07 59.40 71.07 TH
67.65 71.57 68.52 71.07 68.52 70.07 67.65 69.57 66.78 70.07 66.78 71.07 TH
70.11 71.57 70.98 71.07 70.98 70.07 70.11 69.57 69.24 70.07 69.24 71.07 TH
72.57 71.57 73.44 71.07 73.44 70.07 72.57 69.57 71.70 70.07 71.70 71.07 TH
9.84 69.44 10.71 68.94 10.71 67.94 9.84 67.44 8.97 67.94 8.97 68.94 TH
29.52 69.44 30.39 68.94 30.39 67.94 29.52 67.44 28.65 67.94 28.65 68.94 TH
51.66 69.44 52.53 68.94 52.53 67.94 51.66 67.44 50.79 67.94 50.79 68.94 TH
56.58 69.44 57.45 68.94 57.45 67.94 56.58 67.44 55.71 67.94 55.71 68.94 TH
6.15 67.30 7.02 66.80 7.02 65.80 6.15 65.30 5.28 65.80 5.28 66.80 TH
11.07 67.30 11.94 66.80 11.94 65.80 11.07 65.30 10.20 65.80 10.20 66.80 TH
13.53 67.30 14.40 66.80 14.40 65.80 13.53 65.30 12.66 65.80 12.66 66.80 TH
20.91 67.30 21.78 66.80 21.78 65.80 20.91 65.30 20.04 65.80 20.04 66.80 TH
23.37 67.30 24.24 66.80 24.24 65.80 23.37 65.30 22.50 65.80 22.50 66.80 TH
30.75 67.30 31.62 66.80 31.62 65.80 30.75 65.30 29.88 65.80 29.88 66.80 TH
38.13 67.30 39.00 66.80 39.00 65.80 38.13 65.30 37.26 65.80 37.26 66.80 TH
40.59 67.30 41.46 66.80 41.46 65.80 40.59 65.30 39.72 65.80 39.72 66.80 TH
45.51 67.30 46.38 66.80 46.38 65.80 45.51 65.30 44.64 65.80 44.64 66.80 TH
47.97 67.30 48.84 66.80 48.84 65.80 47.97 65.30 47.10 65.80 47.10 66.80 TH
55.35 67.30 56.22 66.80 56.22 65.80 55.35 65.30 54.48 65.80 54.48 66.80 TH
62.73 67.30 63.60 66.80 63.60 65.80 62.73 65.30 61.86 65.80 61.86 66.80 TH
70.11 67.30 70.98 66.80 70.98 65.80 70.11 65.30 69.24 65.80 69.24 66.80 TH
2.46 65.17 3.33 64.67 3.33 63.67 2.46 63.17 1.59 63.67 1.59 64.67 TH
19.68 65.17 20.55 64.67 20.55 63.67 19.68 63.17 18.81 63.67 18.81 64.67 TH
29.52 65.17 30.39 64.67 30.39 63.67 29.52 63.17 28.65 63.67 28.65 64.67 TH
31.98 65.17 32.85 64.67 32.85 63.67 31.98 63.17 31.11 63.67 31.11 64.67 TH
41.82 65.17 42.69 64.67 42.69 63.67 41.82 63.17 40.95 63.67 40.95 64.67 TH
49.20 65.17 50.07 64.67 50.07 63.67 49.20 63.17 48.33 63.67 48.33 64.67 TH
6.15 63.03 7.02 62.53 7.02 61.53 6.15 61.03 5.28 61.53 5.28 62.53 TH
11.07 63.03 11.94 62.53 11.94 61.53 11.07 61.03 10.20 61.53 10.20 62.53 TH
13.53 63.03 14.40 62.53 14.40 61.53 13.53 61.03 12.66 61.53 12.66 62.53 TH
30.75 63.03 31.62 62.53 31.62 61.53 30.75 61.03 29.88 61.53 29.88 62.53 TH
35.67 63.03 36.54 62.53 36.54 61.53 35.67 61.03 34.80 61.53 34.80 62.53 TH
50.43 63.03 51.30 62.53 51.30 61.53 50.43 61.03 49.56 61.53 49.56 62.53 TH
55.35 63.03 56.22 62.53 56.22 61.53 55.35 61.03 54.48 61.53 54.48 62.53 TH
60.27 63.03 61.14 62.53 61.14 61.53 60.27 61.03 59.40 61.53 59.40 62.53 TH
62.73 63.03 63.60 62.53 63.60 61.53 62.73 61.03 61.86 61.53 61.86 62.53 TH
70.11 63.03 70.98 62.53 70.98 61.53 70.11 61.03 69.24 61.53 69.24 62.53 TH
72.57 63.03 73.44 62.53 73.44 61.53 72.57 61.03 71.70 61.53 71.70 62.53 TH
2.46 60.90 3.33 60.40 3.33 59.40 2.46 58.90 1.59 59.40 1.59 60.40 TH
4.92 60.90 5.79 60.40 5.79 59.40 4.92 58.90 4.05 59.40 4.05 60.40 TH
7.38 60.90 8.25 60.40 8.25 59.40 7.38 58.90 6.51 59.40 6.51 60.40 TH
12.30 60.90 13.17 60.40 13.17 59.40 12.30 58.90 11.43 59.40 11.43 60.40 TH
22.14 60.90 23.01 60.40 23.01 59.40 22.14 58.90 21.27 59.40 21.27 60.40 TH
36.90 60.90 37.77 60.40 37.77 59.40 36.90 58.90 36.03 59.40 36.03 60.40 TH
41.82 60.90 42.69 60.40 42.69 59.40 41.82 58.90 40.95 59.40 40.95 60.40 TH
44.28 60.90 45.15 60.40 45.15 59.40 44.28 58.90 43.41 59.40 43.41 60.40 TH
51.66 60.90 52.53 60.40 52.53 59.40 51.66 58.90 50.79 59.40 50.79 60.40 TH
61.50 60.90 62.37 60.40 62.37 59.40 61.50 58.90 60.63 59.40 60.63 60.40 TH
63.96 60.90 64.83 60.40 64.83 59.40 63.96 58.90 63.09 59.40 63.09 60.40 TH
66.42 60.90 67.29 60.40 67.29 59.40 66.42 58.90 65.55 59.40 65.55 60.40 TH
68.88 60.90 69.75 60.40 69.75 59.40 68.88 58.90 68.01 59.40 68.01 60.40 TH
1.23 58.77 2.10 58.27 2.10 57.27 1.23 56.77 0.36 57.27 0.36 58.27 TH
23.37 58.77 24.24 58.27 24.24 57.27 23.37 56.77 22.50 57.27 22.50 58.27 TH
25.83 58.77 26.70 58.27 26.70 57.27 25.83 56.77 24.96 57.27 24.96 58.27 TH
40.59 58.77 41.46 58.27 41.46 57.27 40.59 56.77 39.72 57.27 39.72 58.27 TH
47.97 58.77 48.84 58.27 48.84 57.27 47.97 56.77 47.10 57.27 47.10 58.27 TH
12.30 56.63 13.17 56.13 13.17 55.13 12.30 54.63 11.43 55.13 11.43 56.13 TH
17.22 56.63 18.09 56.13 18.09 55.13 17.22 54.63 16.35 55.13 16.35 56.13 TH
27.06 56.63 27.93 56.13 27.93 55.13 27.06 54.63 26.19 55.13 26.19 56.13 TH
34.44 56.63 35.31 56.13 35.31 55.13 34.44 54.63 33.57 55.13 33.57 56.13 TH
41.82 56.63 42.69 56.13 42.69 55.13 41.82 54.63 40.95 55.13 40.95 56.13 TH
51.66 56.63 52.53 56.13 52.53 55.13 51.66 54.63 50.79 55.13 50.79 56.13 TH
59.04 56.63 59.91 56.13 59.91 55.13 59.04 54.63 58.17 55.13 58.17 56.13 TH
61.50 56.63 62.37 56.13 62.37 55.13 61.50 54.63 60.63 55.13 60.63 56.13 TH
63.96 56.63 64.83 56.13 64.83 55.13 63.96 54.63 63.09 55.13 63.09 56.13 TH
66.42 56.63 67.29 56.13 67.29 55.13 66.42 54.63 65.55 55.13 65.55 56.13 TH
68.88 56.63 69.75 56.13 69.75 55.13 68.88 54.63 68.01 55.13 68.01 56.13 TH
1.23 54.50 2.10 54.00 2.10 53.00 1.23 52.50 0.36 53.00 0.36 54.00 TH
3.69 54.50 4.56 54.00 4.56 53.00 3.69 52.50 2.82 53.00 2.82 54.00 TH
6.15 54.50 7.02 54.00 7.02 53.00 6.15 52.50 5.28 53.00 5.28 54.00 TH
11.07 54.50 11.94 54.00 11.94 53.00 11.07 52.50 10.20 53.00 10.20 54.00 TH
13.53 54.50 14.40 54.00 14.40 53.00 13.53 52.50 12.66 53.00 12.66 54.00 TH
15.99 54.50 16.86 54.00 16.86 53.00 15.99 52.50 15.12 53.00 15.12 54.00 TH
35.67 54.50 36.54 54.00 36.54 53.00 35.67 52.50 34.80 53.00 34.80 54.00 TH
52.89 54.50 53.76 54.00 53.76 53.00 52.89 52.50 52.02 53.00 52.02 54.00 TH
55.35 54.50 56.22 54.00 56.22 53.00 55.35 52.50 54.48 53.00 54.48 54.00 TH
19.68 52.36 20.55 51.86 20.55 50.86 19.68 50.36 18.81 50.86 18.81 51.86 TH
22.14 52.36 23.01 51.86 23.01 50.86 22.14 50.36 21.27 50.86 21.27 51.86 TH
27.06 52.36 27.93 51.86 27.93 50.86 27.06 50.36 26.19 50.86 26.19 51.86 TH
29.52 52.36 30.39 51.86 30.39 50.86 29.52 50.36 28.65 50.86 28.65 51.86 TH
49.20 52.36 50.07 51.86 50.07 50.86 49.20 50.36 48.33 50.86 48.33 51.86 TH
54.12 52.36 54.99 51.86 54.99 50.86 54.12 50.36 53.25 50.86 53.25 51.86 TH
63.96 52.36 64.83 51.86 64.83 50.86 63.96 50.36 63.09 50.86 63.09 51.86 TH
66.42 52.36 67.29 51.86 67.29 50.86 66.42 50.36 65.55 50.86 65.55 51.86 TH
1.23 50.23 2.10 49.73 2.10 48.73 1.23 48.23 0.36 48.73 0.36 49.73 TH
6.15 50.23 7.02 49.73 7.02 48.73 6.15 48.23 5.28 48.73 5.28 49.73 TH
8.61 50.23 9.48 49.73 9.48 48.73 8.61 48.23 7.74 48.73 7.74 49.73 TH
11.07 50.23 11.94 49.73 11.94 48.73 11.07 48.23 10.20 48.73 10.20 49.73 TH
13.53 50.23 14.40 49.73 14.40 48.73 13.53 48.23 12.66 48.73 12.66 49.73 TH
28.29 50.23 29.16 49.73 29.16 48.73 28.29 48.23 27.42 48.73 27.42 49.73 TH
33.21 50.23 34.08 49.73 34.08 48.73 33.21 48.23 32.34 48.73 32.34 49.73 TH
38.13 50.23 39.00 49.73 39.00 48.73 38.13 48.23 37.26 48.73 37.26 49.73 TH
40.59 50.23 41.46 49.73 41.46 48.73 40.59 48.23 39.72 48.73 39.72 49.73 TH
50.43 50.23 51.30 49.73 51.30 48.73 50.43 48.23 49.56 48.73 49.56 49.73 TH
52.89 50.23 53.76 49.73 53.76 48.73 52.89 48.23 52.02 48.73 52.02 49.73 TH
70.11 50.23 70.98 49.73 70.98 48.73 70.11 48.23 69.24 48.73 69.24 49.73 TH
72.57 50.23 73.44 49.73 73.44 48.73 72.57 48.23 71.70 48.73 71.70 49.73 TH
7.38 48.10 8.25 47.60 8.25 46.60 7.38 46.10 6.51 46.60 6.51 47.60 TH
9.84 48.10 10.71 47.60 10.71 46.60 9.84 46.10 8.97 46.60 8.97 47.60 TH
12.30 48.10 13.17 47.60 13.17 46.60 12.30 46.10 11.43 46.60 11.43 47.60 TH
22.14 48.10 23.01 47.60 23.01 46.60 22.14 46.10 21.27 46.60 21.27 47.60 TH
27.06 48.10 27.93 47.60 27.93 46.60 27.06 46.10 26.19 46.60 26.19 47.60 TH
46.74 48.10 47.61 47.60 47.61 46.60 46.74 46.10 45.87 46.60 45.87 47.60 TH
49.20 48.10 50.07 47.60 50.07 46.60 49.20 46.10 48.33 46.60 48.33 47.60 TH
51.66 48.10 52.53 47.60 52.53 46.60 51.66 46.10 50.79 46.60 50.79 47.60 TH
56.58 48.10 57.45 47.60 57.45 46.60 56.58 46.10 55.71 46.60 55.71 47.60 TH
66.42 48.10 67.29 47.60 67.29 46.60 66.42 46.10 65.55 46.60 65.55 47.60 TH
68.88 48.10 69.75 47.60 69.75 46.60 68.88 46.10 68.01 46.60 68.01 47.60 TH
71.34 48.10 72.21 47.60 72.21 46.60 71.34 46.10 70.47 46.60 70.47 47.60 TH
8.61 45.96 9.48 45.46 9.48 44.46 8.61 43.96 7.74 44.46 7.74 45.46 TH
11.07 45.96 11.94 45.46 11.94 44.46 11.07 43.96 10.20 44.46 10.20 45.46 TH
13.53 45.96 14.40 45.46 14.40 44.46 13.53 43.96 12.66 44.46 12.66 45.46 TH
15.99 45.96 16.86 45.46 16.86 44.46 15.99 43.96 15.12 44.46 15.12 45.46 TH
45.51 45.96 46.38 45.46 46.38 44.46 45.51 43.96 44.64 44.46 44.64 45.46 TH
57.81 45.96 58.68 45.46 58.68 44.46 57.81 43.96 56.94 44.46 56.94 45.46 TH
62.73 45.96 63.60 45.46 63.60 44.46 62.73 43.96 61.86 44.46 61.86 45.46 TH
65.19 45.96 66.06 45.46 66.06 44.46 65.19 43.96 64.32 44.46 64.32 45.46 TH
2.46 43.83 3.33 43.33 3.33 42.33 2.46 41.83 1.59 42.33 1.59 43.33 TH
12.30 43.83 13.17 43.33 13.17 42.33 12.30 41.83 11.43 42.33 11.43 43.33 TH
54.12 43.83 54.99 43.33 54.99 42.33 54.12 41.83 53.25 42.33 53.25 43.33 TH
56.58 43.83 57.45 43.33 57.45 42.33 56.58 41.83 55.71 42.33 55.71 43.33 TH
59.04 43.83 59.91 43.33 59.91 42.33 59.04 41.83 58.17 42.33 58.17 43.33 TH
66.42 43.83 67.29 43.33 67.29 42.33 66.42 41.83 65.55 42.33 65.55 43.33 TH
1.23 41.69 2.10 41.19 2.10 40.19 1.23 39.69 0.36 40.19 0.36 41.19 TH
20.91 41.69 21.78 41.19 21.78 40.19 20.91 39.69 20.04 40.19 20.04 41.19 TH
47.97 41.69 48.84 41.19 48.84 40.19 47.97 39.69 47.10 40.19 47.10 41.19 TH
50.43 41.69 51.30 41.19 51.30 40.19 50.43 39.69 49.56 40.19 49.56 41.19 TH
65.19 41.69 66.06 41.19 66.06 40.19 65.19 39.69 64.32 40.19 64.32 41.19 TH
12.30 39.56 13.17 39.06 13.17 38.06 12.30 37.56 11.43 38.06 11.43 39.06 TH
17.22 39.56 18.09 39.06 18.09 38.06 17.22 37.56 16.35 38.06 16.35 39.06 TH
19.68 39.56 20.55 39.06 20.55 38.06 19.68 37.56 18.81 38.06 18.81 39.06 TH
22.14 39.56 23.01 39.06 23.01 38.06 22.14 37.56 21.27 38.06 21.27 39.06 TH
56.58 39.56 57.45 39.06 57.45 38.06 56.58 37.56 55.71 38.06 55.71 39.06 TH
71.34 39.56 72.21 39.06 72.21 38.06 71.34 37.56 70.47 38.06 70.47 39.06 TH
1.23 37.43 2.10 36.93 2.10 35.93 1.23 35.43 0.36 35.93 0.36 36.93 TH
3.69 37.43 4.56 36.93 4.56 35.93 3.69 35.43 2.82 35.93 2.82 36.93 TH
6.15 37.43 7.02 36.93 7.02 35.93 6.15 35.43 5.28 35.93 5.28 36.93 TH
20.91 37.43 21.78 36.93 21.78 35.93 20.91 35.43 20.04 35.93 20.04 36.93 TH
50.43 37.43 51.30 36.93 51.30 35.93 50.43 35.43 49.56 35.93 49.56 36.93 TH
65.19 37.43 66.06 36.93 66.06 35.93 65.19 35.43 64.32 35.93 64.32 36.93 TH
67.65 37.43 68.52 36.93 68.52 35.93 67.65 35.43 66.78 35.93 66.78 36.93 TH
72.57 37.43 73.44 36.93 73.44 35.93 72.57 35.43 71.70 35.93 71.70 36.93 TH
4.92 35.29 5.79 34.79 5.79 33.79 4.92 33.29 4.05 33.79 4.05 34.79 TH
7.38 35.29 8.25 34.79 8.25 33.79 7.38 33.29 6.51 33.79 6.51 34.79 TH
51.66 35.29 52.53 34.79 52.53 33.79 51.66 33.29 50.79 33.79 50.79 34.79 TH
61.50 35.29 62.37 34.79 62.37 33.79 61.50 33.29 60.63 33.79 60.63 34.79 TH
68.88 35.29 69.75 34.79 69.75 33.79 68.88 33.29 68.01 33.79 68.01 34.79 TH
15.99 33.16 16.86 32.66 16.86 31.66 15.99 31.16 15.12 31.66 15.12 32.66 TH
20.91 33.16 21.78 32.66 21.78 31.66 20.91 31.16 20.04 31.66 20.04 32.66 TH
23.37 33.16 24.24 32.66 24.24 31.66 23.37 31.16 22.50 31.66 22.50 32.66 TH
50.43 33.16 51.30 32.66 51.30 31.66 50.43 31.16 49.56 31.66 49.56 32.66 TH
57.81 33.16 58.68 32.66 58.68 31.66 57.81 31.16 56.94 31.66 56.94 32.66 TH
62.73 33.16 63.60 32.66 63.60 31.66 62.73 31.16 61.86 31.66 61.86 32.66 TH
72.57 33.16 73.44 32.66 73.44 31.66 72.57 31.16 71.70 31.66 71.70 32.66 TH
2.46 31.02 3.33 30.52 3.33 29.52 2.46 29.02 1.59 29.52 1.59 30.52 TH
7.38 31.02 8.25 30.52 8.25 29.52 7.38 29.02 6.51 29.52 6.51 30.52 TH
12.30 31.02 13.17 30.52 13.17 29.52 12.30 29.02 11.43 29.52 11.43 30.52 TH
22.14 31.02 23.01 30.52 23.01 29.52 22.14 29.02 21.27 29.52 21.27 30.52 TH
46.74 31.02 47.61 30.52 47.61 29.52 46.74 29.02 45.87 29.52 45.87 30.52 TH
54.12 31.02 54.99 30.52 54.99 29.52 54.12 29.02 53.25 29.52 53.25 30.52 TH
56.58 31.02 57.45 30.52 57.45 29.52 56.58 29.02 55.71 29.52 55.71 30.52 TH
59.04 31.02 59.91 30.52 59.91 29.52 59.04 29.02 58.17 29.52 58.17 30.52 TH
66.42 31.02 67.29 30.52 67.29 29.52 66.42 29.02 65.55 29.52 65.55 30.52 TH
68.88 31.02 69.75 30.52 69.75 29.52 68.88 29.02 68.01 29.52 68.01 30.52 TH
6.15 28.89 7.02 28.39 7.02 27.39 6.15 26.89 5.28 27.39 5.28 28.39 TH
18.45 28.89 19.32 28.39 19.32 27.39 18.45 26.89 17.58 27.39 17.58 28.39 TH
20.91 28.89 21.78 28.39 21.78 27.39 20.91 26.89 20.04 27.39 20.04 28.39 TH
47.97 28.89 48.84 28.39 48.84 27.39 47.97 26.89 47.10 27.39 47.10 28.39 TH
50.43 28.89 51.30 28.39 51.30 27.39 50.43 26.89 49.56 27.39 49.56 28.39 TH
52.89 28.89 53.76 28.39 53.76 27.39 52.89 26.89 52.02 27.39 52.02 28.39 TH
65.19 28.89 66.06 28.39 66.06 27.39 65.19 26.89 64.32 27.39 64.32 28.39 TH
70.11 28.89 70.98 28.39 70.98 27.39 70.11 26.89 69.24 27.39 69.24 28.39 TH
46.74 26.76 47.61 26.26 47.61 25.26 46.74 24.76 45.87 25.26 45.87 26.26 TH
49.20 26.76 50.07 26.26 50.07 25.26 49.20 24.76 48.33 25.26 48.33 26.26 TH
61.50 26.76 62.37 26.26 62.37 25.26 61.50 24.76 60.63 25.26 60.63 26.26 TH
1.23 24.62 2.10 24.12 2.10 23.12 1.23 22.62 0.36 23.12 0.36 24.12 TH
6.15 24.62 7.02 24.12 7.02 23.12 6.15 22.62 5.28 23.12 5.28 24.12 TH
11.07 24.62 11.94 24.12 11.94 23.12 11.07 22.62 10.20 23.12 10.20 24.12 TH
13.53 24.62 14.40 24.12 14.40 23.12 13.53 22.62 12.66 23.12 12.66 24.12 TH
20.91 24.62 21.78 24.12 21.78 23.12 20.91 22.62 20.04 23.12 20.04 24.12 TH
25.83 24.62 26.70 24.12 26.70 23.12 25.83 22.62 24.96 23.12 24.96 24.12 TH
30.75 24.62 31.62 24.12 31.62 23.12 30.75 22.62 29.88 23.12 29.88 24.12 TH
43.05 24.62 43.92 24.12 43.92 23.12 43.05 22.62 42.18 23.12 42.18 24.12 TH
52.89 24.62 53.76 24.12 53.76 23.12 52.89 22.62 52.02 23.12 52.02 24.12 TH
57.81 24.62 58.68 24.12 58.68 23.12 57.81 22.62 56.94 23.12 56.94 24.12 TH
62.73 24.62 63.60 24.12 63.60 23.12 62.73 22.62 61.86 23.12 61.86 24.12 TH
72.57 24.62 73.44 24.12 73.44 23.12 72.57 22.62 71.70 23.12 71.70 24.12 TH
2.46 22.49 3.33 21.99 3.33 20.99 2.46 20.49 1.59 20.99 1.59 21.99 TH
12.30 22.49 13.17 21.99 13.17 20.99 12.30 20.49 11.43 20.99 11.43 21.99 TH
14.76 22.49 15.63 21.99 15.63 20.99 14.76 20.49 13.89 20.99 13.89 21.99 TH
17.22 22.49 18.09 21.99 18.09 20.99 17.22 20.49 16.35 20.99 16.35 21.99 TH
19.68 22.49 20.55 21.99 20.55 20.99 19.68 20.49 18.81 20.99 18.81 21.99 TH
27.06 22.49 27.93 21.99 27.93 20.99 27.06 20.49 26.19 20.99 26.19 21.99 TH
31.98 22.49 32.85 21.99 32.85 20.99 31.98 20.49 31.11 20.99 31.11 21.99 TH
36.90 22.49 37.77 21.99 37.77 20.99 36.90 20.49 36.03 20.99 36.03 21.99 TH
44.28 22.49 45.15 21.99 45.15 20.99 44.28 20.49 43.41 20.99 43.41 21.99 TH
46.74 22.49 47.61 21.99 47.61 20.99 46.74 20.49 45.87 20.99 45.87 21.99 TH
51.66 22.49 52.53 21.99 52.53 20.99 51.66 20.49 50.79 20.99 50.79 21.99 TH
56.58 22.49 57.45 21.99 57.45 20.99 56.58 20.49 55.71 20.99 55.71 21.99 TH
66.42 22.49 67.29 21.99 67.29 20.99 66.42 20.49 65.55 20.99 65.55 21.99 TH
71.34 22.49 72.21 21.99 72.21 20.99 71.34 20.49 70.47 20.99 70.47 21.99 TH
3.69 20.35 4.56 19.85 4.56 18.85 3.69 18.35 2.82 18.85 2.82 19.85 TH
6.15 20.35 7.02 19.85 7.02 18.85 6.15 18.35 5.28 18.85 5.28 19.85 TH
11.07 20.35 11.94 19.85 11.94 18.85 11.07 18.35 10.20 18.85 10.20 19.85 TH
38.13 20.35 39.00 19.85 39.00 18.85 38.13 18.35 37.26 18.85 37.26 19.85 TH
43.05 20.35 43.92 19.85 43.92 18.85 43.05 18.35 42.18 18.85 42.18 19.85 TH
47.97 20.35 48.84 19.85 48.84 18.85 47.97 18.35 47.10 18.85 47.10 19.85 TH
50.43 20.35 51.30 19.85 51.30 18.85 50.43 18.35 49.56 18.85 49.56 19.85 TH
55.35 20.35 56.22 19.85 56.22 18.85 55.35 18.35 54.48 18.85 54.48 19.85 TH
62.73 20.35 63.60 19.85 63.60 18.85 62.73 18.35 61.86 18.85 61.86 19.85 TH
65.19 20.35 66.06 19.85 66.06 18.85 65.19 18.35 64.32 18.85 64.32 19.85 TH
67.65 20.35 68.52 19.85 68.52 18.85 67.65 18.35 66.78 18.85 66.78 19.85 TH
70.11 20.35 70.98 19.85 70.98 18.85 70.11 18.35 69.24 18.85 69.24 19.85 TH
72.57 20.35 73.44 19.85 73.44 18.85 72.57 18.35 71.70 18.85 71.70 19.85 TH
14.76 18.22 15.63 17.72 15.63 16.72 14.76 16.22 13.89 16.72 13.89 17.72 TH
17.22 18.22 18.09 17.72 18.09 16.72 17.22 16.22 16.35 16.72 16.35 17.72 TH
19.68 18.22 20.55 17.72 20.55 16.72 19.68 16.22 18.81 16.72 18.81 17.72 TH
27.06 18.22 27.93 17.72 27.93 16.72 27.06 16.22 26.19 16.72 26.19 17.72 TH
29.52 18.22 30.39 17.72 30.39 16.72 29.52 16.22 28.65 16.72 28.65 17.72 TH
31.98 18.22 32.85 17.72 32.85 16.72 31.98 16.22 31.11 16.72 31.11 17.72 TH
34.44 18.22 35.31 17.72 35.31 16.72 34.44 16.22 33.57 16.72 33.57 17.72 TH
36.90 18.22 37.77 17.72 37.77 16.72 36.90 16.22 36.03 16.72 36.03 17.72 TH
39.36 18.22 40.23 17.72 40.23 16.72 39.36 16.22 38.49 16.72 38.49 17.72 TH
41.82 18.22 42.69 17.72 42.69 16.72 41.82 16.22 40.95 16.72 40.95 17.72 TH
44.28 18.22 45.15 17.72 45.15 16.72 44.28 16.22 43.41 16.72 43.41 17.72 TH
46.74 18.22 47.61 17.72 47.61 16.72 46.74 16.22 45.87 16.72 45.87 17.72 TH
49.20 18.22 50.07 17.72 50.07 16.72 49.20 16.22 48.33 16.72 48.33 17.72 TH
51.66 18.22 52.53 17.72 52.53 16.72 51.66 16.22 50.79 16.72 50.79 17.72 TH
54.12 18.22 54.99 17.72 54.99 16.72 54.12 16.22 53.25 16.72 53.25 17.72 TH
63.96 18.22 64.83 17.72 64.83 16.72 63.96 16.22 63.09 16.72 63.09 17.72 TH
68.88 18.22 69.75 17.72 69.75 16.72 68.88 16.22 68.01 16.72 68.01 17.72 TH
6.15 16.09 7.02 15.59 7.02 14.59 6.15 14.09 5.28 14.59 5.28 15.59 TH
8.61 16.09 9.48 15.59 9.48 14.59 8.61 14.09 7.74 14.59 7.74 15.59 TH
11.07 16.09 11.94 15.59 11.94 14.59 11.07 14.09 10.20 14.59 10.20 15.59 TH
15.99 16.09 16.86 15.59 16.86 14.59 15.99 14.09 15.12 14.59 15.12 15.59 TH
23.37 16.09 24.24 15.59 24.24 14.59 23.37 14.09 22.50 14.59 22.50 15.59 TH
25.83 16.09 26.70 15.59 26.70 14.59 25.83 14.09 24.96 14.59 24.96 15.59 TH
28.29 16.09 29.16 15.59 29.16 14.59 28.29 14.09 27.42 14.59 27.42 15.59 TH
38.13 16.09 39.00 15.59 39.00 14.59 38.13 14.09 37.26 14.59 37.26 15.59 TH
43.05 16.09 43.92 15.59 43.92 14.59 43.05 14.09 42.18 14.59 42.18 15.59 TH
47.97 16.09 48.84 15.59 48.84 14.59 47.97 14.09 47.10 14.59 47.10 15.59 TH
50.43 16.09 51.30 15.59 51.30 14.59 50.43 14.09 49.56 14.59 49.56 15.59 TH
62.73 16.09 63.60 15.59 63.60 14.59 62.73 14.09 61.86 14.59 61.86 15.59 TH
65.19 16.09 66.06 15.59 66.06 14.59 65.19 14.09 64.32 14.59 64.32 15.59 TH
67.65 16.09 68.52 15.59 68.52 14.59 67.65 14.09 66.78 14.59 66.78 15.59 TH
2.46 13.95 3.33 13.45 3.33 12.45 2.46 11.95 1.59 12.45 1.59 13.45 TH
4.92 13.95 5.79 13.45 5.79 12.45 4.92 11.95 4.05 12.45 4.05 13.45 TH
9.84 13.95 10.71 13.45 10.71 12.45 9.84 11.95 8.97 12.45 8.97 13.45 TH
12.30 13.95 13.17 13.45 13.17 12.45 12.30 11.95 11.43 12.45 11.43 13.45 TH
14.76 13.95 15.63 13.45 15.63 12.45 14.76 11.95 13.89 12.45 13.89 13.45 TH
19.68 13.95 20.55 13.45 20.55 12.45 19.68 11.95 18.81 12.45 18.81 13.45 TH
22.14 13.95 23.01 13.45 23.01 12.45 22.14 11.95 21.27 12.45 21.27 13.45 TH
24.60 13.95 25.47 13.45 25.47 12.45 24.60 11.95 23.73 12.45 23.73 13.45 TH
31.98 13.95 32.85 13.45 32.85 12.45 31.98 11.95 31.11 12.45 31.11 13.45 TH
44.28 13.95 45.15 13.45 45.15 12.45 44.28 11.95 43.41 12.45 43.41 13.45 TH
46.74 13.95 47.61 13.45 47.61 12.45 46.74 11.95 45.87 12.45 45.87 13.45 TH
51.66 13.95 52.53 13.45 52.53 12.45 51.66 11.95 50.79 12.45 50.79 13.45 TH
59.04 13.95 59.91 13.45 59.91 12.45 59.04 11.95 58.17 12.45 58.17 13.45 TH
63.96 13.95 64.83 13.45 64.83 12.45 63.96 11.95 63.09 12.45 63.09 13.45 TH
68.88 13.95 69.75 13.45 69.75 12.45 68.88 11.95 68.01 12.45 68.01 13.45 TH
71.34 13.95 72.21 13.45 72.21 12.45 71.34 11.95 70.47 12.45 70.47 13.45 TH
13.53 11.82 14.40 11.32 14.40 10.32 13.53 9.82 12.66 10.32 12.66 11.32 TH
18.45 11.82 19.32 11.32 19.32 10.32 18.45 9.82 17.58 10.32 17.58 11.32 TH
20.91 11.82 21.78 11.32 21.78 10.32 20.91 9.82 20.04 10.32 20.04 11.32 TH
25.83 11.82 26.70 11.32 26.70 10.32 25.83 9.82 24.96 10.32 24.96 11.32 TH
28.29 11.82 29.16 11.32 29.16 10.32 28.29 9.82 27.42 10.32 27.42 11.32 TH
30.75 11.82 31.62 11.32 31.62 10.32 30.75 9.82 29.88 10.32 29.88 11.32 TH
35.67 11.82 36.54 11.32 36.54 10.32 35.67 9.82 34.80 10.32 34.80 11.32 TH
40.59 11.82 41.46 11.32 41.46 10.32 40.59 9.82 39.72 10.32 39.72 11.32 TH
47.97 11.82 48.84 11.32 48.84 10.32 47.97 9.82 47.10 10.32 47.10 11.32 TH
52.89 11.82 53.76 11.32 53.76 10.32 52.89 9.82 52.02 10.32 52.02 11.32 TH
55.35 11.82 56.22 11.32 56.22 10.32 55.35 9.82 54.48 10.32 54.48 11.32 TH
57.81 11.82 58.68 11.32 58.68 10.32 57.81 9.82 56.94 10.32 56.94 11.32 TH
65.19 11.82 66.06 11.32 66.06 10.32 65.19 9.82 64.32 10.32 64.32 11.32 TH
67.65 11.82 68.52 11.32 68.52 10.32 67.65 9.82 66.78 10.32 66.78 11.32 TH
2.46 9.68 3.33 9.18 3.33 8.18 2.46 7.68 1.59 8.18 1.59 9.18 TH
4.92 9.68 5.79 9.18 5.79 8.18 4.92 7.68 4.05 8.18 4.05 9.18 TH
7.38 9.68 8.25 9.18 8.25 8.18 7.38 7.68 6.51 8.18 6.51 9.18 TH
17.22 9.68 18.09 9.18 18.09 8.18 17.22 7.68 16.35 8.18 16.35 9.18 TH
19.68 9.68 20.55 9.18 20.55 8.18 19.68 7.68 18.81 8.18 18.81 9.18 TH
24.60 9.68 25.47 9.18 25.47 8.18 24.60 7.68 23.73 8.18 23.73 9.18 TH
27.06 9.68 27.93 9.18 27.93 8.18 27.06 7.68 26.19 8.18 26.19 9.18 TH
29.52 9.68 30.39 9.18 30.39 8.18 29.52 7.68 28.65 8.18 28.65 9.18 TH
31.98 9.68 32.85 9.18 32.85 8.18 31.98 7.68 31.11 8.18 31.11 9.18 TH
41.82 9.68 42.69 9.18 42.69 8.18 41.82 7.68 40.95 8.18 40.95 9.18 TH
51.66 9.68 52.53 9.18 52.53 8.18 51.66 7.68 50.79 8.18 50.79 9.18 TH
54.12 9.68 54.99 9.18 54.99 8.18 54.12 7.68 53.25 8.18 53.25 9.18 TH
56.58 9.68 57.45 9.18 57.45 8.18 56.58 7.68 55.71 8.18 55.71 9.18 TH
59.04 9.68 59.91 9.18 59.91 8.18 59.04 7.68 58.17 8.18 58.17 9.18 TH
63.96 9.68 64.83 9.18 64.83 8.18 63.96 7.68 63.09 8.18 63.09 9.18 TH
66.42 9.68 67.29 9.18 67.29 8.18 66.42 7.68 65.55 8.18 65.55 9.18 TH
68.88 9.68 69.75 9.18 69.75 8.18 68.88 7.68 68.01 8.18 68.01 9.18 TH
71.34 9.68 72.21 9.18 72.21 8.18 71.34 7.68 70.47 8.18 70.47 9.18 TH
1.23 7.55 2.10 7.05 2.10 6.05 1.23 5.55 0.36 6.05 0.36 7.05 TH
6.15 7.55 7.02 7.05 7.02 6.05 6.15 5.55 5.28 6.05 5.28 7.05 TH
8.61 7.55 9.48 7.05 9.48 6.05 8.61 5.55 7.74 6.05 7.74 7.05 TH
11.07 7.55 11.94 7.05 11.94 6.05 11.07 5.55 10.20 6.05 10.20 7.05 TH
13.53 7.55 14.40 7.05 14.40 6.05 13.53 5.55 12.66 6.05 12.66 7.05 TH
18.45 7.55 19.32 7.05 19.32 6.05 18.45 5.55 17.58 6.05 17.58 7.05 TH
23.37 7.55 24.24 7.05 24.24 6.05 23.37 5.55 22.50 6.05 22.50 7.05 TH
25.83 7.55 26.70 7.05 26.70 6.05 25.83 5.55 24.96 6.05 24.96 7.05 TH
28.29 7.55 29.16 7.05 29.16 6.05 28.29 5.55 27.42 6.05 27.42 7.05 TH
30.75 7.55 31.62 7.05 31.62 6.05 30.75 5.55 29.88 6.05 29.88 7.05 TH
33.21 7.55 34.08 7.05 34.08 6.05 33.21 5.55 32.34 6.05 32.34 7.05 TH
35.67 7.55 36.54 7.05 36.54 6.05 35.67 5.55 34.80 6.05 34.80 7.05 TH
47.97 7.55 48.84 7.05 48.84 6.05 47.97 5.55 47.10 6.05 47.10 7.05 TH
52.89 7.55 53.76 7.05 53.76 6.05 52.89 5.55 52.02 6.05 52.02 7.05 TH
55.35 7.55 56.22 7.05 56.22 6.05 55.35 5.55 54.48 6.05 54.48 7.05 TH
60.27 7.55 61.14 7.05 61.14 6.05 60.27 5.55 59.40 6.05 59.40 7.05 TH
62.73 7.55 63.60 7.05 63.60 6.05 62.73 5.55 61.86 6.05 61.86 7.05 TH
65.19 7.55 66.06 7.05 66.06 6.05 65.19 5.55 64.32 6.05 64.32 7.05 TH
72.57 7.55 73.44 7.05 73.44 6.05 72.57 5.55 71.70 6.05 71.70 7.05 TH
7.38 5.42 8.25 4.92 8.25 3.92 7.38 3.42 6.51 3.92 6.51 4.92 TH
14.76 5.42 15.63 4.92 15.63 3.92 14.76 3.42 13.89 3.92 13.89 4.92 TH
17.22 5.42 18.09 4.92 18.09 3.92 17.22 3.42 16.35 3.92 16.35 4.92 TH
22.14 5.42 23.01 4.92 23.01 3.92 22.14 3.42 21.27 3.92 21.27 4.92 TH
24.60 5.42 25.47 4.92 25.47 3.92 24.60 3.42 23.73 3.92 23.73 4.92 TH
27.06 5.42 27.93 4.92 27.93 3.92 27.06 3.42 26.19 3.92 26.19 4.92 TH
29.52 5.42 30.39 4.92 30.39 3.92 29.52 3.42 28.65 3.92 28.65 4.92 TH
31.98 5.42 32.85 4.92 32.85 3.92 31.98 3.42 31.11 3.92 31.11 4.92 TH
36.90 5.42 37.77 4.92 37.77 3.92 36.90 3.42 36.03 3.92 36.03 4.92 TH
39.36 5.42 40.23 4.92 40.23 3.92 39.36 3.42 38.49 3.92 38.49 4.92 TH
44.28 5.42 45.15 4.92 45.15 3.92 44.28 3.42 43.41 3.92 43.41 4.92 TH
46.74 5.42 47.61 4.92 47.61 3.92 46.74 3.42 45.87 3.92 45.87 4.92 TH
51.66 5.42 52.53 4.92 52.53 3.92 51.66 3.42 50.79 3.92 50.79 4.92 TH
56.58 5.42 57.45 4.92 57.45 3.92 56.58 3.42 55.71 3.92 55.71 4.92 TH
63.96 5.42 64.83 4.92 64.83 3.92 63.96 3.42 63.09 3.92 63.09 4.92 TH
66.42 5.42 67.29 4.92 67.29 3.92 66.42 3.42 65.55 3.92 65.55 4.92 TH
68.88 5.42 69.75 4.92 69.75 3.92 68.88 3.42 68.01 3.92 68.01 4.92 TH
6.15 3.28 7.02 2.78 7.02 1.78 6.15 1.28 5.28 1.78 5.28 2.78 TH
11.07 3.28 11.94 2.78 11.94 1.78 11.07 1.28 10.20 1.78 10.20 2.78 TH
13.53 3.28 14.40 2.78 14.40 1.78 13.53 1.28 12.66 1.78 12.66 2.78 TH
30.75 3.28 31.62 2.78 31.62 1.78 30.75 1.28 29.88 1.78 29.88 2.78 TH
33.21 3.28 34.08 2.78 34.08 1.78 33.21 1.28 32.34 1.78 32.34 2.78 TH
35.67 3.28 36.54 2.78 36.54 1.78 35.67 1.28 34.80 1.78 34.80 2.78 TH
38.13 3.28 39.00 2.78 39.00 1.78 38.13 1.28 37.26 1.78 37.26 2.78 TH
43.05 3.28 43.92 2.78 43.92 1.78 43.05 1.28 42.18 1.78 42.18 2.78 TH
45.51 3.28 46.38 2.78 46.38 1.78 45.51 1.28 44.64 1.78 44.64 2.78 TH
52.89 3.28 53.76 2.78 53.76 1.78 52.89 1.28 52.02 1.78 52.02 2.78 TH
65.19 3.28 66.06 2.78 66.06 1.78 65.19 1.28 64.32 1.78 64.32 2.78 TH
35.76 36.40 10.85 TD
1.00 1.00 1.00 setrgbcolor
35.76 36.40 8.97 TD
0.00 0.00 0.00 setrgbcolor
35.76 36.40 7.10 TD
1.00 1.00 1.00 setrgbcolor
35.76 36.40 5.22 TD
0.00 0.00 0.00 setrgbcolor
35.76 36.40 3.31 TD
1.00 1.00 1.00 setrgbcolor
35.76 36.40 1.43 TD

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -0,0 +1,366 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="74" height="72" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<desc>Zint Generated Symbol
</desc>
<g id="barcode" fill="#000000">
<rect x="0" y="0" width="74" height="72" fill="#FFFFFF" />
<path d="M 3.69 2.43 L 4.56 1.93 L 4.56 0.93 L 3.69 0.43 L 2.82 0.93 L 2.82 1.93 Z" />
<path d="M 6.15 2.43 L 7.02 1.93 L 7.02 0.93 L 6.15 0.43 L 5.28 0.93 L 5.28 1.93 Z" />
<path d="M 8.61 2.43 L 9.48 1.93 L 9.48 0.93 L 8.61 0.43 L 7.74 0.93 L 7.74 1.93 Z" />
<path d="M 11.07 2.43 L 11.94 1.93 L 11.94 0.93 L 11.07 0.43 L 10.20 0.93 L 10.20 1.93 Z" />
<path d="M 13.53 2.43 L 14.40 1.93 L 14.40 0.93 L 13.53 0.43 L 12.66 0.93 L 12.66 1.93 Z" />
<path d="M 18.45 2.43 L 19.32 1.93 L 19.32 0.93 L 18.45 0.43 L 17.58 0.93 L 17.58 1.93 Z" />
<path d="M 35.67 2.43 L 36.54 1.93 L 36.54 0.93 L 35.67 0.43 L 34.80 0.93 L 34.80 1.93 Z" />
<path d="M 50.43 2.43 L 51.30 1.93 L 51.30 0.93 L 50.43 0.43 L 49.56 0.93 L 49.56 1.93 Z" />
<path d="M 60.27 2.43 L 61.14 1.93 L 61.14 0.93 L 60.27 0.43 L 59.40 0.93 L 59.40 1.93 Z" />
<path d="M 67.65 2.43 L 68.52 1.93 L 68.52 0.93 L 67.65 0.43 L 66.78 0.93 L 66.78 1.93 Z" />
<path d="M 70.11 2.43 L 70.98 1.93 L 70.98 0.93 L 70.11 0.43 L 69.24 0.93 L 69.24 1.93 Z" />
<path d="M 72.57 2.43 L 73.44 1.93 L 73.44 0.93 L 72.57 0.43 L 71.70 0.93 L 71.70 1.93 Z" />
<path d="M 9.84 4.56 L 10.71 4.06 L 10.71 3.06 L 9.84 2.56 L 8.97 3.06 L 8.97 4.06 Z" />
<path d="M 29.52 4.56 L 30.39 4.06 L 30.39 3.06 L 29.52 2.56 L 28.65 3.06 L 28.65 4.06 Z" />
<path d="M 51.66 4.56 L 52.53 4.06 L 52.53 3.06 L 51.66 2.56 L 50.79 3.06 L 50.79 4.06 Z" />
<path d="M 56.58 4.56 L 57.45 4.06 L 57.45 3.06 L 56.58 2.56 L 55.71 3.06 L 55.71 4.06 Z" />
<path d="M 6.15 6.70 L 7.02 6.20 L 7.02 5.20 L 6.15 4.70 L 5.28 5.20 L 5.28 6.20 Z" />
<path d="M 11.07 6.70 L 11.94 6.20 L 11.94 5.20 L 11.07 4.70 L 10.20 5.20 L 10.20 6.20 Z" />
<path d="M 13.53 6.70 L 14.40 6.20 L 14.40 5.20 L 13.53 4.70 L 12.66 5.20 L 12.66 6.20 Z" />
<path d="M 20.91 6.70 L 21.78 6.20 L 21.78 5.20 L 20.91 4.70 L 20.04 5.20 L 20.04 6.20 Z" />
<path d="M 23.37 6.70 L 24.24 6.20 L 24.24 5.20 L 23.37 4.70 L 22.50 5.20 L 22.50 6.20 Z" />
<path d="M 30.75 6.70 L 31.62 6.20 L 31.62 5.20 L 30.75 4.70 L 29.88 5.20 L 29.88 6.20 Z" />
<path d="M 38.13 6.70 L 39.00 6.20 L 39.00 5.20 L 38.13 4.70 L 37.26 5.20 L 37.26 6.20 Z" />
<path d="M 40.59 6.70 L 41.46 6.20 L 41.46 5.20 L 40.59 4.70 L 39.72 5.20 L 39.72 6.20 Z" />
<path d="M 45.51 6.70 L 46.38 6.20 L 46.38 5.20 L 45.51 4.70 L 44.64 5.20 L 44.64 6.20 Z" />
<path d="M 47.97 6.70 L 48.84 6.20 L 48.84 5.20 L 47.97 4.70 L 47.10 5.20 L 47.10 6.20 Z" />
<path d="M 55.35 6.70 L 56.22 6.20 L 56.22 5.20 L 55.35 4.70 L 54.48 5.20 L 54.48 6.20 Z" />
<path d="M 62.73 6.70 L 63.60 6.20 L 63.60 5.20 L 62.73 4.70 L 61.86 5.20 L 61.86 6.20 Z" />
<path d="M 70.11 6.70 L 70.98 6.20 L 70.98 5.20 L 70.11 4.70 L 69.24 5.20 L 69.24 6.20 Z" />
<path d="M 2.46 8.83 L 3.33 8.33 L 3.33 7.33 L 2.46 6.83 L 1.59 7.33 L 1.59 8.33 Z" />
<path d="M 19.68 8.83 L 20.55 8.33 L 20.55 7.33 L 19.68 6.83 L 18.81 7.33 L 18.81 8.33 Z" />
<path d="M 29.52 8.83 L 30.39 8.33 L 30.39 7.33 L 29.52 6.83 L 28.65 7.33 L 28.65 8.33 Z" />
<path d="M 31.98 8.83 L 32.85 8.33 L 32.85 7.33 L 31.98 6.83 L 31.11 7.33 L 31.11 8.33 Z" />
<path d="M 41.82 8.83 L 42.69 8.33 L 42.69 7.33 L 41.82 6.83 L 40.95 7.33 L 40.95 8.33 Z" />
<path d="M 49.20 8.83 L 50.07 8.33 L 50.07 7.33 L 49.20 6.83 L 48.33 7.33 L 48.33 8.33 Z" />
<path d="M 6.15 10.97 L 7.02 10.47 L 7.02 9.47 L 6.15 8.97 L 5.28 9.47 L 5.28 10.47 Z" />
<path d="M 11.07 10.97 L 11.94 10.47 L 11.94 9.47 L 11.07 8.97 L 10.20 9.47 L 10.20 10.47 Z" />
<path d="M 13.53 10.97 L 14.40 10.47 L 14.40 9.47 L 13.53 8.97 L 12.66 9.47 L 12.66 10.47 Z" />
<path d="M 30.75 10.97 L 31.62 10.47 L 31.62 9.47 L 30.75 8.97 L 29.88 9.47 L 29.88 10.47 Z" />
<path d="M 35.67 10.97 L 36.54 10.47 L 36.54 9.47 L 35.67 8.97 L 34.80 9.47 L 34.80 10.47 Z" />
<path d="M 50.43 10.97 L 51.30 10.47 L 51.30 9.47 L 50.43 8.97 L 49.56 9.47 L 49.56 10.47 Z" />
<path d="M 55.35 10.97 L 56.22 10.47 L 56.22 9.47 L 55.35 8.97 L 54.48 9.47 L 54.48 10.47 Z" />
<path d="M 60.27 10.97 L 61.14 10.47 L 61.14 9.47 L 60.27 8.97 L 59.40 9.47 L 59.40 10.47 Z" />
<path d="M 62.73 10.97 L 63.60 10.47 L 63.60 9.47 L 62.73 8.97 L 61.86 9.47 L 61.86 10.47 Z" />
<path d="M 70.11 10.97 L 70.98 10.47 L 70.98 9.47 L 70.11 8.97 L 69.24 9.47 L 69.24 10.47 Z" />
<path d="M 72.57 10.97 L 73.44 10.47 L 73.44 9.47 L 72.57 8.97 L 71.70 9.47 L 71.70 10.47 Z" />
<path d="M 2.46 13.10 L 3.33 12.60 L 3.33 11.60 L 2.46 11.10 L 1.59 11.60 L 1.59 12.60 Z" />
<path d="M 4.92 13.10 L 5.79 12.60 L 5.79 11.60 L 4.92 11.10 L 4.05 11.60 L 4.05 12.60 Z" />
<path d="M 7.38 13.10 L 8.25 12.60 L 8.25 11.60 L 7.38 11.10 L 6.51 11.60 L 6.51 12.60 Z" />
<path d="M 12.30 13.10 L 13.17 12.60 L 13.17 11.60 L 12.30 11.10 L 11.43 11.60 L 11.43 12.60 Z" />
<path d="M 22.14 13.10 L 23.01 12.60 L 23.01 11.60 L 22.14 11.10 L 21.27 11.60 L 21.27 12.60 Z" />
<path d="M 36.90 13.10 L 37.77 12.60 L 37.77 11.60 L 36.90 11.10 L 36.03 11.60 L 36.03 12.60 Z" />
<path d="M 41.82 13.10 L 42.69 12.60 L 42.69 11.60 L 41.82 11.10 L 40.95 11.60 L 40.95 12.60 Z" />
<path d="M 44.28 13.10 L 45.15 12.60 L 45.15 11.60 L 44.28 11.10 L 43.41 11.60 L 43.41 12.60 Z" />
<path d="M 51.66 13.10 L 52.53 12.60 L 52.53 11.60 L 51.66 11.10 L 50.79 11.60 L 50.79 12.60 Z" />
<path d="M 61.50 13.10 L 62.37 12.60 L 62.37 11.60 L 61.50 11.10 L 60.63 11.60 L 60.63 12.60 Z" />
<path d="M 63.96 13.10 L 64.83 12.60 L 64.83 11.60 L 63.96 11.10 L 63.09 11.60 L 63.09 12.60 Z" />
<path d="M 66.42 13.10 L 67.29 12.60 L 67.29 11.60 L 66.42 11.10 L 65.55 11.60 L 65.55 12.60 Z" />
<path d="M 68.88 13.10 L 69.75 12.60 L 69.75 11.60 L 68.88 11.10 L 68.01 11.60 L 68.01 12.60 Z" />
<path d="M 1.23 15.23 L 2.10 14.73 L 2.10 13.73 L 1.23 13.23 L 0.36 13.73 L 0.36 14.73 Z" />
<path d="M 23.37 15.23 L 24.24 14.73 L 24.24 13.73 L 23.37 13.23 L 22.50 13.73 L 22.50 14.73 Z" />
<path d="M 25.83 15.23 L 26.70 14.73 L 26.70 13.73 L 25.83 13.23 L 24.96 13.73 L 24.96 14.73 Z" />
<path d="M 40.59 15.23 L 41.46 14.73 L 41.46 13.73 L 40.59 13.23 L 39.72 13.73 L 39.72 14.73 Z" />
<path d="M 47.97 15.23 L 48.84 14.73 L 48.84 13.73 L 47.97 13.23 L 47.10 13.73 L 47.10 14.73 Z" />
<path d="M 12.30 17.37 L 13.17 16.87 L 13.17 15.87 L 12.30 15.37 L 11.43 15.87 L 11.43 16.87 Z" />
<path d="M 17.22 17.37 L 18.09 16.87 L 18.09 15.87 L 17.22 15.37 L 16.35 15.87 L 16.35 16.87 Z" />
<path d="M 27.06 17.37 L 27.93 16.87 L 27.93 15.87 L 27.06 15.37 L 26.19 15.87 L 26.19 16.87 Z" />
<path d="M 34.44 17.37 L 35.31 16.87 L 35.31 15.87 L 34.44 15.37 L 33.57 15.87 L 33.57 16.87 Z" />
<path d="M 41.82 17.37 L 42.69 16.87 L 42.69 15.87 L 41.82 15.37 L 40.95 15.87 L 40.95 16.87 Z" />
<path d="M 51.66 17.37 L 52.53 16.87 L 52.53 15.87 L 51.66 15.37 L 50.79 15.87 L 50.79 16.87 Z" />
<path d="M 59.04 17.37 L 59.91 16.87 L 59.91 15.87 L 59.04 15.37 L 58.17 15.87 L 58.17 16.87 Z" />
<path d="M 61.50 17.37 L 62.37 16.87 L 62.37 15.87 L 61.50 15.37 L 60.63 15.87 L 60.63 16.87 Z" />
<path d="M 63.96 17.37 L 64.83 16.87 L 64.83 15.87 L 63.96 15.37 L 63.09 15.87 L 63.09 16.87 Z" />
<path d="M 66.42 17.37 L 67.29 16.87 L 67.29 15.87 L 66.42 15.37 L 65.55 15.87 L 65.55 16.87 Z" />
<path d="M 68.88 17.37 L 69.75 16.87 L 69.75 15.87 L 68.88 15.37 L 68.01 15.87 L 68.01 16.87 Z" />
<path d="M 1.23 19.50 L 2.10 19.00 L 2.10 18.00 L 1.23 17.50 L 0.36 18.00 L 0.36 19.00 Z" />
<path d="M 3.69 19.50 L 4.56 19.00 L 4.56 18.00 L 3.69 17.50 L 2.82 18.00 L 2.82 19.00 Z" />
<path d="M 6.15 19.50 L 7.02 19.00 L 7.02 18.00 L 6.15 17.50 L 5.28 18.00 L 5.28 19.00 Z" />
<path d="M 11.07 19.50 L 11.94 19.00 L 11.94 18.00 L 11.07 17.50 L 10.20 18.00 L 10.20 19.00 Z" />
<path d="M 13.53 19.50 L 14.40 19.00 L 14.40 18.00 L 13.53 17.50 L 12.66 18.00 L 12.66 19.00 Z" />
<path d="M 15.99 19.50 L 16.86 19.00 L 16.86 18.00 L 15.99 17.50 L 15.12 18.00 L 15.12 19.00 Z" />
<path d="M 35.67 19.50 L 36.54 19.00 L 36.54 18.00 L 35.67 17.50 L 34.80 18.00 L 34.80 19.00 Z" />
<path d="M 52.89 19.50 L 53.76 19.00 L 53.76 18.00 L 52.89 17.50 L 52.02 18.00 L 52.02 19.00 Z" />
<path d="M 55.35 19.50 L 56.22 19.00 L 56.22 18.00 L 55.35 17.50 L 54.48 18.00 L 54.48 19.00 Z" />
<path d="M 19.68 21.64 L 20.55 21.14 L 20.55 20.14 L 19.68 19.64 L 18.81 20.14 L 18.81 21.14 Z" />
<path d="M 22.14 21.64 L 23.01 21.14 L 23.01 20.14 L 22.14 19.64 L 21.27 20.14 L 21.27 21.14 Z" />
<path d="M 27.06 21.64 L 27.93 21.14 L 27.93 20.14 L 27.06 19.64 L 26.19 20.14 L 26.19 21.14 Z" />
<path d="M 29.52 21.64 L 30.39 21.14 L 30.39 20.14 L 29.52 19.64 L 28.65 20.14 L 28.65 21.14 Z" />
<path d="M 49.20 21.64 L 50.07 21.14 L 50.07 20.14 L 49.20 19.64 L 48.33 20.14 L 48.33 21.14 Z" />
<path d="M 54.12 21.64 L 54.99 21.14 L 54.99 20.14 L 54.12 19.64 L 53.25 20.14 L 53.25 21.14 Z" />
<path d="M 63.96 21.64 L 64.83 21.14 L 64.83 20.14 L 63.96 19.64 L 63.09 20.14 L 63.09 21.14 Z" />
<path d="M 66.42 21.64 L 67.29 21.14 L 67.29 20.14 L 66.42 19.64 L 65.55 20.14 L 65.55 21.14 Z" />
<path d="M 1.23 23.77 L 2.10 23.27 L 2.10 22.27 L 1.23 21.77 L 0.36 22.27 L 0.36 23.27 Z" />
<path d="M 6.15 23.77 L 7.02 23.27 L 7.02 22.27 L 6.15 21.77 L 5.28 22.27 L 5.28 23.27 Z" />
<path d="M 8.61 23.77 L 9.48 23.27 L 9.48 22.27 L 8.61 21.77 L 7.74 22.27 L 7.74 23.27 Z" />
<path d="M 11.07 23.77 L 11.94 23.27 L 11.94 22.27 L 11.07 21.77 L 10.20 22.27 L 10.20 23.27 Z" />
<path d="M 13.53 23.77 L 14.40 23.27 L 14.40 22.27 L 13.53 21.77 L 12.66 22.27 L 12.66 23.27 Z" />
<path d="M 28.29 23.77 L 29.16 23.27 L 29.16 22.27 L 28.29 21.77 L 27.42 22.27 L 27.42 23.27 Z" />
<path d="M 33.21 23.77 L 34.08 23.27 L 34.08 22.27 L 33.21 21.77 L 32.34 22.27 L 32.34 23.27 Z" />
<path d="M 38.13 23.77 L 39.00 23.27 L 39.00 22.27 L 38.13 21.77 L 37.26 22.27 L 37.26 23.27 Z" />
<path d="M 40.59 23.77 L 41.46 23.27 L 41.46 22.27 L 40.59 21.77 L 39.72 22.27 L 39.72 23.27 Z" />
<path d="M 50.43 23.77 L 51.30 23.27 L 51.30 22.27 L 50.43 21.77 L 49.56 22.27 L 49.56 23.27 Z" />
<path d="M 52.89 23.77 L 53.76 23.27 L 53.76 22.27 L 52.89 21.77 L 52.02 22.27 L 52.02 23.27 Z" />
<path d="M 70.11 23.77 L 70.98 23.27 L 70.98 22.27 L 70.11 21.77 L 69.24 22.27 L 69.24 23.27 Z" />
<path d="M 72.57 23.77 L 73.44 23.27 L 73.44 22.27 L 72.57 21.77 L 71.70 22.27 L 71.70 23.27 Z" />
<path d="M 7.38 25.90 L 8.25 25.40 L 8.25 24.40 L 7.38 23.90 L 6.51 24.40 L 6.51 25.40 Z" />
<path d="M 9.84 25.90 L 10.71 25.40 L 10.71 24.40 L 9.84 23.90 L 8.97 24.40 L 8.97 25.40 Z" />
<path d="M 12.30 25.90 L 13.17 25.40 L 13.17 24.40 L 12.30 23.90 L 11.43 24.40 L 11.43 25.40 Z" />
<path d="M 22.14 25.90 L 23.01 25.40 L 23.01 24.40 L 22.14 23.90 L 21.27 24.40 L 21.27 25.40 Z" />
<path d="M 27.06 25.90 L 27.93 25.40 L 27.93 24.40 L 27.06 23.90 L 26.19 24.40 L 26.19 25.40 Z" />
<path d="M 46.74 25.90 L 47.61 25.40 L 47.61 24.40 L 46.74 23.90 L 45.87 24.40 L 45.87 25.40 Z" />
<path d="M 49.20 25.90 L 50.07 25.40 L 50.07 24.40 L 49.20 23.90 L 48.33 24.40 L 48.33 25.40 Z" />
<path d="M 51.66 25.90 L 52.53 25.40 L 52.53 24.40 L 51.66 23.90 L 50.79 24.40 L 50.79 25.40 Z" />
<path d="M 56.58 25.90 L 57.45 25.40 L 57.45 24.40 L 56.58 23.90 L 55.71 24.40 L 55.71 25.40 Z" />
<path d="M 66.42 25.90 L 67.29 25.40 L 67.29 24.40 L 66.42 23.90 L 65.55 24.40 L 65.55 25.40 Z" />
<path d="M 68.88 25.90 L 69.75 25.40 L 69.75 24.40 L 68.88 23.90 L 68.01 24.40 L 68.01 25.40 Z" />
<path d="M 71.34 25.90 L 72.21 25.40 L 72.21 24.40 L 71.34 23.90 L 70.47 24.40 L 70.47 25.40 Z" />
<path d="M 8.61 28.04 L 9.48 27.54 L 9.48 26.54 L 8.61 26.04 L 7.74 26.54 L 7.74 27.54 Z" />
<path d="M 11.07 28.04 L 11.94 27.54 L 11.94 26.54 L 11.07 26.04 L 10.20 26.54 L 10.20 27.54 Z" />
<path d="M 13.53 28.04 L 14.40 27.54 L 14.40 26.54 L 13.53 26.04 L 12.66 26.54 L 12.66 27.54 Z" />
<path d="M 15.99 28.04 L 16.86 27.54 L 16.86 26.54 L 15.99 26.04 L 15.12 26.54 L 15.12 27.54 Z" />
<path d="M 45.51 28.04 L 46.38 27.54 L 46.38 26.54 L 45.51 26.04 L 44.64 26.54 L 44.64 27.54 Z" />
<path d="M 57.81 28.04 L 58.68 27.54 L 58.68 26.54 L 57.81 26.04 L 56.94 26.54 L 56.94 27.54 Z" />
<path d="M 62.73 28.04 L 63.60 27.54 L 63.60 26.54 L 62.73 26.04 L 61.86 26.54 L 61.86 27.54 Z" />
<path d="M 65.19 28.04 L 66.06 27.54 L 66.06 26.54 L 65.19 26.04 L 64.32 26.54 L 64.32 27.54 Z" />
<path d="M 2.46 30.17 L 3.33 29.67 L 3.33 28.67 L 2.46 28.17 L 1.59 28.67 L 1.59 29.67 Z" />
<path d="M 12.30 30.17 L 13.17 29.67 L 13.17 28.67 L 12.30 28.17 L 11.43 28.67 L 11.43 29.67 Z" />
<path d="M 54.12 30.17 L 54.99 29.67 L 54.99 28.67 L 54.12 28.17 L 53.25 28.67 L 53.25 29.67 Z" />
<path d="M 56.58 30.17 L 57.45 29.67 L 57.45 28.67 L 56.58 28.17 L 55.71 28.67 L 55.71 29.67 Z" />
<path d="M 59.04 30.17 L 59.91 29.67 L 59.91 28.67 L 59.04 28.17 L 58.17 28.67 L 58.17 29.67 Z" />
<path d="M 66.42 30.17 L 67.29 29.67 L 67.29 28.67 L 66.42 28.17 L 65.55 28.67 L 65.55 29.67 Z" />
<path d="M 1.23 32.31 L 2.10 31.81 L 2.10 30.81 L 1.23 30.31 L 0.36 30.81 L 0.36 31.81 Z" />
<path d="M 20.91 32.31 L 21.78 31.81 L 21.78 30.81 L 20.91 30.31 L 20.04 30.81 L 20.04 31.81 Z" />
<path d="M 47.97 32.31 L 48.84 31.81 L 48.84 30.81 L 47.97 30.31 L 47.10 30.81 L 47.10 31.81 Z" />
<path d="M 50.43 32.31 L 51.30 31.81 L 51.30 30.81 L 50.43 30.31 L 49.56 30.81 L 49.56 31.81 Z" />
<path d="M 65.19 32.31 L 66.06 31.81 L 66.06 30.81 L 65.19 30.31 L 64.32 30.81 L 64.32 31.81 Z" />
<path d="M 12.30 34.44 L 13.17 33.94 L 13.17 32.94 L 12.30 32.44 L 11.43 32.94 L 11.43 33.94 Z" />
<path d="M 17.22 34.44 L 18.09 33.94 L 18.09 32.94 L 17.22 32.44 L 16.35 32.94 L 16.35 33.94 Z" />
<path d="M 19.68 34.44 L 20.55 33.94 L 20.55 32.94 L 19.68 32.44 L 18.81 32.94 L 18.81 33.94 Z" />
<path d="M 22.14 34.44 L 23.01 33.94 L 23.01 32.94 L 22.14 32.44 L 21.27 32.94 L 21.27 33.94 Z" />
<path d="M 56.58 34.44 L 57.45 33.94 L 57.45 32.94 L 56.58 32.44 L 55.71 32.94 L 55.71 33.94 Z" />
<path d="M 71.34 34.44 L 72.21 33.94 L 72.21 32.94 L 71.34 32.44 L 70.47 32.94 L 70.47 33.94 Z" />
<path d="M 1.23 36.57 L 2.10 36.07 L 2.10 35.07 L 1.23 34.57 L 0.36 35.07 L 0.36 36.07 Z" />
<path d="M 3.69 36.57 L 4.56 36.07 L 4.56 35.07 L 3.69 34.57 L 2.82 35.07 L 2.82 36.07 Z" />
<path d="M 6.15 36.57 L 7.02 36.07 L 7.02 35.07 L 6.15 34.57 L 5.28 35.07 L 5.28 36.07 Z" />
<path d="M 20.91 36.57 L 21.78 36.07 L 21.78 35.07 L 20.91 34.57 L 20.04 35.07 L 20.04 36.07 Z" />
<path d="M 50.43 36.57 L 51.30 36.07 L 51.30 35.07 L 50.43 34.57 L 49.56 35.07 L 49.56 36.07 Z" />
<path d="M 65.19 36.57 L 66.06 36.07 L 66.06 35.07 L 65.19 34.57 L 64.32 35.07 L 64.32 36.07 Z" />
<path d="M 67.65 36.57 L 68.52 36.07 L 68.52 35.07 L 67.65 34.57 L 66.78 35.07 L 66.78 36.07 Z" />
<path d="M 72.57 36.57 L 73.44 36.07 L 73.44 35.07 L 72.57 34.57 L 71.70 35.07 L 71.70 36.07 Z" />
<path d="M 4.92 38.71 L 5.79 38.21 L 5.79 37.21 L 4.92 36.71 L 4.05 37.21 L 4.05 38.21 Z" />
<path d="M 7.38 38.71 L 8.25 38.21 L 8.25 37.21 L 7.38 36.71 L 6.51 37.21 L 6.51 38.21 Z" />
<path d="M 51.66 38.71 L 52.53 38.21 L 52.53 37.21 L 51.66 36.71 L 50.79 37.21 L 50.79 38.21 Z" />
<path d="M 61.50 38.71 L 62.37 38.21 L 62.37 37.21 L 61.50 36.71 L 60.63 37.21 L 60.63 38.21 Z" />
<path d="M 68.88 38.71 L 69.75 38.21 L 69.75 37.21 L 68.88 36.71 L 68.01 37.21 L 68.01 38.21 Z" />
<path d="M 15.99 40.84 L 16.86 40.34 L 16.86 39.34 L 15.99 38.84 L 15.12 39.34 L 15.12 40.34 Z" />
<path d="M 20.91 40.84 L 21.78 40.34 L 21.78 39.34 L 20.91 38.84 L 20.04 39.34 L 20.04 40.34 Z" />
<path d="M 23.37 40.84 L 24.24 40.34 L 24.24 39.34 L 23.37 38.84 L 22.50 39.34 L 22.50 40.34 Z" />
<path d="M 50.43 40.84 L 51.30 40.34 L 51.30 39.34 L 50.43 38.84 L 49.56 39.34 L 49.56 40.34 Z" />
<path d="M 57.81 40.84 L 58.68 40.34 L 58.68 39.34 L 57.81 38.84 L 56.94 39.34 L 56.94 40.34 Z" />
<path d="M 62.73 40.84 L 63.60 40.34 L 63.60 39.34 L 62.73 38.84 L 61.86 39.34 L 61.86 40.34 Z" />
<path d="M 72.57 40.84 L 73.44 40.34 L 73.44 39.34 L 72.57 38.84 L 71.70 39.34 L 71.70 40.34 Z" />
<path d="M 2.46 42.98 L 3.33 42.48 L 3.33 41.48 L 2.46 40.98 L 1.59 41.48 L 1.59 42.48 Z" />
<path d="M 7.38 42.98 L 8.25 42.48 L 8.25 41.48 L 7.38 40.98 L 6.51 41.48 L 6.51 42.48 Z" />
<path d="M 12.30 42.98 L 13.17 42.48 L 13.17 41.48 L 12.30 40.98 L 11.43 41.48 L 11.43 42.48 Z" />
<path d="M 22.14 42.98 L 23.01 42.48 L 23.01 41.48 L 22.14 40.98 L 21.27 41.48 L 21.27 42.48 Z" />
<path d="M 46.74 42.98 L 47.61 42.48 L 47.61 41.48 L 46.74 40.98 L 45.87 41.48 L 45.87 42.48 Z" />
<path d="M 54.12 42.98 L 54.99 42.48 L 54.99 41.48 L 54.12 40.98 L 53.25 41.48 L 53.25 42.48 Z" />
<path d="M 56.58 42.98 L 57.45 42.48 L 57.45 41.48 L 56.58 40.98 L 55.71 41.48 L 55.71 42.48 Z" />
<path d="M 59.04 42.98 L 59.91 42.48 L 59.91 41.48 L 59.04 40.98 L 58.17 41.48 L 58.17 42.48 Z" />
<path d="M 66.42 42.98 L 67.29 42.48 L 67.29 41.48 L 66.42 40.98 L 65.55 41.48 L 65.55 42.48 Z" />
<path d="M 68.88 42.98 L 69.75 42.48 L 69.75 41.48 L 68.88 40.98 L 68.01 41.48 L 68.01 42.48 Z" />
<path d="M 6.15 45.11 L 7.02 44.61 L 7.02 43.61 L 6.15 43.11 L 5.28 43.61 L 5.28 44.61 Z" />
<path d="M 18.45 45.11 L 19.32 44.61 L 19.32 43.61 L 18.45 43.11 L 17.58 43.61 L 17.58 44.61 Z" />
<path d="M 20.91 45.11 L 21.78 44.61 L 21.78 43.61 L 20.91 43.11 L 20.04 43.61 L 20.04 44.61 Z" />
<path d="M 47.97 45.11 L 48.84 44.61 L 48.84 43.61 L 47.97 43.11 L 47.10 43.61 L 47.10 44.61 Z" />
<path d="M 50.43 45.11 L 51.30 44.61 L 51.30 43.61 L 50.43 43.11 L 49.56 43.61 L 49.56 44.61 Z" />
<path d="M 52.89 45.11 L 53.76 44.61 L 53.76 43.61 L 52.89 43.11 L 52.02 43.61 L 52.02 44.61 Z" />
<path d="M 65.19 45.11 L 66.06 44.61 L 66.06 43.61 L 65.19 43.11 L 64.32 43.61 L 64.32 44.61 Z" />
<path d="M 70.11 45.11 L 70.98 44.61 L 70.98 43.61 L 70.11 43.11 L 69.24 43.61 L 69.24 44.61 Z" />
<path d="M 46.74 47.24 L 47.61 46.74 L 47.61 45.74 L 46.74 45.24 L 45.87 45.74 L 45.87 46.74 Z" />
<path d="M 49.20 47.24 L 50.07 46.74 L 50.07 45.74 L 49.20 45.24 L 48.33 45.74 L 48.33 46.74 Z" />
<path d="M 61.50 47.24 L 62.37 46.74 L 62.37 45.74 L 61.50 45.24 L 60.63 45.74 L 60.63 46.74 Z" />
<path d="M 1.23 49.38 L 2.10 48.88 L 2.10 47.88 L 1.23 47.38 L 0.36 47.88 L 0.36 48.88 Z" />
<path d="M 6.15 49.38 L 7.02 48.88 L 7.02 47.88 L 6.15 47.38 L 5.28 47.88 L 5.28 48.88 Z" />
<path d="M 11.07 49.38 L 11.94 48.88 L 11.94 47.88 L 11.07 47.38 L 10.20 47.88 L 10.20 48.88 Z" />
<path d="M 13.53 49.38 L 14.40 48.88 L 14.40 47.88 L 13.53 47.38 L 12.66 47.88 L 12.66 48.88 Z" />
<path d="M 20.91 49.38 L 21.78 48.88 L 21.78 47.88 L 20.91 47.38 L 20.04 47.88 L 20.04 48.88 Z" />
<path d="M 25.83 49.38 L 26.70 48.88 L 26.70 47.88 L 25.83 47.38 L 24.96 47.88 L 24.96 48.88 Z" />
<path d="M 30.75 49.38 L 31.62 48.88 L 31.62 47.88 L 30.75 47.38 L 29.88 47.88 L 29.88 48.88 Z" />
<path d="M 43.05 49.38 L 43.92 48.88 L 43.92 47.88 L 43.05 47.38 L 42.18 47.88 L 42.18 48.88 Z" />
<path d="M 52.89 49.38 L 53.76 48.88 L 53.76 47.88 L 52.89 47.38 L 52.02 47.88 L 52.02 48.88 Z" />
<path d="M 57.81 49.38 L 58.68 48.88 L 58.68 47.88 L 57.81 47.38 L 56.94 47.88 L 56.94 48.88 Z" />
<path d="M 62.73 49.38 L 63.60 48.88 L 63.60 47.88 L 62.73 47.38 L 61.86 47.88 L 61.86 48.88 Z" />
<path d="M 72.57 49.38 L 73.44 48.88 L 73.44 47.88 L 72.57 47.38 L 71.70 47.88 L 71.70 48.88 Z" />
<path d="M 2.46 51.51 L 3.33 51.01 L 3.33 50.01 L 2.46 49.51 L 1.59 50.01 L 1.59 51.01 Z" />
<path d="M 12.30 51.51 L 13.17 51.01 L 13.17 50.01 L 12.30 49.51 L 11.43 50.01 L 11.43 51.01 Z" />
<path d="M 14.76 51.51 L 15.63 51.01 L 15.63 50.01 L 14.76 49.51 L 13.89 50.01 L 13.89 51.01 Z" />
<path d="M 17.22 51.51 L 18.09 51.01 L 18.09 50.01 L 17.22 49.51 L 16.35 50.01 L 16.35 51.01 Z" />
<path d="M 19.68 51.51 L 20.55 51.01 L 20.55 50.01 L 19.68 49.51 L 18.81 50.01 L 18.81 51.01 Z" />
<path d="M 27.06 51.51 L 27.93 51.01 L 27.93 50.01 L 27.06 49.51 L 26.19 50.01 L 26.19 51.01 Z" />
<path d="M 31.98 51.51 L 32.85 51.01 L 32.85 50.01 L 31.98 49.51 L 31.11 50.01 L 31.11 51.01 Z" />
<path d="M 36.90 51.51 L 37.77 51.01 L 37.77 50.01 L 36.90 49.51 L 36.03 50.01 L 36.03 51.01 Z" />
<path d="M 44.28 51.51 L 45.15 51.01 L 45.15 50.01 L 44.28 49.51 L 43.41 50.01 L 43.41 51.01 Z" />
<path d="M 46.74 51.51 L 47.61 51.01 L 47.61 50.01 L 46.74 49.51 L 45.87 50.01 L 45.87 51.01 Z" />
<path d="M 51.66 51.51 L 52.53 51.01 L 52.53 50.01 L 51.66 49.51 L 50.79 50.01 L 50.79 51.01 Z" />
<path d="M 56.58 51.51 L 57.45 51.01 L 57.45 50.01 L 56.58 49.51 L 55.71 50.01 L 55.71 51.01 Z" />
<path d="M 66.42 51.51 L 67.29 51.01 L 67.29 50.01 L 66.42 49.51 L 65.55 50.01 L 65.55 51.01 Z" />
<path d="M 71.34 51.51 L 72.21 51.01 L 72.21 50.01 L 71.34 49.51 L 70.47 50.01 L 70.47 51.01 Z" />
<path d="M 3.69 53.65 L 4.56 53.15 L 4.56 52.15 L 3.69 51.65 L 2.82 52.15 L 2.82 53.15 Z" />
<path d="M 6.15 53.65 L 7.02 53.15 L 7.02 52.15 L 6.15 51.65 L 5.28 52.15 L 5.28 53.15 Z" />
<path d="M 11.07 53.65 L 11.94 53.15 L 11.94 52.15 L 11.07 51.65 L 10.20 52.15 L 10.20 53.15 Z" />
<path d="M 38.13 53.65 L 39.00 53.15 L 39.00 52.15 L 38.13 51.65 L 37.26 52.15 L 37.26 53.15 Z" />
<path d="M 43.05 53.65 L 43.92 53.15 L 43.92 52.15 L 43.05 51.65 L 42.18 52.15 L 42.18 53.15 Z" />
<path d="M 47.97 53.65 L 48.84 53.15 L 48.84 52.15 L 47.97 51.65 L 47.10 52.15 L 47.10 53.15 Z" />
<path d="M 50.43 53.65 L 51.30 53.15 L 51.30 52.15 L 50.43 51.65 L 49.56 52.15 L 49.56 53.15 Z" />
<path d="M 55.35 53.65 L 56.22 53.15 L 56.22 52.15 L 55.35 51.65 L 54.48 52.15 L 54.48 53.15 Z" />
<path d="M 62.73 53.65 L 63.60 53.15 L 63.60 52.15 L 62.73 51.65 L 61.86 52.15 L 61.86 53.15 Z" />
<path d="M 65.19 53.65 L 66.06 53.15 L 66.06 52.15 L 65.19 51.65 L 64.32 52.15 L 64.32 53.15 Z" />
<path d="M 67.65 53.65 L 68.52 53.15 L 68.52 52.15 L 67.65 51.65 L 66.78 52.15 L 66.78 53.15 Z" />
<path d="M 70.11 53.65 L 70.98 53.15 L 70.98 52.15 L 70.11 51.65 L 69.24 52.15 L 69.24 53.15 Z" />
<path d="M 72.57 53.65 L 73.44 53.15 L 73.44 52.15 L 72.57 51.65 L 71.70 52.15 L 71.70 53.15 Z" />
<path d="M 14.76 55.78 L 15.63 55.28 L 15.63 54.28 L 14.76 53.78 L 13.89 54.28 L 13.89 55.28 Z" />
<path d="M 17.22 55.78 L 18.09 55.28 L 18.09 54.28 L 17.22 53.78 L 16.35 54.28 L 16.35 55.28 Z" />
<path d="M 19.68 55.78 L 20.55 55.28 L 20.55 54.28 L 19.68 53.78 L 18.81 54.28 L 18.81 55.28 Z" />
<path d="M 27.06 55.78 L 27.93 55.28 L 27.93 54.28 L 27.06 53.78 L 26.19 54.28 L 26.19 55.28 Z" />
<path d="M 29.52 55.78 L 30.39 55.28 L 30.39 54.28 L 29.52 53.78 L 28.65 54.28 L 28.65 55.28 Z" />
<path d="M 31.98 55.78 L 32.85 55.28 L 32.85 54.28 L 31.98 53.78 L 31.11 54.28 L 31.11 55.28 Z" />
<path d="M 34.44 55.78 L 35.31 55.28 L 35.31 54.28 L 34.44 53.78 L 33.57 54.28 L 33.57 55.28 Z" />
<path d="M 36.90 55.78 L 37.77 55.28 L 37.77 54.28 L 36.90 53.78 L 36.03 54.28 L 36.03 55.28 Z" />
<path d="M 39.36 55.78 L 40.23 55.28 L 40.23 54.28 L 39.36 53.78 L 38.49 54.28 L 38.49 55.28 Z" />
<path d="M 41.82 55.78 L 42.69 55.28 L 42.69 54.28 L 41.82 53.78 L 40.95 54.28 L 40.95 55.28 Z" />
<path d="M 44.28 55.78 L 45.15 55.28 L 45.15 54.28 L 44.28 53.78 L 43.41 54.28 L 43.41 55.28 Z" />
<path d="M 46.74 55.78 L 47.61 55.28 L 47.61 54.28 L 46.74 53.78 L 45.87 54.28 L 45.87 55.28 Z" />
<path d="M 49.20 55.78 L 50.07 55.28 L 50.07 54.28 L 49.20 53.78 L 48.33 54.28 L 48.33 55.28 Z" />
<path d="M 51.66 55.78 L 52.53 55.28 L 52.53 54.28 L 51.66 53.78 L 50.79 54.28 L 50.79 55.28 Z" />
<path d="M 54.12 55.78 L 54.99 55.28 L 54.99 54.28 L 54.12 53.78 L 53.25 54.28 L 53.25 55.28 Z" />
<path d="M 63.96 55.78 L 64.83 55.28 L 64.83 54.28 L 63.96 53.78 L 63.09 54.28 L 63.09 55.28 Z" />
<path d="M 68.88 55.78 L 69.75 55.28 L 69.75 54.28 L 68.88 53.78 L 68.01 54.28 L 68.01 55.28 Z" />
<path d="M 6.15 57.91 L 7.02 57.41 L 7.02 56.41 L 6.15 55.91 L 5.28 56.41 L 5.28 57.41 Z" />
<path d="M 8.61 57.91 L 9.48 57.41 L 9.48 56.41 L 8.61 55.91 L 7.74 56.41 L 7.74 57.41 Z" />
<path d="M 11.07 57.91 L 11.94 57.41 L 11.94 56.41 L 11.07 55.91 L 10.20 56.41 L 10.20 57.41 Z" />
<path d="M 15.99 57.91 L 16.86 57.41 L 16.86 56.41 L 15.99 55.91 L 15.12 56.41 L 15.12 57.41 Z" />
<path d="M 23.37 57.91 L 24.24 57.41 L 24.24 56.41 L 23.37 55.91 L 22.50 56.41 L 22.50 57.41 Z" />
<path d="M 25.83 57.91 L 26.70 57.41 L 26.70 56.41 L 25.83 55.91 L 24.96 56.41 L 24.96 57.41 Z" />
<path d="M 28.29 57.91 L 29.16 57.41 L 29.16 56.41 L 28.29 55.91 L 27.42 56.41 L 27.42 57.41 Z" />
<path d="M 38.13 57.91 L 39.00 57.41 L 39.00 56.41 L 38.13 55.91 L 37.26 56.41 L 37.26 57.41 Z" />
<path d="M 43.05 57.91 L 43.92 57.41 L 43.92 56.41 L 43.05 55.91 L 42.18 56.41 L 42.18 57.41 Z" />
<path d="M 47.97 57.91 L 48.84 57.41 L 48.84 56.41 L 47.97 55.91 L 47.10 56.41 L 47.10 57.41 Z" />
<path d="M 50.43 57.91 L 51.30 57.41 L 51.30 56.41 L 50.43 55.91 L 49.56 56.41 L 49.56 57.41 Z" />
<path d="M 62.73 57.91 L 63.60 57.41 L 63.60 56.41 L 62.73 55.91 L 61.86 56.41 L 61.86 57.41 Z" />
<path d="M 65.19 57.91 L 66.06 57.41 L 66.06 56.41 L 65.19 55.91 L 64.32 56.41 L 64.32 57.41 Z" />
<path d="M 67.65 57.91 L 68.52 57.41 L 68.52 56.41 L 67.65 55.91 L 66.78 56.41 L 66.78 57.41 Z" />
<path d="M 2.46 60.05 L 3.33 59.55 L 3.33 58.55 L 2.46 58.05 L 1.59 58.55 L 1.59 59.55 Z" />
<path d="M 4.92 60.05 L 5.79 59.55 L 5.79 58.55 L 4.92 58.05 L 4.05 58.55 L 4.05 59.55 Z" />
<path d="M 9.84 60.05 L 10.71 59.55 L 10.71 58.55 L 9.84 58.05 L 8.97 58.55 L 8.97 59.55 Z" />
<path d="M 12.30 60.05 L 13.17 59.55 L 13.17 58.55 L 12.30 58.05 L 11.43 58.55 L 11.43 59.55 Z" />
<path d="M 14.76 60.05 L 15.63 59.55 L 15.63 58.55 L 14.76 58.05 L 13.89 58.55 L 13.89 59.55 Z" />
<path d="M 19.68 60.05 L 20.55 59.55 L 20.55 58.55 L 19.68 58.05 L 18.81 58.55 L 18.81 59.55 Z" />
<path d="M 22.14 60.05 L 23.01 59.55 L 23.01 58.55 L 22.14 58.05 L 21.27 58.55 L 21.27 59.55 Z" />
<path d="M 24.60 60.05 L 25.47 59.55 L 25.47 58.55 L 24.60 58.05 L 23.73 58.55 L 23.73 59.55 Z" />
<path d="M 31.98 60.05 L 32.85 59.55 L 32.85 58.55 L 31.98 58.05 L 31.11 58.55 L 31.11 59.55 Z" />
<path d="M 44.28 60.05 L 45.15 59.55 L 45.15 58.55 L 44.28 58.05 L 43.41 58.55 L 43.41 59.55 Z" />
<path d="M 46.74 60.05 L 47.61 59.55 L 47.61 58.55 L 46.74 58.05 L 45.87 58.55 L 45.87 59.55 Z" />
<path d="M 51.66 60.05 L 52.53 59.55 L 52.53 58.55 L 51.66 58.05 L 50.79 58.55 L 50.79 59.55 Z" />
<path d="M 59.04 60.05 L 59.91 59.55 L 59.91 58.55 L 59.04 58.05 L 58.17 58.55 L 58.17 59.55 Z" />
<path d="M 63.96 60.05 L 64.83 59.55 L 64.83 58.55 L 63.96 58.05 L 63.09 58.55 L 63.09 59.55 Z" />
<path d="M 68.88 60.05 L 69.75 59.55 L 69.75 58.55 L 68.88 58.05 L 68.01 58.55 L 68.01 59.55 Z" />
<path d="M 71.34 60.05 L 72.21 59.55 L 72.21 58.55 L 71.34 58.05 L 70.47 58.55 L 70.47 59.55 Z" />
<path d="M 13.53 62.18 L 14.40 61.68 L 14.40 60.68 L 13.53 60.18 L 12.66 60.68 L 12.66 61.68 Z" />
<path d="M 18.45 62.18 L 19.32 61.68 L 19.32 60.68 L 18.45 60.18 L 17.58 60.68 L 17.58 61.68 Z" />
<path d="M 20.91 62.18 L 21.78 61.68 L 21.78 60.68 L 20.91 60.18 L 20.04 60.68 L 20.04 61.68 Z" />
<path d="M 25.83 62.18 L 26.70 61.68 L 26.70 60.68 L 25.83 60.18 L 24.96 60.68 L 24.96 61.68 Z" />
<path d="M 28.29 62.18 L 29.16 61.68 L 29.16 60.68 L 28.29 60.18 L 27.42 60.68 L 27.42 61.68 Z" />
<path d="M 30.75 62.18 L 31.62 61.68 L 31.62 60.68 L 30.75 60.18 L 29.88 60.68 L 29.88 61.68 Z" />
<path d="M 35.67 62.18 L 36.54 61.68 L 36.54 60.68 L 35.67 60.18 L 34.80 60.68 L 34.80 61.68 Z" />
<path d="M 40.59 62.18 L 41.46 61.68 L 41.46 60.68 L 40.59 60.18 L 39.72 60.68 L 39.72 61.68 Z" />
<path d="M 47.97 62.18 L 48.84 61.68 L 48.84 60.68 L 47.97 60.18 L 47.10 60.68 L 47.10 61.68 Z" />
<path d="M 52.89 62.18 L 53.76 61.68 L 53.76 60.68 L 52.89 60.18 L 52.02 60.68 L 52.02 61.68 Z" />
<path d="M 55.35 62.18 L 56.22 61.68 L 56.22 60.68 L 55.35 60.18 L 54.48 60.68 L 54.48 61.68 Z" />
<path d="M 57.81 62.18 L 58.68 61.68 L 58.68 60.68 L 57.81 60.18 L 56.94 60.68 L 56.94 61.68 Z" />
<path d="M 65.19 62.18 L 66.06 61.68 L 66.06 60.68 L 65.19 60.18 L 64.32 60.68 L 64.32 61.68 Z" />
<path d="M 67.65 62.18 L 68.52 61.68 L 68.52 60.68 L 67.65 60.18 L 66.78 60.68 L 66.78 61.68 Z" />
<path d="M 2.46 64.32 L 3.33 63.82 L 3.33 62.82 L 2.46 62.32 L 1.59 62.82 L 1.59 63.82 Z" />
<path d="M 4.92 64.32 L 5.79 63.82 L 5.79 62.82 L 4.92 62.32 L 4.05 62.82 L 4.05 63.82 Z" />
<path d="M 7.38 64.32 L 8.25 63.82 L 8.25 62.82 L 7.38 62.32 L 6.51 62.82 L 6.51 63.82 Z" />
<path d="M 17.22 64.32 L 18.09 63.82 L 18.09 62.82 L 17.22 62.32 L 16.35 62.82 L 16.35 63.82 Z" />
<path d="M 19.68 64.32 L 20.55 63.82 L 20.55 62.82 L 19.68 62.32 L 18.81 62.82 L 18.81 63.82 Z" />
<path d="M 24.60 64.32 L 25.47 63.82 L 25.47 62.82 L 24.60 62.32 L 23.73 62.82 L 23.73 63.82 Z" />
<path d="M 27.06 64.32 L 27.93 63.82 L 27.93 62.82 L 27.06 62.32 L 26.19 62.82 L 26.19 63.82 Z" />
<path d="M 29.52 64.32 L 30.39 63.82 L 30.39 62.82 L 29.52 62.32 L 28.65 62.82 L 28.65 63.82 Z" />
<path d="M 31.98 64.32 L 32.85 63.82 L 32.85 62.82 L 31.98 62.32 L 31.11 62.82 L 31.11 63.82 Z" />
<path d="M 41.82 64.32 L 42.69 63.82 L 42.69 62.82 L 41.82 62.32 L 40.95 62.82 L 40.95 63.82 Z" />
<path d="M 51.66 64.32 L 52.53 63.82 L 52.53 62.82 L 51.66 62.32 L 50.79 62.82 L 50.79 63.82 Z" />
<path d="M 54.12 64.32 L 54.99 63.82 L 54.99 62.82 L 54.12 62.32 L 53.25 62.82 L 53.25 63.82 Z" />
<path d="M 56.58 64.32 L 57.45 63.82 L 57.45 62.82 L 56.58 62.32 L 55.71 62.82 L 55.71 63.82 Z" />
<path d="M 59.04 64.32 L 59.91 63.82 L 59.91 62.82 L 59.04 62.32 L 58.17 62.82 L 58.17 63.82 Z" />
<path d="M 63.96 64.32 L 64.83 63.82 L 64.83 62.82 L 63.96 62.32 L 63.09 62.82 L 63.09 63.82 Z" />
<path d="M 66.42 64.32 L 67.29 63.82 L 67.29 62.82 L 66.42 62.32 L 65.55 62.82 L 65.55 63.82 Z" />
<path d="M 68.88 64.32 L 69.75 63.82 L 69.75 62.82 L 68.88 62.32 L 68.01 62.82 L 68.01 63.82 Z" />
<path d="M 71.34 64.32 L 72.21 63.82 L 72.21 62.82 L 71.34 62.32 L 70.47 62.82 L 70.47 63.82 Z" />
<path d="M 1.23 66.45 L 2.10 65.95 L 2.10 64.95 L 1.23 64.45 L 0.36 64.95 L 0.36 65.95 Z" />
<path d="M 6.15 66.45 L 7.02 65.95 L 7.02 64.95 L 6.15 64.45 L 5.28 64.95 L 5.28 65.95 Z" />
<path d="M 8.61 66.45 L 9.48 65.95 L 9.48 64.95 L 8.61 64.45 L 7.74 64.95 L 7.74 65.95 Z" />
<path d="M 11.07 66.45 L 11.94 65.95 L 11.94 64.95 L 11.07 64.45 L 10.20 64.95 L 10.20 65.95 Z" />
<path d="M 13.53 66.45 L 14.40 65.95 L 14.40 64.95 L 13.53 64.45 L 12.66 64.95 L 12.66 65.95 Z" />
<path d="M 18.45 66.45 L 19.32 65.95 L 19.32 64.95 L 18.45 64.45 L 17.58 64.95 L 17.58 65.95 Z" />
<path d="M 23.37 66.45 L 24.24 65.95 L 24.24 64.95 L 23.37 64.45 L 22.50 64.95 L 22.50 65.95 Z" />
<path d="M 25.83 66.45 L 26.70 65.95 L 26.70 64.95 L 25.83 64.45 L 24.96 64.95 L 24.96 65.95 Z" />
<path d="M 28.29 66.45 L 29.16 65.95 L 29.16 64.95 L 28.29 64.45 L 27.42 64.95 L 27.42 65.95 Z" />
<path d="M 30.75 66.45 L 31.62 65.95 L 31.62 64.95 L 30.75 64.45 L 29.88 64.95 L 29.88 65.95 Z" />
<path d="M 33.21 66.45 L 34.08 65.95 L 34.08 64.95 L 33.21 64.45 L 32.34 64.95 L 32.34 65.95 Z" />
<path d="M 35.67 66.45 L 36.54 65.95 L 36.54 64.95 L 35.67 64.45 L 34.80 64.95 L 34.80 65.95 Z" />
<path d="M 47.97 66.45 L 48.84 65.95 L 48.84 64.95 L 47.97 64.45 L 47.10 64.95 L 47.10 65.95 Z" />
<path d="M 52.89 66.45 L 53.76 65.95 L 53.76 64.95 L 52.89 64.45 L 52.02 64.95 L 52.02 65.95 Z" />
<path d="M 55.35 66.45 L 56.22 65.95 L 56.22 64.95 L 55.35 64.45 L 54.48 64.95 L 54.48 65.95 Z" />
<path d="M 60.27 66.45 L 61.14 65.95 L 61.14 64.95 L 60.27 64.45 L 59.40 64.95 L 59.40 65.95 Z" />
<path d="M 62.73 66.45 L 63.60 65.95 L 63.60 64.95 L 62.73 64.45 L 61.86 64.95 L 61.86 65.95 Z" />
<path d="M 65.19 66.45 L 66.06 65.95 L 66.06 64.95 L 65.19 64.45 L 64.32 64.95 L 64.32 65.95 Z" />
<path d="M 72.57 66.45 L 73.44 65.95 L 73.44 64.95 L 72.57 64.45 L 71.70 64.95 L 71.70 65.95 Z" />
<path d="M 7.38 68.58 L 8.25 68.08 L 8.25 67.08 L 7.38 66.58 L 6.51 67.08 L 6.51 68.08 Z" />
<path d="M 14.76 68.58 L 15.63 68.08 L 15.63 67.08 L 14.76 66.58 L 13.89 67.08 L 13.89 68.08 Z" />
<path d="M 17.22 68.58 L 18.09 68.08 L 18.09 67.08 L 17.22 66.58 L 16.35 67.08 L 16.35 68.08 Z" />
<path d="M 22.14 68.58 L 23.01 68.08 L 23.01 67.08 L 22.14 66.58 L 21.27 67.08 L 21.27 68.08 Z" />
<path d="M 24.60 68.58 L 25.47 68.08 L 25.47 67.08 L 24.60 66.58 L 23.73 67.08 L 23.73 68.08 Z" />
<path d="M 27.06 68.58 L 27.93 68.08 L 27.93 67.08 L 27.06 66.58 L 26.19 67.08 L 26.19 68.08 Z" />
<path d="M 29.52 68.58 L 30.39 68.08 L 30.39 67.08 L 29.52 66.58 L 28.65 67.08 L 28.65 68.08 Z" />
<path d="M 31.98 68.58 L 32.85 68.08 L 32.85 67.08 L 31.98 66.58 L 31.11 67.08 L 31.11 68.08 Z" />
<path d="M 36.90 68.58 L 37.77 68.08 L 37.77 67.08 L 36.90 66.58 L 36.03 67.08 L 36.03 68.08 Z" />
<path d="M 39.36 68.58 L 40.23 68.08 L 40.23 67.08 L 39.36 66.58 L 38.49 67.08 L 38.49 68.08 Z" />
<path d="M 44.28 68.58 L 45.15 68.08 L 45.15 67.08 L 44.28 66.58 L 43.41 67.08 L 43.41 68.08 Z" />
<path d="M 46.74 68.58 L 47.61 68.08 L 47.61 67.08 L 46.74 66.58 L 45.87 67.08 L 45.87 68.08 Z" />
<path d="M 51.66 68.58 L 52.53 68.08 L 52.53 67.08 L 51.66 66.58 L 50.79 67.08 L 50.79 68.08 Z" />
<path d="M 56.58 68.58 L 57.45 68.08 L 57.45 67.08 L 56.58 66.58 L 55.71 67.08 L 55.71 68.08 Z" />
<path d="M 63.96 68.58 L 64.83 68.08 L 64.83 67.08 L 63.96 66.58 L 63.09 67.08 L 63.09 68.08 Z" />
<path d="M 66.42 68.58 L 67.29 68.08 L 67.29 67.08 L 66.42 66.58 L 65.55 67.08 L 65.55 68.08 Z" />
<path d="M 68.88 68.58 L 69.75 68.08 L 69.75 67.08 L 68.88 66.58 L 68.01 67.08 L 68.01 68.08 Z" />
<path d="M 6.15 70.72 L 7.02 70.22 L 7.02 69.22 L 6.15 68.72 L 5.28 69.22 L 5.28 70.22 Z" />
<path d="M 11.07 70.72 L 11.94 70.22 L 11.94 69.22 L 11.07 68.72 L 10.20 69.22 L 10.20 70.22 Z" />
<path d="M 13.53 70.72 L 14.40 70.22 L 14.40 69.22 L 13.53 68.72 L 12.66 69.22 L 12.66 70.22 Z" />
<path d="M 30.75 70.72 L 31.62 70.22 L 31.62 69.22 L 30.75 68.72 L 29.88 69.22 L 29.88 70.22 Z" />
<path d="M 33.21 70.72 L 34.08 70.22 L 34.08 69.22 L 33.21 68.72 L 32.34 69.22 L 32.34 70.22 Z" />
<path d="M 35.67 70.72 L 36.54 70.22 L 36.54 69.22 L 35.67 68.72 L 34.80 69.22 L 34.80 70.22 Z" />
<path d="M 38.13 70.72 L 39.00 70.22 L 39.00 69.22 L 38.13 68.72 L 37.26 69.22 L 37.26 70.22 Z" />
<path d="M 43.05 70.72 L 43.92 70.22 L 43.92 69.22 L 43.05 68.72 L 42.18 69.22 L 42.18 70.22 Z" />
<path d="M 45.51 70.72 L 46.38 70.22 L 46.38 69.22 L 45.51 68.72 L 44.64 69.22 L 44.64 70.22 Z" />
<path d="M 52.89 70.72 L 53.76 70.22 L 53.76 69.22 L 52.89 68.72 L 52.02 69.22 L 52.02 70.22 Z" />
<path d="M 65.19 70.72 L 66.06 70.22 L 66.06 69.22 L 65.19 68.72 L 64.32 69.22 L 64.32 70.22 Z" />
<circle cx="35.76" cy="35.60" r="10.85" />
<circle cx="35.76" cy="35.60" r="8.97" fill="#FFFFFF" />
<circle cx="35.76" cy="35.60" r="7.10" />
<circle cx="35.76" cy="35.60" r="5.22" fill="#FFFFFF" />
<circle cx="35.76" cy="35.60" r="3.31" />
<circle cx="35.76" cy="35.60" r="1.43" fill="#FFFFFF" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

View file

@ -0,0 +1,33 @@
7D 02 08 9C
10 10 0A 00
2C C9 B2 48
81 18 90 00
2C 0A 0A CC
E8 82 C8 F0
80 60 90 00
0A 24 89 F0
EE 02 06 00
01 B0 14 60
BC 15 8C 0C
38 A0 3A 38
1E 00 21 60
88 00 07 20
80 80 18 20
0B 80 02 08
E0 80 08 34
60 00 08 90
02 C0 09 44
A8 80 27 30
21 80 1C 28
00 00 30 80
AC A8 45 44
8F 2A 6A 28
68 01 5A 7C
07 3F FC 50
3A 71 58 70
DD C8 69 58
05 BA 97 30
E3 78 8F 78
BD 7E 16 E4
26 FB 6A 70
2C 0F 64 20

View file

@ -38,6 +38,7 @@ static void test_large(int index, int debug) {
int ret;
struct item {
int option_1;
int option_2;
char *pattern;
int length;
char* primary;
@ -47,14 +48,38 @@ static void test_large(int index, int debug) {
};
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
struct item data[] = {
/* 0*/ { -1, "1", 132, "", 0, 33, 30 }, // 138 according to ISO/IEC 16023:2000 TODO: investigate (see also test_fuzz)
/* 1*/ { -1, "1", 133, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 2*/ { -1, "A", 93, "", 0, 33, 30 },
/* 3*/ { -1, "A", 94, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 4*/ { -1, "\001", 91, "", 0, 33, 30 },
/* 5*/ { -1, "\001", 92, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 6*/ { -1, "\200", 91, "", 0, 33, 30 },
/* 7*/ { -1, "\200", 92, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 0*/ { -1, -1, "1", 138, "", 0, 33, 30 }, // Mode 4 (138 agrees with ISO/IEC 16023:2000)
/* 1*/ { -1, -1, "1", 139, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 2*/ { -1, -1, "A", 93, "", 0, 33, 30 },
/* 3*/ { -1, -1, "A", 94, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 4*/ { -1, -1, "\001", 91, "", 0, 33, 30 },
/* 5*/ { -1, -1, "\001", 92, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 6*/ { -1, -1, "\200", 91, "", 0, 33, 30 },
/* 7*/ { -1, -1, "\200", 92, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 8*/ { 2, -1, "1", 126, "123456789123123", 0, 33, 30 },
/* 9*/ { 2, -1, "1", 127, "123456789123123", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 10*/ { 2, -1, "A", 84, "123456789123123", 0, 33, 30 },
/* 11*/ { 2, -1, "A", 85, "123456789123123", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 12*/ { 2, 96, "1", 109, "123456789123123", 0, 33, 30 },
/* 13*/ { 2, 96, "1", 110, "123456789123123", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 14*/ { 3, -1, "1", 126, "ABCDEF123123", 0, 33, 30 },
/* 15*/ { 3, -1, "1", 127, "ABCDEF123123", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 16*/ { 3, -1, "A", 84, "ABCDEF123123", 0, 33, 30 },
/* 17*/ { 3, -1, "A", 85, "ABCDEF123123", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 18*/ { 3, 96, "1", 109, "ABCDEF123123", 0, 33, 30 },
/* 19*/ { 3, 96, "1", 110, "ABCDEF123123", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 20*/ { 0, -1, "1", 126, "123456789123123", 0, 33, 30 }, // Mode 2
/* 21*/ { 0, -1, "1", 127, "123456789123123", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 22*/ { 0, -1, "1", 126, "ABCDEF123123", 0, 33, 30 }, // Mode 3
/* 23*/ { 0, -1, "1", 127, "ABCDEF123123", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 24*/ { 5, -1, "1", 113, "", 0, 33, 30 }, // Extra EEC
/* 25*/ { 5, -1, "1", 114, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 26*/ { 5, -1, "A", 77, "", 0, 33, 30 },
/* 27*/ { 5, -1, "A", 78, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 28*/ { 6, -1, "1", 138, "", 0, 33, 30 },
/* 29*/ { 6, -1, "1", 139, "", ZINT_ERROR_TOO_LONG, -1, -1 },
/* 30*/ { 6, -1, "A", 93, "", 0, 33, 30 },
/* 31*/ { 6, -1, "A", 94, "", ZINT_ERROR_TOO_LONG, -1, -1 },
};
int data_size = ARRAY_SIZE(data);
@ -70,7 +95,7 @@ static void test_large(int index, int debug) {
testUtilStrCpyRepeat(data_buf, data[i].pattern, data[i].length);
assert_equal(data[i].length, (int) strlen(data_buf), "i:%d length %d != strlen(data_buf) %d\n", i, data[i].length, (int) strlen(data_buf));
int length = testUtilSetSymbol(symbol, BARCODE_MAXICODE, -1 /*input_mode*/, -1 /*eci*/, data[i].option_1, -1, -1, -1 /*output_options*/, data_buf, data[i].length, debug);
int length = testUtilSetSymbol(symbol, BARCODE_MAXICODE, -1 /*input_mode*/, -1 /*eci*/, data[i].option_1, data[i].option_2, -1, -1 /*output_options*/, data_buf, data[i].length, debug);
strcpy(symbol->primary, data[i].primary);
ret = ZBarcode_Encode(symbol, (unsigned char *) data_buf, length);
@ -87,6 +112,97 @@ static void test_large(int index, int debug) {
testFinish();
}
static void test_input(int index, int generate, int debug) {
testStart("");
int ret;
struct item {
int input_mode;
int eci;
int option_1;
int option_2;
char *data;
int length;
char *primary;
int ret;
int expected_width;
char *expected;
char *comment;
};
struct item data[] = {
/* 0*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "", 0, 30, "(144) 04 01 21 21 21 21 21 21 21 21 08 0E 19 2B 20 0C 24 06 32 1C 21 21 21 21 21 21 21 21", "" },
/* 1*/ { UNICODE_MODE, -1, 2, -1, "A", -1, "", ZINT_ERROR_INVALID_DATA, 0, "Error 551: Invalid length for Primary Message", "" },
/* 2*/ { UNICODE_MODE, -1, 2, -1, "A", -1, "A123456", ZINT_ERROR_INVALID_DATA, 0, "Error 555: Non-numeric postcode in Primary Message", "" },
/* 3*/ { UNICODE_MODE, -1, 2, -1, "A", -1, "1123456", 0, 30, "(144) 12 00 00 00 00 10 30 1E 20 1C 1A 3D 1C 0D 1B 15 3C 17 3C 08 01 21 21 21 21 21 21 21", "1-digit postcode" },
/* 4*/ { UNICODE_MODE, -1, 2, -1, "A", -1, "123456789123456", 0, 30, "(144) 12 05 0D 2F 35 11 32 1E 20 1C 0D 1D 3B 12 22 3F 30 14 23 1A 01 21 21 21 21 21 21 21", "9-digit postcode" },
/* 5*/ { UNICODE_MODE, -1, 2, -1, "A", -1, "1234567890123456", ZINT_ERROR_INVALID_DATA, 0, "Error 551: Invalid length for Primary Message", "10-digit postcode" },
/* 6*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "1123456", 0, 30, "(144) 12 00 00 00 00 10 30 1E 20 1C 1A 3D 1C 0D 1B 15 3C 17 3C 08 01 21 21 21 21 21 21 21", "1-digit postcode" },
/* 7*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "123456789123456", 0, 30, "(144) 12 05 0D 2F 35 11 32 1E 20 1C 0D 1D 3B 12 22 3F 30 14 23 1A 01 21 21 21 21 21 21 21", "9-digit postcode" },
/* 8*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "1234567890123456", ZINT_ERROR_INVALID_DATA, 0, "Error 551: Invalid length for Primary Message", "10-digit postcode" },
/* 9*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "123456", ZINT_ERROR_INVALID_DATA, 0, "Error 551: Invalid length for Primary Message", "0-digit postcode" },
/* 10*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "12345678123456", 0, 30, "(144) 22 13 21 31 0B 00 32 1E 20 1C 04 14 07 30 10 07 08 28 1D 09 01 21 21 21 21 21 21 21", "8-digit postcode" },
/* 11*/ { UNICODE_MODE, -1, 3, -1, "A", -1, "", ZINT_ERROR_INVALID_DATA, 0, "Error 551: Invalid length for Primary Message", "" },
/* 12*/ { UNICODE_MODE, -1, 3, -1, "A", -1, "A123456", 0, 30, "(144) 03 08 08 08 08 18 30 1E 20 1C 22 35 1C 0F 02 1A 26 04 10 31 01 21 21 21 21 21 21 21", "1-alphanumeric postcode" },
/* 13*/ { UNICODE_MODE, -1, 3, -1, "A", -1, "1123456", 0, 30, "(144) 03 08 08 08 08 18 3C 1E 20 1C 13 37 07 2C 26 2D 18 29 3F 2C 01 21 21 21 21 21 21 21", "1-digit postcode" },
/* 14*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "A123456", 0, 30, "(144) 03 08 08 08 08 18 30 1E 20 1C 22 35 1C 0F 02 1A 26 04 10 31 01 21 21 21 21 21 21 21", "1-alphanumeric postcode" },
/* 15*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "ABCDEF123456", 0, 30, "(144) 23 11 01 31 20 10 30 1E 20 1C 3C 1D 22 03 19 15 0F 20 0F 2A 01 21 21 21 21 21 21 21", "6-alphanumeric postcode" },
/* 16*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "ABCDEFG123456", 0, 30, "(144) 23 11 01 31 20 10 30 1E 20 1C 3C 1D 22 03 19 15 0F 20 0F 2A 01 21 21 21 21 21 21 21", "7-alphanumeric postcode truncated" },
/* 17*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "ABCDE123456", 0, 30, "(144) 03 18 01 31 20 10 30 1E 20 1C 0F 38 38 1A 39 10 2F 37 22 12 01 21 21 21 21 21 21 21", "5-alphanumeric postcode" },
/* 18*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "AAAAAA 840001", 0, 30, "(144) 13 10 10 10 10 10 00 12 07 00 17 36 2E 38 04 29 16 0D 27 16 01 21 21 21 21 21 21 21", "6-alphanumeric postcode with padding" },
/* 19*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "AAAAA A840001", 0, 30, "(144) 03 18 10 10 10 10 00 12 07 00 19 07 29 31 26 01 23 2C 2E 07 01 21 21 21 21 21 21 21", "7-alphanumeric with embedded padding truncated" },
/* 20*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "AA\015AAA840001", ZINT_ERROR_INVALID_DATA, 0, "Error 556: Invalid characters in postcode in Primary Message", "Alphanumeric postcode with CR" },
/* 21*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "A#%-/A840001", 0, 30, "(144) 13 30 1B 1B 39 18 00 12 07 00 3F 1E 25 07 2A 1E 14 3C 28 2D 01 21 21 21 21 21 21 21", "Alphanumeric postcode with non-control Code A chars" },
/* 22*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "1A23456", ZINT_ERROR_INVALID_DATA, 0, "Error 552: Non-numeric country code or service class in Primary Message", "Non-numeric country code" },
/* 23*/ { UNICODE_MODE, -1, -1, -1, "A", -1, "12345678912345A", ZINT_ERROR_INVALID_DATA, 0, "Error 552: Non-numeric country code or service class in Primary Message", "Non-numeric service class" },
/* 24*/ { UNICODE_MODE, -1, 0, -1, "A", -1, "123456789123456", 0, 30, "(144) 12 05 0D 2F 35 11 32 1E 20 1C 0D 1D 3B 12 22 3F 30 14 23 1A 01 21 21 21 21 21 21 21", "Auto-determine mode 2" },
/* 25*/ { UNICODE_MODE, -1, 0, -1, "A", -1, "", ZINT_ERROR_INVALID_DATA, 0, "Error 554: Primary Message empty", "Auto-determine mode 2/3 requires primary message" },
/* 26*/ { UNICODE_MODE, -1, 0, -1, "A", -1, "A23456123456", 0, 30, "(144) 23 1D 0D 3D 2C 1C 30 1E 20 1C 24 35 30 31 2A 0D 17 14 16 3D 01 21 21 21 21 21 21 21", "Auto-determine mode 3" },
/* 27*/ { UNICODE_MODE, -1, -1, 100, "A", -1, "123456123456", 0, 30, "(144) 02 10 22 07 00 20 31 1E 20 1C 0E 29 13 1B 0D 26 36 25 3B 22 3B 2A 29 3B 28 1E 30 31", "SCM prefix version" },
/* 28*/ { UNICODE_MODE, -1, -1, 101, "A", -1, "123456123456", ZINT_ERROR_INVALID_OPTION, 0, "Error 557: Invalid SCM prefix version", "SCM prefix version" },
/* 29*/ { UNICODE_MODE, 3, -1, -1, "A", -1, "", 0, 30, "(144) 04 1B 03 01 21 21 21 21 21 21 2F 14 23 21 05 24 27 00 24 0C 21 21 21 21 21 21 21 21", "" },
/* 30*/ { UNICODE_MODE, 32, -1, -1, "A", -1, "", 0, 30, "(144) 04 1B 20 20 01 21 21 21 21 21 3D 15 0F 30 0D 22 24 35 22 06 21 21 21 21 21 21 21 21", "" },
/* 31*/ { UNICODE_MODE, 1024, -1, -1, "A", -1, "", 0, 30, "(144) 04 1B 30 10 00 01 21 21 21 21 11 2F 15 10 1D 29 06 35 14 2B 21 21 21 21 21 21 21 21", "" },
/* 32*/ { UNICODE_MODE, 32768, -1, -1, "A", -1, "", 0, 30, "(144) 04 1B 38 08 00 00 01 21 21 21 10 30 3A 04 26 23 0E 21 3D 0F 21 21 21 21 21 21 21 21", "" },
/* 33*/ { UNICODE_MODE, -1, 1, -1, "A", -1, "", ZINT_ERROR_INVALID_OPTION, 0, "Error 550: Invalid MaxiCode Mode", "" },
};
int data_size = sizeof(data) / sizeof(struct item);
char escaped[1024];
for (int i = 0; i < data_size; i++) {
if (index != -1 && i != index) continue;
struct zint_symbol *symbol = ZBarcode_Create();
assert_nonnull(symbol, "Symbol not created\n");
symbol->debug = ZINT_DEBUG_TEST; // Needed to get codeword dump in errtxt
int length = testUtilSetSymbol(symbol, BARCODE_MAXICODE, data[i].input_mode, data[i].eci, data[i].option_1, data[i].option_2, -1, -1 /*output_options*/, data[i].data, data[i].length, debug);
strcpy(symbol->primary, data[i].primary);
ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
if (generate) {
printf(" /*%3d*/ { %s, %d, %d, %d, \"%s\", %d, \"%s\", %s, %d, \"%s\", \"%s\" },\n",
i, testUtilInputModeName(data[i].input_mode), data[i].eci, data[i].option_1, data[i].option_2,
testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), data[i].length, data[i].primary,
testUtilErrorName(data[i].ret), symbol->width, symbol->errtxt, data[i].comment);
} else {
if (ret < 5) {
assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data);
}
assert_zero(strcmp(symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected);
}
ZBarcode_Delete(symbol);
}
testFinish();
}
static void test_encode(int index, int generate, int debug) {
testStart("");
@ -95,7 +211,9 @@ static void test_encode(int index, int generate, int debug) {
struct item {
int input_mode;
int option_1;
int option_2;
char *data;
int length;
char* primary;
int ret;
@ -105,7 +223,7 @@ static void test_encode(int index, int generate, int debug) {
char *expected;
};
struct item data[] = {
/* 0*/ { -1, -1, "THIS IS A 93 CHARACTER CODE SET A MESSAGE THAT FILLS A MODE 4, UNAPPENDED, MAXICODE SYMBOL...", "", 0, 33, 30, "ISO/IEC 16023:2000 Figure 2",
/* 0*/ { -1, -1, -1, "THIS IS A 93 CHARACTER CODE SET A MESSAGE THAT FILLS A MODE 4, UNAPPENDED, MAXICODE SYMBOL...", -1, "", 0, 33, 30, "ISO/IEC 16023:2000 Figure 2, same",
"011111010000001000001000100111"
"000100000001000000001010000000"
"001011001100100110110010010010"
@ -140,7 +258,7 @@ static void test_encode(int index, int generate, int debug) {
"001001101111101101101010011100"
"001011000000111101100100001000"
},
/* 1*/ { -1, 4, "MaxiCode (19 chars)", "", 0, 33, 30, "ISO/IEC 16023:2000 Figure H1 **NOT SAME** TODO: investigate",
/* 1*/ { -1, 4, -1, "MaxiCode (19 chars)", -1, "", 0, 33, 30, "ISO/IEC 16023:2000 Figure H1 **NOT SAME** different encodation (figure uses '3 Shift A' among other differences)",
"001101011111011100000010101111"
"101100010001001100010000001100"
"101100001010001111001001111101"
@ -175,6 +293,251 @@ static void test_encode(int index, int generate, int debug) {
"010110010110001110100000010100"
"010011110011000001010111100111"
},
/* 2*/ { DATA_MODE | ESCAPE_MODE, 2, 96, "1Z00004951\\GUPSN\\G06X610\\G159\\G1234567\\G1/1\\G\\GY\\G634 ALPHA DR\\GPITTSBURGH\\GPA\\R\\E", -1, "152382802840001", 0, 33, 30, "ISO/IEC 16023:2000 Figure B2 **NOT SAME** uses different encodation (figure uses Latch B/Latch A instead of Shift B for '>\\R', and precedes PAD chars with Latch B)",
"110101110110111110111111101111"
"010101010111000011011000010010"
"110110110001001010101010010011"
"111000101010101111111111111100"
"001111000010110010011000000011"
"001001110010101010100000000000"
"111011111110111111101111111110"
"100110000011001001110000001010"
"010001100010101010101001110001"
"110111100011010000011011111100"
"001100110011110000001110101001"
"101110101000000001011111011000"
"101010000000000000010110111100"
"111101100000000000011011100010"
"101010010000000000000110011101"
"001000010000000000011100011110"
"010011001000000000001000001010"
"000000101000000000001010000010"
"000100111100000000001110101010"
"000010101100000000001000110010"
"100000111010000000011101100011"
"101000100000000000110110100000"
"001000001110100101100110100101"
"011001110010101001100000001000"
"000010100010110001010101011010"
"100111000011111000001001011000"
"110010001001010010101100011101"
"001001110101110100011001110010"
"011111010011101100111101010011"
"111111101111101010101101111000"
"101001110101110111010111000011"
"010110101101000001111000100110"
"110110100000010000001011110011"
},
/* 3*/ { -1, 3, -1, "CEN", -1, "B1050056999", 0, 33, 30, "ISO/IEC 16023:2000 B.1 Example (primary only given, data arbitrary); verified manually against BWIP and tec-it",
"000000010101010101010101010111"
"001011000000000000000000000010"
"111001101010101010101010101000"
"010101010101010101010101010110"
"000000000000000000000000000001"
"101010101010101010101010101010"
"010101010101010101010101010100"
"000000000000000000000000000010"
"101010101010101010101010101000"
"010101010111100000100101010110"
"000000000001110000010100000010"
"101010101000000011010010101010"
"010101111100000000100001010110"
"000000001100000000011000000010"
"101010100100000000011110101001"
"010101011000000000000001010110"
"000000101000000000001000000001"
"101010110000000000001010101010"
"010101010000000000011101010101"
"000000101000000000011100000000"
"101010111100000000001010101001"
"010101011110000000011101010110"
"000000001110000001111000000011"
"101010101011011001000110101010"
"010101010101010101011100100010"
"000000000000000000000011011100"
"101010101010101010101001110100"
"111011101110000110101011010110"
"100001011111111101000011100111"
"110100001000001101100010100110"
"110110111111011110000011011111"
"010010001001110010000101000010"
"010001011010000011010010011100"
},
/* 4*/ { UNICODE_MODE | ESCAPE_MODE, -1, -1, "Comité Européen de Normalisation\034rue de Stassart 36\034B-1050 BRUXELLES\034TEL +3225196811", -1, "", 0, 33, 30, "ISO/IEC 16023:2000 Example F.5 **NOT SAME** uses different encodation (2 Shift A among other things)",
"010010100010110000000100001111"
"001010001100110110111110100110"
"001010011100101010011100100000"
"000000100010000000001000000110"
"111101100000011100110011110001"
"011110001011100010100111010010"
"101010000100001101101000101001"
"110010101110100100001000000000"
"000110101100100000110010111110"
"111101111111111000110110100000"
"100000111001111010010010000011"
"011100111100000000101100011010"
"100001101110000000101111111101"
"110011000100000000111100001010"
"000110010000000000010110001010"
"101010010000000000001000011100"
"011000001000000000001000000010"
"001001010000000000001101000000"
"000000010000000000010100101000"
"101111110100000000011110001100"
"100000000010000000011010110011"
"101001010010000001011100001010"
"001101000010001011110111101010"
"111111001010000001100100100000"
"001000001101010101010010111001"
"111001000000000000001010100000"
"010001101010101010101010110001"
"011011000011100001011001101100"
"101100000001111010000001100011"
"110001001100011100110111011010"
"011110010010101101110100000100"
"001011110011100001001001101100"
"000010111011111010110011000011"
},
/* 5*/ { -1, -1, -1, "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", -1, "", 0, 33, 30, "Numeric compaction, verified manually against BWIPP and tec-it",
"010111101101010111101101010111"
"111011110110111011110110111010"
"001111111101001111111101001100"
"101101010111101101010111101100"
"111110111001111110111001111100"
"111111000111111111000111111110"
"110101011110110101011110110110"
"011011101111011011101111011000"
"110100111111110100111111110101"
"010111101111111100110111010100"
"111001111011011110011111101100"
"000111111110000000111011110000"
"011110100110000000000111010101"
"101111001000000000110101101110"
"111111110100000000000011010001"
"010111111000000000001110110110"
"111001101000000000001011111001"
"000111010000000000001011111100"
"011110011000000000011011010101"
"101111000100000000010001101100"
"111111100110000000100111010010"
"010101110100000001010110110110"
"101110011010101111111011111011"
"110001110111110101111011111110"
"111011010101111111110000111011"
"111101101110110101010001001000"
"111111010011111010101111110011"
"000101011000111100010001000010"
"011110001101100001011010110010"
"101110000100010011000001001000"
"100000001010110100100110001100"
"111010101011001101111001011010"
"011110011111000011101011111011"
},
/* 6*/ { -1, 5, -1, "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\037\237\240\242\243\244\245\246\247\251\255\256\266\225\226\227\230\231\232\233\234\235\236", 51, "", 0, 33, 30, "Mode 5 set E; single difference from BWIPP - Zint uses Latch B at end before padding instead of Latch A",
"000000000000000000101010101011"
"100101010111111111000000001000"
"110010011100100111001001110001"
"010101010101011010101010101000"
"010110101010001101010110101000"
"100011011000110101100011011000"
"010101010101111111111111111110"
"010111111111000000001010101010"
"011100100111001001110010011101"
"010101011011110000001011111100"
"000000001111110010010011010100"
"101010100110000010001011100000"
"010101110010000000001101010100"
"000000111000000000001000000010"
"101010110100000000001110101011"
"010101010000000000001001010100"
"000000001000000000001000000001"
"101010100000000000001010101010"
"010101100000000000001001010100"
"000000000000000000000000000000"
"101010100100000000011110101010"
"101100110100000001110101100110"
"011100010010110101110111010011"
"110011100010110001001000101010"
"110001101111100011111110101000"
"111110010101110100010110100000"
"110001110000111101111111000011"
"111001000100001011001011011110"
"101010110110100001110011010011"
"100100100001001100000001100000"
"010101001001000001111101011111"
"110110111000001000001101100100"
"100100010010000000010001010111"
},
/* 7*/ { -1, 6, -1, "\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377\241\250\253\257\260\264\267\270\273\277\212\213\214\215\216\217\220\221\222\223\224", -1, "", 0, 33, 30, "Mode 6 set D; single difference from BWIPP as above - Zint uses Latch B at end before padding instead of Latch A",
"000000000000000000101010101011"
"100101010111111111000000001000"
"110010011100100111001001110001"
"010101010101010110101010101000"
"101010100000000001010110101000"
"110110001101100001100011011000"
"010101010101010111111111111111"
"010101011111111100000000101000"
"001001110010011100100111001001"
"010111110111110000000011111100"
"000011011011110010011101101000"
"101011101110000001000100110100"
"010101110000000000000001010100"
"000000101000000000000000000010"
"101010110100000000000110101010"
"010101010000000000001001010100"
"000000001000000000001000000011"
"101010100000000000001010101000"
"010101101100000000001001010110"
"000000101000000000001000000010"
"101010010110000000011010101001"
"010101011100000000111101010100"
"000000001110110111011000000011"
"101010100110110001100110101010"
"010101010101010101011101101100"
"000000000000000000001000010000"
"101010101010101010100110000001"
"101000111111101000101010110100"
"010100110011011001101100111001"
"100101010011111101011110000010"
"111101110110111101001001010101"
"011110000010110111001011110110"
"001110010110111101101011110010"
},
/* 8*/ { -1, 6, -1, "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\252\254\261\262\263\265\271\272\274\275\276\200\201\202\203\204\205\206\207\210\211", -1, "", 0, 33, 30, "Mode 6 set C; single difference from BWIPP as above - Zint uses Latch B at end before padding instead of Latch A",
"000000000000000000101010101011"
"100101010111111111000000001000"
"110010011100100111001001110001"
"010101010101010110101010101000"
"101010100000000001010110101000"
"110110001101100001100011011000"
"010101010101010111111111111111"
"010101011111111100000000101000"
"001001110010011100100111001001"
"010111111111110000000111111100"
"000011010111110010010001101000"
"101011101010000001001100110100"
"010101100000000000000101010100"
"000000011000000000000100000010"
"101010110100000000000010101010"
"010101010000000000001001010100"
"000000001000000000001000000011"
"101010100000000000001010101000"
"010101110000000000001001010110"
"000000111100000000001100000010"
"101010110000000000010110101001"
"010101010100000000101101010100"
"000000001010110101011000000011"
"101010100010110001010110101010"
"010101010101010101011101101100"
"000000000000000000001000010000"
"101010101010101010100110000001"
"101000111111101000101010110100"
"010100110011011001101100111001"
"100101010011111101011110000010"
"111101110110111101001001010101"
"011110000010110111001011110110"
"001110010110111101101011110010"
},
};
int data_size = ARRAY_SIZE(data);
@ -187,16 +550,16 @@ static void test_encode(int index, int generate, int debug) {
struct zint_symbol *symbol = ZBarcode_Create();
assert_nonnull(symbol, "Symbol not created\n");
int length = testUtilSetSymbol(symbol, BARCODE_MAXICODE, data[i].input_mode, -1 /*eci*/, data[i].option_1, -1, -1, -1 /*output_options*/, data[i].data, -1, debug);
int length = testUtilSetSymbol(symbol, BARCODE_MAXICODE, data[i].input_mode, -1 /*eci*/, data[i].option_1, data[i].option_2, -1, -1 /*output_options*/, data[i].data, data[i].length, debug);
strcpy(symbol->primary, data[i].primary);
ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
if (generate) {
printf(" /*%3d*/ { %s, %d, \"%s\", \"%s\", %s, %d, %d, \"%s\",\n",
i, testUtilInputModeName(data[i].input_mode), data[i].option_1, testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), data[i].primary,
testUtilErrorName(data[i].ret), symbol->rows, symbol->width, data[i].comment);
printf(" /*%3d*/ { %s, %d, %d, \"%s\", %d, \"%s\", %s, %d, %d, \"%s\",\n",
i, testUtilInputModeName(data[i].input_mode), data[i].option_1, data[i].option_2, testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), data[i].length,
data[i].primary, testUtilErrorName(data[i].ret), symbol->rows, symbol->width, data[i].comment);
testUtilModulesDump(symbol, " ", "\n");
printf(" },\n");
} else {
@ -204,11 +567,9 @@ static void test_encode(int index, int generate, int debug) {
assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data);
assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data);
if (ret == 0) {
int width, row;
ret = testUtilModulesCmp(symbol, data[i].expected, &width, &row);
assert_zero(ret, "i:%d testUtilModulesCmp ret %d != 0 width %d row %d (%s)\n", i, ret, width, row, data[i].data);
}
int width, row;
ret = testUtilModulesCmp(symbol, data[i].expected, &width, &row);
assert_zero(ret, "i:%d testUtilModulesCmp ret %d != 0 width %d row %d (%s)\n", i, ret, width, row, data[i].data);
}
}
@ -236,7 +597,7 @@ static void test_best_supported_set(int index, int generate, int debug) {
char *expected;
};
struct item data[] = {
/* 0*/ { "am.//ab,\034TA# z\015!", 0, 100, 100, 0, 33, 30, "TODO: Better data and verify expected",
/* 0*/ { "am.//ab,\034TA# z\015!", 0, 100, 100, 0, 33, 30, "Different encodation than BWIPP, same number of codewords",
"111010000101111000111101010111"
"111110000000010100111000000000"
"110000101100110100111010101011"
@ -322,17 +683,18 @@ static void test_fuzz(int index, int debug) {
int ret;
struct item {
int eci;
char *data;
int length;
int ret;
};
// s/\/\*[ 0-9]*\*\//\=printf("\/*%2d*\/", line(".") - line("'<"))
struct item data[] = {
/* 0*/ { "\223\223\223\223\223\200\000\060\060\020\122\104\060\343\000\000\040\104\104\104\104\177\377\040\000\324\336\000\000\000\000\104\060\060\060\060\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\060\104\104\000\000\000\040\104\104\104\104\177\377\377\377\324\336\000\000\000\000\104\377\104\001\104\104\104\104\104\104\233\233\060\060\060\060\060\060\060\060\060\325\074", 107, ZINT_ERROR_TOO_LONG }, // Original OSS-Fuzz triggering data
/* 1*/ { "AaAaAaAaAaAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA123456789", -1, ZINT_ERROR_TOO_LONG }, // Add 6 lowercase a's so 6 SHIFTS inserted so 6 + 138 (max input len) = 144 and numbers come at end of buffer
/* 2*/ { "AaAaAaAaAaAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA123456789A", -1, ZINT_ERROR_TOO_LONG },
/* 3*/ { "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678", -1, ZINT_ERROR_TOO_LONG }, // First 6 chars ignored for number compaction so max numeric digits appears to be 135 not 138 (for mode 4 anyway) TODO: investigate further
/* 4*/ { "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345", -1, 0 },
/* 0*/ { -1, "\223\223\223\223\223\200\000\060\060\020\122\104\060\343\000\000\040\104\104\104\104\177\377\040\000\324\336\000\000\000\000\104\060\060\060\060\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\104\060\104\104\000\000\000\040\104\104\104\104\177\377\377\377\324\336\000\000\000\000\104\377\104\001\104\104\104\104\104\104\233\233\060\060\060\060\060\060\060\060\060\325\074", 107, ZINT_ERROR_TOO_LONG }, // Original OSS-Fuzz triggering data
/* 1*/ { -1, "AaAaAaAaAaAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA123456789", -1, ZINT_ERROR_TOO_LONG }, // Add 6 lowercase a's so 6 SHIFTS inserted so 6 + 138 (max input len) = 144 and numbers come at end of buffer
/* 2*/ { -1, "AaAaAaAaAaAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA123456789A", -1, ZINT_ERROR_TOO_LONG },
/* 3*/ { -1, "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789", -1, ZINT_ERROR_TOO_LONG },
/* 4*/ { 32768, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678", -1, ZINT_ERROR_TOO_LONG },
};
int data_size = sizeof(data) / sizeof(struct item);
@ -343,13 +705,7 @@ static void test_fuzz(int index, int debug) {
struct zint_symbol *symbol = ZBarcode_Create();
assert_nonnull(symbol, "Symbol not created\n");
symbol->symbology = BARCODE_MAXICODE;
symbol->debug |= debug;
int length = data[i].length;
if (length == -1) {
length = strlen(data[i].data);
}
int length = testUtilSetSymbol(symbol, BARCODE_MAXICODE, -1 /*input_mode*/, data[i].eci, -1 /*option_1*/, -1, -1, -1 /*output_options*/, data[i].data, data[i].length, debug);
ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
@ -360,13 +716,88 @@ static void test_fuzz(int index, int debug) {
testFinish();
}
#include <time.h>
#define TEST_PERF_ITERATIONS 1000
// Not a real test, just performance indicator
static void test_perf(int index, int debug) {
if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
return;
}
int ret;
struct item {
int symbology;
int input_mode;
int option_1;
int option_2;
char *data;
char *primary;
int ret;
int expected_rows;
int expected_width;
char *comment;
};
struct item data[] = {
/* 0*/ { BARCODE_MAXICODE, UNICODE_MODE | ESCAPE_MODE, -1, -1,
"1Z34567890\\GUPSN\\G102562\\G034\\G\\G1/1\\G\\GY\\G2201 Second St\\GFt Myers\\GFL\\R\\E",
"339010000840001", 0, 33, 30, "Mode 2" },
};
int data_size = ARRAY_SIZE(data);
clock_t start, total_encode = 0, total_buffer = 0, diff_encode, diff_buffer;
for (int i = 0; i < data_size; i++) {
if (index != -1 && i != index) continue;
diff_encode = diff_buffer = 0;
for (int j = 0; j < TEST_PERF_ITERATIONS; j++) {
struct zint_symbol *symbol = ZBarcode_Create();
assert_nonnull(symbol, "Symbol not created\n");
int length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, data[i].option_1, data[i].option_2, -1, -1 /*output_options*/, data[i].data, -1, debug);
strcpy(symbol->primary, data[i].primary);
start = clock();
ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
diff_encode += clock() - start;
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data);
assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data);
start = clock();
ret = ZBarcode_Buffer(symbol, 0 /*rotate_angle*/);
diff_buffer += clock() - start;
assert_zero(ret, "i:%d ZBarcode_Buffer ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
ZBarcode_Delete(symbol);
}
printf("%s: diff_encode %gms, diff_buffer %gms\n", data[i].comment, diff_encode * 1000.0 / CLOCKS_PER_SEC, diff_buffer * 1000.0 / CLOCKS_PER_SEC);
total_encode += diff_encode;
total_buffer += diff_buffer;
}
if (index != -1) {
printf("totals: encode %gms, buffer %gms\n", total_encode * 1000.0 / CLOCKS_PER_SEC, total_buffer * 1000.0 / CLOCKS_PER_SEC);
}
}
int main(int argc, char *argv[]) {
testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */
{ "test_large", test_large, 1, 0, 1 },
{ "test_input", test_input, 1, 1, 1 },
{ "test_encode", test_encode, 1, 1, 1 },
{ "test_best_supported_set", test_best_supported_set, 1, 1, 1 },
{ "test_fuzz", test_fuzz, 1, 0, 1 },
{ "test_perf", test_perf, 1, 0, 1 },
};
testRun(argc, argv, funcs, ARRAY_SIZE(funcs));

View file

@ -63,6 +63,7 @@ static void test_print(int index, int generate, int debug) {
/* 1*/ { BARCODE_QRCODE, 2, 1, -1, "1234567890", "qr_v1_m" },
/* 2*/ { BARCODE_DOTCODE, -1, -1, 5, "2741", "dotcode_aim_fig7" },
/* 3*/ { BARCODE_ULTRA, -1, -1, -1, "A", "ultracode_a" },
/* 4*/ { BARCODE_MAXICODE, -1, -1, -1, "THIS IS A 93 CHARACTER CODE SET A MESSAGE THAT FILLS A MODE 4, UNAPPENDED, MAXICODE SYMBOL...", "maxicode_fig_2" },
};
int data_size = sizeof(data) / sizeof(struct item);