diff --git a/VERSION b/VERSION
index 46354d7..b649b91 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.52
+1.0.53
diff --git a/sky130/custom/scripts/seal_ring_generator/s8_gen_sealring.py b/sky130/custom/scripts/run_drc.py
similarity index 100%
rename from sky130/custom/scripts/seal_ring_generator/s8_gen_sealring.py
rename to sky130/custom/scripts/run_drc.py
diff --git a/sky130/custom/scripts/seal_ring_generator/README b/sky130/custom/scripts/seal_ring_generator/README
index af48894..fff8902 100644
--- a/sky130/custom/scripts/seal_ring_generator/README
+++ b/sky130/custom/scripts/seal_ring_generator/README
@@ -1,24 +1,24 @@
-# This directory contains a seal ring generator for SkyWater s8 using magic.
-# Because the seal ring contains many layers that do not appear in standard
-# layout editing, they are all specially implemented in the s8seal_ring.tech
-# file in this directory.
+# This directory contains a seal ring generator for the Googl/SkyWater
+# sky130 PDK using magic.  Because the seal ring contains many layers that
+# do not appear in standard layout editing, they are all specially implemented
+# in the sky130seal_ring.tech file in this directory.
 #
 # An example seal ring was generated by SkyWater and imported using magic's
 # gdsquery.sh script.  It was then hand-edited to contain only the bottom
 # quarter.  Then it was saved in .mag databases.
 #
-# The generator script s8_gen_sealring.py calls magic using the s8seal_ring.tech
-# file, and automatically modifies the geometry to stretch to the half width
-# and height of the specified dimensions.  Then the lower-left cells are
-# copied and folded over the centerline to make the complete seal ring.
-# The seal ring is then written out in GDS format.  Then a simplified magic
-# view is generated in the usual user-facing s8 technology file, with the
-# GDS_FILE property pointing to the seal ring GDS.  This layout and GDS can
-# then be imported into a layout.
+# The generator script sky130_gen_sealring.py calls magic using the
+# sky130seal_ring.tech file, and automatically modifies the geometry to
+# stretch to the half width and height of the specified dimensions.  Then
+# the lower-left cells are copied and folded over the centerline to make
+# the complete seal ring.  The seal ring is then written out in GDS format.
+# Then a simplified magic view is generated in the usual user-facing 
+# sky130 technology file, with the GDS_FILE property pointing to the seal
+# ring GDS.  This layout and GDS can then be imported into a layout.
 #
 # Usage:
 #
-#   s8_gen_sealring.py width height target_dir [-force] [-outer]
+#   sky130_gen_sealring.py width height target_dir [-force] [-outer]
 #
 # Where:
 #   width = the full-chip layout width
diff --git a/sky130/custom/scripts/seal_ring_generator/generate_gds.tcl b/sky130/custom/scripts/seal_ring_generator/generate_gds.tcl
index 9aedf7b..eda12e0 100644
--- a/sky130/custom/scripts/seal_ring_generator/generate_gds.tcl
+++ b/sky130/custom/scripts/seal_ring_generator/generate_gds.tcl
@@ -1,5 +1,5 @@
 # Tcl script input to magic to generate seal ring GDS
-tech load s8seal_ring -noprompt
+tech load sky130seal_ring -noprompt
 drc off
 load advSeal_6um_gen
 select top cell
diff --git a/sky130/custom/scripts/seal_ring_generator/nikon_sealring_shape.mag b/sky130/custom/scripts/seal_ring_generator/nikon_sealring_shape.mag
index caf7cc9..ecffd92 100644
--- a/sky130/custom/scripts/seal_ring_generator/nikon_sealring_shape.mag
+++ b/sky130/custom/scripts/seal_ring_generator/nikon_sealring_shape.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 timestamp 1584558468
 << checkpaint >>
 rect 0 0 400 400
diff --git a/sky130/custom/scripts/seal_ring_generator/seal_ring_corner.mag b/sky130/custom/scripts/seal_ring_generator/seal_ring_corner.mag
index e15ffc8..25de9fc 100644
--- a/sky130/custom/scripts/seal_ring_generator/seal_ring_corner.mag
+++ b/sky130/custom/scripts/seal_ring_generator/seal_ring_corner.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584562315
 << type81_52 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/seal_ring_slots_array.mag b/sky130/custom/scripts/seal_ring_generator/seal_ring_slots_array.mag
index f38f77c..0330c8b 100644
--- a/sky130/custom/scripts/seal_ring_generator/seal_ring_slots_array.mag
+++ b/sky130/custom/scripts/seal_ring_generator/seal_ring_slots_array.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584629764
 use sealring_slots  sealring_slots_Y
diff --git a/sky130/custom/scripts/seal_ring_generator/sealring_slots.mag b/sky130/custom/scripts/seal_ring_generator/sealring_slots.mag
index c3ee669..972bb26 100644
--- a/sky130/custom/scripts/seal_ring_generator/sealring_slots.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sealring_slots.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584628639
 << checkpaint >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sky130_gen_sealring.py b/sky130/custom/scripts/seal_ring_generator/sky130_gen_sealring.py
new file mode 100755
index 0000000..ff0cdbd
--- /dev/null
+++ b/sky130/custom/scripts/seal_ring_generator/sky130_gen_sealring.py
@@ -0,0 +1,350 @@
+#!/bin/env python3
+#-------------------------------------------------------------------------
+# sky130_gen_sealring.py ---  a seal ring generator for the Google/SkyWater
+# sky130 PDK using magic.
+#
+# Because the seal ring contains many layers that do not appear in standard
+# layout editing, they are all specially implemented in the sky130seal_ring.tech
+# file in this directory.
+#
+# An example seal ring was generated by SkyWater and imported using magic's
+# gdsquery.sh script.  It was then hand-edited to contain only the bottom
+# quarter.  Then it was saved in .mag databases.
+#
+# The generator script sky130_gen_sealring.py calls magic using the
+# sky130seal_ring.tech file, and automatically modifies the geometry to
+# stretch to the half width and height of the specified dimensions.  Then
+# the lower-left cells are copied and folded over the centerline to make
+# the complete seal ring.  The seal ring is then written out in GDS format.
+# Then a simplified magic view is generated in the usual user-facing sky130
+# technology file, with the GDS_FILE property pointing to the seal ring GDS.
+# This layout and GDS can then be imported into a layout.
+#
+# Usage:
+#
+#   sky130_gen_sealring.py width height target_dir [-force] [-outer] [-keep]
+#
+# Where:
+#   width = the full-chip layout width
+#   height = the full-chip layout height
+#   target_dir = location of the full-chip layout
+#
+#   -force = overwrite any existing files at the target
+#   -outer = width and height are the seal ring outer edge, not the chip area
+#   -keep = keep local working directory of results
+#
+# Results:
+#   Files advSeal_6um_gen.mag and advSeal_6um_gen.gds are generated and placed in
+#   target_dir.  advSeal_6um_gen.mag is an "abstract" view that represents the
+#   seal ring in diffusion and the nikon cross in metal1, and references
+#   the advSeal_6um_gen.gds file in the same directory as a GDS_FILE property.
+#-------------------------------------------------------------------------
+
+import subprocess
+import shutil
+import sys
+import os
+import re
+
+def generate_sealring(width, height, target_dir, force, keep):
+
+    # All files of interest are listed below.
+
+    script = 'generate_gds.tcl'
+    tech = 'sky130seal_ring.tech'
+    corner = 'seal_ring_corner.mag'
+    abstract = 'seal_ring_corner_abstract.mag'
+    slots = 'sealring_slots.mag'
+    array = 'seal_ring_slots_array.mag'
+    nikon = 'nikon_sealring_shape.mag'
+    polygons = ['sr_polygon00007.mag',
+	    'sr_polygon00027.mag', 'sr_polygon00011.mag', 'sr_polygon00028.mag',
+	    'sr_polygon00001.mag', 'sr_polygon00015.mag', 'sr_polygon00031.mag',
+	    'sr_polygon00002.mag', 'sr_polygon00016.mag', 'sr_polygon00032.mag',
+	    'sr_polygon00003.mag', 'sr_polygon00019.mag', 'sr_polygon00035.mag',
+	    'sr_polygon00004.mag', 'sr_polygon00020.mag', 'sr_polygon00036.mag',
+	    'sr_polygon00005.mag', 'sr_polygon00023.mag', 'sr_polygon00039.mag',
+	    'sr_polygon00006.mag', 'sr_polygon00024.mag']
+
+
+    # Create temporary directory
+    if os.path.exists('temp'):
+        print('temp/ directory exists.  Please remove it before running.')
+        sys.exit(0)
+
+    os.makedirs('temp')
+    os.chdir('temp')
+
+    # Copy all .mag files, .magicrc file, and sky130seal_ring.tech file to temp/
+    files_to_copy = polygons[:]
+    files_to_copy.append(nikon)
+    files_to_copy.append(slots)
+    files_to_copy.append(array)
+    files_to_copy.append(corner)
+    files_to_copy.append(abstract)
+    files_to_copy.append(tech)
+    files_to_copy.append(script)
+
+    for file in files_to_copy:
+        shutil.copy('../' + file, '.')
+
+    # Seal ring is placed 6um outside of the chip, so add 12um to width and height
+    fwidth = float(width) + 12
+    fheight = float(height) + 12
+
+    dbhwidth = int(fwidth * 100)
+    dbhheight = int(fheight * 100)
+
+    swidth = str(dbhwidth)
+    sheight = str(dbhheight)
+
+    swidthx5 = str(dbhwidth * 5)
+
+    dwidth = str(int(fwidth * 200))
+    dheight = str(int(fheight * 200))
+
+    # Modify every polygon to half width and height
+
+    for file in polygons:
+        with open(file, 'r') as ifile:
+            maglines = ifile.read().splitlines()
+
+        with open(file, 'w') as ofile:
+            for line in maglines:
+                newline = re.sub('51200', swidth, line)
+                newline = re.sub('51210', sheight, newline)
+                # NOTE: polygon 39 is at scale 10, not 2, due to
+                # corner positions of 45 degree angled geometry.
+                newline = re.sub('256000', swidthx5, newline)
+                print(newline, file=ofile)
+
+    # Abstract corner view gets the same treatment
+
+    qwidth = str(int(fwidth * 50))
+    qheight = str(int(fheight * 50))
+
+    with open(abstract, 'r') as ifile:
+        maglines = ifile.read().splitlines()
+
+    with open(abstract, 'w') as ofile:
+        for line in maglines:
+            newline = re.sub('25600', qwidth, line)
+            newline = re.sub('25605', qheight, newline)
+            print(newline, file=ofile)
+
+    # Slots arrays are recalculated to span the width and height
+
+    with open(array, 'r') as ifile:
+        maglines = ifile.read().splitlines()
+
+    slotsX = False
+    with open(array, 'w') as ofile:
+        for line in maglines:
+            newline = line
+            if 'slots_X' in line:
+                slotsX = True
+            elif 'array 0' in line:
+                if slotsX:
+                    nslots = int((fwidth - 25.0) / 25.0) - 1
+                    newline = 'array 0 ' + str(nslots) + ' 5000 0 0 430'
+                else:
+                    nslots = int((fheight - 25.0) / 25.0) - 1
+                    newline = 'array 0 ' + str(nslots) + ' 5000 0 0 430'
+
+            print(newline, file=ofile)
+
+    # Corner cell changes bounding boxes to half width and height.
+
+    with open(corner, 'r') as ifile:
+        maglines = ifile.read().splitlines()
+
+    slotsX = False
+    with open(corner, 'w') as ofile:
+        for line in maglines:
+            newline = re.sub('51200', swidth, line)
+            newline = re.sub('51210', sheight, newline)
+            print(newline, file=ofile)
+
+    # Create a new top-level layout called 'advSeal_6um_gen.mag'
+    # Mirrors uses in X and Y, and adds slots arrays at lower left
+    # and upper right
+
+    with open('advSeal_6um_gen.mag', 'w') as ofile:
+        print('magic', file=ofile)
+        print('tech sky130seal_ring', file=ofile)
+        print('magscale 1 2', file=ofile)
+        print('timestamp 1584630000', file=ofile)
+
+        # Lower left original
+        print('use seal_ring_corner seal_ring_corner_0', file=ofile)
+        print('timestamp 1584562315', file=ofile)
+        print('transform 1 0 0 0 1 0', file=ofile)
+        print('box -30480 -30480 ' + swidth + ' ' + sheight, file=ofile)
+
+        # Mirrored in X
+        print('use seal_ring_corner seal_ring_corner_3', file=ofile)
+        print('timestamp 1584562315', file=ofile)
+        print('transform -1 0 ' + dwidth + ' 0 1 0', file=ofile)
+        print('box -30480 -30480 ' + swidth + ' ' + sheight, file=ofile)
+	
+        # Mirrored in Y
+        print('use seal_ring_corner seal_ring_corner_1', file=ofile)
+        print('timestamp 1584562315', file=ofile)
+        print('transform 1 0 0 0 -1 ' + dheight, file=ofile)
+        print('box -30480 -30480 ' + swidth + ' ' + sheight, file=ofile)
+
+        # Mirrored in both X and Y 
+        print('use seal_ring_corner seal_ring_corner_2', file=ofile)
+        print('timestamp 1584562315', file=ofile)
+        print('transform -1 0 ' + dwidth + ' 0 -1 ' + dheight, file=ofile)
+        print('box -30480 -30480 ' + swidth + ' ' + sheight, file=ofile)
+
+        # Lower left slot arrays (bottom and left sides slots)
+        print('use seal_ring_slots_array seal_ring_slots_array_0', file=ofile)
+        print('timestamp 1584629764', file=ofile)
+        print('transform 1 0 0 0 1 0', file=ofile)
+        print('box 285 285 ' + swidth + ' ' + sheight, file=ofile)
+
+        # Upper right slot arrays (top and right sides slots)
+        print('use seal_ring_slots_array seal_ring_slots_array_1', file=ofile)
+        print('timestamp 1584629764', file=ofile)
+        print('transform -1 0 ' + dwidth + ' 0 -1 ' + dheight, file=ofile)
+        print('box 285 285 ' + swidth + ' ' + sheight, file=ofile)
+
+        print('<< end >>', file=ofile)
+    
+    # Create a new abstract layout TO BE called 'advSeal_6um_gen.mag'
+    # This is the view in technology EFS8A.  Since there is already
+    # a cell with this name that is used to generate GDS, the cell
+    # will be called "seal_ring.mag" and copied to "advSeal_6um_gen.mag"
+    # in the target directory.
+
+    xwidth = str(dbhwidth)
+    xheight = str(dbhheight)
+
+    with open('seal_ring.mag', 'w') as ofile:
+        print('magic', file=ofile)
+        print('tech EFS8A', file=ofile)
+        print('timestamp 1584566829', file=ofile)
+
+        # Lower left original
+        print('use seal_ring_corner_abstract seal_ring_corner_abstract_0', file=ofile)
+        print('timestamp 1584566221', file=ofile)
+        print('transform 1 0 0 0 1 0', file=ofile)
+        print('box 0 0 ' + qwidth + ' ' + qheight, file=ofile)
+
+        # Mirrored in X
+        print('use seal_ring_corner_abstract seal_ring_corner_abstract_3', file=ofile)
+        print('timestamp 1584566221', file=ofile)
+        print('transform -1 0 ' + xwidth + ' 0 1 0', file=ofile)
+        print('box 0 0 ' + qwidth + ' ' + qheight, file=ofile)
+	
+        # Mirrored in Y
+        print('use seal_ring_corner_abstract seal_ring_corner_abstract_1', file=ofile)
+        print('timestamp 1584566221', file=ofile)
+        print('transform 1 0 0 0 -1 ' + xheight, file=ofile)
+        print('box 0 0 ' + qwidth + ' ' + qheight, file=ofile)
+
+        # Mirrored in both X and Y 
+        print('use seal_ring_corner_abstract seal_ring_corner_abstract_2', file=ofile)
+        print('timestamp 1584566221', file=ofile)
+        print('transform -1 0 ' + xwidth + ' 0 -1 ' + xheight, file=ofile)
+        print('box 0 0 ' + qwidth + ' ' + qheight, file=ofile)
+
+        print('<< properties >>', file=ofile)
+        print('string LEFview no_prefix', file=ofile)
+        print('string GDS_FILE advSeal_6um_gen.gds', file=ofile)
+        print('string GDS_START 0', file=ofile)
+        print('string FIXED_BBOX 0 0 ' + swidth + ' ' + sheight, file=ofile)
+
+        print('<< end >>', file=ofile)
+
+    # Create the GDS of the seal ring
+
+    mproc = subprocess.run(['magic', '-dnull', '-noconsole',
+	    'generate_gds.tcl'],
+	    stdin = subprocess.DEVNULL, stdout = subprocess.PIPE,
+	    stderr = subprocess.PIPE, universal_newlines = True)
+    if mproc.stdout:
+        for line in mproc.stdout.splitlines():
+            print(line)
+    if mproc.stderr:
+        print('Error message output from magic:')
+        for line in mproc.stderr.splitlines():
+            print(line)
+    if mproc.returncode != 0:
+        print('ERROR:  Magic exited with status ' + str(mproc.returncode))
+
+    # Copy the GDS file and the abstract view to the target directory
+
+    os.chdir('..')
+
+    if not os.path.exists(target_dir):
+        os.makedirs(target_dir)
+
+    print('Installing files to ' + target_dir)
+    if force or not os.path.exists(target_dir + '/advSeal_6um_gen.gds'):
+        shutil.copy('temp/advSeal_6um_gen.gds', target_dir)
+    else:
+        print('ERROR: advSeal_6um_gen.gds already exists at target!  Use -force to overwrite.')
+    if force or not os.path.exists(target_dir + '/advSeal_6um_gen.mag'):
+        shutil.copy('temp/seal_ring.mag', target_dir + '/advSeal_6um_gen.mag')
+    else:
+        print('ERROR: advSeal_6um_gen.mag already exists at target!  Use -force to overwrite.')
+    if force or not os.path.exists(target_dir + '/seal_ring_corner_abstract.mag'):
+        shutil.copy('temp/seal_ring_corner_abstract.mag', target_dir)
+    else:
+        print('ERROR: seal_ring_corner_abstract.mag already exists at target!  Use -force to overwrite.')
+    
+    # Remove the temporary directory and its contents
+
+    if not keep:
+        shutil.rmtree('temp')
+    else:
+        print('Retaining generated files in temp/ directory')
+
+    # Done!
+    print('Done generating files advSeal_6um_gen.gds and advSeal_6um_gen.mag in ' + target_dir)
+    print('Place the seal ring cell in the final layout at (0um, 0um) before generating GDS.')
+    print('The top level layout minus seal ring must have a lower left corner of (6um, 6um)')
+
+# If called as main, run generate_sealring()
+
+if __name__ == '__main__':
+
+    # Divide up command line into options and arguments
+    options = []
+    arguments = []
+    for item in sys.argv[1:]:
+        if item.find('-', 0) == 0:
+            options.append(item)
+        else:
+            arguments.append(item)
+
+    force = True if '-force' in options else False
+    keep = True if '-keep' in options else False
+    outer = True if '-outer' in options else False
+
+    # Need one argument:  path to verilog netlist
+    # If two arguments, then 2nd argument is the output file.
+
+    if len(arguments) == 3:
+        width = arguments[0]
+        height = arguments[1]
+        target_dir = arguments[2]
+
+        # Seal ring is 12um thick, so if "outer" option is used, subtract 12um
+        # from both width and height.
+        if outer:
+            width = str(float(width) - 12.0)
+            height = str(float(height) - 12.0)
+
+        generate_sealring(width, height, target_dir, force, keep)
+    else:
+        print("Usage:  sky130_gen_sealring.py <width> <height> <target_dir> [options]")
+        print("Options:")
+        print("   -outer : Width and height are seal ring outer edge, not chip area")
+        print("   -force : Overwrite any existing files at <target_dir>")
+        print("   -keep :  Keep generated files in temp/ directory")
+    
+
diff --git a/sky130/custom/scripts/seal_ring_generator/s8seal_ring.tech b/sky130/custom/scripts/seal_ring_generator/sky130seal_ring.tech
similarity index 98%
rename from sky130/custom/scripts/seal_ring_generator/s8seal_ring.tech
rename to sky130/custom/scripts/seal_ring_generator/sky130seal_ring.tech
index e5d37f3..8b3ad58 100644
--- a/sky130/custom/scripts/seal_ring_generator/s8seal_ring.tech
+++ b/sky130/custom/scripts/seal_ring_generator/sky130seal_ring.tech
@@ -1,11 +1,11 @@
 tech
    30
-   s8seal_ring
+   sky130seal_ring
 end
 
 version
    version 0.0
-   description "Auto-generated techfile for unknown GDS read-in"
+   description "Auto-generated techfile for sky130 seal ring GDS read-in"
 end
 
 planes
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00001.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00001.mag
index e7c32b8..c1784bc 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00001.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00001.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 timestamp 1584558468
 << type48 >>
 tri 0 283 117 400 se
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00002.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00002.mag
index 51355fa..f0542e6 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00002.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00002.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 timestamp 1584558468
 << type25 >>
 tri 0 283 117 400 se
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00003.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00003.mag
index 7c2dd29..2043db2 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00003.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00003.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 timestamp 1584558468
 << type20 >>
 tri 0 283 117 400 se
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00004.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00004.mag
index 7721108..80a8750 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00004.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00004.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 timestamp 1584558468
 << type39 >>
 tri 0 283 117 400 se
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00005.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00005.mag
index 27e8081..6093018 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00005.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00005.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 timestamp 1584558468
 << type11 >>
 tri 0 283 117 400 se
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00006.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00006.mag
index 8b44cb9..c3a13f6 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00006.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00006.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 timestamp 1584558468
 << type49 >>
 tri 0 283 117 400 se
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00007.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00007.mag
index 89547c6..4ede940 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00007.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00007.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 timestamp 1584558468
 << type37 >>
 tri 0 283 117 400 se
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00011.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00011.mag
index 47854ae..f26a866 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00011.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00011.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 10
 timestamp 1584558468
 << type81_51 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00015.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00015.mag
index d91c7fb..a6afa05 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00015.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00015.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558468
 << type37 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00016.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00016.mag
index 7aa89fc..1e405f6 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00016.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00016.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type65_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00019.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00019.mag
index b316735..9418687 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00019.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00019.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type65_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00020.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00020.mag
index 9e328f8..b62281c 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00020.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00020.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type65_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00023.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00023.mag
index fe8335d..2a4ec4b 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00023.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00023.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type65_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00024.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00024.mag
index eb9f364..efde77f 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00024.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00024.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type65_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00027.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00027.mag
index c6d2ad1..1223830 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00027.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00027.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type65_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00028.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00028.mag
index 3db918a..95c27cd 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00028.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00028.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type65_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00031.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00031.mag
index 1eb8648..e9b327e 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00031.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00031.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type65_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00032.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00032.mag
index 395db17..87b2f9a 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00032.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00032.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type61_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00035.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00035.mag
index 934e4e1..a113b26 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00035.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00035.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type61_20 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00036.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00036.mag
index 7e944a4..5d64185 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00036.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00036.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 2
 timestamp 1584558827
 << type81_1 >>
diff --git a/sky130/custom/scripts/seal_ring_generator/sr_polygon00039.mag b/sky130/custom/scripts/seal_ring_generator/sr_polygon00039.mag
index 24dfe83..4fb6f27 100644
--- a/sky130/custom/scripts/seal_ring_generator/sr_polygon00039.mag
+++ b/sky130/custom/scripts/seal_ring_generator/sr_polygon00039.mag
@@ -1,5 +1,5 @@
 magic
-tech s8seal_ring
+tech sky130seal_ring
 magscale 1 10
 timestamp 1584558827
 << type81_1 >>
