From e9060639fb25c190051885a77a29cfdae4545a1f Mon Sep 17 00:00:00 2001
From: Joakim Lundberg <joakim@joakimlundberg.com>
Date: Wed, 27 Dec 2017 16:16:55 +0100
Subject: [PATCH] Created a simple CoAP client and server. Added the course
 description

---
 Client/Cargo.lock                            | 358 +++++++++++
 Client/Cargo.toml                            |   7 +
 Client/src/main.rs                           |  79 +++
 Server/Cargo.lock                            | 358 +++++++++++
 Server/Cargo.toml                            |   7 +
 Server/src/main.rs                           |  47 ++
 course_description/LTU_logo.png              | Bin 0 -> 49808 bytes
 course_description/Sections/Introduction.tex |  29 +
 course_description/logo.jpg                  | Bin 0 -> 56140 bytes
 course_description/main.tex                  | 129 ++++
 course_description/parskip.sty               |  87 +++
 course_description/swedish.ldf               | 141 +++++
 course_description/tocbibind.sty             | 320 ++++++++++
 course_description/wrapfig.sty               | 598 +++++++++++++++++++
 14 files changed, 2160 insertions(+)
 create mode 100644 Client/Cargo.lock
 create mode 100644 Client/Cargo.toml
 create mode 100644 Client/src/main.rs
 create mode 100644 Server/Cargo.lock
 create mode 100644 Server/Cargo.toml
 create mode 100644 Server/src/main.rs
 create mode 100644 course_description/LTU_logo.png
 create mode 100644 course_description/Sections/Introduction.tex
 create mode 100644 course_description/logo.jpg
 create mode 100644 course_description/main.tex
 create mode 100644 course_description/parskip.sty
 create mode 100644 course_description/swedish.ldf
 create mode 100644 course_description/tocbibind.sty
 create mode 100644 course_description/wrapfig.sty

diff --git a/Client/Cargo.lock b/Client/Cargo.lock
new file mode 100644
index 0000000..03c1e8a
--- /dev/null
+++ b/Client/Cargo.lock
@@ -0,0 +1,358 @@
+[[package]]
+name = "D7018E_Embedded_CoAp_client"
+version = "0.1.0"
+dependencies = [
+ "coap 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "bincode"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "byteorder 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "bitflags"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "bitflags"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "byteorder"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "bytes"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "cfg-if"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "coap"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bincode 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "url 0.2.38 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "enum_primitive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "fuchsia-zircon"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "fuchsia-zircon-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "fuchsia-zircon-sys"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "kernel32-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "log"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "log 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "log"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "mio"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "net2 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)",
+ "nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "miow"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "net2 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "net2"
+version = "0.2.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "nix"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-bigint 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-complex 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-rational 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-bigint 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "num_cpus"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "fuchsia-zircon 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "rustc-serialize"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "slab"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "threadpool"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num_cpus 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "time"
+version = "0.1.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "redox_syscall 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "url"
+version = "0.2.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "uuid 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "uuid"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "winapi"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "winapi-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "ws2_32-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[metadata]
+"checksum bincode 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "951498c868b0683e1ba67afcdd6b1c3def08a713e66197aa17be8fad56cbaab5"
+"checksum bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dead7461c1127cf637931a1e50934eb6eee8bff2f74433ac7909e9afcee04a3"
+"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+"checksum byteorder 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "29b2aa490a8f546381308d68fc79e6bd753cd3ad839f7a7172897f1feedfa175"
+"checksum bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27"
+"checksum cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de"
+"checksum coap 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "24c47dfbaf87a9a060aaa412b4af7852f512737f7bea3db50efcf035bb937e8f"
+"checksum enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
+"checksum fuchsia-zircon 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f6c0581a4e363262e52b87f59ee2afe3415361c6ec35e665924eb08afe8ff159"
+"checksum fuchsia-zircon-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "43f3795b4bae048dc6123a6b972cadde2e676f9ded08aef6bb77f5f157684a82"
+"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+"checksum libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "36fbc8a8929c632868295d0178dd8f63fc423fd7537ad0738372bd010b3ac9b0"
+"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+"checksum log 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a89a0c46ba789b8a247d4c567aed4d7c68e624672d238b45cc3ec20dc9f940"
+"checksum matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376"
+"checksum mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a637d1ca14eacae06296a008fa7ad955347e34efcb5891cfd8ba05491a37907e"
+"checksum miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3e690c5df6b2f60acd45d56378981e827ff8295562fc8d34f573deb267a59cd1"
+"checksum net2 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)" = "3a80f842784ef6c9a958b68b7516bc7e35883c614004dd94959a4dca1b716c09"
+"checksum nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bfb3ddedaa14746434a02041940495bf11325c22f6d36125d3bdd56090d50a79"
+"checksum num 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "cc4083e14b542ea3eb9b5f33ff48bd373a92d78687e74f4cc0a30caeb754f0ca"
+"checksum num-bigint 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "bdc1494b5912f088f260b775799468d9b9209ac60885d8186a547a0476289e23"
+"checksum num-complex 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "58de7b4bf7cf5dbecb635a5797d489864eadd03b107930cbccf9e0fd7428b47c"
+"checksum num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba"
+"checksum num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01"
+"checksum num-rational 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "0c7cb72a95250d8a370105c828f388932373e0e94414919891a0f945222310fe"
+"checksum num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "cacfcab5eb48250ee7d0c7896b51a2c5eec99c1feea5f32025635f5ae4b00070"
+"checksum num_cpus 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "514f0d73e64be53ff320680ca671b64fe3fb91da01e1ae2ddc99eb51d453b20d"
+"checksum rand 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "6475140dfd8655aeb72e1fd4b7a1cc1c202be65d71669476e392fe62532b9edd"
+"checksum redox_syscall 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "ab105df655884ede59d45b7070c8a65002d921461ee813a024558ca16030eea0"
+"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
+"checksum slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d807fd58c4181bbabed77cb3b891ba9748241a552bcc5be698faaebefc54f46e"
+"checksum threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865"
+"checksum time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d788d3aa77bc0ef3e9621256885555368b47bd495c13dd2e7413c89f845520"
+"checksum url 0.2.38 (registry+https://github.com/rust-lang/crates.io-index)" = "cbaa8377a162d88e7d15db0cf110c8523453edcbc5bc66d2b6fffccffa34a068"
+"checksum uuid 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "78c590b5bd79ed10aad8fb75f078a59d8db445af6c743e55c4a53227fc01c13f"
+"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
diff --git a/Client/Cargo.toml b/Client/Cargo.toml
new file mode 100644
index 0000000..f5fd125
--- /dev/null
+++ b/Client/Cargo.toml
@@ -0,0 +1,7 @@
+[package]
+name = "D7018E_Embedded_CoAp_client"
+version = "0.1.0"
+authors = ["Joakim Lundberg <joakim@joakimlundberg.com>"]
+
+[dependencies]
+coap = "0.5"
\ No newline at end of file
diff --git a/Client/src/main.rs b/Client/src/main.rs
new file mode 100644
index 0000000..98e1b0d
--- /dev/null
+++ b/Client/src/main.rs
@@ -0,0 +1,79 @@
+// CoAP CLient
+// D7018E - Embedded rust
+// Joakim Lundberg <joakim@joakimlundberg.com>
+
+// Externally used crates
+extern crate coap;
+
+use std::io::ErrorKind;
+use coap::{CoAPClient, CoAPRequest, IsMessage, MessageType, CoAPOption};
+
+fn main() {
+    println!("Request by GET:");
+    let addr = "127.0.0.1:5683";
+    let endpoint = "test";
+
+    coap_get(addr, endpoint);
+
+    println!("Request by POST:");
+    coap_post(addr, endpoint);
+}
+
+
+fn coap_get(address: &str, endpoint: &str) {
+
+    let client = CoAPClient::new(address).unwrap();
+    let mut request = CoAPRequest::new();
+    request.set_version(1);
+    request.set_type(MessageType::Confirmable);
+    request.set_code("0.01");
+    request.set_message_id(1);
+    request.set_token(vec![0x51, 0x55, 0x77, 0xE8]);
+    request.add_option(CoAPOption::UriPath, endpoint.to_string().into_bytes());
+    client.send(&request).unwrap();
+    println!("Client request: coap://{}/{}", address, endpoint);
+
+    match client.receive() {
+        Ok(response) => {
+            println!("Server reply: {}",
+                     String::from_utf8(response.message.payload).unwrap());
+        }
+        Err(e) => {
+            match e.kind() {
+                ErrorKind::WouldBlock => println!("Request timeout"),   // Unix
+                ErrorKind::TimedOut => println!("Request timeout"),     // Windows
+                _ => println!("Request error: {:?}", e),
+            }
+        }
+    }
+}
+
+fn coap_post(address: &str, endpoint: &str) {
+
+    let client = CoAPClient::new(address).unwrap();
+    let mut request = CoAPRequest::new();
+    request.set_version(1);
+    request.set_type(MessageType::Confirmable);
+    request.set_code("0.02");
+    request.set_message_id(1);
+    request.set_token(vec![0x51, 0x55, 0x77, 0xE8]);
+    request.add_option(CoAPOption::UriPath, endpoint.to_string().into_bytes());
+    request.set_payload(b"data".to_vec());
+
+    client.send(&request).unwrap();
+    println!("Client request: coap://{}/{}", address, endpoint);
+
+    match client.receive() {
+        Ok(response) => {
+            println!("Server reply: {}",
+                     String::from_utf8(response.message.payload).unwrap());
+        }
+        Err(e) => {
+            match e.kind() {
+                ErrorKind::WouldBlock => println!("Request timeout"),   // Unix
+                ErrorKind::TimedOut => println!("Request timeout"),     // Windows
+                _ => println!("Request error: {:?}", e),
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/Server/Cargo.lock b/Server/Cargo.lock
new file mode 100644
index 0000000..a84a481
--- /dev/null
+++ b/Server/Cargo.lock
@@ -0,0 +1,358 @@
+[[package]]
+name = "D7018E_CoAp_server"
+version = "0.1.0"
+dependencies = [
+ "coap 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "bincode"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "byteorder 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "bitflags"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "bitflags"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "byteorder"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "bytes"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "cfg-if"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "coap"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bincode 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "url 0.2.38 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "enum_primitive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "fuchsia-zircon"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "fuchsia-zircon-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "fuchsia-zircon-sys"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "kernel32-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "log"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "log 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "log"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "mio"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "net2 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)",
+ "nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "miow"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "net2 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "net2"
+version = "0.2.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "nix"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-bigint 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-complex 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-rational 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-bigint 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "num_cpus"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "fuchsia-zircon 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "rustc-serialize"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "slab"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "threadpool"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num_cpus 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "time"
+version = "0.1.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)",
+ "redox_syscall 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "url"
+version = "0.2.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "uuid 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "uuid"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "winapi"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "winapi-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "ws2_32-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[metadata]
+"checksum bincode 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "951498c868b0683e1ba67afcdd6b1c3def08a713e66197aa17be8fad56cbaab5"
+"checksum bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dead7461c1127cf637931a1e50934eb6eee8bff2f74433ac7909e9afcee04a3"
+"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+"checksum byteorder 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "29b2aa490a8f546381308d68fc79e6bd753cd3ad839f7a7172897f1feedfa175"
+"checksum bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27"
+"checksum cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de"
+"checksum coap 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "24c47dfbaf87a9a060aaa412b4af7852f512737f7bea3db50efcf035bb937e8f"
+"checksum enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
+"checksum fuchsia-zircon 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f6c0581a4e363262e52b87f59ee2afe3415361c6ec35e665924eb08afe8ff159"
+"checksum fuchsia-zircon-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "43f3795b4bae048dc6123a6b972cadde2e676f9ded08aef6bb77f5f157684a82"
+"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+"checksum libc 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "36fbc8a8929c632868295d0178dd8f63fc423fd7537ad0738372bd010b3ac9b0"
+"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+"checksum log 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a89a0c46ba789b8a247d4c567aed4d7c68e624672d238b45cc3ec20dc9f940"
+"checksum matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376"
+"checksum mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a637d1ca14eacae06296a008fa7ad955347e34efcb5891cfd8ba05491a37907e"
+"checksum miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3e690c5df6b2f60acd45d56378981e827ff8295562fc8d34f573deb267a59cd1"
+"checksum net2 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)" = "3a80f842784ef6c9a958b68b7516bc7e35883c614004dd94959a4dca1b716c09"
+"checksum nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bfb3ddedaa14746434a02041940495bf11325c22f6d36125d3bdd56090d50a79"
+"checksum num 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "cc4083e14b542ea3eb9b5f33ff48bd373a92d78687e74f4cc0a30caeb754f0ca"
+"checksum num-bigint 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "bdc1494b5912f088f260b775799468d9b9209ac60885d8186a547a0476289e23"
+"checksum num-complex 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "58de7b4bf7cf5dbecb635a5797d489864eadd03b107930cbccf9e0fd7428b47c"
+"checksum num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba"
+"checksum num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01"
+"checksum num-rational 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "0c7cb72a95250d8a370105c828f388932373e0e94414919891a0f945222310fe"
+"checksum num-traits 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "cacfcab5eb48250ee7d0c7896b51a2c5eec99c1feea5f32025635f5ae4b00070"
+"checksum num_cpus 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "514f0d73e64be53ff320680ca671b64fe3fb91da01e1ae2ddc99eb51d453b20d"
+"checksum rand 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "6475140dfd8655aeb72e1fd4b7a1cc1c202be65d71669476e392fe62532b9edd"
+"checksum redox_syscall 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "ab105df655884ede59d45b7070c8a65002d921461ee813a024558ca16030eea0"
+"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
+"checksum slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d807fd58c4181bbabed77cb3b891ba9748241a552bcc5be698faaebefc54f46e"
+"checksum threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865"
+"checksum time 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d788d3aa77bc0ef3e9621256885555368b47bd495c13dd2e7413c89f845520"
+"checksum url 0.2.38 (registry+https://github.com/rust-lang/crates.io-index)" = "cbaa8377a162d88e7d15db0cf110c8523453edcbc5bc66d2b6fffccffa34a068"
+"checksum uuid 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "78c590b5bd79ed10aad8fb75f078a59d8db445af6c743e55c4a53227fc01c13f"
+"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
diff --git a/Server/Cargo.toml b/Server/Cargo.toml
new file mode 100644
index 0000000..e178afb
--- /dev/null
+++ b/Server/Cargo.toml
@@ -0,0 +1,7 @@
+[package]
+name = "D7018E_CoAp_server"
+version = "0.1.0"
+authors = ["Joakim Lundberg <joakim@joakimlundberg.com>"]
+
+[dependencies]
+coap = "0.5"
\ No newline at end of file
diff --git a/Server/src/main.rs b/Server/src/main.rs
new file mode 100644
index 0000000..ebfe6e2
--- /dev/null
+++ b/Server/src/main.rs
@@ -0,0 +1,47 @@
+// CoAP Server
+// D7018E - Embedded rust
+// Joakim Lundberg <joakim@joakimlundberg.com>
+
+extern crate coap;
+
+use std::io;
+use coap::{CoAPServer, CoAPResponse, CoAPRequest, IsMessage};
+
+fn request_handler(request: CoAPRequest) -> Option<CoAPResponse> {
+	let request_code = request.get_code();
+
+	match request_code.as_ref() {
+		"0.01" => {
+			println!("request by get");
+		},
+		"0.02" => {
+			println!("request by post");
+			println!("request body: {}", String::from_utf8(request.message.payload).unwrap());
+		},
+		_ => {
+			println!("request by other method {}", request_code);
+		}
+	};
+
+	return match request.response {
+		Some(mut message) => {
+			message.set_payload(b"OK".to_vec());
+			Some(message)
+		},
+		_ => None
+	};
+}
+
+fn main() {
+    let addr = "127.0.0.1:5683";
+
+    let mut server = CoAPServer::new(addr).unwrap();
+    server.handle(request_handler).unwrap();
+
+    println!("Server up on {}", addr);
+    println!("Press any key to stop...");
+
+    io::stdin().read_line(&mut String::new()).unwrap();
+
+    println!("Server shutdown");
+}
\ No newline at end of file
diff --git a/course_description/LTU_logo.png b/course_description/LTU_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..dddc5213ac5959727b7a41616b1df8a93385ff25
GIT binary patch
literal 49808
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%0D}1odm7yY5WMx6QYL(pA1+^shH9
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
OIl|M`&t;ucLK6VM1ZcVd

literal 0
HcmV?d00001

diff --git a/course_description/Sections/Introduction.tex b/course_description/Sections/Introduction.tex
new file mode 100644
index 0000000..2e6d400
--- /dev/null
+++ b/course_description/Sections/Introduction.tex
@@ -0,0 +1,29 @@
+\newpage
+%\setcounter{page}{1}
+\section*{Course description}
+
+To create a wireless embedded hardware bridge using \emph{RUST} to read and collect sensory information through a serial protocol and relay the data via CoAP to a server for filtering and displaying of the data. 
+
+\section*{Relevant information}
+System that will be used is a \emph{Nucleo-64} with an \emph{STM32F401} ARM microcontroller. \\ 
+Some of the crates that might be used are 
+\begin{itemize}
+\item \href{https://crates.io/crates/coap}{coap}
+\item  \href{https://crates.io/crates/smoltcp}{smoltcp}
+\item  \href{https://crates.io/crates/cortex-m}{cortex-m}
+\end{itemize}
+as well as crates and/or code developed by other course participants.
+
+\section*{Grading}
+
+\subsection*{Grade 3}
+Local readout of data and storage on the embedded system.\\
+Embedded system to server communication using CoAP.
+
+\subsection*{Grade 4}
+Create an API-design for talking CoAP with a server along with documentation.\\
+Making the embedded side wireless through use of WiFi communication.
+
+\subsection*{Grade 5}
+Implementing the API designed for CoAP. \\
+Creating examples for the API for CoAP. 
\ No newline at end of file
diff --git a/course_description/logo.jpg b/course_description/logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..caf97de9005a626b57fb49dd6bef84a9b6c92ac5
GIT binary patch
literal 56140
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
AmjD0&

literal 0
HcmV?d00001

diff --git a/course_description/main.tex b/course_description/main.tex
new file mode 100644
index 0000000..a88fca3
--- /dev/null
+++ b/course_description/main.tex
@@ -0,0 +1,129 @@
+
+\documentclass[12pt,a4paper,english,titlepage,oneside]{article}
+\usepackage[utf8]{inputenc}
+\usepackage[margin=2.5cm]{geometry}
+\usepackage{color}
+\usepackage[english]{babel}
+\usepackage{graphicx}
+\setlength\parindent{0pt}
+\usepackage{makeidx}
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{parskip}
+\usepackage{amsthm}
+\usepackage[nottoc,notlot,notlof]{tocbibind}
+\usepackage{url}
+\usepackage{hyperref}
+\newcommand{\rework}[1]{\todo[color=yellow,inline]{#1}}
+\usepackage{epstopdf}
+%\setlength{\parindent}{0cm}
+\usepackage{graphicx}
+\usepackage{wrapfig}
+\usepackage{fancyhdr}
+
+\hypersetup{
+    colorlinks=true,
+    linkcolor=black,
+    filecolor=magenta,      
+    urlcolor=cyan,
+}
+
+
+\pagestyle{fancy}
+\fancyhf{}
+\setlength\headheight{2.5cm} 
+\textheight = 610pt
+
+\renewcommand{\headrulewidth}{1pt}
+\renewcommand{\footrulewidth}{1pt}
+
+\fancyfoot[C]{\textbf{ \thepage}}
+\lhead{Luleå Tekniska Universitet \\D7018E}  
+\rhead{\includegraphics[width=1.8cm]{LTU_logo}}
+
+%\renewcommand{\abstractname}{Sammanfattning}
+%\renewcommand{\contentsname}{Innehållsförteckning}
+%\renewcommand{\tablename}{Tabell}
+%\renewcommand{\figurename}{Figur}
+
+%----------------------------------------------------------------------------------------
+%	TITLE AND AUTHOR
+%----------------------------------------------------------------------------------------
+
+\title{RAPPORT}
+\author{Joakim Lundberg\\ LUNJOK-3 }
+
+\begin{document}
+\begin{titlepage}
+
+\newcommand{\HRule}{\rule{\linewidth}{0.5mm}} % Defines a new command for the horizontal lines, change thickness here
+
+\center % Center everything on the page
+ 
+%----------------------------------------------------------------------------------------
+%	HEADING SECTIONS
+%----------------------------------------------------------------------------------------
+
+\textsc{\huge Luleå Tekniska Universitet}\\[1cm] % Name of your university/college
+\textsc{\large D7018E - Special studies in embedded systems}\\[0.3cm] % Major heading such as course name
+\textsc{\large COURSE SPECIFICATION}\\[0.4cm] % Minor heading such as course title
+
+%----------------------------------------------------------------------------------------
+%	TITLE SECTION
+%----------------------------------------------------------------------------------------
+
+\HRule \\[0.6cm]
+{ \huge \bfseries Embedded hardware bridge}\\[0.25cm] % Title of your document
+\HRule \\[2.5cm]
+
+%----------------------------------------------------------------------------------------
+%	AUTHOR SECTION
+%----------------------------------------------------------------------------------------
+
+
+\begin{minipage}{0.3\textwidth}
+\begin{flushleft} \large
+\emph{}\\
+Joakim Lundberg \\
+\end{flushleft}
+\end{minipage}
+~
+\begin{minipage}{0.38\textwidth}
+\begin{flushleft} \large
+\emph{} \\
+\texttt{891019-8954}
+\end{flushleft}
+\texttt{lunjok-3@student.ltu.se}
+\end{minipage}\\[8.0cm]
+
+%----------------------------------------------------------------------------------------
+%	LOGO SECTION
+%----------------------------------------------------------------------------------------
+
+\includegraphics[scale=0.20]{logo.jpg}\\[0.5cm]
+
+{\large \today}
+\vfill 
+
+\end{titlepage}
+
+%-----------------------------------------------------------------------
+%	Innehållsförteckning, ändra ej.
+%-----------------------------------------------------------------------
+\pagenumbering{gobble}
+%\setlength{\parskip}{12pt}
+%\thispagestyle{empty}
+%\tableofcontents
+
+%-----------------------------------------------------------------------
+%	INCLUDE SECTIONS
+%-----------------------------------------------------------------------
+%\pagenumbering{arabic}
+\input{Sections/Introduction}
+\newpage
+
+\pagestyle{empty}
+\textheight = 630pt
+\setlength\headheight{1pt} 
+
+\end{document}
\ No newline at end of file
diff --git a/course_description/parskip.sty b/course_description/parskip.sty
new file mode 100644
index 0000000..c5ca576
--- /dev/null
+++ b/course_description/parskip.sty
@@ -0,0 +1,87 @@
+% parskip.sty; last edited by Robin Fairbairns (rf10@cam.ac.uk),
+%              derived from:
+%
+% This is PARSKIP.STY by H.Partl, TU Wien, as of 19 Jan 1989.
+%
+% Package to be used with any document class at any size.
+% It produces the following Paragraph Layout:
+%     Zero Parindent and non-zero Parskip. The stretchable glue in \parskip
+%     helps LaTeX in finding the best place for page breaks.
+%
+% This package is no more than quick fix; the `proper' way to achieve
+% effects as far-reaching as this is to create a new class.  An
+% example class is to be found in the ntgclass set: artikel3.cls
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{parskip}[2001/04/09 non-zero parskip adjustments]
+
+\parskip=0.5\baselineskip \advance\parskip by 0pt plus 2pt
+\parindent=\z@
+     
+%
+% from a suggestion by Donald Arseneau on comp.text.tex:
+
+\DeclareOption{parfill}{\setlength{\parfillskip}{30\p@ \@plus 1fil}}
+\ProcessOptions
+
+% To accompany this, the vertical spacing in the list environments is changed
+% to use the same as \parskip in all relevant places (for normalsize only):
+%   \parsep = \parskip
+%   \itemsep = \z@ % add nothing to \parskip between items
+%   \topsep = \z@ % add nothing to \parskip before first item
+
+\def\@listI{\leftmargin\leftmargini
+   \topsep\z@ \parsep\parskip \itemsep\z@}
+\let\@listi\@listI
+\@listi
+     
+\def\@listii{\leftmargin\leftmarginii
+   \labelwidth\leftmarginii\advance\labelwidth-\labelsep
+   \topsep\z@ \parsep\parskip \itemsep\z@}
+     
+\def\@listiii{\leftmargin\leftmarginiii
+    \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
+    \topsep\z@ \parsep\parskip \itemsep\z@}
+     
+% and, now...
+%   \partopsep = \z@ % don't even add anything before first item (beyond 
+%                    % \parskip) even if the list is preceded by a blank line
+\partopsep=\z@
+ 
+% Note that listiv, listv and listvi don't change vertical parameters.
+
+% deal with a problem raised on comp.text.tex in april 2001
+%
+% don't expand the table of contents any further
+%
+% first: check that the definition of \@starttoc is unchanged from
+% that in latex.ltx
+\@ifundefined{CheckCommand}{}{%
+  \CheckCommand*{\@starttoc}[1]{%
+    \begingroup
+      \makeatletter
+      \@input{\jobname.#1}%
+      \if@filesw
+        \expandafter\newwrite\csname tf@#1\endcsname
+        \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+      \fi
+      \@nobreakfalse
+    \endgroup}}
+%
+% now having generated any warning that might help, redefine
+\renewcommand*{\@starttoc}[1]{%
+  \begingroup
+    \makeatletter
+    \parskip\z@
+    \@input{\jobname.#1}%
+    \if@filesw
+      \expandafter\newwrite\csname tf@#1\endcsname
+      \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+    \fi
+    \@nobreakfalse
+  \endgroup
+}
+
+\endinput
+     
+     
diff --git a/course_description/swedish.ldf b/course_description/swedish.ldf
new file mode 100644
index 0000000..c54f211
--- /dev/null
+++ b/course_description/swedish.ldf
@@ -0,0 +1,141 @@
+%%
+%% This is file `swedish.ldf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% swedish.dtx  (with options: `code')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 1989-2001 Johannes L. Braams and any individual authors
+%% listed elsewhere in this file.  All rights reserved.
+%% 
+%% This file is part of the Babel system release 3.7.
+%% --------------------------------------------------
+%% 
+%% It may be distributed under the terms of the LaTeX Project Public
+%% License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1.2 or, at your option, any later version.
+\ProvidesLanguage{swedish}
+        [2001/03/12 v2.3c Swedish support from the babel system]
+%% File `swedish.dtx'
+%% Babel package for LaTeX version 2e
+%% Copyright (C) 1989 - 2001
+%%           by Johannes Braams, TeXniek
+%% Please report errors to: J.L. Braams
+%%                          babel@braams.cistron.nl
+\LdfInit{swedish}\captionsswedish
+\ifx\l@swedish\@undefined
+    \@nopatterns{Swedish}
+    \adddialect\l@swedish0\fi
+\addto\captionsswedish{%
+  \def\prefacename{F\"orord}%
+  \def\refname{Referenser}%
+  \def\abstractname{Sammanfattning}%
+  \def\bibname{Litteraturf\"orteckning}%
+  \def\chaptername{Kapitel}%
+  \def\appendixname{Bilaga}%
+  \def\contentsname{Inneh\csname aa\endcsname ll}%
+  \def\listfigurename{Figurer}%
+  \def\listtablename{Tabeller}%
+  \def\indexname{Sakregister}%
+  \def\figurename{Figur}%
+  \def\tablename{Tabell}%
+  \def\partname{Del}%
+  \def\enclname{Bil.}%
+  \def\ccname{Kopia f\"or k\"annedom}%
+  \def\headtoname{Till}% in letter
+  \def\pagename{Sida}%
+  \def\seename{se}%
+  \def\alsoname{se \"aven}%
+  \def\proofname{Bevis}%
+  \def\glossaryname{Ordlista}%
+  }%
+\def\dateswedish{%
+  \def\today{%
+    \number\day~\ifcase\month\or
+    januari\or februari\or mars\or april\or maj\or juni\or
+    juli\or augusti\or september\or oktober\or november\or
+    december\fi
+    \space\number\year}}
+\def\datesymd{%
+  \def\today{\number\year-\two@digits\month-\two@digits\day}%
+  }
+\def\datesdmy{%
+  \def\today{\number\day/\number\month\space\number\year}%
+  }
+\providehyphenmins{swedish}{\tw@\tw@}
+\addto\extrasswedish{\bbl@frenchspacing}
+\addto\noextrasswedish{\bbl@nonfrenchspacing}
+\initiate@active@char{"}
+\addto\extrasswedish{\languageshorthands{swedish}}
+\addto\extrasswedish{\bbl@activate{"}}
+\addto\noextrasswedish{\bbl@deactivate{"}}
+\addto\extrasswedish{\babel@save\"\umlautlow}
+\addto\noextrasswedish{\umlauthigh}
+\begingroup \catcode`\"12
+\def\x{\endgroup
+  \def\@SS{\mathchar"7019 }
+  \def\dq{"}}
+\x
+\declare@shorthand{swedish}{"w}{\textormath{{\aa}\allowhyphens}{\ddot w}}
+\declare@shorthand{swedish}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}}
+\declare@shorthand{swedish}{"o}{\textormath{\"{o}\allowhyphens}{\ddot o}}
+\declare@shorthand{swedish}{"W}{\textormath{{\AA}\allowhyphens}{\ddot W}}
+\declare@shorthand{swedish}{"A}{\textormath{\"{A}\allowhyphens}{\ddot A}}
+\declare@shorthand{swedish}{"O}{\textormath{\"{O}\allowhyphens}{\ddot O}}
+\declare@shorthand{swedish}{"b}{\textormath{\bbl@disc b{bb}}{b}}
+\declare@shorthand{swedish}{"B}{\textormath{\bbl@disc B{BB}}{B}}
+\declare@shorthand{swedish}{"d}{\textormath{\bbl@disc d{dd}}{d}}
+\declare@shorthand{swedish}{"D}{\textormath{\bbl@disc D{DD}}{D}}
+\declare@shorthand{swedish}{"f}{\textormath{\bbl@disc f{ff}}{f}}
+\declare@shorthand{swedish}{"F}{\textormath{\bbl@disc F{FF}}{F}}
+\declare@shorthand{swedish}{"g}{\textormath{\bbl@disc g{gg}}{g}}
+\declare@shorthand{swedish}{"G}{\textormath{\bbl@disc G{GG}}{G}}
+\declare@shorthand{swedish}{"l}{\textormath{\bbl@disc l{ll}}{l}}
+\declare@shorthand{swedish}{"L}{\textormath{\bbl@disc L{LL}}{L}}
+\declare@shorthand{swedish}{"m}{\textormath{\bbl@disc m{mm}}{m}}
+\declare@shorthand{swedish}{"M}{\textormath{\bbl@disc M{MM}}{M}}
+\declare@shorthand{swedish}{"n}{\textormath{\bbl@disc n{nn}}{n}}
+\declare@shorthand{swedish}{"N}{\textormath{\bbl@disc N{NN}}{N}}
+\declare@shorthand{swedish}{"p}{\textormath{\bbl@disc p{pp}}{p}}
+\declare@shorthand{swedish}{"P}{\textormath{\bbl@disc P{PP}}{P}}
+\declare@shorthand{swedish}{"r}{\textormath{\bbl@disc r{rr}}{r}}
+\declare@shorthand{swedish}{"R}{\textormath{\bbl@disc R{RR}}{R}}
+\declare@shorthand{swedish}{"s}{\textormath{\bbl@disc s{ss}}{s}}
+\declare@shorthand{swedish}{"S}{\textormath{\bbl@disc S{SS}}{S}}
+\declare@shorthand{swedish}{"t}{\textormath{\bbl@disc t{tt}}{t}}
+\declare@shorthand{swedish}{"T}{\textormath{\bbl@disc T{TT}}{T}}
+\declare@shorthand{swedish}{"-}{\nobreak-\bbl@allowhyphens}
+\declare@shorthand{swedish}{"|}{%
+  \textormath{\nobreak\discretionary{-}{}{\kern.03em}%
+              \bbl@allowhyphens}{}}
+\declare@shorthand{swedish}{""}{\hskip\z@skip}
+\declare@shorthand{swedish}{"~}{%
+  \textormath{\leavevmode\hbox{-}\bbl@allowhyphens}{-}}
+\declare@shorthand{swedish}{"=}{\hbox{-}\allowhyphens}
+\addto\extrasswedish{\babel@save\-}
+\addto\extrasswedish{\def\-{\allowhyphens
+                          \discretionary{-}{}{}\allowhyphens}}
+\ldf@finish{swedish}
+%%
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+%%
+\endinput
+%%
+%% End of file `swedish.ldf'.
\ No newline at end of file
diff --git a/course_description/tocbibind.sty b/course_description/tocbibind.sty
new file mode 100644
index 0000000..b88f54f
--- /dev/null
+++ b/course_description/tocbibind.sty
@@ -0,0 +1,320 @@
+%%
+%% This is file `tocbibind.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tocbibind.dtx  (with options: `usc')
+%% 
+%% -----------------------------------------------------------------
+%%   Author: Peter Wilson, Herries Press
+%%   Maintainer: Will Robertson (will dot robertson at latex-project dot org)
+%%   Copyright 1998--2004 Peter R. Wilson
+%% 
+%%   This work may be distributed and/or modified under the
+%%   conditions of the LaTeX Project Public License, either
+%%   version 1.3c of this license or (at your option) any
+%%   later version: <http://www.latex-project.org/lppl.txt>
+%% 
+%%   This work has the LPPL maintenance status "maintained".
+%%   The Current Maintainer of this work is Will Robertson.
+%% 
+%%   This work consists of the files listed in the README file.
+%% -----------------------------------------------------------------
+%% 
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tocbibind}[2010/10/13 v1.5k extra ToC listings]
+\providecommand{\PRWPackageNote}[2]{%
+  \GenericWarning{%
+    (#1)\@spaces\@spaces\@spaces\@spaces
+  }{%
+    Package #1 Note: #2%
+   }%
+}
+\providecommand{\PRWPackageNoteNoLine}[2]{%
+  \PRWPackageNote{#1}{#2\@gobble}%
+}
+
+\newcommand{\@bibquit}{}
+\newif\if@bibchapter
+\@ifundefined{chapter}{%
+  \@bibchapterfalse
+  \@ifundefined{section}{%
+    \PackageWarning{tocbibind}%
+      {I don't recognize any sectional divisions.\MessageBreak
+       I hope you have used the `other' option\MessageBreak
+       otherwise I'll ignore the package}
+    \renewcommand{\@bibquit}{\endinput}
+    }{\PackageInfo{tocbibind}{The document has section divisions}}
+  }{\@bibchaptertrue
+    \PackageInfo{tocbibind}{The document has chapter divisions}}
+
+\newif\if@inltxdoc
+\@ifclassloaded{ltxdoc}{\@inltxdoctrue}{\@inltxdocfalse}
+
+\newif\if@dotocbib\@dotocbibtrue
+\newif\if@dotocind\@dotocindtrue
+\newif\if@dotoctoc\@dotoctoctrue
+\newif\if@dotoclot\@dotoclottrue
+\newif\if@dotoclof\@dotocloftrue
+
+\newif\if@donumbib\@donumbibfalse
+\newif\if@donumindex\@donumindexfalse
+\newif\if@dot@cb@bsection\@dot@cb@bsectionfalse
+
+\DeclareOption{section}{\@bibchapterfalse}
+\DeclareOption{notbib}{\@dotocbibfalse}
+\DeclareOption{notindex}{\@dotocindfalse}
+\DeclareOption{nottoc}{\@dotoctocfalse}
+\DeclareOption{notlot}{\@dotoclotfalse}
+\DeclareOption{notlof}{\@dotocloffalse}
+\DeclareOption{numbib}{\@donumbibtrue}
+\DeclareOption{numindex}{\@donumindextrue}
+
+\DeclareOption{chapter}{%
+  \if@bibchapter\else
+    \PackageWarning{tocbibind}%
+                   {Chapters are undefined, using section instead}
+  \fi}
+
+\DeclareOption{other}{\renewcommand{\@bibquit}{}
+                      \@bibchapterfalse}
+\DeclareOption{none}{%
+  \@dotocbibfalse
+  \@dotocindfalse
+  \@dotoctocfalse
+  \@dotoclotfalse
+  \@dotocloffalse
+  \@donumbibfalse
+  \@donumindexfalse
+}
+\ProcessOptions\relax
+\@bibquit
+
+\if@bibchapter
+  \PRWPackageNoteNoLine{tocbibind}{Using chapter style headings, unless overridden}
+\else
+  \PRWPackageNoteNoLine{tocbibind}{Using section or other style headings}
+\fi
+\if@inltxdoc \@dotocindfalse \fi
+
+\newcommand{\@tocextra}{section}
+\newcommand{\tocotherhead}[1]{\renewcommand{\@tocextra}{#1}}
+
+\newcommand{\tocetcmark}[1]{%
+  \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}}
+\newcommand{\prw@mkboth}[1]{\tocetcmark{#1}}
+\newcommand{\toc@section}[2]{%
+  \@nameuse{#1}*{#2\prw@mkboth{#2}}
+  \addcontentsline{toc}{#1}{#2}}
+\newcommand{\toc@headstar}[2]{%
+  \@nameuse{#1}*{{#2}}}
+\newcommand{\toc@chapter}[1]{%
+  \chapter*{#1}\prw@mkboth{#1}
+  \addcontentsline{toc}{chapter}{#1}}
+\ifx\bibname\undefined
+  \ifx\refname\undefined
+    \newcommand{\tocbibname}{References}
+  \else
+    \newcommand{\tocbibname}{\refname}
+  \fi
+\else
+  \newcommand{\tocbibname}{\bibname}
+\fi
+\providecommand{\indexname}{Index}
+\newcommand{\setindexname}[1]{\renewcommand{\indexname}{#1}}
+\providecommand{\contentsname}{Contents}
+\newcommand{\settocname}[1]{\renewcommand{\contentsname}{#1}}
+\providecommand{\listtablename}{List of Tables}
+\newcommand{\setlotname}[1]{\renewcommand{\listtablename}{#1}}
+\providecommand{\listfigurename}{List of Figures}
+\newcommand{\setlofname}[1]{\renewcommand{\listfigurename}{#1}}
+\newcommand{\settocbibname}[1]{\renewcommand{\tocbibname}{#1}}
+\newcommand{\t@cb@bchapsec}{%
+  \if@bibchapter
+    \if@donumbib
+      \chapter{\tocbibname}%
+    \else
+      \toc@chapter{\tocbibname}%
+    \fi
+  \else
+    \if@donumbib
+      \@nameuse{\@tocextra}{\tocbibname}%
+    \else
+      \toc@section{\@tocextra}{\tocbibname}%
+    \fi
+  \fi}
+\newcommand{\t@cb@bsection}{%
+  \if@donumbib
+    \@nameuse{\@tocextra}{\tocbibname}%
+  \else
+    \toc@section{\@tocextra}{\tocbibname}%
+  \fi}
+
+\if@dotocbib
+  \@ifpackageloaded{natbib}{}{% natbib not loaded
+    \newcommand{\bibsection}{\t@cb@bchapsec}
+    \renewenvironment{thebibliography}[1]{%
+      \bibsection
+      \begin{thebibitemlist}{#1}}{\end{thebibitemlist}}}
+  \newenvironment{thebibitemlist}[1]{
+    \list{\@biblabel{\@arabic\c@enumiv}}%
+         {\settowidth\labelwidth{\@biblabel{#1}}%
+          \leftmargin\labelwidth
+          \advance\leftmargin\labelsep
+          \@openbib@code
+          \usecounter{enumiv}%
+          \let\p@enumiv\@empty
+          \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+    \sloppy
+    \clubpenalty4000
+    \@clubpenalty \clubpenalty
+    \widowpenalty4000%
+    \sfcode`\.\@m}
+   {\def\@noitemerr
+     {\@latex@warning{Empty `thebibliography' environment}}%
+     \endlist}
+
+  \@ifpackagewith{chapterbib}{sectionbib}%
+    {\renewcommand{\sectionbib}[2]{}}%
+    {}
+
+\fi
+
+\AtBeginDocument{%
+  \@ifpackagewith{natbib}{sectionbib}{\@dot@cb@bsectiontrue}{}
+  \@ifpackagewith{chapterbib}{sectionbib}%
+    {\@dot@cb@bsectiontrue
+     \@ifundefined{sectionbib}{}{\def\sectionbib#1#2{}}}%
+    {}
+
+  \if@dotocbib
+    \if@dot@cb@bsection
+      \renewcommand{\bibsection}{\t@cb@bsection}%
+    \else
+      \renewcommand{\bibsection}{\t@cb@bchapsec}%
+    \fi
+  \fi
+}
+
+\if@inltxdoc\else
+  \renewenvironment{theindex}%
+    {\if@twocolumn
+       \@restonecolfalse
+     \else
+       \@restonecoltrue
+     \fi
+     \if@bibchapter
+        \if@donumindex
+          \refstepcounter{chapter}
+          \twocolumn[\vspace*{2\topskip}%
+                     \@makechapterhead{\indexname}]%
+          \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}\indexname}
+          \chaptermark{\indexname}
+        \else
+          \if@dotocind
+            \twocolumn[\vspace*{2\topskip}%
+                       \@makeschapterhead{\indexname}]%
+            \prw@mkboth{\indexname}
+            \addcontentsline{toc}{chapter}{\indexname}
+          \else
+            \twocolumn[\vspace*{2\topskip}%
+                       \@makeschapterhead{\indexname}]%
+            \prw@mkboth{\indexname}
+          \fi
+        \fi
+     \else
+        \if@donumindex
+          \twocolumn[\vspace*{-1.5\topskip}%
+                     \@nameuse{\@tocextra}{\indexname}]%
+          \csname \@tocextra mark\endcsname{\indexname}
+        \else
+          \if@dotocind
+            \twocolumn[\vspace*{-1.5\topskip}%
+                       \toc@headstar{\@tocextra}{\indexname}]%
+            \prw@mkboth{\indexname}
+            \addcontentsline{toc}{\@tocextra}{\indexname}
+          \else
+            \twocolumn[\vspace*{-1.5\topskip}%
+                       \toc@headstar{\@tocextra}{\indexname}]%
+            \prw@mkboth{\indexname}
+          \fi
+        \fi
+     \fi
+   \thispagestyle{plain}\parindent\z@
+   \parskip\z@ \@plus .3\p@\relax
+   \let\item\@idxitem}
+   {\if@restonecol\onecolumn\else\clearpage\fi}
+\fi
+
+\newcommand{\toc@start}{%
+  \if@bibchapter
+    \if@twocolumn
+      \@restonecoltrue\onecolumn
+    \else
+      \@restonecolfalse
+    \fi
+  \fi}
+
+\newcommand{\toc@finish}{%
+  \if@bibchapter
+    \if@restonecol\twocolumn\fi
+  \fi}
+\newcommand{\tocfile}[2]{%
+  \toc@start
+  \if@bibchapter
+    \toc@chapter{#1}
+  \else
+    \toc@section{\@tocextra}{#1}
+  \fi
+  \@starttoc{#2}
+  \toc@finish}
+
+\if@dotoctoc
+  \renewcommand{\tableofcontents}{%
+    \tocfile{\contentsname}{toc}
+  }
+\fi
+
+\if@dotoclot
+  \renewcommand{\listoftables}{%
+    \tocfile{\listtablename}{lot}
+  }
+\fi
+
+\if@dotoclof
+  \renewcommand{\listoffigures}{%
+    \tocfile{\listfigurename}{lof}
+  }
+\fi
+
+\newcommand{\simplechapter}[1][\@empty]{%
+  \let\@tbiold@makechapterhead\@makechapterhead
+  \renewcommand{\@makechapterhead}[1]{%
+    \vspace*{50\p@}%
+    {\parindent \z@ \raggedright
+     \normalfont
+     \interlinepenalty\@M
+     \Huge\bfseries #1\space\thechapter\simplechapterdelim\space
+        ##1\par\nobreak
+     \vskip 40\p@
+   }}
+}
+\newcommand{\restorechapter}{%
+  \@ifundefined{@tbiold@makechapterhead}{}%
+  {\let\@makechapterhead\@tbiold@makechapterhead}
+}
+\newcommand{\simplechapterdelim}{}
+
+\newcommand{\tocchapter}{%
+  \providecommand{\@makechapterhead}{}
+  \simplechapter
+  \renewcommand{\toc@chapter}[1]{\chapter{##1}}
+}
+\newcommand{\tocsection}{%
+  \renewcommand{\toc@section}[2]{\@nameuse{##1}{##2}}
+}
+
+\endinput
+%%
+%% End of file `tocbibind.sty'.
diff --git a/course_description/wrapfig.sty b/course_description/wrapfig.sty
new file mode 100644
index 0000000..ea85e1b
--- /dev/null
+++ b/course_description/wrapfig.sty
@@ -0,0 +1,598 @@
+%  W R A P F I G . S T Y    ver 3.6  (Jan 31, 2003)
+%
+%  Copyright (C) 1991-2003   by Donald Arseneau   <asnd@triumf.ca>
+%  This software is released under the terms of the LaTeX Project 
+%  public license.
+%
+%  Environments "wrapfigure" and "wraptable" place a figure or table
+%  at the side of the page and wrap text around it.
+%
+%  \begin{wrapfigure}[12]{r}[34pt]{5cm} <figure> \end{wrapfigure}
+%                     --  -  ----  ---
+%  [number of narrow lines] {placement} [overhang] {width of figure}
+%
+%  Placement is one of   r, l, i, o, R, L, I, O,  for right, left,
+%  inside, outside, (here / FLOAT).
+%  The figure sticks into the margin by `overhang', if given, or by the
+%  length \wrapoverhang, which is normally zero.
+%  The number of wrapped text lines is normally calculated from the height
+%  of the figure, but may be specified manually ("12" above).
+% 
+%  Environments similar to "wrapfigure" and "wraptable" may be easily added,
+%  or invoked by "\begin{wrapfloat}{float_name}"
+%
+%  More detailed instructions are given below, following the definitions.
+%  Please direct any problem reports to asnd@triumf.ca
+
+%%%%%  ----- Begin definitions ----- %%%%%
+
+\@ifundefined{c@WF@wrappedlines}{}{\endinput}
+
+\newdimen\wrapoverhang \wrapoverhang\z@
+\newdimen\WF@size
+\newcount\c@WF@wrappedlines % used globally
+\newbox\WF@box
+\newtoks\WF@everypar
+\newif\ifWF@float
+\let\@@parshape\parshape
+\let\WF@@everypar\everypar
+
+\def\wrapfloat#1{\def\@captype{#1}\@ifnextchar[\WF@wr{\WF@wr[]}}
+
+\def\wrapfigure{\wrapfloat{figure}}
+\def\wraptable{\wrapfloat{table}}
+
+\def\WF@wr[#1]#2{% first two args: #1=num lines, #2=placement
+  \xdef\WF@wfname{wrap\@captype\space}%
+  \ifvoid\WF@box\else \WFclear \WF@collision \fi
+  \xdef\WF@place{\string`\@car#2r\@nil}%
+  \ifnum\lccode\WF@place=\WF@place \global\WF@floatfalse
+    \else \global\WF@floattrue \fi
+  \ifx\parshape\WF@fudgeparshape \ifWF@float\else\WF@collision\fi \else
+   \ifx\par\@@par \ifnum\@@parshape>\z@\WF@conflict\fi \else \WF@conflict\fi
+  \fi \gdef\WF@wli{#1}%
+  \@ifnextchar[\WF@rapt{\WF@rapt[\wrapoverhang]}}
+
+\def\WF@rapt[#1]#2{% final two args: #1 = overhang,  #2 = width,
+  \gdef\WF@ovh{#1}% hold overhang for later, when \width is known
+  \global\setbox\WF@box\vtop\bgroup \setlength\hsize{#2}%
+  \ifdim\hsize>\z@ \@parboxrestore \else 
+  \setbox\z@\hbox\bgroup \let\wf@@caption\caption \let\caption\wf@caption 
+  \ignorespaces \fi}
+
+\def\wf@caption{\relax
+  \ifdim\hsize>\z@ \let\caption\wf@@caption \else
+  \unskip \egroup \hsize\wd\z@ \@parboxrestore \box\z@ \fi \caption}
+
+\def\endwrapfloat{%
+  \ifdim\hsize>\z@ \par\hrule\@width\hsize\@height\z@ % force width
+  \else \unskip \egroup \box\z@ \fi % or end hbox
+  \egroup % end the \vtop; width is known so now is "later"
+  \WF@floatstyhook % support float.sty
+  \def\width{\wd\WF@box}\setlength\wrapoverhang{\WF@ovh}%
+  \xdef\WF@ovh{\the\wrapoverhang}% save until wrapping
+  \ifdim\ht\WF@box>\topskip \ht\WF@box\z@ \fi % too much height, set flag.
+  \ifdim\ht\WF@box<.5\p@ % too tall (starts with \vbox) or too short
+   \global\setbox\WF@box\vtop{\vskip-1.4ex\unvbox\WF@box}\fi
+  \global\WF@size\dp\WF@box % box is guaranteed to have little height.
+  \global\advance\WF@size1.5\baselineskip \global\advance\WF@size\tw@\intextsep
+  \aftergroup\WF@startfloating % even when not really floating!
+  \ifWF@float\else \ifhmode
+     {\unskip \parfillskip\z@skip \par \vskip-\parskip}\aftergroup\noindent
+  \fi\fi \global\@ignoretrue}
+
+\let\endwrapfigure\endwrapfloat
+\let\endwraptable\endwrapfloat
+
+% Subvert \everypar to float fig and do wrapping.  Also for non-float.
+\def\WF@startfloating{%
+ \WF@everypar\expandafter{\the\everypar}\let\everypar\WF@everypar
+ \WF@@everypar{\ifvoid\WF@box\else\WF@floathand\fi \the\everypar
+ \WF@wraphand
+}}
+
+\def\WF@floathand{%
+\ifx\parshape\WF@fudgeparshape \WF@fltmes\else
+  \ifx\par\@@par\ifnum\@@parshape=\z@\ifdim\hangindent=\z@
+    \setbox\z@\lastbox \begingroup
+    \@@par \WF@@everypar{}\WF@putfigmaybe
+    \endgroup % start wrapping
+    \ifvoid\z@\else\box\z@\fi % replace indentation
+  \else\WF@fltmes\fi\else\WF@fltmes\fi\else\WF@fltmes\fi\fi}
+
+% Put fig here if it fits or if it can't float
+\def\WF@putfigmaybe{%
+\ifinner
+  \vskip-\parskip \global\WF@floatfalse
+  \let\pagetotal\maxdimen % kludge flag for "not top of page"
+\else % outer page
+  \@tempdima\pagedepth % save page depth
+   {\advance\parskip\@tempdima\vskip-\parskip}% back up to baseline
+   \penalty\interlinepenalty % update pg. parameters
+   \@tempdimb\pagegoal \advance\@tempdimb-\pagetotal % room left on page
+   \ifdim\@tempdimb<\z@ % \WF@info{Page overfull already;}%
+      \global\WF@floatfalse
+      \ifdim-\@tempdimb>\pageshrink \else \pagebreak \fi
+   \else
+      \ifdim\WF@size>\@tempdimb
+%        \WF@info{Size \the\WF@size\space does not fit in \the\@tempdimb}%
+         \ifWF@float \dimen@.5\baselineskip \else \dimen@ 2\baselineskip\fi
+         \ifdim\pagestretch>\dimen@ \dimen@\pagestretch \fi
+         \ifdim\pagefilstretch>\z@ \dimen@\@tempdimb \fi
+         \ifdim\pagefillstretch>\z@ \dimen@\@tempdimb \fi
+         \advance\dimen@.5\baselineskip
+         \ifdim\dimen@>\@tempdimb % \WF@info{Page nearly full; can stretch}%
+            \global\WF@floatfalse \pagebreak
+         \fi
+      \else % \WF@info{Fits in \the\@tempdimb;}%
+         \global\WF@floatfalse
+   \fi\fi
+   \vskip\@tempdima\relax % (return erased page depth)
+\fi
+\noindent
+\ifWF@float
+  \WF@fltmes
+\else % putting here;
+  \WF@info{Put \WF@wfname here:}%
+  {\ifodd\if@twoside\c@page\else\@ne\fi % assign l/r to i/o placement
+    \lccode`i`l\lccode`o`r\else \lccode`i`r\lccode`o`l\fi
+    \xdef\WF@place{\the\lccode\lccode\WF@place}}% twice to get only l or r
+  \hbox to\z@{% llap or rlap depending on {l} or {r}; calc effective width
+   \@tempdima\wd\WF@box \@tempdimb\WF@ovh
+   \advance\@tempdima-\@tempdimb \advance\@tempdima\columnsep
+   \@tempdimb\hsize \advance\@tempdimb-\@tempdima
+   \xdef\WF@adjlw{\the\@tempdima}%
+   \ifnum `l=\WF@place % fig on left
+    \hss % figure overlaps space to the left
+    \def\@tempa{\kern\columnsep}% position to left of the gap
+   \else  %  fig on right
+    \@tempdima\z@ % no left indentation
+    \kern\@tempdimb \kern\columnsep
+    \def\@tempa{\hss}% figure overlaps space to the right
+   \fi
+   \ifdim\@tempdimb<\hsize
+    \xdef\WF@wrapil{\the\@tempdima \the\@tempdimb}% indentation and length
+    \xdef\WF@adjtlm{\the\@tempdima}%
+   \else
+    \xdef\WF@wrapil{\z@ \the\hsize}%
+    \xdef\WF@adjlw{\z@}\xdef\WF@adjtlm{\z@}%
+   \fi
+   \ifdim\pagetotal=\z@ % \WF@info{Put \WF@wfname at top of p.\thepage}%
+    \global\advance\WF@size-\intextsep
+   \else % \WF@info{Putting \WF@wfname in middle of page}%
+    \setbox\WF@box\hbox{\lower\intextsep\box\WF@box}%
+   \fi \dp\WF@box\z@ \box\WF@box \@tempa
+  }% end \hbox to 0pt
+  \aftergroup\WF@startwrapping % after the \endgroup which immediately follows
+\fi}
+
+\def\WF@startwrapping{%
+ \ifx\WF@wli\@empty
+  {\advance\WF@size1.1\baselineskip
+  \divide\WF@size\baselineskip \global\c@WF@wrappedlines\WF@size}%
+ \else
+  \setcounter{WF@wrappedlines}{\WF@wli}\global\advance\c@WF@wrappedlines\@ne
+ \fi
+ \ifnum\c@WF@wrappedlines>\@ne
+  \let\parshape\WF@fudgeparshape \let\WF@pspars\@empty \let\WF@@par\par
+  \def\@setpar##1{\def\WF@@par{##1}}\def\par{\@par}\let\@par\WF@mypar
+  \xdef\WF@restoretol{\tolerance\the\tolerance}\tolerance9999
+  \advance\linewidth-\WF@adjlw \advance\@totalleftmargin\WF@adjtlm
+ \fi}
+
+\def\WF@wraphand{%
+\ifnum\c@WF@wrappedlines<\tw@ \WF@finale
+\else \begingroup % Create \parshape command:
+ \@tempcnta\@ne \let\WF@wrapil\relax \gdef\WF@ps{}%
+ \@whilenum \@tempcnta<\c@WF@wrappedlines\do{% repeated indentation, length
+  \xdef\WF@ps{\WF@ps\WF@wrapil}\advance\@tempcnta\@ne
+ }\endgroup
+ \ifx\WF@pspars\@empty
+  \@@parshape\c@WF@wrappedlines \WF@ps \WF@noil
+ \else % use external `parshape' values to modify my parshape
+  \WF@modps
+\fi\fi}
+
+\def\WF@mypar{\relax
+ \WF@@par % what the rest of LaTeX expects \par to be (usually \@@par)
+ \ifnum\@@parshape=\z@ \let\WF@pspars\@empty \fi % reset `parshape'
+ \global\advance\c@WF@wrappedlines-\prevgraf \prevgraf\z@
+ \ifnum\c@WF@wrappedlines<\tw@ \WF@finale \fi}
+
+\def\WF@modps{\begingroup
+  \afterassignment\@tempdimb \@tempdima\WF@pspars % a=ind, b=wid
+  \advance\@tempdima-\WF@adjtlm \advance\@tempdimb\WF@adjlw
+%  \afterassignment\dimen@\advance\@tempdima\WF@wrapil
+%  \advance\@tempdimb\dimen@ \advance\@tempdimb-\hsize
+  \let\WF@wrapil\WF@pspars%{\the\@tempdima \the\@tempdimb}%
+  \edef\@tempb{\@@parshape\c@WF@wrappedlines \WF@ps \the\@tempdima \the\@tempdimb}%
+  \expandafter\endgroup\@tempb}
+
+\let\@@setpar\@setpar
+\def\WF@noil{\z@ \hsize}
+\let\WF@pspars\@empty
+
+\def\WF@fudgeparshape{\relax \ifnum\c@WF@wrappedlines<\tw@ \WF@finale
+  \else \afterassignment\WF@fudgeparshapee \fam \fi}
+\def\WF@fudgeparshapee{\ifnum\fam=\@ne \expandafter \WF@parshapeee \else
+  \WF@conflict \@@parshape\fam \fi}
+\def\WF@parshapeee#1#2{\begingroup\delimitershortfall#1%
+   \nulldelimiterspace#2%\advance\nulldelimiterspace\WF@adjlw
+   \edef\@tempa{\def\noexpand\WF@pspars{%
+      \the\delimitershortfall \the\nulldelimiterspace}}%
+  \expandafter\endgroup\@tempa \WF@wraphand}
+
+\def\WF@finale{\ifx\parshape\WF@fudgeparshape
+ \WF@restoretol \let\@setpar\@@setpar \let\par\WF@@par
+ \advance\linewidth\WF@adjlw \advance\@totalleftmargin-\WF@adjtlm
+ \WF@info{Finish wrapping text}%
+ \ifx\par\@@par \def\@par{\let\par\@@par\par}\else \let\@par\WF@@par \fi
+ \let\parshape\@@parshape
+ \parshape\ifx\WF@pspars\@empty \z@ \else \@ne \WF@pspars\fi \fi
+ \ifvoid\WF@box \ifx\everypar\WF@everypar
+  \let\everypar\WF@@everypar \everypar\expandafter{\the\WF@everypar}%
+ \fi\fi}
+
+\newcommand{\WFclear}{\par 
+ \ifvoid\WF@box\else \vskip\bigskipamount \box\WF@box
+ \let\everypar\WF@@everypar \everypar\expandafter{\the\WF@everypar}%
+ \fi \global\c@WF@wrappedlines\z@ \WF@finale}
+
+\begingroup
+ \toks0={\let\everypar\WF@@everypar \everypar\expandafter{\the\WF@everypar}%
+   \let\parshape\@@parshape \let\@setpar\@@setpar }
+ \toks1=\expandafter{\@arrayparboxrestore}
+ \toks2=\expandafter{\clearpage}
+ \edef\@tempa{\def\noexpand\@arrayparboxrestore{\the\toks0 \the\toks1}%
+      \def\noexpand\clearpage{\noexpand\protect\noexpand\WFclear \the\toks2}}
+ \expandafter
+\endgroup\@tempa
+
+\@ifundefined{@capwidth}{\let\@capwidth\hsize}{}% Pamper RevTeX's Stupidity
+
+\def\WF@conflict{\WF@warning
+ {\WF@wfname used inside a conflicting environment}}
+\def\WF@collision{\WF@warning{Collision between wrapping environments}}
+\def\WF@fltmes{\ifWF@float \WF@info{\WF@wfname floats}%
+ \else \WF@warning{Stationary \WF@wfname forced to float}\fi}
+
+\let\WF@warning\@warning
+\let\WF@info\@gobble
+
+% Support float.sty: float styles and \newfloat.  Make \newfloat{foo}
+% define the `wrapfoo' environment.  Support \newfloat from memoir.cls
+% and \newfloatlist from ccaption.sty.
+% 
+\let\WF@floatstyhook\relax
+
+\@ifundefined{newfloat}{}{% There is a \newfloat command
+%
+ \@ifundefined{restylefloat}{
+ % \newfloat comes from somewhere besides float.sty 
+   \@ifclassloaded{memoir}{
+    \toks@=\expandafter\expandafter\expandafter
+     {\csname\string\newfloat\endcsname [{#1}]{#2}{#3}{#4}%
+     \newenvironment{wrap#2}{\wrapfloat{#2}}{\endwrapfloat}%
+    }
+    \edef\@tempa{\def\expandafter\noexpand\csname\string\newfloat\endcsname
+      [##1]##2##3##4{\the\toks@}}
+    \@tempa
+   }% end memoir support
+   {}% Other origins of \newfloat here??
+ }{
+ %  float.sty handler.  Ooops:  Two versions for different versions
+ %  Changing \float@restyle (or \restylefloat) changes \newfloat too.
+ \@ifundefined{float@restyle}{% older float.sty
+  \toks@=\expandafter{\restylefloat{#1}% (env may or may not be defined)
+   \@namedef{wrap#1}{\def\@captype{#1}\@nameuse{fst@#1}%
+    \def\WF@floatstyhook{\let\@currbox\WF@box \columnwidth\wd\WF@box 
+       \global\setbox\WF@box\float@makebox}%
+    \@ifnextchar[\WF@wr{\WF@wr[]}}%
+   \expandafter\let\csname endwrap#1\endcsname \endwrapfigure
+  }\edef\@tempa{\def\noexpand\restylefloat##1{\the\toks@}}
+ }{% newer float.sty: use \float@restyle, and \float@makebox takes width arg
+  \toks@=\expandafter{\float@restyle{#1}% (env may or may not be defined)
+   \@namedef{wrap#1}{\def\@captype{#1}\@nameuse{fst@#1}%
+    \def\WF@floatstyhook{\let\@currbox\WF@box 
+       \global\setbox\WF@box\float@makebox{\wd\WF@box}}%
+    \@ifnextchar[\WF@wr{\WF@wr[]}}%
+   \expandafter\let\csname endwrap#1\endcsname \endwrapfigure
+  }\edef\@tempa{\def\noexpand\float@restyle##1{\the\toks@}}
+ }
+ \@tempa % perform redefinitions
+ %
+ }% End float.sty handler
+}% End redefinitions of \newfloat
+
+% Support ccaption.sty 
+\@ifundefined{\string\newfloatlist}{}{
+ \toks@=\expandafter\expandafter\expandafter
+   {\csname\string\newfloatlist\endcsname [{#1}]{#2}{#3}{#4}{#5}%
+  \@namedef{wrap#2}{\wrapfloat{#2}}%
+  \expandafter\let\csname endwrap#2\endcsname \endwrapfloat
+ }
+ \edef\@tempa{\def\expandafter\noexpand\csname\string\newfloatlist\endcsname
+   [##1]##2##3##4##5{\the\toks@}}
+ \@tempa
+}
+
+% Process package options.
+
+\@ifundefined{DeclareOption}{\endinput}{}
+
+\def\WF@warning{\PackageWarning{wrapfig}}
+\ProvidesPackage{wrapfig}[2003/01/31 \space  v 3.6]
+\DeclareOption{verbose}{\def\WF@info{\PackageInfo{wrapfig}}}
+\ProcessOptions
+\AtEndDocument{\WFclear}
+
+\endinput
+
+%%%%%  ----- End definitions ----- %%%%%
+
+%%%%%  ----- Begin Instructions ----- %%%%%
+
+
+W R A P F I G . S T Y  \ \  ver 3.6 \ \ (Jan 31, 2003)
+
+Copyright (C) 1991-2003 by Donald Arseneau  (asnd@triumf.ca)
+
+Wrapfig.sty provides the environments "wrapfigure" and "wraptable" for
+typesetting a narrow float at the edge of the text, and making the text
+wrap around it.  The "wrapfigure" and "wraptable" environments interact
+properly with the "\caption" command to produce proper numbering, but
+they are not regular floats like "figure" and "table", so (beware!) they
+may be printed out of sequence with the regular floats.  There are four
+parameters for "\begin{wrapfigure}", two optional and two required, plus
+the text of the figure, with a caption perhaps:
+
+   \begin{wrapfigure}[12]{r}[34pt]{5cm} <figure> \end{wrapfigure}
+                      ==  =  ====  ===
+   [number of narrow lines] {placement} [overhang] {width}
+
+Some idiosyncrasies:
+
+  - You must not specify a wrapfigure in any type of list environment or
+    or immediately before or immediately after one.  It is OK to follow
+    a list if there is a blank line ("\par") in between.
+
+  - If you put a wrapfigure in a parbox or a minipage, or any other type
+    of grouping, the text wrapping should end before the group does.
+
+  - It does work in two-column format, but are your figures that small?
+
+  - It may be out of sequence with regular floats.
+
+  - The hlines that may be printed above and below floats are ignored;
+    you must insert them manually if desired.
+
+  - "\linewidth" is now adjusted within the wrapped text, but since it
+    can only be set for whole paragraphs at a time, it will persist with
+    the wrong value after the wrapping, until the paragraph is finished.
+
+New wrapping environments may be added when new float types are defined
+(using memoir.cls, float.sty, or ccaption.sty).  Any wrapping environment,
+"wrapfigure", "wraptable", or something else may be invoked using the
+"wrapfloat" environment, as in "\begin{wrapfloat}{figure}{O}{5cm}".
+
+To use float.sty properly, load package "float" before "wrapfig", 
+and declare any new float types after loading both.  Likewise for
+ccaption.sty and "\newfloatlist" and memoir.cls and its "\newfloat".
+
+\section{Placement and Floating}
+
+Parameter "#2" (required) is the figure placement code, but the valid
+codes are different from regular figures.  They come in pairs: an
+uppercase version which allows the figure to float, and a lowercase
+version that puts the figure ``exactly here''.
+
+  r  R  -  the right side of the text
+  l  L  -  the left side of the text
+  i  I  -  the inside edge--near the binding (if "[twoside]" document)
+  o  O  -  the outside edge--far from the binding
+
+You should specify one code only, not a list.  The figure or table must
+be on one side or the other; it cannot be in the middle with text on
+both sides.  The "i" and "o" options refer to the inside and outside of
+the whole page, not individual columns.
+
+The ability to float is somewhat restricted, and you will get best results
+by giving exact manual placement, but floating is more convenient while
+revising the document.  Any changes to the formatting can ruin your manual
+positioning so you should adjust the placement just before printing a
+final copy.  Here are some tips for good placement:
+
+  - The environment should be placed so as to not run over a page break.
+
+  - The environment must not be placed in special places like lists.
+
+  - For esthetic reasons, only plain text should wrap around the figure.
+    Section titles and big equations look bad; lists are bad if the figure 
+    is on the left.  (All these function properly, they just don't look 
+    very good.)  Small equations look fine.
+
+  - It is convenient to begin the environment between paragraphs, but if
+    you want placement in the middle of a paragraph, you must put the
+    environment between two words where there is a natural line break.
+
+When floating, \LaTeX\ tries to apply these rules.  More specifically,
+a floated wrapping environment will only begin...
+
+  - at the beginning of a paragraph,
+
+  - when there is enough room on the page, or it is possible to go on
+    the next page,
+
+  - if the `paragraph' is not in a section title or a list,
+
+  - if the paragraph is not wrapping around another figure,
+
+  - in the main text (not in a minipage etc.)
+
+It is possible that a non-floating wrapfigure will be forced to float
+when an earlier one is still being processed.  A warning will be written
+in that case.  You can have more information about the floating process
+written to the log file by specifying "\usepackage[verbose]{wrapfig}".
+
+If there is a lot of flexibility on a page, a floating wrapfigure may
+be placed badly; you must turn to manual placement.  A rare problem is
+that floats and footnotes specified within the wrapping text can also
+cause poor placement and bad formatting.
+
+
+\section {Sizing and optional overhang}
+
+Parameter "#4" (the second required parameter) is the width of the figure
+or table.  Given the way that \LaTeX\ puts just about everything into boxes 
+with the current line-width, the width parameter will take precedence over 
+whatever natural width the figure has.  In particular, the caption is always 
+typeset with the specified width.  If the figure is wider than the space 
+allotted, you will get an ``overfull box'' warning.
+
+However, if you specify a width of *zero* ("0pt"), the actual width of
+the figure will determine the wrapping width.  A following "\caption"
+should have the same width as the figure, but it might fail badly; it
+is safer to specify a width when you use a caption.
+
+\LaTeX\ will wrap surrounding text around the figure, leaving a gap of
+"\intextsep" at the top and bottom, and "\columsep" at the side, by
+producing a series of shortened text lines beside the figure.  The
+indentation (shortening) of the text is the figure width plus "\columnsep"
+minus overhang (if any; see below).
+
+\LaTeX\ calculates the number of short lines needed based on the height
+of the figure and the length "\intextsep".  You can override this guess
+by giving the first optional argument (parameter "#1") specifying the
+number of shortened lines (counting each displayed equation as 3 lines).
+This is particularly useful when the surrounding text contains extra
+vertical spacing that is not accounted for automatically.
+
+The second optional parameter ("#3") tells how much the figure should
+hang out into the margin. The default overhang is given by the length
+"\wrapoverhang", which is "0pt" normally but can be changed using
+"\setlength".  For example, to have all wrapfigures use the space
+reserved for marginal notes,
+
+    \setlength{\wrapoverhang}{\marginparwidth}
+    \addtolength{\wrapoverhang}{\marginparsep}
+
+When you do specify the overhang explicitly for a particular figure, you
+can use a special unit called "\width" meaning the width of the figure.
+For example, "[0.5\width]" makes the center of the figure sit on the
+edge of the text, and "[\width]" puts the figure entirely in the margin
+(and the adjacent text is indented by just "\columnsep").  This "\width"
+is the actual width of the wrapfigure, which may be greater than the 
+declared width.
+
+
+\section{Some Random Implementation Notes}
+
+Unfortunately, \LaTeX's system of setting "\everypar" and "\par" is
+unable to coexist peacefully with a wrapping environment, so I was
+forced to subvert the "\@setpar" mechanism and "\everypar".  ("\everypar"
+is already subverted once by NFSS.)
+
+When checking the room left on the page, remember that if there is less
+than "\baselineskip" the new paragraph will begin on the next page, even
+if there is no page stretch. If non-floating, I force a bad page break
+rather than have the figure hang into the bottom margin.
+
+Here are notes on various variables and some macros; what info they
+store and how they are used.
+
+  \WF@wli - number-of-wrapped-lines parameter, saved for start of wrapping.
+     Set globally by "\WF@wr" (set empty if no optional parameter given).
+     The floating mechanism ignores this and uses the real size.
+
+  \WF@ovh - margin overhang set globally by "\WF@rapt", saved until placing
+     figure (but not reset).  Actually, the setting is very tricky so that
+     the expected values are used when a figure floats. First, the expression
+     is saved without evaluation by "\WF@rapt" ("\begin{wrapfigure}") because
+     "\width" is still unknown.  Soon after that, "\endwrapfigure" executes
+     "\WF@ovh" to evaluate the overhang and save the result (so that changes
+     to "\wrapoverhang" while this figure is floating won't affect this
+     figure). Finally, it is used by "\WF@putfigmaybe" when printing the fig.
+
+  \WF@place - a macro that is used as a number, giving the placement code.
+     It might start out as "`I" and later be converted to "114" (r).
+
+  \WF@box - tested for void at "\begin{wrapfigure}", to avoid collisions,
+     by "\everypar" to do floating, and by "\WF@finale" before resetting
+     "\everypar".  Voided globally when used by "\WF@putfigmaybe" (or by
+     "\WF@wr" if an old figure must be dumped prematurely).
+
+  \par - test if it is "\@@par" by "\begin{wrapfigure}" and "\WF@floathand"
+     to float past special environments.  It is set to "\@par" ("\WF@mypar")
+     by "\WF@startwrapping", and restored by an end-group (bad!) or by
+     "\WF@finale" (good).  It is protected from change by redefining
+     "\@setpar".
+
+  \parshape - let to "\WF@fudgeparshape" by "\WF@startwrapping", so lists
+     will continue wrapping; "\@@parshape" preserves the real "\parshape"
+     command, and it is restored by "\WF@finale" or "\@parboxrestore".
+     "\WF@floathand" and "\WF@wr" test if old wrapping is still in progress
+     with "\ifx\parshape\WF@fudgeparshape". The value of "\@@parshape" is
+     also tested to float past lists and other wrapping environments.
+
+  \hangindent - tested to float past section titles etc.
+
+  \c@WF@wrappedlines - the number of shortened lines + 1; set globally by
+     "\WF@startwrapping" and decremented by "\par" ("\WF@mypar").  It is > 1
+     only when wrapping is incomplete.  "\WF@wraphand", "\WF@fudgeparshape",
+     and "\WF@mypar" test the number for calling "\WF@finale".  It may get
+     stuck at some high value if "\par" is restored by an end-group, (and
+     wrapping is terminated prematurely) so it is unwise to use this as a
+     test for wrapping-complete.
+
+  \pagetotal - one of many parameters used to compute floating.  When
+     putting a wrapfigure in a parbox, I assign "\let\pagetotal\maxdimen"
+     (locally!) to signal not-top-of-page and no floating.
+
+  \WF@pspars - the "\parshape" parameters as LaTeX sets them for lists
+     ("\WF@fudgeparshape"); when wrapping I test it and use it to modify my
+     own real params for the paragraph.  They are also used when "\parshape"
+     is restored after wrapping.
+
+  \WF@finale - is performed by "\par" when wrapping should end.  However,
+     that might happen inside a group (a list especially), so the subverted
+     versions of "\par", "\parshape" etc. will be reinstated when the group
+     ends.  Thus, they must themselves test "\c@WF@wrappedlines" < 2 to see
+     when wrapping is over, and if so, they should just do "\WF@finale" again.
+
+These are the tests to see if a floating wrapfigure will fit at a particular
+spot.  These tests are performed at the beginning of every paragraph after
+the figure, except in lists etc.  ("\pagegoal" - "\pagetotal" is the room
+left on the page.)
+
+  >
+  room_left := \pagegoal - \pagetotal
+  if  room_left < 0  then page overfull already: put figure (on next page)
+  else
+     if  figure_size > room_left  then does not fit
+        if  max(min_stretch, \pagestretch) + extra > room_left
+           then page can stretch until full: put figure (at top of next page)
+        fi
+     else figure fits: put figure
+  fi fi
+  <
+
+Even if a wrapfigure is not floating, it will go through the same logic
+to generate a "\pagebreak", and maybe an underfull page, when the current
+page can stretch until full.  The "min_stretch" depends on whether it is
+floating or not: ".5\baselineskip" (floating) "2\baselineskip" (not). The
+"extra" is ".5\baselineskip" in either case.  These values can be adjusted.
+
+There are some other `magic numbers' for floating that aren't really so
+special, but you must change them together if you change them at all.
+To make floating wrapfigures float less and fit on pages more frequently,
+but not change the number of wrapped lines, decrease the "1.5" in
+"\global\advance\WF@size1.5\baselineskip" and increase the "1.1" in
+"\advance\WF@size1.1\baselineskip" by the same amount (and vice versa).
+To make more (or fewer) wrapped lines for the same size figure, without
+changing the floating, change "1.1" in "\advance\WF@size1.1\baselineskip"
+unilaterally.
+
+%%%%%  ----- End Instructions ----- %%%%%
+
+Test file integrity:  ASCII 32-57, 58-126:  !"#$%&'()*+,-./0123456789
+:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
-- 
GitLab