Corrected an issue with the preprocessor running on the gf180mcu
tech file for magic.  The preprocessor syntax accepts the syntax
"if defined(A) || defined(B)" but not the syntax "if defined(A || B)".
This prevented the C variant from having the correct DRC rules for
the 0.9um thick top metal.  Also:  Ran an update on the PV library
to capture a recent fix (also related to top metal) for the klayout
DRC rules, and updated the distribution JSON file to reflect the
PV library's new commit hash.
diff --git a/VERSION b/VERSION
index 3f2d5b1..302d5de 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.396
+1.0.397
diff --git a/gf180mcu/gf180mcu.json b/gf180mcu/gf180mcu.json
index 7bdef04..24fdb91 100644
--- a/gf180mcu/gf180mcu.json
+++ b/gf180mcu/gf180mcu.json
@@ -89,11 +89,11 @@
         "magic": "MAGIC_COMMIT"
     },
     "reference": {
-        "open_pdks": "815863e7bf1848eb9e21ac1fba50fba0fcbde173",
-        "magic": "e72f85fd105f2f87a809a0512f85b0da75b0350e",
+        "open_pdks": "7ddd413a3495a9055f03ae60b4320b14d0d6dc55",
+        "magic": "eb36edf35a9fca496898f5e745ba2c796b13917f",
         "gf180mcu_pdk": "a897aa30369d3bcec87d9d50ce9b01f320f854ef",
         "gf180mcu_fd_pr": "9d03c3186e8ebfb97c0d05e3d35e64fe6dbbf511",
-        "gf180mcu_fd_pv": "1984a3ca2749350060799115ebb1af41ad4af495",
+        "gf180mcu_fd_pv": "8c2297c81dc9781120a25761678107e0e12c6f27",
         "gf180mcu_fd_io": "2aeec51ea2824b6cc0b396acfc39f4535f40b23a",
         "gf180mcu_fd_sc_mcu7t5v0": "8743b6f9641eb8707179c4e51703380d4dc90f16",
         "gf180mcu_fd_sc_mcu9t5v0": "376ea56fa36ce7702595ce4e0e3c9357ee38c81c",
diff --git a/gf180mcu/magic/gf180mcu.tech b/gf180mcu/magic/gf180mcu.tech
index 27d236a..c902ded 100644
--- a/gf180mcu/magic/gf180mcu.tech
+++ b/gf180mcu/magic/gf180mcu.tech
@@ -1344,7 +1344,7 @@
 	shrink 	500
 	grow 	500
 
-#elseif defined(THICKMET0P9 || THICKMET1P1)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  templayer 	obstruct_mtp allmtp,allpad,fillmtp,obsmtp
 	grow 	2010
 	shrink 	500
@@ -3002,7 +3002,7 @@
  surround v2/m3 *m3 240 directional \
 	"Thick Metal3 overlap of Via2 < %d in one direction (MT30.6 - V2.4)"
 
-#elseif defined(THICKMET0P9 || THICKMET1P1)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  surround v2/m3 *m3 50 30 directional \
 	"Metal3 overlap of Via2 < %d in one direction (V2.4i - V2.4)"
 
@@ -3069,7 +3069,7 @@
  surround v3/m4 *m4 240 directional \
 	"Thick Metal4 overlap of Via3 < %d in one direction (MT30.6 - V3.4)"
 
-#elseif defined(THICKMET0P9 || THICKMET1P1)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  surround v3/m4 *m4 50 30 directional \
 	"Metal4 overlap of Via3 < %d in one direction (V3.4i - V3.4)"
 
@@ -3132,7 +3132,7 @@
  surround v4/m5 *m5 240 directional \
 	"Metal5 overlap of Via4 < %d in one direction (MT30.6 - V4.4)"
 
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  surround v4/m4 *m4 50 30 directional \
 	"Metal4 overlap of Via4 < %d in one direction (V4.3i - V4.3)"
  surround v4/m5 *m5 50 30 directional \
@@ -3206,7 +3206,7 @@
  surround vtp/mtp *mtp 240 directional \
 	"Thick Top Metal overlap of ViaTP < %d in one direction (MT30.6 - VTP.4)"
 
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  surround vtp/mtp *mtp 80 absence_illegal \
 	"Top Metal overlap of ViaTP < %d (VT.4 - VT.3)"
  width allmtp 440 "Top Metal width < %d (MT.1)"
@@ -3635,7 +3635,7 @@
 #ifdef METALS3
 #ifdef THICKMET3P0
  resist (allm3)/metal3  	    10
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allm3)/metal3  	    40
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allm3)/metal3  	    60
@@ -3648,7 +3648,7 @@
 #ifdef METALS4
 #ifdef THICKMET3P0
  resist (allm4)/metal4  	    10
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allm4)/metal4  	    40
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allm4)/metal4  	    60
@@ -3661,7 +3661,7 @@
 #ifdef METALS5
 #ifdef THICKMET3P0
  resist (allm5)/metal5  	    10
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allm5)/metal5  	    40
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allm5)/metal5  	    60
@@ -3674,7 +3674,7 @@
 #ifdef METALS6
 #ifdef THICKMET3P0
  resist (allmtp)/metaltp  	   10
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allmtp)/metaltp  	    40
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allmtp)/metaltp  	    60
@@ -3739,7 +3739,7 @@
 #ifdef METALS3
 #ifdef THICKMET3P0
  resist (allm3)/metal3  	    15
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allm3)/metal3  	    49
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allm3)/metal3  	    70
@@ -3752,7 +3752,7 @@
 #ifdef METALS4
 #ifdef THICKMET3P0
  resist (allm4)/metal4  	    14
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allm4)/metal4  	    49
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allm4)/metal4  	    70
@@ -3765,7 +3765,7 @@
 #ifdef METALS5
 #ifdef THICKMET3P0
  resist (allm5)/metal5  	    14
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allm5)/metal5  	    49
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allm5)/metal5  	    70
@@ -3778,7 +3778,7 @@
 #ifdef METALS6
 #ifdef THICKMET3P0
  resist (allmtp)/metaltp  	    14
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allmtp)/metaltp  	    49
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allmtp)/metaltp  	    70
@@ -3843,7 +3843,7 @@
 #ifdef METALS3
 #ifdef THICKMET3P0
  resist (allm3)/metal3  	     6
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allm3)/metal3  	    31
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allm3)/metal3  	    50
@@ -3856,7 +3856,7 @@
 #ifdef METALS4
 #ifdef THICKMET3P0
  resist (allm4)/metal4  	     6
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allm4)/metal4  	    31
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allm4)/metal4  	    50
@@ -3869,7 +3869,7 @@
 #ifdef METALS5
 #ifdef THICKMET3P0
  resist (allm5)/metal5  	     6
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allm5)/metal5  	    31
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allm5)/metal5  	    50
@@ -3882,7 +3882,7 @@
 #ifdef METALS6
 #ifdef THICKMET3P0
  resist (allmtp)/metaltp  	     6
-#elseif defined(THICKMET1P1 || THICKMET0P9)
+#elseif defined(THICKMET0P9) || defined(THICKMET1P1)
  resist (allmtp)/metaltp  	    31
 #else (!(THICKMET3P0 || THICKMET1P1 || THICKMET0P9))
  resist (allmtp)/metaltp  	    50