aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBill Traynor <wmat@riscv.org>2024-01-31 14:33:09 -0500
committerBill Traynor <wmat@riscv.org>2024-01-31 14:33:09 -0500
commitad672f9e8f8d9aa8f3f65b8c6aeda9eba2e25f8a (patch)
tree2a2592491c7fabe08b10bf2f413d9d3d57039bf5 /src
parenta209a72ac7978683f8907c23dd0138a5608ad962 (diff)
downloadriscv-isa-manual-ad672f9e8f8d9aa8f3f65b8c6aeda9eba2e25f8a.zip
riscv-isa-manual-ad672f9e8f8d9aa8f3f65b8c6aeda9eba2e25f8a.tar.gz
riscv-isa-manual-ad672f9e8f8d9aa8f3f65b8c6aeda9eba2e25f8a.tar.bz2
Pulling in the Zc chapter.
Pulling in the Zc chapter.
Diffstat (limited to 'src')
-rw-r--r--src/riscv-unprivileged.adoc2
-rw-r--r--src/zc/.gitignore4
-rw-r--r--src/zc/Zc.adoc (renamed from src/zc.adoc)6
-rw-r--r--src/zc/Zcb_footer.adoc12
-rw-r--r--src/zc/Zcf_footer.adoc12
-rw-r--r--src/zc/Zcmb_footer.adoc12
-rw-r--r--src/zc/Zcmd.adoc22
-rw-r--r--src/zc/Zcmd.pdf2387
-rw-r--r--src/zc/Zcmd_footer.adoc12
-rw-r--r--src/zc/Zcmp_footer.adoc12
-rw-r--r--src/zc/Zcmpe_footer.adoc12
-rw-r--r--src/zc/Zcmt_footer.adoc12
-rw-r--r--src/zc/c_lbsb_imm_offset.adoc8
-rw-r--r--src/zc/c_lbu.adoc46
-rw-r--r--src/zc/c_lh.adoc48
-rw-r--r--src/zc/c_lhsh_imm_offset.adoc8
-rw-r--r--src/zc/c_lhu.adoc48
-rw-r--r--src/zc/c_mul.adoc48
-rw-r--r--src/zc/c_not.adoc50
-rw-r--r--src/zc/c_sb.adoc46
-rw-r--r--src/zc/c_sext_b.adoc48
-rw-r--r--src/zc/c_sext_h.adoc49
-rw-r--r--src/zc/c_sh.adoc48
-rw-r--r--src/zc/c_zca_required.adocbin0 -> 60 bytes
-rw-r--r--src/zc/c_zext_b.adoc52
-rw-r--r--src/zc/c_zext_h.adoc49
-rw-r--r--src/zc/c_zext_w.adoc51
-rw-r--r--src/zc/changes_since_v0.50.adoc130
-rw-r--r--src/zc/cm_decbnez.adoc50
-rw-r--r--src/zc/cm_jalt.adoc74
-rw-r--r--src/zc/cm_jt.adoc74
-rw-r--r--src/zc/cm_lb.adoc47
-rw-r--r--src/zc/cm_lbsb_imm_offset.adoc9
-rw-r--r--src/zc/cm_lbu.adoc50
-rw-r--r--src/zc/cm_lh.adoc51
-rw-r--r--src/zc/cm_lhsh_imm_offset.adoc9
-rw-r--r--src/zc/cm_lhu.adoc51
-rw-r--r--src/zc/cm_mva01s.adoc62
-rw-r--r--src/zc/cm_mvsa01.adoc65
-rw-r--r--src/zc/cm_pop.adoc49
-rw-r--r--src/zc/cm_pop_popret_loads_pseudo_code.adoc25
-rw-r--r--src/zc/cm_pop_pseudo_code.adoc7
-rw-r--r--src/zc/cm_popret.adoc49
-rw-r--r--src/zc/cm_popret_pseudo_code.adoc9
-rw-r--r--src/zc/cm_popretz.adoc49
-rw-r--r--src/zc/cm_popretz_pseudo_code.adoc14
-rw-r--r--src/zc/cm_push.adoc48
-rw-r--r--src/zc/cm_push_pseudo_code.adoc7
-rw-r--r--src/zc/cm_push_stores_pseudo_code.adoc25
-rw-r--r--src/zc/cm_sb.adoc50
-rw-r--r--src/zc/cm_sh.adoc51
-rw-r--r--src/zc/example.bib40
-rw-r--r--src/zc/jvt_csr.adoc65
-rw-r--r--src/zc/pushpop.adoc349
-rw-r--r--src/zc/pushpop_extra_info.adoc22
-rw-r--r--src/zc/pushpop_vars.adoc91
-rw-r--r--src/zc/readme.md15
-rw-r--r--src/zc/tablejump.adoc49
-rw-r--r--src/zc/variable_def.adoc1
59 files changed, 4787 insertions, 4 deletions
diff --git a/src/riscv-unprivileged.adoc b/src/riscv-unprivileged.adoc
index 0743542..4a5bab8 100644
--- a/src/riscv-unprivileged.adoc
+++ b/src/riscv-unprivileged.adoc
@@ -127,7 +127,7 @@ include::zfa.adoc[]
include::ztso-st-ext.adoc[]
//ztso.tex
include::rv-32-64g.adoc[]
-include::zc.adoc[]
+include::zc/Zc.adoc[]
//gmaps.tex
include::extending.adoc[]
//extensions.tex
diff --git a/src/zc/.gitignore b/src/zc/.gitignore
new file mode 100644
index 0000000..feddacc
--- /dev/null
+++ b/src/zc/.gitignore
@@ -0,0 +1,4 @@
+*.svg
+.asciidoctor/
+
+
diff --git a/src/zc.adoc b/src/zc/Zc.adoc
index 0ec1b3e..137824f 100644
--- a/src/zc.adoc
+++ b/src/zc/Zc.adoc
@@ -1,6 +1,6 @@
-:sectnums:
-:version-label: v1.0.4-2
-:lifecycle-state: ratified
+//:sectnums:
+//:version-label: v1.0.4-2
+//:lifecycle-state: ratified
[#Zc]
== Zc* {version-label}
diff --git a/src/zc/Zcb_footer.adoc b/src/zc/Zcb_footer.adoc
new file mode 100644
index 0000000..1c8122d
--- /dev/null
+++ b/src/zc/Zcb_footer.adoc
@@ -0,0 +1,12 @@
+
+Included in::
+[%header,cols="4,2,2"]
+|===
+|Extension
+|Minimum version
+|Lifecycle state
+
+|Zcb (<<Zcb>>)
+|{version-label}
+|{lifecycle-state}
+|===
diff --git a/src/zc/Zcf_footer.adoc b/src/zc/Zcf_footer.adoc
new file mode 100644
index 0000000..62f336a
--- /dev/null
+++ b/src/zc/Zcf_footer.adoc
@@ -0,0 +1,12 @@
+
+Included in::
+[%header,cols="4,2,2"]
+|===
+|Extension
+|Minimum version
+|Lifecycle state
+
+|Zcf (<<Zcf>>)
+|{version-label}
+|{lifecycle-state}
+|===
diff --git a/src/zc/Zcmb_footer.adoc b/src/zc/Zcmb_footer.adoc
new file mode 100644
index 0000000..ac73f23
--- /dev/null
+++ b/src/zc/Zcmb_footer.adoc
@@ -0,0 +1,12 @@
+
+Included in::
+[%header,cols="4,2,2"]
+|===
+|Extension
+|Minimum version
+|Lifecycle state
+
+|Zcmb (<<Zcmb>>)
+|v0.70.5
+|{lifecycle-state}
+|===
diff --git a/src/zc/Zcmd.adoc b/src/zc/Zcmd.adoc
new file mode 100644
index 0000000..a5ff18e
--- /dev/null
+++ b/src/zc/Zcmd.adoc
@@ -0,0 +1,22 @@
+[#Zcmd]
+==== Zcmd v0.1
+
+This document is in the Development state. Assume everything can change. For more information see:
+https://riscv.org/spec-state
+
+[%header,cols="^1,^1,4,8"]
+|===
+|RV32
+|RV64
+|Mnemonic
+|Instruction
+
+|&#10003;
+|&#10003;
+|cm.decbnez t0, imm
+|<<#insns-cm_decbnez>>
+
+|===
+
+include::cm_decbnez.adoc[]
+
diff --git a/src/zc/Zcmd.pdf b/src/zc/Zcmd.pdf
new file mode 100644
index 0000000..9035979
--- /dev/null
+++ b/src/zc/Zcmd.pdf
@@ -0,0 +1,2387 @@
+%PDF-1.4
+%ÿÿÿÿ
+1 0 obj
+<< /Title (Untitled)
+/Creator (Asciidoctor PDF 1.6.0, based on Prawn 2.4.0)
+/Producer (Asciidoctor PDF 1.6.0, based on Prawn 2.4.0)
+/ModDate (D:20220121110536+00'00')
+/CreationDate (D:20220121110919+00'00')
+>>
+endobj
+2 0 obj
+<< /Type /Catalog
+/Pages 3 0 R
+/Names 9 0 R
+/Outlines 24 0 R
+/PageLabels 28 0 R
+/PageMode /UseOutlines
+/OpenAction [7 0 R /FitH 841.89]
+/ViewerPreferences << /DisplayDocTitle true
+>>
+>>
+endobj
+3 0 obj
+<< /Type /Pages
+/Count 2
+/Kids [7 0 R 18 0 R]
+>>
+endobj
+4 0 obj
+<< /Length 2
+>>
+stream
+q
+
+endstream
+endobj
+5 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/CropBox [0 0 595.28 841.89]
+/BleedBox [0 0 595.28 841.89]
+/TrimBox [0 0 595.28 841.89]
+/ArtBox [0 0 595.28 841.89]
+/Contents 4 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+>>
+>>
+endobj
+6 0 obj
+<< /Length 5286
+>>
+stream
+q
+/DeviceRGB cs
+0.2431 0.0196 0.5569 scn
+/DeviceRGB CS
+0.2431 0.0196 0.5569 SCN
+
+BT
+48.24 792.89 Td
+/F1.0 13 Tf
+<5a636d642076302e31> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+3.4131 Tw
+
+BT
+48.24 768.24 Td
+/F1.0 10.5 Tf
+<5468697320646f63756d656e7420697320696e2074686520446576656c6f706d656e742073746174652e20417373756d652065766572797468696e672063616e206368616e67652e20466f72206d6f726520696e666f726d6174696f6e207365653a> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+BT
+48.24 754.14 Td
+/F1.0 10.5 Tf
+<68747470733a2f2f72697363762e6f72672f737065632d7374617465> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 717.09 35.6283 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+83.8683 717.09 35.6283 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+119.4966 717.09 142.5141 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+262.0107 717.09 285.0293 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 694.89 35.6283 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+83.8683 694.89 35.6283 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+119.4966 694.89 142.5141 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+262.0107 694.89 285.0293 22.2 re
+f
+0.0 0.0 0.0 scn
+0.2 w
+0.8667 0.8667 0.8667 SCN
+48.24 739.29 m
+83.8683 739.29 l
+S
+[] 0 d
+1.25 w
+0.8667 0.8667 0.8667 SCN
+48.24 717.09 m
+83.8683 717.09 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+48.24 739.39 m
+48.24 716.465 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+83.8683 739.39 m
+83.8683 716.465 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+53.2401 725.04 Td
+/F2.0 10.5 Tf
+<52563332> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.2 w
+0.8667 0.8667 0.8667 SCN
+83.8683 739.29 m
+119.4966 739.29 l
+S
+[] 0 d
+1.25 w
+0.8667 0.8667 0.8667 SCN
+83.8683 717.09 m
+119.4966 717.09 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+83.8683 739.39 m
+83.8683 716.465 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+119.4966 739.39 m
+119.4966 716.465 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+88.8684 725.04 Td
+/F2.0 10.5 Tf
+<52563634> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.2 w
+0.8667 0.8667 0.8667 SCN
+119.4966 739.29 m
+262.0107 739.29 l
+S
+[] 0 d
+1.25 w
+0.8667 0.8667 0.8667 SCN
+119.4966 717.09 m
+262.0107 717.09 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+119.4966 739.39 m
+119.4966 716.465 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+262.0107 739.39 m
+262.0107 716.465 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+122.4966 725.04 Td
+/F2.0 10.5 Tf
+<4d6e656d6f6e6963> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.2 w
+0.8667 0.8667 0.8667 SCN
+262.0107 739.29 m
+547.04 739.29 l
+S
+[] 0 d
+1.25 w
+0.8667 0.8667 0.8667 SCN
+262.0107 717.09 m
+547.04 717.09 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+262.0107 739.39 m
+262.0107 716.465 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+547.04 739.39 m
+547.04 716.465 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+265.0107 725.04 Td
+/F2.0 10.5 Tf
+<496e737472756374696f6e> Tj
+ET
+
+0.0 0.0 0.0 scn
+1.25 w
+0.8667 0.8667 0.8667 SCN
+48.24 717.09 m
+83.8683 717.09 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+48.24 694.89 m
+83.8683 694.89 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+48.24 717.715 m
+48.24 694.79 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+83.8683 717.715 m
+83.8683 694.79 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+61.3041 702.21 Td
+/F3.1 10.5 Tf
+<21> Tj
+ET
+
+0.0 0.0 0.0 scn
+1.25 w
+0.8667 0.8667 0.8667 SCN
+83.8683 717.09 m
+119.4966 717.09 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+83.8683 694.89 m
+119.4966 694.89 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+83.8683 717.715 m
+83.8683 694.79 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+119.4966 717.715 m
+119.4966 694.79 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+96.9324 702.21 Td
+/F3.1 10.5 Tf
+<21> Tj
+ET
+
+0.0 0.0 0.0 scn
+1.25 w
+0.8667 0.8667 0.8667 SCN
+119.4966 717.09 m
+262.0107 717.09 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+119.4966 694.89 m
+262.0107 694.89 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+119.4966 717.715 m
+119.4966 694.79 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+262.0107 717.715 m
+262.0107 694.79 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+122.4966 702.84 Td
+/F1.0 10.5 Tf
+<636d2e646563626e657a2074302c20696d6d> Tj
+ET
+
+0.0 0.0 0.0 scn
+1.25 w
+0.8667 0.8667 0.8667 SCN
+262.0107 717.09 m
+547.04 717.09 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+262.0107 694.89 m
+547.04 694.89 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+262.0107 717.715 m
+262.0107 694.79 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+547.04 717.715 m
+547.04 694.79 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+BT
+265.0107 702.84 Td
+/F1.0 10.5 Tf
+<636d2e646563626e657a3a2044656372656d656e7420616e64206272616e63682c2031362d62697420656e636f64696e67> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+0.0 0.0 0.0 scn
+q
+0.0 0.0 0.0 scn
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+/Stamp1 Do
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+514.477 825.4592 Td
+/F1.0 9 Tf
+<7c20506167652031> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+Q
+q
+0.0 0.0 0.0 scn
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+/Stamp3 Do
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+456.544 16.675 Td
+/F1.0 9 Tf
+<5a636d642076302e31207c20a920524953432d56> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+Q
+Q
+
+endstream
+endobj
+7 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/CropBox [0 0 595.28 841.89]
+/BleedBox [0 0 595.28 841.89]
+/TrimBox [0 0 595.28 841.89]
+/ArtBox [0 0 595.28 841.89]
+/Contents 6 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F1.0 12 0 R
+/F2.0 14 0 R
+/F3.1 15 0 R
+>>
+/XObject << /Stamp1 29 0 R
+/Stamp3 31 0 R
+>>
+>>
+/Annots [13 0 R 16 0 R]
+>>
+endobj
+8 0 obj
+[7 0 R /XYZ 0 841.89 null]
+endobj
+9 0 obj
+<< /Type /Names
+/Dests 10 0 R
+>>
+endobj
+10 0 obj
+<< /Names [(Zcmd) 11 0 R (__anchor-top) 8 0 R (insns-cm_decbnez) 19 0 R]
+>>
+endobj
+11 0 obj
+[7 0 R /XYZ 0 841.89 null]
+endobj
+12 0 obj
+<< /Type /Font
+/BaseFont /b0705e+CMUSansSerif
+/Subtype /TrueType
+/FontDescriptor 34 0 R
+/FirstChar 32
+/LastChar 255
+/Widths 36 0 R
+/ToUnicode 35 0 R
+>>
+endobj
+13 0 obj
+<< /Border [0 0 0]
+/A << /Type /Action
+/S /URI
+/URI (https://riscv.org/spec-state)
+>>
+/Subtype /Link
+/Rect [48.24 752.04 169.578 762.54]
+/Type /Annot
+>>
+endobj
+14 0 obj
+<< /Type /Font
+/BaseFont /e1b069+CMUSansSerif-Bold
+/Subtype /TrueType
+/FontDescriptor 38 0 R
+/FirstChar 32
+/LastChar 255
+/Widths 40 0 R
+/ToUnicode 39 0 R
+>>
+endobj
+15 0 obj
+<< /Type /Font
+/BaseFont /28d5ce+mplus-1p-regular
+/Subtype /TrueType
+/FontDescriptor 42 0 R
+/FirstChar 32
+/LastChar 255
+/Widths 44 0 R
+/ToUnicode 43 0 R
+>>
+endobj
+16 0 obj
+<< /Border [0 0 0]
+/Dest (insns-cm_decbnez)
+/Subtype /Link
+/Rect [265.0107 700.74 496.2837 711.24]
+/Type /Annot
+>>
+endobj
+17 0 obj
+<< /Length 13824
+>>
+stream
+q
+/DeviceRGB cs
+0.2431 0.0196 0.5569 scn
+/DeviceRGB CS
+0.2431 0.0196 0.5569 SCN
+
+BT
+48.24 787.89 Td
+/F1.0 18 Tf
+<636d2e646563626e657a3a205468697320697320696e2074686520> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2431 0.0196 0.5569 scn
+0.2431 0.0196 0.5569 SCN
+
+BT
+251.568 787.89 Td
+/F4.0 18 Tf
+<646576656c6f706d656e74> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2431 0.0196 0.5569 scn
+0.2431 0.0196 0.5569 SCN
+
+BT
+345.852 787.89 Td
+/F1.0 18 Tf
+<2070686173652c20666f722062656e63686d61726b696e67> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2431 0.0196 0.5569 scn
+0.2431 0.0196 0.5569 SCN
+
+BT
+48.24 766.29 Td
+/F1.0 18 Tf
+<616e642070726f746f747970696e67206f6e6c79> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+48.24 740.64 Td
+/F2.0 10.5 Tf
+<53796e6f70736973> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+63.24 723.54 Td
+/F1.0 10.5 Tf
+<44656372656d656e7420616e64206272616e63682c2031362d62697420656e636f64696e67> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+48.24 697.44 Td
+/F2.0 10.5 Tf
+<4d6e656d6f6e6963> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+63.24 680.34 Td
+/F1.0 10.5 Tf
+<636d2e646563626e657a20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+117.4935 680.34 Td
+/F4.0 10.5 Tf
+<7430> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+126.534 680.34 Td
+/F1.0 10.5 Tf
+<2c20> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+132.9495 680.34 Td
+/F4.0 10.5 Tf
+<6f6666736574> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+48.24 654.24 Td
+/F2.0 10.5 Tf
+<456e636f64696e672028525633322c205256363429> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+q
+48.24 604.745 m
+547.04 604.745 l
+547.04 648.39 l
+48.24 648.39 l
+h
+W n
+0.0 0.0 0.0 scn
+0.6235 0.0 0.0 0.6235 18.16236 244.11884 cm
+1.0 0.0 0.0 1.0 0.0 0.0 cm
+q
+q
+1.0 0.0 0.0 1.0 0.5 -0.5 cm
+q
+q
+1.0 0.0 0.0 1.0 4.0 -21.0 cm
+q
+0.0 0.0 0.0 SCN
+1.0 w
+1 J
+q
+48.24 648.39 m
+839.24 648.39 l
+S
+Q
+q
+48.24 648.39 m
+48.24 617.39 l
+S
+Q
+q
+48.24 617.39 m
+839.24 617.39 l
+S
+Q
+q
+839.24 648.39 m
+839.24 617.39 l
+S
+Q
+q
+790.24 648.39 m
+790.24 645.39 l
+S
+Q
+q
+790.24 617.39 m
+790.24 620.39 l
+S
+Q
+q
+740.24 648.39 m
+740.24 617.39 l
+S
+Q
+q
+691.24 648.39 m
+691.24 645.39 l
+S
+Q
+q
+691.24 617.39 m
+691.24 620.39 l
+S
+Q
+q
+641.24 648.39 m
+641.24 645.39 l
+S
+Q
+q
+641.24 617.39 m
+641.24 620.39 l
+S
+Q
+q
+592.24 648.39 m
+592.24 645.39 l
+S
+Q
+q
+592.24 617.39 m
+592.24 620.39 l
+S
+Q
+q
+542.24 648.39 m
+542.24 645.39 l
+S
+Q
+q
+542.24 617.39 m
+542.24 620.39 l
+S
+Q
+q
+493.24 648.39 m
+493.24 645.39 l
+S
+Q
+q
+493.24 617.39 m
+493.24 620.39 l
+S
+Q
+q
+444.24 648.39 m
+444.24 617.39 l
+S
+Q
+q
+394.24 648.39 m
+394.24 617.39 l
+S
+Q
+q
+345.24 648.39 m
+345.24 645.39 l
+S
+Q
+q
+345.24 617.39 m
+345.24 620.39 l
+S
+Q
+q
+295.24 648.39 m
+295.24 645.39 l
+S
+Q
+q
+295.24 617.39 m
+295.24 620.39 l
+S
+Q
+q
+246.24 648.39 m
+246.24 617.39 l
+S
+Q
+q
+196.24 648.39 m
+196.24 617.39 l
+S
+Q
+q
+147.24 648.39 m
+147.24 645.39 l
+S
+Q
+q
+147.24 617.39 m
+147.24 620.39 l
+S
+Q
+q
+97.24 648.39 m
+97.24 645.39 l
+S
+Q
+q
+97.24 617.39 m
+97.24 620.39 l
+S
+Q
+Q
+q
+q
+Q
+q
+q
+1.0 0.0 0.0 1.0 25.0 11.0 cm
+q
+q
+1.0 0.0 0.0 1.0 742.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<30>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 692.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<31>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 643.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<32>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 396.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<37>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 346.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<38>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 297.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<39>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 198.0 0.0 cm
+q
+
+BT
+40.456 642.39 Td
+/F5.0 14 Tf
+[<3131>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 148.0 0.0 cm
+q
+
+BT
+40.456 642.39 Td
+/F5.0 14 Tf
+[<3132>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 99.0 0.0 cm
+q
+
+BT
+40.456 642.39 Td
+/F5.0 14 Tf
+[<3133>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+
+BT
+40.456 642.39 Td
+/F5.0 14 Tf
+[<3135>] TJ
+ET
+
+Q
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 25.0 -15.0 cm
+q
+q
+q
+1.0 0.0 0.0 1.0 742.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<30>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 692.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<31>] TJ
+ET
+
+Q
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 519.0 0.0 cm
+q
+q
+
+BT
+4.266 642.39 Td
+/F5.0 14 Tf
+[<696d6d5b367c377c333a317c355d>] TJ
+ET
+
+Q
+Q
+Q
+Q
+q
+q
+q
+1.0 0.0 0.0 1.0 346.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<31>] TJ
+ET
+
+Q
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 247.0 0.0 cm
+q
+q
+
+BT
+15.69 642.39 Td
+/F5.0 14 Tf
+[<696d6d5b347c393a385d>] TJ
+ET
+
+Q
+Q
+Q
+Q
+q
+q
+q
+1.0 0.0 0.0 1.0 148.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<31>] TJ
+ET
+
+Q
+Q
+Q
+Q
+q
+q
+q
+1.0 0.0 0.0 1.0 99.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<31>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 49.0 0.0 cm
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<30>] TJ
+ET
+
+Q
+Q
+Q
+q
+q
+
+BT
+44.348 642.39 Td
+/F5.0 14 Tf
+[<31>] TJ
+ET
+
+Q
+Q
+Q
+Q
+Q
+q
+q
+1.0 0.0 0.0 1.0 25.0 -39.0 cm
+q
+q
+q
+1.0 0.0 0.0 1.0 717.0 0.0 cm
+q
+q
+
+BT
+39.294 642.39 Td
+/F5.0 14 Tf
+[<4332>] TJ
+ET
+
+Q
+Q
+Q
+Q
+Q
+q
+Q
+q
+Q
+q
+Q
+q
+Q
+q
+q
+q
+1.0 0.0 0.0 1.0 49.0 0.0 cm
+q
+q
+
+BT
+20.632 642.39 Td
+/F5.0 14 Tf
+[<46554e435433>] TJ
+ET
+
+Q
+Q
+Q
+Q
+Q
+Q
+Q
+Q
+Q
+Q
+Q
+Q
+Q
+q
+0.2 w
+0.9333 0.9333 0.9333 SCN
+103.3515 592.745 m
+103.3515 570.645 l
+S
+Q
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+60.24 577.495 Td
+/F2.0 10.5 Tf
+<4e4f5445> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+115.3515 577.495 Td
+/F1.0 10.5 Tf
+<496e207468652063757272656e742070726f706f73616c206f6e6c792074302063616e2062652064656372656d656e7465642c206675747572652076657273696f6e73206d617920616c6c6f77206d6f726520726567697374657273> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+48.24 547.395 Td
+/F2.0 10.5 Tf
+<4465736372697074696f6e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+0.1407 Tw
+
+BT
+63.24 530.295 Td
+/F1.0 10.5 Tf
+<5468697320696e737472756374696f6e2064656372656d656e747320> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+0.1407 Tw
+
+BT
+188.9061 530.295 Td
+/F4.0 10.5 Tf
+<7430> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+0.1407 Tw
+
+BT
+197.9466 530.295 Td
+/F1.0 10.5 Tf
+<2c20616e6420696e6372656d656e74732074686520504320627920746865207369676e20657874656e64656420696d6d65646961746520696620> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+0.1407 Tw
+
+BT
+462.4142 530.295 Td
+/F4.0 10.5 Tf
+<7430> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+0.1407 Tw
+
+BT
+471.4547 530.295 Td
+/F1.0 10.5 Tf
+<206973207a65726f20> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+0.1407 Tw
+
+BT
+506.9678 530.295 Td
+/F2.0 10.5 Tf
+<6166746572> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+0.1407 Tw
+
+BT
+529.5218 530.295 Td
+/F1.0 10.5 Tf
+<20746865> Tj
+ET
+
+
+0.0 Tw
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+63.24 516.195 Td
+/F1.0 10.5 Tf
+<64656372656d656e742e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+48.24 490.095 Td
+/F2.0 10.5 Tf
+<50726572657175697369746573> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+63.24 472.995 Td
+/F1.0 10.5 Tf
+<43206f72205a6361> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+48.24 446.895 Td
+/F2.0 10.5 Tf
+<33322d626974206571756976616c656e74> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+63.24 429.795 Td
+/F1.0 10.5 Tf
+<4e6f6e65> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+48.24 403.695 Td
+/F2.0 10.5 Tf
+<4f7065726174696f6e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+q
+0.9569 0.9569 0.9843 scn
+51.24 397.845 m
+544.04 397.845 l
+545.6969 397.845 547.04 396.5019 547.04 394.845 c
+547.04 299.095 l
+547.04 297.4381 545.6969 296.095 544.04 296.095 c
+51.24 296.095 l
+49.5831 296.095 48.24 297.4381 48.24 299.095 c
+48.24 394.845 l
+48.24 396.5019 49.5831 397.845 51.24 397.845 c
+h
+f
+0.8 0.8 0.8 SCN
+0.2 w
+51.24 397.845 m
+544.04 397.845 l
+545.6969 397.845 547.04 396.5019 547.04 394.845 c
+547.04 299.095 l
+547.04 297.4381 545.6969 296.095 544.04 296.095 c
+51.24 296.095 l
+49.5831 296.095 48.24 297.4381 48.24 299.095 c
+48.24 394.845 l
+48.24 396.5019 49.5831 397.845 51.24 397.845 c
+h
+S
+Q
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+59.24 374.745 Td
+/F6.0 11 Tf
+<2f2f54686973206973206e6f74205341494c2c20697427732070736575646f2d636f64652e20546865205341494c206861736e2774206265656e207772697474656e207965742e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+59.24 342.845 Td
+/F6.0 11 Tf
+<7430203d20353b> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+59.24 326.895 Td
+/F6.0 11 Tf
+<5828743029203d205828743029202d313b> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+59.24 310.945 Td
+/F6.0 11 Tf
+<6966202858287430293d3d30292050432b3d7365787428696d6d293b20656c73652050432b3d323b> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+48.24 272.845 Td
+/F2.0 10.5 Tf
+<496e636c7564656420696e> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 244.795 249.4 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 244.795 124.7 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+422.34 244.795 124.7 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+48.24 222.595 249.4 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+297.64 222.595 124.7 22.2 re
+f
+0.0 0.0 0.0 scn
+1.0 1.0 1.0 scn
+422.34 222.595 124.7 22.2 re
+f
+0.0 0.0 0.0 scn
+0.2 w
+0.8667 0.8667 0.8667 SCN
+48.24 266.995 m
+297.64 266.995 l
+S
+[] 0 d
+1.25 w
+0.8667 0.8667 0.8667 SCN
+48.24 244.795 m
+297.64 244.795 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+48.24 267.095 m
+48.24 244.17 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+297.64 267.095 m
+297.64 244.17 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+51.24 252.745 Td
+/F2.0 10.5 Tf
+<457874656e73696f6e> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.2 w
+0.8667 0.8667 0.8667 SCN
+297.64 266.995 m
+422.34 266.995 l
+S
+[] 0 d
+1.25 w
+0.8667 0.8667 0.8667 SCN
+297.64 244.795 m
+422.34 244.795 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+297.64 267.095 m
+297.64 244.17 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+422.34 267.095 m
+422.34 244.17 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+300.64 252.745 Td
+/F2.0 10.5 Tf
+<4d696e696d756d2076657273696f6e> Tj
+ET
+
+0.0 0.0 0.0 scn
+0.2 w
+0.8667 0.8667 0.8667 SCN
+422.34 266.995 m
+547.04 266.995 l
+S
+[] 0 d
+1.25 w
+0.8667 0.8667 0.8667 SCN
+422.34 244.795 m
+547.04 244.795 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+422.34 267.095 m
+422.34 244.17 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+547.04 267.095 m
+547.04 244.17 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+425.34 252.745 Td
+/F2.0 10.5 Tf
+<4c6966656379636c65207374617465> Tj
+ET
+
+0.0 0.0 0.0 scn
+1.25 w
+0.8667 0.8667 0.8667 SCN
+48.24 244.795 m
+297.64 244.795 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+48.24 222.595 m
+297.64 222.595 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+48.24 245.42 m
+48.24 222.495 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+297.64 245.42 m
+297.64 222.495 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+51.24 230.545 Td
+/F1.0 10.5 Tf
+<5a636d642028> Tj
+ET
+
+0.2588 0.5451 0.7922 scn
+0.2588 0.5451 0.7922 SCN
+
+BT
+83.664 230.545 Td
+/F1.0 10.5 Tf
+<5a636d642076302e31> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+130.263 230.545 Td
+/F1.0 10.5 Tf
+<29> Tj
+ET
+
+0.0 0.0 0.0 scn
+1.25 w
+0.8667 0.8667 0.8667 SCN
+297.64 244.795 m
+422.34 244.795 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+297.64 222.595 m
+422.34 222.595 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+297.64 245.42 m
+297.64 222.495 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+422.34 245.42 m
+422.34 222.495 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+300.64 230.545 Td
+/F1.0 10.5 Tf
+<302e31> Tj
+ET
+
+0.0 0.0 0.0 scn
+1.25 w
+0.8667 0.8667 0.8667 SCN
+422.34 244.795 m
+547.04 244.795 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+422.34 222.595 m
+547.04 222.595 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+422.34 245.42 m
+422.34 222.495 l
+S
+[] 0 d
+0.2 w
+0.8667 0.8667 0.8667 SCN
+547.04 245.42 m
+547.04 222.495 l
+S
+[] 0 d
+1 w
+0.0 0.0 0.0 SCN
+0.2196 0.2196 0.2196 scn
+
+BT
+425.34 230.545 Td
+/F1.0 10.5 Tf
+<446576656c6f706d656e74> Tj
+ET
+
+0.0 0.0 0.0 scn
+q
+0.0 0.0 0.0 scn
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+/Stamp2 Do
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+49.24 825.4592 Td
+/F1.0 9 Tf
+<636d2e646563626e657a3a205468697320697320696e2074686520> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+150.904 825.4592 Td
+/F4.0 9 Tf
+<646576656c6f706d656e74> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+198.046 825.4592 Td
+/F1.0 9 Tf
+<2070686173652c20666f722062656e63686d61726b696e6720616e642070726f746f747970696e67206f6e6c79207c20506167652032> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+Q
+q
+0.0 0.0 0.0 scn
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+/Stamp4 Do
+0.2196 0.2196 0.2196 scn
+0.2196 0.2196 0.2196 SCN
+
+BT
+49.24 16.675 Td
+/F1.0 9 Tf
+<5a636d642076302e31207c20a920524953432d56> Tj
+ET
+
+0.0 0.0 0.0 SCN
+0.0 0.0 0.0 scn
+Q
+Q
+
+endstream
+endobj
+18 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 595.28 841.89]
+/CropBox [0 0 595.28 841.89]
+/BleedBox [0 0 595.28 841.89]
+/TrimBox [0 0 595.28 841.89]
+/ArtBox [0 0 595.28 841.89]
+/Contents 17 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F1.0 12 0 R
+/F4.0 20 0 R
+/F2.0 14 0 R
+/F5.0 21 0 R
+/F6.0 22 0 R
+>>
+/XObject << /Stamp2 30 0 R
+/Stamp4 32 0 R
+>>
+>>
+/Annots [23 0 R]
+>>
+endobj
+19 0 obj
+[18 0 R /XYZ 0 841.89 null]
+endobj
+20 0 obj
+<< /Type /Font
+/BaseFont /e7a97f+CMUSansSerif-Oblique
+/Subtype /TrueType
+/FontDescriptor 46 0 R
+/FirstChar 32
+/LastChar 255
+/Widths 48 0 R
+/ToUnicode 47 0 R
+>>
+endobj
+21 0 obj
+<< /Type /Font
+/Subtype /Type1
+/BaseFont /Helvetica
+/Encoding /WinAnsiEncoding
+>>
+endobj
+22 0 obj
+<< /Type /Font
+/BaseFont /8a6373+CMUTypewriter-Light
+/Subtype /TrueType
+/FontDescriptor 50 0 R
+/FirstChar 32
+/LastChar 255
+/Widths 52 0 R
+/ToUnicode 51 0 R
+>>
+endobj
+23 0 obj
+<< /Border [0 0 0]
+/Dest (Zcmd)
+/Subtype /Link
+/Rect [83.664 228.445 130.263 238.945]
+/Type /Annot
+>>
+endobj
+24 0 obj
+<< /Type /Outlines
+/Count 3
+/First 25 0 R
+/Last 27 0 R
+>>
+endobj
+25 0 obj
+<< /Title <feff0055006e007400690074006c00650064>
+/Parent 24 0 R
+/Count 0
+/Next 26 0 R
+/Dest [7 0 R /XYZ 0 841.89 null]
+>>
+endobj
+26 0 obj
+<< /Title <feff005a0063006d0064002000760030002e0031>
+/Parent 24 0 R
+/Count 0
+/Next 27 0 R
+/Prev 25 0 R
+/Dest [7 0 R /XYZ 0 841.89 null]
+>>
+endobj
+27 0 obj
+<< /Title <feff0063006d002e0064006500630062006e0065007a003a0020005400680069007300200069007300200069006e002000740068006500200064006500760065006c006f0070006d0065006e0074002000700068006100730065002c00200066006f0072002000620065006e00630068006d00610072006b0069006e006700200061006e0064002000700072006f0074006f0074007900700069006e00670020006f006e006c0079>
+/Parent 24 0 R
+/Count 0
+/Prev 26 0 R
+/Dest [18 0 R /XYZ 0 841.89 null]
+>>
+endobj
+28 0 obj
+<< /Nums [0 << /P (1)
+>> 1 << /P (2)
+>>]
+>>
+endobj
+29 0 obj
+<< /Type /XObject
+/Subtype /Form
+/BBox [0 0 595.28 841.89]
+/Length 166
+>>
+stream
+q
+/DeviceRGB cs
+0.0 0.0 0.0 scn
+/DeviceRGB CS
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+q
+0.35 w
+/DeviceRGB CS
+0.8667 0.8667 0.8667 SCN
+48.24 810.69 m
+547.04 810.69 l
+S
+Q
+Q
+
+endstream
+endobj
+30 0 obj
+<< /Type /XObject
+/Subtype /Form
+/BBox [0 0 595.28 841.89]
+/Length 166
+>>
+stream
+q
+/DeviceRGB cs
+0.0 0.0 0.0 scn
+/DeviceRGB CS
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+q
+0.35 w
+/DeviceRGB CS
+0.8667 0.8667 0.8667 SCN
+48.24 810.69 m
+547.04 810.69 l
+S
+Q
+Q
+
+endstream
+endobj
+31 0 obj
+<< /Type /XObject
+/Subtype /Form
+/BBox [0 0 595.28 841.89]
+/Length 162
+>>
+stream
+q
+/DeviceRGB cs
+0.0 0.0 0.0 scn
+/DeviceRGB CS
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+q
+0.25 w
+/DeviceRGB CS
+0.8667 0.8667 0.8667 SCN
+48.24 30.0 m
+547.04 30.0 l
+S
+Q
+Q
+
+endstream
+endobj
+32 0 obj
+<< /Type /XObject
+/Subtype /Form
+/BBox [0 0 595.28 841.89]
+/Length 162
+>>
+stream
+q
+/DeviceRGB cs
+0.0 0.0 0.0 scn
+/DeviceRGB CS
+0.0 0.0 0.0 SCN
+1 w
+0 J
+0 j
+[] 0 d
+q
+0.25 w
+/DeviceRGB CS
+0.8667 0.8667 0.8667 SCN
+48.24 30.0 m
+547.04 30.0 l
+S
+Q
+Q
+
+endstream
+endobj
+33 0 obj
+<< /Length1 11676
+/Length 7751
+/Filter [/FlateDecode]
+>>
+stream
+xœz t×yæ½3ƒ`ðšÁƒ
+†+‹Ð ¨‹ôùj‚k\ã…g5igþù™K¨‹yg2è´c^ò%¸†+Šj˜/¡0ô³1S0çÛP7 ýøEh3 0<Ëp=òÃ|~¨£Ÿ£~¼ŽF๟õ¡aÒï‚tÌa¸.Aßä íß9ÿÙà‰H/û"t$›&ãÑ;¨J\—°Šüo–Ëöߦ:!g࣠Œ™õ µh›QȤâ@När!”½úûbŸ?P,UB¨,\^QAU;ª£5µ±xªÿÿ/ë—ø·tþ·üTT£"ç€Uû/Œ©(ÜîUùèhëm»8¦|OÅΘ·VÅ5ÊÿP-ÑZ•©80Ú ÕªlÍŒWQ;†GCjÇX­ÊÕ¡¡pè¾Ñø¿3æ‡~£7ýïŽùÃ!ÕU{/ŒÑcc0Ÿ¡Æ:1^«ò5Z¾«+×&&ü*‚i„­œ6ul5k²’‰×ª¦å"Yä˜FQÙŠ¾°¢r•ý*]Ê.M*¤Ðä…ÆüK´v@¯‘E:É/…`Fsò&eÇR£ÄU!:1ª(»Ã½“SF•é;õ)H?+Y–V–”ÝK½“á%e)L— “ÉÕè ü‘µ#K*0ÆFWj]ó†B~em Ä
+O’úò¨U%¢Ð-HÁñÿ0°DáÉØÎ ê¬&–®±õO‡—UÝé_«;ø*Þ¸¢âÇЀjÕ0þô˜ÖK¤¥J`®Px`¬¸šEª ô¨lt—**=9aŒ‰ÒŠ *bq¡b„Ši P1“n{ô
+V-…ÁVhµ<ÇD5¶÷TmJÏ×åÒÚj±C[Ófu hÜhÝ8{ò%æ‹Œ>¦ OØ„zÑ€k5¢*´ 6VÚ »ý0xŽ$x¸ZTŽFQ3Š¢8
+ lÏajú
+ÿ^Aï`/nÄ£øwñ¯˜:æ5v;Ì®rî w™ûcî#Ã!Çwñ§ù…á‹F£qÈøçÆMm¢MOŠ«â[æ!ógÍoYvZÎXÞ³ÖX/XW¬Ø>cûÐÞdµÿRrH ðÎ"™÷˜›à±yðädGï¡œh@QÕ’Ô°°®¢¸&ÀØÀªWÑÚ
+gE
+Uù„ÊI9d“¢ª=±ÂêòšÚèÓ8ËUNåbÕ²ª Ò Nµ¯j¼ñªA5Æ8•_ÕlÒ ƒ*®ª¼´làÎ(¼4ÂdËÎâŒH³i«Y€Š`'Í¢´lmÐ,Úho³Þš­[ÍÐÛJz£À)šÌV›=Vøá ÄIš-Ö͵ÇQ]}ZÉ&ì ™XË"ó㛣ؕ'ÌTæßÍ¿‹Øù>v‰Ì?ß´žÄ.ì¼ù¸ŸÊ¿}¾‡‰W<¼Áã½Ì{ =r+‘’&XÖUÛ™_J'ywK¥8\9üͶ¦âc+mßü÷ýÅÎê§~‘ÿî3eÏÁi˜£æ鎸ʯiv˜ÃIæð´q©†IÉ’ö)™?j÷øZWW? T=ñù±£zlÒx6ÿ—ùžE„¦¡t £U>¾‚ÍHä¢X5ÆU¼ÊÓ˜œKh¬e}Å`E.PžiM3`Ù¡
+X2™Jºí8œ>qï¨öìµ]¼HçÑ·
+PöÅEVQ@,2ØR»] Ñd‚Reÿåôž¾á§ç$åO¿ØÛråÞÇ™ëñºg&}ÑÊ4Mì]¼ôçº|ÅØ™e ¡;ôÕya}ÅlDØ¿¿¾|-°¸ÐãoR¹Ã‘pÄr‡äcXK{ÿIÁµùï2Ë]ÿŸÖü_m;
+<²wÞš+Áƒ«ä¤|lœhÆÙLÁ83zH÷§**X¦! ˜’D[M„Ý(J9̹GmSG
+„¨¸­–«ª5¦šc`¢šŽÀ,A(ºÁ"U9nCº•}ò6n‚ 1Yg˜ ƒ7l,ðò{ζFGþzüëO]žsTík¼Ê\¯hi-ižö濆wæ_Á÷íKUïðÔ€?ÿgØãô%”«$\°eÂ„Ç ”Ww¥ù€TŸ”³ñ@vÊ;(ÙfÓUB³iU+±ßPKW—ƒ%¥`p¿ehÅd†\^cÛÊÄ(4ôPqFååeVöT’8vhN‰l%¼CÕ#/c›+LÞAƒ8oÇE”ÙÊHe$†S4(l¹Pð¦Žkì3g;÷Ç#Ì}­G/fÙª÷4u׆mçé}—¦î‰Œ 7D:%¬HS{öÞS7©`<ÜlãFO¶çÐýtï…AÏ1äa”¶,0aÁ›‹D®i<(Ö¼FaÙÐrXẨOŸ»ÀÌuuá›O0óä Ås}
+lFDwCCö£I·—Œ5°jŽ«=8ˆ$8
+Ïûç·!ÿ·A4?Zð©f³xÆ<Ô ¬.͸nƒ,‡±p³¿>à×h!žnZÍ`&{ÔC
+ClÄTÕ„9©íTïH@ª£¥ 亰ÅJa
+Vâªiœb´uHY“µz(˜¤E?Žj—r¦0…bh-–r=MPŽBypM«7 ¾¢`ê`F푯Âå±T‹…ÄÁbDz½Èæ¢m¢FŽ´–1h†ø•É¨‡Æ)Pë’Éø=ŽeÞTTL[dÍæ!òñ4¤A:éTADà{<Ô6.Ù-˜¨Vo
+Aëï(. ïHÆ™þs°„ÝcŠL쪉›½Ê@¸¾¯^4<8qô“½]¥íã¿ß^RR®ßQ–&×îÎÊòªÚŽ6íž1¥í,gL5vÞ,²»B¹6ì’›‡†2¾
+{´¬³Ux¤.SŸ‹œk¬Àþ󢽺7S-Ém~ÌUð
+²n°”jÇ%xx`çÁÊF¿Âfg$ªWõŸv{CÉ°7ÿ6.–]EòxÇ/äŠýàžfþ#äŠIš+6 Œ¿
+Ñiw™c•©®ò$¼ˆ–íÂVÞ"Ùj_qˆgmk{ܳ#Z\Ú…MŒ‘
+o¨D6Iµžš?Ý?Á Ó‚œä¬Wbt§‡xƒâp®¸ê !Þd%_@,H3“|Þ–Q‘ŽŸI˜Oº!²»]ü‘ðpïc5VǤÝ{@|¿ÿþ–_ µT>€­úÞ…µWðKȃvëç¾: âÅpÅÞÍ“~8™~I¢Ð²ö‰ràÌSDD>Ô$eÓ©M´c‡‡pi]C;‡‡wݬv›ñ}¸;¯…ƒérщ½ù7ZLi‚Üh2¡}4IHÑOÒBÈ2ÍzZhÚžšiZh¢L /CògÚ:(À¦­œÏ9Ÿ3Ɇm{F ÆËýÏŽâ—>¸¯$‰GóÝ…µ™?‚µ]€vh6¤Z“9D–7˜Éòn²<d7ëjÈA>“cM²~Þœt¹7W
+i8ÂÆ[Õ­ÃÙ¢ï?,k»n
+äà@?5 Ç~,ˆ³ùÿý7îØ<†wVå¿ŒÛÉÚ6ôó.P
+i©VPHsFË/`$yMJeF?IS+@;ùRBN
+éy;KQ|Ö³qä)œž [ó¸p0Ÿ~ä§Wî|áÚ¥Ÿ\¹ü“;/½yïï|ïâàÅ/}#ÿþ·¾ù™žë4: ¦z¬w=öè|E“Gá£Íé'^žÁeï_~䕳Oþ¯«×ðƒÿèâ¥^É>þ§oÜõ”w„±@bϳÌ}û†>aµ8{<ÒmaMÐû6¬ÉþV¬ þ¤Æõ¡¯ ?ÃF!ß|É—Z-<~ãyÂEßøWÆÆèß38Ñ϶þ`)ºé¨OŒÊ @T(³€JÛ eúÌÊ(ß](ó0ç•­¿˜*CŸ+”­è ôµBÙ†|ø˜ s&¨ÆV(cÀ7
+eYw¡Ì¢ƒL¨PæP€9_( üd¡lA»˜ç
+e+~Šy¿P¶¡îñî¹Ù Ùs‹ÙiåÎ{•ÎÙésÙ{•Ã1exrvî‚ròÜÜYå`vT997»¸Ð½÷229» ŒdÏ͜ܛž9¶^ôÎ;•U±:¥Y¹½4Ô7Õ6Ö&êê2·¿9œ=·037«ÔÅÒ0îκt]*….¤ípzqq¾9Ÿ:[{~vfjn:[˜;n*{’,›Í.ÆžžYPÈúÊÈÜÉÅ»'Ïeh833•]
+=ÎЙ³”F]îç©Ä …
+ô?MûŽ€³„ç> ,Ki¾5óàm3ÔP-ÝÎ_=ÐF.qe·¯»I áqÊ:%‹P;Ey:] çnxGj:eú˜“[”ÌoSè.¸Ÿ*Ì9KiîcÐã¸j€ŠIÊáæš“@ ‘()]€kê“`}gè·Vœ¤\w‚»&åEª÷Ûµµ
+endstream
+endobj
+34 0 obj
+<< /Type /FontDescriptor
+/FontName /b0705e+CMUSansSerif
+/FontFile2 33 0 R
+/FontBBox [-1135 -354 1481 1191]
+/Flags 4
+/StemV 0
+/ItalicAngle 0
+/Ascent 800
+/Descent -200
+/CapHeight 800
+/XHeight 0
+>>
+endobj
+35 0 obj
+<< /Length 1278
+/Filter [/FlateDecode]
+>>
+stream
+xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤ikÀÆ/‰œy¾_Ã!}øôôÓÓùtß~»]ês¿ïÇéÜnýíòåVû¾ô—Óygì¾êýë+þÖ×|ݶ“Ÿßßîýõé<.û‡‡Ýá÷í÷ûí}ÿáÇv)ý‡Ýá×[ë·ÓùeÿáÏOÏÛëç/×ë_ýµŸïûãîñqßúØú9_ɯ}à´Omûütÿ¸óϼ_ûÞòÚLL½´þv͵ßòù¥ïŽÇLJ1wýÜþó‘9ç)eÔÏù6=n?[i(JKiU:J§ÒSz•2¨Œ”Qe¢L*ÊEåJ¹ªÌ”Ye¡,*+eUÙ(›ÊNÙUÊ-уÁkä5x¼¯‘×à5ò¼F^ƒ×Èkðy ^#¯Ákä5x¼¯‘×à5ò¼F^ƒ×Èkðy ^#¯Åkåµx­¼¯•×âµòZ¼V^‹×ÊkñZy-^+¯Åkåµx­¼¯•×âµòZ¼V^‹×ÊkñZy-^+¯Ãëäux¼¯“×áuò:¼N^‡×Éëð:y^'¯Ãëäux¼¯“×áuò:¼N^‡×Éëð:y^'¯Çëåõx½¼¯—×ãõòz¼^^×Ëëñzy=^/¯Çëåõx½¼¯—×ãõòz¼^^×Ëëñzy=^/oÀä xƒ¼o7à ò¼AÞ€7ÈðyÞ oÀä xƒ¼o7à ò¼AÞ€7ÈðyÞ oÄåx£¼o”7âÝþj·ùº«üo—‰$‰JI•$’$*I$IT’H’¨$‘$QI"I¢’D’D%‰$‰JI•$’$*I$IT’D’¤$‰$III’’$’$u>áMò&¼IÞ„7É›ð&yÞ$o›äMx“¼ o’7áMò&¼IÞ„7É›ð&y¼U†o•aÁ[5ñ‚·j¶oS orÁÛ4Û‚·s
+¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x e#e®ÊÙ_y+ë¡hÜŠ7k¶:û«/ âåæZå5«dUýµl¼uz5n¥¿[ç¾ÛeBø÷&Si|y»(ô%q& %+S%ñ*Aª¾ÛÊBijPUÃ6\¥h,ž(¶+L¥ºÝ,¥‚4G©5Þ<¥ô…ÂcD› [˧©ñ¡*t› [ jj¼aijü¼IµÙxʪw¹g¶FÉ›wžØ¶¥§Rô>¶Þís¡hâ>½:­O¯VRÇËí¾³P*#àÙi|e0¼Uýí,ì*o§¿Uáûì/ãÎþ*[§¿Uê,”¦Nö¹°•m€lšx°:š&\}M³¹»)üÒðL2„´\%CHËF7æÕ§‰ÇÊ»BŽLÉ…’)æjæ€Æ»J1:%¦H߯:=Së©ÿÛ³zýr»méükÀó¹žÌOçþí¿‡ë媳ôû7±Ùð
+endstream
+endobj
+36 0 obj
+[333 760 760 760 760 760 760 760 389 389 760 760 278 333 278 500 500 500 500 760 760 760 500 760 760 760 278 760 760 760 760 760 760 667 760 639 722 760 569 760 760 278 760 760 760 760 708 760 639 760 646 555 680 760 667 760 760 760 611 760 760 760 760 760 760 480 517 444 517 444 305 500 517 239 760 489 239 794 517 500 517 760 342 383 361 517 461 683 461 461 435 760 278 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 1111 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760]
+endobj
+37 0 obj
+<< /Length1 12740
+/Length 8658
+/Filter [/FlateDecode]
+>>
+stream
+xœ½{ip×yà{}Ó=ÝÓsŸ=3ÀÌ`ŽžÁÌàÁ â%‘E
+0)‹ I $DS¶åCÊŠ¥8ëŠílâ-ÇåU¼þᬻ”'Y/âÍf]Î:v9YT|eíÄ®]x-Å»²bs«î÷Þ Êñ&Uù±v÷û^¿~ï»×M„Bz?bÑáCGëÍ™SÏüo„ð ô?synño÷ !æ$ôÎ\_²å/É'áþ©s‹ç/_äj"ÄÌðç/=uN¼üò‰%„.ÌÏý»k'wÁØïÀ1z:Äï3€¹‚
+F}¤Ãš'
+‡*®¯åaiÍEuO„‹ÔÄ®QwÑêmÎT®â
+M—3ºH7*®¿y›íuš«îhÜã|79—sx×·â‰Á;œë_ñé&ïJç
++ž¼Ã»ÊŠ+˼ Y¸)ÁdË<ç³*<é–7»E
+óú]íbëîgá|~ýÇ0æ?®ÿ˜)÷~잀/1¯¡$
+@ÐO.yþÀš›^%óc£c£[q3ÔÙ`š +8W(:øØ—8lhéPª\N‘#ÖýɇOÞÁ£Ÿá°®ñ»ÏþÞ_~æÌ®ѧÄú ¬3 ë<ëØè2¬“­»ÂªÕ×Üåº*ßtUÇ•W¼ zÇ ¯¸ª±¬¨²UqƒÆr(¶*]8ãÍ ºètá&\Ð+ª¬Cá>›ÞõYiO²#m‡)(!á¡Bu,æs“õX=Õ1ëÏøôd¬±½øØ‘´Ï½*ä†'æÿÍ•qÛ”9Ùþ+Ÿ>ýÑWLŠ˜ðíø½ßDßDϢ踨ßæ4$sìÆ Ý`Ó“õ5O6ÖÜĪ'#3à†;„¡#mŠE
+XàæH{,Ÿ+õ]Òª<'Ib0hûT5|0¨ÉÚq-:-ñ"ÖøG%DÖõ¡?Æ L´}
+ó90é«ÌWÁêÛ¨gPÅ3µµ®
+Ãó>%( g*¹-é('•+óÛÚ‡Êqñ‰[ϾãÒ1Fæ†Åû¶ª<.¢¥xPœÞ&¼À3 ƘÛß.—â™øVI®7cÍRøüTñù'/mgD–çx_È ùÊ¢AðàT ºpèv:—4êMÓ¾57n´Pwó«n²éùüT#Š RX2СÚ=fõ† ´ážâQ¯± ƒ
+à±–)¤}«’ê3Wkša2ÑPÕÉVþF3­ ®þ'v0ŒoéŠà¬/²áo&.W«—Ùà^<3xÖîýˆÊr¢Ì¨›#Ò¬ƒ4y"M ¤Û‘ãAš1¤¹›º²2H3ÒtËàí;FÅKL÷¬z2è°ÅÇr 07ez¦ÒÑ¥@¨1Ó…VÀÓýªä@hy„Ø­Ÿq@|¢‚ž‘œ²søH0Í€À…ö6ìðùœPÙÿžìVð˜gÃÏØá‡Î¶‹ÑÂø¥ÆFΔñK‚YÊø£¦&ñDP¼b¦¬v >ó±‘ý…÷9ªÀbì“?Mìœßbh"]î<\ho±y"ä€:ÄeâÁŠS'É,‘1ßYZàÆQ×$<
+ªk]–ð(¯c)c‚À‰ p%\Q ]
+¯àV8ê0³õÚÝk‰¼Ì±ØÚXƒ ò†Ål’ßå`)ìF7ÖqcTSËjÇdê¸Gh0Þ®ž>É€o­R7ýuf&©ÜýË8ªn|¸·TÕŸCôeÔµÜp«G’HÚB—jB¸j‚N$A',ho¥±¹^¾éÖ· yPâ„èeQ€À¼,‘³[7–+õ2€Uz®Ñ³CÎ]öfÀv¥N’Vµã:·ÖASŠ ;u<Zµælþð/ï¦áÜcGÌ@×ît6µ4DF­I†²&HXï0#f»0"°4ê9|‘-Í ½q¢öðP@ú#MùCINEfk¤ "ÃXù‚žŽµ€!kR@¼ÐkYÒ?Æ­&µõáò
+Ùg²Ï0dŸÒ
+³,J‘(åŒ'FîKýÚ4Á&Ä‘í47ÃôzÂ9i§u
+ùžg-Œ˜”–b8ÁTSÀ¬@øãá`²ž þNU×sCJ„Âq)fÙ»?L„B &10ë'`ýÐó*Vz1ŸzBÔ2*ãJé¦[qÜÒŠ§&ïÂÛoÝôT¿äú εV¼´qÇM¬ð¤8ô©P)/kô¬“3êƲé·
+cÁ0¸ mXgÓÎŽÙÙd¥8•IÇò0C€çö»úX­¶vÎì:ôl!“›ÊT'ìŠ[lKUš¡x³|Ñ0y^€
+Ç>~dýN-j´NŽ§œÊðC¬h³€Ø÷£2߀Z¾æP7JxBR>o
+$´’] ù0£KÉzÙa®‡£Õ;¥›åçO5CC.IœÈrL$9’Iñl:ßL„òÄ €|t` £n‰—!Ò5y3Î
+¡±Q‹“‚_Êؽê¶MË"b!¯sà!Ò,`Í
+üÏŽaIÒý!5S «Ìß½çoTý¦v÷Ç®üZy8™NBiò†(H<N§chÃÿÈ!>r®!MÒ(U90ôš Á?MÌp€¨B@L7ÝA‹ªQ™UÚôD3â6 C¤
+Ó’­EÂM„
+Š8\yúý‹ÇjVuýÇÜ»«ûªSžzúÏ|-ž^{×Á{«••Êc†Ïûýš\}ϧ¶ì z“ÓÓÌw‘ƒ¦Q·H}8`êFZ^‡ ¶ÙuO ©×I^Âö<ä\ À9À
+ËàFíwƒªÔ`ä`vtðÑ|s¾@6M?M©PHÁ3åJ¡nTÊ…zoÿƒ¼—þSðÈx¶ôãÙͼÒŸ«t,)­K$ÝqÕMOÑ@ÎC«^¼µu:½\Z«—q9‘„$˼ßG8x\ Èj+cyQ”yŽk‡b\u(áªè#sµI÷5­D[Òd‘…¢ÿî·ñ5#`¬¤4Àž&
+)œÄÔÈ ¤f‡.à7@[k%E5%+üPuëÿä…ÊV(¬ 'žÅPb¡¡Q…祀æ$­h®º³V«×ðõ*#Zþ`À²óÅý¡D+›^ÿ?áÃñ"¯°
+ƆŒûZ¶™ÿŒÓ}‘0s»&¾WÛàþ)ðlíCÝ©Ä¢=ŽH¼<1ý&eÖpGmz5ð
+JðÁºúùIc<eAo—m«aú(Õ{ÉX"S©',,ø"f¹- ˜—,­
+$>i…9Jä-«%¢ë?¯BØ ø¨¦´Òaûë„2u#¾0ÄjcðØ~¢ˆô<Q‚ß+Šè1û„hR{Iˆ’]Þ_ Þ§ÃÐP/Âк†'c,ÍÑl…ö½
+¹NŠÐ:¸A«",­Ó¨
+dæ®<Ð8DhŒC6nþ5@3Aí<6EHL‰ $'$j› ‚i÷vŒhÚ¹ oÏŽiÆ@“òë'}!ËïW|¼ŒËÍ2Ök[v&‡;C‰æcUUmd~øÌ —9 ׫wÿ”JWjr¦ù¶­ŸŠëúÎÔPÏÇá³@Wèêyc?¡ˆky!ßæ¦R°Wšn 2èÍ=h’&“¬’†-â‰Ék;ø'Ð×g´ ˆ…² MdptwÑ5‘†Œ\*&ŸÏ¨$üΔ¡IF![’߸*B¶ãkfµØgCš"÷_ÈÁ^i’݇p] ±ˆfe‰…´ê®¹z;ß ÝÀrS1*·+=° ‚ v"p só¶¤e ‰Ä•€Ë1HNoÓ k.sfŠFi+àÆÞÜ4ÀdÓÀÁtÏ`¬¦û4þB²
+õ$Ÿ¸Ž «òƒ{ë5NÅŸŽOmñË
+hYv²²üñ°•ËŸzäÂŽir;#ƒ…‘dÜ/øwŽ¾Äᨠ)BÇŸH4âQÓ''· >²«A£пÄ<õàTO>›µ€«´Hjí HTë ’Ëu'jP”è[ä•¡>pS›Ù-m]ýw?U¬¢@Ó×\ò*(T6j'až™á`89Áˆ*Ë<ÝÙ–CUHåŽ×jÇ ]×ý_æ ~¤˜OêšUܛ޶Öo€÷OñW
+òMªm@€¥€­"$# $ä;›1¸nn NÞÜaúN+B=÷ÙqØ­U'f0—K;NT#Õ*®Õ‡r»êv;À¾ˆ­j@Ó×ÿž3¸jjëÞïûý‚(—×_¬T³a+^Ë 
+À4Øè7P7¶‘O{œFPÏÖûïÆ3é›nÆqÓ+ž¿ã*+ž¢ÞôDE’8W]ñBÐ\áÉ÷’¨X•e™œ»Ð¾o Cî )YVÔ`(¥û¶*~IçææeIàQš÷DÈîÝRgŠl!65#:Ëž:­7~ƒa„kr"ñÕy~QÂÿ.©DDuý[¸ZSEI¬<‘B>?~[mÐþM }ýVÿ}D¹ÕÕˆÚ¥€ø±º;N‰Ç‰›œ‹7±â5í;nnÅÅÆ2ƒÉ¾KÏ1rv›Æò@3Tíû¨f;`i]¸C¾ø<K䚘yó³Š_ìé½dÐF@=oI¾ƒJ·WJ‘Ï!DA¤§tÇ´Pìy£˜>œ ƒ£¹¥¦†EI‘$â@R;¬˜Ñá”ú«ªó¤œnEãÃIë¤
+gÂbp¢”lIÚ˺Ä\“ —dˆ"ú'ý­_Wåpìp¹r€ò,}¯Iõ¥>Žz&êoAìóÕ^Ü콯qèûgŲw\qÅ+U‡%Ç­‚®ØDWÜ’±<Tª’½0rîBû>¦•É›™`¨\uê‚xÿÖþåÝ=¦1¤\‘3v§Ó÷๙Èèæ÷#à’EjýÅÂvÜ¢ïJr4)Ë øáq‘{@Wõx2Ï}L·,n× 2 ¯Ž¤¡Œ¥ `m¼'c/åϨÚþ‹‚¬&Dßú¶A}Iã§,¸¯É;o‰œ¬à›ÁÞç}úÑæGŒ´ñA#Fzÿ‹Q{9Ôé·Y¨¶õÛJ¢'ûmƨßPýÎæW”9ôù~[C_Cßì·uÇŸ†Ù0G>•<Ž¿Ôoc”d¢ý6ƒ$¦Ýo³h‘™è·94Î|¦ßæaüúmÚÍ¢~[Ãgw÷Û:js³káÊõù«KógíÓOÙ;®œ½:ÿ”}ܱÏ]Y¸nŸ»ºpÙ~d~Æ>·peéÚ®ÙGç®\³Î_½xnçÂ¥³ÓÐ=½põü¼Ýtöû­#l2ÄÞsciþÊY˜‹=<^­5Î?6îøüÕk®Ø g æœ>ÝíTà2ž¯‘á––·Ôëg.מ¼rñÌÂÙyçÚ“WÏÌŸ#Ø8Wæ—ê\¸xÍ&ÚGÎ-½sîê¼ —.ž™¿r °yÖºj/]˜·î;hZœ¿Ò|°7 joà1ì ;
+¬ÿ,™æÌÂâE˜diáü<LqÕ~çÅ¥ 0Ü!œ²çÎ<1\¹xÅ>4}ÐYº±TU殜%OÎ]º¶`Ï]Ÿ»xiîô¥ùÞƒsöôŽ#öÜÒ»OÖµ3W/..]s®]¼ä
+ºŽæÑU´gòÍñiôœw@ÿYè§ÐqȤltÍAÑ9¸·€.Cë3C{È\KPûíB¢cÐs”Ž¿F[d…‹0f'Œº3O÷G“ëUtîÛ9àgl¨¡ít{síA7(æÛþäéa°©øùÌÙ€¿Î?{¾ãtÔ5Gðµa.õñ¼
+endstream
+endobj
+38 0 obj
+<< /Type /FontDescriptor
+/FontName /e1b069+CMUSansSerif-Bold
+/FontFile2 37 0 R
+/FontBBox [-1331 -440 1929 1170]
+/Flags 4
+/StemV 0
+/ItalicAngle 0
+/Ascent 800
+/Descent -200
+/CapHeight 800
+/XHeight 0
+>>
+endobj
+39 0 obj
+<< /Length 1278
+/Filter [/FlateDecode]
+>>
+stream
+xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤ikÀÆ/‰œy¾_Ã!}øôôÓÓùtß~»]ês¿ïÇéÜnýíòåVû¾ô—Óygì¾êýë+þÖ×|ݶ“Ÿßßîýõé<.û‡‡Ýá÷í÷ûí}ÿáÇv)ý‡Ýá×[ë·ÓùeÿáÏOÏÛëç/×ë_ýµŸïûãîñqßúØú9_ɯ}à´Omûütÿ¸óϼ_ûÞòÚLL½´þv͵ßòù¥ïŽÇLJ1wýÜþó‘9ç)eÔÏù6=n?[i(JKiU:J§ÒSz•2¨Œ”Qe¢L*ÊEåJ¹ªÌ”Ye¡,*+eUÙ(›ÊNÙUÊ-уÁkä5x¼¯‘×à5ò¼F^ƒ×Èkðy ^#¯Ákä5x¼¯‘×à5ò¼F^ƒ×Èkðy ^#¯Åkåµx­¼¯•×âµòZ¼V^‹×ÊkñZy-^+¯Åkåµx­¼¯•×âµòZ¼V^‹×ÊkñZy-^+¯Ãëäux¼¯“×áuò:¼N^‡×Éëð:y^'¯Ãëäux¼¯“×áuò:¼N^‡×Éëð:y^'¯Çëåõx½¼¯—×ãõòz¼^^×Ëëñzy=^/¯Çëåõx½¼¯—×ãõòz¼^^×Ëëñzy=^/oÀä xƒ¼o7à ò¼AÞ€7ÈðyÞ oÀä xƒ¼o7à ò¼AÞ€7ÈðyÞ oÄåx£¼o”7âÝþj·ùº«üo—‰$‰JI•$’$*I$IT’H’¨$‘$QI"I¢’D’D%‰$‰JI•$’$*I$IT’D’¤$‰$III’’$’$u>áMò&¼IÞ„7É›ð&yÞ$o›äMx“¼ o’7áMò&¼IÞ„7É›ð&y¼U†o•aÁ[5ñ‚·j¶oS orÁÛ4Û‚·s
+¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x e#e®ÊÙ_y+ë¡hÜŠ7k¶:û«/ âåæZå5«dUýµl¼uz5n¥¿[ç¾ÛeBø÷&Si|y»(ô%q& %+S%ñ*Aª¾ÛÊBijPUÃ6\¥h,ž(¶+L¥ºÝ,¥‚4G©5Þ<¥ô…ÂcD› [˧©ñ¡*t› [ jj¼aijü¼IµÙxʪw¹g¶FÉ›wžØ¶¥§Rô>¶Þís¡hâ>½:­O¯VRÇËí¾³P*#àÙi|e0¼Uýí,ì*o§¿Uáûì/ãÎþ*[§¿Uê,”¦Nö¹°•m€lšx°:š&\}M³¹»)üÒðL2„´\%CHËF7æÕ§‰ÇÊ»BŽLÉ…’)æjæ€Æ»J1:%¦H߯:=Së©ÿÛ³zýr»méükÀó¹žÌOçþí¿‡ë媳ôû7±Ùð
+endstream
+endobj
+40 0 obj
+[367 760 760 760 760 760 760 760 428 428 760 760 305 367 760 760 760 760 550 550 550 760 550 760 760 760 760 760 760 760 760 760 760 760 760 760 794 642 760 760 760 325 760 760 580 978 794 794 703 760 703 611 733 760 733 760 760 760 760 760 760 760 760 760 760 525 561 489 561 511 336 550 760 255 760 760 255 866 561 550 561 561 372 422 404 561 500 760 500 500 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760]
+endobj
+41 0 obj
+<< /Length1 2224
+/Length 1128
+/Filter [/FlateDecode]
+>>
+stream
+xœÕ–_hEÇ3{i.M{iK´:gã]rwm"A0mÚSJóÇä %Xe¹ÎÝmr·»îiÚ±þCÔ–‚)¡/"}¨/bA!èCÔAú >øоT|*ÍùÝݹk¢–<;ag>¿ù}ç÷ûÍÎÍbDÔA¯F£“3Ùý_¯±g0;[¬é61¾ öe<]eݵëu()þüñru±ôå…gˆøuØÇ*R?qûÌåÝàïð U0ÑzKÁÚì‡+5ïdüú ö‡AÖªUÔi'bý×A¼š~Ò¦º/laê59úýÔDì–ã¶åzõ7( é[ßv¤}õìk@¾Œ®•‚½°Žøõ=Öï/Þ÷ä_¼]»‰úöåt¶9&mŽä£FúXnm™æBý{Ú\i}ÓÂ~B½AãMO¬ƒßf種·ùç°ß‰Fö eoáí-œsóÖ(ßÝ6Þ/Þ ¤ö|Ý£¹XŽ®K|“’ì¡p\ WFk;€[hÓÆøæšÿw»ÊêDï¾àNü=Ž“Á ³ÇøN ïz8—Ø«%’‰ƒ×®%Y[’»ó&_ºS
+Þä
+ mDäºvtsm¯6ÌÎó+·R«Wf. eƒlkïÚêÚ
+;ô
+‚m˜Ÿ•ŽkX¦È¤÷ ‹ì'öeÍ®ún*c§”¨âyöÈÀ@4]B7íZ¾S”¥ ]zÞC*ñjUm«ìèvÅ(Š¼Ô=ß‘îQ£Ȧg̪ÕPBS€=å
+¯ç%]„‚å{Ò¥Ítâ9×—Õj˜R6D%Ã-V¤)Æ—ÊU£XY†'ÍÆ3TðÝS>Ó7Ë®îÀ?a95ž¦.ÚCEEУ2ò|Ï“ò†ªá¶qQ`»¾iü»$± ÍštþY D²ézZÖ¤4!×m[Vù…u5ÑYdãú:dP™*äá©ò, R½ qêGŸ§Iš Í€§hÖ:ŒõåÏ Ž@‰8>UIOo°òÈe"C0:˜—a–4òiæù¯8‘?K)ÊáiTvoý,,‡\ì)Èh‚,ûhìÑÚ|䨪b‹¸%UŸ µ ö£ˆH¥f½iš‡þnÞYÃïeØêg({O=Ãÿüo£†¸
+endstream
+endobj
+42 0 obj
+<< /Type /FontDescriptor
+/FontName /28d5ce+mplus-1p-regular
+/FontFile2 41 0 R
+/FontBBox [-115 -343 1403 1075]
+/Flags 4
+/StemV 0
+/ItalicAngle 0
+/Ascent 860
+/Descent -140
+/CapHeight 860
+/XHeight 0
+>>
+endobj
+43 0 obj
+<< /Length 228
+/Filter [/FlateDecode]
+>>
+stream
+xœ]±nà †wžâÆdˆ°éÐ!Uéâ¡MU·€ápj@~û$J¥wº_ÿ}èçøyx‚/À?r4#p>ØŒkܲA˜pöõ¬7å®Z7‹NŒ<îkÁe.‚”Œ’¹–¼ÃáÅÆ Œ_²Åìà ‡ïóHzÜRúÁCŽ)=ô¦Ó»^xÃNƒ%ß—ýDÌßÆמDÓý-Œ‰פ ffd²ë”tN1 öŸ%nÀäÌUg&-vu{%ÅsÿÔ¨»_ùúÃG.³åL‘ÚZ–šÂ|\*ÅT©Z¿noû
+endstream
+endobj
+44 0 obj
+[290 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000]
+endobj
+45 0 obj
+<< /Length1 6272
+/Length 3928
+/Filter [/FlateDecode]
+>>
+stream
+xœÍ8[l\×qsîsŸwŸÜ%¹|ÜååKÜÉ¥¸¼zP”(Q‘HŠ/=–‚byE.EÚ—"W´]4Ž'@$i>šq 5Š u
+äܥ줭 M‘iŒ nÁ… 䣅­ÀŽÔF­ ";çì’¦l%@ûÕKܹ3sæ̙Ǚ9g 
+û$¨—¥Ávû˜ ñÂuö1rO<¾ß65G'Öo³°5ÖUªgD6§¸~Dv¾DÉW`˜ÚƳ!_¶†X´¨7Bp‘ç¦ëÑ«+Y ª~ŠŠ±“Ô¡Ÿ*©ÓBŒv$5†„}¸Lê¬È»ôS ÎÏġ5ä¸QÎuj—œÖivú{Mø®` o@?°ŽÒcøw zaÚá0tÂi€ËpFà
+<g!'¡š!Q¨ƒP 0ixÂ|›¿/béü‡pGø‘xM|Sj–¾'åm%Ž£28À!ü
+; ˆmÛŽÝÁ¿‚’C†u¥-¢Þ£²Tüغ õ¦(lÝ•œ K1ªtSÉ[Í£žî»b™éÛ¢½µ–äº-Q))Sצ¥j÷%êÙ´Ûm™Ú’U6-M»/SÇ&U¼²b ÄpІÊ6dɈɌmßc«H¨Ævx7œ ÙK;ËÒÈvï±QÚͤᇒ¬ØnÍ“¬<ä‡2kCN—{—Cj tve|Q_‹¢vQ$>‡ðo²$¸ý®!´n¿·ý À¯IÐ!üç÷ ’Àƒ ¼¾ý.Êüxû]¡µÆË;¿ á»ûvÌF©J€˜U¯Þ+Ù$DšÕ{„`‘³j÷h-Ƭɳ܈wlYMµ>¿e«2M°šë·i¢M=™~©»A¬
+ªšd4%…L0”îÎô“ƒ=F“ª—ƒGŠu´Æ«ê}æ`wM¤³»a4Ó<ÜÓÜóÙL¼§ÿ¥ñßêh³ÍV{à3©‘µskÇÛ\žÖ‰CÃ}ŸxûسæöÀlÞùPÆý¦A#| Jv´ÚÒ%óÁ>¨
+2”tIËNªs_<h”gۮܦö$U“Ôîµláû˜K cÖí˜Q»ˆm88 3XBœÕ¢¡h>¿IÃ&•M(ÉŽ0KÑ+2?*ÂûdÕû}~
+<(½éîp -ÅhjÝ I¦÷`O’MÊðצGŸþƘsbâ؉±ãúøUñ€ç@ÝðÍo®þE/9þ Ùs,?Úßó»¼›ŠZ]ó<ðŒì|HþÏÉj<wŸRˆùîCß¹Ï ê½»5öèŽY5t?Ê‹@sÂîw{7Õ0¡µÞØ]¥\M[–h±Ë¤µ¾ ѪiF'Éš,;ŽMj÷Y0M«¡ie׿¦<ª Á*îÊMìiEÿF¾s­oÒ¹ýS"ãé± ¶‹ScW¯|t¨¹óÂ÷—îžžj0š,Kæp߉ôü+îþ®³ÀŽñYv[ÞÂîð÷P–ÝhºÀ¤ZÕ»Jõé´%¨÷,¢wc•7¥¨Á öÛ°b훲­Å„F6e
+Þ vL§Ä ´!sBáPåÐÆ L£ÞúhiÁÊíË»bRÕ¤6^ŽðœWjtÀDŠÔëÑ}Ìý{¡ZÄX…0V逑I÷Û2ý"n •EGUÔ´jˆ³“g\gE»¤² I¢­&qª­¥Ý“jèèqHÑ›®Â$ùÂaïÄáS]6Åk$냾Ž°í…ÃÛϲx±ûf/Öƒƒ•x‰é’ÀŠ€¤ •xò7Ø1Õr9J£äµÄÚûTðZ¤ö¾h‘ Ìδ8ñ‘„7$çcïE^ò·`À¿—õßÕ<áj£9œ.ɘŒìiLV b2šSÔ¿e9±ØZ>^-I…$[Ó—× ß·ªknÓjÌU æ*ÌŠ¯jÓòx±åzéE¦Æ˜îMjx7DCÄhØ»
+W!‚œ(ã”îK‘h–p1xYt{C5ÑÝáíW±³zCáꚨ‘L~:OõX–ê4y¦Ò*«[|qk‹F —õ0© ÁÄ_=£ _ÌÛ'.lýcýòÄãí]çŽÊ†±)=䯇†'&f«:¶ß$M!ï‰?¹G¢!߉®t$ðÑ^LÉo0¦!ø^9¦%‡3„Q,¶½ãée¥NQm íºG«?ÌÐÇÁtºnS'ÆÍ…qsðN¶IC·Fi#È` áC±‚ Ñî
+–ä`bGM0ôÉÀxYkP?˾ì‹Fáa÷gCÛoí÷Z€ÓØ·íسœxΟ,÷m˳[ÑU¬OWó>íBo]Ø¢üxæ(ˆ×lY~fÇ.²fTåagŽbîk?{½µ·ÜvNa4÷Òü¹kヱsOIÍÿÙÒ+OLÜüó¹ '̯MeîðÚ¾sTc4üµƒYpîž‚ÈK‡onÖrð>A5¬¤†­Ú²lhQã§s¡íåBÂþº!j,ðnë8¬g°„œ}I¨3i}%îºúò™_Þªej_aGŠ }—³PöºM ìs[ÕHûaÇ…+GÌ?ºz¦«gð@ûÐÚáTÛI¬ü Ïu¾vlí¯Ì_“>ç\Èœîðª¯ó½hàY²y‰AJ,
+2F!ȼ°¬ÄSÔ³e5 ß ޒdžYiA<¡hðù_–ÁH´O °ä~îшoƒxÂ-ì –›ß1Ò p;“¤-‰W‚~5Á¤€VWH¸T5¤ŒÚªÐÉ澞Ž ¶hÊ×~Þ<5XS9¨LÄ&½µ©`ÇÄÁlÓIM õÔE">ÑÙÓRÕÙÓÔxÂír¥j"5šêL·×<ØT>GЯ„ÃÐFæ¡T+”7Ù¾<?lmìühOѺ-ÚØmÐ1o7=ÀóÛ(â°1IÅM˸O%<J½B£ˆÈ‹¯ÄŽ¥ ;':9tqèæPãÐà S¡3Q›848læ°…ÃVå6ö)á„}»&jÒ&“&m6i‹I[ÍjfšIÝ&;Æ&uàqm€_”ø {_£m2š[Z“ŸzÈ@PÀ_¾¶¶Šèo,ïF+P‡y®eµˆWAZmRðYá:V‘L:“f§šfÃû
+Dà÷þ‹Ñ„Ö”q7üþ±‚kPK^DmD²#u‘¼ZÁ Ô þ
+.€&$+¸³Â‘
+.A\øN—QþgÜ'…w*¸›|[ŒWp z¤Ÿ–Öò+Åü¬~íýøÒìJþýbRÏ-Öô¹•Â ý|>«Ï–Š«ƒ£ô©ÜÒª>•_Y˜»¶¸póV~G†
++×ózw²S?¤?,¤W¤p «/Ñ›èîì4-q1¿²ºPXÒ;“Ô“ÏäÌÌ\ E™$LTç‹ÅåC©ÔÌÄ­¥…™Âl>¹Z¸µ2“ŸcF$—òÅÔùù…UÙ¥OæŠOåVò:2fòK«èç­¥ÙüŠ^œÏëSgFô±åüRYx¤,×wMéJv%\Ye.S3SX^@%ÅÂõ<ªXÑŸZ(Σ2a1Ò—s3Oæ0 KúØÐH²øt1îÈ-Ͳ™¹ÅÕ‚ž[Ë-,æ®-æËsúÐñ =W<¤WÜZYYX.®&W“èP
+•üö¼á` Ö û­ˆpïÿ×ð€Ç‘?‹Ü<§.Bá8ä[@yæp¬
+c5ò̆]Ï™5”-ÂShß
+÷£,±È5ç¹ÍåÌÜâ9aê(?Ïe§à Œp?–¹ì~Í#iˆó<>ì_ÚÆ^Ç>Ë^w×æã2âeKŠH]ç>ÍWìy
+ÇU¶¬<gnÏ’eômžDx½¢s‰Û<„6&Qâi|ãhEŽ{¸»fmaeؾ Hçx¾ò­˜ã^Ç_. /ò}ðp¶Vqu–ñe¾?“<‹ø-g(U±äÿ2G
+endstream
+endobj
+46 0 obj
+<< /Type /FontDescriptor
+/FontName /e7a97f+CMUSansSerif-Oblique
+/FontFile2 45 0 R
+/FontBBox [-1075 -354 1523 1191]
+/Flags 68
+/StemV 0
+/ItalicAngle -12
+/Ascent 800
+/Descent -200
+/CapHeight 800
+/XHeight 0
+>>
+endobj
+47 0 obj
+<< /Length 1278
+/Filter [/FlateDecode]
+>>
+stream
+xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤ikÀÆ/‰œy¾_Ã!}øôôÓÓùtß~»]ês¿ïÇéÜnýíòåVû¾ô—Óygì¾êýë+þÖ×|ݶ“Ÿßßîýõé<.û‡‡Ýá÷í÷ûí}ÿáÇv)ý‡Ýá×[ë·ÓùeÿáÏOÏÛëç/×ë_ýµŸïûãîñqßúØú9_ɯ}à´Omûütÿ¸óϼ_ûÞòÚLL½´þv͵ßòù¥ïŽÇLJ1wýÜþó‘9ç)eÔÏù6=n?[i(JKiU:J§ÒSz•2¨Œ”Qe¢L*ÊEåJ¹ªÌ”Ye¡,*+eUÙ(›ÊNÙUÊ-уÁkä5x¼¯‘×à5ò¼F^ƒ×Èkðy ^#¯Ákä5x¼¯‘×à5ò¼F^ƒ×Èkðy ^#¯Åkåµx­¼¯•×âµòZ¼V^‹×ÊkñZy-^+¯Åkåµx­¼¯•×âµòZ¼V^‹×ÊkñZy-^+¯Ãëäux¼¯“×áuò:¼N^‡×Éëð:y^'¯Ãëäux¼¯“×áuò:¼N^‡×Éëð:y^'¯Çëåõx½¼¯—×ãõòz¼^^×Ëëñzy=^/¯Çëåõx½¼¯—×ãõòz¼^^×Ëëñzy=^/oÀä xƒ¼o7à ò¼AÞ€7ÈðyÞ oÀä xƒ¼o7à ò¼AÞ€7ÈðyÞ oÄåx£¼o”7âÝþj·ùº«üo—‰$‰JI•$’$*I$IT’H’¨$‘$QI"I¢’D’D%‰$‰JI•$’$*I$IT’D’¤$‰$III’’$’$u>áMò&¼IÞ„7É›ð&yÞ$o›äMx“¼ o’7áMò&¼IÞ„7É›ð&y¼U†o•aÁ[5ñ‚·j¶oS orÁÛ4Û‚·s
+¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x e#e®ÊÙ_y+ë¡hÜŠ7k¶:û«/ âåæZå5«dUýµl¼uz5n¥¿[ç¾ÛeBø÷&Si|y»(ô%q& %+S%ñ*Aª¾ÛÊBijPUÃ6\¥h,ž(¶+L¥ºÝ,¥‚4G©5Þ<¥ô…ÂcD› [˧©ñ¡*t› [ jj¼aijü¼IµÙxʪw¹g¶FÉ›wžØ¶¥§Rô>¶Þís¡hâ>½:­O¯VRÇËí¾³P*#àÙi|e0¼Uýí,ì*o§¿Uáûì/ãÎþ*[§¿Uê,”¦Nö¹°•m€lšx°:š&\}M³¹»)üÒðL2„´\%CHËF7æÕ§‰ÇÊ»BŽLÉ…’)æjæ€Æ»J1:%¦H߯:=Së©ÿÛ³zýr»méükÀó¹žÌOçþí¿‡ë媳ôû7±Ùð
+endstream
+endobj
+48 0 obj
+[333 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 500 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 517 444 305 760 760 760 760 760 239 794 517 500 517 760 760 383 361 760 461 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760 760]
+endobj
+49 0 obj
+<< /Length1 13696
+/Length 8659
+/Filter [/FlateDecode]
+>>
+stream
+xœ½{ip×yà{}LÏ=Ýs˜™îi\Äœ˜0€€À )J‘$ê€HðH R’-J¶ÑfÙŽåuy“ÔFq´‘Röf£×HVÖ»[ˆíJy7»kÙµE»¢¬íMi¥§be
+ Üï{Ý
+×Ð
+‡TÈKðÔKüIGñQ¡ ¼” …§¾w"\þ=Ì}Ú¾Ó‘~
+ïˆè!øwàÔäI¤–<)*7óä[âvòçúæ,ìêE¬àú!\\ÓpuÁõ\Çàz®Q¸†à:×€s½á¬ËÀÕ ×a¸L¸rÎ|®”ól®»u8.:°Cp9ï9ý³Ï^çùsa? ×[øçªÍE?t]LûÖ?‡å‚(Ù¥¸=^Ÿ5ÿ‚$­J4>
+±™‹Ã=±±A2•ÎtdI.Ì4
+f'éêîé%ÛúŠÿïwÿÿùc¤ÄHd?ë;0Íî¼8ÈyG’¹ŠÓc3öôŒþßT’eFKúŸ0±Ì„ÒþCÓ“æŒQfbélRg¦ 61SfR 5Lã©éÿ‘ù¯3X7ý^æ§3Ó`rqšM]œá33°Ÿ\
+¿¯Ì\%«@? o×?yüx†ØF)Y4± r—šު–™§¤?/ù&l£3±kŸ©3©ûNFL_»:«cg8c3™«|tÈá ½6vjF5`G_Iÿ.'Ç_Ò«L)ŸÖõ=æÔì£ú´~ò{ \À7ëõ«úž«S³æUýªÉ_gâælV}`s8€g‚üMc×’†‘ѯ]6ÀCû
+£Ÿ!û™ûÀ´Eégg¬)äSA¢‡ óìL¨:>M˜¬O2±¸›)úä¿#2ý?D(ò±KŸl+Y{@™ÛYå¨{D(ZâÔEzñ!Ÿð7dâÞÔæÐ ÜÏÜÜ\0s³pó"Øâ«Â îdÈ´ý¤÷;H“ÁŽ’).’$9ÒA¦É6Xñ"üû>MÒãô÷è_ Aa»Ðþ^¼K|Gz^ú”ÿÖuÙõM%©\vr·=Ÿ÷Ö¼_òÅ}Ÿõý™ÿ¨ÿþŸú|8øJH}V=©~W»7ÿud5ò£h'ì./xA¼¶H\Ä%DþÌ©ºªÈä^©ÈÜuæ­2c•ò1ej•‘k–ä¾Î\u&©VY¨n‰îë–Ý¡´%ù¯HLªÈÌ¿f)Ê ‰…Ö,—ûŠÌ܉¹Ö¬ rCfÞ5æRWd—;R„I7ì´"KþHQF°g¬À@ !Ø«®ø¼A
+ó^àÒÈ{¯R]Xÿ9õ­cý/…p«?¤{hY8þs˜´Á»W=2QKriUv“©èÜ€‰–\
+Ó¢¥-Ìļ?20TÇ¢JÔ,t÷t÷ tÿ0Nû3Q$
+TØDãôû…Þ£»Ê¢› +·nþ[º*¼Nò #”é\a÷õv˜x‹+$œð-ƒùÎãb÷
+!¤±h<—Y¨ˆVqlwÃë ‰Šàr:~b*òy»ÇŠ´¾çÇvåƒ^Ù­’ÔlÏ-|¥?ô†ò»¦Ÿ#üýÓðþûáýè)óU­¨|½í‹â»}yP^¨2÷5+ „šÄÀ¸Ð§ƒÝ=ðæÁ¡F='Fƒ"Ð;ívûééQ¯è‚~ŽBqQ Ž¸üŠB‡_=9·:¤ˆŠ"»UÄásÏMï̇.rþXCº°x•…–(_g¾z;.6ñˆ§ØãØD,YeÑkLª[šï:óÖÛ"=¡aYTÃn”
+ÒQéŒêÀF%Ö¨G3-4ÍBW(üJÚ§Ñß1ò¯ ÑßÕi¿W{ÙPµ—èˆñ2â÷ÆÍ‹ô 9Gâdi+èF@&Pƒh•²D•y¯­ªn¢JE+ ¯T½Z¸-ÊÑV«E,%ʵƒ4KV[-‡‡ ¹nÎ>)…ÁéBÁå÷Æ󹤱m°©ùÕ…€êÛfJ¹d\ìéߟScä?Ð×È;Y%sW-A¾ŽežªååhõXÔ4Ž4«ëë?ú™4—õ›Ðl<à±Ú¤Aä4líSôôÚªË#çfùœmt]…7󉸞¯}F>3pïQУï€eÈ¿=îàz¬W ƒd¸*£d¬¬íR\ŠPaÊš‘o0u êŠ((‘âŠÌ[¶,¢®h†alÛ°
+já“[ÌÕ"A”UÍ¥„#•Mçð:Â\Jäv×hÒZs\â$(4”é£zD—ì–|!÷ú¿‘I–É«¶¼aá Y’I úåÈ{{¨[T$YA‚:tóïè÷„Ljd°Û椥‚Ý Ë°â(Œ$§ßôûU+BÑù]çºñkaKô ZÄUèº*Ddƒ±€Q3š£úXÁ5ôÄÌ‘à5fL•Çï=öÄ1Z¿üµ×~®_xêÈo_xôsŸÞŸ¼ø$A;Ú!Ä&¦ã©·]èÄDÈ(ÚJ’B£±<à_<Ü\<~4ÊÍ…yTKs’ªV$n ÐÜG°1Ôc\QÅ( ŒR Ð=oìéõ†Ó³…Üú»†ñÈÀ N¯u(ÇãÆ{‘IÑLš¾Ñoû™h¾8ö“?"íâhÇÌbaö
+ÉX¼ƒÕ<ÖëVÃV,³p…™VX³„à N T.Љ·2¶ E®-Z$¡"‘ׄ‚!fS}
+æ­!W«SNdAjA::°¤9ÐW@JfÁ¾Ø–݆=‡¨ ªg)š¶QP;çj»r]A)_B ¦æ>ü̳H¥<ÍJ¡àúoÒPþpïh¾¨wÅ&ö쌉q·Äwž9sxá±/…ô®œ7àux ú÷}È;êä·^€oä% ˆÀKyÙ#__í‹Ôt}LGúÕ‘$²µlµz§½œ§½žâŠ§7í.®‚cÙ^ 2ïµ=Üz=.àz¯j© ÃeÐå¸{ÒÀŠdËR{µðJ ÞWëL
+AÑJp7 š7ä¸x°Ã^WÈ¡—
+ùõg “>Õ‰÷«n1“¶2ÜýÃþPžŸ ¤•ö$i¬ƒÇÙv¢ÐU¯×Û^tå¢7Pd•†Õ ¯7ëh†&*W˜yŸ²&[]nHkkV­
+’Ëãò—ϽJ¥7“j óó†[ {ä ö/v H’ävÉbvÏ£Ü/†æÀ/&ÈÒŽ#? è1µÞö ?”¡¬óØ,^³Tp~*g‰
+™%ó×ۢʓK ƒJƒµ#_ÍÜ°²"åáŒí°±ü¸®Ón]_~<¯¯¿e@¤»‘±­+é ÇÅ„æ:à’|¶Þ‚‹À=®
+
+ý-Þ' †©haÇÏÜ6âùE5ŽyáîV‹õh+ÞÔÈv´­@˜u¶XA #–w¸·½ÅJšoºT˜e—(qð:Áµ‡›J ž²Ù¶'ö8‰J"K¹Ùõ¡È…B”JÇöŸÓÊ“góz\ÞLÞëw‰¢Ð±8´¯–‘Ÿß·ÿÔÑÓ»)8-Éå–3™Ïé!·otÇÞ’9î—r.õî掇zÙ|!/ù½QåìX_WÍ+äµGš»mHªË/»;pDß+9ÇNÁo±PÝN ³ÐÔÛYnY³R0“gÔ9ENµ2 V!°”Pׄ°4Ì„°›-d!ÕòcQâê´Kgn¿ÀЯžA°;é°“X“wÓ:ý5=KsôscZP]Ï.O;è_.åsë
+$hãP¥“£'ÈÝFÚ-Ô³>;ŠvÕEý¨c©†¥
+[1±Å'ûí'aI—@ðŒÞÒÑ6ÀPUõVÛ¢»f« ¯Ä^‹|UrEô‚Ù_¿1UQÂâ+šxW­¿ÞøG"ed¨J7½U‘&š[Š+Oã;S…Ìó²üTN׌|hæ°ª ºž]”åg½r‡P=tžÖ 2’½¾b¨|ùehÒ?ôy¯‡½8þîw7ò Ñ›ïB~TÈùuÒ.¡»V]ÆR¢‡ÔÐò€è<qžùªžâª<\Šƒó“•ë(IÔDtð
+«û4üEä+×­PÌŽ&jcx”º¨‚íª-ÖÔV<ñRm»#ÌúÀªë%°ûÎ>°çaÍê€bÞ¬9–æ
+€1‹6P@,¦¯Êº¯1±neÐCÕÛ™nlsð@7šÝh„~Þj9jYDµÌÜ:+µÓ›¤%K·²` ·ÛN?‹…ùû'Œ©¦àV ß(èÏŸ×ÕÐúóÆùëô ™¡;v ©ñnjnkB‚üµ´O¥PRüVÉõ¯A>CÚuÔ¾l“Ïv²PÆ8º‘·£¢}žAÙ
+äÕHÚ»ñýùþ—Ôjº³44Þ™¨Û>ßðLrõò¬gŠ£5îåÙÝ8Çl|b6¾‰
+ã<vZ%/¤ä<p–ª°¦YÂns
+F¤Î=õád÷D+áKúɼ‘,ëÍ[½”=àæd:òù¶µZ#£?Å*ñ¯îŸÚû5ÌNœÎ†-
+ômI<òGI;†¸
+Kª*L=ú@LU‚ªØýØ%]_ÿ†ˆþ~_ÿLKËQ•Ò“'>†‡2”ìÝúcЭä]ç|`¢a¹A n~>à–
+ÁT,Ìö‘÷x\g*B]WlÔa^Yíl3'Ú§X8»Ä^_,áîxtÏÎáɇcÇžÙ]’d¿;M¥ ÏEß»'3õÚ„ÖϱSôÞŸÇåIg/DÂé¹R®£Ë¯*Ù©òTÊãv뇼JÈåõÄi«3¥¥‚ämôßS*¸$”U
+dõu¡r ÐÃNÔÃ:ÃNîIJyÏÎ{ðX­g([² 00ü:æYP¿w‡7óŸ°¬`„˜ü¤Ãž¸l&?rÄÉy¢9ÁÎCíï:.“— )ãDV̶óù¶ìêЛY!ÿÀöOÏšöÜg÷¥3ëïú#É`Þ tÂ#£OSü­ÖPïÑWI?¹LÚ½¨‡FQ´+NV²ZƒÙÿV¹f¹ÁW܈w…ÇLv
+þ6@ñøÒ}ÅÒˆk«(˜Jg
+ë·­É»fýW˜ÄZÄOx^°œ$XŽDäö«Ý^7+ª+Þ¢?R”VJx[)ó¶ÂÛ*¶mX»åLVm‘H¹Å*-VE¹x¼Éj±TÞjb·ÇëO
+endstream
+endobj
+50 0 obj
+<< /Type /FontDescriptor
+/FontName /8a6373+CMUTypewriter-Light
+/FontFile2 49 0 R
+/FontBBox [-203 -390 729 1045]
+/Flags 4
+/StemV 0
+/ItalicAngle 0
+/Ascent 775
+/Descent -225
+/CapHeight 775
+/XHeight 0
+>>
+endobj
+51 0 obj
+<< /Length 1278
+/Filter [/FlateDecode]
+>>
+stream
+xœe×ËnÛF†á½®BËtHs&Ã@‘n¼èu{stÔ’ + ß}ù½¤ikÀÆ/‰œy¾_Ã!}øôôÓÓùtß~»]ês¿ïÇéÜnýíòåVû¾ô—Óygì¾êýë+þÖ×|ݶ“Ÿßßîýõé<.û‡‡Ýá÷í÷ûí}ÿáÇv)ý‡Ýá×[ë·ÓùeÿáÏOÏÛëç/×ë_ýµŸïûãîñqßúØú9_ɯ}à´Omûütÿ¸óϼ_ûÞòÚLL½´þv͵ßòù¥ïŽÇLJ1wýÜþó‘9ç)eÔÏù6=n?[i(JKiU:J§ÒSz•2¨Œ”Qe¢L*ÊEåJ¹ªÌ”Ye¡,*+eUÙ(›ÊNÙUÊ-уÁkä5x¼¯‘×à5ò¼F^ƒ×Èkðy ^#¯Ákä5x¼¯‘×à5ò¼F^ƒ×Èkðy ^#¯Åkåµx­¼¯•×âµòZ¼V^‹×ÊkñZy-^+¯Åkåµx­¼¯•×âµòZ¼V^‹×ÊkñZy-^+¯Ãëäux¼¯“×áuò:¼N^‡×Éëð:y^'¯Ãëäux¼¯“×áuò:¼N^‡×Éëð:y^'¯Çëåõx½¼¯—×ãõòz¼^^×Ëëñzy=^/¯Çëåõx½¼¯—×ãõòz¼^^×Ëëñzy=^/oÀä xƒ¼o7à ò¼AÞ€7ÈðyÞ oÀä xƒ¼o7à ò¼AÞ€7ÈðyÞ oÄåx£¼o”7âÝþj·ùº«üo—‰$‰JI•$’$*I$IT’H’¨$‘$QI"I¢’D’D%‰$‰JI•$’$*I$IT’D’¤$‰$III’’$’$u>áMò&¼IÞ„7É›ð&yÞ$o›äMx“¼ o’7áMò&¼IÞ„7É›ð&y¼U†o•aÁ[5ñ‚·j¶oS orÁÛ4Û‚·s
+¿âíJ¼âíJ¼â특âíâ¬x»¯x»¯x‡+Þ!Êw¹âB®x‡b®x‡+ÞïrÅ;àà2äÍkçÎœñJ¼Y³e¼Y†Œ7+|œÆx‹ oSŠŒ7+[Æ›ețךyÞ¢oVûòæµ– -ã­Œ‹·é€"¯åþR¦W*–Ó4Xq”êC™^Jú[(£à®^ƒ1»¢y]•¡Èk¹}¼YM-x e#e®ÊÙ_y+ë¡hÜŠ7k¶:û«/ âåæZå5«dUýµl¼uz5n¥¿[ç¾ÛeBø÷&Si|y»(ô%q& %+S%ñ*Aª¾ÛÊBijPUÃ6\¥h,ž(¶+L¥ºÝ,¥‚4G©5Þ<¥ô…ÂcD› [˧©ñ¡*t› [ jj¼aijü¼IµÙxʪw¹g¶FÉ›wžØ¶¥§Rô>¶Þís¡hâ>½:­O¯VRÇËí¾³P*#àÙi|e0¼Uýí,ì*o§¿Uáûì/ãÎþ*[§¿Uê,”¦Nö¹°•m€lšx°:š&\}M³¹»)üÒðL2„´\%CHËF7æÕ§‰ÇÊ»BŽLÉ…’)æjæ€Æ»J1:%¦H߯:=Së©ÿÛ³zýr»méükÀó¹žÌOçþí¿‡ë媳ôû7±Ùð
+endstream
+endobj
+52 0 obj
+[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525]
+endobj
+xref
+0 53
+0000000000 65535 f
+0000000015 00000 n
+0000000240 00000 n
+0000000441 00000 n
+0000000505 00000 n
+0000000556 00000 n
+0000000828 00000 n
+0000006166 00000 n
+0000006558 00000 n
+0000006600 00000 n
+0000006648 00000 n
+0000006740 00000 n
+0000006783 00000 n
+0000006951 00000 n
+0000007120 00000 n
+0000007293 00000 n
+0000007465 00000 n
+0000007596 00000 n
+0000021474 00000 n
+0000021887 00000 n
+0000021931 00000 n
+0000022107 00000 n
+0000022205 00000 n
+0000022380 00000 n
+0000022498 00000 n
+0000022572 00000 n
+0000022710 00000 n
+0000022865 00000 n
+0000023304 00000 n
+0000023364 00000 n
+0000023638 00000 n
+0000023912 00000 n
+0000024182 00000 n
+0000024452 00000 n
+0000032294 00000 n
+0000032505 00000 n
+0000033859 00000 n
+0000034774 00000 n
+0000043523 00000 n
+0000043739 00000 n
+0000045093 00000 n
+0000046007 00000 n
+0000047225 00000 n
+0000047439 00000 n
+0000047742 00000 n
+0000048879 00000 n
+0000052897 00000 n
+0000053119 00000 n
+0000054473 00000 n
+0000055387 00000 n
+0000064137 00000 n
+0000064353 00000 n
+0000065707 00000 n
+trailer
+<< /Size 53
+/Root 2 0 R
+/Info 1 0 R
+>>
+startxref
+66621
+%%EOF
diff --git a/src/zc/Zcmd_footer.adoc b/src/zc/Zcmd_footer.adoc
new file mode 100644
index 0000000..8fdcd87
--- /dev/null
+++ b/src/zc/Zcmd_footer.adoc
@@ -0,0 +1,12 @@
+
+Included in::
+[%header,cols="4,2,2"]
+|===
+|Extension
+|Minimum version
+|Lifecycle state
+
+|Zcmd (<<Zcmd>>)
+|0.1
+|Development
+|===
diff --git a/src/zc/Zcmp_footer.adoc b/src/zc/Zcmp_footer.adoc
new file mode 100644
index 0000000..b0d3d4a
--- /dev/null
+++ b/src/zc/Zcmp_footer.adoc
@@ -0,0 +1,12 @@
+
+Included in::
+[%header,cols="4,2,2"]
+|===
+|Extension
+|Minimum version
+|Lifecycle state
+
+|Zcmp (<<Zcmp>>)
+|{version-label}
+|{lifecycle-state}
+|===
diff --git a/src/zc/Zcmpe_footer.adoc b/src/zc/Zcmpe_footer.adoc
new file mode 100644
index 0000000..1e7ba38
--- /dev/null
+++ b/src/zc/Zcmpe_footer.adoc
@@ -0,0 +1,12 @@
+
+Included in::
+[%header,cols="4,2,2"]
+|===
+|Extension
+|Minimum version
+|Lifecycle state
+
+|Zcmpe (<<Zcmpe>>)
+|{version-label}
+|Stable
+|===
diff --git a/src/zc/Zcmt_footer.adoc b/src/zc/Zcmt_footer.adoc
new file mode 100644
index 0000000..5206794
--- /dev/null
+++ b/src/zc/Zcmt_footer.adoc
@@ -0,0 +1,12 @@
+
+Included in::
+[%header,cols="4,2,2"]
+|===
+|Extension
+|Minimum version
+|Lifecycle state
+
+|Zcmt (<<Zcmt>>)
+|{version-label}
+|{lifecycle-state}
+|===
diff --git a/src/zc/c_lbsb_imm_offset.adoc b/src/zc/c_lbsb_imm_offset.adoc
new file mode 100644
index 0000000..dd7bf83
--- /dev/null
+++ b/src/zc/c_lbsb_imm_offset.adoc
@@ -0,0 +1,8 @@
+
+The immediate offset is formed as follows:
+[source,sail]
+--
+ uimm[31:2] = 0;
+ uimm[1] = encoding[5];
+ uimm[0] = encoding[6];
+--
diff --git a/src/zc/c_lbu.adoc b/src/zc/c_lbu.adoc
new file mode 100644
index 0000000..3928373
--- /dev/null
+++ b/src/zc/c_lbu.adoc
@@ -0,0 +1,46 @@
+<<<
+[#insns-c_lbu,reftext="Load unsigned byte, 16-bit encoding"]
+=== c.lbu
+
+Synopsis::
+Load unsigned byte, 16-bit encoding
+
+Mnemonic::
+c.lbu _rd'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x0, attr: ['C0'] },
+ { bits: 3, name: 'rd\'' },
+ { bits: 2, name: 'uimm[0|1]' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 3, name: 0x0 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+include::c_lbsb_imm_offset.adoc[]
+
+Description::
+This instruction loads a byte from the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_. The resulting byte is zero extended to XLEN bits and is written to _rd'_.
+
+[NOTE]
+ _rd'_ and _rs1'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-lbu>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+X(rdc) = EXTZ(mem[X(rs1c)+EXTZ(uimm)][7..0]);
+--
+
+include::Zcb_footer.adoc[]
diff --git a/src/zc/c_lh.adoc b/src/zc/c_lh.adoc
new file mode 100644
index 0000000..e519754
--- /dev/null
+++ b/src/zc/c_lh.adoc
@@ -0,0 +1,48 @@
+<<<
+[#insns-c_lh,reftext="Load signed halfword, 16-bit encoding"]
+=== c.lh
+
+Synopsis::
+Load signed halfword, 16-bit encoding
+
+Mnemonic::
+c.lh _rd'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x0, attr: ['C0'] },
+ { bits: 3, name: 'rd\'' },
+ { bits: 1, name: 'uimm[1]' },
+ { bits: 1, name: 0x1 },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 3, name: 0x1 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+include::c_lhsh_imm_offset.adoc[]
+
+Description::
+This instruction loads a halfword from the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_. The resulting halfword is sign extended to XLEN bits and is written to _rd'_.
+
+[NOTE]
+ _rd'_ and _rs1'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-lh>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+X(rdc) = EXTS(load_mem[X(rs1c)+EXTZ(uimm)][15..0]);
+--
+
+include::Zcb_footer.adoc[]
+
diff --git a/src/zc/c_lhsh_imm_offset.adoc b/src/zc/c_lhsh_imm_offset.adoc
new file mode 100644
index 0000000..20f1b2b
--- /dev/null
+++ b/src/zc/c_lhsh_imm_offset.adoc
@@ -0,0 +1,8 @@
+
+The immediate offset is formed as follows:
+[source,sail]
+--
+ uimm[31:2] = 0;
+ uimm[1] = encoding[5];
+ uimm[0] = 0;
+--
diff --git a/src/zc/c_lhu.adoc b/src/zc/c_lhu.adoc
new file mode 100644
index 0000000..6db5211
--- /dev/null
+++ b/src/zc/c_lhu.adoc
@@ -0,0 +1,48 @@
+<<<
+[#insns-c_lhu,reftext="Load unsigned halfword, 16-bit encoding"]
+=== c.lhu
+
+Synopsis::
+Load unsigned halfword, 16-bit encoding
+
+Mnemonic::
+c.lhu _rd'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x0, attr: ['C0'] },
+ { bits: 3, name: 'rd\'' },
+ { bits: 1, name: 'uimm[1]' },
+ { bits: 1, name: 0x0 },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 3, name: 0x1 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+include::c_lhsh_imm_offset.adoc[]
+
+Description::
+This instruction loads a halfword from the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_. The resulting halfword is zero extended to XLEN bits and is written to _rd'_.
+
+[NOTE]
+ _rd'_ and _rs1'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-lhu>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+X(rdc) = EXTZ(load_mem[X(rs1c)+EXTZ(uimm)][15..0]);
+--
+
+include::Zcb_footer.adoc[]
+
diff --git a/src/zc/c_mul.adoc b/src/zc/c_mul.adoc
new file mode 100644
index 0000000..d2f5a21
--- /dev/null
+++ b/src/zc/c_mul.adoc
@@ -0,0 +1,48 @@
+<<<
+[#insns-c_mul,reftext="Multiply, 16-bit encoding"]
+=== c.mul
+
+Synopsis::
+Multiply, 16-bit encoding
+
+Mnemonic::
+c.mul _rsd'_, _rs2'_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x1, attr: ['C1'] },
+ { bits: 3, name: 'rs2\'', attr: ['SRC2'] },
+ { bits: 2, name: 0x2, attr: ['FUNCT2'] },
+ { bits: 3, name: 'rd\'/rs1\'', attr: ['SRCDST'] },
+ { bits: 3, name: 0x7 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+Description::
+This instruction multiplies XLEN bits of the source operands from _rsd'_ and _rs2'_ and writes the lowest XLEN bits of the result to _rsd'_.
+
+[NOTE]
+ _rd'/rs1'_ and _rs2'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+M or Zmmul must be configured.
+
+32-bit equivalent::
+<<insns-mul>>
+
+[NOTE]
+
+ The SAIL module variable for _rd'/rs1'_ is called _rsdc_, and for _rs2'_ is called _rs2c_.
+
+Operation::
+[source,sail]
+--
+let result_wide = to_bits(2 * sizeof(xlen), signed(X(rsdc)) * signed(X(rs2c)));
+X(rsdc) = result_wide[(sizeof(xlen) - 1) .. 0];
+--
+
+include::Zcb_footer.adoc[]
+
diff --git a/src/zc/c_not.adoc b/src/zc/c_not.adoc
new file mode 100644
index 0000000..4207ba0
--- /dev/null
+++ b/src/zc/c_not.adoc
@@ -0,0 +1,50 @@
+<<<
+[#insns-c_not,reftext="Bitwise not, 16-bit encoding"]
+=== c.not
+
+Synopsis::
+Bitwise not, 16-bit encoding
+
+Mnemonic::
+c.not _rd'/rs1'_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x1, attr: ['C1'] },
+ { bits: 3, name: 0x5, attr: ['C.NOT'] },
+ { bits: 2, name: 0x3, attr: ['FUNCT2'] },
+ { bits: 3, name: 'rd\'/rs1\'', attr: ['SRCDST'] },
+ { bits: 3, name: 0x7 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+Description::
+This instruction takes the one's complement of _rd'/rs1'_ and writes the result to the same register.
+
+[NOTE]
+ _rd'/rs1'_ is from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+[source,sail]
+--
+xori rd'/rs1', rd'/rs1', -1
+--
+
+[NOTE]
+
+ The SAIL module variable for _rd'/rs1'_ is called _rsdc_.
+
+Operation::
+[source,sail]
+--
+X(rsdc) = X(rsdc) XOR -1;
+--
+
+include::Zcb_footer.adoc[]
+
diff --git a/src/zc/c_sb.adoc b/src/zc/c_sb.adoc
new file mode 100644
index 0000000..d0b1ac6
--- /dev/null
+++ b/src/zc/c_sb.adoc
@@ -0,0 +1,46 @@
+<<<
+[#insns-c_sb,reftext="Store byte, 16-bit encoding"]
+=== c.sb
+
+Synopsis::
+Store byte, 16-bit encoding
+
+Mnemonic::
+c.sb _rs2'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x0, attr: ['C0'] },
+ { bits: 3, name: 'rs2\'' },
+ { bits: 2, name: 'uimm[0|1]' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 3, name: 0x2 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+include::c_lbsb_imm_offset.adoc[]
+
+Description::
+This instruction stores the least significant byte of _rs2'_ to the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_.
+
+[NOTE]
+ _rs1'_ and _rs2'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-sb>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+mem[X(rs1c)+EXTZ(uimm)][7..0] = X(rs2c)
+--
+
+include::Zcb_footer.adoc[]
diff --git a/src/zc/c_sext_b.adoc b/src/zc/c_sext_b.adoc
new file mode 100644
index 0000000..bcf8f15
--- /dev/null
+++ b/src/zc/c_sext_b.adoc
@@ -0,0 +1,48 @@
+<<<
+[#insns-c_sext_b,reftext="Sign extend byte, 16-bit encoding"]
+=== c.sext.b
+
+Synopsis::
+Sign extend byte, 16-bit encoding
+
+Mnemonic::
+c.sext.b _rd'/rs1'_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x1, attr: ['C1'] },
+ { bits: 3, name: 0x1, attr: ['C.SEXT.B'] },
+ { bits: 2, name: 0x3, attr: ['FUNCT2'] },
+ { bits: 3, name: 'rd\'/rs1\'', attr: ['SRCDST'] },
+ { bits: 3, name: 0x7 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+Description::
+This instruction takes a single source/destination operand.
+It sign-extends the least-significant byte in the operand to XLEN bits by copying the most-significant bit
+in the byte (i.e., bit 7) to all of the more-significant bits.
+
+[NOTE]
+ _rd'/rs1'_ is from the standard 8-register set x8-x15.
+
+Prerequisites::
+Zbb is also required.
+
+32-bit equivalent::
+<<insns-sext_b>> from Zbb
+
+[NOTE]
+
+ The SAIL module variable for _rd'/rs1'_ is called _rsdc_.
+
+Operation::
+[source,sail]
+--
+X(rsdc) = EXTS(X(rsdc)[7..0]);
+--
+
+include::Zcb_footer.adoc[]
diff --git a/src/zc/c_sext_h.adoc b/src/zc/c_sext_h.adoc
new file mode 100644
index 0000000..82a64db
--- /dev/null
+++ b/src/zc/c_sext_h.adoc
@@ -0,0 +1,49 @@
+<<<
+[#insns-c_sext_h,reftext="Sign extend halfword, 16-bit encoding"]
+=== c.sext.h
+
+Synopsis::
+Sign extend halfword, 16-bit encoding
+
+Mnemonic::
+c.sext.h _rd'/rs1'_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x1, attr: ['C1'] },
+ { bits: 3, name: 0x3, attr: ['C.SEXT.H'] },
+ { bits: 2, name: 0x3, attr: ['FUNCT2'] },
+ { bits: 3, name: 'rd\'/rs1\'', attr: ['SRCDST'] },
+ { bits: 3, name: 0x7 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+Description::
+This instruction takes a single source/destination operand.
+It sign-extends the least-significant halfword in the operand to XLEN bits by copying the most-significant bit
+in the halfword (i.e., bit 15) to all of the more-significant bits.
+
+[NOTE]
+ _rd'/rs1'_ is from the standard 8-register set x8-x15.
+
+Prerequisites::
+Zbb is also required.
+
+32-bit equivalent::
+<<insns-sext_h>> from Zbb
+
+[NOTE]
+
+ The SAIL module variable for _rd'/rs1'_ is called _rsdc_.
+
+Operation::
+[source,sail]
+--
+X(rsdc) = EXTS(X(rsdc)[15..0]);
+--
+
+include::Zcb_footer.adoc[]
+
diff --git a/src/zc/c_sh.adoc b/src/zc/c_sh.adoc
new file mode 100644
index 0000000..977a887
--- /dev/null
+++ b/src/zc/c_sh.adoc
@@ -0,0 +1,48 @@
+<<<
+[#insns-c_sh,reftext="Store halfword, 16-bit encoding"]
+=== c.sh
+
+Synopsis::
+Store halfword, 16-bit encoding
+
+Mnemonic::
+c.sh _rs2'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x0, attr: ['C0'] },
+ { bits: 3, name: 'rs2\'' },
+ { bits: 1, name: 'uimm[1]' },
+ { bits: 1, name: '0' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 3, name: 0x3 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+include::c_lhsh_imm_offset.adoc[]
+
+Description::
+This instruction stores the least significant halfword of _rs2'_ to the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_.
+
+[NOTE]
+ _rs1'_ and _rs2'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-sh>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+mem[X(rs1c)+EXTZ(uimm)][15..0] = X(rs2c)
+--
+
+include::Zcb_footer.adoc[]
+
diff --git a/src/zc/c_zca_required.adoc b/src/zc/c_zca_required.adoc
new file mode 100644
index 0000000..f7b460c
--- /dev/null
+++ b/src/zc/c_zca_required.adoc
Binary files differ
diff --git a/src/zc/c_zext_b.adoc b/src/zc/c_zext_b.adoc
new file mode 100644
index 0000000..500461d
--- /dev/null
+++ b/src/zc/c_zext_b.adoc
@@ -0,0 +1,52 @@
+<<<
+[#insns-c_zext_b,reftext="Zero extend byte, 16-bit encoding"]
+=== c.zext.b
+
+Synopsis::
+Zero extend byte, 16-bit encoding
+
+Mnemonic::
+c.zext.b _rd'/rs1'_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x1, attr: ['C1'] },
+ { bits: 3, name: 0x0, attr: ['C.ZEXT.B'] },
+ { bits: 2, name: 0x3, attr: ['FUNCT2'] },
+ { bits: 3, name: 'rd\'/rs1\'', attr: ['SRCDST'] },
+ { bits: 3, name: 0x7 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+Description::
+This instruction takes a single source/destination operand.
+It zero-extends the least-significant byte of the operand to XLEN bits by inserting zeros into all of
+the bits more significant than 7.
+
+[NOTE]
+ _rd'/rs1'_ is from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+[source,sail]
+--
+andi rd'/rs1', rd'/rs1', 0xff
+--
+
+[NOTE]
+
+ The SAIL module variable for _rd'/rs1'_ is called _rsdc_.
+
+Operation::
+[source,sail]
+--
+X(rsdc) = EXTZ(X(rsdc)[7..0]);
+--
+
+include::Zcb_footer.adoc[]
+
diff --git a/src/zc/c_zext_h.adoc b/src/zc/c_zext_h.adoc
new file mode 100644
index 0000000..5999857
--- /dev/null
+++ b/src/zc/c_zext_h.adoc
@@ -0,0 +1,49 @@
+<<<
+[#insns-c_zext_h,reftext="Zero extend halfword, 16-bit encoding"]
+=== c.zext.h
+
+Synopsis::
+Zero extend halfword, 16-bit encoding
+
+Mnemonic::
+c.zext.h _rd'/rs1'_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x1, attr: ['C1'] },
+ { bits: 3, name: 0x2, attr: ['C.ZEXT.H'] },
+ { bits: 2, name: 0x3, attr: ['FUNCT2'] },
+ { bits: 3, name: 'rd\'/rs1\'', attr: ['SRCDST'] },
+ { bits: 3, name: 0x7 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+Description::
+This instruction takes a single source/destination operand.
+It zero-extends the least-significant halfword of the operand to XLEN bits by inserting zeros into all of
+the bits more significant than 15.
+
+[NOTE]
+ _rd'/rs1'_ is from the standard 8-register set x8-x15.
+
+Prerequisites::
+Zbb is also required.
+
+32-bit equivalent::
+<<insns-zext_h>> from Zbb
+
+[NOTE]
+
+ The SAIL module variable for _rd'/rs1'_ is called _rsdc_.
+
+Operation::
+[source,sail]
+--
+X(rsdc) = EXTZ(X(rsdc)[15..0]);
+--
+
+include::Zcb_footer.adoc[]
+
diff --git a/src/zc/c_zext_w.adoc b/src/zc/c_zext_w.adoc
new file mode 100644
index 0000000..3540405
--- /dev/null
+++ b/src/zc/c_zext_w.adoc
@@ -0,0 +1,51 @@
+<<<
+[#insns-c_zext_w,reftext="Zero extend word, 16-bit encoding"]
+=== c.zext.w
+
+Synopsis::
+Zero extend word, 16-bit encoding
+
+Mnemonic::
+c.zext.w _rd'/rs1'_
+
+Encoding (RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x1, attr: ['C1'] },
+ { bits: 3, name: 0x4, attr: ['C.ZEXT.W'] },
+ { bits: 2, name: 0x3, attr: ['FUNCT2'] },
+ { bits: 3, name: 'rd\'/rs1\'', attr: ['SRCDST'] },
+ { bits: 3, name: 0x7 },
+ { bits: 3, name: 0x4, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+Description::
+This instruction takes a single source/destination operand.
+It zero-extends the least-significant word of the operand to XLEN bits by inserting zeros into all of
+the bits more significant than 31.
+
+[NOTE]
+ _rd'/rs1'_ is from the standard 8-register set x8-x15.
+
+Prerequisites::
+Zba is also required.
+
+32-bit equivalent::
+[source,sail]
+--
+add.uw rd'/rs1', rd'/rs1', zero
+--
+
+[NOTE]
+
+ The SAIL module variable for _rd'/rs1'_ is called _rsdc_.
+
+Operation::
+[source,sail]
+--
+X(rsdc) = EXTZ(X(rsdc)[31..0]);
+--
+
+include::Zcb_footer.adoc[]
diff --git a/src/zc/changes_since_v0.50.adoc b/src/zc/changes_since_v0.50.adoc
new file mode 100644
index 0000000..a4452b1
--- /dev/null
+++ b/src/zc/changes_since_v0.50.adoc
@@ -0,0 +1,130 @@
+
+There are many changes since v0.50.1, which has been used for toolchain, spike, qemu and the CV32E41P implementation.
+
+The status of all of the instructions are in the tables. Note that _all_ subsets have been redefined.
+
+= Load/store
+
+.Load/store
+[options="header",width=100%]
+|====================================================================================
+| v0.50 name | v0.70 Name | Encoding changed? | Semantics changed? | Notes
+| C.LB | CM.LB | Y | N | uimm < 4 is "custom defined"
+| C.LBU | CM.LBU | Y | N | uimm < 4 is "custom defined"
+| C.LH | CM.LH | Y | N | uimm < 4 is "custom defined"
+| C.LHU | CM.LHU | Y | N | uimm < 4 is "custom defined"
+| C.SB | CM.SB | Y | N | uimm < 4 is "custom defined"
+| C.SH | CM.SH | Y | N | uimm < 4 is "custom defined"
+| N/A | C.LBU | N/A | N/A | CM.LBU with shorter uimm
+| N/A | C.LH | N/A | N/A | CM.LH with shorter uimm
+| N/A | C.LHU | N/A | N/A | CM.LHU with shorter uimm
+| N/A | C.SB | N/A | N/A | CM.SB with shorter uimm
+| N/A | C.SH | N/A | N/A | CM.SH with shorter uimm
+|====================================================================================
+
+= Table jump
+
+.Table Jump
+[options="header",width=100%]
+|====================================================================================
+| v0.50 name | v0.70 Name | Encoding changed? | Semantics changed? | Notes
+| C.TBLJAL | CM.JALT | Y | Y - exception model| Meaning of table index changed in the encoding, # removed from assembly syntax
+| C.TBLJ | CM.J | Y | Y - exception model| Meaning of table index changed in the encoding, # removed from assembly syntax
+| C.TBLJALM | N/A | N/A | N/A | Deleted
+|====================================================================================
+
+See this [commit](https://github.com/riscv/riscv-code-size-reduction/commit/8ba5b0fdf05d6fd5af118ba5301910d049abd1a8#diff-8d03bd23cf9ec0eb75984f7c6d4181aa9548acb5898dc9159514e24398076836) for the change in the table jump exception model.
+
+= Double move
+
+.Double move
+[options="header",width=100%]
+|====================================================================================
+| v0.50 name | v0.70 Name | Encoding changed? | Semantics changed? | Notes
+| C.MVA01S07 | CM.MVA01S | Y | N |
+| N/A | CM.MVSA01 | N/A | N/A | New instruction
+|====================================================================================
+
+Note that the .E extension versions for the EABI will be specified in the future, and cannot yet be confirmed as the EABI is not frozen.
+
+= Simple instructions
+
+.Simple instructions
+[options="header",width=100%]
+|====================================================================================
+| v0.50 name | v0.70 Name | Encoding changed? | Semantics changed? | Notes
+| C.ZEXT.B | same | Y | N |
+| C.ZEXT.H | same | Y | N |
+| C.SEXT.B | same | Y | N |
+| C.SEXT.H | same | Y | N |
+| C.SEXT.W | same | Y | N |
+| C.NOT | same | Y | N |
+| C.MUL | same | N | N | unchanged
+|====================================================================================
+
+= Push/pop
+
+All 32-bit forms are removed and all the 16-bit forms support 12 register lists (excluding {ra, s0-s10}):
+
+. {ra}
+. {ra, s0}
+. {ra, s0-s1}
+. {ra, s0-s2}
+. {ra, s0-s3}
+. {ra, s0-s4}
+. {ra, s0-s5}
+. {ra, s0-s6}
+. {ra, s0-s7}
+. {ra, s0-s8}
+. {ra, s0-s9}
+. {ra, s0-s11}
+
+spimm length also updated.
+
+Note that the .E extension versions for the EABI will be specified in the future, and cannot yet be confirmed as the EABI is not frozen.
+
+.Push/pop instructions
+[options="header",width=100%]
+|====================================================================================
+| v0.50 name | v0.70 Name | Encoding changed? | Semantics changed? | Notes
+| C.PUSH | CM.PUSH | Y | Y | areg_list no longer supported
+| C.POP | CM.POP | Y | Y |
+| C.POPRET | CM.POPRET | Y | Y | CM.POPRET doesn't return a value
+| C.POPRET | CM.POPRETZ | Y | Y | separate encoding for return zero
+|====================================================================================
+
+= Instructions in v0.50 but *not* in v0.70
+
+These instructions can be left in the compiler as experimental, enabled with the following switches:
+
+[#compilerswitches]
+.Compiler switches experimental instructions
+[options="header",width=100%]
+|==============================================================================
+| Switch | Enabled instructions
+| -mzce-lsgp | LWGP, SWGP, LDGP (RV64), SDGP (RV64)
+| -mzce-muli | MULI
+| -mzce-beqi | BEQI
+| -mzce-bnei | BNEI
+| -mzce-cdecbnez | C.DECBNEZ
+| -mzce-decbnez | DECBNEZ
+|==============================================================================
+
+== 16-bit Instructions
+
+C.DECBNEZ - the encoding space for this has been used by all the CM.* instructions.
+Therefore this instruction must be disabled in the compiler - unless an encoding is proposed.
+
+C.NEG - this is not very useful and can be deleted.
+
+== 32-bit Instructions
+
+MULI - This is in custom-0, so can be kept unchanged. Early benchmarking results suggest it's not much use, and the encoding is expensive so it's unlikely to ever be included in an extension.
+
+BEQI, BNEI - these fill in the 2 gaps in the BRANCH encoding group - these encodings have not been allocated to other instructions, so these can stay unchanged
+
+DECBNEZ - this should be updated to match https://github.com/riscv/riscv-code-size-reduction/blob/master/Zce-release-candidate/Zcmd.pdf
+
+LWGP, SWGP, LDGP, SDGP - these overlap with C.FLD, C.FSD
+
+PUSH/POP/POPRET - delete all of these
diff --git a/src/zc/cm_decbnez.adoc b/src/zc/cm_decbnez.adoc
new file mode 100644
index 0000000..912b768
--- /dev/null
+++ b/src/zc/cm_decbnez.adoc
@@ -0,0 +1,50 @@
+<<<
+[#insns-cm_decbnez,reftext="Decrement and branch, 16-bit encoding"]
+=== cm.decbnez: This is in the _development_ phase, for benchmarking and prototyping only
+
+Synopsis::
+Decrement and branch, 16-bit encoding
+
+Mnemonic::
+cm.decbnez _t0_, _offset_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 6, name: 'imm[6|7|3:1|5]', attr: [] },
+ { bits: 1, name: 0x1, attr: [] },
+ { bits: 3, name: 'imm[4|9:8]', attr: [] },
+ { bits: 1, name: 0x1, attr: [] },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+
+ In the current proposal only t0 can be decremented, future versions may allow more registers
+
+Description::
+This instruction decrements _t0_, and increments the PC by the sign extended immediate if _t0_ is zero *after* the decrement.
+
+Prerequisites::
+C or Zca
+
+32-bit equivalent::
+None
+
+Operation::
+[source,sail]
+--
+
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+t0 = 5;
+X(t0) = X(t0)-1;
+if (X(t0)==0) PC+=sext(imm); else PC+=2;
+
+--
+
+include::Zcmd_footer.adoc[]
+
diff --git a/src/zc/cm_jalt.adoc b/src/zc/cm_jalt.adoc
new file mode 100644
index 0000000..372d933
--- /dev/null
+++ b/src/zc/cm_jalt.adoc
@@ -0,0 +1,74 @@
+<<<
+[#insns-cm_jalt,reftext="Jump and link via table"]
+=== cm.jalt
+
+Synopsis::
+jump via table with optional link
+
+Mnemonic::
+cm.jalt _index_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 8, name: 'index', attr: [] },
+ { bits: 3, name: 0x0, attr: [] },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+
+ For this encoding to decode as _cm.jalt_, _index>=32_, otherwise it decodes as _cm.jt_, see <<insns-cm_jt>>.
+
+[NOTE]
+
+ If JVT.mode = 0 (Jump Table Mode) then _cm.jalt_ behaves as specified here. If JVT.mode is a reserved value, then _cm.jalt_ is also reserved. In the future other defined values of JVT.mode may change the behaviour of _cm.jalt_.
+
+Assembly Syntax::
+
+[source,sail]
+--
+cm.jalt index
+--
+
+Description::
+
+_cm.jalt_ reads an entry from the jump vector table in memory and jumps to the address that was read, linking to _ra_.
+
+For further information see <<insns-tablejump>>.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+No direct equivalent encoding exists.
+
+<<<
+
+[#insns-cm_jalt-SAIL,reftext="cm.jalt SAIL code"]
+Operation::
+
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+# target_address is temporary internal state, it doesn't represent a real register
+# InstMemory is byte indexed
+
+switch(XLEN) {
+ 32: table_address[XLEN-1:0] = JVT.base + (index<<2);
+ 64: table_address[XLEN-1:0] = JVT.base + (index<<3);
+}
+
+//fetch from the jump table
+target_address[XLEN-1:0] = InstMemory[table_address][XLEN-1:0];
+
+jal ra, target_address[XLEN-1:0]&~0x1;
+
+--
+
+include::Zcmt_footer.adoc[]
+
diff --git a/src/zc/cm_jt.adoc b/src/zc/cm_jt.adoc
new file mode 100644
index 0000000..8c7f67d
--- /dev/null
+++ b/src/zc/cm_jt.adoc
@@ -0,0 +1,74 @@
+<<<
+[#insns-cm_jt,reftext="Jump via table"]
+=== cm.jt
+
+Synopsis::
+jump via table
+
+Mnemonic::
+cm.jt _index_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 8, name: 'index', attr: [] },
+ { bits: 3, name: 0x0, attr: [] },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+
+ For this encoding to decode as _cm.jt_, _index<32_, otherwise it decodes as _cm.jalt_, see <<insns-cm_jalt>>.
+
+[NOTE]
+
+ If JVT.mode = 0 (Jump Table Mode) then _cm.jt_ behaves as specified here. If JVT.mode is a reserved value, then _cm.jt_ is also reserved. In the future other defined values of JVT.mode may change the behaviour of _cm.jt_.
+
+Assembly Syntax::
+
+[source,sail]
+--
+cm.jt index
+--
+
+Description::
+
+_cm.jt_ reads an entry from the jump vector table in memory and jumps to the address that was read.
+
+For further information see <<insns-tablejump>>.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+No direct equivalent encoding exists.
+
+<<<
+
+[#insns-cm_jt-SAIL,reftext="cm.jt SAIL code"]
+Operation::
+
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+# target_address is temporary internal state, it doesn't represent a real register
+# InstMemory is byte indexed
+
+switch(XLEN) {
+ 32: table_address[XLEN-1:0] = JVT.base + (index<<2);
+ 64: table_address[XLEN-1:0] = JVT.base + (index<<3);
+}
+
+//fetch from the jump table
+target_address[XLEN-1:0] = InstMemory[table_address][XLEN-1:0];
+
+j target_address[XLEN-1:0]&~0x1;
+
+--
+
+include::Zcmt_footer.adoc[]
+
diff --git a/src/zc/cm_lb.adoc b/src/zc/cm_lb.adoc
new file mode 100644
index 0000000..525ba97
--- /dev/null
+++ b/src/zc/cm_lb.adoc
@@ -0,0 +1,47 @@
+<<<
+[#insns-cm_lb,reftext="Load signed byte, 16-bit encoding"]
+=== cm.lb
+
+Synopsis::
+Load signed byte, 16-bit encoding
+
+Mnemonic::
+cm.lb _rd'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x0, attr: ['C0'] },
+ { bits: 3, name: 'rd\'' },
+ { bits: 2, name: 'uimm[2:1]' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 2, name: 'uimm[0|3]' },
+ { bits: 1, name: 0x0 },
+ { bits: 3, name: 0x1, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+include::cm_lbsb_imm_offset.adoc[]
+
+Description::
+This instruction loads a byte from the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_. The resulting byte is sign extended to XLEN bits and is written to _rd'_.
+
+[NOTE]
+ _rd'_ and _rs1'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-lb>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+X(rdc) = EXTS(mem[X(rs1c)+EXTZ(uimm)][7..0]);
+--
+
+include::Zcmb_footer.adoc[]
diff --git a/src/zc/cm_lbsb_imm_offset.adoc b/src/zc/cm_lbsb_imm_offset.adoc
new file mode 100644
index 0000000..4df7702
--- /dev/null
+++ b/src/zc/cm_lbsb_imm_offset.adoc
@@ -0,0 +1,9 @@
+
+The immediate offset is formed as follows:
+[source,sail]
+--
+ uimm[31:4] = 0;
+ uimm[3] = encoding[10];
+ uimm[2:1] = encoding[6:5];
+ uimm[0] = encoding[11];
+--
diff --git a/src/zc/cm_lbu.adoc b/src/zc/cm_lbu.adoc
new file mode 100644
index 0000000..7e9735f
--- /dev/null
+++ b/src/zc/cm_lbu.adoc
@@ -0,0 +1,50 @@
+<<<
+[#insns-cm_lbu,reftext="Load unsigned byte, 16-bit encoding"]
+=== cm.lbu
+
+Synopsis::
+Load unsigned byte, 16-bit encoding
+
+Mnemonic::
+cm.lbu _rd'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 3, name: 'rd\'' },
+ { bits: 2, name: 'uimm[2:1]' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 2, name: 'uimm[0|3]' },
+ { bits: 1, name: 0x0 },
+ { bits: 3, name: 0x1, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+ If _uimm < 4_ the encoding is designated for custom use, as the functionality overlaps with <<insns-c_lbu>>.
+
+include::cm_lbsb_imm_offset.adoc[]
+
+Description::
+This instruction loads a byte from the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_. The resulting byte is zero extended to XLEN bits and is written to _rd'_.
+
+[NOTE]
+ _rd'_ and _rs1'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-lbu>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+X(rdc) = EXTZ(mem[X(rs1c)+EXTZ(uimm)][7..0]);
+--
+
+include::Zcmb_footer.adoc[]
diff --git a/src/zc/cm_lh.adoc b/src/zc/cm_lh.adoc
new file mode 100644
index 0000000..bb1b6b9
--- /dev/null
+++ b/src/zc/cm_lh.adoc
@@ -0,0 +1,51 @@
+<<<
+[#insns-cm_lh,reftext="Load signed halfword, 16-bit encoding"]
+=== cm.lh
+
+Synopsis::
+Load signed halfword, 16-bit encoding
+
+Mnemonic::
+cm.lh _rd'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x0, attr: ['C0'] },
+ { bits: 3, name: 'rd\'' },
+ { bits: 2, name: 'uimm[2:1]' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 2, name: 'uimm[4:3]' },
+ { bits: 1, name: 0x1 },
+ { bits: 3, name: 0x1, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+ If _uimm < 4_ the encoding is designated for custom use, as the functionality overlaps with <<insns-c_lh>>.
+
+include::cm_lhsh_imm_offset.adoc[]
+
+Description::
+This instruction loads a halfword from the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_. The resulting halfword is sign extended to XLEN bits and is written to _rd'_.
+
+[NOTE]
+ _rd'_ and _rs1'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-lh>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+X(rdc) = EXTS(load_mem[X(rs1c)+EXTZ(uimm)][15..0]);
+--
+
+include::Zcmb_footer.adoc[]
+
diff --git a/src/zc/cm_lhsh_imm_offset.adoc b/src/zc/cm_lhsh_imm_offset.adoc
new file mode 100644
index 0000000..1aa6bc8
--- /dev/null
+++ b/src/zc/cm_lhsh_imm_offset.adoc
@@ -0,0 +1,9 @@
+
+The immediate offset is formed as follows:
+[source,sail]
+--
+ uimm[31:5] = 0;
+ uimm[4:3] = encoding[11:10];
+ uimm[2:1] = encoding[6:5];
+ uimm[0] = 0;
+--
diff --git a/src/zc/cm_lhu.adoc b/src/zc/cm_lhu.adoc
new file mode 100644
index 0000000..3a3c281
--- /dev/null
+++ b/src/zc/cm_lhu.adoc
@@ -0,0 +1,51 @@
+<<<
+[#insns-cm_lhu,reftext="Load unsigned halfword, 16-bit encoding"]
+=== cm.lhu
+
+Synopsis::
+Load unsigned halfword, 16-bit encoding
+
+Mnemonic::
+cm.lhu _rd'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 3, name: 'rd\'' },
+ { bits: 2, name: 'uimm[2:1]' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 2, name: 'uimm[4:3]' },
+ { bits: 1, name: 0x1 },
+ { bits: 3, name: 0x1, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+ If _uimm < 4_ the encoding is designated for custom use, as the functionality overlaps with <<insns-c_lhu>>.
+
+include::cm_lhsh_imm_offset.adoc[]
+
+Description::
+This instruction loads a halfword from the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_. The resulting halfword is zero extended to XLEN bits and is written to _rd'_.
+
+[NOTE]
+ _rd'_ and _rs1'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-lhu>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+X(rdc) = EXTZ(load_mem[X(rs1c)+EXTZ(uimm)][15..0]);
+--
+
+include::Zcmb_footer.adoc[]
+
diff --git a/src/zc/cm_mva01s.adoc b/src/zc/cm_mva01s.adoc
new file mode 100644
index 0000000..9d36688
--- /dev/null
+++ b/src/zc/cm_mva01s.adoc
@@ -0,0 +1,62 @@
+<<<
+[#insns-cm_mva01s,reftext="Move two s0-s7 registers into a0-a1"]
+=== cm.mva01s
+
+Synopsis::
+Move two s0-s7 registers into a0-a1
+
+Mnemonic::
+cm.mva01s _r1s'_, _r2s'_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 3, name: 'r2s\'', attr: [] },
+ { bits: 2, name: 0x3, attr: [] },
+ { bits: 3, name: 'r1s\'', attr: [] },
+ { bits: 3, name: 0x3, attr: [] },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+Assembly Syntax::
+
+[source,sail]
+--
+cm.mva01s r1s', r2s'
+--
+
+Description::
+This instruction moves _r1s'_ into _a0_ and _r2s'_ into _a1_.
+The execution is atomic, so it is not possible to observe state where only one of _a0_ or _a1_ have been updated.
+
+The encoding uses _sreg_ number specifiers instead of _xreg_ number specifiers to save encoding space.
+The mapping between them is specified in the pseudo-code below.
+
+[NOTE]
+
+ The _s_ register mapping is taken from the UABI, and may not match the currently unratified EABI. _cm.mva01s.e_ may be included in the future.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+No direct equivalent encoding exists.
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+if (RV32E && (r1sc>1 || r2sc>1)) {
+ reserved();
+}
+xreg1 = {r1sc[2:1]>0,r1sc[2:1]==0,r1sc[2:0]};
+xreg2 = {r2sc[2:1]>0,r2sc[2:1]==0,r2sc[2:0]};
+X[10] = X[xreg1];
+X[11] = X[xreg2];
+--
+
+include::Zcmp_footer.adoc[]
+
diff --git a/src/zc/cm_mvsa01.adoc b/src/zc/cm_mvsa01.adoc
new file mode 100644
index 0000000..fd59c85
--- /dev/null
+++ b/src/zc/cm_mvsa01.adoc
@@ -0,0 +1,65 @@
+<<<
+[#insns-cm_mvsa01,reftext="Move a0-a1 into two different s0-s7 registers"]
+=== cm.mvsa01
+
+Synopsis::
+Move a0-a1 into two registers of s0-s7
+
+Mnemonic::
+cm.mvsa01 _r1s'_, _r2s'_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 3, name: 'r2s\'', attr: [] },
+ { bits: 2, name: 0x1, attr: [] },
+ { bits: 3, name: 'r1s\'', attr: [] },
+ { bits: 3, name: 0x3, attr: [] },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+ For the encoding to be legal _r1s'_ != _r2s'_.
+
+Assembly Syntax::
+
+[source,sail]
+--
+cm.mvsa01 r1s', r2s'
+--
+
+Description::
+This instruction moves _a0_ into _r1s'_ and _a1_ into _r2s'_. _r1s'_ and _r2s'_ must be different.
+The execution is atomic, so it is not possible to observe state where only one of _r1s'_ or _r2s'_ has been updated.
+
+The encoding uses _sreg_ number specifiers instead of _xreg_ number specifiers to save encoding space.
+The mapping between them is specified in the pseudo-code below.
+
+[NOTE]
+
+ The _s_ register mapping is taken from the UABI, and may not match the currently unratified EABI. _cm.mvsa01.e_ may be included in the future.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+No direct equivalent encoding exists.
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+if (RV32E && (r1sc>1 || r2sc>1)) {
+ reserved();
+}
+xreg1 = {r1sc[2:1]>0,r1sc[2:1]==0,r1sc[2:0]};
+xreg2 = {r2sc[2:1]>0,r2sc[2:1]==0,r2sc[2:0]};
+X[xreg1] = X[10];
+X[xreg2] = X[11];
+--
+
+include::Zcmp_footer.adoc[]
+
diff --git a/src/zc/cm_pop.adoc b/src/zc/cm_pop.adoc
new file mode 100644
index 0000000..30e097e
--- /dev/null
+++ b/src/zc/cm_pop.adoc
@@ -0,0 +1,49 @@
+<<<
+[#insns-cm_pop,reftext="Pop registers, deallocate stack frame."]
+=== cm.pop
+
+Synopsis::
+Destroy stack frame: load ra and 0 to 12 saved registers from the stack frame, deallocate the stack frame.
+
+Mnemonic::
+cm.pop _{reg_list}, stack_adj_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 2, name: 'spimm\[5:4\]', attr: [] },
+ { bits: 4, name: 'rlist', attr: [] },
+ { bits: 5, name: 0x1a, attr: [] },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+
+ _rlist_ values 0 to 3 are reserved for a future EABI variant called _cm.pop.e_
+
+Assembly Syntax::
+
+[source,sail]
+--
+cm.pop {reg_list}, stack_adj
+cm.pop {xreg_list}, stack_adj
+--
+
+include::variable_def.adoc[]
+include::pushpop_vars.adoc[]
+
+<<<
+
+Description::
+This instruction pops (loads) the registers in _reg_list_ from stack memory,
+and then adjusts the stack pointer by _stack_adj_.
+
+include::pushpop_extra_info.adoc[]
+include::cm_pop_popret_loads_pseudo_code.adoc[]
+include::cm_pop_pseudo_code.adoc[]
+
+include::Zcmp_footer.adoc[]
+
diff --git a/src/zc/cm_pop_popret_loads_pseudo_code.adoc b/src/zc/cm_pop_popret_loads_pseudo_code.adoc
new file mode 100644
index 0000000..af46b9d
--- /dev/null
+++ b/src/zc/cm_pop_popret_loads_pseudo_code.adoc
@@ -0,0 +1,25 @@
+
+Operation::
+
+The first section of pseudo-code may be executed multiple times before the instruction successfully completes.
+
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+if (XLEN==32) bytes=4; else bytes=8;
+
+addr=sp+stack_adj-bytes;
+for(i in 27,26,25,24,23,22,21,20,19,18,9,8,1) {
+ //if register i is in xreg_list
+ if (xreg_list[i]) {
+ switch(bytes) {
+ 4: asm("lw x[i], 0(addr)");
+ 8: asm("ld x[i], 0(addr)");
+ }
+ addr-=bytes;
+ }
+}
+--
+
+The final section of pseudo-code executes atomically, and only executes if the section above completes without any exceptions or interrupts.
diff --git a/src/zc/cm_pop_pseudo_code.adoc b/src/zc/cm_pop_pseudo_code.adoc
new file mode 100644
index 0000000..0cd38a0
--- /dev/null
+++ b/src/zc/cm_pop_pseudo_code.adoc
@@ -0,0 +1,7 @@
+
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+sp+=stack_adj;
+--
diff --git a/src/zc/cm_popret.adoc b/src/zc/cm_popret.adoc
new file mode 100644
index 0000000..1150203
--- /dev/null
+++ b/src/zc/cm_popret.adoc
@@ -0,0 +1,49 @@
+<<<
+[#insns-cm_popret,reftext="Pop registers, deallocate stack frame, return."]
+=== cm.popret
+
+Synopsis::
+Destroy stack frame: load ra and 0 to 12 saved registers from the stack frame, deallocate the stack frame, return to ra.
+
+Mnemonic::
+cm.popret _{reg_list}, stack_adj_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 2, name: 'spimm\[5:4\]', attr: [] },
+ { bits: 4, name: 'rlist', attr: [] },
+ { bits: 5, name: 0x1e, attr: [] },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+
+ _rlist_ values 0 to 3 are reserved for a future EABI variant called _cm.popret.e_
+
+Assembly Syntax::
+
+[source,sail]
+--
+cm.popret {reg_list}, stack_adj
+cm.popret {xreg_list}, stack_adj
+--
+
+include::variable_def.adoc[]
+include::pushpop_vars.adoc[]
+
+<<<
+
+Description::
+This instruction pops (loads) the registers in _reg_list_ from stack memory,
+ adjusts the stack pointer by _stack_adj_ and then returns to _ra_.
+
+include::pushpop_extra_info.adoc[]
+include::cm_pop_popret_loads_pseudo_code.adoc[]
+include::cm_popret_pseudo_code.adoc[]
+
+include::Zcmp_footer.adoc[]
+
diff --git a/src/zc/cm_popret_pseudo_code.adoc b/src/zc/cm_popret_pseudo_code.adoc
new file mode 100644
index 0000000..ecf60f2
--- /dev/null
+++ b/src/zc/cm_popret_pseudo_code.adoc
@@ -0,0 +1,9 @@
+
+
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+sp+=stack_adj;
+asm("ret");
+--
diff --git a/src/zc/cm_popretz.adoc b/src/zc/cm_popretz.adoc
new file mode 100644
index 0000000..10ccf35
--- /dev/null
+++ b/src/zc/cm_popretz.adoc
@@ -0,0 +1,49 @@
+<<<
+[#insns-cm_popretz,reftext="Pop registers, deallocate stack frame, return zero."]
+=== cm.popretz
+
+Synopsis::
+Destroy stack frame: load ra and 0 to 12 saved registers from the stack frame, deallocate the stack frame, move zero into a0, return to ra.
+
+Mnemonic::
+cm.popretz _{reg_list}, stack_adj_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 2, name: 'spimm\[5:4\]', attr: [] },
+ { bits: 4, name: 'rlist', attr: [] },
+ { bits: 5, name: 0x1c, attr: [] },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+
+ _rlist_ values 0 to 3 are reserved for a future EABI variant called _cm.popretz.e_
+
+
+Assembly Syntax::
+
+[source,sail]
+--
+cm.popretz {reg_list}, stack_adj
+cm.popretz {xreg_list}, stack_adj
+--
+
+include::pushpop_vars.adoc[]
+
+<<<
+
+Description::
+This instruction pops (loads) the registers in _reg_list_ from stack memory,
+ adjusts the stack pointer by _stack_adj_, moves zero into a0 and then returns to _ra_.
+
+include::pushpop_extra_info.adoc[]
+include::cm_pop_popret_loads_pseudo_code.adoc[]
+include::cm_popretz_pseudo_code.adoc[]
+
+include::Zcmp_footer.adoc[]
+
diff --git a/src/zc/cm_popretz_pseudo_code.adoc b/src/zc/cm_popretz_pseudo_code.adoc
new file mode 100644
index 0000000..6aac95c
--- /dev/null
+++ b/src/zc/cm_popretz_pseudo_code.adoc
@@ -0,0 +1,14 @@
+
+
+[NOTE]
+
+ The _li a0, 0_ *could* be executed more than once, but is included in the atomic section for convenience.
+
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+asm("li a0, 0");
+sp+=stack_adj;
+asm("ret");
+--
diff --git a/src/zc/cm_push.adoc b/src/zc/cm_push.adoc
new file mode 100644
index 0000000..77f1fde
--- /dev/null
+++ b/src/zc/cm_push.adoc
@@ -0,0 +1,48 @@
+<<<
+[#insns-cm_push,reftext="Create stack frame: push registers, allocate additional stack space."]
+=== cm.push
+
+Synopsis::
+Create stack frame: store ra and 0 to 12 saved registers to the stack frame, optionally allocate additional stack space.
+
+Mnemonic::
+cm.push _{reg_list}, -stack_adj_
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x2, attr: ['C2'] },
+ { bits: 2, name: 'spimm\[5:4\]', attr: [] },
+ { bits: 4, name: 'rlist', attr: [] },
+ { bits: 5, name: 0x18, attr: [] },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+
+ _rlist_ values 0 to 3 are reserved for a future EABI variant called _cm.push.e_
+
+Assembly Syntax::
+
+[source,sail]
+--
+cm.push {reg_list}, -stack_adj
+cm.push {xreg_list}, -stack_adj
+--
+
+include::variable_def.adoc[]
+include::pushpop_vars.adoc[]
+
+<<<
+Description::
+This instruction pushes (stores) the registers in _reg_list_ to the memory below the stack pointer,
+and then creates the stack frame by decrementing the stack pointer by _stack_adj_,
+including any additional stack space requested by the value of _spimm_.
+
+include::pushpop_extra_info.adoc[]
+include::cm_push_stores_pseudo_code.adoc[]
+include::cm_push_pseudo_code.adoc[]
+
+include::Zcmp_footer.adoc[]
diff --git a/src/zc/cm_push_pseudo_code.adoc b/src/zc/cm_push_pseudo_code.adoc
new file mode 100644
index 0000000..8500f0e
--- /dev/null
+++ b/src/zc/cm_push_pseudo_code.adoc
@@ -0,0 +1,7 @@
+
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+sp-=stack_adj;
+--
diff --git a/src/zc/cm_push_stores_pseudo_code.adoc b/src/zc/cm_push_stores_pseudo_code.adoc
new file mode 100644
index 0000000..46771dd
--- /dev/null
+++ b/src/zc/cm_push_stores_pseudo_code.adoc
@@ -0,0 +1,25 @@
+
+Operation::
+
+The first section of pseudo-code may be executed multiple times before the instruction successfully completes.
+
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+if (XLEN==32) bytes=4; else bytes=8;
+
+addr=sp-bytes;
+for(i in 27,26,25,24,23,22,21,20,19,18,9,8,1) {
+ //if register i is in xreg_list
+ if (xreg_list[i]) {
+ switch(bytes) {
+ 4: asm("sw x[i], 0(addr)");
+ 8: asm("sd x[i], 0(addr)");
+ }
+ addr-=bytes;
+ }
+}
+--
+
+The final section of pseudo-code executes atomically, and only executes if the section above completes without any exceptions or interrupts.
diff --git a/src/zc/cm_sb.adoc b/src/zc/cm_sb.adoc
new file mode 100644
index 0000000..265d039
--- /dev/null
+++ b/src/zc/cm_sb.adoc
@@ -0,0 +1,50 @@
+<<<
+[#insns-cm_sb,reftext="Store byte, 16-bit encoding"]
+=== cm.sb
+
+Synopsis::
+Store byte, 16-bit encoding
+
+Mnemonic::
+cm.sb _rs2'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x0, attr: ['C0'] },
+ { bits: 3, name: 'rs2\'' },
+ { bits: 2, name: 'uimm[2:1]' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 2, name: 'uimm[0|3]' },
+ { bits: 1, name: 0x0 },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+ If _uimm < 4_ the encoding is designated for custom use, as the functionality overlaps with <<insns-c_sb>>.
+
+include::cm_lbsb_imm_offset.adoc[]
+
+Description::
+This instruction stores the least significant byte of _rs2'_ to the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_.
+
+[NOTE]
+ _rs1'_ and _rs2'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-sb>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+mem[X(rs1c)+EXTZ(uimm)][7..0] = X(rs2c)
+--
+
+include::Zcmb_footer.adoc[]
diff --git a/src/zc/cm_sh.adoc b/src/zc/cm_sh.adoc
new file mode 100644
index 0000000..fb5e538
--- /dev/null
+++ b/src/zc/cm_sh.adoc
@@ -0,0 +1,51 @@
+<<<
+[#insns-cm_sh,reftext="Store halfword, 16-bit encoding"]
+=== cm.sh
+
+Synopsis::
+Store halfword, 16-bit encoding
+
+Mnemonic::
+cm.sh _rs2'_, _uimm_(_rs1'_)
+
+Encoding (RV32, RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 2, name: 0x0, attr: ['C0'] },
+ { bits: 3, name: 'rs2\'' },
+ { bits: 2, name: 'uimm[2:1]' },
+ { bits: 3, name: 'rs1\'' },
+ { bits: 2, name: 'uimm[4:3]' },
+ { bits: 1, name: 0x1 },
+ { bits: 3, name: 0x5, attr: ['FUNCT3'] },
+],config:{bits:16}}
+....
+
+[NOTE]
+ If _uimm < 4_ the encoding is designated for custom use, as the functionality overlaps with <<insns-c_sh>>.
+
+include::cm_lhsh_imm_offset.adoc[]
+
+Description::
+This instruction stores the least significant halfword of _rs2'_ to the memory address formed by adding _rs1'_ to the zero extended immediate _uimm_.
+
+[NOTE]
+ _rs1'_ and _rs2'_ are from the standard 8-register set x8-x15.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+<<insns-sh>>
+
+Operation::
+[source,sail]
+--
+//This is not SAIL, it's pseudo-code. The SAIL hasn't been written yet.
+
+mem[X(rs1c)+EXTZ(uimm)][15..0] = X(rs2c)
+--
+
+include::Zcmb_footer.adoc[]
+
diff --git a/src/zc/example.bib b/src/zc/example.bib
new file mode 100644
index 0000000..dd4ca0b
--- /dev/null
+++ b/src/zc/example.bib
@@ -0,0 +1,40 @@
+@inproceedings{riscI-isca1981,
+ title = {{RISC I}: {A} Reduced Instruction Set {VLSI} Computer},
+ author = {David A. Patterson and Carlo H. S\'{e}quin},
+ booktitle = {ISCA},
+ location = {Minneapolis, Minnesota, USA},
+ pages = {443-458},
+ year = {1981}
+}
+
+@InProceedings{Katevenis:1983,
+ author = {Katevenis, Manolis G.H. and Sherburne,Jr., Robert W. and Patterson, David A. and S{\'e}quin, Carlo H.},
+ title = {The {RISC II} micro-architecture},
+ booktitle = {Proceedings VLSI 83 Conference},
+ year = 1983,
+ month = {August}}
+
+@inproceedings{Ungar:1984,
+ author = {David Ungar and Ricki Blau and Peter Foley and Dain Samples
+ and David Patterson},
+ title = {Architecture of {SOAR}: {Smalltalk} on a {RISC}},
+ booktitle = {ISCA},
+ address = {Ann Arbor, MI},
+ year = {1984},
+ pages = {188--197}
+}
+
+@Article{spur-jsscc1989,
+ author = {David D. Lee and Shing I. Kong and Mark D. Hill and
+ George S. Taylor and David A. Hodges and Randy
+ H. Katz and David A. Patterson},
+ title = {A {VLSI} Chip Set for a Multiprocessor
+ Workstation--{Part I}: An {RISC} Microprocessor with
+ Coprocessor Interface and Support for Symbolic
+ Processing},
+ journal = {IEEE JSSC},
+ year = 1989,
+ volume = 24,
+ number = 6,
+ pages = {1688--1698},
+ month = {December}}
diff --git a/src/zc/jvt_csr.adoc b/src/zc/jvt_csr.adoc
new file mode 100644
index 0000000..9ad2367
--- /dev/null
+++ b/src/zc/jvt_csr.adoc
@@ -0,0 +1,65 @@
+<<<
+[#csrs-jvt,reftext="JVT CSR, table jump base vector and control register"]
+=== JVT CSR
+
+Synopsis::
+Table jump base vector and control register
+
+Address::
+0x0017
+
+Permissions::
+URW
+
+Format (RV32)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 6, name: 'mode', attr: ['6'] },
+ { bits: 26, name: 'base[XLEN-1:6] (WARL)', attr: ['XLEN-6'] },
+],config:{bits:32}}
+....
+
+Format (RV64)::
+[wavedrom, , svg]
+....
+{reg:[
+ { bits: 6, name: 'mode', attr: ['6'] },
+ { bits: 58, name: 'base[XLEN-1:6] (WARL)', attr: ['XLEN-6'] },
+],config:{bits:64}}
+....
+
+Description::
+
+The _JVT_ register is an XLEN-bit *WARL* read/write register that holds the jump table configuration, consisting of the jump table base address (BASE) and the jump table mode (MODE).
+
+If <<Zcmt>> is implemented then _JVT_ must also be implemented, but can contain a read-only value. If _JVT_ is writable, the set of values the register may hold can vary by implementation. The value in the BASE field must always be aligned on a 64-byte boundary.
+
+_JVT.base_ is a virtual address, whenever virtual memory is enabled.
+
+The memory pointed to by _JVT.base_ is treated as instruction memory for the purpose of executing table jump instructions, implying execute access permission.
+
+[#JVT-config-table]
+._JVT.mode_ definition
+[width="60%",options=header]
+|=============================================================================================
+| JVT.mode | Comment
+| 000000 | Jump table mode
+| others | *reserved for future standard use*
+|=============================================================================================
+
+_JVT.mode_ is a *WARL* field, so can only be programmed to modes which are implemented. Therefore the discovery mechanism is to
+attempt to program different modes and read back the values to see which are available. Jump table mode _must_ be implemented.
+
+NOTE: in future the RISC-V Unified Discovery method will report the available modes.
+
+Architectural State::
+
+_JVT_ adds architectural state to the system software context (such as an OS process), therefore must be saved/restored on context switches.
+
+State Enable::
+
+If the Smstateen extension is implemented, then bit 2 in _mstateen0_, _sstateen0_, and _hstateen0_ is implemented. If bit 2 of a controlling _stateen0_ CSR is zero, then access to the _JVT_ CSR and execution of a _cm.jalt_ or _cm.jt_ instruction by a lower privilege level results in an Illegal Instruction trap (or, if appropriate, a Virtual Instruction trap).
+
+include::Zcmt_footer.adoc[]
+
diff --git a/src/zc/pushpop.adoc b/src/zc/pushpop.adoc
new file mode 100644
index 0000000..e4d61b8
--- /dev/null
+++ b/src/zc/pushpop.adoc
@@ -0,0 +1,349 @@
+<<<
+
+[#insns-pushpop,reftext="PUSH/POP Register Instructions"]
+== PUSH/POP register instructions
+
+These instructions are collectively referred to as PUSH/POP:
+
+* <<#insns-cm_push>>
+* <<#insns-cm_pop>>
+* <<#insns-cm_popret>>
+* <<#insns-cm_popretz>>
+
+The term PUSH refers to _cm.push_.
+
+The term POP refers to _cm.pop_.
+
+The term POPRET refers to _cm.popret and cm.popretz_.
+
+Common details for these instructions are in this section.
+
+=== PUSH/POP functional overview
+
+PUSH, POP, POPRET are used to reduce the size of function prologues and epilogues.
+
+. The PUSH instruction
+** adjusts the stack pointer to create the stack frame
+** pushes (stores) the registers specified in the register list to the stack frame
+
+. The POP instruction
+** pops (loads) the registers in the register list from the stack frame
+** adjusts the stack pointer to destroy the stack frame
+
+. The POPRET instructions
+** pop (load) the registers in the register list from the stack frame
+** _cm.popretz_ also moves zero into _a0_ as the return value
+** adjust the stack pointer to destroy the stack frame
+** execute a _ret_ instruction to return from the function
+
+<<<
+=== Example usage
+
+This example gives an illustration of the use of PUSH and POPRET.
+
+The function _processMarkers_ in the EMBench benchmark picojpeg in the following file on github: https://github.com/embench/embench-iot/blob/master/src/picojpeg/libpicojpeg.c[libpicojpeg.c]
+
+The prologue and epilogue compile with GCC10 to:
+
+[source,SAIL]
+----
+
+ 0001098a <processMarkers>:
+ 1098a: 711d addi sp,sp,-96 ;#cm.push(1)
+ 1098c: c8ca sw s2,80(sp) ;#cm.push(2)
+ 1098e: c6ce sw s3,76(sp) ;#cm.push(3)
+ 10990: c4d2 sw s4,72(sp) ;#cm.push(4)
+ 10992: ce86 sw ra,92(sp) ;#cm.push(5)
+ 10994: cca2 sw s0,88(sp) ;#cm.push(6)
+ 10996: caa6 sw s1,84(sp) ;#cm.push(7)
+ 10998: c2d6 sw s5,68(sp) ;#cm.push(8)
+ 1099a: c0da sw s6,64(sp) ;#cm.push(9)
+ 1099c: de5e sw s7,60(sp) ;#cm.push(10)
+ 1099e: dc62 sw s8,56(sp) ;#cm.push(11)
+ 109a0: da66 sw s9,52(sp) ;#cm.push(12)
+ 109a2: d86a sw s10,48(sp);#cm.push(13)
+ 109a4: d66e sw s11,44(sp);#cm.push(14)
+...
+ 109f4: 4501 li a0,0 ;#cm.popretz(1)
+ 109f6: 40f6 lw ra,92(sp) ;#cm.popretz(2)
+ 109f8: 4466 lw s0,88(sp) ;#cm.popretz(3)
+ 109fa: 44d6 lw s1,84(sp) ;#cm.popretz(4)
+ 109fc: 4946 lw s2,80(sp) ;#cm.popretz(5)
+ 109fe: 49b6 lw s3,76(sp) ;#cm.popretz(6)
+ 10a00: 4a26 lw s4,72(sp) ;#cm.popretz(7)
+ 10a02: 4a96 lw s5,68(sp) ;#cm.popretz(8)
+ 10a04: 4b06 lw s6,64(sp) ;#cm.popretz(9)
+ 10a06: 5bf2 lw s7,60(sp) ;#cm.popretz(10)
+ 10a08: 5c62 lw s8,56(sp) ;#cm.popretz(11)
+ 10a0a: 5cd2 lw s9,52(sp) ;#cm.popretz(12)
+ 10a0c: 5d42 lw s10,48(sp);#cm.popretz(13)
+ 10a0e: 5db2 lw s11,44(sp);#cm.popretz(14)
+ 10a10: 6125 addi sp,sp,96 ;#cm.popretz(15)
+ 10a12: 8082 ret ;#cm.popretz(16)
+----
+
+<<<
+
+with the GCC option _-msave-restore_ the output is the following:
+
+[source,SAIL]
+----
+0001080e <processMarkers>:
+ 1080e: 73a012ef jal t0,11f48 <__riscv_save_12>
+ 10812: 1101 addi sp,sp,-32
+...
+ 10862: 4501 li a0,0
+ 10864: 6105 addi sp,sp,32
+ 10866: 71e0106f j 11f84 <__riscv_restore_12>
+----
+
+with PUSH/POPRET this reduces to
+
+[source,SAIL]
+----
+0001080e <processMarkers>:
+ 1080e: b8fa cm.push {ra,s0-s11},-96
+...
+ 10866: bcfa cm.popretz {ra,s0-s11}, 96
+----
+
+The prologue / epilogue reduce from 60-bytes in the original code, to 14-bytes with _-msave-restore_,
+and to 4-bytes with PUSH and POPRET.
+As well as reducing the code-size PUSH and POPRET eliminate the branches from
+calling the millicode _save/restore_ routines and so may also perform better.
+
+[NOTE]
+
+ The calls to _<riscv_save_0>/<riscv_restore_0>_ become 64-bit when the target functions are out of the ±1MB range, increasing the prologue/epilogue size to 22-bytes.
+
+[NOTE]
+
+ POP is typically used in tail-calling sequences where _ret_ is not used to return to _ra_ after destroying the stack frame.
+
+[#pushpop-areg-list]
+
+==== Stack pointer adjustment handling
+
+The instructions all automatically adjust the stack pointer by enough to cover the memory required for the registers being saved or restored.
+Additionally the _spimm_ field in the encoding allows the stack pointer to be adjusted in additional increments of 16-bytes. There is only a small restricted
+range available in the encoding; if the range is insufficient then a separate _c.addi16sp_ can be used to increase the range.
+
+==== Register list handling
+
+There is no support for the _{ra, s0-s10}_ register list without also adding _s11_. Therefore the _{ra, s0-s11}_ register list must be used in this case.
+
+[#pushpop-idempotent-memory]
+=== PUSH/POP Fault handling
+
+Correct execution requires that _sp_ refers to idempotent memory (also see <<pushpop_non-idem-mem>>), because the core must be able to
+handle traps detected during the sequence.
+The entire PUSH/POP sequence is re-executed after returning from the trap handler, and multiple traps are possible during the sequence.
+
+If a trap occurs during the sequence then _xEPC_ is updated with the PC of the instruction, _xTVAL_ (if not read-only-zero) updated with the bad address if it was an access fault and _xCAUSE_ updated with the type of trap.
+
+NOTE: It is implementation defined whether interrupts can also be taken during the sequence execution.
+
+[#pushpop-software-view]
+=== Software view of execution
+
+==== Software view of the PUSH sequence
+
+From a software perspective the PUSH sequence appears as:
+
+* A sequence of stores writing the bytes required by the pseudo-code
+** The bytes may be written in any order.
+** The bytes may be grouped into larger accesses.
+** Any of the bytes may be written multiple times.
+* A stack pointer adjustment
+
+NOTE: If an implementation allows interrupts during the sequence, and the interrupt handler uses _sp_ to allocate stack memory, then any stores which were executed before the interrupt may be overwritten by the handler. This is safe because the memory is idempotent and the stores will be re-executed when execution resumes.
+
+The stack pointer adjustment must only be committed only when it is certain that the entire PUSH instruction will commit.
+
+Stores may also return imprecise faults from the bus.
+It is platform defined whether the core implementation waits for the bus responses before continuing to the final stage of the sequence,
+or handles errors responses after completing the PUSH instruction.
+
+<<<
+
+For example:
+
+[source,sail]
+--
+cm.push {ra, s0-s5}, -64
+--
+
+Appears to software as:
+
+[source,sail]
+--
+# any bytes from sp-1 to sp-28 may be written multiple times before
+# the instruction completes therefore these updates may be visible in
+# the interrupt/exception handler below the stack pointer
+sw s5, -4(sp)
+sw s4, -8(sp)
+sw s3,-12(sp)
+sw s2,-16(sp)
+sw s1,-20(sp)
+sw s0,-24(sp)
+sw ra,-28(sp)
+
+# this must only execute once, and will only execute after all stores
+# completed without any precise faults, therefore this update is only
+# visible in the interrupt/exception handler if cm.push has completed
+addi sp, sp, -64
+--
+
+==== Software view of the POP/POPRET sequence
+
+From a software perspective the POP/POPRET sequence appears as:
+
+* A sequence of loads reading the bytes required by the pseudo-code.
+** The bytes may be loaded in any order.
+** The bytes may be grouped into larger accesses.
+** Any of the bytes may be loaded multiple times.
+* A stack pointer adjustment
+* An optional `li a0, 0`
+* An optional `ret`
+
+If a trap occurs during the sequence, then any loads which were executed before the trap may update architectural state.
+The loads will be re-executed once the trap handler completes, so the values will be overwritten.
+Therefore it is permitted for an implementation to update some of the destination registers before taking a fault.
+
+The optional `li a0, 0`, stack pointer adjustment and optional `ret` must only be committed only when it is certain that the entire POP/POPRET instruction will commit.
+
+For POPRET once the stack pointer adjustment has been committed the `ret` must execute.
+
+<<<
+For example:
+
+[source,sail]
+--
+cm.popretz {ra, s0-s3}, 32;
+--
+
+Appears to software as:
+
+[source,sail]
+--
+# any or all of these load instructions may execute multiple times
+# therefore these updates may be visible in the interrupt/exception handler
+lw s3, 28(sp)
+lw s2, 24(sp)
+lw s1, 20(sp)
+lw s0, 16(sp)
+lw ra, 12(sp)
+
+# these must only execute once, will only execute after all loads
+# complete successfully all instructions must execute atomically
+# therefore these updates are not visible in the interrupt/exception handler
+li a0, 0
+addi sp, sp, 32
+ret
+--
+
+[[pushpop_non-idem-mem]]
+=== Non-idempotent memory handling
+
+An implementation may have a requirement to issue a PUSH/POP instruction to non-idempotent memory.
+
+If the core implementation does not support PUSH/POP to non-idempotent memories, the core may use an idempotency PMA to detect it and take a
+load (POP/POPRET) or store (PUSH) access fault exception in order to avoid unpredictable results.
+
+Software should only use these instructions on non-idempotent memory regions when software can tolerate the required memory accesses
+being issued repeatedly in the case that they cause exceptions.
+
+<<<
+
+=== Example RV32I PUSH/POP sequences
+
+The examples are included show the load/store series expansion and the stack adjustment.
+Examples of _cm.popret_ and _cm.popretz_ are not included, as the difference in the expanded sequence from _cm.pop_ is trivial in all cases.
+
+==== cm.push {ra, s0-s2}, -64
+
+Encoding: _rlist_=7, _spimm_=3
+
+expands to:
+
+[source,sail]
+--
+sw s2, -4(sp);
+sw s1, -8(sp);
+sw s0, -12(sp);
+sw ra, -16(sp);
+addi sp, sp, -64;
+--
+
+==== cm.push {ra, s0-s11}, -112
+
+Encoding: _rlist_=15, _spimm_=3
+
+expands to:
+
+[source,sail]
+--
+sw s11, -4(sp);
+sw s10, -8(sp);
+sw s9, -12(sp);
+sw s8, -16(sp);
+sw s7, -20(sp);
+sw s6, -24(sp);
+sw s5, -28(sp);
+sw s4, -32(sp);
+sw s3, -36(sp);
+sw s2, -40(sp);
+sw s1, -44(sp);
+sw s0, -48(sp);
+sw ra, -52(sp);
+addi sp, sp, -112;
+--
+
+<<<
+
+==== cm.pop {ra}, 16
+
+Encoding: _rlist_=4, _spimm_=0
+
+expands to:
+
+[source,sail]
+--
+lw ra, 12(sp);
+addi sp, sp, 16;
+--
+
+==== cm.pop {ra, s0-s3}, 48
+
+Encoding: _rlist_=8, _spimm_=1
+
+expands to:
+
+[source,sail]
+--
+lw s3, 44(sp);
+lw s2, 40(sp);
+lw s1, 36(sp);
+lw s0, 32(sp);
+lw ra, 28(sp);
+addi sp, sp, 48;
+--
+
+==== cm.pop {ra, s0-s4}, 64
+
+Encoding: _rlist_=9, _spimm_=2
+
+expands to:
+
+[source,sail]
+--
+lw s4, 60(sp);
+lw s3, 56(sp);
+lw s2, 52(sp);
+lw s1, 48(sp);
+lw s0, 44(sp);
+lw ra, 40(sp);
+addi sp, sp, 64;
+--
+
+include::Zcmp_footer.adoc[]
diff --git a/src/zc/pushpop_extra_info.adoc b/src/zc/pushpop_extra_info.adoc
new file mode 100644
index 0000000..52bf69c
--- /dev/null
+++ b/src/zc/pushpop_extra_info.adoc
@@ -0,0 +1,22 @@
+
+[NOTE]
+
+ All ABI register mappings are for the UABI. An EABI version is planned once the EABI is frozen.
+
+For further information see <<insns-pushpop>>.
+
+Stack Adjustment Calculation::
+
+_stack_adj_base_ is the minimum number of bytes, in multiples of 16-byte address increments, required to cover the registers in the list.
+
+_spimm_ is the number of additional 16-byte address increments allocated for the stack frame.
+
+The total stack adjustment represents the total size of the stack frame, which is _stack_adj_base_ added to _spimm_ scaled by 16,
+as defined above.
+
+Prerequisites::
+None
+
+32-bit equivalent::
+No direct equivalent encoding exists
+
diff --git a/src/zc/pushpop_vars.adoc b/src/zc/pushpop_vars.adoc
new file mode 100644
index 0000000..ce25524
--- /dev/null
+++ b/src/zc/pushpop_vars.adoc
@@ -0,0 +1,91 @@
+
+[source,sail]
+--
+RV32E:
+
+switch (rlist){
+ case 4: {reg_list="ra"; xreg_list="x1";}
+ case 5: {reg_list="ra, s0"; xreg_list="x1, x8";}
+ case 6: {reg_list="ra, s0-s1"; xreg_list="x1, x8-x9";}
+ default: reserved();
+}
+stack_adj = stack_adj_base + spimm[5:4] * 16;
+--
+
+[source,sail]
+--
+RV32I, RV64:
+
+switch (rlist){
+ case 4: {reg_list="ra"; xreg_list="x1";}
+ case 5: {reg_list="ra, s0"; xreg_list="x1, x8";}
+ case 6: {reg_list="ra, s0-s1"; xreg_list="x1, x8-x9";}
+ case 7: {reg_list="ra, s0-s2"; xreg_list="x1, x8-x9, x18";}
+ case 8: {reg_list="ra, s0-s3"; xreg_list="x1, x8-x9, x18-x19";}
+ case 9: {reg_list="ra, s0-s4"; xreg_list="x1, x8-x9, x18-x20";}
+ case 10: {reg_list="ra, s0-s5"; xreg_list="x1, x8-x9, x18-x21";}
+ case 11: {reg_list="ra, s0-s6"; xreg_list="x1, x8-x9, x18-x22";}
+ case 12: {reg_list="ra, s0-s7"; xreg_list="x1, x8-x9, x18-x23";}
+ case 13: {reg_list="ra, s0-s8"; xreg_list="x1, x8-x9, x18-x24";}
+ case 14: {reg_list="ra, s0-s9"; xreg_list="x1, x8-x9, x18-x25";}
+ //note - to include s10, s11 must also be included
+ case 15: {reg_list="ra, s0-s11"; xreg_list="x1, x8-x9, x18-x27";}
+ default: reserved();
+}
+stack_adj = stack_adj_base + spimm[5:4] * 16;
+--
+
+[source,sail]
+--
+RV32E:
+
+stack_adj_base = 16;
+Valid values:
+stack_adj = [16|32|48|64];
+--
+
+[source,sail]
+--
+RV32I:
+
+switch (rlist) {
+ case 4.. 7: stack_adj_base = 16;
+ case 8..11: stack_adj_base = 32;
+ case 12..14: stack_adj_base = 48;
+ case 15: stack_adj_base = 64;
+}
+
+Valid values:
+switch (rlist) {
+ case 4.. 7: stack_adj = [16|32|48| 64];
+ case 8..11: stack_adj = [32|48|64| 80];
+ case 12..14: stack_adj = [48|64|80| 96];
+ case 15: stack_adj = [64|80|96|112];
+}
+--
+
+[source,sail]
+--
+RV64:
+
+switch (rlist) {
+ case 4.. 5: stack_adj_base = 16;
+ case 6.. 7: stack_adj_base = 32;
+ case 8.. 9: stack_adj_base = 48;
+ case 10..11: stack_adj_base = 64;
+ case 12..13: stack_adj_base = 80;
+ case 14: stack_adj_base = 96;
+ case 15: stack_adj_base = 112;
+}
+
+Valid values:
+switch (rlist) {
+ case 4.. 5: stack_adj = [ 16| 32| 48| 64];
+ case 6.. 7: stack_adj = [ 32| 48| 64| 80];
+ case 8.. 9: stack_adj = [ 48| 64| 80| 96];
+ case 10..11: stack_adj = [ 64| 80| 96|112];
+ case 12..13: stack_adj = [ 80| 96|112|128];
+ case 14: stack_adj = [ 96|112|128|144];
+ case 15: stack_adj = [112|128|144|160];
+}
+--
diff --git a/src/zc/readme.md b/src/zc/readme.md
new file mode 100644
index 0000000..8a333e7
--- /dev/null
+++ b/src/zc/readme.md
@@ -0,0 +1,15 @@
+This directory has the latest draft specification for the Zc extensions, without the PDF build.
+
+To see the latest built version go to:
+
+https://github.com/riscv/riscv-code-size-reduction/tags
+
+The benchmarking results for all Zc extensions are here:
+
+https://docs.google.com/spreadsheets/d/1bFMyGkuuulBXuIaMsjBINoCWoLwObr1l9h5TAWN8s7k/edit#gid=21966619
+
+There are many changes since v0.50.1, which has been used for toolchain, spike, qemu and the CV32E41P implementation.
+
+This shows how the specification has changed from v0.50.1 to the current version:
+
+https://github.com/riscv/riscv-code-size-reduction/blob/master/Zc-specification/changes_since_v0.50.adoc
diff --git a/src/zc/tablejump.adoc b/src/zc/tablejump.adoc
new file mode 100644
index 0000000..fefa8fc
--- /dev/null
+++ b/src/zc/tablejump.adoc
@@ -0,0 +1,49 @@
+<<<
+
+[#insns-tablejump,reftext="Table Jump Overview"]
+== Table Jump Overview
+
+_cm.jt_ (<<#insns-cm_jt>>) and _cm.jalt_ (<<#insns-cm_jalt>>) are referred to as table jump.
+
+Table jump uses a 256-entry XLEN wide table in instruction memory to contain function addresses.
+The table must be a minimum of 64-byte aligned.
+
+Table entries follow the current data endianness. This is different from normal instruction fetch which is always little-endian.
+
+_cm.jt_ and _cm.jalt_ encodings index the table, giving access to functions within the full XLEN wide address space.
+
+This is used as a form of dictionary compression to reduce the code size of _jal_ / _auipc+jalr_ / _jr_ / _auipc+jr_ instructions.
+
+Table jump allows the linker to replace the following instruction sequences with a _cm.jt_ or _cm.jalt_ encoding, and an entry in the table:
+
+* 32-bit _j_ calls
+* 32-bit _jal_ ra calls
+* 64-bit _auipc+jr_ calls to fixed locations
+* 64-bit _auipc+jalr ra_ calls to fixed locations
+** The _auipc+jr/jalr_ sequence is used because the offset from the PC is out of the ±1MB range.
+
+If a return address stack is implemented, then as _cm.jalt_ is equivalent to _jal ra_, it pushes to the stack.
+
+=== JVT
+
+The base of the table is in the JVT CSR (see <<csrs-jvt>>), each table entry is XLEN bits.
+
+If the same function is called with and without linking then it must have two entries in the table.
+This is typically caused by the same function being called with and without tail calling.
+
+[#tablejump-fault-handling]
+=== Table Jump Fault handling
+
+For a table jump instruction, the table entry that the instruction selects is considered an extension of the instruction itself.
+Hence, the execution of a table jump instruction involves two instruction fetches, the first to read the instruction (_cm.jt_/_cm.jalt_)
+and the second to read from the jump vector table (JVT). Both instruction fetches are _implicit_ reads, and both require
+execute permission; read permission is irrelevant. It is recommended that the second fetch be ignored for hardware triggers and breakpoints.
+
+Memory writes to the jump vector table require an instruction barrier (_fence.i_) to guarantee that they are visible to the instruction fetch.
+
+Multiple contexts may have different jump vector tables. JVT may be switched between them without an instruction barrier
+if the tables have not been updated in memory since the last _fence.i_.
+
+If an exception occurs on either instruction fetch, xEPC is set to the PC of the table jump instruction, xCAUSE is set as expected for the type of fault and xTVAL (if not set to zero) contains the fetch address which caused the fault.
+
+include::Zcmt_footer.adoc[]
diff --git a/src/zc/variable_def.adoc b/src/zc/variable_def.adoc
new file mode 100644
index 0000000..a660cac
--- /dev/null
+++ b/src/zc/variable_def.adoc
@@ -0,0 +1 @@
+The variables used in the assembly syntax are defined below.