diff --git a/vasl_templates/webapp/data/ordnance/finnish.json b/vasl_templates/webapp/data/ordnance/finnish.json
index 92a6649..74f1d0c 100644
--- a/vasl_templates/webapp/data/ordnance/finnish.json
+++ b/vasl_templates/webapp/data/ordnance/finnish.json
@@ -17,7 +17,7 @@
},
{ "name": "81 Krh/32",
"type": "MTR",
- "capabilities2": { "s": [ [8,"N1"], "\u2020" ], "IR": [ [null,"3+"], "\u2020" ] },
+ "capabilities2": { "s": [ [8,"N1+"], "\u2020" ], "IR": [ [null,"3+"], "\u2020" ] },
"comments": [ "QSU" ],
"note_number": "3\u2020",
"notes": [ "A" ],
diff --git a/vasl_templates/webapp/static/snippets.js b/vasl_templates/webapp/static/snippets.js
index a519eab..4718deb 100644
--- a/vasl_templates/webapp/static/snippets.js
+++ b/vasl_templates/webapp/static/snippets.js
@@ -1292,9 +1292,12 @@ function _check_capability_timestamp( capabilities, timestamp, nat, scenario_the
}
}
- // remove any trailing "+" (FIXME! What does it even mean? Doesn't make sense :-/)
- if ( timestamp.substring( timestamp.length-1 ) === "+" )
+ // check for a trailing "+"
+ var hasTrailingPlus = false ;
+ if ( timestamp.substring( timestamp.length-1 ) === "+" ) {
+ hasTrailingPlus = true ;
timestamp = timestamp.substring( 0, timestamp.length-1 ) ;
+ }
// check if there is anything left
if ( ! timestamp ) {
@@ -1319,7 +1322,7 @@ function _check_capability_timestamp( capabilities, timestamp, nat, scenario_the
// check if the capabilitity is available
if ( timestamp >= 50 )
timestamp -= 40 ;
- if ( scenario_year > 1940 + timestamp )
+ if ( hasTrailingPlus && scenario_year > 1940 + timestamp )
return capabilities[0] ;
else if ( scenario_year === 1940 + timestamp ) {
if( !month || scenario_month >= month )
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1945.txt
index 9e3dba3..9153ed2 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/axis-minor-common/1945.txt
@@ -11,9 +11,9 @@ Ur wz. 35
s18-1100 50 A H R No Long Range | Animal-Packed
Kanon PUV vz. 37(t) A4[1S]† 51† B E H S QSU
Bohler M35 52† A H R S QSU | No Gunshield | Animal-Packed
-5cm PaK 38(g) A4[3]3[4] A3 53† B E H R S QSU
+5cm PaK 38(g) A4[3]3[4] 53† B E H R S QSU
7.5cm PaK 97/38(g) H5[3+] s6 H5 s6 54† B E R QSU
-7.5cm PaK 40(g) A4[3]3[4] A3 55† B E H R S QSU
+7.5cm PaK 40(g) A4[3]3[4] 55† B E H R S QSU
Skoda M15 56† A B C H R S QSU | Animal-Packed
Canon de 75 mle 1897 s7 s7 57 B R QSU
Skoda M29 AP6 AP6 58† A R S Animal-Packed
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1940.txt
index 5e55d62..d4049fd 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1940.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1940.txt
@@ -4,7 +4,7 @@ Name Capabilities (effective)
------------------- ---------------------------------- ---------------------------------- --- ------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------
47 Krh/41 1 A Animal-Packed
50 Krh/39(r) 2† A B Animal-Packed | No Captured Use penalty for Russians
-81 Krh/32 IR[3+]† s8[N1]† 3† A QSU | Animal-Packed
+81 Krh/32 IR[3+]† s8[N1+]† 3† A QSU | Animal-Packed
81 Savunheitin M/42 s† s† 4† A QSU | Smoke only | ∞ Smoke | Range: 2-18 | Animal-Packed
120 Krh/40 5† n/a QSU
Boys ATR(b) 6† n/a AP TK# = 5 | No Long Range
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1941.txt
index 7d02c99..47631a4 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1941.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1941.txt
@@ -4,7 +4,7 @@ Name Capabilities (effective)
------------------- ---------------------------------- ---------------------------------- --- ------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------
47 Krh/41 1 A Animal-Packed
50 Krh/39(r) 2† A B Animal-Packed | No Captured Use penalty for Russians
-81 Krh/32 IR[3+]† s8[N1]† 3† A QSU | Animal-Packed
+81 Krh/32 IR[3+]† s8[N1+]† 3† A QSU | Animal-Packed
81 Savunheitin M/42 s† s† 4† A QSU | Smoke only | ∞ Smoke | Range: 2-18 | Animal-Packed
120 Krh/40 5† n/a QSU
Boys ATR(b) 6† n/a AP TK# = 5 | No Long Range
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1942.txt
index 5126d94..56baa5b 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1942.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1942.txt
@@ -4,7 +4,7 @@ Name Capabilities (effective)
------------------- ---------------------------------- ---------------------------------- --- ------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------
47 Krh/41 1 A Animal-Packed
50 Krh/39(r) 2† A B Animal-Packed | No Captured Use penalty for Russians
-81 Krh/32 IR[3+]† s8[N1]† s8† 3† A QSU | Animal-Packed
+81 Krh/32 IR[3+]† s8[N1+]† s8† 3† A QSU | Animal-Packed
81 Savunheitin M/42 s† s† 4† A QSU | Smoke only | ∞ Smoke | Range: 2-18 | Animal-Packed
120 Krh/40 5† n/a QSU
Boys ATR(b) 6† n/a AP TK# = 5 | No Long Range
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1943.txt
index 653c6f8..488cea6 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1943.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1943.txt
@@ -4,7 +4,7 @@ Name Capabilities (effective)
------------------- ---------------------------------- ---------------------------------- --- ------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------
47 Krh/41 1 A Animal-Packed
50 Krh/39(r) 2† A B B# = 12 | Animal-Packed | No Captured Use penalty for Russians
-81 Krh/32 IR[3+]† s8[N1]† IR† s8† 3† A QSU | Animal-Packed
+81 Krh/32 IR[3+]† s8[N1+]† IR† s8† 3† A QSU | Animal-Packed
81 Savunheitin M/42 s† s† 4† A QSU | Smoke only | ∞ Smoke | Range: 2-25 | Animal-Packed
120 Krh/40 5† n/a QSU
Boys ATR(b) 6† n/a AP TK# = 5 | No Long Range
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1944.txt
index 38e13ca..bafbf79 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1944.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1944.txt
@@ -4,7 +4,7 @@ Name Capabilities (effective)
------------------- ---------------------------------- ---------------------------------- --- ------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------
47 Krh/41 1 A Animal-Packed
50 Krh/39(r) 2† A B B# = 12 | Animal-Packed | No Captured Use penalty for Russians
-81 Krh/32 IR[3+]† s8[N1]† IR† s8† 3† A QSU | Animal-Packed
+81 Krh/32 IR[3+]† s8[N1+]† IR† s8† 3† A QSU | Animal-Packed
81 Savunheitin M/42 s† s† 4† A QSU | Smoke only | ∞ Smoke | Range: 2-25 | Animal-Packed
120 Krh/40 5† n/a QSU
Boys ATR(b) 6† n/a AP TK# = 5 | No Long Range
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1945.txt
index 813fd59..cbaad3a 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/finnish/1945.txt
@@ -4,7 +4,7 @@ Name Capabilities (effective)
------------------- ---------------------------------- ---------------------------------- --- ------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------
47 Krh/41 1 A Animal-Packed
50 Krh/39(r) 2† A B B# = 12 | Animal-Packed | No Captured Use penalty for Russians
-81 Krh/32 IR[3+]† s8[N1]† IR† s8† 3† A QSU | Animal-Packed
+81 Krh/32 IR[3+]† s8[N1+]† IR† s8† 3† A QSU | Animal-Packed
81 Savunheitin M/42 s† s† 4† A QSU | Smoke only | ∞ Smoke | Range: 2-25 | Animal-Packed
120 Krh/40 5† n/a QSU
Boys ATR(b) 6† n/a AP TK# = 5 | No Long Range
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1943.txt
index c464642..f889a3a 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1943.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1943.txt
@@ -33,6 +33,6 @@ s 10cm K 18 H6 s8 H6 s8
3.7cm FlaK 43 29 n/a
8.8cm FlaK 18 o. 36 A5[2]4[3]3[4] LF [88L†, 1 ROF, B11] A4 LF [88L†, 1 ROF, B11] 30 C† N
2cm Tankbüsche S-18 1† AxM A No Long Range | Animal-Packed
-4.7 cm PaK 36(t) A5[1]4[2] A4 2† n/a QSU
+4.7 cm PaK 36(t) A5[1]4[2] 2† n/a QSU
7.5 cm Geb G36 H7† H7† 3† Ge O HEAT ≥ 26 hexes: As * Gun | QSU | Animal-Packed
10.5 cm Geb H40 H8 H8 4† Ge O QSU | Animal-Packed
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1944.txt
index 8db6e6a..d2edbab 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1944.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1944.txt
@@ -33,6 +33,6 @@ s 10cm K 18 H6 s8 H6 s8
3.7cm FlaK 43 29 n/a
8.8cm FlaK 18 o. 36 A5[2]4[3]3[4] LF [88L†, 1 ROF, B11] A3 LF [88L†, 1 ROF, B11] 30 C† N
2cm Tankbüsche S-18 1† AxM A No Long Range | Animal-Packed
-4.7 cm PaK 36(t) A5[1]4[2] A4 2† n/a QSU
+4.7 cm PaK 36(t) A5[1]4[2] 2† n/a QSU
7.5 cm Geb G36 H7† H7† 3† Ge O HEAT ≥ 26 hexes: As * Gun | QSU | Animal-Packed
10.5 cm Geb H40 H8 H8 4† Ge O QSU | Animal-Packed
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1945.txt
index 3b669d8..c499ef8 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/german/1945.txt
@@ -7,12 +7,12 @@ Name Capabilities (effective)
10cm NbW 35 s10 s10 3 O QSU | Animal-Packed
12cm GrW 42 s8 s8 4† n/a QSU
2.8cm sPzB 41 5† A† N P QSU | Use APCR TK vs AFV | ∞ APCR | En Portee NA
-3.7cm PaK 35/36 A4[1]5[2]4[3]3[4] H6[9]† A3 H6[9]† 6 B† N P QSU | En Portee NA
+3.7cm PaK 35/36 A4[1]5[2]4[3]3[4] H6[9]† H6[9]† 6 B† N P QSU | En Portee NA
4.2cm lePaK 41 7 A† NT QSU | Use APCR TK vs AFV | ∞ APCR
-5cm PaK 38 A5[1]6[2]5[3]4[4] A4 8† N QSU
+5cm PaK 38 A5[1]6[2]5[3]4[4] 8† N QSU
7.5cm PaK 97/38 H6 s7 H6 s7 9 NT QSU
-7.5cm PaK 40 A5[2]4[3]3[4] s7 A3 s7 10† NT QSU
-7.62cm PaK 36r A5[2]4[3]3[4] s6 A3 s6 11† N QSU
+7.5cm PaK 40 A5[2]4[3]3[4] s7 s7 10† NT QSU
+7.62cm PaK 36r A5[2]4[3]3[4] s6 s6 11† N QSU
8.8cm PaK 43 LF [88†, 1 ROF, B11, M4, -1] LF [88†, 1 ROF, B11, M4, -1] 12 C†
8.8cm PaK 43/41 13 n/a
12.8cm K 81/1 14 n/a No Move
@@ -31,8 +31,8 @@ s 10cm K 18 H6 s8 H6 s8
2cm FlaKvierling 38 27† N 4 TK DR
3.7cm FlaK 36 o. 37 H5[9]† H5[9]† 28 B† N
3.7cm FlaK 43 29 n/a
-8.8cm FlaK 18 o. 36 A5[2]4[3]3[4] LF [88L†, 1 ROF, B11] A3 LF [88L†, 1 ROF, B11] 30 C† N
+8.8cm FlaK 18 o. 36 A5[2]4[3]3[4] LF [88L†, 1 ROF, B11] LF [88L†, 1 ROF, B11] 30 C† N
2cm Tankbüsche S-18 1† AxM A No Long Range | Animal-Packed
-4.7 cm PaK 36(t) A5[1]4[2] A4 2† n/a QSU
+4.7 cm PaK 36(t) A5[1]4[2] 2† n/a QSU
7.5 cm Geb G36 H7† H7† 3† Ge O HEAT ≥ 26 hexes: As * Gun | QSU | Animal-Packed
10.5 cm Geb H40 H8 H8 4† Ge O QSU | Animal-Packed
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1943.txt
index 9129985..c77c76d 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1943.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1943.txt
@@ -18,7 +18,7 @@ Name Capabilities (effective) # Notes Comm
76.2mm P obr. 00/02P s8 s8 13 n/a QSU | Horse-Drawn
76.2mm P obr. 02/30 s8 s8 14 n/a QSU | Horse-Drawn
76.2mm P obr. 39 A4[2]5[3]6[4]7[5] s8 A5 s8 15† n/a QSU
-76.2mm P obr. 36 A4[2] s8 A4 s8 16† n/a QSU
+76.2mm P obr. 36 A4[2] s8 s8 16† n/a QSU
85mm P obr. 44 A5[4]6[5] s8 s8 17 n/a QSU
107mm P obr. 10/30 s8 s8 18 n/a Horse-Drawn
122mm G obr. 10/30 s8 s8 19 n/a Horse-Drawn
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1944.txt
index d058b03..c28697e 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1944.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1944.txt
@@ -18,7 +18,7 @@ Name Capabilities (effective) # Notes Comm
76.2mm P obr. 00/02P s8 s8 13 n/a QSU | Horse-Drawn
76.2mm P obr. 02/30 s8 s8 14 n/a QSU | Horse-Drawn
76.2mm P obr. 39 A4[2]5[3]6[4]7[5] s8 A6 s8 15† n/a QSU
-76.2mm P obr. 36 A4[2] s8 A4 s8 16† n/a QSU
+76.2mm P obr. 36 A4[2] s8 s8 16† n/a QSU
85mm P obr. 44 A5[4]6[5] s8 A5 s8 17 n/a QSU
107mm P obr. 10/30 s8 s8 18 n/a Horse-Drawn
122mm G obr. 10/30 s8 s8 19 n/a Horse-Drawn
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1945.txt
index 424fcc8..b927a21 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/russian/1945.txt
@@ -18,7 +18,7 @@ Name Capabilities (effective) # Notes Comm
76.2mm P obr. 00/02P s8 s8 13 n/a QSU | Horse-Drawn
76.2mm P obr. 02/30 s8 s8 14 n/a QSU | Horse-Drawn
76.2mm P obr. 39 A4[2]5[3]6[4]7[5] s8 A7 s8 15† n/a QSU
-76.2mm P obr. 36 A4[2] s8 A4 s8 16† n/a QSU
+76.2mm P obr. 36 A4[2] s8 s8 16† n/a QSU
85mm P obr. 44 A5[4]6[5] s8 A6 s8 17 n/a QSU
107mm P obr. 10/30 s8 s8 18 n/a Horse-Drawn
122mm G obr. 10/30 s8 s8 19 n/a Horse-Drawn
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1943.txt
index 9c7bb3b..0e8435a 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1943.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1943.txt
@@ -3,7 +3,7 @@
Name Capabilities (effective) # Notes Comments
------------------- -------------- ------------- --- ------- --------------------------------------
Minomet vz. 36 28 A QSU | Animal-Packed
-Kanon PUV vz. 36(t) A5[1]4[2] A4 29 E QSU | Black TH#
+Kanon PUV vz. 36(t) A5[1]4[2] 29 E QSU | Black TH#
leIG 18(g) H7[3+] H7 30 A E QSU | Animal-Packed | Black TH#
Skoda M37(K4) s6 s6 31 n/a
Skoda 47L40(t) 32† E QSU | vs Aircraft: ROF = 2 | Black TH#
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1944.txt
index f135291..7f4e916 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1944.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1944.txt
@@ -3,7 +3,7 @@
Name Capabilities (effective) # Notes Comments
------------------- -------------- ------------- --- ------- --------------------------------------
Minomet vz. 36 28 A QSU | Animal-Packed
-Kanon PUV vz. 36(t) A5[1]4[2] A4 29 E QSU | Black TH#
+Kanon PUV vz. 36(t) A5[1]4[2] 29 E QSU | Black TH#
leIG 18(g) H7[3+] H7 30 A E QSU | Animal-Packed | Black TH#
Skoda M37(K4) s6 s6 31 n/a
Skoda 47L40(t) 32† E QSU | vs Aircraft: ROF = 2 | Black TH#
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1945.txt
index ac102d6..49d86d5 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/ordnance/slovakian/1945.txt
@@ -3,7 +3,7 @@
Name Capabilities (effective) # Notes Comments
------------------- -------------- ------------- --- ------- --------------------------------------
Minomet vz. 36 28 A QSU | Animal-Packed
-Kanon PUV vz. 36(t) A5[1]4[2] A4 29 E QSU | Black TH#
+Kanon PUV vz. 36(t) A5[1]4[2] 29 E QSU | Black TH#
leIG 18(g) H7[3+] H7 30 A E QSU | Animal-Packed | Black TH#
Skoda M37(K4) s6 s6 31 n/a
Skoda 47L40(t) 32† E QSU | vs Aircraft: ROF = 2 | Black TH#
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1944.txt
index 8bedbe3..aa10311 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1944.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1944.txt
@@ -9,14 +9,14 @@ PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† C E H K†1 B D E H R CMG: AA ok (TCA only) | CE: +1 Rear Turret & Indirect Fire | French ESB
H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 B C D E H CMG: AA ok (TCA only) | CE: +1 Rear Turret & Indirect Fire | French ESB
LT vz 35(g) sD5 CS 4 sD5 CS 4 34† B E R S German ESB
-LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E H R S Czech ESB
-LT vz 38(t)E A4[2]3[3] sD7 CS 4 A3 sD7 CS 4 35† B E H S Czech ESB
+LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 sD6 CS 4 35† E H R S Czech ESB
+LT vz 38(t)E A4[2]3[3] sD7 CS 4 sD7 CS 4 35† B E H S Czech ESB
S35(f) CS 4 CS 4 36† A†1 D E H S Immob: dr ≤ 4 [EXC: mines, Direct Fire vs front/rear] | CMG: AA ok (TCA only) | CE: +1 Rear Turret & Indirect Fire | French ESB
PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A3 sD5 CS 5 37† C E H O†1 Q R German ESB
PzKpfw IIIN(g) H8[3+] s8 sD7 CS 5 H8 s8 sD7 CS 5 38† E O†1 Q R S German ESB
PzKpfw IVD(g) AP7 H5[3+] s8 sD7 CS 5 AP7 H5 s8 sD7 CS 5 39† E Q R German ESB
PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 H5 s8 sD7 CS 6 39† B E H Q R German ESB
-PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A3 s7 sD5 CS 6 39† B E H O†1 Q R German ESB
+PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 s7 sD5 CS 6 39† B E H O†1 Q R German ESB
StuG IIIG(g) A3[4] s8 sD7 CS 4 A3 s8 sD7 CS 4 40† B E H Q R AAMG: VCA only | German ESB
JgdPz 38(t) A3[4] HE7 CS 4 A3 HE7 CS 4 41† B E H AAMG: BU only, Rider NA, elevation restrictions | Czech ESB
SPW 250/1(g) CS 4 CS 4 42 E R German ESB
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1945.txt
index f9c8fac..09afd92 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/axis-minor-common/1945.txt
@@ -9,16 +9,16 @@ PzKpfw IB(g) sD6 CS 2 sD6 CS 2 31† C E H K†1 B D E H R CMG: AA ok (TCA only) | CE: +1 Rear Turret & Indirect Fire | French ESB
H39(f) ® AP10 CS 2 ® AP10 CS 2 33† A†1 B C D E H CMG: AA ok (TCA only) | CE: +1 Rear Turret & Indirect Fire | French ESB
LT vz 35(g) sD5 CS 4 sD5 CS 4 34† B E R S German ESB
-LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 A3 sD6 CS 4 35† E H R S Czech ESB
-LT vz 38(t)E A4[2]3[3] sD7 CS 4 A3 sD7 CS 4 35† B E H S Czech ESB
+LT vz 38(t)A A3[1]4[2]3[3] sD6 CS 4 sD6 CS 4 35† E H R S Czech ESB
+LT vz 38(t)E A4[2]3[3] sD7 CS 4 sD7 CS 4 35† B E H S Czech ESB
S35(f) CS 4 CS 4 36† A†1 D E H S Immob: dr ≤ 4 [EXC: mines, Direct Fire vs front/rear] | CMG: AA ok (TCA only) | CE: +1 Rear Turret & Indirect Fire | French ESB
-PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 A3 sD5 CS 5 37† C E H O†1 Q R German ESB
+PzKpfw IIIL(g) A5[2]4[3]3[4] sD5 CS 5 sD5 CS 5 37† C E H O†1 Q R German ESB
PzKpfw IIIN(g) H8[3+] s8 sD7 CS 5 H8 s8 sD7 CS 5 38† E O†1 Q R S German ESB
PzKpfw IVD(g) AP7 H5[3+] s8 sD7 CS 5 AP7 H5 s8 sD7 CS 5 39† E Q R German ESB
PzKpfw IVF1(g) AP7 H5[3+] s8 sD7 CS 6 AP7 H5 s8 sD7 CS 6 39† B E H Q R German ESB
-PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 A3 s7 sD5 CS 6 39† B E H O†1 Q R German ESB
-StuG IIIG(g) A3[4] s8 sD7 CS 4 A3 s8 sD7 CS 4 40† B E H Q R AAMG: VCA only | German ESB
-JgdPz 38(t) A3[4] HE7 CS 4 A3 HE7 CS 4 41† B E H AAMG: BU only, Rider NA, elevation restrictions | Czech ESB
+PzKpfw IVH(g) A4[2]3[3] s7 sD5 CS 6 s7 sD5 CS 6 39† B E H O†1 Q R German ESB
+StuG IIIG(g) A3[4] s8 sD7 CS 4 s8 sD7 CS 4 40† B E H Q R AAMG: VCA only | German ESB
+JgdPz 38(t) A3[4] HE7 CS 4 HE7 CS 4 41† B E H AAMG: BU only, Rider NA, elevation restrictions | Czech ESB
SPW 250/1(g) CS 4 CS 4 42 E R German ESB
SPW 251/1(g) CS 5 CS 5 42† C E R German ESB
SPW 251/9(g) H5 s8 CS 4[brewup] H5 s8 CS 4[brewup] 42† E R CMG: VCA only | German ESB
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1945.txt
index b282eab..bbc68bc 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british/1945.txt
@@ -47,7 +47,7 @@ Valentine II sM8 CS 4
Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
-Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sD5 sM8†[1] CS 7 31† NT S†2 Z†1 CC 40 MA: T | 76 SA: NT (bow-mounted) | 76 SA: +1 DRM vs Moving/Motion | Smoke & HE: 76 SA only | 76 SA: s9, ∞ HE | Steep climbs
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC 40 MA: T | 76 SA: NT (bow-mounted) | 76 SA: +1 DRM vs Moving/Motion | Smoke & HE: 76 SA only | 76 SA: s9, ∞ HE | Steep climbs
Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 D7†[2] HE8†[1] sD6 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC Steep climbs
Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC Steep climbs
Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 WP6†[1] s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC Steep climbs
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1945.txt
index defb70b..c18fb6f 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~canadian/1945.txt
@@ -47,7 +47,7 @@ Valentine II sM8 CS 4
Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
-Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sD5 sM8†[1] CS 7 31† NT S†2 Z†1 CC 40 MA: T | 76 SA: NT (bow-mounted) | 76 SA: +1 DRM vs Moving/Motion | Smoke & HE: 76 SA only | 76 SA: s9, ∞ HE | Steep climbs
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC 40 MA: T | 76 SA: NT (bow-mounted) | 76 SA: +1 DRM vs Moving/Motion | Smoke & HE: 76 SA only | 76 SA: s9, ∞ HE | Steep climbs
Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 D7†[2] HE8†[1] sD6 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC Steep climbs
Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC Steep climbs
Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 WP6†[1] s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC Steep climbs
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1945.txt
index 100dcf8..e8dc886 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/british~newzealand/1945.txt
@@ -47,7 +47,7 @@ Valentine II sM8 CS 4
Valentine V sM8 CS 4 sM8 CS 4 28† K†1 NT
Valentine VIII HE7 sD6 CS 4 HE7 sD6 CS 4 29 NT
Valentine XI WP6 s8 sD8 CS 4 WP6 s8 sD8 CS 4 30 n/a
-Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sD5 sM8†[1] CS 7 31† NT S†2 Z†1 CC 40 MA: T | 76 SA: NT (bow-mounted) | 76 SA: +1 DRM vs Moving/Motion | Smoke & HE: 76 SA only | 76 SA: s9, ∞ HE | Steep climbs
+Churchill I HE9†[2] s†[2] sD5[4] sM8†[1] CS 7 HE9†[2] s†[2] sM8†[1] CS 7 31† NT S†2 Z†1 CC 40 MA: T | 76 SA: NT (bow-mounted) | 76 SA: +1 DRM vs Moving/Motion | Smoke & HE: 76 SA only | 76 SA: s9, ∞ HE | Steep climbs
Churchill IV D6[J4]7[5]†[2] HE7[F3]8[4+]†[1] sD6[4+] sM8†[3] CS 7 D7†[2] HE8†[1] sD6 sM8†[3] CS 7 32† J†2 N Y†1 Z†3 CC Steep climbs
Churchill V H6 s9 sD7 sM8†[1] CS 7 H6 s9 sD7 sM8†[1] CS 7 33† S Z†1 CC Steep climbs
Churchill VI WP6[J4+]†[1] s8 sD7 sM8†[2] CS 7 WP6†[1] s8 sD7 sM8†[2] CS 7 34† W†1 Z†2 CC Steep climbs
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1942.txt
index 1948132..9a77a23 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1942.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1942.txt
@@ -16,9 +16,9 @@ FT-17 730(f) AP9 CS 2 AP9 CS 2
38H 735(f) AP10 CS 3 AP10 CS 3 9.2 a b† f French ESB | CMG: AA ok (TCA only)
35-S 739(f) CS 4 CS 4 9.3 a b†2 d†1 f French ESB | CMG: AA ok (TCA only) | Immob: dr ≤ 4 [EXC: mines, Direct Fire vs front/rear]
PzKpfw IIID sD6 CS 5 sD6 CS 5 10† n/a
-PzKpfw IIIF A4[1] sD7 CS 5 A4 sD7 CS 5 11† n/a
-PzKpfw IIIG A4[1] sD7 CS 5 A4 sD7 CS 5 12 N
-PzKpfw IIIH A4[1] sD7 CS 6 A4 sD7 CS 6 13† N
+PzKpfw IIIF A4[1] sD7 CS 5 sD7 CS 5 11† n/a
+PzKpfw IIIG A4[1] sD7 CS 5 sD7 CS 5 12 N
+PzKpfw IIIH A4[1] sD7 CS 6 sD7 CS 6 13† N
PzKpfw IIIJ A6[2] sD7 CS 6 A6 sD7 CS 6 14† N S
PzKpfw IIIL A6[2] sD7 CS 5 A6 sD7 CS 5 15† B† N S
PzKpfw IIIN H9 s9 sD7 CS 5 H9 s9 sD7 CS 5 16 B† NT S
@@ -50,8 +50,8 @@ StuG 75/18(i) H7 s9 CS 3 H7 s9 CS 3
StuG 75/34(i) s9 CS 3 s9 CS 3 40 I P† Red TH# | Italian ESB | AAMG: VCA only
StuG 105/25(i) H7 s9 CS 3 H7 s9 CS 3 41 I P† No IF | Red TH# | Italian ESB | AAMG: VCA only
StuG 75/46(i) s9 CS 3 s9 CS 3 42 I P† Red TH# | Italian ESB | AAMG: VCA only
-PzJg I A5[1] HE7 CS 3 A5 HE7 CS 3 43 N
-PzJg 35R(f) A5[1] HE7 CS 3 A5 HE7 CS 3 44 a French ESB
+PzJg I A5[1] HE7 CS 3 HE7 CS 3 43 N
+PzJg 35R(f) A5[1] HE7 CS 3 HE7 CS 3 44 a French ESB
Pz 35R 731(f) CS 2 CS 2 44.1† a French ESB
Marder I(f) A6[2] HE7 s7 CS 4[brewup] A6 HE7 s7 CS 4[brewup] 45† a French ESB
GSW 39H(f) Pak A4[4] HE9 CS 3 HE9 CS 3 45.1 a e French ESB
@@ -72,12 +72,12 @@ SPW 250/sMG CS 4† CS 4†
SPW 250/7 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 J† N Inherent Infantry Crew | AAMG: NA VCA
SPW 250/8 H6 s8 CS 4[brewup] H6 s8 CS 4[brewup] 60 Q† CMG: VCA only
SPW 250/9 CS 4 CS 4 61† A† MA & CMG: AA ok
-SPW 250/10 A4[1] CS 4 A4 CS 4 62 J† N AAMG: NA VCA
+SPW 250/10 A4[1] CS 4 CS 4 62 J† N AAMG: NA VCA
SPW 251/1 CS 5 CS 5 63 C† N
SPW 251/sMG CS 5† CS 5† 58† C† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
SPW 251/2 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 C† J† N Inherent Infantry Crew | AAMG: NA VCA
SPW 251/9 H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 64 C† N Q† CMG: VCA only
-SPW 251/10 A4[1] CS 4 A4 CS 4 65 C† J† N ATR | AAMG: NA VCA
+SPW 251/10 A4[1] CS 4 CS 4 65 C† J† N ATR | AAMG: NA VCA
SPW 251/16 CS 4[brewup] CS 4[brewup] 66† n/a Port/starboard FT's
SPW 251/21 CS 4 CS 4 66.1† n/a 3 TK DR | MA: AA ok
SPW 251/22 HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 67 J† AAMG: NA VCA
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1943.txt
index d2d0f96..82af066 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1943.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1943.txt
@@ -8,19 +8,19 @@ PzKpfw IIF sD7 CS 3 sD7 CS 3
PzKpfw II(Fl) sD7† CS 2[brewup] sD7† CS 2[brewup] 4† n/a sD: 3 hex range
PzKpfw IIL sD7 CS 4 sD7 CS 4 5 n/a
PzKpfw 35t sD5 CS 4 sD5 CS 4 6† n/a
-PzKpfw 38(t)A A4[1]5[2] sD6 CS 4 A5 sD6 CS 4 7† E ESB: 0 DRM
-PzKpfw 38(t)E A4[1]5[2] sD7 CS 4 A5 sD7 CS 4 8† E ESB: 0 DRM
+PzKpfw 38(t)A A4[1]5[2] sD6 CS 4 sD6 CS 4 7† E ESB: 0 DRM
+PzKpfw 38(t)E A4[1]5[2] sD7 CS 4 sD7 CS 4 8† E ESB: 0 DRM
Aufklaerer 38(t) CS 5 CS 5 9 A† E MA & CMG: AA ok | ESB: 0 DRM
FT-17 730m(f) CS 2 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
FT-17 730(f) AP9 CS 2 AP9 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
38H 735(f) AP10 CS 3 AP10 CS 3 9.2 a b† f French ESB | CMG: AA ok (TCA only)
35-S 739(f) CS 4 CS 4 9.3 a b†2 d†1 f French ESB | CMG: AA ok (TCA only) | Immob: dr ≤ 4 [EXC: mines, Direct Fire vs front/rear]
PzKpfw IIID sD6 CS 5 sD6 CS 5 10† n/a
-PzKpfw IIIF A4[1] sD7 CS 5 A4 sD7 CS 5 11† n/a
-PzKpfw IIIG A4[1] sD7 CS 5 A4 sD7 CS 5 12 N
-PzKpfw IIIH A4[1] sD7 CS 6 A4 sD7 CS 6 13† N
-PzKpfw IIIJ A6[2] sD7 CS 6 A6 sD7 CS 6 14† N S
-PzKpfw IIIL A6[2] sD7 CS 5 A6 sD7 CS 5 15† B† N S
+PzKpfw IIIF A4[1] sD7 CS 5 sD7 CS 5 11† n/a
+PzKpfw IIIG A4[1] sD7 CS 5 sD7 CS 5 12 N
+PzKpfw IIIH A4[1] sD7 CS 6 sD7 CS 6 13† N
+PzKpfw IIIJ A6[2] sD7 CS 6 sD7 CS 6 14† N S
+PzKpfw IIIL A6[2] sD7 CS 5 sD7 CS 5 15† B† N S
PzKpfw IIIN H9 s9 sD7 CS 5 H9 s9 sD7 CS 5 16 B† NT S
PzKpfw III(Fl) sD7 CS 3 sD7 CS 3 17 n/a
PzKpfw IVA AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5 18† n/a
@@ -28,18 +28,18 @@ PzKpfw IVC AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5
PzKpfw IVD AP7 H6 s9 sD7 CS 5 AP7 H6 s9 sD7 CS 5 20 N R†
PzKpfw IVE AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 21 N R†
PzKpfw IVF1 AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 22 N R†
-PzKpfw IVF2 A5[2] s8 sD6 CS 6 A5 s8 sD6 CS 6 23† N S
-PzKpfw IVH A5[2] s8 sD5 CS 6 A5 s8 sD5 CS 6 24† B† S
+PzKpfw IVF2 A5[2] s8 sD6 CS 6 s8 sD6 CS 6 23† N S
+PzKpfw IVH A5[2] s8 sD5 CS 6 s8 sD5 CS 6 24† B† S
PzKpfw IVJ A3[4] s8 sN9 CS 6 s8 sN9 CS 6 25 S
PzKpfw VD sD5 CS 5[brewup] sD5 CS 5[brewup] 26 F† 12: Burn, 11: Immob, 10: Stall
PzKpfw VG sN7[4] CS 6 CS 6 27† H† 12: Stall
PzKpfw M15/42(i) CS 4 CS 4 28 I Red TH# | Italian ESB
PzKpfw P26/40(i) s8 CS 4 s8 CS 4 29 I Red TH# | Italian ESB
-PzKpfw VIE A6[2] sD7 CS 6 A6 sD7 CS 6 30† K NFT SA: Mines (CC: 12 FP) | Morale 9
+PzKpfw VIE A6[2] sD7 CS 6 sD7 CS 6 30† K NFT SA: Mines (CC: 12 FP) | Morale 9
PzKpfw VIE (L) A4[4] sN7[4] CS 6 CS 6 31 K Morale 9
PzKpfw VIB sN9 CS 6 sN9 CS 6 32† K Morale 9
StuG IIIB AP7 H6 s9 sD7 CS 4 AP7 H6 s9 sD7 CS 4 33† n/a
-StuG IIIG A6[2] s8 sD7 CS 4 A6 s8 sD7 CS 4 34† NFT P† S AAMG: VCA only
+StuG IIIG A6[2] s8 sD7 CS 4 s8 sD7 CS 4 34† NFT P† S AAMG: VCA only
StuG IIIG (L) A4[4] s8 sN9 CS 4 s8 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
StuH 42 H9 s9 sD7 CS 4 H9 s9 sD7 CS 4 36† NFT P† S AAMG: VCA only
StuH 42 (L) H9 s9 sN9 CS 4 H9 s9 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
@@ -50,13 +50,13 @@ StuG 75/18(i) H7 s9 CS 3 H7 s9 CS 3
StuG 75/34(i) s9 CS 3 s9 CS 3 40 I P† Red TH# | Italian ESB | AAMG: VCA only
StuG 105/25(i) H7 s9 CS 3 H7 s9 CS 3 41 I P† No IF | Red TH# | Italian ESB | AAMG: VCA only
StuG 75/46(i) s9 CS 3 s9 CS 3 42 I P† Red TH# | Italian ESB | AAMG: VCA only
-PzJg I A5[1] HE7 CS 3 A5 HE7 CS 3 43 N
-PzJg 35R(f) A5[1] HE7 CS 3 A5 HE7 CS 3 44 a French ESB
+PzJg I A5[1] HE7 CS 3 HE7 CS 3 43 N
+PzJg 35R(f) A5[1] HE7 CS 3 HE7 CS 3 44 a French ESB
Pz 35R 731(f) CS 2 CS 2 44.1† a French ESB
-Marder I(f) A6[2] HE7 s7 CS 4[brewup] A6 HE7 s7 CS 4[brewup] 45† a French ESB
+Marder I(f) A6[2] HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 45† a French ESB
GSW 39H(f) Pak A4[4] HE9 CS 3 HE9 CS 3 45.1 a e French ESB
-Marder II A6[2] HE7 s7 CS 4[brewup] A6 HE7 s7 CS 4[brewup] 46 M† NFT
-Marder III(t)H A6[2] HE7 s7 sD6 CS 4[brewup] A6 HE7 s7 sD6 CS 4[brewup] 47 E G NF CE: +3 Front | ESB: 0 DRM
+Marder II A6[2] HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 46 M† NFT
+Marder III(t)H A6[2] HE7 s7 sD6 CS 4[brewup] HE7 s7 sD6 CS 4[brewup] 47 E G NF CE: +3 Front | ESB: 0 DRM
Marder III(t)M A5[3] HE7 s7 sD5 CS 4[brewup] A5 HE7 s7 sD5 CS 4[brewup] 48 E ESB: 0 DRM
PzJg III/IV HE7 CS 5 HE7 CS 5 49 M†
JgdPz 38(t) A4[4] HE7 CS 4 HE7 CS 4 50 E O† ESB: 0 DRM | AAMG: BU only, Rider NA, elevation restrictions
@@ -72,12 +72,12 @@ SPW 250/sMG CS 4† CS 4†
SPW 250/7 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 J† N Inherent Infantry Crew | AAMG: NA VCA
SPW 250/8 H6 s8 CS 4[brewup] H6 s8 CS 4[brewup] 60 Q† CMG: VCA only
SPW 250/9 CS 4 CS 4 61† A† MA & CMG: AA ok
-SPW 250/10 A4[1] CS 4 A4 CS 4 62 J† N AAMG: NA VCA
+SPW 250/10 A4[1] CS 4 CS 4 62 J† N AAMG: NA VCA
SPW 251/1 CS 5 CS 5 63 C† N
SPW 251/sMG CS 5† CS 5† 58† C† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
SPW 251/2 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 C† J† N Inherent Infantry Crew | AAMG: NA VCA
SPW 251/9 H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 64 C† N Q† CMG: VCA only
-SPW 251/10 A4[1] CS 4 A4 CS 4 65 C† J† N ATR | AAMG: NA VCA
+SPW 251/10 A4[1] CS 4 CS 4 65 C† J† N ATR | AAMG: NA VCA
SPW 251/16 CS 4[brewup] CS 4[brewup] 66† n/a Port/starboard FT's
SPW 251/21 CS 4 CS 4 66.1† n/a 3 TK DR | MA: AA ok
SPW 251/22 HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 67 J† AAMG: NA VCA
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1944.txt
index 66ce10c..8e3c090 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1944.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1944.txt
@@ -1,130 +1,130 @@
=== vehicles/german/1944 ===
-Name Capabilities (effective) # Notes Comments
----------------------- ----------------------------- -------------------------- ------ --------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-PzKpfw IB sD6 CS 2 sD6 CS 2 1† NF 2 TK DR
-PzKpfw IIA sD6 CS 3 sD6 CS 3 2 n/a
-PzKpfw IIF sD7 CS 3 sD7 CS 3 3 N
-PzKpfw II(Fl) sD7† CS 2[brewup] sD7† CS 2[brewup] 4† n/a sD: 3 hex range
-PzKpfw IIL sD7 CS 4 sD7 CS 4 5 n/a
-PzKpfw 35t sD5 CS 4 sD5 CS 4 6† n/a
-PzKpfw 38(t)A A4[1]5[2] sD6 CS 4 A5 sD6 CS 4 7† E ESB: 0 DRM
-PzKpfw 38(t)E A4[1]5[2] sD7 CS 4 A5 sD7 CS 4 8† E ESB: 0 DRM
-Aufklaerer 38(t) CS 5 CS 5 9 A† E MA & CMG: AA ok | ESB: 0 DRM
-FT-17 730m(f) CS 2 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
-FT-17 730(f) AP9 CS 2 AP9 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
-38H 735(f) AP10 CS 3 AP10 CS 3 9.2 a b† f French ESB | CMG: AA ok (TCA only)
-35-S 739(f) CS 4 CS 4 9.3 a b†2 d†1 f French ESB | CMG: AA ok (TCA only) | Immob: dr ≤ 4 [EXC: mines, Direct Fire vs front/rear]
-PzKpfw IIID sD6 CS 5 sD6 CS 5 10† n/a
-PzKpfw IIIF A4[1] sD7 CS 5 A4 sD7 CS 5 11† n/a
-PzKpfw IIIG A4[1] sD7 CS 5 A4 sD7 CS 5 12 N
-PzKpfw IIIH A4[1] sD7 CS 6 A4 sD7 CS 6 13† N
-PzKpfw IIIJ A6[2] sD7 CS 6 A6 sD7 CS 6 14† N S
-PzKpfw IIIL A6[2] sD7 CS 5 A6 sD7 CS 5 15† B† N S
-PzKpfw IIIN H9 s9 sD7 CS 5 H9 s9 sD7 CS 5 16 B† NT S
-PzKpfw III(Fl) sD7 CS 3 sD7 CS 3 17 n/a
-PzKpfw IVA AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5 18† n/a
-PzKpfw IVC AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5 19† n/a
-PzKpfw IVD AP7 H6 s9 sD7 CS 5 AP7 H6 s9 sD7 CS 5 20 N R†
-PzKpfw IVE AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 21 N R†
-PzKpfw IVF1 AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 22 N R†
-PzKpfw IVF2 A5[2] s8 sD6 CS 6 A5 s8 sD6 CS 6 23† N S
-PzKpfw IVH A5[2] s8 sD5 CS 6 A5 s8 sD5 CS 6 24† B† S
-PzKpfw IVJ A3[4] s8 sN9 CS 6 A3 s8 sN9 CS 6 25 S
-PzKpfw VD sD5 CS 5[brewup] sD5 CS 5[brewup] 26 F† 12: Burn, 11: Immob, 10: Stall
-PzKpfw VG sN7[4] CS 6 sN7 CS 6 27† H† 12: Stall
-PzKpfw M15/42(i) CS 4 CS 4 28 I Red TH# | Italian ESB
-PzKpfw P26/40(i) s8 CS 4 s8 CS 4 29 I Red TH# | Italian ESB
-PzKpfw VIE A6[2] sD7 CS 6 A6 sD7 CS 6 30† K NFT SA: Mines (CC: 12 FP) | Morale 9
-PzKpfw VIE (L) A4[4] sN7[4] CS 6 A4 sN7 CS 6 31 K Morale 9
-PzKpfw VIB sN9 CS 6 sN9 CS 6 32† K Morale 9
-StuG IIIB AP7 H6 s9 sD7 CS 4 AP7 H6 s9 sD7 CS 4 33† n/a
-StuG IIIG A6[2] s8 sD7 CS 4 A6 s8 sD7 CS 4 34† NFT P† S AAMG: VCA only
-StuG IIIG (L) A4[4] s8 sN9 CS 4 A4 s8 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
-StuH 42 H9 s9 sD7 CS 4 H9 s9 sD7 CS 4 36† NFT P† S AAMG: VCA only
-StuH 42 (L) H9 s9 sN9 CS 4 H9 s9 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
-StuPz IV H7 s9 CS 6 H7 s9 CS 6 37† S BMG: HD Fire OK | No IF
-Sturmtiger sN9 CS 5 sN9 CS 5 37.1† K MA: No Bnd (F)F, Motion Fire, Acq, CE | No Area Target Type, same Location, consecutive Fire | +1 TH DRM vs Moving/Motion/Dash | Riders Bail Out when MA fires | IFT: 36+ FP with -3 DRM | HE TK#: [{ *:Direct Hit (dr 1-2): 28 (armored), 22 (unarmored);
Specific Collateral Attack = full FP *:Near Miss: 10 (armored), 16 (unarmored);
Specific Collateral Attack = 20 FP }] | No IF | Morale 9
-PzJg Tiger CS 7 CS 7 38 n/a
-StuG 75/18(i) H7 s9 CS 3 H7 s9 CS 3 39 I P† Red TH# | Italian ESB | AAMG: VCA only
-StuG 75/34(i) s9 CS 3 s9 CS 3 40 I P† Red TH# | Italian ESB | AAMG: VCA only
-StuG 105/25(i) H7 s9 CS 3 H7 s9 CS 3 41 I P† No IF | Red TH# | Italian ESB | AAMG: VCA only
-StuG 75/46(i) s9 CS 3 s9 CS 3 42 I P† Red TH# | Italian ESB | AAMG: VCA only
-PzJg I A5[1] HE7 CS 3 A5 HE7 CS 3 43 N
-PzJg 35R(f) A5[1] HE7 CS 3 A5 HE7 CS 3 44 a French ESB
-Pz 35R 731(f) CS 2 CS 2 44.1† a French ESB
-Marder I(f) A6[2] HE7 s7 CS 4[brewup] A6 HE7 s7 CS 4[brewup] 45† a French ESB
-GSW 39H(f) Pak A4[4] HE9 CS 3 A4 HE9 CS 3 45.1 a e French ESB
-Marder II A6[2] HE7 s7 CS 4[brewup] A6 HE7 s7 CS 4[brewup] 46 M† NFT
-Marder III(t)H A6[2] HE7 s7 sD6 CS 4[brewup] A6 HE7 s7 sD6 CS 4[brewup] 47 E G NF CE: +3 Front | ESB: 0 DRM
-Marder III(t)M A5[3] HE7 s7 sD5 CS 4[brewup] A5 HE7 s7 sD5 CS 4[brewup] 48 E ESB: 0 DRM
-PzJg III/IV HE7 CS 5 HE7 CS 5 49 M†
-JgdPz 38(t) A4[4] HE7 CS 4 A4 HE7 CS 4 50 E O† ESB: 0 DRM | AAMG: BU only, Rider NA, elevation restrictions
-JgdPz 38(t) (Fl) CS 4 CS 4 51 E O† ESB: 0 DRM | AAMG: BU only, Rider NA, elevation restrictions
-JgdPz IV A4[4] HE7 s7 sN7[4] CS 4 A4 HE7 s7 sN7 CS 4 52 S
-JgdPz IV (L) A4[4] HE7 s7 sN8[4] CS 4 A4 HE7 s7 sN8 CS 4 52 S
-StuIG 33B H7 s9 CS 5 H7 s9 CS 5 53† n/a BMG: HD Fire OK | No IF
-JgdPz IV/70 HE7 sN9 CS 4 HE7 sN9 CS 4 54† S
-JgdPz V HE7 sN9 CS 6 HE7 sN9 CS 6 55 H 12: Stall
-JgdPz VI HE7 sN9 CS 7 HE7 sN9 CS 7 56 n/a
-SPW 250/1 CS 4 CS 4 57 N
-SPW 250/sMG CS 4† CS 4† 58† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
-SPW 250/7 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 J† N Inherent Infantry Crew | AAMG: NA VCA
-SPW 250/8 H6 s8 CS 4[brewup] H6 s8 CS 4[brewup] 60 Q† CMG: VCA only
-SPW 250/9 CS 4 CS 4 61† A† MA & CMG: AA ok
-SPW 250/10 A4[1] CS 4 A4 CS 4 62 J† N AAMG: NA VCA
-SPW 251/1 CS 5 CS 5 63 C† N
-SPW 251/sMG CS 5† CS 5† 58† C† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
-SPW 251/2 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 C† J† N Inherent Infantry Crew | AAMG: NA VCA
-SPW 251/9 H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 64 C† N Q† CMG: VCA only
-SPW 251/10 A4[1] CS 4 A4 CS 4 65 C† J† N PSK | AAMG: NA VCA
-SPW 251/16 CS 4[brewup] CS 4[brewup] 66† n/a Port/starboard FT's
-SPW 251/21 CS 4 CS 4 66.1† n/a 3 TK DR | MA: AA ok
-SPW 251/22 HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 67 J† AAMG: NA VCA
-SPW S307(f) A4[4] HE9 CS 4 A4 HE9 CS 4 67.1 a e French ESB
-mSPW S307(f) IR s5 CS 4 IR s5 CS 4 67.2 a e CE: +1 Rear & Indirect Fire | VCA Facing | Extra Smoke | No IF | French ESB
-Kfz 13 CS 2 CS 2 68† n/a Always CE
-PSW 221 sD6 CS 2 sD6 CS 2 69† A† N BU Fire NA | Reverse MP ×4 | MA & CMG: AA ok
-PSW 222 sD6 CS 3 sD6 CS 3 70† A† N Reverse MP ×3 | MA & CMG: AA ok
-PSW 222 (L) sD6 CS 3 sD6 CS 3 70† A† NF Reverse MP ×3 | MA & CMG: AA ok
-PSW 231 (6 rad) CS 4 CS 4 71† n/a Reverse MP ×2
-PSW 231 (8 rad) sD6 CS 4 sD6 CS 4 72† N
-PSW 232 (8 rad) sD6 CS 4 sD6 CS 4 72 NF
-PSW 233 H8 s9 sD7 CS 5 H8 s9 sD7 CS 5 73 NT
-PSW 234/1 CS 5 CS 5 74 A† MA & CMG: AA ok
-PSW 234/2 A5[3] sD7 CS 4 A5 sD7 CS 4 75 n/a
-PSW 234/3 H8 s9 CS 5 H8 s9 CS 5 76 Q† CMG: VCA only
-PSW 234/4 HE7 s7 CS 5[brewup] HE7 s7 CS 5[brewup] 77† n/a Reverse MP ×4
-sIG IB H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 78 G No IF | CE: +3 Front
-sIG II H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 79 N No IF
-sIG 38(t)M H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 80 E NFT No IF | ESB: 0 DRM
-PzA II H5 s8 CS 4 H5 s8 CS 4 81 M†
-PzA LrS(f) H4 s8 CS 4 H4 s8 CS 4 82 a N No IF | French ESB
-GSW 39H(f) H4 s7 CS 4 H4 s7 CS 4 82.1 a e French ESB
-PzA III/IV H5 s8 CS 6 H5 s8 CS 6 83 n/a No IF
-FlaKPz 38(t) CS 4 CS 4 84 A† E CE: +1 | MA & CMG: AA ok | ESB: 0 DRM
-37 FlaK/Pz IV CS 5 CS 5 85† A† Moving: [{ *:Fire ≤ level NA }] | Firing: [{ *:No CE DRM *:Random SW Destruction for MA }] | MA & CMG: AA ok
-FlaKPz IV/20 CS 6 CS 6 86 A† 4 TK DR | MA & CMG: AA ok
-FlaKPz IV/37 CS 6 CS 6 87 A† MA & CMG: AA ok
-SdKfz 10/4 CS 5 CS 5 88 A† D† N MA & CMG: AA ok | Ammo trailer
-SdKfz 10/5 CS 4 CS 4 88.1† A†2 D†1 MA & CMG: AA ok | Ammo trailer
-SdKfz 6/2 CS 5 CS 5 89 A† D† N MA & CMG: AA ok | Ammo trailer
-SdKfz 7/1 CS 4 CS 4 90 A† D† N 4 TK DR | MA & CMG: AA ok | Ammo trailer
-Kfz 4 CS 3 CS 3 91† N 2 TK DR (MG)
-2cm FlaK LKW CS 5 CS 5 92 A† MA & CMG: AA ok
-3.7cm FlaK LKW CS 5 CS 5 92 A† MA & CMG: AA ok
-Goliath 93† L† Bog assistance
-Kfz 1 cs 2† cs 2† 94† L† N Inherent Crew if armed (with CS#) | Bog assistance
-Kfz 1/20 cs 2 cs 2 95† L† +3 Target Size & HD in Water | Bog assistance
-Opel 6700 (Blitz) cs 6 cs 6 96 N
-Buessing-NAG 4500 cs 7 cs 7 96 N
-SdKfz 2 cs 2 cs 2 97† L† N As vehicle (not motorcycle) | Crew/HS Riders OK | Hidden AT Mine attacks NA | AP Mine attacks: Area Fire | Bog assistance
-SdKfz 7 cs 6 cs 6 98 N
-SdKfz 11 cs 5 cs 5 99 N
-PzKpfw IA sD6 CS 2 sD6 CS 2 1† Ge N 2 TK DR (MG)
-PzKpfw ICV sD5 CS 3 sD5 CS 3 2 A† MG: VCA only
-PzKpfw IID sD6 CS 3 sD6 CS 3 3 n/a
-PzKpfw II Bridgelayer sD6 CS 2 sD6 CS 2 4† n/a Inherent Crew | Movement restrictions | Stun = Recall, CE NA
-Pz-7TP CS 3 CS 3 5 B†
-PSW M35 CS 5 CS 5 6† n/a Reverse MP ×2
-SdKfz8 FlaK 18 A5[2]4[3] CS 6 A4 CS 6 7††[1] n/a CE: +3 VCA, otherwise 0 DRM | Indirect Fire: CE +1 | MA: Rear VCA NA | MA: Random SW Destruction | Mines: As unarmored
+Name Capabilities (effective) # Notes Comments
+---------------------- ----------------------------- ----------------------- ------ --------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+PzKpfw IB sD6 CS 2 sD6 CS 2 1† NF 2 TK DR
+PzKpfw IIA sD6 CS 3 sD6 CS 3 2 n/a
+PzKpfw IIF sD7 CS 3 sD7 CS 3 3 N
+PzKpfw II(Fl) sD7† CS 2[brewup] sD7† CS 2[brewup] 4† n/a sD: 3 hex range
+PzKpfw IIL sD7 CS 4 sD7 CS 4 5 n/a
+PzKpfw 35t sD5 CS 4 sD5 CS 4 6† n/a
+PzKpfw 38(t)A A4[1]5[2] sD6 CS 4 sD6 CS 4 7† E ESB: 0 DRM
+PzKpfw 38(t)E A4[1]5[2] sD7 CS 4 sD7 CS 4 8† E ESB: 0 DRM
+Aufklaerer 38(t) CS 5 CS 5 9 A† E MA & CMG: AA ok | ESB: 0 DRM
+FT-17 730m(f) CS 2 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
+FT-17 730(f) AP9 CS 2 AP9 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
+38H 735(f) AP10 CS 3 AP10 CS 3 9.2 a b† f French ESB | CMG: AA ok (TCA only)
+35-S 739(f) CS 4 CS 4 9.3 a b†2 d†1 f French ESB | CMG: AA ok (TCA only) | Immob: dr ≤ 4 [EXC: mines, Direct Fire vs front/rear]
+PzKpfw IIID sD6 CS 5 sD6 CS 5 10† n/a
+PzKpfw IIIF A4[1] sD7 CS 5 sD7 CS 5 11† n/a
+PzKpfw IIIG A4[1] sD7 CS 5 sD7 CS 5 12 N
+PzKpfw IIIH A4[1] sD7 CS 6 sD7 CS 6 13† N
+PzKpfw IIIJ A6[2] sD7 CS 6 sD7 CS 6 14† N S
+PzKpfw IIIL A6[2] sD7 CS 5 sD7 CS 5 15† B† N S
+PzKpfw IIIN H9 s9 sD7 CS 5 H9 s9 sD7 CS 5 16 B† NT S
+PzKpfw III(Fl) sD7 CS 3 sD7 CS 3 17 n/a
+PzKpfw IVA AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5 18† n/a
+PzKpfw IVC AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5 19† n/a
+PzKpfw IVD AP7 H6 s9 sD7 CS 5 AP7 H6 s9 sD7 CS 5 20 N R†
+PzKpfw IVE AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 21 N R†
+PzKpfw IVF1 AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 22 N R†
+PzKpfw IVF2 A5[2] s8 sD6 CS 6 s8 sD6 CS 6 23† N S
+PzKpfw IVH A5[2] s8 sD5 CS 6 s8 sD5 CS 6 24† B† S
+PzKpfw IVJ A3[4] s8 sN9 CS 6 A3 s8 sN9 CS 6 25 S
+PzKpfw VD sD5 CS 5[brewup] sD5 CS 5[brewup] 26 F† 12: Burn, 11: Immob, 10: Stall
+PzKpfw VG sN7[4] CS 6 sN7 CS 6 27† H† 12: Stall
+PzKpfw M15/42(i) CS 4 CS 4 28 I Red TH# | Italian ESB
+PzKpfw P26/40(i) s8 CS 4 s8 CS 4 29 I Red TH# | Italian ESB
+PzKpfw VIE A6[2] sD7 CS 6 sD7 CS 6 30† K NFT SA: Mines (CC: 12 FP) | Morale 9
+PzKpfw VIE (L) A4[4] sN7[4] CS 6 A4 sN7 CS 6 31 K Morale 9
+PzKpfw VIB sN9 CS 6 sN9 CS 6 32† K Morale 9
+StuG IIIB AP7 H6 s9 sD7 CS 4 AP7 H6 s9 sD7 CS 4 33† n/a
+StuG IIIG A6[2] s8 sD7 CS 4 s8 sD7 CS 4 34† NFT P† S AAMG: VCA only
+StuG IIIG (L) A4[4] s8 sN9 CS 4 A4 s8 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
+StuH 42 H9 s9 sD7 CS 4 H9 s9 sD7 CS 4 36† NFT P† S AAMG: VCA only
+StuH 42 (L) H9 s9 sN9 CS 4 H9 s9 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
+StuPz IV H7 s9 CS 6 H7 s9 CS 6 37† S BMG: HD Fire OK | No IF
+Sturmtiger sN9 CS 5 sN9 CS 5 37.1† K MA: No Bnd (F)F, Motion Fire, Acq, CE | No Area Target Type, same Location, consecutive Fire | +1 TH DRM vs Moving/Motion/Dash | Riders Bail Out when MA fires | IFT: 36+ FP with -3 DRM | HE TK#: [{ *:Direct Hit (dr 1-2): 28 (armored), 22 (unarmored);
Specific Collateral Attack = full FP *:Near Miss: 10 (armored), 16 (unarmored);
Specific Collateral Attack = 20 FP }] | No IF | Morale 9
+PzJg Tiger CS 7 CS 7 38 n/a
+StuG 75/18(i) H7 s9 CS 3 H7 s9 CS 3 39 I P† Red TH# | Italian ESB | AAMG: VCA only
+StuG 75/34(i) s9 CS 3 s9 CS 3 40 I P† Red TH# | Italian ESB | AAMG: VCA only
+StuG 105/25(i) H7 s9 CS 3 H7 s9 CS 3 41 I P† No IF | Red TH# | Italian ESB | AAMG: VCA only
+StuG 75/46(i) s9 CS 3 s9 CS 3 42 I P† Red TH# | Italian ESB | AAMG: VCA only
+PzJg I A5[1] HE7 CS 3 HE7 CS 3 43 N
+PzJg 35R(f) A5[1] HE7 CS 3 HE7 CS 3 44 a French ESB
+Pz 35R 731(f) CS 2 CS 2 44.1† a French ESB
+Marder I(f) A6[2] HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 45† a French ESB
+GSW 39H(f) Pak A4[4] HE9 CS 3 A4 HE9 CS 3 45.1 a e French ESB
+Marder II A6[2] HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 46 M† NFT
+Marder III(t)H A6[2] HE7 s7 sD6 CS 4[brewup] HE7 s7 sD6 CS 4[brewup] 47 E G NF CE: +3 Front | ESB: 0 DRM
+Marder III(t)M A5[3] HE7 s7 sD5 CS 4[brewup] HE7 s7 sD5 CS 4[brewup] 48 E ESB: 0 DRM
+PzJg III/IV HE7 CS 5 HE7 CS 5 49 M†
+JgdPz 38(t) A4[4] HE7 CS 4 A4 HE7 CS 4 50 E O† ESB: 0 DRM | AAMG: BU only, Rider NA, elevation restrictions
+JgdPz 38(t) (Fl) CS 4 CS 4 51 E O† ESB: 0 DRM | AAMG: BU only, Rider NA, elevation restrictions
+JgdPz IV A4[4] HE7 s7 sN7[4] CS 4 A4 HE7 s7 sN7 CS 4 52 S
+JgdPz IV (L) A4[4] HE7 s7 sN8[4] CS 4 A4 HE7 s7 sN8 CS 4 52 S
+StuIG 33B H7 s9 CS 5 H7 s9 CS 5 53† n/a BMG: HD Fire OK | No IF
+JgdPz IV/70 HE7 sN9 CS 4 HE7 sN9 CS 4 54† S
+JgdPz V HE7 sN9 CS 6 HE7 sN9 CS 6 55 H 12: Stall
+JgdPz VI HE7 sN9 CS 7 HE7 sN9 CS 7 56 n/a
+SPW 250/1 CS 4 CS 4 57 N
+SPW 250/sMG CS 4† CS 4† 58† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
+SPW 250/7 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 J† N Inherent Infantry Crew | AAMG: NA VCA
+SPW 250/8 H6 s8 CS 4[brewup] H6 s8 CS 4[brewup] 60 Q† CMG: VCA only
+SPW 250/9 CS 4 CS 4 61† A† MA & CMG: AA ok
+SPW 250/10 A4[1] CS 4 CS 4 62 J† N AAMG: NA VCA
+SPW 251/1 CS 5 CS 5 63 C† N
+SPW 251/sMG CS 5† CS 5† 58† C† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
+SPW 251/2 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 C† J† N Inherent Infantry Crew | AAMG: NA VCA
+SPW 251/9 H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 64 C† N Q† CMG: VCA only
+SPW 251/10 A4[1] CS 4 CS 4 65 C† J† N PSK | AAMG: NA VCA
+SPW 251/16 CS 4[brewup] CS 4[brewup] 66† n/a Port/starboard FT's
+SPW 251/21 CS 4 CS 4 66.1† n/a 3 TK DR | MA: AA ok
+SPW 251/22 HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 67 J† AAMG: NA VCA
+SPW S307(f) A4[4] HE9 CS 4 A4 HE9 CS 4 67.1 a e French ESB
+mSPW S307(f) IR s5 CS 4 IR s5 CS 4 67.2 a e CE: +1 Rear & Indirect Fire | VCA Facing | Extra Smoke | No IF | French ESB
+Kfz 13 CS 2 CS 2 68† n/a Always CE
+PSW 221 sD6 CS 2 sD6 CS 2 69† A† N BU Fire NA | Reverse MP ×4 | MA & CMG: AA ok
+PSW 222 sD6 CS 3 sD6 CS 3 70† A† N Reverse MP ×3 | MA & CMG: AA ok
+PSW 222 (L) sD6 CS 3 sD6 CS 3 70† A† NF Reverse MP ×3 | MA & CMG: AA ok
+PSW 231 (6 rad) CS 4 CS 4 71† n/a Reverse MP ×2
+PSW 231 (8 rad) sD6 CS 4 sD6 CS 4 72† N
+PSW 232 (8 rad) sD6 CS 4 sD6 CS 4 72 NF
+PSW 233 H8 s9 sD7 CS 5 H8 s9 sD7 CS 5 73 NT
+PSW 234/1 CS 5 CS 5 74 A† MA & CMG: AA ok
+PSW 234/2 A5[3] sD7 CS 4 sD7 CS 4 75 n/a
+PSW 234/3 H8 s9 CS 5 H8 s9 CS 5 76 Q† CMG: VCA only
+PSW 234/4 HE7 s7 CS 5[brewup] HE7 s7 CS 5[brewup] 77† n/a Reverse MP ×4
+sIG IB H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 78 G No IF | CE: +3 Front
+sIG II H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 79 N No IF
+sIG 38(t)M H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 80 E NFT No IF | ESB: 0 DRM
+PzA II H5 s8 CS 4 H5 s8 CS 4 81 M†
+PzA LrS(f) H4 s8 CS 4 H4 s8 CS 4 82 a N No IF | French ESB
+GSW 39H(f) H4 s7 CS 4 H4 s7 CS 4 82.1 a e French ESB
+PzA III/IV H5 s8 CS 6 H5 s8 CS 6 83 n/a No IF
+FlaKPz 38(t) CS 4 CS 4 84 A† E CE: +1 | MA & CMG: AA ok | ESB: 0 DRM
+37 FlaK/Pz IV CS 5 CS 5 85† A† Moving: [{ *:Fire ≤ level NA }] | Firing: [{ *:No CE DRM *:Random SW Destruction for MA }] | MA & CMG: AA ok
+FlaKPz IV/20 CS 6 CS 6 86 A† 4 TK DR | MA & CMG: AA ok
+FlaKPz IV/37 CS 6 CS 6 87 A† MA & CMG: AA ok
+SdKfz 10/4 CS 5 CS 5 88 A† D† N MA & CMG: AA ok | Ammo trailer
+SdKfz 10/5 CS 4 CS 4 88.1† A†2 D†1 MA & CMG: AA ok | Ammo trailer
+SdKfz 6/2 CS 5 CS 5 89 A† D† N MA & CMG: AA ok | Ammo trailer
+SdKfz 7/1 CS 4 CS 4 90 A† D† N 4 TK DR | MA & CMG: AA ok | Ammo trailer
+Kfz 4 CS 3 CS 3 91† N 2 TK DR (MG)
+2cm FlaK LKW CS 5 CS 5 92 A† MA & CMG: AA ok
+3.7cm FlaK LKW CS 5 CS 5 92 A† MA & CMG: AA ok
+Goliath 93† L† Bog assistance
+Kfz 1 cs 2† cs 2† 94† L† N Inherent Crew if armed (with CS#) | Bog assistance
+Kfz 1/20 cs 2 cs 2 95† L† +3 Target Size & HD in Water | Bog assistance
+Opel 6700 (Blitz) cs 6 cs 6 96 N
+Buessing-NAG 4500 cs 7 cs 7 96 N
+SdKfz 2 cs 2 cs 2 97† L† N As vehicle (not motorcycle) | Crew/HS Riders OK | Hidden AT Mine attacks NA | AP Mine attacks: Area Fire | Bog assistance
+SdKfz 7 cs 6 cs 6 98 N
+SdKfz 11 cs 5 cs 5 99 N
+PzKpfw IA sD6 CS 2 sD6 CS 2 1† Ge N 2 TK DR (MG)
+PzKpfw ICV sD5 CS 3 sD5 CS 3 2 A† MG: VCA only
+PzKpfw IID sD6 CS 3 sD6 CS 3 3 n/a
+PzKpfw II Bridgelayer sD6 CS 2 sD6 CS 2 4† n/a Inherent Crew | Movement restrictions | Stun = Recall, CE NA
+Pz-7TP CS 3 CS 3 5 B†
+PSW M35 CS 5 CS 5 6† n/a Reverse MP ×2
+SdKfz8 FlaK 18 A5[2]4[3] CS 6 CS 6 7††[1] n/a CE: +3 VCA, otherwise 0 DRM | Indirect Fire: CE +1 | MA: Rear VCA NA | MA: Random SW Destruction | Mines: As unarmored
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1945.txt
index c63a425..4166137 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/german/1945.txt
@@ -1,130 +1,130 @@
=== vehicles/german/1945 ===
-Name Capabilities (effective) # Notes Comments
----------------------- ----------------------------- -------------------------- ------ --------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-PzKpfw IB sD6 CS 2 sD6 CS 2 1† NF 2 TK DR
-PzKpfw IIA sD6 CS 3 sD6 CS 3 2 n/a
-PzKpfw IIF sD7 CS 3 sD7 CS 3 3 N
-PzKpfw II(Fl) sD7† CS 2[brewup] sD7† CS 2[brewup] 4† n/a sD: 3 hex range
-PzKpfw IIL sD7 CS 4 sD7 CS 4 5 n/a
-PzKpfw 35t sD5 CS 4 sD5 CS 4 6† n/a
-PzKpfw 38(t)A A4[1]5[2] sD6 CS 4 A5 sD6 CS 4 7† E ESB: 0 DRM
-PzKpfw 38(t)E A4[1]5[2] sD7 CS 4 A5 sD7 CS 4 8† E ESB: 0 DRM
-Aufklaerer 38(t) CS 5 CS 5 9 A† E MA & CMG: AA ok | ESB: 0 DRM
-FT-17 730m(f) CS 2 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
-FT-17 730(f) AP9 CS 2 AP9 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
-38H 735(f) AP10 CS 3 AP10 CS 3 9.2 a b† f French ESB | CMG: AA ok (TCA only)
-35-S 739(f) CS 4 CS 4 9.3 a b†2 d†1 f French ESB | CMG: AA ok (TCA only) | Immob: dr ≤ 4 [EXC: mines, Direct Fire vs front/rear]
-PzKpfw IIID sD6 CS 5 sD6 CS 5 10† n/a
-PzKpfw IIIF A4[1] sD7 CS 5 A4 sD7 CS 5 11† n/a
-PzKpfw IIIG A4[1] sD7 CS 5 A4 sD7 CS 5 12 N
-PzKpfw IIIH A4[1] sD7 CS 6 A4 sD7 CS 6 13† N
-PzKpfw IIIJ A6[2] sD7 CS 6 A6 sD7 CS 6 14† N S
-PzKpfw IIIL A6[2] sD7 CS 5 A6 sD7 CS 5 15† B† N S
-PzKpfw IIIN H9 s9 sD7 CS 5 H9 s9 sD7 CS 5 16 B† NT S
-PzKpfw III(Fl) sD7 CS 3 sD7 CS 3 17 n/a
-PzKpfw IVA AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5 18† n/a
-PzKpfw IVC AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5 19† n/a
-PzKpfw IVD AP7 H6 s9 sD7 CS 5 AP7 H6 s9 sD7 CS 5 20 N R†
-PzKpfw IVE AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 21 N R†
-PzKpfw IVF1 AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 22 N R†
-PzKpfw IVF2 A5[2] s8 sD6 CS 6 A5 s8 sD6 CS 6 23† N S
-PzKpfw IVH A5[2] s8 sD5 CS 6 A5 s8 sD5 CS 6 24† B† S
-PzKpfw IVJ A3[4] s8 sN9 CS 6 A3 s8 sN9 CS 6 25 S
-PzKpfw VD sD5 CS 5[brewup] sD5 CS 5[brewup] 26 F† 12: Burn, 11: Immob, 10: Stall
-PzKpfw VG sN7[4] CS 6 sN7 CS 6 27† H† 12: Stall
-PzKpfw M15/42(i) CS 4 CS 4 28 I Red TH# | Italian ESB
-PzKpfw P26/40(i) s8 CS 4 s8 CS 4 29 I Red TH# | Italian ESB
-PzKpfw VIE A6[2] sD7 CS 6 A6 sD7 CS 6 30† K NFT SA: Mines (CC: 12 FP) | Morale 9
-PzKpfw VIE (L) A4[4] sN7[4] CS 6 A4 sN7 CS 6 31 K Morale 9
-PzKpfw VIB sN9 CS 6 sN9 CS 6 32† K Morale 9
-StuG IIIB AP7 H6 s9 sD7 CS 4 AP7 H6 s9 sD7 CS 4 33† n/a
-StuG IIIG A6[2] s8 sD7 CS 4 A6 s8 sD7 CS 4 34† NFT P† S AAMG: VCA only
-StuG IIIG (L) A4[4] s8 sN9 CS 4 A4 s8 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
-StuH 42 H9 s9 sD7 CS 4 H9 s9 sD7 CS 4 36† NFT P† S AAMG: VCA only
-StuH 42 (L) H9 s9 sN9 CS 4 H9 s9 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
-StuPz IV H7 s9 CS 6 H7 s9 CS 6 37† S BMG: HD Fire OK | No IF
-Sturmtiger sN9 CS 5 sN9 CS 5 37.1† K MA: No Bnd (F)F, Motion Fire, Acq, CE | No Area Target Type, same Location, consecutive Fire | +1 TH DRM vs Moving/Motion/Dash | Riders Bail Out when MA fires | IFT: 36+ FP with -3 DRM | HE TK#: [{ *:Direct Hit (dr 1-2): 28 (armored), 22 (unarmored);
Specific Collateral Attack = full FP *:Near Miss: 10 (armored), 16 (unarmored);
Specific Collateral Attack = 20 FP }] | No IF | Morale 9
-PzJg Tiger CS 7 CS 7 38 n/a
-StuG 75/18(i) H7 s9 CS 3 H7 s9 CS 3 39 I P† Red TH# | Italian ESB | AAMG: VCA only
-StuG 75/34(i) s9 CS 3 s9 CS 3 40 I P† Red TH# | Italian ESB | AAMG: VCA only
-StuG 105/25(i) H7 s9 CS 3 H7 s9 CS 3 41 I P† No IF | Red TH# | Italian ESB | AAMG: VCA only
-StuG 75/46(i) s9 CS 3 s9 CS 3 42 I P† Red TH# | Italian ESB | AAMG: VCA only
-PzJg I A5[1] HE7 CS 3 A5 HE7 CS 3 43 N
-PzJg 35R(f) A5[1] HE7 CS 3 A5 HE7 CS 3 44 a French ESB
-Pz 35R 731(f) CS 2 CS 2 44.1† a French ESB
-Marder I(f) A6[2] HE7 s7 CS 4[brewup] A6 HE7 s7 CS 4[brewup] 45† a French ESB
-GSW 39H(f) Pak A4[4] HE9 CS 3 A4 HE9 CS 3 45.1 a e French ESB
-Marder II A6[2] HE7 s7 CS 4[brewup] A6 HE7 s7 CS 4[brewup] 46 M† NFT
-Marder III(t)H A6[2] HE7 s7 sD6 CS 4[brewup] A6 HE7 s7 sD6 CS 4[brewup] 47 E G NF CE: +3 Front | ESB: 0 DRM
-Marder III(t)M A5[3] HE7 s7 sD5 CS 4[brewup] A5 HE7 s7 sD5 CS 4[brewup] 48 E ESB: 0 DRM
-PzJg III/IV HE7 CS 5 HE7 CS 5 49 M†
-JgdPz 38(t) A4[4] HE7 CS 4 A4 HE7 CS 4 50 E O† ESB: 0 DRM | AAMG: BU only, Rider NA, elevation restrictions
-JgdPz 38(t) (Fl) CS 4 CS 4 51 E O† ESB: 0 DRM | AAMG: BU only, Rider NA, elevation restrictions
-JgdPz IV A4[4] HE7 s7 sN7[4] CS 4 A4 HE7 s7 sN7 CS 4 52 S
-JgdPz IV (L) A4[4] HE7 s7 sN8[4] CS 4 A4 HE7 s7 sN8 CS 4 52 S
-StuIG 33B H7 s9 CS 5 H7 s9 CS 5 53† n/a BMG: HD Fire OK | No IF
-JgdPz IV/70 HE7 sN9 CS 4 HE7 sN9 CS 4 54† S
-JgdPz V HE7 sN9 CS 6 HE7 sN9 CS 6 55 H 12: Stall
-JgdPz VI HE7 sN9 CS 7 HE7 sN9 CS 7 56 n/a
-SPW 250/1 CS 4 CS 4 57 N
-SPW 250/sMG CS 4† CS 4† 58† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
-SPW 250/7 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 J† N Inherent Infantry Crew | AAMG: NA VCA
-SPW 250/8 H6 s8 CS 4[brewup] H6 s8 CS 4[brewup] 60 Q† CMG: VCA only
-SPW 250/9 CS 4 CS 4 61† A† MA & CMG: AA ok
-SPW 250/10 A4[1] CS 4 A4 CS 4 62 J† N AAMG: NA VCA
-SPW 251/1 CS 5 CS 5 63 C† N
-SPW 251/sMG CS 5† CS 5† 58† C† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
-SPW 251/2 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 C† J† N Inherent Infantry Crew | AAMG: NA VCA
-SPW 251/9 H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 64 C† N Q† CMG: VCA only
-SPW 251/10 A4[1] CS 4 A4 CS 4 65 C† J† N PSK | AAMG: NA VCA
-SPW 251/16 CS 4[brewup] CS 4[brewup] 66† n/a Port/starboard FT's
-SPW 251/21 CS 4 CS 4 66.1† n/a 3 TK DR | MA: AA ok
-SPW 251/22 HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 67 J† AAMG: NA VCA
-SPW S307(f) A4[4] HE9 CS 4 A4 HE9 CS 4 67.1 a e French ESB
-mSPW S307(f) IR s5 CS 4 IR s5 CS 4 67.2 a e CE: +1 Rear & Indirect Fire | VCA Facing | Extra Smoke | No IF | French ESB
-Kfz 13 CS 2 CS 2 68† n/a Always CE
-PSW 221 sD6 CS 2 sD6 CS 2 69† A† N BU Fire NA | Reverse MP ×4 | MA & CMG: AA ok
-PSW 222 sD6 CS 3 sD6 CS 3 70† A† N Reverse MP ×3 | MA & CMG: AA ok
-PSW 222 (L) sD6 CS 3 sD6 CS 3 70† A† NF Reverse MP ×3 | MA & CMG: AA ok
-PSW 231 (6 rad) CS 4 CS 4 71† n/a Reverse MP ×2
-PSW 231 (8 rad) sD6 CS 4 sD6 CS 4 72† N
-PSW 232 (8 rad) sD6 CS 4 sD6 CS 4 72 NF
-PSW 233 H8 s9 sD7 CS 5 H8 s9 sD7 CS 5 73 NT
-PSW 234/1 CS 5 CS 5 74 A† MA & CMG: AA ok
-PSW 234/2 A5[3] sD7 CS 4 A5 sD7 CS 4 75 n/a
-PSW 234/3 H8 s9 CS 5 H8 s9 CS 5 76 Q† CMG: VCA only
-PSW 234/4 HE7 s7 CS 5[brewup] HE7 s7 CS 5[brewup] 77† n/a Reverse MP ×4
-sIG IB H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 78 G No IF | CE: +3 Front
-sIG II H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 79 N No IF
-sIG 38(t)M H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 80 E NFT No IF | ESB: 0 DRM
-PzA II H5 s8 CS 4 H5 s8 CS 4 81 M†
-PzA LrS(f) H4 s8 CS 4 H4 s8 CS 4 82 a N No IF | French ESB
-GSW 39H(f) H4 s7 CS 4 H4 s7 CS 4 82.1 a e French ESB
-PzA III/IV H5 s8 CS 6 H5 s8 CS 6 83 n/a No IF
-FlaKPz 38(t) CS 4 CS 4 84 A† E CE: +1 | MA & CMG: AA ok | ESB: 0 DRM
-37 FlaK/Pz IV CS 5 CS 5 85† A† Moving: [{ *:Fire ≤ level NA }] | Firing: [{ *:No CE DRM *:Random SW Destruction for MA }] | MA & CMG: AA ok
-FlaKPz IV/20 CS 6 CS 6 86 A† 4 TK DR | MA & CMG: AA ok
-FlaKPz IV/37 CS 6 CS 6 87 A† MA & CMG: AA ok
-SdKfz 10/4 CS 5 CS 5 88 A† D† N MA & CMG: AA ok | Ammo trailer
-SdKfz 10/5 CS 4 CS 4 88.1† A†2 D†1 MA & CMG: AA ok | Ammo trailer
-SdKfz 6/2 CS 5 CS 5 89 A† D† N MA & CMG: AA ok | Ammo trailer
-SdKfz 7/1 CS 4 CS 4 90 A† D† N 4 TK DR | MA & CMG: AA ok | Ammo trailer
-Kfz 4 CS 3 CS 3 91† N 2 TK DR (MG)
-2cm FlaK LKW CS 5 CS 5 92 A† MA & CMG: AA ok
-3.7cm FlaK LKW CS 5 CS 5 92 A† MA & CMG: AA ok
-Goliath 93† L† Bog assistance
-Kfz 1 cs 2† cs 2† 94† L† N Inherent Crew if armed (with CS#) | Bog assistance
-Kfz 1/20 cs 2 cs 2 95† L† +3 Target Size & HD in Water | Bog assistance
-Opel 6700 (Blitz) cs 6 cs 6 96 N
-Buessing-NAG 4500 cs 7 cs 7 96 N
-SdKfz 2 cs 2 cs 2 97† L† N As vehicle (not motorcycle) | Crew/HS Riders OK | Hidden AT Mine attacks NA | AP Mine attacks: Area Fire | Bog assistance
-SdKfz 7 cs 6 cs 6 98 N
-SdKfz 11 cs 5 cs 5 99 N
-PzKpfw IA sD6 CS 2 sD6 CS 2 1† Ge N 2 TK DR (MG)
-PzKpfw ICV sD5 CS 3 sD5 CS 3 2 A† MG: VCA only
-PzKpfw IID sD6 CS 3 sD6 CS 3 3 n/a
-PzKpfw II Bridgelayer sD6 CS 2 sD6 CS 2 4† n/a Inherent Crew | Movement restrictions | Stun = Recall, CE NA
-Pz-7TP CS 3 CS 3 5 B†
-PSW M35 CS 5 CS 5 6† n/a Reverse MP ×2
-SdKfz8 FlaK 18 A5[2]4[3] CS 6 A4 CS 6 7††[1] n/a CE: +3 VCA, otherwise 0 DRM | Indirect Fire: CE +1 | MA: Rear VCA NA | MA: Random SW Destruction | Mines: As unarmored
+Name Capabilities (effective) # Notes Comments
+---------------------- ----------------------------- ----------------------- ------ --------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+PzKpfw IB sD6 CS 2 sD6 CS 2 1† NF 2 TK DR
+PzKpfw IIA sD6 CS 3 sD6 CS 3 2 n/a
+PzKpfw IIF sD7 CS 3 sD7 CS 3 3 N
+PzKpfw II(Fl) sD7† CS 2[brewup] sD7† CS 2[brewup] 4† n/a sD: 3 hex range
+PzKpfw IIL sD7 CS 4 sD7 CS 4 5 n/a
+PzKpfw 35t sD5 CS 4 sD5 CS 4 6† n/a
+PzKpfw 38(t)A A4[1]5[2] sD6 CS 4 sD6 CS 4 7† E ESB: 0 DRM
+PzKpfw 38(t)E A4[1]5[2] sD7 CS 4 sD7 CS 4 8† E ESB: 0 DRM
+Aufklaerer 38(t) CS 5 CS 5 9 A† E MA & CMG: AA ok | ESB: 0 DRM
+FT-17 730m(f) CS 2 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
+FT-17 730(f) AP9 CS 2 AP9 CS 2 9.1† a c f Road Rate NA | French ESB | CE: +1 Rear Turret & Indirect Fire
+38H 735(f) AP10 CS 3 AP10 CS 3 9.2 a b† f French ESB | CMG: AA ok (TCA only)
+35-S 739(f) CS 4 CS 4 9.3 a b†2 d†1 f French ESB | CMG: AA ok (TCA only) | Immob: dr ≤ 4 [EXC: mines, Direct Fire vs front/rear]
+PzKpfw IIID sD6 CS 5 sD6 CS 5 10† n/a
+PzKpfw IIIF A4[1] sD7 CS 5 sD7 CS 5 11† n/a
+PzKpfw IIIG A4[1] sD7 CS 5 sD7 CS 5 12 N
+PzKpfw IIIH A4[1] sD7 CS 6 sD7 CS 6 13† N
+PzKpfw IIIJ A6[2] sD7 CS 6 sD7 CS 6 14† N S
+PzKpfw IIIL A6[2] sD7 CS 5 sD7 CS 5 15† B† N S
+PzKpfw IIIN H9 s9 sD7 CS 5 H9 s9 sD7 CS 5 16 B† NT S
+PzKpfw III(Fl) sD7 CS 3 sD7 CS 3 17 n/a
+PzKpfw IVA AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5 18† n/a
+PzKpfw IVC AP7 s9 sD6 CS 5 AP7 s9 sD6 CS 5 19† n/a
+PzKpfw IVD AP7 H6 s9 sD7 CS 5 AP7 H6 s9 sD7 CS 5 20 N R†
+PzKpfw IVE AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 21 N R†
+PzKpfw IVF1 AP7 H6 s9 sD7 CS 6 AP7 H6 s9 sD7 CS 6 22 N R†
+PzKpfw IVF2 A5[2] s8 sD6 CS 6 s8 sD6 CS 6 23† N S
+PzKpfw IVH A5[2] s8 sD5 CS 6 s8 sD5 CS 6 24† B† S
+PzKpfw IVJ A3[4] s8 sN9 CS 6 s8 sN9 CS 6 25 S
+PzKpfw VD sD5 CS 5[brewup] sD5 CS 5[brewup] 26 F† 12: Burn, 11: Immob, 10: Stall
+PzKpfw VG sN7[4] CS 6 CS 6 27† H† 12: Stall
+PzKpfw M15/42(i) CS 4 CS 4 28 I Red TH# | Italian ESB
+PzKpfw P26/40(i) s8 CS 4 s8 CS 4 29 I Red TH# | Italian ESB
+PzKpfw VIE A6[2] sD7 CS 6 sD7 CS 6 30† K NFT SA: Mines (CC: 12 FP) | Morale 9
+PzKpfw VIE (L) A4[4] sN7[4] CS 6 CS 6 31 K Morale 9
+PzKpfw VIB sN9 CS 6 sN9 CS 6 32† K Morale 9
+StuG IIIB AP7 H6 s9 sD7 CS 4 AP7 H6 s9 sD7 CS 4 33† n/a
+StuG IIIG A6[2] s8 sD7 CS 4 s8 sD7 CS 4 34† NFT P† S AAMG: VCA only
+StuG IIIG (L) A4[4] s8 sN9 CS 4 s8 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
+StuH 42 H9 s9 sD7 CS 4 H9 s9 sD7 CS 4 36† NFT P† S AAMG: VCA only
+StuH 42 (L) H9 s9 sN9 CS 4 H9 s9 sN9 CS 4 35 O† Q† S AAMG: BU only, Rider NA, elevation restrictions | CMG: VCA only
+StuPz IV H7 s9 CS 6 H7 s9 CS 6 37† S BMG: HD Fire OK | No IF
+Sturmtiger sN9 CS 5 sN9 CS 5 37.1† K MA: No Bnd (F)F, Motion Fire, Acq, CE | No Area Target Type, same Location, consecutive Fire | +1 TH DRM vs Moving/Motion/Dash | Riders Bail Out when MA fires | IFT: 36+ FP with -3 DRM | HE TK#: [{ *:Direct Hit (dr 1-2): 28 (armored), 22 (unarmored);
Specific Collateral Attack = full FP *:Near Miss: 10 (armored), 16 (unarmored);
Specific Collateral Attack = 20 FP }] | No IF | Morale 9
+PzJg Tiger CS 7 CS 7 38 n/a
+StuG 75/18(i) H7 s9 CS 3 H7 s9 CS 3 39 I P† Red TH# | Italian ESB | AAMG: VCA only
+StuG 75/34(i) s9 CS 3 s9 CS 3 40 I P† Red TH# | Italian ESB | AAMG: VCA only
+StuG 105/25(i) H7 s9 CS 3 H7 s9 CS 3 41 I P† No IF | Red TH# | Italian ESB | AAMG: VCA only
+StuG 75/46(i) s9 CS 3 s9 CS 3 42 I P† Red TH# | Italian ESB | AAMG: VCA only
+PzJg I A5[1] HE7 CS 3 HE7 CS 3 43 N
+PzJg 35R(f) A5[1] HE7 CS 3 HE7 CS 3 44 a French ESB
+Pz 35R 731(f) CS 2 CS 2 44.1† a French ESB
+Marder I(f) A6[2] HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 45† a French ESB
+GSW 39H(f) Pak A4[4] HE9 CS 3 HE9 CS 3 45.1 a e French ESB
+Marder II A6[2] HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 46 M† NFT
+Marder III(t)H A6[2] HE7 s7 sD6 CS 4[brewup] HE7 s7 sD6 CS 4[brewup] 47 E G NF CE: +3 Front | ESB: 0 DRM
+Marder III(t)M A5[3] HE7 s7 sD5 CS 4[brewup] HE7 s7 sD5 CS 4[brewup] 48 E ESB: 0 DRM
+PzJg III/IV HE7 CS 5 HE7 CS 5 49 M†
+JgdPz 38(t) A4[4] HE7 CS 4 HE7 CS 4 50 E O† ESB: 0 DRM | AAMG: BU only, Rider NA, elevation restrictions
+JgdPz 38(t) (Fl) CS 4 CS 4 51 E O† ESB: 0 DRM | AAMG: BU only, Rider NA, elevation restrictions
+JgdPz IV A4[4] HE7 s7 sN7[4] CS 4 HE7 s7 CS 4 52 S
+JgdPz IV (L) A4[4] HE7 s7 sN8[4] CS 4 HE7 s7 CS 4 52 S
+StuIG 33B H7 s9 CS 5 H7 s9 CS 5 53† n/a BMG: HD Fire OK | No IF
+JgdPz IV/70 HE7 sN9 CS 4 HE7 sN9 CS 4 54† S
+JgdPz V HE7 sN9 CS 6 HE7 sN9 CS 6 55 H 12: Stall
+JgdPz VI HE7 sN9 CS 7 HE7 sN9 CS 7 56 n/a
+SPW 250/1 CS 4 CS 4 57 N
+SPW 250/sMG CS 4† CS 4† 58† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
+SPW 250/7 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 J† N Inherent Infantry Crew | AAMG: NA VCA
+SPW 250/8 H6 s8 CS 4[brewup] H6 s8 CS 4[brewup] 60 Q† CMG: VCA only
+SPW 250/9 CS 4 CS 4 61† A† MA & CMG: AA ok
+SPW 250/10 A4[1] CS 4 CS 4 62 J† N AAMG: NA VCA
+SPW 251/1 CS 5 CS 5 63 C† N
+SPW 251/sMG CS 5† CS 5† 58† C† J† N Inherent Crew & Passenger | CMG: Normal Range = 16, VCA only | CMG: Removal/Scrounge OK (LMG) | AAMG: Removal OK (dm HMG); Scrounge OK (LMG) | AAMG: NA VCA
+SPW 251/2 IR s8 CS 4[brewup] IR s8 CS 4[brewup] 59 C† J† N Inherent Infantry Crew | AAMG: NA VCA
+SPW 251/9 H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 64 C† N Q† CMG: VCA only
+SPW 251/10 A4[1] CS 4 CS 4 65 C† J† N PSK | AAMG: NA VCA
+SPW 251/16 CS 4[brewup] CS 4[brewup] 66† n/a Port/starboard FT's
+SPW 251/21 CS 4 CS 4 66.1† n/a 3 TK DR | MA: AA ok
+SPW 251/22 HE7 s7 CS 4[brewup] HE7 s7 CS 4[brewup] 67 J† AAMG: NA VCA
+SPW S307(f) A4[4] HE9 CS 4 HE9 CS 4 67.1 a e French ESB
+mSPW S307(f) IR s5 CS 4 IR s5 CS 4 67.2 a e CE: +1 Rear & Indirect Fire | VCA Facing | Extra Smoke | No IF | French ESB
+Kfz 13 CS 2 CS 2 68† n/a Always CE
+PSW 221 sD6 CS 2 sD6 CS 2 69† A† N BU Fire NA | Reverse MP ×4 | MA & CMG: AA ok
+PSW 222 sD6 CS 3 sD6 CS 3 70† A† N Reverse MP ×3 | MA & CMG: AA ok
+PSW 222 (L) sD6 CS 3 sD6 CS 3 70† A† NF Reverse MP ×3 | MA & CMG: AA ok
+PSW 231 (6 rad) CS 4 CS 4 71† n/a Reverse MP ×2
+PSW 231 (8 rad) sD6 CS 4 sD6 CS 4 72† N
+PSW 232 (8 rad) sD6 CS 4 sD6 CS 4 72 NF
+PSW 233 H8 s9 sD7 CS 5 H8 s9 sD7 CS 5 73 NT
+PSW 234/1 CS 5 CS 5 74 A† MA & CMG: AA ok
+PSW 234/2 A5[3] sD7 CS 4 sD7 CS 4 75 n/a
+PSW 234/3 H8 s9 CS 5 H8 s9 CS 5 76 Q† CMG: VCA only
+PSW 234/4 HE7 s7 CS 5[brewup] HE7 s7 CS 5[brewup] 77† n/a Reverse MP ×4
+sIG IB H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 78 G No IF | CE: +3 Front
+sIG II H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 79 N No IF
+sIG 38(t)M H6 s9 CS 4[brewup] H6 s9 CS 4[brewup] 80 E NFT No IF | ESB: 0 DRM
+PzA II H5 s8 CS 4 H5 s8 CS 4 81 M†
+PzA LrS(f) H4 s8 CS 4 H4 s8 CS 4 82 a N No IF | French ESB
+GSW 39H(f) H4 s7 CS 4 H4 s7 CS 4 82.1 a e French ESB
+PzA III/IV H5 s8 CS 6 H5 s8 CS 6 83 n/a No IF
+FlaKPz 38(t) CS 4 CS 4 84 A† E CE: +1 | MA & CMG: AA ok | ESB: 0 DRM
+37 FlaK/Pz IV CS 5 CS 5 85† A† Moving: [{ *:Fire ≤ level NA }] | Firing: [{ *:No CE DRM *:Random SW Destruction for MA }] | MA & CMG: AA ok
+FlaKPz IV/20 CS 6 CS 6 86 A† 4 TK DR | MA & CMG: AA ok
+FlaKPz IV/37 CS 6 CS 6 87 A† MA & CMG: AA ok
+SdKfz 10/4 CS 5 CS 5 88 A† D† N MA & CMG: AA ok | Ammo trailer
+SdKfz 10/5 CS 4 CS 4 88.1† A†2 D†1 MA & CMG: AA ok | Ammo trailer
+SdKfz 6/2 CS 5 CS 5 89 A† D† N MA & CMG: AA ok | Ammo trailer
+SdKfz 7/1 CS 4 CS 4 90 A† D† N 4 TK DR | MA & CMG: AA ok | Ammo trailer
+Kfz 4 CS 3 CS 3 91† N 2 TK DR (MG)
+2cm FlaK LKW CS 5 CS 5 92 A† MA & CMG: AA ok
+3.7cm FlaK LKW CS 5 CS 5 92 A† MA & CMG: AA ok
+Goliath 93† L† Bog assistance
+Kfz 1 cs 2† cs 2† 94† L† N Inherent Crew if armed (with CS#) | Bog assistance
+Kfz 1/20 cs 2 cs 2 95† L† +3 Target Size & HD in Water | Bog assistance
+Opel 6700 (Blitz) cs 6 cs 6 96 N
+Buessing-NAG 4500 cs 7 cs 7 96 N
+SdKfz 2 cs 2 cs 2 97† L† N As vehicle (not motorcycle) | Crew/HS Riders OK | Hidden AT Mine attacks NA | AP Mine attacks: Area Fire | Bog assistance
+SdKfz 7 cs 6 cs 6 98 N
+SdKfz 11 cs 5 cs 5 99 N
+PzKpfw IA sD6 CS 2 sD6 CS 2 1† Ge N 2 TK DR (MG)
+PzKpfw ICV sD5 CS 3 sD5 CS 3 2 A† MG: VCA only
+PzKpfw IID sD6 CS 3 sD6 CS 3 3 n/a
+PzKpfw II Bridgelayer sD6 CS 2 sD6 CS 2 4† n/a Inherent Crew | Movement restrictions | Stun = Recall, CE NA
+Pz-7TP CS 3 CS 3 5 B†
+PSW M35 CS 5 CS 5 6† n/a Reverse MP ×2
+SdKfz8 FlaK 18 A5[2]4[3] CS 6 CS 6 7††[1] n/a CE: +3 VCA, otherwise 0 DRM | Indirect Fire: CE +1 | MA: Rear VCA NA | MA: Random SW Destruction | Mines: As unarmored
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/hungarian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/hungarian/1945.txt
index 95c17d3..33815eb 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/hungarian/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/hungarian/1945.txt
@@ -1,15 +1,15 @@
=== vehicles/hungarian/1945 ===
-Name Capabilities (effective) # Notes Comments
----------------- ----------------------------- ---------------------- --- -------------- ---------------------------------------------------------
-38M Toldi I CS 3 CS 3 7† A†1 MA: ATR 12 [TH] | MA: Scrounge OK | CMG: AA ok (TCA only)
-38M Toldi IIA CS 3 CS 3 8† A†1 AP TK# = 9 | CMG: AA ok (TCA only)
-40M Turan I(r) sD5 CS 5 sD5 CS 5 9† E N Q Russian ESB | ESB: +1 DRM | Red TH#
-41M Turan II(r) AP6 s7 sD5 CS 5 AP6 s7 sD5 CS 5 10† E N Q Russian ESB | ESB: +1 DRM | Red TH#
-PzKpfw VG(g) sN6 CS 6 sN6 CS 6 11† E 12: Stall | German ESB | Black TH#
-PzKpfw VIE(L)(g) A3[4] sN6 CS 6 A3 sN6 CS 6 12† E Morale 8 | German ESB | Black TH#
-43M Zrinyi II s7 sD5 CS 4 s7 sD5 CS 4 13† Q
-39M Csaba CS 4 CS 4 14 n/a
-40M Csaba CS 4 CS 4 14 n/a
-Marder II(g) A4[3]3[4] HE7 s6 CS 4[brewup] A3 HE7 s6 CS 4[brewup] 15 E German ESB | Black TH#
-40M Nimrod H6[9][3+] CS 6 H6[9] CS 6 16† P†1 HEAT TK# = 26 | MA & CMG: AA ok
+Name Capabilities (effective) # Notes Comments
+---------------- ----------------------------- ------------------- --- -------------- ---------------------------------------------------------
+38M Toldi I CS 3 CS 3 7† A†1 MA: ATR 12 [TH] | MA: Scrounge OK | CMG: AA ok (TCA only)
+38M Toldi IIA CS 3 CS 3 8† A†1 AP TK# = 9 | CMG: AA ok (TCA only)
+40M Turan I(r) sD5 CS 5 sD5 CS 5 9† E N Q Russian ESB | ESB: +1 DRM | Red TH#
+41M Turan II(r) AP6 s7 sD5 CS 5 AP6 s7 sD5 CS 5 10† E N Q Russian ESB | ESB: +1 DRM | Red TH#
+PzKpfw VG(g) sN6 CS 6 sN6 CS 6 11† E 12: Stall | German ESB | Black TH#
+PzKpfw VIE(L)(g) A3[4] sN6 CS 6 sN6 CS 6 12† E Morale 8 | German ESB | Black TH#
+43M Zrinyi II s7 sD5 CS 4 s7 sD5 CS 4 13† Q
+39M Csaba CS 4 CS 4 14 n/a
+40M Csaba CS 4 CS 4 14 n/a
+Marder II(g) A4[3]3[4] HE7 s6 CS 4[brewup] HE7 s6 CS 4[brewup] 15 E German ESB | Black TH#
+40M Nimrod H6[9][3+] CS 6 H6[9] CS 6 16† P†1 HEAT TK# = 26 | MA & CMG: AA ok
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1943.txt
index 60a261f..1620e4a 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1943.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1943.txt
@@ -5,10 +5,10 @@ Name Capabilities (effective)
T-37 ® CS 2 ® CS 2 1 H† M +3 Target Size & HD if in Water | 12: Immob, 11: Stall
T-27 ® CS 2 ® CS 2 1.1† M Q Riders: 1 crew, 1 SMC only (NA if Towing) | 12: Immob, 11: Stall | Stun = Recall, CE & Fire NA
T-40 ® CS 2 ® CS 2 2† H† 2 TK DR (12.7 & MG) | +3 Target Size & HD if in Water
-T-50 ® A4[2] CS 4 ® A4 CS 4 3 n/a
+T-50 ® A4[2] CS 4 ® CS 4 3 n/a
T-60 M40 ® CS 2 ® CS 2 4 n/a
T-60 M42 ®† CS 2 ®† CS 2 4 C† Radio
-T-70 ®† A4[2] CS 2 ®† A4 CS 2 5 C† Radio
+T-70 ®† A4[2] CS 2 ®† CS 2 5 C† Radio
T-26 M33 ® CS 3 ® CS 3 6 D I† M P 12: Immob, 11: Stall
T-26 M37/39 ® CS 3 ® CS 3 6 D M P 12: Immob, 11: Stall
T-26 M31 ® CS 3 ® CS 3 6.1† M P Turret Knock-Out: Non-HE TK = Final TK | CMG: Scrounge as BMG | 12: Immob, 11: Stall
@@ -25,10 +25,10 @@ T-28 M34(L) ® s8 CS 5 ® s8 CS 5
T-28E M40 ® s8 CS 6 ® s8 CS 6 12† M 12: Immob, 11: Stall
T-28E M40(L) ® s8 CS 6 ® s8 CS 6 12.1† M 12: Immob, 11: Stall
T-34 M40 ® CS 5 ® CS 5 13 M 12: Immob, 11: Stall
-T-34 M41 ®† A4[2] CS 5 ®† A4 CS 5 14† C† M Radio | 12: Immob, 11: Stall
-OT-34 ®† A2[2] AP7 CS 4 ®† A2 AP7 CS 4 15† C† M No IF | Radio | 12: Immob, 11: Stall
-T-34 M43 A4[2] CS 5 A4 CS 5 16† n/a
-T-43 ®† A4[2] CS 5 ®† A4 CS 5 17 C† M Radio | 12: Immob, 11: Stall
+T-34 M41 ®† A4[2] CS 5 ®† CS 5 14† C† M Radio | 12: Immob, 11: Stall
+OT-34 ®† A2[2] AP7 CS 4 ®† AP7 CS 4 15† C† M No IF | Radio | 12: Immob, 11: Stall
+T-34 M43 A4[2] CS 5 CS 5 16† n/a
+T-43 ®† A4[2] CS 5 ®† CS 5 17 C† M Radio | 12: Immob, 11: Stall
T-34/85 A5[4] sD6† CS 6 sD6† CS 6 18† J† sD: single-use
M4/76(a) A3[4] s8 sM8 CS 6 s8 sM8 CS 6 19† N Black TH# | U.S. AP & APCR TK #'s | American ESB
T-44 A6[5] CS 5 CS 5 20 B† M BMG: +1 DRM vs Moving/Motion | 12: Immob, 11: Stall
@@ -37,11 +37,11 @@ SMK CS 7 CS 7
T-100 CS 7 CS 7 21.2 M T† 12: Immob, 11: Stall | 76 MA: RST | 45L SA: RST; Always BU; No IF | TCA restrictions
KV-1 M39/40 CS 6 CS 6 22† M 12: Immob, 11: Stall
KV-1E CS 6 CS 6 23 D M 12: Immob, 11: Stall
-KV-1 M41 A4[2] CS 6 A4 CS 6 23 D M 12: Immob, 11: Stall
-KV-1 M42 A4[2] CS 6 A4 CS 6 23 D M 12: Immob, 11: Stall
+KV-1 M41 A4[2] CS 6 CS 6 23 D M 12: Immob, 11: Stall
+KV-1 M42 A4[2] CS 6 CS 6 23 D M 12: Immob, 11: Stall
KV-2 AP9 CS 7 AP9 CS 7 24† M Pays NT TCA DRM | No IF | 12: Immob, 11: Stall
-KV-8 A4[2] AP7 CS 6 A4 AP7 CS 6 15† C M Radio | 12: Immob, 11: Stall
-KV-1S A4[2] CS 6 A4 CS 6 25† n/a
+KV-8 A4[2] AP7 CS 6 AP7 CS 6 15† C M Radio | 12: Immob, 11: Stall
+KV-1S A4[2] CS 6 CS 6 25† n/a
KV-85 A4[3]5[4] CS 5 A4 CS 5 26 B† BMG: +1 DRM vs Moving/Motion
IS-2 CS 6 CS 6 27 B† No IF | BMG: +1 DRM vs Moving/Motion
IS-2m CS 6 CS 6 28 B† G† No IF | BMG: +1 DRM vs Moving/Motion | AAMG: 12.7
@@ -56,7 +56,7 @@ SU-85 A5[3] HE7 s7 CS 5 A5 HE7 s7 CS
SU-100 HE7 CS 5 HE7 CS 5 36 n/a
SU-57(a) A5[3] HE7 CS 4 A5 HE7 CS 4 37 K American ESB | Red TH#
BA-20 ® CS 3 ® CS 3 38 n/a
-BA-6 ® A4[2] CS 4 ® A4 CS 4 39 n/a
+BA-6 ® A4[2] CS 4 ® CS 4 39 n/a
BA-64B CS 2 CS 2 40† A† BU Fire NA | MA & CMG: AA ok
ZSU-37 CS 4 CS 4 41† A† Pays NT CA DRM | MA & CMG: AA ok
SU-12 AP7 s8 CS 4 AP7 s8 CS 4 42 F† MA: VCA ≤ level NA
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1944.txt
index 7cc266d..b2e8c4c 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1944.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1944.txt
@@ -5,10 +5,10 @@ Name Capabilities (effective)
T-37 ® CS 2 ® CS 2 1 H† M +3 Target Size & HD if in Water | 12: Immob, 11: Stall
T-27 ® CS 2 ® CS 2 1.1† M Q Riders: 1 crew, 1 SMC only (NA if Towing) | 12: Immob, 11: Stall | Stun = Recall, CE & Fire NA
T-40 ® CS 2 ® CS 2 2† H† 2 TK DR (12.7 & MG) | +3 Target Size & HD if in Water
-T-50 ® A4[2] CS 4 ® A4 CS 4 3 n/a
+T-50 ® A4[2] CS 4 ® CS 4 3 n/a
T-60 M40 ® CS 2 ® CS 2 4 n/a
T-60 M42 ®† CS 2 ®† CS 2 4 C† Radio
-T-70 ®† A4[2] CS 2 ®† A4 CS 2 5 C† Radio
+T-70 ®† A4[2] CS 2 ®† CS 2 5 C† Radio
T-26 M33 ® CS 3 ® CS 3 6 D I† M P 12: Immob, 11: Stall
T-26 M37/39 ® CS 3 ® CS 3 6 D M P 12: Immob, 11: Stall
T-26 M31 ® CS 3 ® CS 3 6.1† M P Turret Knock-Out: Non-HE TK = Final TK | CMG: Scrounge as BMG | 12: Immob, 11: Stall
@@ -25,10 +25,10 @@ T-28 M34(L) ® s8 CS 5 ® s8 CS 5
T-28E M40 ® s8 CS 6 ® s8 CS 6 12† M 12: Immob, 11: Stall
T-28E M40(L) ® s8 CS 6 ® s8 CS 6 12.1† M 12: Immob, 11: Stall
T-34 M40 ® CS 5 ® CS 5 13 M 12: Immob, 11: Stall
-T-34 M41 ®† A4[2] CS 5 ®† A4 CS 5 14† C† M Radio | 12: Immob, 11: Stall
-OT-34 ®† A2[2] AP7 CS 4 ®† A2 AP7 CS 4 15† C† M No IF | Radio | 12: Immob, 11: Stall
-T-34 M43 A4[2] CS 5 A4 CS 5 16† n/a
-T-43 ®† A4[2] CS 5 ®† A4 CS 5 17 C† M Radio | 12: Immob, 11: Stall
+T-34 M41 ®† A4[2] CS 5 ®† CS 5 14† C† M Radio | 12: Immob, 11: Stall
+OT-34 ®† A2[2] AP7 CS 4 ®† AP7 CS 4 15† C† M No IF | Radio | 12: Immob, 11: Stall
+T-34 M43 A4[2] CS 5 CS 5 16† n/a
+T-43 ®† A4[2] CS 5 ®† CS 5 17 C† M Radio | 12: Immob, 11: Stall
T-34/85 A5[4] sD6† CS 6 A5 sD6† CS 6 18† J† sD: single-use
M4/76(a) A3[4] s8 sM8 CS 6 A3 s8 sM8 CS 6 19† N Black TH# | U.S. AP & APCR TK #'s | American ESB
T-44 A6[5] CS 5 CS 5 20 B† M BMG: +1 DRM vs Moving/Motion | 12: Immob, 11: Stall
@@ -37,26 +37,26 @@ SMK CS 7 CS 7
T-100 CS 7 CS 7 21.2 M T† 12: Immob, 11: Stall | 76 MA: RST | 45L SA: RST; Always BU; No IF | TCA restrictions
KV-1 M39/40 CS 6 CS 6 22† M 12: Immob, 11: Stall
KV-1E CS 6 CS 6 23 D M 12: Immob, 11: Stall
-KV-1 M41 A4[2] CS 6 A4 CS 6 23 D M 12: Immob, 11: Stall
-KV-1 M42 A4[2] CS 6 A4 CS 6 23 D M 12: Immob, 11: Stall
+KV-1 M41 A4[2] CS 6 CS 6 23 D M 12: Immob, 11: Stall
+KV-1 M42 A4[2] CS 6 CS 6 23 D M 12: Immob, 11: Stall
KV-2 AP9 CS 7 AP9 CS 7 24† M Pays NT TCA DRM | No IF | 12: Immob, 11: Stall
-KV-8 A4[2] AP7 CS 6 A4 AP7 CS 6 15† C M Radio | 12: Immob, 11: Stall
-KV-1S A4[2] CS 6 A4 CS 6 25† n/a
+KV-8 A4[2] AP7 CS 6 AP7 CS 6 15† C M Radio | 12: Immob, 11: Stall
+KV-1S A4[2] CS 6 CS 6 25† n/a
KV-85 A4[3]5[4] CS 5 A5 CS 5 26 B† BMG: +1 DRM vs Moving/Motion
IS-2 CS 6 CS 6 27 B† No IF | BMG: +1 DRM vs Moving/Motion
IS-2m CS 6 CS 6 28 B† G† No IF | BMG: +1 DRM vs Moving/Motion | AAMG: 12.7
IS-3 sD6† CS 6 sD6† CS 6 29 G† J† No IF | AAMG: 12.7 | sD: single-use
-SU-76M A5[3] CS 4[brewup] A5 CS 4[brewup] 30† n/a
-SU-76i(g) A5[3] CS 5 A5 CS 5 31 K German ESB | Red TH#
+SU-76M A5[3] CS 4[brewup] CS 4[brewup] 30† n/a
+SU-76i(g) A5[3] CS 5 CS 5 31 K German ESB | Red TH#
SU-122 H9 s8 CS 5 H9 s8 CS 5 32 n/a No IF
SU-152 CS 6 CS 6 33† n/a No IF
ISU-122 s8 CS 6 s8 CS 6 34 G† No IF | AAMG: 12.7
ISU-152 CS 6 CS 6 34 G† No IF | AAMG: 12.7
-SU-85 A5[3] HE7 s7 CS 5 A5 HE7 s7 CS 5 35 n/a
+SU-85 A5[3] HE7 s7 CS 5 HE7 s7 CS 5 35 n/a
SU-100 HE7 CS 5 HE7 CS 5 36 n/a
-SU-57(a) A5[3] HE7 CS 4 A5 HE7 CS 4 37 K American ESB | Red TH#
+SU-57(a) A5[3] HE7 CS 4 HE7 CS 4 37 K American ESB | Red TH#
BA-20 ® CS 3 ® CS 3 38 n/a
-BA-6 ® A4[2] CS 4 ® A4 CS 4 39 n/a
+BA-6 ® A4[2] CS 4 ® CS 4 39 n/a
BA-64B CS 2 CS 2 40† A† BU Fire NA | MA & CMG: AA ok
ZSU-37 CS 4 CS 4 41† A† Pays NT CA DRM | MA & CMG: AA ok
SU-12 AP7 s8 CS 4 AP7 s8 CS 4 42 F† MA: VCA ≤ level NA
@@ -116,5 +116,5 @@ BT-5 M34 ® C4†[2] CS 3 ® C4†[2
BT-7 M37 ® C4†[3] CS 3 ® C4†[3] CS 3 14 C†3 Ru D†2 Ru I† Ru M†1 12: Immob, 11: Stall
T-26A ® AP7 C6†[3] s9 CS 3 ® AP7 C6†[3] s9 CS 3 15† B C†3 Ru D†2 Ru M†1 12: Immob, 11: Stall
BT-7A AP7 C6†[2] s9 CS 3 AP7 C6†[2] s9 CS 3 16† B C†2 Ru M†1 Shrapnel Rounds | 12: Immob, 11: Stall
-BA-6 ® A4[2]5[3] C4† CS 4 ® A5 C4† CS 4 17† n/a
+BA-6 ® A4[2]5[3] C4† CS 4 ® C4† CS 4 17† n/a
SU-12 AP7 C6†[2] s8 CS 4 AP7 C6†[2] s8 CS 4 18† B C†2 Ru F†1 Shrapnel Rounds | MA: VCA ≤ level NA
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1945.txt
index 8938d54..304e1a6 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/russian/1945.txt
@@ -5,10 +5,10 @@ Name Capabilities (effective)
T-37 ® CS 2 ® CS 2 1 H† M +3 Target Size & HD if in Water | 12: Immob, 11: Stall
T-27 ® CS 2 ® CS 2 1.1† M Q Riders: 1 crew, 1 SMC only (NA if Towing) | 12: Immob, 11: Stall | Stun = Recall, CE & Fire NA
T-40 ® CS 2 ® CS 2 2† H† 2 TK DR (12.7 & MG) | +3 Target Size & HD if in Water
-T-50 ® A4[2] CS 4 ® A4 CS 4 3 n/a
+T-50 ® A4[2] CS 4 ® CS 4 3 n/a
T-60 M40 ® CS 2 ® CS 2 4 n/a
T-60 M42 ®† CS 2 ®† CS 2 4 C† Radio
-T-70 ®† A4[2] CS 2 ®† A4 CS 2 5 C† Radio
+T-70 ®† A4[2] CS 2 ®† CS 2 5 C† Radio
T-26 M33 ® CS 3 ® CS 3 6 D I† M P 12: Immob, 11: Stall
T-26 M37/39 ® CS 3 ® CS 3 6 D M P 12: Immob, 11: Stall
T-26 M31 ® CS 3 ® CS 3 6.1† M P Turret Knock-Out: Non-HE TK = Final TK | CMG: Scrounge as BMG | 12: Immob, 11: Stall
@@ -25,38 +25,38 @@ T-28 M34(L) ® s8 CS 5 ® s8 CS 5
T-28E M40 ® s8 CS 6 ® s8 CS 6 12† M 12: Immob, 11: Stall
T-28E M40(L) ® s8 CS 6 ® s8 CS 6 12.1† M 12: Immob, 11: Stall
T-34 M40 ® CS 5 ® CS 5 13 M 12: Immob, 11: Stall
-T-34 M41 ®† A4[2] CS 5 ®† A4 CS 5 14† C† M Radio | 12: Immob, 11: Stall
-OT-34 ®† A2[2] AP7 CS 4 ®† A2 AP7 CS 4 15† C† M No IF | Radio | 12: Immob, 11: Stall
-T-34 M43 A4[2] CS 5 A4 CS 5 16† n/a
-T-43 ®† A4[2] CS 5 ®† A4 CS 5 17 C† M Radio | 12: Immob, 11: Stall
-T-34/85 A5[4] sD6† CS 6 A5 sD6† CS 6 18† J† sD: single-use
-M4/76(a) A3[4] s8 sM8 CS 6 A3 s8 sM8 CS 6 19† N Black TH# | U.S. AP & APCR TK #'s | American ESB
+T-34 M41 ®† A4[2] CS 5 ®† CS 5 14† C† M Radio | 12: Immob, 11: Stall
+OT-34 ®† A2[2] AP7 CS 4 ®† AP7 CS 4 15† C† M No IF | Radio | 12: Immob, 11: Stall
+T-34 M43 A4[2] CS 5 CS 5 16† n/a
+T-43 ®† A4[2] CS 5 ®† CS 5 17 C† M Radio | 12: Immob, 11: Stall
+T-34/85 A5[4] sD6† CS 6 sD6† CS 6 18† J† sD: single-use
+M4/76(a) A3[4] s8 sM8 CS 6 s8 sM8 CS 6 19† N Black TH# | U.S. AP & APCR TK #'s | American ESB
T-44 A6[5] CS 5 A6 CS 5 20 B† M BMG: +1 DRM vs Moving/Motion | 12: Immob, 11: Stall
T-35 ® s9 CS 8 ® s9 CS 8 21† M 45L SA: Always BU; No TCA Change DRM; No IF | 12: Immob, 11: Stall
SMK CS 7 CS 7 21.1 M T† 12: Immob, 11: Stall | 76 MA: RST | 45L SA: RST; Always BU; No IF | TCA restrictions
T-100 CS 7 CS 7 21.2 M T† 12: Immob, 11: Stall | 76 MA: RST | 45L SA: RST; Always BU; No IF | TCA restrictions
KV-1 M39/40 CS 6 CS 6 22† M 12: Immob, 11: Stall
KV-1E CS 6 CS 6 23 D M 12: Immob, 11: Stall
-KV-1 M41 A4[2] CS 6 A4 CS 6 23 D M 12: Immob, 11: Stall
-KV-1 M42 A4[2] CS 6 A4 CS 6 23 D M 12: Immob, 11: Stall
+KV-1 M41 A4[2] CS 6 CS 6 23 D M 12: Immob, 11: Stall
+KV-1 M42 A4[2] CS 6 CS 6 23 D M 12: Immob, 11: Stall
KV-2 AP9 CS 7 AP9 CS 7 24† M Pays NT TCA DRM | No IF | 12: Immob, 11: Stall
-KV-8 A4[2] AP7 CS 6 A4 AP7 CS 6 15† C M Radio | 12: Immob, 11: Stall
-KV-1S A4[2] CS 6 A4 CS 6 25† n/a
-KV-85 A4[3]5[4] CS 5 A5 CS 5 26 B† BMG: +1 DRM vs Moving/Motion
+KV-8 A4[2] AP7 CS 6 AP7 CS 6 15† C M Radio | 12: Immob, 11: Stall
+KV-1S A4[2] CS 6 CS 6 25† n/a
+KV-85 A4[3]5[4] CS 5 CS 5 26 B† BMG: +1 DRM vs Moving/Motion
IS-2 CS 6 CS 6 27 B† No IF | BMG: +1 DRM vs Moving/Motion
IS-2m CS 6 CS 6 28 B† G† No IF | BMG: +1 DRM vs Moving/Motion | AAMG: 12.7
IS-3 sD6† CS 6 sD6† CS 6 29 G† J† No IF | AAMG: 12.7 | sD: single-use
-SU-76M A5[3] CS 4[brewup] A5 CS 4[brewup] 30† n/a
-SU-76i(g) A5[3] CS 5 A5 CS 5 31 K German ESB | Red TH#
+SU-76M A5[3] CS 4[brewup] CS 4[brewup] 30† n/a
+SU-76i(g) A5[3] CS 5 CS 5 31 K German ESB | Red TH#
SU-122 H9 s8 CS 5 H9 s8 CS 5 32 n/a No IF
SU-152 CS 6 CS 6 33† n/a No IF
ISU-122 s8 CS 6 s8 CS 6 34 G† No IF | AAMG: 12.7
ISU-152 CS 6 CS 6 34 G† No IF | AAMG: 12.7
-SU-85 A5[3] HE7 s7 CS 5 A5 HE7 s7 CS 5 35 n/a
+SU-85 A5[3] HE7 s7 CS 5 HE7 s7 CS 5 35 n/a
SU-100 HE7 CS 5 HE7 CS 5 36 n/a
-SU-57(a) A5[3] HE7 CS 4 A5 HE7 CS 4 37 K American ESB | Red TH#
+SU-57(a) A5[3] HE7 CS 4 HE7 CS 4 37 K American ESB | Red TH#
BA-20 ® CS 3 ® CS 3 38 n/a
-BA-6 ® A4[2] CS 4 ® A4 CS 4 39 n/a
+BA-6 ® A4[2] CS 4 ® CS 4 39 n/a
BA-64B CS 2 CS 2 40† A† BU Fire NA | MA & CMG: AA ok
ZSU-37 CS 4 CS 4 41† A† Pays NT CA DRM | MA & CMG: AA ok
SU-12 AP7 s8 CS 4 AP7 s8 CS 4 42 F† MA: VCA ≤ level NA
@@ -116,5 +116,5 @@ BT-5 M34 ® C4†[2] CS 3 ® C4†[2
BT-7 M37 ® C4†[3] CS 3 ® C4†[3] CS 3 14 C†3 Ru D†2 Ru I† Ru M†1 12: Immob, 11: Stall
T-26A ® AP7 C6†[3] s9 CS 3 ® AP7 C6†[3] s9 CS 3 15† B C†3 Ru D†2 Ru M†1 12: Immob, 11: Stall
BT-7A AP7 C6†[2] s9 CS 3 AP7 C6†[2] s9 CS 3 16† B C†2 Ru M†1 Shrapnel Rounds | 12: Immob, 11: Stall
-BA-6 ® A4[2]5[3] C4† CS 4 ® A5 C4† CS 4 17† n/a
+BA-6 ® A4[2]5[3] C4† CS 4 ® C4† CS 4 17† n/a
SU-12 AP7 C6†[2] s8 CS 4 AP7 C6†[2] s8 CS 4 18† B C†2 Ru F†1 Shrapnel Rounds | MA: VCA ≤ level NA
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1945.txt
index c4279fc..a69ef9e 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/slovakian/1945.txt
@@ -1,11 +1,11 @@
=== vehicles/slovakian/1945 ===
-Name Capabilities (effective) # Notes Comments
--------------- --------------------------------- -------------------------- --- --------------------------------- -------------------------------------------------------------------------------------------------------
-T vz 33(t) ® CS 2 ® CS 2 17† E F G†2 K†1 Czech ESB | Stun = Recall, CE & Fire NA | 2 TK DR
-LT vz 34 ® CS 2 ® CS 2 18 n/a
-PzKpfw IIA(g) sD6 CS 3 sD6 CS 3 19 E German ESB | Black TH#
-LT vz 40(t) sD6 CS 4 sD6 CS 4 20† E K†1 Czech ESB | 2 TK DR
-Marder III(t)H A4[3]3[4] HE7 s7 sD6 CS 4[brewup] A3 HE7 s7 sD6 CS 4[brewup] 21† E CE: +3 Front | Czech ESB | Black TH#
-Kfz 1(g) cs 2†[1] cs 2†[1] 22† E I†1 L†2 Inherent Crew if armed (with CS#) | Bog Assistance
-SdKfz 2(g) cs 2 cs 2 23† E L†1 German ESB | Crew/HS Rider OK | Hidden AT Mine attacks NA | AP Mine attacks: Area Fire | Bog Assistance
+Name Capabilities (effective) # Notes Comments
+-------------- --------------------------------- ----------------------- --- --------------------------------- -------------------------------------------------------------------------------------------------------
+T vz 33(t) ® CS 2 ® CS 2 17† E F G†2 K†1 Czech ESB | Stun = Recall, CE & Fire NA | 2 TK DR
+LT vz 34 ® CS 2 ® CS 2 18 n/a
+PzKpfw IIA(g) sD6 CS 3 sD6 CS 3 19 E German ESB | Black TH#
+LT vz 40(t) sD6 CS 4 sD6 CS 4 20† E K†1 Czech ESB | 2 TK DR
+Marder III(t)H A4[3]3[4] HE7 s7 sD6 CS 4[brewup] HE7 s7 sD6 CS 4[brewup] 21† E CE: +3 Front | Czech ESB | Black TH#
+Kfz 1(g) cs 2†[1] cs 2†[1] 22† E I†1 L†2 Inherent Crew if armed (with CS#) | Bog Assistance
+SdKfz 2(g) cs 2 cs 2 23† E L†1 German ESB | Crew/HS Rider OK | Hidden AT Mine attacks NA | AP Mine attacks: Area Fire | Bog Assistance
diff --git a/vasl_templates/webapp/tests/test_capabilities.py b/vasl_templates/webapp/tests/test_capabilities.py
index c98b02c..9670827 100644
--- a/vasl_templates/webapp/tests/test_capabilities.py
+++ b/vasl_templates/webapp/tests/test_capabilities.py
@@ -81,7 +81,7 @@ def test_month_capabilities( webapp, webdriver ): #pylint: disable=too-many-stat
_check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1944", "A4 sM8 CS 6" )
_check_capabilities( webdriver, webapp, *vehicle, "ETO", "12/1944", "A4 sM8 CS 6" )
_check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1945", "A5 s5 sM8 CS 6" )
- _check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1946", "A5 s5 sM8 CS 6" )
+ _check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1946", "sM8 CS 6" )
# M4A1(76)W & M4A3(76)W: A4(A4)/5(5)†2, s5(5)
for vo_name in ("M4A1(76)W","M4A3(76)W"):
@@ -90,7 +90,7 @@ def test_month_capabilities( webapp, webdriver ): #pylint: disable=too-many-stat
_check_capabilities( webdriver, webapp, *vehicle, "ETO", "07/1944", "sM8 CS 6" )
_check_capabilities( webdriver, webapp, *vehicle, "ETO", "08/1944", "A4[!2] sM8 CS 6" )
_check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1945", "A5[!2] s5 sM8 CS 6" )
- _check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1946", "A5[!2] s5 sM8 CS 6" )
+ _check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1946", "sM8 CS 6" )
# Sherman Crab: s5(J4+); WP7(J4+)†2
vehicle = [ "american", "vehicles", "Sherman Crab" ]
@@ -277,7 +277,7 @@ def test_month_capabilities( webapp, webdriver ): #pylint: disable=too-many-stat
_check_capabilities( webdriver, webapp, *vehicle, "ETO", "06/1944", "WP7[!] s8 CS 5 [brewup]" )
_check_capabilities( webdriver, webapp, *vehicle, "ETO", "01/1945", "WP7[!] s8 CS 5 [brewup]" )
- # 81 Krh/32: s8(N1)†
+ # 81 Krh/32: s8(N1+)†
ordnance = [ "finnish", "ordnance", "81 Krh/32" ]
_check_capabilities( webdriver, webapp, *ordnance, "ETO", "12/1940", "NT" )
_check_capabilities( webdriver, webapp, *ordnance, "ETO", "10/1941", "NT" )
@@ -831,7 +831,7 @@ def test_capability_updates_in_ui( webapp, webdriver ):
] )
check_capabilities( "01/01/1943", [
[
- [ "A5", "sD6", "CS 4" ],
+ [ "sD6", "CS 4" ],
[ "A51", "HE7", "CS 3", "foo!" ]
],
[ [ "NT", "A4", "H6[9]\u2020" ] ],
@@ -840,7 +840,7 @@ def test_capability_updates_in_ui( webapp, webdriver ):
] )
check_capabilities( "01/01/1944", [
[
- [ "A5", "sD6", "CS 4" ],
+ [ "sD6", "CS 4" ],
[ "A51", "HE7", "CS 3", "foo!" ]
],
[ [ "NT", "A3", "H6[9]\u2020" ] ],
@@ -849,10 +849,10 @@ def test_capability_updates_in_ui( webapp, webdriver ):
] )
check_capabilities( "01/01/1945", [
[
- [ "A5", "sD6", "CS 4" ],
+ [ "sD6", "CS 4" ],
[ "A51", "HE7", "CS 3", "foo!" ]
],
- [ [ "NT", "A3", "H6[9]\u2020" ] ],
+ [ [ "NT", "H6[9]\u2020" ] ],
[ [ "D7\u2020", "HE8\u2020", "sD6", "sM8\u2020", "CS 7" ] ],
[ [ "NT", "A7" ] ]
] )
diff --git a/vasl_templates/webapp/tests/test_vehicles_ordnance.py b/vasl_templates/webapp/tests/test_vehicles_ordnance.py
index b4bff40..6c4cc94 100644
--- a/vasl_templates/webapp/tests/test_vehicles_ordnance.py
+++ b/vasl_templates/webapp/tests/test_vehicles_ordnance.py
@@ -223,7 +223,7 @@ def test_variable_capabilities( webapp, webdriver ):
do_test( 12, 1944, '"D6\u2020" "HE8\u2020" "sD6" "sM8\u2020" "CS 7"' )
do_test( 1, 1945, '"D7\u2020" "HE8\u2020" "sD6" "sM8\u2020" "CS 7"' )
do_test( 12, 1945, '"D7\u2020" "HE8\u2020" "sD6" "sM8\u2020" "CS 7"' )
- do_test( 1, 1946, '"D7\u2020" "HE8\u2020" "sD6" "sM8\u2020" "CS 7"' )
+ do_test( 1, 1946, '"HE8\u2020" "sD6" "sM8\u2020" "CS 7"' )
# ---------------------------------------------------------------------