final gds & signoff results
diff --git a/checks/klayout_drc_total.txt b/checks/klayout_drc_total.txt
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/checks/klayout_drc_total.txt
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/checks/met_min_ca_density_check.xml b/checks/met_min_ca_density_check.xml
new file mode 100644
index 0000000..a7ec35a
--- /dev/null
+++ b/checks/met_min_ca_density_check.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<report-database>
+ <description>Density Checks</description>
+ <original-file/>
+ <generator>drc: script='/usr/local/bin/klayout_drc_checks/met_min_ca_density.lydrc'</generator>
+ <top-cell>user_project_wrapper</top-cell>
+ <tags>
+ </tags>
+ <categories>
+ </categories>
+ <cells>
+  <cell>
+   <name>user_project_wrapper</name>
+   <variant/>
+   <references>
+   </references>
+  </cell>
+ </cells>
+ <items>
+ </items>
+</report-database>
diff --git a/checks/met_min_ca_density_total.txt b/checks/met_min_ca_density_total.txt
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/checks/met_min_ca_density_total.txt
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/checks/offgrid_check.xml b/checks/offgrid_check.xml
new file mode 100644
index 0000000..2c3bbba
--- /dev/null
+++ b/checks/offgrid_check.xml
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="utf-8"?>
+<report-database>
+ <description>SKY130 DRC runset</description>
+ <original-file/>
+ <generator>drc: script='/usr/local/bin/klayout_drc_checks/offgrid.lydrc'</generator>
+ <top-cell>user_project_wrapper</top-cell>
+ <tags>
+ </tags>
+ <categories>
+  <category>
+   <name>dnwell_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on dnwell</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>dnwell_angle</name>
+   <description>x.3a : non 45 degree angle dnwell</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>nwell_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on nwell</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>nwell_angle</name>
+   <description>x.3a : non 45 degree angle nwell</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>pwbm_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on pwbm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>pwbm_angle</name>
+   <description>x.3a : non 45 degree angle pwbm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>pwde_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on pwde</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>pwde_angle</name>
+   <description>x.3a : non 45 degree angle pwde</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvtp_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on hvtp</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvtp_angle</name>
+   <description>x.3a : non 45 degree angle hvtp</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvtr_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on hvtr</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvtr_angle</name>
+   <description>x.3a : non 45 degree angle hvtr</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>lvtn_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on lvtn</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>lvtn_angle</name>
+   <description>x.3a : non 45 degree angle lvtn</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>ncm_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on ncm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>ncm_angle</name>
+   <description>x.3a : non 45 degree angle ncm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>diff_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on diff</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>tap_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on tap</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>diff_angle</name>
+   <description>x.2 : non 90 degree angle diff</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>diff_angle</name>
+   <description>x.2c : non 45 degree angle diff</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>tap_angle</name>
+   <description>x.2 : non 90 degree angle tap</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>tap_angle</name>
+   <description>x.2c : non 45 degree angle tap</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>tunm_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on tunm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>tunm_angle</name>
+   <description>x.3a : non 45 degree angle tunm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>poly_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on poly</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>poly_angle</name>
+   <description>x.2 : non 90 degree angle poly</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>rpm_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on rpm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>rpm_angle</name>
+   <description>x.3a : non 45 degree angle rpm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>npc_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on npc</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>npc_angle</name>
+   <description>x.3a : non 45 degree angle npc</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>nsdm_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on nsdm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>nsdm_angle</name>
+   <description>x.3a : non 45 degree angle nsdm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>psdm_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on psdm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>psdm_angle</name>
+   <description>x.3a : non 45 degree angle psdm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>licon_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on licon</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>licon_angle</name>
+   <description>x.2 : non 90 degree angle licon</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>li_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on li</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>li_angle</name>
+   <description>x.3a : non 45 degree angle li</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>ct_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on mcon</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>ct_angle</name>
+   <description>x.2 : non 90 degree angle mcon</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>vpp_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on vpp</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>vpp_angle</name>
+   <description>x.3a : non 45 degree angle vpp</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m1_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on m1</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m1_angle</name>
+   <description>x.3a : non 45 degree angle m1</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>via_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on via</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>via_angle</name>
+   <description>x.2 : non 90 degree angle via</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m2_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on m2</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m2_angle</name>
+   <description>x.3a : non 45 degree angle m2</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>via2_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on via2</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>via2_angle</name>
+   <description>x.2 : non 90 degree angle via2</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m3_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on m3</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m3_angle</name>
+   <description>x.3a : non 45 degree angle m3</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>via3_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on via3</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>via3_angle</name>
+   <description>x.2 : non 90 degree angle via3</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>nsm_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on nsm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>nsm_angle</name>
+   <description>x.3a : non 45 degree angle nsm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m4_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on m4</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m4_angle</name>
+   <description>x.3a : non 45 degree angle m4</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>via4_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on via4</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>via4_angle</name>
+   <description>x.2 : non 90 degree angle via4</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m5_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on m5</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>m5_angle</name>
+   <description>x.3a : non 45 degree angle m5</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>pad_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on pad</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>pad_angle</name>
+   <description>x.3a : non 45 degree angle pad</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>mf_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on mf</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>mf_angle</name>
+   <description>x.2 : non 90 degree angle mf</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvi_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on hvi</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvi_angle</name>
+   <description>x.3a : non 45 degree angle hvi</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvntm_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on hvntm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvntm_angle</name>
+   <description>x.3a : non 45 degree angle hvntm</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>vhvi_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on vhvi</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>vhvi_angle</name>
+   <description>x.3a : non 45 degree angle vhvi</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>uhvi_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on uhvi</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>uhvi_angle</name>
+   <description>x.3a : non 45 degree angle uhvi</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>pwell_rs_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on pwell_rs</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>pwell_rs_angle</name>
+   <description>x.3a : non 45 degree angle pwell_rs</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>areaid_re_OFFGRID</name>
+   <description>x.1b : OFFGRID vertex on areaid.re</description>
+   <categories>
+   </categories>
+  </category>
+ </categories>
+ <cells>
+  <cell>
+   <name>user_project_wrapper</name>
+   <variant/>
+   <references>
+   </references>
+  </cell>
+ </cells>
+ <items>
+ </items>
+</report-database>
diff --git a/checks/offgrid_total.txt b/checks/offgrid_total.txt
new file mode 100644
index 0000000..c227083
--- /dev/null
+++ b/checks/offgrid_total.txt
@@ -0,0 +1 @@
+0
\ No newline at end of file
diff --git a/checks/user_project_wrapper.magic.drc.mag b/checks/user_project_wrapper.magic.drc.mag
index f5e3ece..3ad5076 100644
--- a/checks/user_project_wrapper.magic.drc.mag
+++ b/checks/user_project_wrapper.magic.drc.mag
Binary files differ
diff --git a/checks/user_project_wrapper.xor.gds b/checks/user_project_wrapper.xor.gds
index 7a4be40..0e38ebb 100644
--- a/checks/user_project_wrapper.xor.gds
+++ b/checks/user_project_wrapper.xor.gds
Binary files differ
diff --git a/checks/user_project_wrapper.xor.gds.png b/checks/user_project_wrapper.xor.gds.png
deleted file mode 100644
index cd63482..0000000
--- a/checks/user_project_wrapper.xor.gds.png
+++ /dev/null
Binary files differ
diff --git a/checks/user_project_wrapper.xor.xml b/checks/user_project_wrapper.xor.xml
deleted file mode 100644
index 0ba8947..0000000
--- a/checks/user_project_wrapper.xor.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<report-database>
- <description>XOR /home/edaman/Desktop/openlane_workspace/caravel_yonga-lz4-decoder-efabless/checks/user_project_wrapper_empty_erased.gds vs. /home/edaman/Desktop/openlane_workspace/caravel_yonga-lz4-decoder-efabless/checks/user_project_wrapper_erased.gds</description>
- <original-file/>
- <generator>drc: script='/usr/local/bin/xor_checks/xor.drc'</generator>
- <top-cell>user_project_wrapper</top-cell>
- <tags>
- </tags>
- <categories>
-  <category>
-   <name>235/4</name>
-   <description>XOR results for layer 235/4 </description>
-   <categories>
-   </categories>
-  </category>
-  <category>
-   <name>69/20</name>
-   <description>XOR results for layer 69/20 </description>
-   <categories>
-   </categories>
-  </category>
-  <category>
-   <name>70/20</name>
-   <description>XOR results for layer 70/20 </description>
-   <categories>
-   </categories>
-  </category>
-  <category>
-   <name>71/20</name>
-   <description>XOR results for layer 71/20 </description>
-   <categories>
-   </categories>
-  </category>
-  <category>
-   <name>71/44</name>
-   <description>XOR results for layer 71/44 </description>
-   <categories>
-   </categories>
-  </category>
-  <category>
-   <name>72/20</name>
-   <description>XOR results for layer 72/20 </description>
-   <categories>
-   </categories>
-  </category>
-  <category>
-   <name>81/14</name>
-   <description>XOR results for layer 81/14 </description>
-   <categories>
-   </categories>
-  </category>
- </categories>
- <cells>
-  <cell>
-   <name>user_project_wrapper</name>
-   <variant/>
-   <references>
-   </references>
-  </cell>
- </cells>
- <items>
- </items>
-</report-database>
diff --git a/checks/user_project_wrapper_empty_erased.gds b/checks/user_project_wrapper_empty_erased.gds
index 4782b1f..bf2a69f 100644
--- a/checks/user_project_wrapper_empty_erased.gds
+++ b/checks/user_project_wrapper_empty_erased.gds
Binary files differ
diff --git a/checks/user_project_wrapper_erased.gds b/checks/user_project_wrapper_erased.gds
index 1965843..fe5b601 100644
--- a/checks/user_project_wrapper_erased.gds
+++ b/checks/user_project_wrapper_erased.gds
Binary files differ
diff --git a/checks/user_project_wrapper_klayout_drc.xml b/checks/user_project_wrapper_klayout_drc.xml
new file mode 100644
index 0000000..94bf212
--- /dev/null
+++ b/checks/user_project_wrapper_klayout_drc.xml
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<report-database>
+ <description>SKY130 DRC runset</description>
+ <original-file/>
+ <generator>drc: script='/usr/local/bin/drc_checks/../tech-files/sky130A_mr.lydrc'</generator>
+ <top-cell>user_project_wrapper</top-cell>
+ <tags>
+ </tags>
+ <categories>
+  <category>
+   <name>dnwell.2</name>
+   <description>dnwell.2 : min. dnwell width : 3.0um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>nwell.1</name>
+   <description>nwell.1 : min. nwell width : 0.84um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>nwell.2a</name>
+   <description>nwell.2a : min. nwell spacing (merged if less) : 1.27um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvtp.1</name>
+   <description>hvtp.1 : min. hvtp width : 0.38um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvtp.2</name>
+   <description>hvtp.2 : min. hvtp spacing : 0.38um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvtr.1</name>
+   <description>hvtr.1 : min. hvtr width : 0.38um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvtr.2</name>
+   <description>hvtr.2 : min. hvtr spacing : 0.38um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>lvtn.2</name>
+   <description>lvtn.2 : min. lvtn spacing : 0.38um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>ncm.1</name>
+   <description>ncm.1 : min. ncm width : 0.38um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>difftap.3</name>
+   <description>difftap.3 : min. difftap spacing : 0.27um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>tunm.1</name>
+   <description>tunm.1 : min. tunm width : 0.41um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>tunm.2</name>
+   <description>tunm.2 : min. tunm spacing : 0.5um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>poly.1a</name>
+   <description>poly.1a : min. poly width : 0.15um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>poly.2</name>
+   <description>poly.2 : min. poly spacing : 0.21um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>rpm.1a</name>
+   <description>rpm.1a : min. rpm width : 1.27um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>rpm.2</name>
+   <description>rpm.2 : min. rpm spacing : 0.84um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>npc.1</name>
+   <description>npc.1 : min. npc width : 0.27um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>npc.2</name>
+   <description>npc.2 : min. npc spacing, should be mnually merge if less : 0.27um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>licon.1</name>
+   <description>licon.1 : minimum/maximum width of licon : 0.17um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>licon.1b/c</name>
+   <description>licon.1b/c : minimum/maximum width/length of licon inside poly resistor : 2.0/0.19um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>licon.13</name>
+   <description>licon.13 : min. difftap licon spacing to npc : 0.09um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>capm.1</name>
+   <description>capm.1 : min. capm width : 1.0um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>capm.2a</name>
+   <description>capm.2a : min. capm spacing : 0.84um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>capm.2b</name>
+   <description>capm.2b : min. capm spacing : 1.2um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>capm.3</name>
+   <description>capm.3 : min. m2 enclosure of capm : 0.14um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>capm.4</name>
+   <description>capm.4 : min. capm enclosure of via2 : 0.14um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>capm.5</name>
+   <description>capm.5 : min. capm spacing to via2 : 0.14um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvi.1</name>
+   <description>hvi.1 : min. hvi width : 0.6um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvntm.1</name>
+   <description>hvntm.1 : min. hvntm width : 0.7um</description>
+   <categories>
+   </categories>
+  </category>
+  <category>
+   <name>hvntm.2</name>
+   <description>hvntm.2 : min. hvntm spacing : 0.7um</description>
+   <categories>
+   </categories>
+  </category>
+ </categories>
+ <cells>
+  <cell>
+   <name>user_project_wrapper</name>
+   <variant/>
+   <references>
+   </references>
+  </cell>
+ </cells>
+ <items>
+ </items>
+</report-database>
diff --git a/gds/.magicrc b/gds/.magicrc
new file mode 100644
index 0000000..67cdbf8
--- /dev/null
+++ b/gds/.magicrc
@@ -0,0 +1,96 @@
+# SPDX-FileCopyrightText: 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+puts stdout "Sourcing design .magicrc for technology sky130A ..."
+
+# Put grid on 0.005 pitch.  This is important, as some commands don't
+# rescale the grid automatically (such as lef read?).
+
+set scalefac [tech lambda]
+if {[lindex $scalefac 1] < 2} {
+    scalegrid 1 2
+}
+
+drc off
+drc euclidean on
+
+# Allow override of PDK path from environment variable PDKPATH
+if {[catch {set PDKPATH $env(PDKPATH)}]} {
+    set PDKPATH "$::env(PDK_ROOT)/sky130A"
+}
+
+# loading technology
+tech load $PDKPATH/libs.tech/magic/sky130A.tech
+
+# load device generator
+source $PDKPATH/libs.tech/magic/sky130A.tcl
+
+# load bind keys (optional)
+# source $PDKPATH/libs.tech/magic/sky130A-BindKeys
+
+# set units to lambda grid 
+snap lambda
+
+# set sky130 standard power, ground, and substrate names
+set VDD VPWR
+set GND VGND
+set SUB VSUBS
+
+# Allow override of type of magic library views used, "mag" or "maglef",
+# from environment variable MAGTYPE
+
+if {[catch {set MAGTYPE $env(MAGTYPE)}]} {
+   set MAGTYPE maglef
+}
+
+	path search [concat "../$MAGTYPE" [path search]]
+
+
+# add path to reference cells
+if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} {
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc
+    addpath ${PDKPATH}/libs.ref/mag/sky130_ml_xx_hd
+} else {
+    addpath ${PDKPATH}/libs.ref/sky130_fd_pr/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_osu_sc/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_ml_xx_hd/mag
+}
+
+addpath hexdigits
+
+# add path to GDS cells
+
+# add path to IP from catalog.  This procedure defined in the PDK script.
+catch {magic::query_mylib_ip}
+# add path to local IP from user design space.  Defined in the PDK script.
+catch {magic::query_my_projects}
diff --git a/gds/caravel.gds.gz b/gds/caravel.gds.gz
new file mode 100644
index 0000000..b2f9746
--- /dev/null
+++ b/gds/caravel.gds.gz
Binary files differ
diff --git a/gds/caravel_0002000a.gds.gz.00.split b/gds/caravel_0002000a.gds.gz.00.split
new file mode 100644
index 0000000..8a9e16a
--- /dev/null
+++ b/gds/caravel_0002000a.gds.gz.00.split
Binary files differ
diff --git a/gds/caravel_0002000a.gds.gz.01.split b/gds/caravel_0002000a.gds.gz.01.split
new file mode 100644
index 0000000..edad9fb
--- /dev/null
+++ b/gds/caravel_0002000a.gds.gz.01.split
Binary files differ
diff --git a/gds/caravel_0002000a.gds.gz.02.split b/gds/caravel_0002000a.gds.gz.02.split
new file mode 100644
index 0000000..a18f0ee
--- /dev/null
+++ b/gds/caravel_0002000a.gds.gz.02.split
Binary files differ
diff --git a/gds/caravel_0002000a.gds.gz.03.split b/gds/caravel_0002000a.gds.gz.03.split
new file mode 100644
index 0000000..1be335a
--- /dev/null
+++ b/gds/caravel_0002000a.gds.gz.03.split
Binary files differ
diff --git a/gds/caravel_0002000a.gds.gz.04.split b/gds/caravel_0002000a.gds.gz.04.split
new file mode 100644
index 0000000..f708018
--- /dev/null
+++ b/gds/caravel_0002000a.gds.gz.04.split
Binary files differ
diff --git a/gds/caravel_0002000a.gds.gz.05.split b/gds/caravel_0002000a.gds.gz.05.split
new file mode 100644
index 0000000..44b9557
--- /dev/null
+++ b/gds/caravel_0002000a.gds.gz.05.split
Binary files differ
diff --git a/gds/caravel_0002000a_fill_pattern.gds.gz.00.split b/gds/caravel_0002000a_fill_pattern.gds.gz.00.split
new file mode 100644
index 0000000..80043b6
--- /dev/null
+++ b/gds/caravel_0002000a_fill_pattern.gds.gz.00.split
Binary files differ
diff --git a/gds/caravel_0002000a_fill_pattern.gds.gz.01.split b/gds/caravel_0002000a_fill_pattern.gds.gz.01.split
new file mode 100644
index 0000000..6ee8aea
--- /dev/null
+++ b/gds/caravel_0002000a_fill_pattern.gds.gz.01.split
Binary files differ
diff --git a/gds/caravel_0002000a_fill_pattern.gds.gz.02.split b/gds/caravel_0002000a_fill_pattern.gds.gz.02.split
new file mode 100644
index 0000000..765a6bd
--- /dev/null
+++ b/gds/caravel_0002000a_fill_pattern.gds.gz.02.split
Binary files differ
diff --git a/gds/caravel_0002000a_fill_pattern.gds.gz.03.split b/gds/caravel_0002000a_fill_pattern.gds.gz.03.split
new file mode 100644
index 0000000..23f7fd0
--- /dev/null
+++ b/gds/caravel_0002000a_fill_pattern.gds.gz.03.split
Binary files differ
diff --git a/gds/caravel_0002000a_fill_pattern.gds.gz.04.split b/gds/caravel_0002000a_fill_pattern.gds.gz.04.split
new file mode 100644
index 0000000..0043a9b
--- /dev/null
+++ b/gds/caravel_0002000a_fill_pattern.gds.gz.04.split
Binary files differ
diff --git a/gds/caravel_0002000a_fill_pattern.gds.gz.05.split b/gds/caravel_0002000a_fill_pattern.gds.gz.05.split
new file mode 100644
index 0000000..155cc25
--- /dev/null
+++ b/gds/caravel_0002000a_fill_pattern.gds.gz.05.split
Binary files differ
diff --git a/gds/user_id_prog_zero.gds.gz b/gds/user_id_prog_zero.gds.gz
new file mode 100644
index 0000000..fd7f8c8
--- /dev/null
+++ b/gds/user_id_prog_zero.gds.gz
Binary files differ
diff --git a/gds/user_id_programming.gds.gz b/gds/user_id_programming.gds.gz
new file mode 100644
index 0000000..f50983d
--- /dev/null
+++ b/gds/user_id_programming.gds.gz
Binary files differ
diff --git a/gds/user_proj_example.gds b/gds/user_proj_example.gds
deleted file mode 100644
index a6a5c4d..0000000
--- a/gds/user_proj_example.gds
+++ /dev/null
Binary files differ
diff --git a/gds/user_proj_example.gds.gz b/gds/user_proj_example.gds.gz
deleted file mode 100644
index 7ed7685..0000000
--- a/gds/user_proj_example.gds.gz
+++ /dev/null
Binary files differ
diff --git a/gds/user_project_wrapper.gds b/gds/user_project_wrapper.gds
deleted file mode 100644
index 6f1c162..0000000
--- a/gds/user_project_wrapper.gds
+++ /dev/null
Binary files differ
diff --git a/gds/user_project_wrapper.gds.gz b/gds/user_project_wrapper.gds.gz
index 5e816f0..29ccdbb 100644
--- a/gds/user_project_wrapper.gds.gz
+++ b/gds/user_project_wrapper.gds.gz
Binary files differ
diff --git a/info.yaml b/info.yaml
index 51e3cb4..ae0f8f3 100644
--- a/info.yaml
+++ b/info.yaml
@@ -1,20 +1,20 @@
----
 project:
-  description: "An implementation of the decoder of the popular LZ4 compression algorithm."
-  foundry: "SkyWater"
-  git_url: "https://github.com/yongatek/caravel_yonga-lz4-decoder.git"
-  organization: "Yonga Technology Microelectronics R&D"
-  organization_url: "https://yongatek.com/"
-  owner: "Rifat Demircioglu"
-  process: "SKY130"
-  project_name: "Caravel"
-  project_id: "00000000"
+  category: Test Harness
+  cover_image: docs/logo.png
+  description: An implementation of the decoder of the popular LZ4 compression algorithm.
+  foundry: SkyWater
+  git_url: https://github.com/yongatek/caravel_yonga-lz4-decoder.git
+  organization: Yonga Technology Microelectronics R&D
+  organization_url: https://yongatek.com/
+  owner: Rifat Demircioglu
+  process: SKY130
+  project_id: 0002000a
+  project_name: Caravel
+  shuttle_url: https://foss-eda-tools.googlesource.com/third_party/shuttle/mpw-two/slot-010.git
   tags:
-    - "Open MPW"
-    - "Test Harness"
-    - "LZ4"
-  category: "Test Harness"
-  top_level_netlist: "caravel/verilog/gl/caravel.v"
-  user_level_netlist: "verilog/gl/user_project_wrapper.v"
-  version: "1.00"
-  cover_image: "docs/logo.png"
+  - Open MPW
+  - Test Harness
+  - LZ4
+  top_level_netlist: caravel/verilog/gl/caravel.v
+  user_level_netlist: verilog/gl/user_project_wrapper.v
+  version: '1.00'
diff --git a/mag/.magicrc b/mag/.magicrc
new file mode 100644
index 0000000..12328c6
--- /dev/null
+++ b/mag/.magicrc
@@ -0,0 +1,97 @@
+# SPDX-FileCopyrightText: 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+puts stdout "Sourcing design .magicrc for technology sky130A ..."
+
+# Put grid on 0.005 pitch.  This is important, as some commands don't
+# rescale the grid automatically (such as lef read?).
+
+set scalefac [tech lambda]
+if {[lindex $scalefac 1] < 2} {
+    scalegrid 1 2
+}
+
+drc off
+drc euclidean on
+
+# Allow override of PDK path from environment variable PDKPATH
+if {[catch {set PDKPATH $env(PDKPATH)}]} {
+    set PDKPATH "$::env(PDK_ROOT)/sky130A"
+}
+
+# loading technology
+tech load $PDKPATH/libs.tech/magic/sky130A.tech
+
+# load device generator
+source $PDKPATH/libs.tech/magic/sky130A.tcl
+
+# load bind keys (optional)
+# source $PDKPATH/libs.tech/magic/sky130A-BindKeys
+
+# set units to lambda grid 
+snap lambda
+
+# set sky130 standard power, ground, and substrate names
+set VDD VPWR
+set GND VGND
+set SUB VSUBS
+
+# Allow override of type of magic library views used, "mag" or "maglef",
+# from environment variable MAGTYPE
+
+if {[catch {set MAGTYPE $env(MAGTYPE)}]} {
+   set MAGTYPE maglef
+}
+
+	path search [concat "../$MAGTYPE" [path search]]
+
+
+# add path to reference cells
+if {[file isdir ${PDKPATH}/libs.ref/${MAGTYPE}]} {
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_pr
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_io
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hd
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hdll
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hs
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_hvl
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_lp
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ls
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_fd_sc_ms
+    addpath ${PDKPATH}/libs.ref/${MAGTYPE}/sky130_osu_sc
+    addpath ${PDKPATH}/libs.ref/mag/sky130_ml_xx_hd
+} else {
+    addpath ${PDKPATH}/libs.ref/sky130_fd_pr/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_io/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hd/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hdll/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hs/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_hvl/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_lp/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ls/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_fd_sc_ms/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_osu_sc/${MAGTYPE}
+    addpath ${PDKPATH}/libs.ref/sky130_ml_xx_hd/mag
+}
+
+addpath hexdigits
+addpath ../subcells/simple_por/mag
+
+# add path to GDS cells
+
+# add path to IP from catalog.  This procedure defined in the PDK script.
+catch {magic::query_mylib_ip}
+# add path to local IP from user design space.  Defined in the PDK script.
+catch {magic::query_my_projects}
diff --git a/mag/compose_final.tcl b/mag/compose_final.tcl
new file mode 100644
index 0000000..13e1e4d
--- /dev/null
+++ b/mag/compose_final.tcl
@@ -0,0 +1,28 @@
+#!/bin/env wish
+drc off
+random seed 131082
+load caravel -dereference
+property GDS_FILE /mnt/shuttles/shuttle/mpw-two/slot-010/yonga-lz4_decoder/gds/caravel.gds
+property GDS_START 0
+select top cell
+set bbox [box values]
+load caravel_0002000a_fill_pattern -quiet
+snap internal
+box values {*}$bbox
+paint comment
+property GDS_FILE /mnt/shuttles/shuttle/mpw-two/slot-010/yonga-lz4_decoder/gds/caravel_0002000a_fill_pattern.gds
+property GDS_START 0
+property FIXED_BBOX "$bbox"
+load caravel_0002000a -quiet
+box values 0 0 0 0
+box position 6um 6um
+getcell caravel child 0 0
+getcell caravel_0002000a_fill_pattern child 0 0
+box position 0 0
+getcell advSeal_6um_gen
+puts stdout "Writing final GDS. . . "
+flush stdout
+gds undefined allow
+cif *hier write disable
+gds write /mnt/shuttles/shuttle/mpw-two/slot-010/yonga-lz4_decoder/gds/caravel_0002000a.gds
+quit -noprompt
diff --git a/mag/mag2gds_caravel.tcl b/mag/mag2gds_caravel.tcl
new file mode 100644
index 0000000..684b88a
--- /dev/null
+++ b/mag/mag2gds_caravel.tcl
@@ -0,0 +1 @@
+	random seed 131082; 	drc off; 	crashbackups stop; 	gds readonly true; 	gds rescale false; 	cif *hier write disable; 	cif *array write disable; 	gds read /mnt/shuttles/shuttle/mpw-two/slot-010/yonga-lz4_decoder/gds/user_project_wrapper.gds; 	load caravel -dereference;	cellname list filepath user_id_programming /mnt/shuttles/shuttle/mpw-two/slot-010/yonga-lz4_decoder/mag;	cellname list filepath user_id_textblock /mnt/shuttles/shuttle/mpw-two/slot-010/yonga-lz4_decoder/mag;	flush user_id_programming;	flush user_id_textblock;	select top cell;	gds write /mnt/shuttles/shuttle/mpw-two/slot-010/yonga-lz4_decoder/gds/caravel.gds; 	exit;
diff --git a/mag/user_id_programming.mag b/mag/user_id_programming.mag
new file mode 100644
index 0000000..12006b5
--- /dev/null
+++ b/mag/user_id_programming.mag
@@ -0,0 +1,3159 @@
+magic
+tech sky130A
+magscale 1 2
+timestamp 1606755340
+<< nwell >>
+rect 2304 2369 2397 2389
+<< viali >>
+rect 4353 5117 4387 5151
+rect 5273 5117 5307 5151
+rect 2145 4641 2179 4675
+rect 3249 4641 3283 4675
+rect 3617 4641 3651 4675
+rect 4721 4641 4755 4675
+rect 1593 4029 1627 4063
+rect 2053 4029 2087 4063
+rect 4445 4029 4479 4063
+rect 4721 4029 4755 4063
+rect 5549 4029 5583 4063
+rect 1685 3553 1719 3587
+rect 1961 3553 1995 3587
+rect 2697 3553 2731 3587
+rect 3157 3553 3191 3587
+rect 3433 3553 3467 3587
+rect 4261 3553 4295 3587
+rect 4813 3553 4847 3587
+rect 5273 3553 5307 3587
+rect 1593 2941 1627 2975
+rect 4813 2397 4847 2431
+rect 5089 2397 5123 2431
+rect 1593 1853 1627 1887
+rect 2145 1853 2179 1887
+rect 2605 1853 2639 1887
+rect 2881 1853 2915 1887
+rect 3249 1853 3283 1887
+rect 4077 1853 4111 1887
+rect 5641 1853 5675 1887
+rect 1685 1377 1719 1411
+rect 2973 1377 3007 1411
+rect 4629 1377 4663 1411
+<< metal1 >>
+rect 1104 6010 5980 6032
+rect 1104 5958 2607 6010
+rect 2659 5958 2671 6010
+rect 2723 5958 2735 6010
+rect 2787 5958 2799 6010
+rect 2851 5958 4232 6010
+rect 4284 5958 4296 6010
+rect 4348 5958 4360 6010
+rect 4412 5958 4424 6010
+rect 4476 5958 5980 6010
+rect 1104 5936 5980 5958
+rect 1104 5466 5980 5488
+rect 1104 5414 1794 5466
+rect 1846 5414 1858 5466
+rect 1910 5414 1922 5466
+rect 1974 5414 1986 5466
+rect 2038 5414 3420 5466
+rect 3472 5414 3484 5466
+rect 3536 5414 3548 5466
+rect 3600 5414 3612 5466
+rect 3664 5414 5045 5466
+rect 5097 5414 5109 5466
+rect 5161 5414 5173 5466
+rect 5225 5414 5237 5466
+rect 5289 5414 5980 5466
+rect 1104 5392 5980 5414
+rect 4062 5108 4068 5160
+rect 4120 5148 4126 5160
+rect 4157 5148 4215 5157
+rect 4341 5151 4399 5157
+rect 4341 5148 4353 5151
+rect 4120 5120 4353 5148
+rect 4120 5108 4126 5120
+rect 4157 5111 4215 5120
+rect 4341 5117 4353 5120
+rect 4387 5117 4399 5151
+rect 4341 5111 4399 5117
+rect 4614 5108 4620 5160
+rect 4672 5148 4678 5160
+rect 5077 5148 5135 5157
+rect 5261 5151 5319 5157
+rect 5261 5148 5273 5151
+rect 4672 5120 5273 5148
+rect 4672 5108 4678 5120
+rect 5077 5111 5135 5120
+rect 5261 5117 5273 5120
+rect 5307 5117 5319 5151
+rect 5261 5111 5319 5117
+rect 1104 4922 5980 4944
+rect 1104 4870 2607 4922
+rect 2659 4870 2671 4922
+rect 2723 4870 2735 4922
+rect 2787 4870 2799 4922
+rect 2851 4870 4232 4922
+rect 4284 4870 4296 4922
+rect 4348 4870 4360 4922
+rect 4412 4870 4424 4922
+rect 4476 4870 5980 4922
+rect 1104 4848 5980 4870
+rect 1949 4672 2007 4681
+rect 2133 4675 2191 4681
+rect 2133 4672 2145 4675
+rect 1949 4644 2145 4672
+rect 1949 4635 2007 4644
+rect 2133 4641 2145 4644
+rect 2179 4672 2191 4675
+rect 2958 4672 2964 4684
+rect 2179 4644 2964 4672
+rect 2179 4641 2191 4644
+rect 2133 4635 2191 4641
+rect 2958 4632 2964 4644
+rect 3016 4632 3022 4684
+rect 3050 4672 3114 4684
+rect 3234 4672 3240 4684
+rect 3050 4644 3240 4672
+rect 3050 4632 3114 4644
+rect 3234 4632 3240 4644
+rect 3292 4632 3298 4684
+rect 3418 4672 3482 4684
+rect 3602 4675 3666 4684
+rect 3602 4672 3617 4675
+rect 3418 4644 3617 4672
+rect 3418 4632 3482 4644
+rect 3602 4641 3617 4644
+rect 3651 4641 3666 4675
+rect 3602 4632 3666 4641
+rect 4522 4674 4586 4684
+rect 4706 4675 4770 4684
+rect 4706 4674 4721 4675
+rect 4522 4644 4721 4674
+rect 4522 4632 4586 4644
+rect 4706 4641 4721 4644
+rect 4755 4641 4770 4675
+rect 4706 4632 4770 4641
+rect 3620 4468 3648 4632
+rect 4720 4539 4755 4632
+rect 4720 4505 4754 4539
+rect 4720 4480 4755 4505
+rect 3878 4468 3884 4480
+rect 3620 4440 3884 4468
+rect 3878 4428 3884 4440
+rect 3936 4428 3942 4480
+rect 4706 4428 4712 4480
+rect 4764 4428 4770 4480
+rect 1104 4378 5980 4400
+rect 1104 4326 1794 4378
+rect 1846 4326 1858 4378
+rect 1910 4326 1922 4378
+rect 1974 4326 1986 4378
+rect 2038 4326 3420 4378
+rect 3472 4326 3484 4378
+rect 3536 4326 3548 4378
+rect 3600 4326 3612 4378
+rect 3664 4326 5045 4378
+rect 5097 4326 5109 4378
+rect 5161 4326 5173 4378
+rect 5225 4326 5237 4378
+rect 5289 4326 5980 4378
+rect 1104 4304 5980 4326
+rect 3050 4224 3056 4276
+rect 3108 4264 3114 4276
+rect 3108 4236 4568 4264
+rect 3108 4224 3114 4236
+rect 1394 4156 1400 4208
+rect 1452 4196 1458 4208
+rect 1452 4168 1902 4196
+rect 1452 4156 1458 4168
+rect 1394 4060 1458 4072
+rect 1578 4060 1584 4072
+rect 1394 4032 1584 4060
+rect 1394 4020 1458 4032
+rect 1578 4020 1584 4032
+rect 1636 4020 1642 4072
+rect 1870 4069 1902 4168
+rect 2222 4088 2228 4140
+rect 2280 4128 2286 4140
+rect 2280 4100 3924 4128
+rect 2280 4088 2286 4100
+rect 1857 4059 1915 4069
+rect 2041 4063 2099 4069
+rect 2041 4059 2053 4063
+rect 1857 4031 2053 4059
+rect 1857 4023 1915 4031
+rect 2041 4029 2053 4031
+rect 2087 4029 2099 4063
+rect 2041 4023 2099 4029
+rect 3896 3992 3924 4100
+rect 4062 4020 4068 4072
+rect 4120 4060 4126 4072
+rect 4540 4069 4568 4236
+rect 4249 4060 4307 4069
+rect 4433 4063 4491 4069
+rect 4433 4060 4445 4063
+rect 4120 4032 4445 4060
+rect 4120 4020 4126 4032
+rect 4249 4023 4307 4032
+rect 4433 4029 4445 4032
+rect 4479 4029 4491 4063
+rect 4433 4023 4491 4029
+rect 4525 4060 4583 4069
+rect 4709 4063 4767 4069
+rect 4709 4060 4721 4063
+rect 4525 4032 4721 4060
+rect 4525 4023 4583 4032
+rect 4709 4029 4721 4032
+rect 4755 4029 4767 4063
+rect 4709 4023 4767 4029
+rect 5350 4020 5356 4072
+rect 5408 4060 5414 4072
+rect 5537 4063 5595 4069
+rect 5537 4060 5549 4063
+rect 5408 4031 5549 4060
+rect 5408 4020 5414 4031
+rect 5537 4029 5549 4031
+rect 5583 4029 5595 4063
+rect 5537 4023 5595 4029
+rect 4890 3992 4896 4004
+rect 3896 3964 4896 3992
+rect 4890 3952 4896 3964
+rect 4948 3952 4954 4004
+rect 1104 3834 5980 3856
+rect 1104 3782 2607 3834
+rect 2659 3782 2671 3834
+rect 2723 3782 2735 3834
+rect 2787 3782 2799 3834
+rect 2851 3782 4232 3834
+rect 4284 3782 4296 3834
+rect 4348 3782 4360 3834
+rect 4412 3782 4424 3834
+rect 4476 3782 5980 3834
+rect 1104 3760 5980 3782
+rect 566 3680 572 3732
+rect 624 3720 630 3732
+rect 4706 3720 4712 3732
+rect 624 3692 4712 3720
+rect 624 3680 630 3692
+rect 4706 3680 4712 3692
+rect 4764 3680 4770 3732
+rect 5902 3652 5908 3664
+rect 1964 3624 5908 3652
+rect 1486 3584 1550 3596
+rect 1670 3584 1676 3596
+rect 1486 3556 1676 3584
+rect 1486 3544 1550 3556
+rect 1670 3544 1676 3556
+rect 1728 3544 1734 3596
+rect 1964 3593 1992 3624
+rect 5902 3612 5908 3624
+rect 5960 3612 5966 3664
+rect 1765 3584 1823 3593
+rect 1949 3587 2007 3593
+rect 1949 3584 1961 3587
+rect 1765 3556 1961 3584
+rect 1765 3547 1823 3556
+rect 1949 3553 1961 3556
+rect 1995 3553 2007 3587
+rect 1949 3547 2007 3553
+rect 2501 3586 2559 3593
+rect 2685 3587 2743 3593
+rect 2685 3586 2697 3587
+rect 2501 3555 2697 3586
+rect 2501 3547 2559 3555
+rect 2685 3553 2697 3555
+rect 2731 3586 2743 3587
+rect 2774 3586 2780 3596
+rect 2731 3555 2780 3586
+rect 2731 3553 2743 3555
+rect 2685 3547 2743 3553
+rect 2774 3544 2780 3555
+rect 2832 3544 2838 3596
+rect 2958 3584 3022 3596
+rect 3142 3584 3148 3596
+rect 2958 3556 3148 3584
+rect 2958 3544 3022 3556
+rect 3142 3544 3148 3556
+rect 3200 3544 3206 3596
+rect 3234 3585 3298 3596
+rect 3418 3587 3482 3596
+rect 3418 3585 3433 3587
+rect 3234 3557 3433 3585
+rect 3234 3544 3298 3557
+rect 3418 3553 3433 3557
+rect 3467 3553 3482 3587
+rect 3418 3544 3482 3553
+rect 4065 3584 4123 3593
+rect 4249 3587 4307 3593
+rect 4249 3584 4261 3587
+rect 4065 3556 4261 3584
+rect 4065 3547 4123 3556
+rect 4249 3553 4261 3556
+rect 4295 3584 4307 3587
+rect 4522 3584 4528 3596
+rect 4295 3556 4528 3584
+rect 4295 3553 4307 3556
+rect 4249 3547 4307 3553
+rect 4522 3544 4528 3556
+rect 4580 3544 4586 3596
+rect 4614 3585 4678 3596
+rect 4798 3587 4862 3596
+rect 4798 3585 4813 3587
+rect 4614 3557 4813 3585
+rect 4614 3544 4678 3557
+rect 4798 3553 4813 3557
+rect 4847 3553 4862 3587
+rect 4798 3544 4862 3553
+rect 4982 3544 4988 3596
+rect 5040 3584 5046 3596
+rect 5077 3584 5135 3593
+rect 5261 3587 5319 3593
+rect 5261 3584 5273 3587
+rect 5040 3556 5273 3584
+rect 5040 3544 5046 3556
+rect 5077 3547 5135 3556
+rect 5261 3553 5273 3556
+rect 5307 3553 5319 3587
+rect 5261 3547 5319 3553
+rect 2222 3408 2228 3460
+rect 2280 3448 2286 3460
+rect 3438 3448 3466 3544
+rect 4706 3448 4712 3460
+rect 2280 3420 3280 3448
+rect 3438 3420 4712 3448
+rect 2280 3408 2286 3420
+rect 3252 3380 3280 3420
+rect 4706 3408 4712 3420
+rect 4764 3408 4770 3460
+rect 4814 3380 4842 3544
+rect 3252 3352 4842 3380
+rect 1104 3290 2150 3312
+rect 1104 3238 1794 3290
+rect 1846 3238 1858 3290
+rect 1910 3238 1922 3290
+rect 1974 3238 1986 3290
+rect 2038 3238 2150 3290
+rect 1104 3216 2150 3238
+rect 2181 3290 5902 3312
+rect 2181 3238 3420 3290
+rect 3472 3238 3484 3290
+rect 3536 3238 3548 3290
+rect 3600 3238 3612 3290
+rect 3664 3238 5045 3290
+rect 5097 3238 5109 3290
+rect 5161 3238 5173 3290
+rect 5225 3238 5237 3290
+rect 5289 3238 5902 3290
+rect 2181 3216 5902 3238
+rect 5966 3216 5980 3312
+rect 2773 3131 2779 3183
+rect 2831 3174 2837 3183
+rect 5902 3174 5908 3188
+rect 2831 3143 5908 3174
+rect 2831 3131 2837 3143
+rect 5902 3136 5908 3143
+rect 5960 3136 5966 3188
+rect 1397 2972 1455 2981
+rect 1581 2975 1639 2981
+rect 1581 2972 1593 2975
+rect 1397 2944 1593 2972
+rect 1397 2935 1455 2944
+rect 1581 2941 1593 2944
+rect 1627 2972 1639 2975
+rect 3050 2972 3056 2984
+rect 1627 2944 3056 2972
+rect 1627 2941 1639 2944
+rect 1581 2935 1639 2941
+rect 3050 2932 3056 2944
+rect 3108 2932 3114 2984
+rect 1670 2796 1676 2848
+rect 1728 2836 1734 2848
+rect 4614 2836 4620 2848
+rect 1728 2808 4620 2836
+rect 1728 2796 1734 2808
+rect 4614 2796 4620 2808
+rect 4672 2796 4678 2848
+rect 1104 2746 5980 2768
+rect 1104 2694 2607 2746
+rect 2659 2694 2671 2746
+rect 2723 2694 2735 2746
+rect 2787 2694 2799 2746
+rect 2851 2694 4232 2746
+rect 4284 2694 4296 2746
+rect 4348 2694 4360 2746
+rect 4412 2694 4424 2746
+rect 4476 2694 5980 2746
+rect 1104 2672 5980 2694
+rect 5442 2496 5448 2508
+rect 4815 2468 5448 2496
+rect 4815 2437 4843 2468
+rect 5442 2456 5448 2468
+rect 5500 2456 5506 2508
+rect 4617 2429 4675 2437
+rect 4801 2431 4859 2437
+rect 4801 2429 4813 2431
+rect 4617 2401 4813 2429
+rect 4617 2391 4675 2401
+rect 4801 2397 4813 2401
+rect 4847 2397 4859 2431
+rect 4801 2391 4859 2397
+rect 4890 2388 4896 2440
+rect 4948 2428 4954 2440
+rect 5077 2431 5135 2437
+rect 5077 2428 5089 2431
+rect 4948 2400 5089 2428
+rect 4948 2388 4954 2400
+rect 5077 2397 5089 2400
+rect 5123 2397 5135 2431
+rect 5077 2391 5135 2397
+rect 2314 2320 2320 2372
+rect 2372 2360 2378 2372
+rect 6454 2360 6460 2372
+rect 2372 2332 6460 2360
+rect 2372 2320 2378 2332
+rect 6454 2320 6460 2332
+rect 6512 2320 6518 2372
+rect 1104 2202 5980 2224
+rect 1104 2150 1794 2202
+rect 1846 2150 1858 2202
+rect 1910 2150 1922 2202
+rect 1974 2150 1986 2202
+rect 2038 2150 3420 2202
+rect 3472 2150 3484 2202
+rect 3536 2150 3548 2202
+rect 3600 2150 3612 2202
+rect 3664 2150 5045 2202
+rect 5097 2150 5109 2202
+rect 5161 2150 5173 2202
+rect 5225 2150 5237 2202
+rect 5289 2150 5980 2202
+rect 1104 2128 5980 2150
+rect 3970 2020 3976 2032
+rect 2976 1992 3976 2020
+rect 1210 1912 1216 1964
+rect 1268 1952 1274 1964
+rect 1268 1924 2452 1952
+rect 1268 1912 1274 1924
+rect 1397 1884 1455 1893
+rect 1581 1887 1639 1893
+rect 1581 1884 1593 1887
+rect 1397 1856 1593 1884
+rect 1397 1847 1455 1856
+rect 1581 1853 1593 1856
+rect 1627 1853 1639 1887
+rect 1581 1847 1639 1853
+rect 1949 1884 2007 1893
+rect 2133 1887 2191 1893
+rect 2133 1884 2145 1887
+rect 1949 1856 2145 1884
+rect 1949 1847 2007 1856
+rect 2133 1853 2145 1856
+rect 2179 1884 2191 1887
+rect 2314 1884 2320 1896
+rect 2179 1856 2320 1884
+rect 2179 1853 2191 1856
+rect 2133 1847 2191 1853
+rect 1596 1816 1624 1847
+rect 2314 1844 2320 1856
+rect 2372 1844 2378 1896
+rect 2424 1893 2452 1924
+rect 2409 1884 2467 1893
+rect 2593 1887 2651 1893
+rect 2593 1884 2605 1887
+rect 2409 1856 2605 1884
+rect 2409 1847 2467 1856
+rect 2593 1853 2605 1856
+rect 2639 1853 2651 1887
+rect 2593 1847 2651 1853
+rect 2685 1884 2743 1893
+rect 2869 1887 2927 1893
+rect 2869 1884 2881 1887
+rect 2685 1856 2881 1884
+rect 2685 1847 2743 1856
+rect 2869 1853 2881 1856
+rect 2915 1884 2927 1887
+rect 2976 1884 3004 1992
+rect 3970 1980 3976 1992
+rect 4028 1980 4034 2032
+rect 2915 1856 3004 1884
+rect 3050 1884 3114 1896
+rect 3234 1884 3240 1896
+rect 3050 1856 3240 1884
+rect 2915 1853 2927 1856
+rect 2869 1847 2927 1853
+rect 3050 1844 3114 1856
+rect 3234 1844 3240 1856
+rect 3292 1844 3298 1896
+rect 3786 1844 3792 1896
+rect 3844 1884 3850 1896
+rect 3881 1884 3939 1893
+rect 4065 1887 4123 1893
+rect 4065 1884 4077 1887
+rect 3844 1856 4077 1884
+rect 3844 1844 3850 1856
+rect 3881 1847 3939 1856
+rect 4065 1853 4077 1856
+rect 4111 1853 4123 1887
+rect 4065 1847 4123 1853
+rect 5442 1884 5506 1896
+rect 5626 1884 5632 1896
+rect 5442 1856 5632 1884
+rect 5442 1844 5506 1856
+rect 5626 1844 5632 1856
+rect 5684 1844 5690 1896
+rect 1596 1788 3004 1816
+rect 2976 1748 3004 1788
+rect 3234 1748 3240 1760
+rect 2976 1720 3240 1748
+rect 3234 1708 3240 1720
+rect 3292 1708 3298 1760
+rect 1104 1658 5980 1680
+rect 1104 1606 2607 1658
+rect 2659 1606 2671 1658
+rect 2723 1606 2735 1658
+rect 2787 1606 2799 1658
+rect 2851 1606 4232 1658
+rect 4284 1606 4296 1658
+rect 4348 1606 4360 1658
+rect 4412 1606 4424 1658
+rect 4476 1606 5980 1658
+rect 1104 1584 5980 1606
+rect 1118 1368 1124 1420
+rect 1176 1408 1182 1420
+rect 1489 1408 1547 1417
+rect 1673 1411 1731 1417
+rect 1673 1408 1685 1411
+rect 1176 1380 1685 1408
+rect 1176 1368 1182 1380
+rect 1489 1371 1547 1380
+rect 1673 1377 1685 1380
+rect 1719 1377 1731 1411
+rect 1673 1371 1731 1377
+rect 2774 1408 2838 1420
+rect 2958 1408 2964 1420
+rect 2774 1380 2964 1408
+rect 2774 1368 2838 1380
+rect 2958 1368 2964 1380
+rect 3016 1368 3022 1420
+rect 4430 1408 4494 1420
+rect 4614 1408 4620 1420
+rect 4430 1380 4620 1408
+rect 4430 1368 4494 1380
+rect 4614 1368 4620 1380
+rect 4672 1368 4678 1420
+rect 1104 1114 5980 1136
+rect 1104 1062 1794 1114
+rect 1846 1062 1858 1114
+rect 1910 1062 1922 1114
+rect 1974 1062 1986 1114
+rect 2038 1062 3420 1114
+rect 3472 1062 3484 1114
+rect 3536 1062 3548 1114
+rect 3600 1062 3612 1114
+rect 3664 1062 5045 1114
+rect 5097 1062 5109 1114
+rect 5161 1062 5173 1114
+rect 5225 1062 5237 1114
+rect 5289 1062 5980 1114
+rect 1104 1040 5980 1062
+<< via1 >>
+rect 2607 5958 2659 6010
+rect 2671 5958 2723 6010
+rect 2735 5958 2787 6010
+rect 2799 5958 2851 6010
+rect 4232 5958 4284 6010
+rect 4296 5958 4348 6010
+rect 4360 5958 4412 6010
+rect 4424 5958 4476 6010
+rect 1794 5414 1846 5466
+rect 1858 5414 1910 5466
+rect 1922 5414 1974 5466
+rect 1986 5414 2038 5466
+rect 3420 5414 3472 5466
+rect 3484 5414 3536 5466
+rect 3548 5414 3600 5466
+rect 3612 5414 3664 5466
+rect 5045 5414 5097 5466
+rect 5109 5414 5161 5466
+rect 5173 5414 5225 5466
+rect 5237 5414 5289 5466
+rect 4068 5108 4120 5160
+rect 4620 5108 4672 5160
+rect 2607 4870 2659 4922
+rect 2671 4870 2723 4922
+rect 2735 4870 2787 4922
+rect 2799 4870 2851 4922
+rect 4232 4870 4284 4922
+rect 4296 4870 4348 4922
+rect 4360 4870 4412 4922
+rect 4424 4870 4476 4922
+rect 2964 4632 3016 4684
+rect 3240 4675 3292 4684
+rect 3240 4641 3249 4675
+rect 3249 4641 3283 4675
+rect 3283 4641 3292 4675
+rect 3240 4632 3292 4641
+rect 3884 4428 3936 4480
+rect 4712 4428 4764 4480
+rect 1794 4326 1846 4378
+rect 1858 4326 1910 4378
+rect 1922 4326 1974 4378
+rect 1986 4326 2038 4378
+rect 3420 4326 3472 4378
+rect 3484 4326 3536 4378
+rect 3548 4326 3600 4378
+rect 3612 4326 3664 4378
+rect 5045 4326 5097 4378
+rect 5109 4326 5161 4378
+rect 5173 4326 5225 4378
+rect 5237 4326 5289 4378
+rect 3056 4224 3108 4276
+rect 1400 4156 1452 4208
+rect 1584 4063 1636 4072
+rect 1584 4029 1593 4063
+rect 1593 4029 1627 4063
+rect 1627 4029 1636 4063
+rect 1584 4020 1636 4029
+rect 2228 4088 2280 4140
+rect 4068 4020 4120 4072
+rect 5356 4020 5408 4072
+rect 4896 3952 4948 4004
+rect 2607 3782 2659 3834
+rect 2671 3782 2723 3834
+rect 2735 3782 2787 3834
+rect 2799 3782 2851 3834
+rect 4232 3782 4284 3834
+rect 4296 3782 4348 3834
+rect 4360 3782 4412 3834
+rect 4424 3782 4476 3834
+rect 572 3680 624 3732
+rect 4712 3680 4764 3732
+rect 1676 3587 1728 3596
+rect 1676 3553 1685 3587
+rect 1685 3553 1719 3587
+rect 1719 3553 1728 3587
+rect 1676 3544 1728 3553
+rect 5908 3612 5960 3664
+rect 2780 3544 2832 3596
+rect 3148 3587 3200 3596
+rect 3148 3553 3157 3587
+rect 3157 3553 3191 3587
+rect 3191 3553 3200 3587
+rect 3148 3544 3200 3553
+rect 4528 3544 4580 3596
+rect 4988 3544 5040 3596
+rect 2228 3408 2280 3460
+rect 4712 3408 4764 3460
+rect 1794 3238 1846 3290
+rect 1858 3238 1910 3290
+rect 1922 3238 1974 3290
+rect 1986 3238 2038 3290
+rect 3420 3238 3472 3290
+rect 3484 3238 3536 3290
+rect 3548 3238 3600 3290
+rect 3612 3238 3664 3290
+rect 5045 3238 5097 3290
+rect 5109 3238 5161 3290
+rect 5173 3238 5225 3290
+rect 5237 3238 5289 3290
+rect 2779 3131 2831 3183
+rect 5908 3136 5960 3188
+rect 3056 2932 3108 2984
+rect 1676 2796 1728 2848
+rect 4620 2796 4672 2848
+rect 2607 2694 2659 2746
+rect 2671 2694 2723 2746
+rect 2735 2694 2787 2746
+rect 2799 2694 2851 2746
+rect 4232 2694 4284 2746
+rect 4296 2694 4348 2746
+rect 4360 2694 4412 2746
+rect 4424 2694 4476 2746
+rect 5448 2456 5500 2508
+rect 4896 2388 4948 2440
+rect 2320 2320 2372 2372
+rect 6460 2320 6512 2372
+rect 1794 2150 1846 2202
+rect 1858 2150 1910 2202
+rect 1922 2150 1974 2202
+rect 1986 2150 2038 2202
+rect 3420 2150 3472 2202
+rect 3484 2150 3536 2202
+rect 3548 2150 3600 2202
+rect 3612 2150 3664 2202
+rect 5045 2150 5097 2202
+rect 5109 2150 5161 2202
+rect 5173 2150 5225 2202
+rect 5237 2150 5289 2202
+rect 1216 1912 1268 1964
+rect 2320 1844 2372 1896
+rect 3976 1980 4028 2032
+rect 3240 1887 3292 1896
+rect 3240 1853 3249 1887
+rect 3249 1853 3283 1887
+rect 3283 1853 3292 1887
+rect 3240 1844 3292 1853
+rect 3792 1844 3844 1896
+rect 5632 1887 5684 1896
+rect 5632 1853 5641 1887
+rect 5641 1853 5675 1887
+rect 5675 1853 5684 1887
+rect 5632 1844 5684 1853
+rect 3240 1708 3292 1760
+rect 2607 1606 2659 1658
+rect 2671 1606 2723 1658
+rect 2735 1606 2787 1658
+rect 2799 1606 2851 1658
+rect 4232 1606 4284 1658
+rect 4296 1606 4348 1658
+rect 4360 1606 4412 1658
+rect 4424 1606 4476 1658
+rect 1124 1368 1176 1420
+rect 2964 1411 3016 1420
+rect 2964 1377 2973 1411
+rect 2973 1377 3007 1411
+rect 3007 1377 3016 1411
+rect 2964 1368 3016 1377
+rect 4620 1411 4672 1420
+rect 4620 1377 4629 1411
+rect 4629 1377 4663 1411
+rect 4663 1377 4672 1411
+rect 4620 1368 4672 1377
+rect 1794 1062 1846 1114
+rect 1858 1062 1910 1114
+rect 1922 1062 1974 1114
+rect 1986 1062 2038 1114
+rect 3420 1062 3472 1114
+rect 3484 1062 3536 1114
+rect 3548 1062 3600 1114
+rect 3612 1062 3664 1114
+rect 5045 1062 5097 1114
+rect 5109 1062 5161 1114
+rect 5173 1062 5225 1114
+rect 5237 1062 5289 1114
+<< metal2 >>
+rect 1122 6277 1178 7077
+rect 1674 6277 1730 7077
+rect 2226 6277 2282 7077
+rect 2962 6277 3018 7077
+rect 3514 6277 3570 7077
+rect 4066 6277 4122 7077
+rect 4802 6277 4858 7077
+rect 5354 6277 5410 7077
+rect 5906 6277 5962 7077
+rect 6458 6277 6514 7077
+rect 572 3732 624 3738
+rect 572 3674 624 3680
+rect 584 800 612 3674
+rect 1136 1426 1164 6277
+rect 1582 4448 1638 4457
+rect 1582 4383 1638 4392
+rect 1400 4208 1452 4214
+rect 1400 4150 1452 4156
+rect 1412 2553 1440 4150
+rect 1596 4078 1624 4383
+rect 1584 4072 1636 4078
+rect 1584 4014 1636 4020
+rect 1688 3602 1716 6277
+rect 1768 5468 2064 5488
+rect 1824 5466 1848 5468
+rect 1904 5466 1928 5468
+rect 1984 5466 2008 5468
+rect 1846 5414 1848 5466
+rect 1910 5414 1922 5466
+rect 1984 5414 1986 5466
+rect 1824 5412 1848 5414
+rect 1904 5412 1928 5414
+rect 1984 5412 2008 5414
+rect 1768 5392 2064 5412
+rect 1768 4380 2064 4400
+rect 1824 4378 1848 4380
+rect 1904 4378 1928 4380
+rect 1984 4378 2008 4380
+rect 1846 4326 1848 4378
+rect 1910 4326 1922 4378
+rect 1984 4326 1986 4378
+rect 1824 4324 1848 4326
+rect 1904 4324 1928 4326
+rect 1984 4324 2008 4326
+rect 1768 4304 2064 4324
+rect 2240 4146 2268 6277
+rect 2581 6012 2877 6032
+rect 2637 6010 2661 6012
+rect 2717 6010 2741 6012
+rect 2797 6010 2821 6012
+rect 2659 5958 2661 6010
+rect 2723 5958 2735 6010
+rect 2797 5958 2799 6010
+rect 2637 5956 2661 5958
+rect 2717 5956 2741 5958
+rect 2797 5956 2821 5958
+rect 2581 5936 2877 5956
+rect 2581 4924 2877 4944
+rect 2637 4922 2661 4924
+rect 2717 4922 2741 4924
+rect 2797 4922 2821 4924
+rect 2659 4870 2661 4922
+rect 2723 4870 2735 4922
+rect 2797 4870 2799 4922
+rect 2637 4868 2661 4870
+rect 2717 4868 2741 4870
+rect 2797 4868 2821 4870
+rect 2581 4848 2877 4868
+rect 2976 4690 3004 6277
+rect 3528 5658 3556 6277
+rect 3528 5630 3832 5658
+rect 3394 5468 3690 5488
+rect 3450 5466 3474 5468
+rect 3530 5466 3554 5468
+rect 3610 5466 3634 5468
+rect 3472 5414 3474 5466
+rect 3536 5414 3548 5466
+rect 3610 5414 3612 5466
+rect 3450 5412 3474 5414
+rect 3530 5412 3554 5414
+rect 3610 5412 3634 5414
+rect 3394 5392 3690 5412
+rect 3054 5264 3110 5273
+rect 3054 5199 3110 5208
+rect 3238 5264 3294 5273
+rect 3238 5199 3294 5208
+rect 2964 4684 3016 4690
+rect 2964 4626 3016 4632
+rect 3068 4282 3096 5199
+rect 3252 4690 3280 5199
+rect 3240 4684 3292 4690
+rect 3240 4626 3292 4632
+rect 3394 4380 3690 4400
+rect 3450 4378 3474 4380
+rect 3530 4378 3554 4380
+rect 3610 4378 3634 4380
+rect 3472 4326 3474 4378
+rect 3536 4326 3548 4378
+rect 3610 4326 3612 4378
+rect 3450 4324 3474 4326
+rect 3530 4324 3554 4326
+rect 3610 4324 3634 4326
+rect 3394 4304 3690 4324
+rect 3056 4276 3108 4282
+rect 3056 4218 3108 4224
+rect 2228 4140 2280 4146
+rect 2228 4082 2280 4088
+rect 2581 3836 2877 3856
+rect 2637 3834 2661 3836
+rect 2717 3834 2741 3836
+rect 2797 3834 2821 3836
+rect 2659 3782 2661 3834
+rect 2723 3782 2735 3834
+rect 2797 3782 2799 3834
+rect 2637 3780 2661 3782
+rect 2717 3780 2741 3782
+rect 2797 3780 2821 3782
+rect 2581 3760 2877 3780
+rect 1676 3596 1728 3602
+rect 1676 3538 1728 3544
+rect 2780 3596 2832 3602
+rect 2780 3538 2832 3544
+rect 3148 3596 3200 3602
+rect 3148 3538 3200 3544
+rect 2228 3460 2280 3466
+rect 2228 3402 2280 3408
+rect 1768 3292 2064 3312
+rect 1824 3290 1848 3292
+rect 1904 3290 1928 3292
+rect 1984 3290 2008 3292
+rect 1846 3238 1848 3290
+rect 1910 3238 1922 3290
+rect 1984 3238 1986 3290
+rect 1824 3236 1848 3238
+rect 1904 3236 1928 3238
+rect 1984 3236 2008 3238
+rect 1768 3216 2064 3236
+rect 1676 2848 1728 2854
+rect 1676 2790 1728 2796
+rect 1398 2544 1454 2553
+rect 1398 2479 1454 2488
+rect 1216 1964 1268 1970
+rect 1216 1906 1268 1912
+rect 1124 1420 1176 1426
+rect 1124 1362 1176 1368
+rect 1228 1034 1256 1906
+rect 1136 1006 1256 1034
+rect 1136 800 1164 1006
+rect 1688 800 1716 2790
+rect 1768 2204 2064 2224
+rect 1824 2202 1848 2204
+rect 1904 2202 1928 2204
+rect 1984 2202 2008 2204
+rect 1846 2150 1848 2202
+rect 1910 2150 1922 2202
+rect 1984 2150 1986 2202
+rect 1824 2148 1848 2150
+rect 1904 2148 1928 2150
+rect 1984 2148 2008 2150
+rect 1768 2128 2064 2148
+rect 1768 1116 2064 1136
+rect 1824 1114 1848 1116
+rect 1904 1114 1928 1116
+rect 1984 1114 2008 1116
+rect 1846 1062 1848 1114
+rect 1910 1062 1922 1114
+rect 1984 1062 1986 1114
+rect 1824 1060 1848 1062
+rect 1904 1060 1928 1062
+rect 1984 1060 2008 1062
+rect 1768 1040 2064 1060
+rect 2240 800 2268 3402
+rect 2792 3189 2820 3538
+rect 2779 3183 2831 3189
+rect 2779 3125 2831 3131
+rect 3056 2984 3108 2990
+rect 3056 2926 3108 2932
+rect 2581 2748 2877 2768
+rect 2637 2746 2661 2748
+rect 2717 2746 2741 2748
+rect 2797 2746 2821 2748
+rect 2659 2694 2661 2746
+rect 2723 2694 2735 2746
+rect 2797 2694 2799 2746
+rect 2637 2692 2661 2694
+rect 2717 2692 2741 2694
+rect 2797 2692 2821 2694
+rect 2581 2672 2877 2692
+rect 2962 2544 3018 2553
+rect 2962 2479 3018 2488
+rect 2320 2372 2372 2378
+rect 2320 2314 2372 2320
+rect 2332 1902 2360 2314
+rect 2320 1896 2372 1902
+rect 2320 1838 2372 1844
+rect 2581 1660 2877 1680
+rect 2637 1658 2661 1660
+rect 2717 1658 2741 1660
+rect 2797 1658 2821 1660
+rect 2659 1606 2661 1658
+rect 2723 1606 2735 1658
+rect 2797 1606 2799 1658
+rect 2637 1604 2661 1606
+rect 2717 1604 2741 1606
+rect 2797 1604 2821 1606
+rect 2581 1584 2877 1604
+rect 2976 1426 3004 2479
+rect 2964 1420 3016 1426
+rect 2964 1362 3016 1368
+rect 3068 1170 3096 2926
+rect 3160 1873 3188 3538
+rect 3394 3292 3690 3312
+rect 3450 3290 3474 3292
+rect 3530 3290 3554 3292
+rect 3610 3290 3634 3292
+rect 3472 3238 3474 3290
+rect 3536 3238 3548 3290
+rect 3610 3238 3612 3290
+rect 3450 3236 3474 3238
+rect 3530 3236 3554 3238
+rect 3610 3236 3634 3238
+rect 3394 3216 3690 3236
+rect 3238 3088 3294 3097
+rect 3238 3023 3294 3032
+rect 3252 1902 3280 3023
+rect 3394 2204 3690 2224
+rect 3450 2202 3474 2204
+rect 3530 2202 3554 2204
+rect 3610 2202 3634 2204
+rect 3472 2150 3474 2202
+rect 3536 2150 3548 2202
+rect 3610 2150 3612 2202
+rect 3450 2148 3474 2150
+rect 3530 2148 3554 2150
+rect 3610 2148 3634 2150
+rect 3394 2128 3690 2148
+rect 3804 1902 3832 5630
+rect 4080 5250 4108 6277
+rect 4206 6012 4502 6032
+rect 4262 6010 4286 6012
+rect 4342 6010 4366 6012
+rect 4422 6010 4446 6012
+rect 4284 5958 4286 6010
+rect 4348 5958 4360 6010
+rect 4422 5958 4424 6010
+rect 4262 5956 4286 5958
+rect 4342 5956 4366 5958
+rect 4422 5956 4446 5958
+rect 4206 5936 4502 5956
+rect 4526 5808 4582 5817
+rect 4526 5743 4582 5752
+rect 3988 5222 4108 5250
+rect 3884 4480 3936 4486
+rect 3884 4422 3936 4428
+rect 3240 1896 3292 1902
+rect 3146 1864 3202 1873
+rect 3240 1838 3292 1844
+rect 3792 1896 3844 1902
+rect 3792 1838 3844 1844
+rect 3146 1799 3202 1808
+rect 3240 1760 3292 1766
+rect 3240 1702 3292 1708
+rect 2976 1142 3096 1170
+rect 2976 800 3004 1142
+rect 3252 898 3280 1702
+rect 3394 1116 3690 1136
+rect 3450 1114 3474 1116
+rect 3530 1114 3554 1116
+rect 3610 1114 3634 1116
+rect 3472 1062 3474 1114
+rect 3536 1062 3548 1114
+rect 3610 1062 3612 1114
+rect 3450 1060 3474 1062
+rect 3530 1060 3554 1062
+rect 3610 1060 3634 1062
+rect 3394 1040 3690 1060
+rect 3896 921 3924 4422
+rect 3988 2038 4016 5222
+rect 4068 5160 4120 5166
+rect 4068 5102 4120 5108
+rect 4080 4593 4108 5102
+rect 4206 4924 4502 4944
+rect 4262 4922 4286 4924
+rect 4342 4922 4366 4924
+rect 4422 4922 4446 4924
+rect 4284 4870 4286 4922
+rect 4348 4870 4360 4922
+rect 4422 4870 4424 4922
+rect 4262 4868 4286 4870
+rect 4342 4868 4366 4870
+rect 4422 4868 4446 4870
+rect 4206 4848 4502 4868
+rect 4066 4584 4122 4593
+rect 4066 4519 4122 4528
+rect 4068 4072 4120 4078
+rect 4068 4014 4120 4020
+rect 3976 2032 4028 2038
+rect 3976 1974 4028 1980
+rect 3882 912 3938 921
+rect 3252 870 3556 898
+rect 3528 800 3556 870
+rect 3882 847 3938 856
+rect 4080 800 4108 4014
+rect 4206 3836 4502 3856
+rect 4262 3834 4286 3836
+rect 4342 3834 4366 3836
+rect 4422 3834 4446 3836
+rect 4284 3782 4286 3834
+rect 4348 3782 4360 3834
+rect 4422 3782 4424 3834
+rect 4262 3780 4286 3782
+rect 4342 3780 4366 3782
+rect 4422 3780 4446 3782
+rect 4206 3760 4502 3780
+rect 4540 3602 4568 5743
+rect 4620 5160 4672 5166
+rect 4620 5102 4672 5108
+rect 4528 3596 4580 3602
+rect 4528 3538 4580 3544
+rect 4632 2854 4660 5102
+rect 4712 4480 4764 4486
+rect 4712 4422 4764 4428
+rect 4724 3738 4752 4422
+rect 4816 4127 4844 6277
+rect 5019 5468 5315 5488
+rect 5075 5466 5099 5468
+rect 5155 5466 5179 5468
+rect 5235 5466 5259 5468
+rect 5097 5414 5099 5466
+rect 5161 5414 5173 5466
+rect 5235 5414 5237 5466
+rect 5075 5412 5099 5414
+rect 5155 5412 5179 5414
+rect 5235 5412 5259 5414
+rect 5019 5392 5315 5412
+rect 5019 4380 5315 4400
+rect 5075 4378 5099 4380
+rect 5155 4378 5179 4380
+rect 5235 4378 5259 4380
+rect 5097 4326 5099 4378
+rect 5161 4326 5173 4378
+rect 5235 4326 5237 4378
+rect 5075 4324 5099 4326
+rect 5155 4324 5179 4326
+rect 5235 4324 5259 4326
+rect 5019 4304 5315 4324
+rect 5368 4298 5396 6277
+rect 5368 4270 5488 4298
+rect 4816 4099 5028 4127
+rect 4896 4004 4948 4010
+rect 4896 3946 4948 3952
+rect 4712 3732 4764 3738
+rect 4712 3674 4764 3680
+rect 4712 3460 4764 3466
+rect 4712 3402 4764 3408
+rect 4620 2848 4672 2854
+rect 4620 2790 4672 2796
+rect 4206 2748 4502 2768
+rect 4262 2746 4286 2748
+rect 4342 2746 4366 2748
+rect 4422 2746 4446 2748
+rect 4284 2694 4286 2746
+rect 4348 2694 4360 2746
+rect 4422 2694 4424 2746
+rect 4262 2692 4286 2694
+rect 4342 2692 4366 2694
+rect 4422 2692 4446 2694
+rect 4206 2672 4502 2692
+rect 4618 1728 4674 1737
+rect 4206 1660 4502 1680
+rect 4724 1714 4752 3402
+rect 4908 2446 4936 3946
+rect 5000 3602 5028 4099
+rect 5356 4072 5408 4078
+rect 5356 4014 5408 4020
+rect 4988 3596 5040 3602
+rect 4988 3538 5040 3544
+rect 5019 3292 5315 3312
+rect 5075 3290 5099 3292
+rect 5155 3290 5179 3292
+rect 5235 3290 5259 3292
+rect 5097 3238 5099 3290
+rect 5161 3238 5173 3290
+rect 5235 3238 5237 3290
+rect 5075 3236 5099 3238
+rect 5155 3236 5179 3238
+rect 5235 3236 5259 3238
+rect 5019 3216 5315 3236
+rect 4896 2440 4948 2446
+rect 4896 2382 4948 2388
+rect 5019 2204 5315 2224
+rect 5075 2202 5099 2204
+rect 5155 2202 5179 2204
+rect 5235 2202 5259 2204
+rect 5097 2150 5099 2202
+rect 5161 2150 5173 2202
+rect 5235 2150 5237 2202
+rect 5075 2148 5099 2150
+rect 5155 2148 5179 2150
+rect 5235 2148 5259 2150
+rect 5019 2128 5315 2148
+rect 4724 1686 4844 1714
+rect 4618 1663 4674 1672
+rect 4262 1658 4286 1660
+rect 4342 1658 4366 1660
+rect 4422 1658 4446 1660
+rect 4284 1606 4286 1658
+rect 4348 1606 4360 1658
+rect 4422 1606 4424 1658
+rect 4262 1604 4286 1606
+rect 4342 1604 4366 1606
+rect 4422 1604 4446 1606
+rect 4206 1584 4502 1604
+rect 4632 1426 4660 1663
+rect 4620 1420 4672 1426
+rect 4620 1362 4672 1368
+rect 4816 800 4844 1686
+rect 5019 1116 5315 1136
+rect 5075 1114 5099 1116
+rect 5155 1114 5179 1116
+rect 5235 1114 5259 1116
+rect 5097 1062 5099 1114
+rect 5161 1062 5173 1114
+rect 5235 1062 5237 1114
+rect 5075 1060 5099 1062
+rect 5155 1060 5179 1062
+rect 5235 1060 5259 1062
+rect 5019 1040 5315 1060
+rect 5368 800 5396 4014
+rect 5460 2514 5488 4270
+rect 5920 3670 5948 6277
+rect 5908 3664 5960 3670
+rect 5630 3632 5686 3641
+rect 5908 3606 5960 3612
+rect 5630 3567 5686 3576
+rect 5448 2508 5500 2514
+rect 5448 2450 5500 2456
+rect 5644 1902 5672 3567
+rect 5908 3188 5960 3194
+rect 5908 3130 5960 3136
+rect 5632 1896 5684 1902
+rect 5632 1838 5684 1844
+rect 5920 800 5948 3130
+rect 6472 2378 6500 6277
+rect 6460 2372 6512 2378
+rect 6460 2314 6512 2320
+rect 570 0 626 800
+rect 1122 0 1178 800
+rect 1674 0 1730 800
+rect 2226 0 2282 800
+rect 2962 0 3018 800
+rect 3514 0 3570 800
+rect 4066 0 4122 800
+rect 4802 0 4858 800
+rect 5354 0 5410 800
+rect 5906 0 5962 800
+<< via2 >>
+rect 1582 4392 1638 4448
+rect 1768 5466 1824 5468
+rect 1848 5466 1904 5468
+rect 1928 5466 1984 5468
+rect 2008 5466 2064 5468
+rect 1768 5414 1794 5466
+rect 1794 5414 1824 5466
+rect 1848 5414 1858 5466
+rect 1858 5414 1904 5466
+rect 1928 5414 1974 5466
+rect 1974 5414 1984 5466
+rect 2008 5414 2038 5466
+rect 2038 5414 2064 5466
+rect 1768 5412 1824 5414
+rect 1848 5412 1904 5414
+rect 1928 5412 1984 5414
+rect 2008 5412 2064 5414
+rect 1768 4378 1824 4380
+rect 1848 4378 1904 4380
+rect 1928 4378 1984 4380
+rect 2008 4378 2064 4380
+rect 1768 4326 1794 4378
+rect 1794 4326 1824 4378
+rect 1848 4326 1858 4378
+rect 1858 4326 1904 4378
+rect 1928 4326 1974 4378
+rect 1974 4326 1984 4378
+rect 2008 4326 2038 4378
+rect 2038 4326 2064 4378
+rect 1768 4324 1824 4326
+rect 1848 4324 1904 4326
+rect 1928 4324 1984 4326
+rect 2008 4324 2064 4326
+rect 2581 6010 2637 6012
+rect 2661 6010 2717 6012
+rect 2741 6010 2797 6012
+rect 2821 6010 2877 6012
+rect 2581 5958 2607 6010
+rect 2607 5958 2637 6010
+rect 2661 5958 2671 6010
+rect 2671 5958 2717 6010
+rect 2741 5958 2787 6010
+rect 2787 5958 2797 6010
+rect 2821 5958 2851 6010
+rect 2851 5958 2877 6010
+rect 2581 5956 2637 5958
+rect 2661 5956 2717 5958
+rect 2741 5956 2797 5958
+rect 2821 5956 2877 5958
+rect 2581 4922 2637 4924
+rect 2661 4922 2717 4924
+rect 2741 4922 2797 4924
+rect 2821 4922 2877 4924
+rect 2581 4870 2607 4922
+rect 2607 4870 2637 4922
+rect 2661 4870 2671 4922
+rect 2671 4870 2717 4922
+rect 2741 4870 2787 4922
+rect 2787 4870 2797 4922
+rect 2821 4870 2851 4922
+rect 2851 4870 2877 4922
+rect 2581 4868 2637 4870
+rect 2661 4868 2717 4870
+rect 2741 4868 2797 4870
+rect 2821 4868 2877 4870
+rect 3394 5466 3450 5468
+rect 3474 5466 3530 5468
+rect 3554 5466 3610 5468
+rect 3634 5466 3690 5468
+rect 3394 5414 3420 5466
+rect 3420 5414 3450 5466
+rect 3474 5414 3484 5466
+rect 3484 5414 3530 5466
+rect 3554 5414 3600 5466
+rect 3600 5414 3610 5466
+rect 3634 5414 3664 5466
+rect 3664 5414 3690 5466
+rect 3394 5412 3450 5414
+rect 3474 5412 3530 5414
+rect 3554 5412 3610 5414
+rect 3634 5412 3690 5414
+rect 3054 5208 3110 5264
+rect 3238 5208 3294 5264
+rect 3394 4378 3450 4380
+rect 3474 4378 3530 4380
+rect 3554 4378 3610 4380
+rect 3634 4378 3690 4380
+rect 3394 4326 3420 4378
+rect 3420 4326 3450 4378
+rect 3474 4326 3484 4378
+rect 3484 4326 3530 4378
+rect 3554 4326 3600 4378
+rect 3600 4326 3610 4378
+rect 3634 4326 3664 4378
+rect 3664 4326 3690 4378
+rect 3394 4324 3450 4326
+rect 3474 4324 3530 4326
+rect 3554 4324 3610 4326
+rect 3634 4324 3690 4326
+rect 2581 3834 2637 3836
+rect 2661 3834 2717 3836
+rect 2741 3834 2797 3836
+rect 2821 3834 2877 3836
+rect 2581 3782 2607 3834
+rect 2607 3782 2637 3834
+rect 2661 3782 2671 3834
+rect 2671 3782 2717 3834
+rect 2741 3782 2787 3834
+rect 2787 3782 2797 3834
+rect 2821 3782 2851 3834
+rect 2851 3782 2877 3834
+rect 2581 3780 2637 3782
+rect 2661 3780 2717 3782
+rect 2741 3780 2797 3782
+rect 2821 3780 2877 3782
+rect 1768 3290 1824 3292
+rect 1848 3290 1904 3292
+rect 1928 3290 1984 3292
+rect 2008 3290 2064 3292
+rect 1768 3238 1794 3290
+rect 1794 3238 1824 3290
+rect 1848 3238 1858 3290
+rect 1858 3238 1904 3290
+rect 1928 3238 1974 3290
+rect 1974 3238 1984 3290
+rect 2008 3238 2038 3290
+rect 2038 3238 2064 3290
+rect 1768 3236 1824 3238
+rect 1848 3236 1904 3238
+rect 1928 3236 1984 3238
+rect 2008 3236 2064 3238
+rect 1398 2488 1454 2544
+rect 1768 2202 1824 2204
+rect 1848 2202 1904 2204
+rect 1928 2202 1984 2204
+rect 2008 2202 2064 2204
+rect 1768 2150 1794 2202
+rect 1794 2150 1824 2202
+rect 1848 2150 1858 2202
+rect 1858 2150 1904 2202
+rect 1928 2150 1974 2202
+rect 1974 2150 1984 2202
+rect 2008 2150 2038 2202
+rect 2038 2150 2064 2202
+rect 1768 2148 1824 2150
+rect 1848 2148 1904 2150
+rect 1928 2148 1984 2150
+rect 2008 2148 2064 2150
+rect 1768 1114 1824 1116
+rect 1848 1114 1904 1116
+rect 1928 1114 1984 1116
+rect 2008 1114 2064 1116
+rect 1768 1062 1794 1114
+rect 1794 1062 1824 1114
+rect 1848 1062 1858 1114
+rect 1858 1062 1904 1114
+rect 1928 1062 1974 1114
+rect 1974 1062 1984 1114
+rect 2008 1062 2038 1114
+rect 2038 1062 2064 1114
+rect 1768 1060 1824 1062
+rect 1848 1060 1904 1062
+rect 1928 1060 1984 1062
+rect 2008 1060 2064 1062
+rect 2581 2746 2637 2748
+rect 2661 2746 2717 2748
+rect 2741 2746 2797 2748
+rect 2821 2746 2877 2748
+rect 2581 2694 2607 2746
+rect 2607 2694 2637 2746
+rect 2661 2694 2671 2746
+rect 2671 2694 2717 2746
+rect 2741 2694 2787 2746
+rect 2787 2694 2797 2746
+rect 2821 2694 2851 2746
+rect 2851 2694 2877 2746
+rect 2581 2692 2637 2694
+rect 2661 2692 2717 2694
+rect 2741 2692 2797 2694
+rect 2821 2692 2877 2694
+rect 2962 2488 3018 2544
+rect 2581 1658 2637 1660
+rect 2661 1658 2717 1660
+rect 2741 1658 2797 1660
+rect 2821 1658 2877 1660
+rect 2581 1606 2607 1658
+rect 2607 1606 2637 1658
+rect 2661 1606 2671 1658
+rect 2671 1606 2717 1658
+rect 2741 1606 2787 1658
+rect 2787 1606 2797 1658
+rect 2821 1606 2851 1658
+rect 2851 1606 2877 1658
+rect 2581 1604 2637 1606
+rect 2661 1604 2717 1606
+rect 2741 1604 2797 1606
+rect 2821 1604 2877 1606
+rect 3394 3290 3450 3292
+rect 3474 3290 3530 3292
+rect 3554 3290 3610 3292
+rect 3634 3290 3690 3292
+rect 3394 3238 3420 3290
+rect 3420 3238 3450 3290
+rect 3474 3238 3484 3290
+rect 3484 3238 3530 3290
+rect 3554 3238 3600 3290
+rect 3600 3238 3610 3290
+rect 3634 3238 3664 3290
+rect 3664 3238 3690 3290
+rect 3394 3236 3450 3238
+rect 3474 3236 3530 3238
+rect 3554 3236 3610 3238
+rect 3634 3236 3690 3238
+rect 3238 3032 3294 3088
+rect 3394 2202 3450 2204
+rect 3474 2202 3530 2204
+rect 3554 2202 3610 2204
+rect 3634 2202 3690 2204
+rect 3394 2150 3420 2202
+rect 3420 2150 3450 2202
+rect 3474 2150 3484 2202
+rect 3484 2150 3530 2202
+rect 3554 2150 3600 2202
+rect 3600 2150 3610 2202
+rect 3634 2150 3664 2202
+rect 3664 2150 3690 2202
+rect 3394 2148 3450 2150
+rect 3474 2148 3530 2150
+rect 3554 2148 3610 2150
+rect 3634 2148 3690 2150
+rect 4206 6010 4262 6012
+rect 4286 6010 4342 6012
+rect 4366 6010 4422 6012
+rect 4446 6010 4502 6012
+rect 4206 5958 4232 6010
+rect 4232 5958 4262 6010
+rect 4286 5958 4296 6010
+rect 4296 5958 4342 6010
+rect 4366 5958 4412 6010
+rect 4412 5958 4422 6010
+rect 4446 5958 4476 6010
+rect 4476 5958 4502 6010
+rect 4206 5956 4262 5958
+rect 4286 5956 4342 5958
+rect 4366 5956 4422 5958
+rect 4446 5956 4502 5958
+rect 4526 5752 4582 5808
+rect 3146 1808 3202 1864
+rect 3394 1114 3450 1116
+rect 3474 1114 3530 1116
+rect 3554 1114 3610 1116
+rect 3634 1114 3690 1116
+rect 3394 1062 3420 1114
+rect 3420 1062 3450 1114
+rect 3474 1062 3484 1114
+rect 3484 1062 3530 1114
+rect 3554 1062 3600 1114
+rect 3600 1062 3610 1114
+rect 3634 1062 3664 1114
+rect 3664 1062 3690 1114
+rect 3394 1060 3450 1062
+rect 3474 1060 3530 1062
+rect 3554 1060 3610 1062
+rect 3634 1060 3690 1062
+rect 4206 4922 4262 4924
+rect 4286 4922 4342 4924
+rect 4366 4922 4422 4924
+rect 4446 4922 4502 4924
+rect 4206 4870 4232 4922
+rect 4232 4870 4262 4922
+rect 4286 4870 4296 4922
+rect 4296 4870 4342 4922
+rect 4366 4870 4412 4922
+rect 4412 4870 4422 4922
+rect 4446 4870 4476 4922
+rect 4476 4870 4502 4922
+rect 4206 4868 4262 4870
+rect 4286 4868 4342 4870
+rect 4366 4868 4422 4870
+rect 4446 4868 4502 4870
+rect 4066 4528 4122 4584
+rect 3882 856 3938 912
+rect 4206 3834 4262 3836
+rect 4286 3834 4342 3836
+rect 4366 3834 4422 3836
+rect 4446 3834 4502 3836
+rect 4206 3782 4232 3834
+rect 4232 3782 4262 3834
+rect 4286 3782 4296 3834
+rect 4296 3782 4342 3834
+rect 4366 3782 4412 3834
+rect 4412 3782 4422 3834
+rect 4446 3782 4476 3834
+rect 4476 3782 4502 3834
+rect 4206 3780 4262 3782
+rect 4286 3780 4342 3782
+rect 4366 3780 4422 3782
+rect 4446 3780 4502 3782
+rect 5019 5466 5075 5468
+rect 5099 5466 5155 5468
+rect 5179 5466 5235 5468
+rect 5259 5466 5315 5468
+rect 5019 5414 5045 5466
+rect 5045 5414 5075 5466
+rect 5099 5414 5109 5466
+rect 5109 5414 5155 5466
+rect 5179 5414 5225 5466
+rect 5225 5414 5235 5466
+rect 5259 5414 5289 5466
+rect 5289 5414 5315 5466
+rect 5019 5412 5075 5414
+rect 5099 5412 5155 5414
+rect 5179 5412 5235 5414
+rect 5259 5412 5315 5414
+rect 5019 4378 5075 4380
+rect 5099 4378 5155 4380
+rect 5179 4378 5235 4380
+rect 5259 4378 5315 4380
+rect 5019 4326 5045 4378
+rect 5045 4326 5075 4378
+rect 5099 4326 5109 4378
+rect 5109 4326 5155 4378
+rect 5179 4326 5225 4378
+rect 5225 4326 5235 4378
+rect 5259 4326 5289 4378
+rect 5289 4326 5315 4378
+rect 5019 4324 5075 4326
+rect 5099 4324 5155 4326
+rect 5179 4324 5235 4326
+rect 5259 4324 5315 4326
+rect 4206 2746 4262 2748
+rect 4286 2746 4342 2748
+rect 4366 2746 4422 2748
+rect 4446 2746 4502 2748
+rect 4206 2694 4232 2746
+rect 4232 2694 4262 2746
+rect 4286 2694 4296 2746
+rect 4296 2694 4342 2746
+rect 4366 2694 4412 2746
+rect 4412 2694 4422 2746
+rect 4446 2694 4476 2746
+rect 4476 2694 4502 2746
+rect 4206 2692 4262 2694
+rect 4286 2692 4342 2694
+rect 4366 2692 4422 2694
+rect 4446 2692 4502 2694
+rect 4618 1672 4674 1728
+rect 5019 3290 5075 3292
+rect 5099 3290 5155 3292
+rect 5179 3290 5235 3292
+rect 5259 3290 5315 3292
+rect 5019 3238 5045 3290
+rect 5045 3238 5075 3290
+rect 5099 3238 5109 3290
+rect 5109 3238 5155 3290
+rect 5179 3238 5225 3290
+rect 5225 3238 5235 3290
+rect 5259 3238 5289 3290
+rect 5289 3238 5315 3290
+rect 5019 3236 5075 3238
+rect 5099 3236 5155 3238
+rect 5179 3236 5235 3238
+rect 5259 3236 5315 3238
+rect 5019 2202 5075 2204
+rect 5099 2202 5155 2204
+rect 5179 2202 5235 2204
+rect 5259 2202 5315 2204
+rect 5019 2150 5045 2202
+rect 5045 2150 5075 2202
+rect 5099 2150 5109 2202
+rect 5109 2150 5155 2202
+rect 5179 2150 5225 2202
+rect 5225 2150 5235 2202
+rect 5259 2150 5289 2202
+rect 5289 2150 5315 2202
+rect 5019 2148 5075 2150
+rect 5099 2148 5155 2150
+rect 5179 2148 5235 2150
+rect 5259 2148 5315 2150
+rect 4206 1658 4262 1660
+rect 4286 1658 4342 1660
+rect 4366 1658 4422 1660
+rect 4446 1658 4502 1660
+rect 4206 1606 4232 1658
+rect 4232 1606 4262 1658
+rect 4286 1606 4296 1658
+rect 4296 1606 4342 1658
+rect 4366 1606 4412 1658
+rect 4412 1606 4422 1658
+rect 4446 1606 4476 1658
+rect 4476 1606 4502 1658
+rect 4206 1604 4262 1606
+rect 4286 1604 4342 1606
+rect 4366 1604 4422 1606
+rect 4446 1604 4502 1606
+rect 5019 1114 5075 1116
+rect 5099 1114 5155 1116
+rect 5179 1114 5235 1116
+rect 5259 1114 5315 1116
+rect 5019 1062 5045 1114
+rect 5045 1062 5075 1114
+rect 5099 1062 5109 1114
+rect 5109 1062 5155 1114
+rect 5179 1062 5225 1114
+rect 5225 1062 5235 1114
+rect 5259 1062 5289 1114
+rect 5289 1062 5315 1114
+rect 5019 1060 5075 1062
+rect 5099 1060 5155 1062
+rect 5179 1060 5235 1062
+rect 5259 1060 5315 1062
+rect 5630 3576 5686 3632
+<< metal3 >>
+rect 0 6082 800 6112
+rect 0 6022 2330 6082
+rect 0 5992 800 6022
+rect 2270 5810 2330 6022
+rect 2569 6016 2889 6017
+rect 2569 5952 2577 6016
+rect 2641 5952 2657 6016
+rect 2721 5952 2737 6016
+rect 2801 5952 2817 6016
+rect 2881 5952 2889 6016
+rect 2569 5951 2889 5952
+rect 4194 6016 4514 6017
+rect 4194 5952 4202 6016
+rect 4266 5952 4282 6016
+rect 4346 5952 4362 6016
+rect 4426 5952 4442 6016
+rect 4506 5952 4514 6016
+rect 4194 5951 4514 5952
+rect 4521 5810 4587 5813
+rect 2270 5808 4587 5810
+rect 2270 5752 4526 5808
+rect 4582 5752 4587 5808
+rect 2270 5750 4587 5752
+rect 4521 5747 4587 5750
+rect 1756 5472 2076 5473
+rect 1756 5408 1764 5472
+rect 1828 5408 1844 5472
+rect 1908 5408 1924 5472
+rect 1988 5408 2004 5472
+rect 2068 5408 2076 5472
+rect 1756 5407 2076 5408
+rect 3382 5472 3702 5473
+rect 3382 5408 3390 5472
+rect 3454 5408 3470 5472
+rect 3534 5408 3550 5472
+rect 3614 5408 3630 5472
+rect 3694 5408 3702 5472
+rect 3382 5407 3702 5408
+rect 5007 5472 5327 5473
+rect 5007 5408 5015 5472
+rect 5079 5408 5095 5472
+rect 5159 5408 5175 5472
+rect 5239 5408 5255 5472
+rect 5319 5408 5327 5472
+rect 5007 5407 5327 5408
+rect 0 5266 800 5296
+rect 3049 5266 3115 5269
+rect 0 5264 3115 5266
+rect 0 5208 3054 5264
+rect 3110 5208 3115 5264
+rect 0 5206 3115 5208
+rect 0 5176 800 5206
+rect 3049 5203 3115 5206
+rect 3233 5266 3299 5269
+rect 6309 5266 7109 5296
+rect 3233 5264 7109 5266
+rect 3233 5208 3238 5264
+rect 3294 5208 7109 5264
+rect 3233 5206 7109 5208
+rect 3233 5203 3299 5206
+rect 6309 5176 7109 5206
+rect 2569 4928 2889 4929
+rect 2569 4864 2577 4928
+rect 2641 4864 2657 4928
+rect 2721 4864 2737 4928
+rect 2801 4864 2817 4928
+rect 2881 4864 2889 4928
+rect 2569 4863 2889 4864
+rect 4194 4928 4514 4929
+rect 4194 4864 4202 4928
+rect 4266 4864 4282 4928
+rect 4346 4864 4362 4928
+rect 4426 4864 4442 4928
+rect 4506 4864 4514 4928
+rect 4194 4863 4514 4864
+rect 4061 4586 4127 4589
+rect 4061 4584 5458 4586
+rect 4061 4528 4066 4584
+rect 4122 4528 5458 4584
+rect 4061 4526 5458 4528
+rect 4061 4523 4127 4526
+rect 0 4450 800 4480
+rect 1577 4450 1643 4453
+rect 0 4448 1643 4450
+rect 0 4392 1582 4448
+rect 1638 4392 1643 4448
+rect 0 4390 1643 4392
+rect 5398 4450 5458 4526
+rect 6309 4450 7109 4480
+rect 5398 4390 7109 4450
+rect 0 4360 800 4390
+rect 1577 4387 1643 4390
+rect 1756 4384 2076 4385
+rect 1756 4320 1764 4384
+rect 1828 4320 1844 4384
+rect 1908 4320 1924 4384
+rect 1988 4320 2004 4384
+rect 2068 4320 2076 4384
+rect 1756 4319 2076 4320
+rect 3382 4384 3702 4385
+rect 3382 4320 3390 4384
+rect 3454 4320 3470 4384
+rect 3534 4320 3550 4384
+rect 3614 4320 3630 4384
+rect 3694 4320 3702 4384
+rect 3382 4319 3702 4320
+rect 5007 4384 5327 4385
+rect 5007 4320 5015 4384
+rect 5079 4320 5095 4384
+rect 5159 4320 5175 4384
+rect 5239 4320 5255 4384
+rect 5319 4320 5327 4384
+rect 6309 4360 7109 4390
+rect 5007 4319 5327 4320
+rect 2569 3840 2889 3841
+rect 2569 3776 2577 3840
+rect 2641 3776 2657 3840
+rect 2721 3776 2737 3840
+rect 2801 3776 2817 3840
+rect 2881 3776 2889 3840
+rect 2569 3775 2889 3776
+rect 4194 3840 4514 3841
+rect 4194 3776 4202 3840
+rect 4266 3776 4282 3840
+rect 4346 3776 4362 3840
+rect 4426 3776 4442 3840
+rect 4506 3776 4514 3840
+rect 4194 3775 4514 3776
+rect 5625 3634 5691 3637
+rect 6309 3634 7109 3664
+rect 5625 3632 7109 3634
+rect 5625 3576 5630 3632
+rect 5686 3576 7109 3632
+rect 5625 3574 7109 3576
+rect 5625 3571 5691 3574
+rect 6309 3544 7109 3574
+rect 0 3362 800 3392
+rect 0 3302 1594 3362
+rect 0 3272 800 3302
+rect 1534 3090 1594 3302
+rect 1756 3296 2076 3297
+rect 1756 3232 1764 3296
+rect 1828 3232 1844 3296
+rect 1908 3232 1924 3296
+rect 1988 3232 2004 3296
+rect 2068 3232 2076 3296
+rect 1756 3231 2076 3232
+rect 3382 3296 3702 3297
+rect 3382 3232 3390 3296
+rect 3454 3232 3470 3296
+rect 3534 3232 3550 3296
+rect 3614 3232 3630 3296
+rect 3694 3232 3702 3296
+rect 3382 3231 3702 3232
+rect 5007 3296 5327 3297
+rect 5007 3232 5015 3296
+rect 5079 3232 5095 3296
+rect 5159 3232 5175 3296
+rect 5239 3232 5255 3296
+rect 5319 3232 5327 3296
+rect 5007 3231 5327 3232
+rect 3233 3090 3299 3093
+rect 1534 3088 3299 3090
+rect 1534 3032 3238 3088
+rect 3294 3032 3299 3088
+rect 1534 3030 3299 3032
+rect 3233 3027 3299 3030
+rect 2569 2752 2889 2753
+rect 2569 2688 2577 2752
+rect 2641 2688 2657 2752
+rect 2721 2688 2737 2752
+rect 2801 2688 2817 2752
+rect 2881 2688 2889 2752
+rect 2569 2687 2889 2688
+rect 4194 2752 4514 2753
+rect 4194 2688 4202 2752
+rect 4266 2688 4282 2752
+rect 4346 2688 4362 2752
+rect 4426 2688 4442 2752
+rect 4506 2688 4514 2752
+rect 4194 2687 4514 2688
+rect 0 2546 800 2576
+rect 1393 2546 1459 2549
+rect 0 2544 1459 2546
+rect 0 2488 1398 2544
+rect 1454 2488 1459 2544
+rect 0 2486 1459 2488
+rect 0 2456 800 2486
+rect 1393 2483 1459 2486
+rect 2957 2546 3023 2549
+rect 6309 2546 7109 2576
+rect 2957 2544 7109 2546
+rect 2957 2488 2962 2544
+rect 3018 2488 7109 2544
+rect 2957 2486 7109 2488
+rect 2957 2483 3023 2486
+rect 6309 2456 7109 2486
+rect 1756 2208 2076 2209
+rect 1756 2144 1764 2208
+rect 1828 2144 1844 2208
+rect 1908 2144 1924 2208
+rect 1988 2144 2004 2208
+rect 2068 2144 2076 2208
+rect 1756 2143 2076 2144
+rect 3382 2208 3702 2209
+rect 3382 2144 3390 2208
+rect 3454 2144 3470 2208
+rect 3534 2144 3550 2208
+rect 3614 2144 3630 2208
+rect 3694 2144 3702 2208
+rect 3382 2143 3702 2144
+rect 5007 2208 5327 2209
+rect 5007 2144 5015 2208
+rect 5079 2144 5095 2208
+rect 5159 2144 5175 2208
+rect 5239 2144 5255 2208
+rect 5319 2144 5327 2208
+rect 5007 2143 5327 2144
+rect 3141 1866 3207 1869
+rect 1534 1864 3207 1866
+rect 1534 1808 3146 1864
+rect 3202 1808 3207 1864
+rect 1534 1806 3207 1808
+rect 0 1730 800 1760
+rect 1534 1730 1594 1806
+rect 3141 1803 3207 1806
+rect 0 1670 1594 1730
+rect 4613 1730 4679 1733
+rect 6309 1730 7109 1760
+rect 4613 1728 7109 1730
+rect 4613 1672 4618 1728
+rect 4674 1672 7109 1728
+rect 4613 1670 7109 1672
+rect 0 1640 800 1670
+rect 4613 1667 4679 1670
+rect 2569 1664 2889 1665
+rect 2569 1600 2577 1664
+rect 2641 1600 2657 1664
+rect 2721 1600 2737 1664
+rect 2801 1600 2817 1664
+rect 2881 1600 2889 1664
+rect 2569 1599 2889 1600
+rect 4194 1664 4514 1665
+rect 4194 1600 4202 1664
+rect 4266 1600 4282 1664
+rect 4346 1600 4362 1664
+rect 4426 1600 4442 1664
+rect 4506 1600 4514 1664
+rect 6309 1640 7109 1670
+rect 4194 1599 4514 1600
+rect 1756 1120 2076 1121
+rect 1756 1056 1764 1120
+rect 1828 1056 1844 1120
+rect 1908 1056 1924 1120
+rect 1988 1056 2004 1120
+rect 2068 1056 2076 1120
+rect 1756 1055 2076 1056
+rect 3382 1120 3702 1121
+rect 3382 1056 3390 1120
+rect 3454 1056 3470 1120
+rect 3534 1056 3550 1120
+rect 3614 1056 3630 1120
+rect 3694 1056 3702 1120
+rect 3382 1055 3702 1056
+rect 5007 1120 5327 1121
+rect 5007 1056 5015 1120
+rect 5079 1056 5095 1120
+rect 5159 1056 5175 1120
+rect 5239 1056 5255 1120
+rect 5319 1056 5327 1120
+rect 5007 1055 5327 1056
+rect 3877 914 3943 917
+rect 6309 914 7109 944
+rect 3877 912 7109 914
+rect 3877 856 3882 912
+rect 3938 856 7109 912
+rect 3877 854 7109 856
+rect 3877 851 3943 854
+rect 6309 824 7109 854
+<< via3 >>
+rect 2577 6012 2641 6016
+rect 2577 5956 2581 6012
+rect 2581 5956 2637 6012
+rect 2637 5956 2641 6012
+rect 2577 5952 2641 5956
+rect 2657 6012 2721 6016
+rect 2657 5956 2661 6012
+rect 2661 5956 2717 6012
+rect 2717 5956 2721 6012
+rect 2657 5952 2721 5956
+rect 2737 6012 2801 6016
+rect 2737 5956 2741 6012
+rect 2741 5956 2797 6012
+rect 2797 5956 2801 6012
+rect 2737 5952 2801 5956
+rect 2817 6012 2881 6016
+rect 2817 5956 2821 6012
+rect 2821 5956 2877 6012
+rect 2877 5956 2881 6012
+rect 2817 5952 2881 5956
+rect 4202 6012 4266 6016
+rect 4202 5956 4206 6012
+rect 4206 5956 4262 6012
+rect 4262 5956 4266 6012
+rect 4202 5952 4266 5956
+rect 4282 6012 4346 6016
+rect 4282 5956 4286 6012
+rect 4286 5956 4342 6012
+rect 4342 5956 4346 6012
+rect 4282 5952 4346 5956
+rect 4362 6012 4426 6016
+rect 4362 5956 4366 6012
+rect 4366 5956 4422 6012
+rect 4422 5956 4426 6012
+rect 4362 5952 4426 5956
+rect 4442 6012 4506 6016
+rect 4442 5956 4446 6012
+rect 4446 5956 4502 6012
+rect 4502 5956 4506 6012
+rect 4442 5952 4506 5956
+rect 1764 5468 1828 5472
+rect 1764 5412 1768 5468
+rect 1768 5412 1824 5468
+rect 1824 5412 1828 5468
+rect 1764 5408 1828 5412
+rect 1844 5468 1908 5472
+rect 1844 5412 1848 5468
+rect 1848 5412 1904 5468
+rect 1904 5412 1908 5468
+rect 1844 5408 1908 5412
+rect 1924 5468 1988 5472
+rect 1924 5412 1928 5468
+rect 1928 5412 1984 5468
+rect 1984 5412 1988 5468
+rect 1924 5408 1988 5412
+rect 2004 5468 2068 5472
+rect 2004 5412 2008 5468
+rect 2008 5412 2064 5468
+rect 2064 5412 2068 5468
+rect 2004 5408 2068 5412
+rect 3390 5468 3454 5472
+rect 3390 5412 3394 5468
+rect 3394 5412 3450 5468
+rect 3450 5412 3454 5468
+rect 3390 5408 3454 5412
+rect 3470 5468 3534 5472
+rect 3470 5412 3474 5468
+rect 3474 5412 3530 5468
+rect 3530 5412 3534 5468
+rect 3470 5408 3534 5412
+rect 3550 5468 3614 5472
+rect 3550 5412 3554 5468
+rect 3554 5412 3610 5468
+rect 3610 5412 3614 5468
+rect 3550 5408 3614 5412
+rect 3630 5468 3694 5472
+rect 3630 5412 3634 5468
+rect 3634 5412 3690 5468
+rect 3690 5412 3694 5468
+rect 3630 5408 3694 5412
+rect 5015 5468 5079 5472
+rect 5015 5412 5019 5468
+rect 5019 5412 5075 5468
+rect 5075 5412 5079 5468
+rect 5015 5408 5079 5412
+rect 5095 5468 5159 5472
+rect 5095 5412 5099 5468
+rect 5099 5412 5155 5468
+rect 5155 5412 5159 5468
+rect 5095 5408 5159 5412
+rect 5175 5468 5239 5472
+rect 5175 5412 5179 5468
+rect 5179 5412 5235 5468
+rect 5235 5412 5239 5468
+rect 5175 5408 5239 5412
+rect 5255 5468 5319 5472
+rect 5255 5412 5259 5468
+rect 5259 5412 5315 5468
+rect 5315 5412 5319 5468
+rect 5255 5408 5319 5412
+rect 2577 4924 2641 4928
+rect 2577 4868 2581 4924
+rect 2581 4868 2637 4924
+rect 2637 4868 2641 4924
+rect 2577 4864 2641 4868
+rect 2657 4924 2721 4928
+rect 2657 4868 2661 4924
+rect 2661 4868 2717 4924
+rect 2717 4868 2721 4924
+rect 2657 4864 2721 4868
+rect 2737 4924 2801 4928
+rect 2737 4868 2741 4924
+rect 2741 4868 2797 4924
+rect 2797 4868 2801 4924
+rect 2737 4864 2801 4868
+rect 2817 4924 2881 4928
+rect 2817 4868 2821 4924
+rect 2821 4868 2877 4924
+rect 2877 4868 2881 4924
+rect 2817 4864 2881 4868
+rect 4202 4924 4266 4928
+rect 4202 4868 4206 4924
+rect 4206 4868 4262 4924
+rect 4262 4868 4266 4924
+rect 4202 4864 4266 4868
+rect 4282 4924 4346 4928
+rect 4282 4868 4286 4924
+rect 4286 4868 4342 4924
+rect 4342 4868 4346 4924
+rect 4282 4864 4346 4868
+rect 4362 4924 4426 4928
+rect 4362 4868 4366 4924
+rect 4366 4868 4422 4924
+rect 4422 4868 4426 4924
+rect 4362 4864 4426 4868
+rect 4442 4924 4506 4928
+rect 4442 4868 4446 4924
+rect 4446 4868 4502 4924
+rect 4502 4868 4506 4924
+rect 4442 4864 4506 4868
+rect 1764 4380 1828 4384
+rect 1764 4324 1768 4380
+rect 1768 4324 1824 4380
+rect 1824 4324 1828 4380
+rect 1764 4320 1828 4324
+rect 1844 4380 1908 4384
+rect 1844 4324 1848 4380
+rect 1848 4324 1904 4380
+rect 1904 4324 1908 4380
+rect 1844 4320 1908 4324
+rect 1924 4380 1988 4384
+rect 1924 4324 1928 4380
+rect 1928 4324 1984 4380
+rect 1984 4324 1988 4380
+rect 1924 4320 1988 4324
+rect 2004 4380 2068 4384
+rect 2004 4324 2008 4380
+rect 2008 4324 2064 4380
+rect 2064 4324 2068 4380
+rect 2004 4320 2068 4324
+rect 3390 4380 3454 4384
+rect 3390 4324 3394 4380
+rect 3394 4324 3450 4380
+rect 3450 4324 3454 4380
+rect 3390 4320 3454 4324
+rect 3470 4380 3534 4384
+rect 3470 4324 3474 4380
+rect 3474 4324 3530 4380
+rect 3530 4324 3534 4380
+rect 3470 4320 3534 4324
+rect 3550 4380 3614 4384
+rect 3550 4324 3554 4380
+rect 3554 4324 3610 4380
+rect 3610 4324 3614 4380
+rect 3550 4320 3614 4324
+rect 3630 4380 3694 4384
+rect 3630 4324 3634 4380
+rect 3634 4324 3690 4380
+rect 3690 4324 3694 4380
+rect 3630 4320 3694 4324
+rect 5015 4380 5079 4384
+rect 5015 4324 5019 4380
+rect 5019 4324 5075 4380
+rect 5075 4324 5079 4380
+rect 5015 4320 5079 4324
+rect 5095 4380 5159 4384
+rect 5095 4324 5099 4380
+rect 5099 4324 5155 4380
+rect 5155 4324 5159 4380
+rect 5095 4320 5159 4324
+rect 5175 4380 5239 4384
+rect 5175 4324 5179 4380
+rect 5179 4324 5235 4380
+rect 5235 4324 5239 4380
+rect 5175 4320 5239 4324
+rect 5255 4380 5319 4384
+rect 5255 4324 5259 4380
+rect 5259 4324 5315 4380
+rect 5315 4324 5319 4380
+rect 5255 4320 5319 4324
+rect 2577 3836 2641 3840
+rect 2577 3780 2581 3836
+rect 2581 3780 2637 3836
+rect 2637 3780 2641 3836
+rect 2577 3776 2641 3780
+rect 2657 3836 2721 3840
+rect 2657 3780 2661 3836
+rect 2661 3780 2717 3836
+rect 2717 3780 2721 3836
+rect 2657 3776 2721 3780
+rect 2737 3836 2801 3840
+rect 2737 3780 2741 3836
+rect 2741 3780 2797 3836
+rect 2797 3780 2801 3836
+rect 2737 3776 2801 3780
+rect 2817 3836 2881 3840
+rect 2817 3780 2821 3836
+rect 2821 3780 2877 3836
+rect 2877 3780 2881 3836
+rect 2817 3776 2881 3780
+rect 4202 3836 4266 3840
+rect 4202 3780 4206 3836
+rect 4206 3780 4262 3836
+rect 4262 3780 4266 3836
+rect 4202 3776 4266 3780
+rect 4282 3836 4346 3840
+rect 4282 3780 4286 3836
+rect 4286 3780 4342 3836
+rect 4342 3780 4346 3836
+rect 4282 3776 4346 3780
+rect 4362 3836 4426 3840
+rect 4362 3780 4366 3836
+rect 4366 3780 4422 3836
+rect 4422 3780 4426 3836
+rect 4362 3776 4426 3780
+rect 4442 3836 4506 3840
+rect 4442 3780 4446 3836
+rect 4446 3780 4502 3836
+rect 4502 3780 4506 3836
+rect 4442 3776 4506 3780
+rect 1764 3292 1828 3296
+rect 1764 3236 1768 3292
+rect 1768 3236 1824 3292
+rect 1824 3236 1828 3292
+rect 1764 3232 1828 3236
+rect 1844 3292 1908 3296
+rect 1844 3236 1848 3292
+rect 1848 3236 1904 3292
+rect 1904 3236 1908 3292
+rect 1844 3232 1908 3236
+rect 1924 3292 1988 3296
+rect 1924 3236 1928 3292
+rect 1928 3236 1984 3292
+rect 1984 3236 1988 3292
+rect 1924 3232 1988 3236
+rect 2004 3292 2068 3296
+rect 2004 3236 2008 3292
+rect 2008 3236 2064 3292
+rect 2064 3236 2068 3292
+rect 2004 3232 2068 3236
+rect 3390 3292 3454 3296
+rect 3390 3236 3394 3292
+rect 3394 3236 3450 3292
+rect 3450 3236 3454 3292
+rect 3390 3232 3454 3236
+rect 3470 3292 3534 3296
+rect 3470 3236 3474 3292
+rect 3474 3236 3530 3292
+rect 3530 3236 3534 3292
+rect 3470 3232 3534 3236
+rect 3550 3292 3614 3296
+rect 3550 3236 3554 3292
+rect 3554 3236 3610 3292
+rect 3610 3236 3614 3292
+rect 3550 3232 3614 3236
+rect 3630 3292 3694 3296
+rect 3630 3236 3634 3292
+rect 3634 3236 3690 3292
+rect 3690 3236 3694 3292
+rect 3630 3232 3694 3236
+rect 5015 3292 5079 3296
+rect 5015 3236 5019 3292
+rect 5019 3236 5075 3292
+rect 5075 3236 5079 3292
+rect 5015 3232 5079 3236
+rect 5095 3292 5159 3296
+rect 5095 3236 5099 3292
+rect 5099 3236 5155 3292
+rect 5155 3236 5159 3292
+rect 5095 3232 5159 3236
+rect 5175 3292 5239 3296
+rect 5175 3236 5179 3292
+rect 5179 3236 5235 3292
+rect 5235 3236 5239 3292
+rect 5175 3232 5239 3236
+rect 5255 3292 5319 3296
+rect 5255 3236 5259 3292
+rect 5259 3236 5315 3292
+rect 5315 3236 5319 3292
+rect 5255 3232 5319 3236
+rect 2577 2748 2641 2752
+rect 2577 2692 2581 2748
+rect 2581 2692 2637 2748
+rect 2637 2692 2641 2748
+rect 2577 2688 2641 2692
+rect 2657 2748 2721 2752
+rect 2657 2692 2661 2748
+rect 2661 2692 2717 2748
+rect 2717 2692 2721 2748
+rect 2657 2688 2721 2692
+rect 2737 2748 2801 2752
+rect 2737 2692 2741 2748
+rect 2741 2692 2797 2748
+rect 2797 2692 2801 2748
+rect 2737 2688 2801 2692
+rect 2817 2748 2881 2752
+rect 2817 2692 2821 2748
+rect 2821 2692 2877 2748
+rect 2877 2692 2881 2748
+rect 2817 2688 2881 2692
+rect 4202 2748 4266 2752
+rect 4202 2692 4206 2748
+rect 4206 2692 4262 2748
+rect 4262 2692 4266 2748
+rect 4202 2688 4266 2692
+rect 4282 2748 4346 2752
+rect 4282 2692 4286 2748
+rect 4286 2692 4342 2748
+rect 4342 2692 4346 2748
+rect 4282 2688 4346 2692
+rect 4362 2748 4426 2752
+rect 4362 2692 4366 2748
+rect 4366 2692 4422 2748
+rect 4422 2692 4426 2748
+rect 4362 2688 4426 2692
+rect 4442 2748 4506 2752
+rect 4442 2692 4446 2748
+rect 4446 2692 4502 2748
+rect 4502 2692 4506 2748
+rect 4442 2688 4506 2692
+rect 1764 2204 1828 2208
+rect 1764 2148 1768 2204
+rect 1768 2148 1824 2204
+rect 1824 2148 1828 2204
+rect 1764 2144 1828 2148
+rect 1844 2204 1908 2208
+rect 1844 2148 1848 2204
+rect 1848 2148 1904 2204
+rect 1904 2148 1908 2204
+rect 1844 2144 1908 2148
+rect 1924 2204 1988 2208
+rect 1924 2148 1928 2204
+rect 1928 2148 1984 2204
+rect 1984 2148 1988 2204
+rect 1924 2144 1988 2148
+rect 2004 2204 2068 2208
+rect 2004 2148 2008 2204
+rect 2008 2148 2064 2204
+rect 2064 2148 2068 2204
+rect 2004 2144 2068 2148
+rect 3390 2204 3454 2208
+rect 3390 2148 3394 2204
+rect 3394 2148 3450 2204
+rect 3450 2148 3454 2204
+rect 3390 2144 3454 2148
+rect 3470 2204 3534 2208
+rect 3470 2148 3474 2204
+rect 3474 2148 3530 2204
+rect 3530 2148 3534 2204
+rect 3470 2144 3534 2148
+rect 3550 2204 3614 2208
+rect 3550 2148 3554 2204
+rect 3554 2148 3610 2204
+rect 3610 2148 3614 2204
+rect 3550 2144 3614 2148
+rect 3630 2204 3694 2208
+rect 3630 2148 3634 2204
+rect 3634 2148 3690 2204
+rect 3690 2148 3694 2204
+rect 3630 2144 3694 2148
+rect 5015 2204 5079 2208
+rect 5015 2148 5019 2204
+rect 5019 2148 5075 2204
+rect 5075 2148 5079 2204
+rect 5015 2144 5079 2148
+rect 5095 2204 5159 2208
+rect 5095 2148 5099 2204
+rect 5099 2148 5155 2204
+rect 5155 2148 5159 2204
+rect 5095 2144 5159 2148
+rect 5175 2204 5239 2208
+rect 5175 2148 5179 2204
+rect 5179 2148 5235 2204
+rect 5235 2148 5239 2204
+rect 5175 2144 5239 2148
+rect 5255 2204 5319 2208
+rect 5255 2148 5259 2204
+rect 5259 2148 5315 2204
+rect 5315 2148 5319 2204
+rect 5255 2144 5319 2148
+rect 2577 1660 2641 1664
+rect 2577 1604 2581 1660
+rect 2581 1604 2637 1660
+rect 2637 1604 2641 1660
+rect 2577 1600 2641 1604
+rect 2657 1660 2721 1664
+rect 2657 1604 2661 1660
+rect 2661 1604 2717 1660
+rect 2717 1604 2721 1660
+rect 2657 1600 2721 1604
+rect 2737 1660 2801 1664
+rect 2737 1604 2741 1660
+rect 2741 1604 2797 1660
+rect 2797 1604 2801 1660
+rect 2737 1600 2801 1604
+rect 2817 1660 2881 1664
+rect 2817 1604 2821 1660
+rect 2821 1604 2877 1660
+rect 2877 1604 2881 1660
+rect 2817 1600 2881 1604
+rect 4202 1660 4266 1664
+rect 4202 1604 4206 1660
+rect 4206 1604 4262 1660
+rect 4262 1604 4266 1660
+rect 4202 1600 4266 1604
+rect 4282 1660 4346 1664
+rect 4282 1604 4286 1660
+rect 4286 1604 4342 1660
+rect 4342 1604 4346 1660
+rect 4282 1600 4346 1604
+rect 4362 1660 4426 1664
+rect 4362 1604 4366 1660
+rect 4366 1604 4422 1660
+rect 4422 1604 4426 1660
+rect 4362 1600 4426 1604
+rect 4442 1660 4506 1664
+rect 4442 1604 4446 1660
+rect 4446 1604 4502 1660
+rect 4502 1604 4506 1660
+rect 4442 1600 4506 1604
+rect 1764 1116 1828 1120
+rect 1764 1060 1768 1116
+rect 1768 1060 1824 1116
+rect 1824 1060 1828 1116
+rect 1764 1056 1828 1060
+rect 1844 1116 1908 1120
+rect 1844 1060 1848 1116
+rect 1848 1060 1904 1116
+rect 1904 1060 1908 1116
+rect 1844 1056 1908 1060
+rect 1924 1116 1988 1120
+rect 1924 1060 1928 1116
+rect 1928 1060 1984 1116
+rect 1984 1060 1988 1116
+rect 1924 1056 1988 1060
+rect 2004 1116 2068 1120
+rect 2004 1060 2008 1116
+rect 2008 1060 2064 1116
+rect 2064 1060 2068 1116
+rect 2004 1056 2068 1060
+rect 3390 1116 3454 1120
+rect 3390 1060 3394 1116
+rect 3394 1060 3450 1116
+rect 3450 1060 3454 1116
+rect 3390 1056 3454 1060
+rect 3470 1116 3534 1120
+rect 3470 1060 3474 1116
+rect 3474 1060 3530 1116
+rect 3530 1060 3534 1116
+rect 3470 1056 3534 1060
+rect 3550 1116 3614 1120
+rect 3550 1060 3554 1116
+rect 3554 1060 3610 1116
+rect 3610 1060 3614 1116
+rect 3550 1056 3614 1060
+rect 3630 1116 3694 1120
+rect 3630 1060 3634 1116
+rect 3634 1060 3690 1116
+rect 3690 1060 3694 1116
+rect 3630 1056 3694 1060
+rect 5015 1116 5079 1120
+rect 5015 1060 5019 1116
+rect 5019 1060 5075 1116
+rect 5075 1060 5079 1116
+rect 5015 1056 5079 1060
+rect 5095 1116 5159 1120
+rect 5095 1060 5099 1116
+rect 5099 1060 5155 1116
+rect 5155 1060 5159 1116
+rect 5095 1056 5159 1060
+rect 5175 1116 5239 1120
+rect 5175 1060 5179 1116
+rect 5179 1060 5235 1116
+rect 5235 1060 5239 1116
+rect 5175 1056 5239 1060
+rect 5255 1116 5319 1120
+rect 5255 1060 5259 1116
+rect 5259 1060 5315 1116
+rect 5315 1060 5319 1116
+rect 5255 1056 5319 1060
+<< metal4 >>
+rect 1756 5472 2076 6032
+rect 1756 5408 1764 5472
+rect 1828 5408 1844 5472
+rect 1908 5408 1924 5472
+rect 1988 5408 2004 5472
+rect 2068 5408 2076 5472
+rect 1756 5238 2076 5408
+rect 1756 5002 1798 5238
+rect 2034 5002 2076 5238
+rect 1756 4384 2076 5002
+rect 1756 4320 1764 4384
+rect 1828 4320 1844 4384
+rect 1908 4320 1924 4384
+rect 1988 4320 2004 4384
+rect 2068 4320 2076 4384
+rect 1756 3606 2076 4320
+rect 1756 3370 1798 3606
+rect 2034 3370 2076 3606
+rect 1756 3296 2076 3370
+rect 1756 3232 1764 3296
+rect 1828 3232 1844 3296
+rect 1908 3232 1924 3296
+rect 1988 3232 2004 3296
+rect 2068 3232 2076 3296
+rect 1756 2208 2076 3232
+rect 1756 2144 1764 2208
+rect 1828 2144 1844 2208
+rect 1908 2144 1924 2208
+rect 1988 2144 2004 2208
+rect 2068 2144 2076 2208
+rect 1756 1974 2076 2144
+rect 1756 1738 1798 1974
+rect 2034 1738 2076 1974
+rect 1756 1120 2076 1738
+rect 1756 1056 1764 1120
+rect 1828 1056 1844 1120
+rect 1908 1056 1924 1120
+rect 1988 1056 2004 1120
+rect 2068 1056 2076 1120
+rect 1756 1040 2076 1056
+rect 2569 6016 2889 6032
+rect 2569 5952 2577 6016
+rect 2641 5952 2657 6016
+rect 2721 5952 2737 6016
+rect 2801 5952 2817 6016
+rect 2881 5952 2889 6016
+rect 2569 4928 2889 5952
+rect 2569 4864 2577 4928
+rect 2641 4864 2657 4928
+rect 2721 4864 2737 4928
+rect 2801 4864 2817 4928
+rect 2881 4864 2889 4928
+rect 2569 4422 2889 4864
+rect 2569 4186 2611 4422
+rect 2847 4186 2889 4422
+rect 2569 3840 2889 4186
+rect 2569 3776 2577 3840
+rect 2641 3776 2657 3840
+rect 2721 3776 2737 3840
+rect 2801 3776 2817 3840
+rect 2881 3776 2889 3840
+rect 2569 2790 2889 3776
+rect 2569 2752 2611 2790
+rect 2847 2752 2889 2790
+rect 2569 2688 2577 2752
+rect 2881 2688 2889 2752
+rect 2569 2554 2611 2688
+rect 2847 2554 2889 2688
+rect 2569 1664 2889 2554
+rect 2569 1600 2577 1664
+rect 2641 1600 2657 1664
+rect 2721 1600 2737 1664
+rect 2801 1600 2817 1664
+rect 2881 1600 2889 1664
+rect 2569 1040 2889 1600
+rect 3382 5472 3702 6032
+rect 3382 5408 3390 5472
+rect 3454 5408 3470 5472
+rect 3534 5408 3550 5472
+rect 3614 5408 3630 5472
+rect 3694 5408 3702 5472
+rect 3382 5238 3702 5408
+rect 3382 5002 3424 5238
+rect 3660 5002 3702 5238
+rect 3382 4384 3702 5002
+rect 3382 4320 3390 4384
+rect 3454 4320 3470 4384
+rect 3534 4320 3550 4384
+rect 3614 4320 3630 4384
+rect 3694 4320 3702 4384
+rect 3382 3606 3702 4320
+rect 3382 3370 3424 3606
+rect 3660 3370 3702 3606
+rect 3382 3296 3702 3370
+rect 3382 3232 3390 3296
+rect 3454 3232 3470 3296
+rect 3534 3232 3550 3296
+rect 3614 3232 3630 3296
+rect 3694 3232 3702 3296
+rect 3382 2208 3702 3232
+rect 3382 2144 3390 2208
+rect 3454 2144 3470 2208
+rect 3534 2144 3550 2208
+rect 3614 2144 3630 2208
+rect 3694 2144 3702 2208
+rect 3382 1974 3702 2144
+rect 3382 1738 3424 1974
+rect 3660 1738 3702 1974
+rect 3382 1120 3702 1738
+rect 3382 1056 3390 1120
+rect 3454 1056 3470 1120
+rect 3534 1056 3550 1120
+rect 3614 1056 3630 1120
+rect 3694 1056 3702 1120
+rect 3382 1040 3702 1056
+rect 4194 6016 4514 6032
+rect 4194 5952 4202 6016
+rect 4266 5952 4282 6016
+rect 4346 5952 4362 6016
+rect 4426 5952 4442 6016
+rect 4506 5952 4514 6016
+rect 4194 4928 4514 5952
+rect 4194 4864 4202 4928
+rect 4266 4864 4282 4928
+rect 4346 4864 4362 4928
+rect 4426 4864 4442 4928
+rect 4506 4864 4514 4928
+rect 4194 4422 4514 4864
+rect 4194 4186 4236 4422
+rect 4472 4186 4514 4422
+rect 4194 3840 4514 4186
+rect 4194 3776 4202 3840
+rect 4266 3776 4282 3840
+rect 4346 3776 4362 3840
+rect 4426 3776 4442 3840
+rect 4506 3776 4514 3840
+rect 4194 2790 4514 3776
+rect 4194 2752 4236 2790
+rect 4472 2752 4514 2790
+rect 4194 2688 4202 2752
+rect 4506 2688 4514 2752
+rect 4194 2554 4236 2688
+rect 4472 2554 4514 2688
+rect 4194 1664 4514 2554
+rect 4194 1600 4202 1664
+rect 4266 1600 4282 1664
+rect 4346 1600 4362 1664
+rect 4426 1600 4442 1664
+rect 4506 1600 4514 1664
+rect 4194 1040 4514 1600
+rect 5007 5472 5327 6032
+rect 5007 5408 5015 5472
+rect 5079 5408 5095 5472
+rect 5159 5408 5175 5472
+rect 5239 5408 5255 5472
+rect 5319 5408 5327 5472
+rect 5007 5238 5327 5408
+rect 5007 5002 5049 5238
+rect 5285 5002 5327 5238
+rect 5007 4384 5327 5002
+rect 5007 4320 5015 4384
+rect 5079 4320 5095 4384
+rect 5159 4320 5175 4384
+rect 5239 4320 5255 4384
+rect 5319 4320 5327 4384
+rect 5007 3606 5327 4320
+rect 5007 3370 5049 3606
+rect 5285 3370 5327 3606
+rect 5007 3296 5327 3370
+rect 5007 3232 5015 3296
+rect 5079 3232 5095 3296
+rect 5159 3232 5175 3296
+rect 5239 3232 5255 3296
+rect 5319 3232 5327 3296
+rect 5007 2208 5327 3232
+rect 5007 2144 5015 2208
+rect 5079 2144 5095 2208
+rect 5159 2144 5175 2208
+rect 5239 2144 5255 2208
+rect 5319 2144 5327 2208
+rect 5007 1974 5327 2144
+rect 5007 1738 5049 1974
+rect 5285 1738 5327 1974
+rect 5007 1120 5327 1738
+rect 5007 1056 5015 1120
+rect 5079 1056 5095 1120
+rect 5159 1056 5175 1120
+rect 5239 1056 5255 1120
+rect 5319 1056 5327 1120
+rect 5007 1040 5327 1056
+<< via4 >>
+rect 1798 5002 2034 5238
+rect 1798 3370 2034 3606
+rect 1798 1738 2034 1974
+rect 2611 4186 2847 4422
+rect 2611 2752 2847 2790
+rect 2611 2688 2641 2752
+rect 2641 2688 2657 2752
+rect 2657 2688 2721 2752
+rect 2721 2688 2737 2752
+rect 2737 2688 2801 2752
+rect 2801 2688 2817 2752
+rect 2817 2688 2847 2752
+rect 2611 2554 2847 2688
+rect 3424 5002 3660 5238
+rect 3424 3370 3660 3606
+rect 3424 1738 3660 1974
+rect 4236 4186 4472 4422
+rect 4236 2752 4472 2790
+rect 4236 2688 4266 2752
+rect 4266 2688 4282 2752
+rect 4282 2688 4346 2752
+rect 4346 2688 4362 2752
+rect 4362 2688 4426 2752
+rect 4426 2688 4442 2752
+rect 4442 2688 4472 2752
+rect 4236 2554 4472 2688
+rect 5049 5002 5285 5238
+rect 5049 3370 5285 3606
+rect 5049 1738 5285 1974
+<< metal5 >>
+rect 1104 5238 5980 5280
+rect 1104 5002 1798 5238
+rect 2034 5002 3424 5238
+rect 3660 5002 5049 5238
+rect 5285 5002 5980 5238
+rect 1104 4960 5980 5002
+rect 1104 4422 5980 4464
+rect 1104 4186 2611 4422
+rect 2847 4186 4236 4422
+rect 4472 4186 5980 4422
+rect 1104 4144 5980 4186
+rect 1104 3606 5980 3648
+rect 1104 3370 1798 3606
+rect 2034 3370 3424 3606
+rect 3660 3370 5049 3606
+rect 5285 3370 5980 3606
+rect 1104 3328 5980 3370
+rect 1104 2790 5980 2832
+rect 1104 2554 2611 2790
+rect 2847 2554 4236 2790
+rect 4472 2554 5980 2790
+rect 1104 2512 5980 2554
+rect 1104 1974 5980 2016
+rect 1104 1738 1798 1974
+rect 2034 1738 3424 1974
+rect 3660 1738 5049 1974
+rect 5285 1738 5980 1974
+rect 1104 1696 5980 1738
+use sky130_fd_sc_hd__decap_3  PHY_0 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
+timestamp 1606755340
+transform 1 0 1104 0 -1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_3  PHY_2
+timestamp 1606755340
+transform 1 0 1104 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_3  FILLER_1_6
+timestamp 1606755340
+transform 1 0 1656 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[27\] $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
+timestamp 1606755340
+transform 1 0 1472 0 -1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[28\]
+timestamp 1606755340
+transform 1 0 1932 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[3\]
+timestamp 1606755340
+transform 1 0 1380 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_1  FILLER_0_3 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
+timestamp 1606755340
+transform 1 0 1380 0 -1 1632
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_8  FILLER_0_7 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
+timestamp 1606755340
+transform 1 0 1748 0 -1 1632
+box -38 -48 774 592
+use sky130_fd_sc_hd__fill_2  FILLER_1_12 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
+timestamp 1606755340
+transform 1 0 2208 0 1 1632
+box -38 -48 222 592
+use sky130_fd_sc_hd__decap_3  FILLER_0_15
+timestamp 1606755340
+transform 1 0 2484 0 -1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[0\]
+timestamp 1606755340
+transform 1 0 2392 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[11\]
+timestamp 1606755340
+transform 1 0 2668 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[1\]
+timestamp 1606755340
+transform 1 0 3036 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[20\]
+timestamp 1606755340
+transform 1 0 2760 0 -1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_1  FILLER_1_20
+timestamp 1606755340
+transform 1 0 2944 0 1 1632
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_8  FILLER_0_21
+timestamp 1606755340
+transform 1 0 3036 0 -1 1632
+box -38 -48 774 592
+use sky130_fd_sc_hd__decap_6  FILLER_1_24 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
+timestamp 1606755340
+transform 1 0 3312 0 1 1632
+box -38 -48 590 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[15\]
+timestamp 1606755340
+transform 1 0 4416 0 -1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[7\]
+timestamp 1606755340
+transform 1 0 3864 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__tapvpwrvgnd_1  PHY_18 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
+timestamp 1606755340
+transform 1 0 3956 0 -1 1632
+box -38 -48 130 592
+use sky130_fd_sc_hd__fill_2  FILLER_0_29
+timestamp 1606755340
+transform 1 0 3772 0 -1 1632
+box -38 -48 222 592
+use sky130_fd_sc_hd__decap_4  FILLER_0_32 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
+timestamp 1606755340
+transform 1 0 4048 0 -1 1632
+box -38 -48 406 592
+use sky130_fd_sc_hd__decap_12  FILLER_1_33 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
+timestamp 1606755340
+transform 1 0 4140 0 1 1632
+box -38 -48 1142 592
+use sky130_fd_sc_hd__decap_3  PHY_1
+timestamp 1606755340
+transform -1 0 5980 0 -1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_3  PHY_3
+timestamp 1606755340
+transform -1 0 5980 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_3  FILLER_0_47
+timestamp 1606755340
+transform 1 0 5428 0 -1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[4\]
+timestamp 1606755340
+transform 1 0 5428 0 1 1632
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_8  FILLER_0_39
+timestamp 1606755340
+transform 1 0 4692 0 -1 1632
+box -38 -48 774 592
+use sky130_fd_sc_hd__fill_2  FILLER_1_45
+timestamp 1606755340
+transform 1 0 5244 0 1 1632
+box -38 -48 222 592
+use sky130_fd_sc_hd__decap_3  PHY_4
+timestamp 1606755340
+transform 1 0 1104 0 -1 2720
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_12  FILLER_2_3
+timestamp 1606755340
+transform 1 0 1380 0 -1 2720
+box -38 -48 1142 592
+use sky130_fd_sc_hd__decap_12  FILLER_2_15
+timestamp 1606755340
+transform 1 0 2484 0 -1 2720
+box -38 -48 1142 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[13\]
+timestamp 1606755340
+transform 1 0 4600 0 -1 2720
+box -38 -48 314 592
+use sky130_fd_sc_hd__tapvpwrvgnd_1  PHY_19
+timestamp 1606755340
+transform 1 0 3956 0 -1 2720
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_4  FILLER_2_27
+timestamp 1606755340
+transform 1 0 3588 0 -1 2720
+box -38 -48 406 592
+use sky130_fd_sc_hd__decap_6  FILLER_2_32
+timestamp 1606755340
+transform 1 0 4048 0 -1 2720
+box -38 -48 590 592
+use sky130_fd_sc_hd__decap_3  PHY_5
+timestamp 1606755340
+transform -1 0 5980 0 -1 2720
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[9\]
+timestamp 1606755340
+transform 1 0 4876 0 -1 2720
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_6  FILLER_2_44
+timestamp 1606755340
+transform 1 0 5152 0 -1 2720
+box -38 -48 590 592
+use sky130_fd_sc_hd__decap_3  PHY_6
+timestamp 1606755340
+transform 1 0 1104 0 1 2720
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[31\]
+timestamp 1606755340
+transform 1 0 1380 0 1 2720
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_12  FILLER_3_6
+timestamp 1606755340
+transform 1 0 1656 0 1 2720
+box -38 -48 1142 592
+use sky130_fd_sc_hd__decap_12  FILLER_3_18
+timestamp 1606755340
+transform 1 0 2760 0 1 2720
+box -38 -48 1142 592
+use sky130_fd_sc_hd__decap_12  FILLER_3_30
+timestamp 1606755340
+transform 1 0 3864 0 1 2720
+box -38 -48 1142 592
+use sky130_fd_sc_hd__decap_3  PHY_7
+timestamp 1606755340
+transform -1 0 5980 0 1 2720
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_8  FILLER_3_42
+timestamp 1606755340
+transform 1 0 4968 0 1 2720
+box -38 -48 774 592
+use sky130_fd_sc_hd__decap_3  PHY_8
+timestamp 1606755340
+transform 1 0 1104 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[17\]
+timestamp 1606755340
+transform 1 0 1472 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[24\]
+timestamp 1606755340
+transform 1 0 1748 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_1  FILLER_4_3
+timestamp 1606755340
+transform 1 0 1380 0 -1 3808
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_4  FILLER_4_10
+timestamp 1606755340
+transform 1 0 2024 0 -1 3808
+box -38 -48 406 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[14\]
+timestamp 1606755340
+transform 1 0 2484 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[25\]
+timestamp 1606755340
+transform 1 0 2944 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[8\]
+timestamp 1606755340
+transform 1 0 3220 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_1  FILLER_4_14
+timestamp 1606755340
+transform 1 0 2392 0 -1 3808
+box -38 -48 130 592
+use sky130_fd_sc_hd__fill_2  FILLER_4_18
+timestamp 1606755340
+transform 1 0 2760 0 -1 3808
+box -38 -48 222 592
+use sky130_fd_sc_hd__decap_3  FILLER_4_35
+timestamp 1606755340
+transform 1 0 4324 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[16\]
+timestamp 1606755340
+transform 1 0 4600 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[22\]
+timestamp 1606755340
+transform 1 0 4048 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_1  FILLER_4_30
+timestamp 1606755340
+transform 1 0 3864 0 -1 3808
+box -38 -48 130 592
+use sky130_fd_sc_hd__tapvpwrvgnd_1  PHY_20
+timestamp 1606755340
+transform 1 0 3956 0 -1 3808
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_4  FILLER_4_26
+timestamp 1606755340
+transform 1 0 3496 0 -1 3808
+box -38 -48 406 592
+use sky130_fd_sc_hd__decap_3  PHY_9
+timestamp 1606755340
+transform -1 0 5980 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[26\]
+timestamp 1606755340
+transform 1 0 5060 0 -1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_2  FILLER_4_41
+timestamp 1606755340
+transform 1 0 4876 0 -1 3808
+box -38 -48 222 592
+use sky130_fd_sc_hd__decap_4  FILLER_4_46
+timestamp 1606755340
+transform 1 0 5336 0 -1 3808
+box -38 -48 406 592
+use sky130_fd_sc_hd__decap_3  PHY_10
+timestamp 1606755340
+transform 1 0 1104 0 1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[2\]
+timestamp 1606755340
+transform 1 0 1840 0 1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[6\]
+timestamp 1606755340
+transform 1 0 1380 0 1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_2  FILLER_5_6
+timestamp 1606755340
+transform 1 0 1656 0 1 3808
+box -38 -48 222 592
+use sky130_fd_sc_hd__decap_12  FILLER_5_11
+timestamp 1606755340
+transform 1 0 2116 0 1 3808
+box -38 -48 1142 592
+use sky130_fd_sc_hd__decap_8  FILLER_5_23
+timestamp 1606755340
+transform 1 0 3220 0 1 3808
+box -38 -48 774 592
+use sky130_fd_sc_hd__decap_3  FILLER_5_31
+timestamp 1606755340
+transform 1 0 3956 0 1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[10\]
+timestamp 1606755340
+transform 1 0 4232 0 1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[18\]
+timestamp 1606755340
+transform 1 0 4508 0 1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_3  PHY_11
+timestamp 1606755340
+transform -1 0 5980 0 1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[29\]
+timestamp 1606755340
+transform 1 0 5336 0 1 3808
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_1  FILLER_5_49
+timestamp 1606755340
+transform 1 0 5612 0 1 3808
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_6  FILLER_5_40
+timestamp 1606755340
+transform 1 0 4784 0 1 3808
+box -38 -48 590 592
+use sky130_fd_sc_hd__decap_3  PHY_12
+timestamp 1606755340
+transform 1 0 1104 0 -1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_3  PHY_14
+timestamp 1606755340
+transform 1 0 1104 0 1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[19\]
+timestamp 1606755340
+transform 1 0 1932 0 -1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_8  FILLER_6_12
+timestamp 1606755340
+transform 1 0 2208 0 -1 4896
+box -38 -48 774 592
+use sky130_fd_sc_hd__decap_6  FILLER_6_3
+timestamp 1606755340
+transform 1 0 1380 0 -1 4896
+box -38 -48 590 592
+use sky130_fd_sc_hd__decap_12  FILLER_7_3
+timestamp 1606755340
+transform 1 0 1380 0 1 4896
+box -38 -48 1142 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[21\]
+timestamp 1606755340
+transform 1 0 3404 0 -1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[30\]
+timestamp 1606755340
+transform 1 0 3036 0 -1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_1  FILLER_6_20
+timestamp 1606755340
+transform 1 0 2944 0 -1 4896
+box -38 -48 130 592
+use sky130_fd_sc_hd__fill_1  FILLER_6_24
+timestamp 1606755340
+transform 1 0 3312 0 -1 4896
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_12  FILLER_7_15
+timestamp 1606755340
+transform 1 0 2484 0 1 4896
+box -38 -48 1142 592
+use sky130_fd_sc_hd__decap_3  FILLER_6_28
+timestamp 1606755340
+transform 1 0 3680 0 -1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[12\]
+timestamp 1606755340
+transform 1 0 4508 0 -1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[5\]
+timestamp 1606755340
+transform 1 0 4140 0 1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_1  FILLER_6_36
+timestamp 1606755340
+transform 1 0 4416 0 -1 4896
+box -38 -48 130 592
+use sky130_fd_sc_hd__tapvpwrvgnd_1  PHY_21
+timestamp 1606755340
+transform 1 0 3956 0 -1 4896
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_4  FILLER_6_32
+timestamp 1606755340
+transform 1 0 4048 0 -1 4896
+box -38 -48 406 592
+use sky130_fd_sc_hd__decap_6  FILLER_7_27
+timestamp 1606755340
+transform 1 0 3588 0 1 4896
+box -38 -48 590 592
+use sky130_fd_sc_hd__decap_6  FILLER_7_36
+timestamp 1606755340
+transform 1 0 4416 0 1 4896
+box -38 -48 590 592
+use sky130_fd_sc_hd__decap_3  PHY_13
+timestamp 1606755340
+transform -1 0 5980 0 -1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_3  PHY_15
+timestamp 1606755340
+transform -1 0 5980 0 1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__conb_1  mask_rev_value\[23\]
+timestamp 1606755340
+transform 1 0 5060 0 1 4896
+box -38 -48 314 592
+use sky130_fd_sc_hd__fill_1  FILLER_7_42
+timestamp 1606755340
+transform 1 0 4968 0 1 4896
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_8  FILLER_6_40
+timestamp 1606755340
+transform 1 0 4784 0 -1 4896
+box -38 -48 774 592
+use sky130_fd_sc_hd__fill_2  FILLER_6_48
+timestamp 1606755340
+transform 1 0 5520 0 -1 4896
+box -38 -48 222 592
+use sky130_fd_sc_hd__decap_4  FILLER_7_46
+timestamp 1606755340
+transform 1 0 5336 0 1 4896
+box -38 -48 406 592
+use sky130_fd_sc_hd__decap_3  PHY_16
+timestamp 1606755340
+transform 1 0 1104 0 -1 5984
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_12  FILLER_8_3
+timestamp 1606755340
+transform 1 0 1380 0 -1 5984
+box -38 -48 1142 592
+use sky130_fd_sc_hd__decap_12  FILLER_8_15
+timestamp 1606755340
+transform 1 0 2484 0 -1 5984
+box -38 -48 1142 592
+use sky130_fd_sc_hd__tapvpwrvgnd_1  PHY_22
+timestamp 1606755340
+transform 1 0 3956 0 -1 5984
+box -38 -48 130 592
+use sky130_fd_sc_hd__decap_4  FILLER_8_27
+timestamp 1606755340
+transform 1 0 3588 0 -1 5984
+box -38 -48 406 592
+use sky130_fd_sc_hd__decap_12  FILLER_8_32
+timestamp 1606755340
+transform 1 0 4048 0 -1 5984
+box -38 -48 1142 592
+use sky130_fd_sc_hd__decap_3  PHY_17
+timestamp 1606755340
+transform -1 0 5980 0 -1 5984
+box -38 -48 314 592
+use sky130_fd_sc_hd__decap_6  FILLER_8_44
+timestamp 1606755340
+transform 1 0 5152 0 -1 5984
+box -38 -48 590 592
+<< labels >>
+rlabel metal2 s 4066 6277 4122 7077 4 mask_rev[0]
+port 1 nsew
+rlabel metal2 s 4066 0 4122 800 4 mask_rev[10]
+port 2 nsew
+rlabel metal2 s 1122 0 1178 800 4 mask_rev[11]
+port 3 nsew
+rlabel metal2 s 570 0 626 800 4 mask_rev[12]
+port 4 nsew
+rlabel metal2 s 5354 6277 5410 7077 4 mask_rev[13]
+port 5 nsew
+rlabel metal2 s 5906 0 5962 800 4 mask_rev[14]
+port 6 nsew
+rlabel metal3 s 6309 1640 7109 1760 4 mask_rev[15]
+port 7 nsew
+rlabel metal2 s 2226 0 2282 800 4 mask_rev[16]
+port 8 nsew
+rlabel metal2 s 1674 6277 1730 7077 4 mask_rev[17]
+port 9 nsew
+rlabel metal3 s 0 5176 800 5296 4 mask_rev[18]
+port 10 nsew
+rlabel metal2 s 2962 6277 3018 7077 4 mask_rev[19]
+port 11 nsew
+rlabel metal3 s 0 3272 800 3392 4 mask_rev[1]
+port 12 nsew
+rlabel metal3 s 6309 2456 7109 2576 4 mask_rev[20]
+port 13 nsew
+rlabel metal3 s 6309 824 7109 944 4 mask_rev[21]
+port 14 nsew
+rlabel metal3 s 0 5992 800 6112 4 mask_rev[22]
+port 15 nsew
+rlabel metal2 s 1674 0 1730 800 4 mask_rev[23]
+port 16 nsew
+rlabel metal2 s 5906 6277 5962 7077 4 mask_rev[24]
+port 17 nsew
+rlabel metal3 s 0 1640 800 1760 4 mask_rev[25]
+port 18 nsew
+rlabel metal2 s 4802 6277 4858 7077 4 mask_rev[26]
+port 19 nsew
+rlabel metal2 s 1122 6277 1178 7077 4 mask_rev[27]
+port 20 nsew
+rlabel metal2 s 6458 6277 6514 7077 4 mask_rev[28]
+port 21 nsew
+rlabel metal2 s 5354 0 5410 800 4 mask_rev[29]
+port 22 nsew
+rlabel metal3 s 0 2456 800 2576 4 mask_rev[2]
+port 23 nsew
+rlabel metal3 s 6309 5176 7109 5296 4 mask_rev[30]
+port 24 nsew
+rlabel metal2 s 2962 0 3018 800 4 mask_rev[31]
+port 25 nsew
+rlabel metal2 s 3514 0 3570 800 4 mask_rev[3]
+port 26 nsew
+rlabel metal3 s 6309 3544 7109 3664 4 mask_rev[4]
+port 27 nsew
+rlabel metal3 s 6309 4360 7109 4480 4 mask_rev[5]
+port 28 nsew
+rlabel metal3 s 0 4360 800 4480 4 mask_rev[6]
+port 29 nsew
+rlabel metal2 s 3514 6277 3570 7077 4 mask_rev[7]
+port 30 nsew
+rlabel metal2 s 4802 0 4858 800 4 mask_rev[8]
+port 31 nsew
+rlabel metal2 s 2226 6277 2282 7077 4 mask_rev[9]
+port 32 nsew
+rlabel metal5 s 1104 1696 5980 2016 4 VPWR
+port 33 nsew
+rlabel metal5 s 1104 2512 5980 2832 4 VGND
+port 34 nsew
+<< properties >>
+string FIXED_BBOX 0 0 7109 7077
+string GDS_FILE ../gds/user_id_programming.gds
+string GDS_START 0
+<< end >>
diff --git a/mag/user_id_textblock.mag b/mag/user_id_textblock.mag
new file mode 100644
index 0000000..132a28c
--- /dev/null
+++ b/mag/user_id_textblock.mag
@@ -0,0 +1,43 @@
+magic
+tech sky130A
+timestamp 1608324878
+<< checkpaint >>
+rect 1495 5490 6500 6570
+rect -630 428 19262 5490
+rect -630 -630 6210 428
+rect 16092 356 18972 428
+<< fillblock >>
+rect -328 754 16860 5172
+use alpha_0  alphaX_7 hexdigits
+timestamp 1598786981
+transform 1 0 0 0 1 1080
+box 0 0 1620 3780
+use alpha_0  alphaX_6 hexdigits
+timestamp 1598786981
+transform 1 0 2125 0 1 1080
+box 0 0 1620 3780
+use alpha_0  alphaX_5 hexdigits
+timestamp 1598786981
+transform 1 0 4250 0 1 1080
+box 0 0 1620 3780
+use alpha_2  alphaX_4 hexdigits
+timestamp 1598786981
+transform 1 0 6375 0 1 1080
+box 0 0 1620 3780
+use alpha_0  alphaX_3 hexdigits
+timestamp 1598786981
+transform 1 0 8500 0 1 1080
+box 0 0 1620 3780
+use alpha_0  alphaX_2 hexdigits
+timestamp 1598786981
+transform 1 0 10625 0 1 1080
+box 0 0 1620 3780
+use alpha_0  alphaX_1 hexdigits
+timestamp 1598786981
+transform 1 0 12750 0 1 1080
+box 0 0 1620 3780
+use alpha_A  alphaX_0 hexdigits
+timestamp 1598786981
+transform 1 0 14887 0 1 1080
+box 0 0 1620 3780
+<< end >>
diff --git a/signoff/.gitignore b/signoff/.gitignore
new file mode 100644
index 0000000..6407046
--- /dev/null
+++ b/signoff/.gitignore
@@ -0,0 +1 @@
+cdrcpost/*
diff --git a/verilog/rtl/caravel.v b/verilog/rtl/caravel.v
new file mode 100644
index 0000000..a3f32bc
--- /dev/null
+++ b/verilog/rtl/caravel.v
@@ -0,0 +1,817 @@
+// `default_nettype none
+// SPDX-FileCopyrightText: 2020 Efabless Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// SPDX-License-Identifier: Apache-2.0
+/*--------------------------------------------------------------*/
+/* caravel, a project harness for the Google/SkyWater sky130	*/
+/* fabrication process and open source PDK			*/
+/*                                                          	*/
+/* Copyright 2020 efabless, Inc.                            	*/
+/* Written by Tim Edwards, December 2019                    	*/
+/* and Mohamed Shalan, August 2020			    	*/
+/* This file is open source hardware released under the     	*/
+/* Apache 2.0 license.  See file LICENSE.                   	*/
+/*                                                          	*/
+/*--------------------------------------------------------------*/
+
+module caravel (
+    inout vddio,	// Common 3.3V padframe/ESD power
+    inout vddio_2,	// Common 3.3V padframe/ESD power
+    inout vssio,	// Common padframe/ESD ground
+    inout vssio_2,	// Common padframe/ESD ground
+    inout vdda,		// Management 3.3V power
+    inout vssa,		// Common analog ground
+    inout vccd,		// Management/Common 1.8V power
+    inout vssd,		// Common digital ground
+    inout vdda1,	// User area 1 3.3V power
+    inout vdda1_2,	// User area 1 3.3V power
+    inout vdda2,	// User area 2 3.3V power
+    inout vssa1,	// User area 1 analog ground
+	inout vssa1_2,  // User area 1 analog ground
+    inout vssa2,	// User area 2 analog ground
+    inout vccd1,	// User area 1 1.8V power
+    inout vccd2,	// User area 2 1.8V power
+    inout vssd1,	// User area 1 digital ground
+    inout vssd2,	// User area 2 digital ground
+
+    inout gpio,			// Used for external LDO control
+    inout [`MPRJ_IO_PADS-1:0] mprj_io,
+    output [`MPRJ_PWR_PADS-1:0] pwr_ctrl_out,
+    input clock,	    	// CMOS core clock input, not a crystal
+    input resetb,
+
+    // Note that only two pins are available on the flash so dual and
+    // quad flash modes are not available.
+
+    output flash_csb,
+    output flash_clk,
+    output flash_io0,
+    output flash_io1
+);
+
+    //------------------------------------------------------------
+    // This value is uniquely defined for each user project.
+    //------------------------------------------------------------
+    parameter USER_PROJECT_ID = 32'h0002000a;
+
+    // These pins are overlaid on mprj_io space.  They have the function
+    // below when the management processor is in reset, or in the default
+    // configuration.  They are assigned to uses in the user space by the
+    // configuration program running off of the SPI flash.  Note that even
+    // when the user has taken control of these pins, they can be restored
+    // to the original use by setting the resetb pin low.  The SPI pins and
+    // UART pins can be connected directly to an FTDI chip as long as the
+    // FTDI chip sets these lines to high impedence (input function) at
+    // all times except when holding the chip in reset.
+
+    // JTAG      = mprj_io[0]		(inout)
+    // SDO 	 = mprj_io[1]		(output)
+    // SDI 	 = mprj_io[2]		(input)
+    // CSB 	 = mprj_io[3]		(input)
+    // SCK	 = mprj_io[4]		(input)
+    // ser_rx    = mprj_io[5]		(input)
+    // ser_tx    = mprj_io[6]		(output)
+    // irq 	 = mprj_io[7]		(input)
+
+    // These pins are reserved for any project that wants to incorporate
+    // its own processor and flash controller.  While a user project can
+    // technically use any available I/O pins for the purpose, these
+    // four pins connect to a pass-through mode from the SPI slave (pins
+    // 1-4 above) so that any SPI flash connected to these specific pins
+    // can be accessed through the SPI slave even when the processor is in
+    // reset.
+
+    // user_flash_csb = mprj_io[8]
+    // user_flash_sck = mprj_io[9]
+    // user_flash_io0 = mprj_io[10]
+    // user_flash_io1 = mprj_io[11]
+
+    // One-bit GPIO dedicated to management SoC (outside of user control)
+    wire gpio_out_core;
+    wire gpio_in_core;
+    wire gpio_mode0_core;
+    wire gpio_mode1_core;
+    wire gpio_outenb_core;
+    wire gpio_inenb_core;
+
+    // User Project Control (pad-facing)
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_inp_dis;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_oeb;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_ib_mode_sel;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_vtrip_sel;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_slow_sel;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_holdover;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_analog_en;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_analog_sel;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_analog_pol;
+    wire [`MPRJ_IO_PADS*3-1:0] mprj_io_dm;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_in;
+    wire [`MPRJ_IO_PADS-1:0] mprj_io_out;
+
+    // User Project Control (user-facing)
+    wire [`MPRJ_IO_PADS-1:0] user_io_oeb;
+    wire [`MPRJ_IO_PADS-1:0] user_io_in;
+    wire [`MPRJ_IO_PADS-1:0] user_io_out;
+    wire [`MPRJ_IO_PADS-10:0] user_analog_io;
+
+    /* Padframe control signals */
+    wire [`MPRJ_IO_PADS_1-1:0] gpio_serial_link_1;
+    wire [`MPRJ_IO_PADS_2-1:0] gpio_serial_link_2;
+    wire mprj_io_loader_resetn;
+    wire mprj_io_loader_clock;
+    wire mprj_io_loader_data_1;		/* user1 side serial loader */
+    wire mprj_io_loader_data_2;		/* user2 side serial loader */
+
+    // User Project Control management I/O
+    // There are two types of GPIO connections:
+    // (1) Full Bidirectional: Management connects to in, out, and oeb
+    //     Uses:  JTAG and SDO
+    // (2) Selectable bidirectional:  Management connects to in and out,
+    //	   which are tied together.  oeb is grounded (oeb from the
+    //	   configuration is used)
+
+    // SDI 	 = mprj_io[2]		(input)
+    // CSB 	 = mprj_io[3]		(input)
+    // SCK	 = mprj_io[4]		(input)
+    // ser_rx    = mprj_io[5]		(input)
+    // ser_tx    = mprj_io[6]		(output)
+    // irq 	 = mprj_io[7]		(input)
+
+    wire [`MPRJ_IO_PADS-1:0] mgmt_io_in;
+    wire jtag_out, sdo_out;
+    wire jtag_outenb, sdo_outenb;
+    wire gpio_flash_io2_out, gpio_flash_io3_out;
+
+    wire [1:0] mgmt_io_nc;			/* no-connects */
+
+    wire clock_core;
+
+    // Power-on-reset signal.  The reset pad generates the sense-inverted
+    // reset at 3.3V.  The 1.8V signal and the inverted 1.8V signal are
+    // derived.
+
+    wire porb_h;
+    wire porb_l;
+    wire por_l;
+
+    wire rstb_h;
+    wire rstb_l;
+
+    wire flash_clk_core,     flash_csb_core;
+    wire flash_clk_oeb_core, flash_csb_oeb_core;
+    wire flash_clk_ieb_core, flash_csb_ieb_core;
+    wire flash_io0_oeb_core, flash_io1_oeb_core;
+    wire flash_io2_oeb_core, flash_io3_oeb_core;
+    wire flash_io0_ieb_core, flash_io1_ieb_core;
+    wire flash_io0_do_core,  flash_io1_do_core;
+    wire flash_io0_di_core,  flash_io1_di_core;
+
+    chip_io padframe(
+	`ifndef TOP_ROUTING
+		// Package Pins
+		.vddio_pad	(vddio),		// Common padframe/ESD supply
+		.vddio_pad2	(vddio_2),
+		.vssio_pad	(vssio),		// Common padframe/ESD ground
+		.vssio_pad2	(vssio_2),
+		.vccd_pad	(vccd),			// Common 1.8V supply
+		.vssd_pad	(vssd),			// Common digital ground
+		.vdda_pad	(vdda),			// Management analog 3.3V supply
+		.vssa_pad	(vssa),			// Management analog ground
+		.vdda1_pad	(vdda1),		// User area 1 3.3V supply
+		.vdda1_pad2	(vdda1_2),		
+		.vdda2_pad	(vdda2),		// User area 2 3.3V supply
+		.vssa1_pad	(vssa1),		// User area 1 analog ground
+		.vssa1_pad2	(vssa1_2),
+		.vssa2_pad	(vssa2),		// User area 2 analog ground
+		.vccd1_pad	(vccd1),		// User area 1 1.8V supply
+		.vccd2_pad	(vccd2),		// User area 2 1.8V supply
+		.vssd1_pad	(vssd1),		// User area 1 digital ground
+		.vssd2_pad	(vssd2),		// User area 2 digital ground
+	`endif
+	// Core Side Pins
+	.vddio	(vddio_core),
+	.vssio	(vssio_core),
+	.vdda	(vdda_core),
+	.vssa	(vssa_core),
+	.vccd	(vccd_core),
+	.vssd	(vssd_core),
+	.vdda1	(vdda1_core),
+	.vdda2	(vdda2_core),
+	.vssa1	(vssa1_core),
+	.vssa2	(vssa2_core),
+	.vccd1	(vccd1_core),
+	.vccd2	(vccd2_core),
+	.vssd1	(vssd1_core),
+	.vssd2	(vssd2_core),
+
+	.gpio(gpio),
+	.mprj_io(mprj_io),
+	.clock(clock),
+	.resetb(resetb),
+	.flash_csb(flash_csb),
+	.flash_clk(flash_clk),
+	.flash_io0(flash_io0),
+	.flash_io1(flash_io1),
+	// SoC Core Interface
+	.porb_h(porb_h),
+	.por(por_l),
+	.resetb_core_h(rstb_h),
+	.clock_core(clock_core),
+	.gpio_out_core(gpio_out_core),
+	.gpio_in_core(gpio_in_core),
+	.gpio_mode0_core(gpio_mode0_core),
+	.gpio_mode1_core(gpio_mode1_core),
+	.gpio_outenb_core(gpio_outenb_core),
+	.gpio_inenb_core(gpio_inenb_core),
+	.flash_csb_core(flash_csb_core),
+	.flash_clk_core(flash_clk_core),
+	.flash_csb_oeb_core(flash_csb_oeb_core),
+	.flash_clk_oeb_core(flash_clk_oeb_core),
+	.flash_io0_oeb_core(flash_io0_oeb_core),
+	.flash_io1_oeb_core(flash_io1_oeb_core),
+	.flash_csb_ieb_core(flash_csb_ieb_core),
+	.flash_clk_ieb_core(flash_clk_ieb_core),
+	.flash_io0_ieb_core(flash_io0_ieb_core),
+	.flash_io1_ieb_core(flash_io1_ieb_core),
+	.flash_io0_do_core(flash_io0_do_core),
+	.flash_io1_do_core(flash_io1_do_core),
+	.flash_io0_di_core(flash_io0_di_core),
+	.flash_io1_di_core(flash_io1_di_core),
+	.mprj_io_in(mprj_io_in),
+	.mprj_io_out(mprj_io_out),
+	.mprj_io_oeb(mprj_io_oeb),
+	.mprj_io_inp_dis(mprj_io_inp_dis),
+	.mprj_io_ib_mode_sel(mprj_io_ib_mode_sel),
+	.mprj_io_vtrip_sel(mprj_io_vtrip_sel),
+	.mprj_io_slow_sel(mprj_io_slow_sel),
+	.mprj_io_holdover(mprj_io_holdover),
+	.mprj_io_analog_en(mprj_io_analog_en),
+	.mprj_io_analog_sel(mprj_io_analog_sel),
+	.mprj_io_analog_pol(mprj_io_analog_pol),
+	.mprj_io_dm(mprj_io_dm),
+	.mprj_analog_io(user_analog_io)
+    );
+
+    // SoC core
+    wire caravel_clk;
+    wire caravel_clk2;
+    wire caravel_rstn;
+
+    wire [7:0] spi_ro_config_core;
+
+    // LA signals
+    wire [127:0] la_data_in_user;  // From CPU to MPRJ
+    wire [127:0] la_data_in_mprj;  // From MPRJ to CPU
+    wire [127:0] la_data_out_mprj; // From CPU to MPRJ
+    wire [127:0] la_data_out_user; // From MPRJ to CPU
+    wire [127:0] la_oenb_user;     // From CPU to MPRJ
+    wire [127:0] la_oenb_mprj;	   // From CPU to MPRJ
+    wire [127:0] la_iena_mprj;	   // From CPU only
+    wire [2:0]   user_irq;	   // From MRPJ to CPU
+    wire [2:0]   user_irq_core;
+    wire [2:0]   user_irq_ena;
+
+    // WB MI A (User Project)
+    wire mprj_cyc_o_core;
+    wire mprj_stb_o_core;
+    wire mprj_we_o_core;
+    wire [3:0] mprj_sel_o_core;
+    wire [31:0] mprj_adr_o_core;
+    wire [31:0] mprj_dat_o_core;
+    wire mprj_ack_i_core;
+    wire [31:0] mprj_dat_i_core;
+
+    // WB MI B (xbar)
+    wire xbar_cyc_o_core;
+    wire xbar_stb_o_core;
+    wire xbar_we_o_core;
+    wire [3:0] xbar_sel_o_core;
+    wire [31:0] xbar_adr_o_core;
+    wire [31:0] xbar_dat_o_core;
+    wire xbar_ack_i_core;
+    wire [31:0] xbar_dat_i_core;
+
+    // Mask revision
+    wire [31:0] mask_rev;
+
+	wire 	    mprj_clock;
+	wire 	    mprj_clock2;
+	wire 	    mprj_reset;
+	wire 	    mprj_cyc_o_user;
+	wire 	    mprj_stb_o_user;
+	wire 	    mprj_we_o_user;
+	wire [3:0]  mprj_sel_o_user;
+	wire [31:0] mprj_adr_o_user;
+	wire [31:0] mprj_dat_o_user;
+	wire	    mprj_vcc_pwrgood;
+	wire	    mprj2_vcc_pwrgood;
+	wire	    mprj_vdd_pwrgood;
+	wire	    mprj2_vdd_pwrgood;
+
+	// Storage area
+	// Management R/W interface
+	wire [`RAM_BLOCKS-1:0] mgmt_ena;
+    wire [`RAM_BLOCKS-1:0] mgmt_wen;
+    wire [(`RAM_BLOCKS*4)-1:0] mgmt_wen_mask;
+    wire [7:0] mgmt_addr;
+    wire [31:0] mgmt_wdata;
+    wire [(`RAM_BLOCKS*32)-1:0] mgmt_rdata;
+	// Management RO interface
+	wire mgmt_ena_ro;
+    wire [7:0] mgmt_addr_ro;
+    wire [31:0] mgmt_rdata_ro;
+
+    mgmt_core soc (
+	`ifdef USE_POWER_PINS
+		.VPWR(vccd_core),
+		.VGND(vssd_core),
+	`endif
+		// GPIO (1 pin)
+		.gpio_out_pad(gpio_out_core),
+		.gpio_in_pad(gpio_in_core),
+		.gpio_mode0_pad(gpio_mode0_core),
+		.gpio_mode1_pad(gpio_mode1_core),
+		.gpio_outenb_pad(gpio_outenb_core),
+		.gpio_inenb_pad(gpio_inenb_core),
+		// Primary SPI flash controller
+		.flash_csb(flash_csb_core),
+		.flash_clk(flash_clk_core),
+		.flash_csb_oeb(flash_csb_oeb_core),
+		.flash_clk_oeb(flash_clk_oeb_core),
+		.flash_io0_oeb(flash_io0_oeb_core),
+		.flash_io1_oeb(flash_io1_oeb_core),
+		.flash_csb_ieb(flash_csb_ieb_core),
+		.flash_clk_ieb(flash_clk_ieb_core),
+		.flash_io0_ieb(flash_io0_ieb_core),
+		.flash_io1_ieb(flash_io1_ieb_core),
+		.flash_io0_do(flash_io0_do_core),
+		.flash_io1_do(flash_io1_do_core),
+		.flash_io0_di(flash_io0_di_core),
+		.flash_io1_di(flash_io1_di_core),
+		// Master Reset
+		.resetb(rstb_l),
+		.porb(porb_l),
+		// Clocks and reset
+		.clock(clock_core),
+		.core_clk(caravel_clk),
+		.user_clk(caravel_clk2),
+		.core_rstn(caravel_rstn),
+		// IRQ
+		.user_irq(user_irq),
+		.user_irq_ena(user_irq_ena),
+		// Logic Analyzer
+		.la_input(la_data_in_mprj),
+		.la_output(la_data_out_mprj),
+		.la_oenb(la_oenb_mprj),
+		.la_iena(la_iena_mprj),
+		// User Project IO Control
+		.mprj_vcc_pwrgood(mprj_vcc_pwrgood),
+		.mprj2_vcc_pwrgood(mprj2_vcc_pwrgood),
+		.mprj_vdd_pwrgood(mprj_vdd_pwrgood),
+		.mprj2_vdd_pwrgood(mprj2_vdd_pwrgood),
+		.mprj_io_loader_resetn(mprj_io_loader_resetn),
+		.mprj_io_loader_clock(mprj_io_loader_clock),
+		.mprj_io_loader_data_1(mprj_io_loader_data_1),
+		.mprj_io_loader_data_2(mprj_io_loader_data_2),
+		.mgmt_in_data(mgmt_io_in),
+		.mgmt_out_data({gpio_flash_io3_out, gpio_flash_io2_out,
+				mgmt_io_in[(`MPRJ_IO_PADS-3):2], mgmt_io_nc}),
+		.pwr_ctrl_out(pwr_ctrl_out),
+		.sdo_out(sdo_out),
+		.sdo_outenb(sdo_outenb),
+		.jtag_out(jtag_out),
+		.jtag_outenb(jtag_outenb),
+		.flash_io2_oeb(flash_io2_oeb_core),
+		.flash_io3_oeb(flash_io3_oeb_core),
+		// User Project Slave ports (WB MI A)
+		.mprj_cyc_o(mprj_cyc_o_core),
+		.mprj_stb_o(mprj_stb_o_core),
+		.mprj_we_o(mprj_we_o_core),
+		.mprj_sel_o(mprj_sel_o_core),
+		.mprj_adr_o(mprj_adr_o_core),
+		.mprj_dat_o(mprj_dat_o_core),
+		.mprj_ack_i(mprj_ack_i_core),
+		.mprj_dat_i(mprj_dat_i_core),
+		// mask data
+		.mask_rev(mask_rev),
+		// MGMT area R/W interface
+		.mgmt_ena(mgmt_ena),
+		.mgmt_wen_mask(mgmt_wen_mask),
+		.mgmt_wen(mgmt_wen),
+		.mgmt_addr(mgmt_addr),
+		.mgmt_wdata(mgmt_wdata),
+		.mgmt_rdata(mgmt_rdata),
+		// MGMT area RO interface
+		.mgmt_ena_ro(mgmt_ena_ro),
+		.mgmt_addr_ro(mgmt_addr_ro),
+		.mgmt_rdata_ro(mgmt_rdata_ro)
+    	);
+
+	/* Clock and reset to user space are passed through a tristate	*/
+	/* buffer like the above, but since they are intended to be	*/
+	/* always active, connect the enable to the logic-1 output from	*/
+	/* the vccd1 domain.						*/
+
+	mgmt_protect mgmt_buffers (
+	`ifdef USE_POWER_PINS
+		.vccd(vccd_core),
+		.vssd(vssd_core),
+		.vccd1(vccd1_core),
+		.vssd1(vssd1_core),
+		.vccd2(vccd2_core),
+		.vssd2(vssd2_core),
+		.vdda1(vdda1_core),
+		.vssa1(vssa1_core),
+		.vdda2(vdda2_core),
+		.vssa2(vssa2_core),
+    `endif
+		.caravel_clk(caravel_clk),
+		.caravel_clk2(caravel_clk2),
+		.caravel_rstn(caravel_rstn),
+		.mprj_cyc_o_core(mprj_cyc_o_core),
+		.mprj_stb_o_core(mprj_stb_o_core),
+		.mprj_we_o_core(mprj_we_o_core),
+		.mprj_sel_o_core(mprj_sel_o_core),
+		.mprj_adr_o_core(mprj_adr_o_core),
+		.mprj_dat_o_core(mprj_dat_o_core),
+		.user_irq_core(user_irq_core),
+		.la_data_out_core(la_data_out_user),
+		.la_data_out_mprj(la_data_out_mprj),
+		.la_data_in_core(la_data_in_user),
+		.la_data_in_mprj(la_data_in_mprj),
+		.la_oenb_mprj(la_oenb_mprj),
+		.la_oenb_core(la_oenb_user),
+		.la_iena_mprj(la_iena_mprj),
+		.user_irq_ena(user_irq_ena),
+
+		.user_clock(mprj_clock),
+		.user_clock2(mprj_clock2),
+		.user_reset(mprj_reset),
+		.mprj_cyc_o_user(mprj_cyc_o_user),
+		.mprj_stb_o_user(mprj_stb_o_user),
+		.mprj_we_o_user(mprj_we_o_user),
+		.mprj_sel_o_user(mprj_sel_o_user),
+		.mprj_adr_o_user(mprj_adr_o_user),
+		.mprj_dat_o_user(mprj_dat_o_user),
+		.user_irq(user_irq),
+		.user1_vcc_powergood(mprj_vcc_pwrgood),
+		.user2_vcc_powergood(mprj2_vcc_pwrgood),
+		.user1_vdd_powergood(mprj_vdd_pwrgood),
+		.user2_vdd_powergood(mprj2_vdd_pwrgood)
+	);
+
+
+	/*----------------------------------------------*/
+	/* Wrapper module around the user project 	*/
+	/*----------------------------------------------*/
+
+	user_project_wrapper mprj ( 
+	`ifdef USE_POWER_PINS
+		.vdda1(vdda1_core),		// User area 1 3.3V power
+		.vdda2(vdda2_core),		// User area 2 3.3V power
+		.vssa1(vssa1_core),		// User area 1 analog ground
+		.vssa2(vssa2_core),		// User area 2 analog ground
+		.vccd1(vccd1_core),		// User area 1 1.8V power
+		.vccd2(vccd2_core),		// User area 2 1.8V power
+		.vssd1(vssd1_core),		// User area 1 digital ground
+		.vssd2(vssd2_core),		// User area 2 digital ground
+    `endif
+
+    		.wb_clk_i(mprj_clock),
+    		.wb_rst_i(mprj_reset),
+		// MGMT SoC Wishbone Slave
+		.wbs_cyc_i(mprj_cyc_o_user),
+		.wbs_stb_i(mprj_stb_o_user),
+		.wbs_we_i(mprj_we_o_user),
+		.wbs_sel_i(mprj_sel_o_user),
+	    	.wbs_adr_i(mprj_adr_o_user),
+		.wbs_dat_i(mprj_dat_o_user),
+	    	.wbs_ack_o(mprj_ack_i_core),
+		.wbs_dat_o(mprj_dat_i_core),
+		// Logic Analyzer
+		.la_data_in(la_data_in_user),
+		.la_data_out(la_data_out_user),
+		.la_oenb(la_oenb_user),
+		// IO Pads
+		.io_in (user_io_in),
+    		.io_out(user_io_out),
+    		.io_oeb(user_io_oeb),
+		.analog_io(user_analog_io),
+		// Independent clock
+		.user_clock2(mprj_clock2),
+		// IRQ
+		.user_irq(user_irq_core)
+	);
+
+	/*--------------------------------------*/
+	/* End user project instantiation	*/
+	/*--------------------------------------*/
+
+    wire [`MPRJ_IO_PADS_1-1:0] gpio_serial_link_1_shifted;
+    wire [`MPRJ_IO_PADS_2-1:0] gpio_serial_link_2_shifted;
+
+    assign gpio_serial_link_1_shifted = {gpio_serial_link_1[`MPRJ_IO_PADS_1-2:0],
+					 mprj_io_loader_data_1};
+    // Note that serial_link_2 is backwards compared to serial_link_1, so it
+    // shifts in the other direction.
+    assign gpio_serial_link_2_shifted = {mprj_io_loader_data_2,
+					 gpio_serial_link_2[`MPRJ_IO_PADS_2-1:1]};
+
+    // Propagating clock and reset to mitigate timing and fanout issues
+    wire [`MPRJ_IO_PADS_1-1:0] gpio_clock_1;
+    wire [`MPRJ_IO_PADS_2-1:0] gpio_clock_2;
+    wire [`MPRJ_IO_PADS_1-1:0] gpio_resetn_1;
+    wire [`MPRJ_IO_PADS_2-1:0] gpio_resetn_2;
+    wire [`MPRJ_IO_PADS_1-1:0] gpio_clock_1_shifted;
+    wire [`MPRJ_IO_PADS_2-1:0] gpio_clock_2_shifted;
+    wire [`MPRJ_IO_PADS_1-1:0] gpio_resetn_1_shifted;
+    wire [`MPRJ_IO_PADS_2-1:0] gpio_resetn_2_shifted;
+
+    assign gpio_clock_1_shifted = {gpio_clock_1[`MPRJ_IO_PADS_1-2:0],
+					 mprj_io_loader_clock};
+    assign gpio_clock_2_shifted = {mprj_io_loader_clock,
+					gpio_clock_2[`MPRJ_IO_PADS_2-1:1]};
+    assign gpio_resetn_1_shifted = {gpio_resetn_1[`MPRJ_IO_PADS_1-2:0],
+					 mprj_io_loader_resetn};
+    assign gpio_resetn_2_shifted = {mprj_io_loader_resetn,
+					gpio_resetn_2[`MPRJ_IO_PADS_2-1:1]};
+
+    // Each control block sits next to an I/O pad in the user area.
+    // It gets input through a serial chain from the previous control
+    // block and passes it to the next control block.  Due to the nature
+    // of the shift register, bits are presented in reverse, as the first
+    // bit in ends up as the last bit of the last I/O pad control block.
+
+    // There are two types of block;  the first two and the last two
+    // are configured to be full bidirectional under control of the
+    // management Soc (JTAG and SDO for the first two;  flash_io2 and
+    // flash_io3 for the last two).  The rest are configured to be default
+    // (input).  Note that the first two and last two are the ones closest
+    // to the management SoC on either side, which minimizes the wire length
+    // of the extra signals those pads need.
+
+    /* First two GPIOs (JTAG and SDO) */
+    gpio_control_block #(
+	.DM_INIT(`DM_INIT),	// Mode = output, strong up/down
+	.OENB_INIT(`OENB_INIT)	// Enable output signaling from wire
+    ) gpio_control_bidir_1 [1:0] (
+    	`ifdef USE_POWER_PINS
+			.vccd(vccd_core),
+			.vssd(vssd_core),
+			.vccd1(vccd1_core),
+			.vssd1(vssd1_core),
+        `endif
+
+    	// Management Soc-facing signals
+
+    	.resetn(gpio_resetn_1_shifted[1:0]),
+    	.serial_clock(gpio_clock_1_shifted[1:0]),
+
+    	.resetn_out(gpio_resetn_1[1:0]),
+    	.serial_clock_out(gpio_clock_1[1:0]),
+
+    	.mgmt_gpio_in(mgmt_io_in[1:0]),
+		.mgmt_gpio_out({sdo_out, jtag_out}),
+		.mgmt_gpio_oeb({sdo_outenb, jtag_outenb}),
+
+        .one(),
+        .zero(),
+
+    	// Serial data chain for pad configuration
+    	.serial_data_in(gpio_serial_link_1_shifted[1:0]),
+    	.serial_data_out(gpio_serial_link_1[1:0]),
+
+    	// User-facing signals
+    	.user_gpio_out(user_io_out[1:0]),
+    	.user_gpio_oeb(user_io_oeb[1:0]),
+    	.user_gpio_in(user_io_in[1:0]),
+
+    	// Pad-facing signals (Pad GPIOv2)
+    	.pad_gpio_inenb(mprj_io_inp_dis[1:0]),
+    	.pad_gpio_ib_mode_sel(mprj_io_ib_mode_sel[1:0]),
+    	.pad_gpio_vtrip_sel(mprj_io_vtrip_sel[1:0]),
+    	.pad_gpio_slow_sel(mprj_io_slow_sel[1:0]),
+    	.pad_gpio_holdover(mprj_io_holdover[1:0]),
+    	.pad_gpio_ana_en(mprj_io_analog_en[1:0]),
+    	.pad_gpio_ana_sel(mprj_io_analog_sel[1:0]),
+    	.pad_gpio_ana_pol(mprj_io_analog_pol[1:0]),
+    	.pad_gpio_dm(mprj_io_dm[5:0]),
+    	.pad_gpio_outenb(mprj_io_oeb[1:0]),
+    	.pad_gpio_out(mprj_io_out[1:0]),
+    	.pad_gpio_in(mprj_io_in[1:0])
+    );
+
+    /* Section 1 GPIOs (GPIO 0 to 18) */
+    wire [`MPRJ_IO_PADS_1-1:2] one_loop1;
+    gpio_control_block gpio_control_in_1 [`MPRJ_IO_PADS_1-3:0] (
+    `ifdef USE_POWER_PINS
+        .vccd(vccd_core),
+		.vssd(vssd_core),
+		.vccd1(vccd1_core),
+		.vssd1(vssd1_core),
+    `endif
+
+    	// Management Soc-facing signals
+
+    	.resetn(gpio_resetn_1_shifted[(`MPRJ_IO_PADS_1-1):2]),
+    	.serial_clock(gpio_clock_1_shifted[(`MPRJ_IO_PADS_1-1):2]),
+
+    	.resetn_out(gpio_resetn_1[(`MPRJ_IO_PADS_1-1):2]),
+    	.serial_clock_out(gpio_clock_1[(`MPRJ_IO_PADS_1-1):2]),
+
+		.mgmt_gpio_in(mgmt_io_in[(`MPRJ_IO_PADS_1-1):2]),
+		.mgmt_gpio_out(mgmt_io_in[(`MPRJ_IO_PADS_1-1):2]),
+		.mgmt_gpio_oeb(one_loop1),
+
+        .one(one_loop1),
+        .zero(),
+
+    	// Serial data chain for pad configuration
+    	.serial_data_in(gpio_serial_link_1_shifted[(`MPRJ_IO_PADS_1-1):2]),
+    	.serial_data_out(gpio_serial_link_1[(`MPRJ_IO_PADS_1-1):2]),
+
+    	// User-facing signals
+    	.user_gpio_out(user_io_out[(`MPRJ_IO_PADS_1-1):2]),
+    	.user_gpio_oeb(user_io_oeb[(`MPRJ_IO_PADS_1-1):2]),
+    	.user_gpio_in(user_io_in[(`MPRJ_IO_PADS_1-1):2]),
+
+    	// Pad-facing signals (Pad GPIOv2)
+    	.pad_gpio_inenb(mprj_io_inp_dis[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_ib_mode_sel(mprj_io_ib_mode_sel[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_vtrip_sel(mprj_io_vtrip_sel[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_slow_sel(mprj_io_slow_sel[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_holdover(mprj_io_holdover[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_ana_en(mprj_io_analog_en[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_ana_sel(mprj_io_analog_sel[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_ana_pol(mprj_io_analog_pol[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_dm(mprj_io_dm[(`MPRJ_IO_PADS_1*3-1):6]),
+    	.pad_gpio_outenb(mprj_io_oeb[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_out(mprj_io_out[(`MPRJ_IO_PADS_1-1):2]),
+    	.pad_gpio_in(mprj_io_in[(`MPRJ_IO_PADS_1-1):2])
+    );
+
+    /* Last two GPIOs (flash_io2 and flash_io3) */
+    gpio_control_block #(
+	.DM_INIT(`DM_INIT),	// Mode = output, strong up/down
+	.OENB_INIT(`OENB_INIT)	// Enable output signaling from wire
+    ) gpio_control_bidir_2 [1:0] (
+    	`ifdef USE_POWER_PINS
+			.vccd(vccd_core),
+			.vssd(vssd_core),
+			.vccd1(vccd1_core),
+			.vssd1(vssd1_core),
+        `endif
+
+    	// Management Soc-facing signals
+
+    	.resetn(gpio_resetn_1_shifted[(`MPRJ_IO_PADS_2-1):(`MPRJ_IO_PADS_2-2)]),
+    	.serial_clock(gpio_clock_1_shifted[(`MPRJ_IO_PADS_2-1):(`MPRJ_IO_PADS_2-2)]),
+
+    	.resetn_out(gpio_resetn_1[(`MPRJ_IO_PADS_2-1):(`MPRJ_IO_PADS_2-2)]),
+    	.serial_clock_out(gpio_clock_1[(`MPRJ_IO_PADS_2-1):(`MPRJ_IO_PADS_2-2)]),
+
+    	.mgmt_gpio_in(mgmt_io_in[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+		.mgmt_gpio_out({gpio_flash_io3_out, gpio_flash_io2_out}),
+		.mgmt_gpio_oeb({flash_io3_oeb_core, flash_io2_oeb_core}),
+
+        .one(),
+        .zero(),
+
+    	// Serial data chain for pad configuration
+    	.serial_data_in(gpio_serial_link_2_shifted[(`MPRJ_IO_PADS_2-1):(`MPRJ_IO_PADS_2-2)]),
+    	.serial_data_out(gpio_serial_link_2[(`MPRJ_IO_PADS_2-1):(`MPRJ_IO_PADS_2-2)]),
+
+    	// User-facing signals
+    	.user_gpio_out(user_io_out[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.user_gpio_oeb(user_io_oeb[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.user_gpio_in(user_io_in[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+
+    	// Pad-facing signals (Pad GPIOv2)
+    	.pad_gpio_inenb(mprj_io_inp_dis[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_ib_mode_sel(mprj_io_ib_mode_sel[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_vtrip_sel(mprj_io_vtrip_sel[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_slow_sel(mprj_io_slow_sel[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_holdover(mprj_io_holdover[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_ana_en(mprj_io_analog_en[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_ana_sel(mprj_io_analog_sel[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_ana_pol(mprj_io_analog_pol[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_dm(mprj_io_dm[(`MPRJ_IO_PADS*3-1):(`MPRJ_IO_PADS*3-6)]),
+    	.pad_gpio_outenb(mprj_io_oeb[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_out(mprj_io_out[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)]),
+    	.pad_gpio_in(mprj_io_in[(`MPRJ_IO_PADS-1):(`MPRJ_IO_PADS-2)])
+    );
+
+    /* Section 2 GPIOs (GPIO 19 to 37) */
+    wire [`MPRJ_IO_PADS_2-3:0] one_loop2;
+    gpio_control_block gpio_control_in_2 [`MPRJ_IO_PADS_2-3:0] (
+    	`ifdef USE_POWER_PINS
+        .vccd(vccd_core),
+		.vssd(vssd_core),
+		.vccd1(vccd1_core),
+		.vssd1(vssd1_core),
+        `endif
+
+    	// Management Soc-facing signals
+
+    	.resetn(gpio_resetn_1_shifted[(`MPRJ_IO_PADS_2-3):0]),
+    	.serial_clock(gpio_clock_1_shifted[(`MPRJ_IO_PADS_2-3):0]),
+
+    	.resetn_out(gpio_resetn_1[(`MPRJ_IO_PADS_2-3):0]),
+    	.serial_clock_out(gpio_clock_1[(`MPRJ_IO_PADS_2-3):0]),
+
+		.mgmt_gpio_in(mgmt_io_in[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+		.mgmt_gpio_out(mgmt_io_in[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+		.mgmt_gpio_oeb(one_loop2),
+
+        .one(one_loop2),
+        .zero(),
+
+    	// Serial data chain for pad configuration
+    	.serial_data_in(gpio_serial_link_2_shifted[(`MPRJ_IO_PADS_2-3):0]),
+    	.serial_data_out(gpio_serial_link_2[(`MPRJ_IO_PADS_2-3):0]),
+
+    	// User-facing signals
+    	.user_gpio_out(user_io_out[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.user_gpio_oeb(user_io_oeb[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.user_gpio_in(user_io_in[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+
+    	// Pad-facing signals (Pad GPIOv2)
+    	.pad_gpio_inenb(mprj_io_inp_dis[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_ib_mode_sel(mprj_io_ib_mode_sel[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_vtrip_sel(mprj_io_vtrip_sel[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_slow_sel(mprj_io_slow_sel[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_holdover(mprj_io_holdover[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_ana_en(mprj_io_analog_en[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_ana_sel(mprj_io_analog_sel[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_ana_pol(mprj_io_analog_pol[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_dm(mprj_io_dm[(`MPRJ_IO_PADS*3-7):(`MPRJ_IO_PADS_1*3)]),
+    	.pad_gpio_outenb(mprj_io_oeb[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_out(mprj_io_out[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)]),
+    	.pad_gpio_in(mprj_io_in[(`MPRJ_IO_PADS-3):(`MPRJ_IO_PADS_1)])
+    );
+
+    user_id_programming #(
+	.USER_PROJECT_ID(USER_PROJECT_ID)
+    ) user_id_value (
+	`ifdef USE_POWER_PINS
+		.VPWR(vccd_core),
+		.VGND(vssd_core),
+	`endif
+	.mask_rev(mask_rev)
+    );
+
+    // Power-on-reset circuit
+    simple_por por (
+	`ifdef USE_POWER_PINS
+		.vdd3v3(vddio_core),
+		.vdd1v8(vccd_core),
+		.vss(vssio_core),
+	`endif
+		.porb_h(porb_h),
+		.porb_l(porb_l),
+		.por_l(por_l)
+    );
+
+    // XRES (chip input pin reset) reset level converter
+    sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped rstb_level (
+	`ifdef USE_POWER_PINS
+		.VPWR(vddio_core),
+		.LVPWR(vccd_core),
+		.VGND(vssio_core),
+	`endif
+		.A(rstb_h),
+		.X(rstb_l)
+    );
+
+	// Storage area
+	storage storage(
+	`ifdef USE_POWER_PINS
+        .VPWR(vccd_core),
+        .VGND(vssd_core),
+    `endif
+		.mgmt_clk(caravel_clk),
+        .mgmt_ena(mgmt_ena),
+        .mgmt_wen(mgmt_wen),
+        .mgmt_wen_mask(mgmt_wen_mask),
+        .mgmt_addr(mgmt_addr),
+        .mgmt_wdata(mgmt_wdata),
+        .mgmt_rdata(mgmt_rdata),
+        // Management RO interface
+        .mgmt_ena_ro(mgmt_ena_ro),
+        .mgmt_addr_ro(mgmt_addr_ro),
+        .mgmt_rdata_ro(mgmt_rdata_ro)
+	);
+
+endmodule
+// `default_nettype wire