diff --git a/Makefile b/Makefile index 27dfa42..db6a709 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,12 @@ include tools/Makefile include src/Makefile -default: all +.PHONY: all all: embed libdzonerzy libdzonerzy-gen runlocal: embed libdzonerzy-runlocal +tools: embed + clean: clean-tools clean-libdzonerzy \ No newline at end of file diff --git a/res/binwalk.jpg b/res/binwalk.jpg new file mode 100644 index 0000000..f766ae7 Binary files /dev/null and b/res/binwalk.jpg differ diff --git a/res/bored-hacker.jpg b/res/bored-hacker.jpg new file mode 100644 index 0000000..c6de2ef Binary files /dev/null and b/res/bored-hacker.jpg differ diff --git a/res/botnet.gif b/res/botnet.gif new file mode 100644 index 0000000..4b05cb2 Binary files /dev/null and b/res/botnet.gif differ diff --git a/res/bug-wires.jpg b/res/bug-wires.jpg new file mode 100644 index 0000000..b3c6c03 Binary files /dev/null and b/res/bug-wires.jpg differ diff --git a/res/dark-side-cookie.jpg b/res/dark-side-cookie.jpg new file mode 100644 index 0000000..febb6de Binary files /dev/null and b/res/dark-side-cookie.jpg differ diff --git a/res/hopeless-programmer.jpg b/res/hopeless-programmer.jpg new file mode 100644 index 0000000..8d559b1 Binary files /dev/null and b/res/hopeless-programmer.jpg differ diff --git a/res/router-going-wild.jpg b/res/router-going-wild.jpg new file mode 100644 index 0000000..fe68a32 Binary files /dev/null and b/res/router-going-wild.jpg differ diff --git a/res/routers-stunned.jpg b/res/routers-stunned.jpg new file mode 100644 index 0000000..1f8844b Binary files /dev/null and b/res/routers-stunned.jpg differ diff --git a/res/system-add-user.jpg b/res/system-add-user.jpg new file mode 100644 index 0000000..dee38db Binary files /dev/null and b/res/system-add-user.jpg differ diff --git a/src/libdzonerzy.so.c b/src/libdzonerzy.so.c index 3d2ed15..94972f2 100644 --- a/src/libdzonerzy.so.c +++ b/src/libdzonerzy.so.c @@ -26,13 +26,16 @@ Copyright: CSS_SELECTOR(":root") \ CSS_PROPERTY("--main-link-color", "#215fc2") \ CSS_END_SELECTOR() \ - CSS_SELECTOR("html,body") \ + CSS_SELECTOR("html") \ CSS_PROPERTY("margin", "0") \ CSS_PROPERTY("padding", "0") \ CSS_PROPERTY("width", "100%") \ CSS_PROPERTY("height", "100vh") \ CSS_END_SELECTOR() \ CSS_SELECTOR("body") \ + CSS_PROPERTY("margin", "auto") \ + CSS_PROPERTY("max-width", "60em") \ + CSS_PROPERTY("min-height", "100vh") \ CSS_PROPERTY("font-family", "monospace") \ CSS_PROPERTY("font-size", "1.23em") \ CSS_PROPERTY("background-color", "#ddd") \ @@ -48,10 +51,10 @@ Copyright: CSS_PROPERTY("padding", "1em") \ CSS_END_SELECTOR() \ CSS_SELECTOR("footer") \ - CSS_PROPERTY("border-top", "1px solid #222") \ + CSS_PROPERTY("border", "1px solid #222") \ + CSS_PROPERTY("border-radius", "15px") \ CSS_PROPERTY("background-color", "#ccc") \ CSS_PROPERTY("color", "#000") \ - CSS_PROPERTY("padding", "1em") \ CSS_PROPERTY("flex-shrink", "0") \ CSS_PROPERTY("display", "flex") \ CSS_PROPERTY("flex-direction", "column") \ @@ -108,7 +111,7 @@ Copyright: CSS_PROPERTY("border", "2px dashed #333") \ CSS_PROPERTY("background-color", "#fff") \ CSS_PROPERTY("color", "#000") \ - CSS_PROPERTY("height", "12em") \ + CSS_PROPERTY("height", "15em") \ CSS_PROPERTY("float", "right") \ CSS_PROPERTY("clear", "right") \ CSS_PROPERTY("margin-left", "1em") \ @@ -131,6 +134,10 @@ Copyright: CSS_PROPERTY("transform", "scale(0.95, 1.05)") \ CSS_END_SELECTOR() \ CSS_END_SELECTOR() \ + CSS_SELECTOR("header~*") \ + CSS_PROPERTY("margin", "1em") \ + CSS_PROPERTY("padding", "1em") \ + CSS_END_SELECTOR() \ CSS_SELECTOR("footer > span") \ CSS_PROPERTY("display", "flex") \ CSS_PROPERTY("text-align", "center") \ @@ -138,15 +145,26 @@ Copyright: CSS_PROPERTY("align-items", "center") \ CSS_END_SELECTOR() \ CSS_SELECTOR("pre, code") \ - CSS_PROPERTY("min-width", "60vw") \ - CSS_PROPERTY("max-width", "80vw") \ CSS_PROPERTY("max-height", "500px") \ CSS_PROPERTY("overflow", "auto") \ - CSS_PROPERTY("font-size", "1.1em") \ CSS_PROPERTY("font-family", "monospace") \ CSS_PROPERTY("border-radius", "0.5em") \ CSS_END_SELECTOR() \ - CSS_SELECTOR("blockquote, pre") \ + CSS_SELECTOR("blockquote img") \ + CSS_PROPERTY("clear", "none") \ + CSS_PROPERTY("height", "auto") \ + CSS_PROPERTY("max-height", "32em") \ + CSS_PROPERTY("max-width", "100%") \ + CSS_PROPERTY("float", "none") \ + CSS_END_SELECTOR() \ + CSS_SELECTOR("blockquote") \ + CSS_PROPERTY("padding", "1em") \ + CSS_PROPERTY("color", "#111") \ + CSS_PROPERTY("clear", "both") \ + CSS_PROPERTY("padding-top", "0.25em") \ + CSS_PROPERTY("padding-bottom", "0.25em") \ + CSS_END_SELECTOR() \ + CSS_SELECTOR("pre") \ CSS_PROPERTY("padding", "1em") \ CSS_PROPERTY("border", "1px solid #111") \ CSS_PROPERTY("background-color", "#9a9091") \ @@ -155,11 +173,8 @@ Copyright: CSS_PROPERTY("padding-top", "0.25em") \ CSS_PROPERTY("padding-bottom", "0.25em") \ CSS_END_SELECTOR() \ - CSS_SELECTOR("div.sourceCode") \ - CSS_PROPERTY("display", "flex") \ - CSS_PROPERTY("flex-direction", "column") \ - CSS_PROPERTY("justify-content", "center") \ - CSS_PROPERTY("align-items", "center") \ + CSS_SELECTOR(".sourceCode") \ + CSS_PROPERTY("overflow", "auto") \ CSS_END_SELECTOR() \ CSS_SELECTOR("pre::-webkit-scrollbar") \ CSS_PROPERTY("display", "none") \ @@ -235,9 +250,9 @@ Copyright: MD_TEXT("offensive security and programming, I'm also writing articles about ") \ MD_TEXT("my projects.") \ MD_NEWLINE() \ - MD_LIST(MD_BOLD(MD_LINK("CaptainHook next-gen hooking framework", \ - "/articles/captainhook-a-next-gen-hooking-framework.html"))) \ - MD_TEXT(" -- A different approach to prototype-less hooking.") \ + MD_LIST(MD_BOLD(MD_LINK("From zero to botnet", \ + "/articles/from-zero-to-botnet-glinet.html"))) \ + MD_TEXT(" -- GL.iNet going wild") \ MD_NEWLINE() \ MD_SECTION1("FAQ") \ MD_TEXT("Here is a list of frequently asked questions, if you have any other questions ") \ @@ -355,26 +370,6 @@ Copyright: XML_URL("https://libdzonerzy.so/sitemap.xml") \ XML_END_URLSET() -#define CAPTAINHOOK_MD \ - MD_META("CaptainHook - A different approach to prototype-less hooking", "DZONERZY") \ - MD_META_CUSTOM("Thursday, July 13, 2023") \ - MD_SECTION1("CaptainHook -- A different approach to prototype-less hooking") \ - MD_TEXT("CaptainHook is a new hooking framework that allows you to hook ") \ - MD_TEXT("functions without the need of a prototype. ") \ - MD_NEWLINE() \ - MD_TEXT("It uses a different approach to hooking, instead of modifying the ") \ - MD_TEXT("function prologue, it before perform the emulation of the function ") \ - MD_TEXT("in three different points: ") \ - MD_NEWLINE() \ - MD_TEXT("1. Before the function is called ") \ - MD_NEWLINE() \ - MD_TEXT("2. After the function is called ") \ - MD_NEWLINE() \ - MD_TEXT("3. Before the function returns ") \ - MD_NEWLINE() \ - MD_LINK("< Back", "/") \ - MD_NEWLINE() - int main(int argc, char **argv) { fprintf(stdout, "https://libdzonerzy.so\n"); @@ -394,5 +389,5 @@ SECTION("main.js") static const char mainjs[] = MAIN_JS; SECTION("sitemap.xml") static const char sitemapxml[] = SITEMAP_XML; -ARTICLE("captainhook-a-next-gen-hooking-framework") -static const char captainhook[] = CAPTAINHOOK_MD; \ No newline at end of file +ARTICLE("from-zero-to-botnet-glinet") +static const char zerotobot[] = {0x25, 0x20, 0x46, 0x72, 0x6F, 0x6D, 0x20, 0x7A, 0x65, 0x72, 0x6F, 0x20, 0x74, 0x6F, 0x20, 0x62, 0x6F, 0x74, 0x6E, 0x65, 0x74, 0x20, 0x2D, 0x2D, 0x20, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x20, 0x67, 0x6F, 0x69, 0x6E, 0x67, 0x20, 0x77, 0x69, 0x6C, 0x64, 0x0A, 0x25, 0x20, 0x44, 0x5A, 0x4F, 0x4E, 0x45, 0x52, 0x5A, 0x59, 0x0A, 0x25, 0x20, 0x54, 0x68, 0x75, 0x72, 0x73, 0x64, 0x61, 0x79, 0x2C, 0x20, 0x20, 0x4F, 0x63, 0x74, 0x6F, 0x62, 0x65, 0x72, 0x20, 0x31, 0x39, 0x2C, 0x20, 0x32, 0x30, 0x32, 0x33, 0x0A, 0x23, 0x20, 0x42, 0x6F, 0x72, 0x65, 0x64, 0x6F, 0x6D, 0x2C, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x62, 0x61, 0x64, 0x20, 0x67, 0x75, 0x79, 0x0A, 0x21, 0x5B, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x20, 0x6F, 0x66, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x5D, 0x28, 0x2F, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2F, 0x62, 0x6F, 0x72, 0x65, 0x64, 0x2D, 0x68, 0x61, 0x63, 0x6B, 0x65, 0x72, 0x2E, 0x6A, 0x70, 0x67, 0x29, 0x0A, 0x0A, 0x49, 0x74, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x66, 0x65, 0x77, 0x20, 0x64, 0x61, 0x79, 0x73, 0x20, 0x61, 0x67, 0x6F, 0x2C, 0x20, 0x61, 0x20, 0x66, 0x72, 0x69, 0x65, 0x6E, 0x64, 0x20, 0x6F, 0x66, 0x20, 0x6D, 0x69, 0x6E, 0x65, 0x2C, 0x20, 0x4D, 0x69, 0x63, 0x68, 0x65, 0x6C, 0x65, 0x2C, 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x61, 0x63, 0x74, 0x65, 0x64, 0x20, 0x6D, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x73, 0x61, 0x69, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x61, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6C, 0x69, 0x74, 0x79, 0x20, 0x69, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x20, 0x6C, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6C, 0x69, 0x74, 0x79, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x20, 0x52, 0x43, 0x45, 0x20, 0x28, 0x52, 0x65, 0x6D, 0x6F, 0x74, 0x65, 0x20, 0x43, 0x6F, 0x64, 0x65, 0x20, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6F, 0x6E, 0x29, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x65, 0x64, 0x20, 0x61, 0x6E, 0x20, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6B, 0x65, 0x72, 0x20, 0x74, 0x6F, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2E, 0x0A, 0x0A, 0x48, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x20, 0x61, 0x73, 0x6B, 0x65, 0x64, 0x20, 0x6D, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x68, 0x65, 0x6C, 0x70, 0x20, 0x68, 0x69, 0x6D, 0x20, 0x27, 0x63, 0x61, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x20, 0x70, 0x6F, 0x73, 0x74, 0x2D, 0x61, 0x75, 0x74, 0x68, 0x20, 0x52, 0x43, 0x45, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x68, 0x65, 0x20, 0x64, 0x69, 0x64, 0x6E, 0x27, 0x74, 0x20, 0x6B, 0x6E, 0x6F, 0x77, 0x20, 0x68, 0x6F, 0x77, 0x20, 0x74, 0x6F, 0x20, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x20, 0x70, 0x61, 0x67, 0x65, 0x2C, 0x20, 0x64, 0x72, 0x69, 0x76, 0x65, 0x6E, 0x20, 0x62, 0x79, 0x20, 0x63, 0x75, 0x72, 0x69, 0x6F, 0x73, 0x69, 0x74, 0x79, 0x2C, 0x20, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x61, 0x6E, 0x61, 0x6C, 0x79, 0x7A, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x49, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x69, 0x74, 0x27, 0x73, 0x20, 0x61, 0x20, 0x6D, 0x69, 0x78, 0x20, 0x6F, 0x66, 0x20, 0x62, 0x61, 0x64, 0x20, 0x70, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x2C, 0x20, 0x70, 0x6F, 0x6F, 0x72, 0x20, 0x70, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x69, 0x6E, 0x67, 0x20, 0x73, 0x6B, 0x69, 0x6C, 0x6C, 0x73, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x61, 0x20, 0x6C, 0x6F, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x66, 0x75, 0x6E, 0x2E, 0x0A, 0x0A, 0x23, 0x20, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x61, 0x72, 0x65, 0x2C, 0x20, 0x62, 0x69, 0x6E, 0x77, 0x61, 0x6C, 0x6B, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x63, 0x75, 0x65, 0x0A, 0x21, 0x5B, 0x42, 0x69, 0x6E, 0x61, 0x72, 0x79, 0x20, 0x77, 0x61, 0x6C, 0x6B, 0x69, 0x6E, 0x67, 0x5D, 0x28, 0x2F, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2F, 0x62, 0x69, 0x6E, 0x77, 0x61, 0x6C, 0x6B, 0x2E, 0x6A, 0x70, 0x67, 0x29, 0x0A, 0x0A, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x74, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x49, 0x20, 0x64, 0x69, 0x64, 0x20, 0x77, 0x61, 0x73, 0x20, 0x74, 0x6F, 0x20, 0x64, 0x6F, 0x77, 0x6E, 0x6C, 0x6F, 0x61, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x61, 0x6E, 0x61, 0x6C, 0x79, 0x7A, 0x65, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x62, 0x69, 0x6E, 0x77, 0x61, 0x6C, 0x6B, 0x2C, 0x20, 0x62, 0x69, 0x6E, 0x77, 0x61, 0x6C, 0x6B, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x6F, 0x6F, 0x6C, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x73, 0x20, 0x79, 0x6F, 0x75, 0x20, 0x74, 0x6F, 0x20, 0x2A, 0x77, 0x61, 0x6C, 0x6B, 0x2A, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x65, 0x6E, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x62, 0x69, 0x6E, 0x61, 0x72, 0x79, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x20, 0x62, 0x79, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6D, 0x61, 0x67, 0x69, 0x63, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x20, 0x6F, 0x66, 0x20, 0x6B, 0x6E, 0x6F, 0x77, 0x6E, 0x20, 0x6D, 0x61, 0x67, 0x69, 0x63, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2E, 0x0A, 0x0A, 0x42, 0x79, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x73, 0x2C, 0x20, 0x69, 0x74, 0x27, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x20, 0x2A, 0x2A, 0x4C, 0x69, 0x6E, 0x75, 0x78, 0x2D, 0x35, 0x2E, 0x31, 0x30, 0x2E, 0x31, 0x37, 0x36, 0x2A, 0x2A, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x2C, 0x20, 0x77, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x4C, 0x5A, 0x4D, 0x41, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x6B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x20, 0x69, 0x74, 0x73, 0x65, 0x6C, 0x66, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x20, 0x77, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x20, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x46, 0x53, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2C, 0x20, 0x6A, 0x75, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x69, 0x63, 0x61, 0x6C, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x20, 0x63, 0x6F, 0x6E, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2E, 0x20, 0x0A, 0x0A, 0x54, 0x68, 0x65, 0x20, 0x74, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x77, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6E, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x46, 0x53, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2C, 0x20, 0x73, 0x69, 0x6E, 0x63, 0x65, 0x20, 0x69, 0x74, 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x73, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x61, 0x72, 0x65, 0x20, 0x67, 0x6F, 0x69, 0x6E, 0x67, 0x20, 0x74, 0x6F, 0x20, 0x62, 0x65, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x65, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2C, 0x20, 0x74, 0x68, 0x75, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x63, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x65, 0x62, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2C, 0x20, 0x69, 0x6E, 0x20, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x6F, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x49, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x2A, 0x2D, 0x65, 0x2A, 0x2A, 0x20, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x62, 0x69, 0x6E, 0x77, 0x61, 0x6C, 0x6B, 0x2E, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x64, 0x7A, 0x6F, 0x6E, 0x65, 0x72, 0x7A, 0x79, 0x40, 0x44, 0x5A, 0x4F, 0x4E, 0x45, 0x52, 0x5A, 0x59, 0x2D, 0x50, 0x43, 0x3A, 0x24, 0x20, 0x62, 0x69, 0x6E, 0x77, 0x61, 0x6C, 0x6B, 0x20, 0x6F, 0x70, 0x65, 0x6E, 0x77, 0x72, 0x74, 0x2D, 0x61, 0x72, 0x33, 0x30, 0x30, 0x6D, 0x31, 0x36, 0x2D, 0x34, 0x2E, 0x33, 0x2E, 0x37, 0x2D, 0x30, 0x39, 0x31, 0x33, 0x2D, 0x31, 0x36, 0x39, 0x34, 0x35, 0x38, 0x39, 0x39, 0x39, 0x34, 0x2E, 0x62, 0x69, 0x6E, 0x0A, 0x44, 0x45, 0x43, 0x49, 0x4D, 0x41, 0x4C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x45, 0x58, 0x41, 0x44, 0x45, 0x43, 0x49, 0x4D, 0x41, 0x4C, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, 0x45, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4F, 0x4E, 0x0A, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x2D, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x78, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2C, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x20, 0x36, 0x34, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2C, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, 0x52, 0x43, 0x3A, 0x20, 0x30, 0x78, 0x45, 0x39, 0x34, 0x30, 0x44, 0x46, 0x39, 0x36, 0x2C, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x3A, 0x20, 0x32, 0x30, 0x32, 0x33, 0x2D, 0x30, 0x34, 0x2D, 0x30, 0x39, 0x20, 0x31, 0x32, 0x3A, 0x32, 0x37, 0x3A, 0x34, 0x36, 0x2C, 0x20, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x20, 0x32, 0x35, 0x39, 0x37, 0x31, 0x37, 0x34, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2C, 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3A, 0x20, 0x30, 0x78, 0x38, 0x30, 0x30, 0x36, 0x30, 0x30, 0x30, 0x30, 0x2C, 0x20, 0x45, 0x6E, 0x74, 0x72, 0x79, 0x20, 0x50, 0x6F, 0x69, 0x6E, 0x74, 0x3A, 0x20, 0x30, 0x78, 0x38, 0x30, 0x30, 0x36, 0x30, 0x30, 0x30, 0x30, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x43, 0x52, 0x43, 0x3A, 0x20, 0x30, 0x78, 0x33, 0x45, 0x42, 0x42, 0x34, 0x41, 0x32, 0x32, 0x2C, 0x20, 0x4F, 0x53, 0x3A, 0x20, 0x4C, 0x69, 0x6E, 0x75, 0x78, 0x2C, 0x20, 0x43, 0x50, 0x55, 0x3A, 0x20, 0x4D, 0x49, 0x50, 0x53, 0x2C, 0x20, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x4F, 0x53, 0x20, 0x4B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x20, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x2C, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3A, 0x20, 0x6C, 0x7A, 0x6D, 0x61, 0x2C, 0x20, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x3A, 0x20, 0x22, 0x4D, 0x49, 0x50, 0x53, 0x20, 0x4F, 0x70, 0x65, 0x6E, 0x57, 0x72, 0x74, 0x20, 0x4C, 0x69, 0x6E, 0x75, 0x78, 0x2D, 0x35, 0x2E, 0x31, 0x30, 0x2E, 0x31, 0x37, 0x36, 0x22, 0x0A, 0x36, 0x34, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x78, 0x34, 0x30, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4C, 0x5A, 0x4D, 0x41, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x70, 0x72, 0x6F, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x3A, 0x20, 0x30, 0x78, 0x36, 0x44, 0x2C, 0x20, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x61, 0x72, 0x79, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x20, 0x38, 0x33, 0x38, 0x38, 0x36, 0x30, 0x38, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2C, 0x20, 0x75, 0x6E, 0x63, 0x6F, 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x20, 0x38, 0x37, 0x32, 0x33, 0x38, 0x37, 0x36, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x0A, 0x32, 0x35, 0x39, 0x37, 0x32, 0x33, 0x38, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30, 0x78, 0x32, 0x37, 0x41, 0x31, 0x37, 0x36, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x66, 0x73, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2C, 0x20, 0x6C, 0x69, 0x74, 0x74, 0x6C, 0x65, 0x20, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x2C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x34, 0x2E, 0x30, 0x2C, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x3A, 0x78, 0x7A, 0x2C, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x20, 0x31, 0x32, 0x38, 0x34, 0x37, 0x36, 0x36, 0x36, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2C, 0x20, 0x34, 0x30, 0x39, 0x36, 0x20, 0x69, 0x6E, 0x6F, 0x64, 0x65, 0x73, 0x2C, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x69, 0x7A, 0x65, 0x3A, 0x20, 0x32, 0x36, 0x32, 0x31, 0x34, 0x34, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2C, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x3A, 0x20, 0x32, 0x30, 0x32, 0x33, 0x2D, 0x30, 0x34, 0x2D, 0x30, 0x39, 0x20, 0x31, 0x32, 0x3A, 0x32, 0x37, 0x3A, 0x34, 0x36, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x23, 0x20, 0x4F, 0x70, 0x65, 0x6E, 0x57, 0x52, 0x54, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x49, 0x50, 0x43, 0x20, 0x75, 0x62, 0x75, 0x73, 0x0A, 0x0A, 0x54, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x77, 0x61, 0x72, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x4F, 0x70, 0x65, 0x6E, 0x57, 0x52, 0x54, 0x20, 0x61, 0x73, 0x20, 0x77, 0x65, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x64, 0x65, 0x64, 0x75, 0x63, 0x74, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x20, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x20, 0x73, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x61, 0x79, 0x20, 0x77, 0x65, 0x62, 0x20, 0x61, 0x70, 0x69, 0x20, 0x61, 0x72, 0x65, 0x20, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x64, 0x20, 0x69, 0x74, 0x27, 0x73, 0x20, 0x61, 0x73, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x3A, 0x0A, 0x0A, 0x31, 0x20, 0x2D, 0x20, 0x57, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x6E, 0x20, 0x52, 0x50, 0x43, 0x20, 0x64, 0x61, 0x65, 0x6D, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6C, 0x69, 0x73, 0x74, 0x65, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x6F, 0x6E, 0x20, 0x61, 0x20, 0x75, 0x6E, 0x69, 0x78, 0x20, 0x73, 0x6F, 0x63, 0x6B, 0x65, 0x74, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x75, 0x70, 0x6F, 0x6E, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2C, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x63, 0x61, 0x6C, 0x6C, 0x20, 0x75, 0x62, 0x75, 0x73, 0x20, 0x74, 0x6F, 0x20, 0x66, 0x6F, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x2E, 0x0A, 0x0A, 0x32, 0x20, 0x2D, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65, 0x27, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x62, 0x75, 0x73, 0x20, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x75, 0x62, 0x75, 0x73, 0x20, 0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x66, 0x6F, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x4C, 0x75, 0x61, 0x20, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x2E, 0x0A, 0x0A, 0x33, 0x20, 0x2D, 0x20, 0x54, 0x68, 0x65, 0x6E, 0x20, 0x77, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x2A, 0x2F, 0x75, 0x73, 0x72, 0x2F, 0x73, 0x62, 0x69, 0x6E, 0x2F, 0x67, 0x6C, 0x2D, 0x6E, 0x67, 0x78, 0x2D, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x2A, 0x2A, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6C, 0x20, 0x4C, 0x75, 0x61, 0x20, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6E, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x6D, 0x65, 0x63, 0x68, 0x61, 0x6E, 0x69, 0x73, 0x6D, 0x2E, 0x20, 0x0A, 0x0A, 0x4F, 0x74, 0x68, 0x65, 0x72, 0x20, 0x68, 0x61, 0x6E, 0x64, 0x6C, 0x65, 0x72, 0x73, 0x20, 0x65, 0x78, 0x69, 0x73, 0x74, 0x2C, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x6F, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x61, 0x6C, 0x69, 0x74, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x20, 0x2A, 0x2A, 0x2F, 0x75, 0x73, 0x72, 0x2F, 0x6C, 0x69, 0x62, 0x2F, 0x6F, 0x75, 0x69, 0x2D, 0x68, 0x74, 0x74, 0x70, 0x64, 0x2F, 0x72, 0x70, 0x63, 0x2F, 0x2A, 0x2A, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x20, 0x69, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6E, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x6D, 0x65, 0x63, 0x68, 0x61, 0x6E, 0x69, 0x73, 0x6D, 0x2C, 0x20, 0x73, 0x6F, 0x20, 0x6C, 0x65, 0x74, 0x27, 0x73, 0x20, 0x66, 0x6F, 0x63, 0x75, 0x73, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x61, 0x74, 0x2E, 0x0A, 0x0A, 0x4D, 0x6F, 0x72, 0x65, 0x20, 0x69, 0x6E, 0x66, 0x6F, 0x20, 0x61, 0x62, 0x6F, 0x75, 0x74, 0x20, 0x68, 0x6F, 0x77, 0x20, 0x75, 0x62, 0x75, 0x73, 0x20, 0x77, 0x6F, 0x72, 0x6B, 0x73, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x62, 0x65, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x5B, 0x68, 0x65, 0x72, 0x65, 0x5D, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x68, 0x61, 0x63, 0x6B, 0x6D, 0x64, 0x2E, 0x69, 0x6F, 0x2F, 0x40, 0x72, 0x59, 0x4D, 0x71, 0x7A, 0x43, 0x2D, 0x39, 0x52, 0x78, 0x79, 0x30, 0x49, 0x73, 0x6E, 0x33, 0x7A, 0x43, 0x6C, 0x55, 0x52, 0x67, 0x2F, 0x48, 0x31, 0x42, 0x59, 0x39, 0x38, 0x62, 0x52, 0x77, 0x29, 0x2E, 0x0A, 0x0A, 0x0A, 0x23, 0x20, 0x54, 0x68, 0x65, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6C, 0x69, 0x74, 0x79, 0x2C, 0x20, 0x4C, 0x75, 0x61, 0x2C, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x72, 0x65, 0x61, 0x6C, 0x20, 0x21, 0x3F, 0x3F, 0x0A, 0x21, 0x5B, 0x41, 0x20, 0x62, 0x75, 0x67, 0x20, 0x63, 0x75, 0x74, 0x74, 0x69, 0x6E, 0x67, 0x20, 0x77, 0x69, 0x72, 0x65, 0x73, 0x5D, 0x28, 0x2F, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2F, 0x62, 0x75, 0x67, 0x2D, 0x77, 0x69, 0x72, 0x65, 0x73, 0x2E, 0x6A, 0x70, 0x67, 0x29, 0x0A, 0x0A, 0x55, 0x70, 0x6F, 0x6E, 0x20, 0x61, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x2C, 0x20, 0x49, 0x20, 0x6E, 0x6F, 0x74, 0x69, 0x63, 0x65, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x2A, 0x2F, 0x75, 0x73, 0x72, 0x2F, 0x73, 0x62, 0x69, 0x6E, 0x2F, 0x67, 0x6C, 0x2D, 0x6E, 0x67, 0x78, 0x2D, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x2A, 0x2A, 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x6A, 0x75, 0x73, 0x74, 0x20, 0x6C, 0x75, 0x61, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x28, 0x6E, 0x6F, 0x20, 0x77, 0x65, 0x69, 0x72, 0x64, 0x20, 0x43, 0x20, 0x4D, 0x49, 0x50, 0x53, 0x20, 0x65, 0x73, 0x6F, 0x63, 0x74, 0x69, 0x63, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x79, 0x61, 0x79, 0x21, 0x29, 0x2C, 0x20, 0x73, 0x6F, 0x20, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x61, 0x6E, 0x61, 0x6C, 0x79, 0x7A, 0x65, 0x20, 0x69, 0x74, 0x2E, 0x0A, 0x0A, 0x54, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6E, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x6D, 0x65, 0x63, 0x68, 0x61, 0x6E, 0x69, 0x73, 0x6D, 0x20, 0x77, 0x6F, 0x72, 0x6B, 0x73, 0x20, 0x69, 0x6E, 0x20, 0x74, 0x77, 0x6F, 0x20, 0x73, 0x74, 0x65, 0x70, 0x73, 0x3A, 0x0A, 0x0A, 0x31, 0x20, 0x2D, 0x20, 0x54, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x73, 0x65, 0x6E, 0x64, 0x20, 0x61, 0x6E, 0x20, 0x52, 0x50, 0x43, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x63, 0x61, 0x6C, 0x6C, 0x69, 0x6E, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6C, 0x6C, 0x65, 0x6E, 0x67, 0x65, 0x20, 0x6D, 0x65, 0x74, 0x68, 0x6F, 0x64, 0x2C, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x20, 0x72, 0x61, 0x6E, 0x64, 0x6F, 0x6D, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x61, 0x6C, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x6C, 0x67, 0x6F, 0x72, 0x69, 0x74, 0x68, 0x6D, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x63, 0x72, 0x79, 0x70, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x2E, 0x0A, 0x0A, 0x32, 0x20, 0x2D, 0x20, 0x54, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x20, 0x73, 0x65, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x73, 0x68, 0x6F, 0x75, 0x6C, 0x64, 0x20, 0x62, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6D, 0x64, 0x35, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6F, 0x6E, 0x63, 0x61, 0x74, 0x65, 0x6E, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x2E, 0x0A, 0x0A, 0x46, 0x72, 0x6F, 0x6D, 0x20, 0x61, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x73, 0x65, 0x65, 0x6D, 0x64, 0x20, 0x73, 0x6F, 0x6C, 0x69, 0x64, 0x2C, 0x20, 0x62, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x20, 0x49, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x67, 0x65, 0x74, 0x5F, 0x63, 0x72, 0x79, 0x70, 0x74, 0x5F, 0x69, 0x6E, 0x66, 0x6F, 0x2A, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x63, 0x61, 0x6C, 0x6C, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x67, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6C, 0x6C, 0x65, 0x6E, 0x67, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x27, 0x73, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x74, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x67, 0x65, 0x74, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x69, 0x6E, 0x67, 0x2E, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x6C, 0x75, 0x61, 0x0A, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x67, 0x65, 0x74, 0x5F, 0x63, 0x72, 0x79, 0x70, 0x74, 0x5F, 0x69, 0x6E, 0x66, 0x6F, 0x28, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x6F, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x3D, 0x20, 0x22, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x6E, 0x69, 0x6C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x6C, 0x20, 0x69, 0x6E, 0x20, 0x69, 0x6F, 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x73, 0x28, 0x22, 0x2F, 0x65, 0x74, 0x63, 0x2F, 0x73, 0x68, 0x61, 0x64, 0x6F, 0x77, 0x22, 0x29, 0x20, 0x64, 0x6F, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x61, 0x6C, 0x67, 0x2C, 0x20, 0x73, 0x61, 0x6C, 0x74, 0x20, 0x3D, 0x20, 0x6C, 0x3A, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x28, 0x27, 0x5E, 0x27, 0x20, 0x2E, 0x2E, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x2E, 0x2E, 0x20, 0x27, 0x3A, 0x25, 0x24, 0x28, 0x25, 0x64, 0x29, 0x25, 0x24, 0x28, 0x2E, 0x2B, 0x29, 0x25, 0x24, 0x27, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x61, 0x6C, 0x67, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x74, 0x6F, 0x6E, 0x75, 0x6D, 0x62, 0x65, 0x72, 0x28, 0x61, 0x6C, 0x67, 0x29, 0x2C, 0x20, 0x73, 0x61, 0x6C, 0x74, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x6E, 0x69, 0x6C, 0x0A, 0x65, 0x6E, 0x64, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x44, 0x6F, 0x65, 0x73, 0x20, 0x69, 0x74, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x73, 0x20, 0x77, 0x65, 0x69, 0x72, 0x64, 0x20, 0x65, 0x68, 0x3F, 0x3F, 0x20, 0x42, 0x61, 0x73, 0x69, 0x63, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x6C, 0x6F, 0x6F, 0x70, 0x20, 0x65, 0x61, 0x63, 0x68, 0x20, 0x6C, 0x69, 0x6E, 0x65, 0x20, 0x69, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x20, 0x2A, 0x2A, 0x2F, 0x65, 0x74, 0x63, 0x2F, 0x73, 0x68, 0x61, 0x64, 0x6F, 0x77, 0x2A, 0x2A, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x69, 0x74, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6E, 0x73, 0x74, 0x20, 0x6F, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x52, 0x65, 0x67, 0x45, 0x58, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x65, 0x76, 0x65, 0x6E, 0x74, 0x75, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x20, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6E, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x3A, 0x24, 0x61, 0x6C, 0x67, 0x6F, 0x72, 0x69, 0x74, 0x68, 0x6D, 0x24, 0x68, 0x61, 0x73, 0x68, 0x24, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x57, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x77, 0x72, 0x6F, 0x6E, 0x67, 0x20, 0x61, 0x62, 0x6F, 0x75, 0x74, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x69, 0x6E, 0x20, 0x6D, 0x79, 0x20, 0x6F, 0x70, 0x69, 0x6E, 0x69, 0x6F, 0x6E, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x6F, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x73, 0x61, 0x6E, 0x69, 0x74, 0x69, 0x7A, 0x65, 0x64, 0x2C, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x69, 0x74, 0x27, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x52, 0x65, 0x67, 0x45, 0x58, 0x2C, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6D, 0x65, 0x61, 0x6E, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x66, 0x20, 0x77, 0x65, 0x20, 0x66, 0x69, 0x6E, 0x64, 0x20, 0x61, 0x20, 0x77, 0x61, 0x79, 0x20, 0x74, 0x6F, 0x20, 0x6A, 0x75, 0x73, 0x74, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6F, 0x75, 0x74, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6E, 0x67, 0x2C, 0x20, 0x77, 0x65, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x6D, 0x61, 0x6B, 0x65, 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x77, 0x68, 0x61, 0x74, 0x65, 0x76, 0x65, 0x72, 0x20, 0x77, 0x65, 0x20, 0x77, 0x61, 0x6E, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x69, 0x6E, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6C, 0x20, 0x2A, 0x61, 0x6C, 0x67, 0x2A, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x2A, 0x73, 0x61, 0x6C, 0x74, 0x2A, 0x2E, 0x0A, 0x41, 0x73, 0x20, 0x69, 0x74, 0x20, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x6F, 0x75, 0x74, 0x20, 0x6C, 0x61, 0x74, 0x65, 0x72, 0x2C, 0x20, 0x4C, 0x75, 0x61, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x6C, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x70, 0x6F, 0x73, 0x69, 0x78, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x6C, 0x69, 0x61, 0x6E, 0x74, 0x2C, 0x20, 0x73, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x27, 0x73, 0x20, 0x6E, 0x6F, 0x20, 0x77, 0x61, 0x79, 0x20, 0x74, 0x6F, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x72, 0x75, 0x70, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x6F, 0x72, 0x20, 0x6D, 0x61, 0x6B, 0x65, 0x20, 0x69, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6C, 0x2C, 0x20, 0x6E, 0x6F, 0x72, 0x20, 0x67, 0x72, 0x65, 0x65, 0x64, 0x79, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x69, 0x73, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, 0x74, 0x65, 0x64, 0x20, 0xF0, 0x9F, 0x98, 0x94, 0x2E, 0x0A, 0x0A, 0x4C, 0x75, 0x63, 0x6B, 0x6C, 0x79, 0x2C, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x75, 0x73, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x73, 0x6E, 0x27, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6F, 0x6E, 0x6C, 0x79, 0x20, 0x70, 0x6C, 0x61, 0x63, 0x65, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x69, 0x6E, 0x6A, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x77, 0x61, 0x73, 0x20, 0x70, 0x6F, 0x73, 0x73, 0x69, 0x62, 0x6C, 0x65, 0x2C, 0x20, 0x6C, 0x65, 0x74, 0x27, 0x73, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x20, 0x61, 0x74, 0x20, 0x68, 0x6F, 0x77, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x20, 0x73, 0x74, 0x65, 0x70, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6E, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x77, 0x6F, 0x72, 0x6B, 0x73, 0x2E, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x6C, 0x75, 0x61, 0x0A, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x20, 0x3D, 0x20, 0x7B, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x72, 0x65, 0x71, 0x2C, 0x20, 0x6D, 0x73, 0x67, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x3D, 0x20, 0x6D, 0x73, 0x67, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x20, 0x6D, 0x73, 0x67, 0x2E, 0x68, 0x61, 0x73, 0x68, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6C, 0x65, 0x61, 0x6E, 0x5F, 0x67, 0x6C, 0x5F, 0x74, 0x6F, 0x6B, 0x65, 0x6E, 0x28, 0x29, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2E, 0x2E, 0x2E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x62, 0x6F, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x68, 0x65, 0x72, 0x65, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2E, 0x2E, 0x2E, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x73, 0x69, 0x64, 0x20, 0x3D, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x5F, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x28, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x20, 0x68, 0x61, 0x73, 0x68, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x73, 0x69, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x66, 0x61, 0x69, 0x6C, 0x20, 0x3D, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x66, 0x61, 0x69, 0x6C, 0x20, 0x2B, 0x20, 0x31, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x66, 0x61, 0x69, 0x6C, 0x20, 0x3D, 0x3D, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x66, 0x61, 0x69, 0x6C, 0x5F, 0x6D, 0x61, 0x78, 0x5F, 0x63, 0x6E, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x66, 0x61, 0x69, 0x6C, 0x20, 0x3D, 0x20, 0x30, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x77, 0x61, 0x69, 0x74, 0x20, 0x3D, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x5F, 0x6E, 0x6F, 0x77, 0x28, 0x29, 0x20, 0x2B, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x66, 0x61, 0x69, 0x6C, 0x5F, 0x77, 0x61, 0x69, 0x74, 0x5F, 0x74, 0x69, 0x6D, 0x65, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x62, 0x75, 0x73, 0x5F, 0x63, 0x6F, 0x6E, 0x6E, 0x3A, 0x72, 0x65, 0x70, 0x6C, 0x79, 0x28, 0x72, 0x65, 0x71, 0x2C, 0x20, 0x7B, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x3D, 0x20, 0x72, 0x70, 0x63, 0x2E, 0x45, 0x52, 0x52, 0x4F, 0x52, 0x5F, 0x43, 0x4F, 0x44, 0x45, 0x5F, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x20, 0x7D, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x66, 0x61, 0x69, 0x6C, 0x20, 0x3D, 0x20, 0x30, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x74, 0x69, 0x6C, 0x73, 0x2E, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5F, 0x6E, 0x67, 0x78, 0x5F, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x28, 0x22, 0x2F, 0x74, 0x6D, 0x70, 0x2F, 0x67, 0x6C, 0x5F, 0x74, 0x6F, 0x6B, 0x65, 0x6E, 0x5F, 0x22, 0x20, 0x2E, 0x2E, 0x20, 0x73, 0x69, 0x64, 0x29, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2E, 0x2E, 0x2E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x69, 0x6C, 0x6C, 0x20, 0x6D, 0x6F, 0x72, 0x65, 0x20, 0x62, 0x6F, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x68, 0x65, 0x72, 0x65, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2E, 0x2E, 0x2E, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x2C, 0x20, 0x7B, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x75, 0x62, 0x75, 0x73, 0x2E, 0x53, 0x54, 0x52, 0x49, 0x4E, 0x47, 0x2C, 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x3D, 0x20, 0x75, 0x62, 0x75, 0x73, 0x2E, 0x53, 0x54, 0x52, 0x49, 0x4E, 0x47, 0x20, 0x7D, 0x0A, 0x7D, 0x0A, 0x0A, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x5F, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x28, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x20, 0x68, 0x61, 0x73, 0x68, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x74, 0x65, 0x73, 0x74, 0x28, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x20, 0x68, 0x61, 0x73, 0x68, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x6E, 0x69, 0x6C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x3D, 0x20, 0x64, 0x62, 0x2E, 0x67, 0x65, 0x74, 0x5F, 0x61, 0x63, 0x6C, 0x5F, 0x62, 0x79, 0x5F, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x28, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x29, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x73, 0x69, 0x64, 0x20, 0x3D, 0x20, 0x75, 0x74, 0x69, 0x6C, 0x73, 0x2E, 0x67, 0x65, 0x6E, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5F, 0x69, 0x64, 0x28, 0x33, 0x32, 0x29, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x5B, 0x73, 0x69, 0x64, 0x5D, 0x20, 0x3D, 0x20, 0x7B, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x3D, 0x20, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x2C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x20, 0x3D, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x5F, 0x6E, 0x6F, 0x77, 0x28, 0x29, 0x20, 0x2B, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x5F, 0x74, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x7D, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x5F, 0x63, 0x6E, 0x74, 0x20, 0x3D, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x5F, 0x63, 0x6E, 0x74, 0x20, 0x2B, 0x20, 0x31, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x73, 0x69, 0x64, 0x0A, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x74, 0x65, 0x73, 0x74, 0x28, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x20, 0x68, 0x61, 0x73, 0x68, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x6F, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x3D, 0x20, 0x22, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x66, 0x61, 0x6C, 0x73, 0x65, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x6C, 0x20, 0x69, 0x6E, 0x20, 0x69, 0x6F, 0x2E, 0x6C, 0x69, 0x6E, 0x65, 0x73, 0x28, 0x22, 0x2F, 0x65, 0x74, 0x63, 0x2F, 0x73, 0x68, 0x61, 0x64, 0x6F, 0x77, 0x22, 0x29, 0x20, 0x64, 0x6F, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x70, 0x77, 0x20, 0x3D, 0x20, 0x6C, 0x3A, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x28, 0x27, 0x5E, 0x27, 0x20, 0x2E, 0x2E, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x2E, 0x2E, 0x20, 0x27, 0x3A, 0x28, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x29, 0x27, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x70, 0x77, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x69, 0x6E, 0x20, 0x70, 0x61, 0x69, 0x72, 0x73, 0x28, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x73, 0x29, 0x20, 0x64, 0x6F, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x75, 0x74, 0x69, 0x6C, 0x73, 0x2E, 0x6D, 0x64, 0x35, 0x28, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x2E, 0x63, 0x6F, 0x6E, 0x63, 0x61, 0x74, 0x28, 0x7B, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x20, 0x70, 0x77, 0x2C, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x7D, 0x2C, 0x20, 0x22, 0x3A, 0x22, 0x29, 0x29, 0x20, 0x3D, 0x3D, 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x73, 0x5B, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x5D, 0x20, 0x3D, 0x20, 0x6E, 0x69, 0x6C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x5F, 0x63, 0x6E, 0x74, 0x20, 0x3D, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x5F, 0x63, 0x6E, 0x74, 0x20, 0x2D, 0x20, 0x31, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x66, 0x61, 0x6C, 0x73, 0x65, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x66, 0x61, 0x6C, 0x73, 0x65, 0x0A, 0x65, 0x6E, 0x64, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x54, 0x68, 0x69, 0x73, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x52, 0x65, 0x67, 0x45, 0x78, 0x20, 0x69, 0x6E, 0x6A, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6E, 0x20, 0x69, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x5F, 0x74, 0x65, 0x73, 0x74, 0x2A, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x69, 0x74, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x65, 0x64, 0x20, 0x74, 0x72, 0x79, 0x20, 0x74, 0x6F, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x63, 0x6F, 0x6C, 0x6F, 0x6E, 0x20, 0x28, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x29, 0x20, 0x74, 0x69, 0x6C, 0x6C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6E, 0x65, 0x78, 0x74, 0x20, 0x63, 0x6F, 0x6C, 0x6F, 0x6E, 0x2E, 0x0A, 0x54, 0x68, 0x61, 0x6E, 0x6B, 0x73, 0x66, 0x75, 0x6C, 0x6C, 0x79, 0x2C, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x73, 0x74, 0x72, 0x6F, 0x6E, 0x67, 0x20, 0x65, 0x6E, 0x6F, 0x75, 0x67, 0x68, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x77, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x6C, 0x75, 0x63, 0x6B, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x75, 0x61, 0x6C, 0x20, 0x6C, 0x69, 0x6E, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x2A, 0x2A, 0x2F, 0x65, 0x74, 0x63, 0x2F, 0x73, 0x68, 0x61, 0x64, 0x6F, 0x77, 0x2A, 0x2A, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x73, 0x20, 0x6C, 0x69, 0x6B, 0x65, 0x20, 0x74, 0x68, 0x69, 0x73, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x72, 0x6F, 0x6F, 0x74, 0x3A, 0x24, 0x31, 0x24, 0x6A, 0x39, 0x54, 0x32, 0x6A, 0x44, 0x24, 0x35, 0x4B, 0x47, 0x49, 0x53, 0x2F, 0x32, 0x55, 0x67, 0x2E, 0x34, 0x37, 0x47, 0x6A, 0x57, 0x30, 0x6A, 0x48, 0x4F, 0x49, 0x42, 0x2F, 0x32, 0x58, 0x77, 0x59, 0x55, 0x61, 0x66, 0x59, 0x50, 0x68, 0x2F, 0x58, 0x3A, 0x31, 0x39, 0x34, 0x34, 0x37, 0x3A, 0x30, 0x3A, 0x39, 0x39, 0x39, 0x39, 0x39, 0x3A, 0x37, 0x3A, 0x3A, 0x3A, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x53, 0x69, 0x6E, 0x63, 0x65, 0x20, 0x77, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x6D, 0x75, 0x6C, 0x74, 0x69, 0x70, 0x6C, 0x65, 0x20, 0x63, 0x6F, 0x6C, 0x6F, 0x6E, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x6F, 0x75, 0x6C, 0x64, 0x20, 0x63, 0x61, 0x74, 0x63, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x49, 0x20, 0x74, 0x72, 0x69, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x6D, 0x61, 0x6B, 0x65, 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x74, 0x75, 0x6E, 0x72, 0x20, 0x61, 0x20, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6E, 0x74, 0x20, 0x63, 0x6F, 0x6C, 0x75, 0x6E, 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x68, 0x61, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6F, 0x6E, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x69, 0x74, 0x20, 0x77, 0x6F, 0x72, 0x6B, 0x65, 0x64, 0x21, 0x0A, 0x0A, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x72, 0x6F, 0x6F, 0x74, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x20, 0x0A, 0x0A, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x62, 0x65, 0x63, 0x6F, 0x6D, 0x65, 0x0A, 0x0A, 0x72, 0x6F, 0x6F, 0x74, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x3A, 0x28, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x29, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x49, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x66, 0x6F, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x74, 0x68, 0x75, 0x73, 0x20, 0x6D, 0x61, 0x6B, 0x65, 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x69, 0x64, 0x20, 0x28, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x6C, 0x77, 0x61, 0x79, 0x73, 0x20, 0x30, 0x29, 0x20, 0x69, 0x6E, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x20, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6D, 0x65, 0x61, 0x6E, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x65, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x61, 0x6C, 0x77, 0x61, 0x79, 0x73, 0x20, 0x77, 0x69, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6E, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x63, 0x68, 0x61, 0x6C, 0x6C, 0x65, 0x6E, 0x67, 0x65, 0x20, 0x62, 0x79, 0x20, 0x73, 0x65, 0x6E, 0x64, 0x69, 0x6E, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x20, 0x68, 0x61, 0x73, 0x68, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x6D, 0x64, 0x35, 0x28, 0x3C, 0x75, 0x73, 0x65, 0x72, 0x3E, 0x3A, 0x30, 0x3A, 0x3C, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x3E, 0x29, 0x20, 0x2D, 0x3E, 0x20, 0x72, 0x6F, 0x6F, 0x74, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x3A, 0x30, 0x3A, 0x3C, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x3E, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x4C, 0x65, 0x74, 0x27, 0x73, 0x20, 0x72, 0x65, 0x63, 0x61, 0x70, 0x2C, 0x20, 0x69, 0x6E, 0x20, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x61, 0x6B, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x77, 0x65, 0x20, 0x75, 0x73, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6F, 0x72, 0x69, 0x67, 0x69, 0x6E, 0x61, 0x6C, 0x20, 0x2A, 0x72, 0x6F, 0x6F, 0x74, 0x2A, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x63, 0x72, 0x61, 0x66, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x63, 0x6F, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6D, 0x6F, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x66, 0x6F, 0x72, 0x77, 0x61, 0x72, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x72, 0x61, 0x66, 0x74, 0x65, 0x64, 0x20, 0x68, 0x61, 0x73, 0x68, 0x2E, 0x0A, 0x0A, 0x55, 0x70, 0x6F, 0x6E, 0x20, 0x73, 0x65, 0x6E, 0x64, 0x69, 0x6E, 0x67, 0x20, 0x62, 0x6F, 0x74, 0x68, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x2C, 0x20, 0x77, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x77, 0x65, 0x6C, 0x63, 0x6F, 0x6D, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6F, 0x6E, 0x73, 0x65, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x6A, 0x73, 0x6F, 0x6E, 0x0A, 0x7B, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x22, 0x69, 0x64, 0x22, 0x3A, 0x37, 0x2C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6A, 0x73, 0x6F, 0x6E, 0x72, 0x70, 0x63, 0x22, 0x3A, 0x22, 0x32, 0x2E, 0x30, 0x22, 0x2C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x22, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x22, 0x3A, 0x7B, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x22, 0x3A, 0x22, 0x72, 0x6F, 0x6F, 0x74, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x20, 0x22, 0x2C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x73, 0x69, 0x64, 0x22, 0x3A, 0x22, 0x4E, 0x73, 0x50, 0x48, 0x64, 0x6B, 0x58, 0x74, 0x45, 0x4E, 0x6F, 0x61, 0x6F, 0x74, 0x78, 0x56, 0x5A, 0x57, 0x4C, 0x71, 0x4A, 0x6F, 0x72, 0x55, 0x35, 0x32, 0x4F, 0x37, 0x4A, 0x30, 0x4F, 0x49, 0x22, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x7D, 0x0A, 0x7D, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x23, 0x20, 0x41, 0x62, 0x61, 0x6E, 0x64, 0x6F, 0x6E, 0x20, 0x68, 0x6F, 0x70, 0x65, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x79, 0x65, 0x20, 0x77, 0x68, 0x6F, 0x20, 0x65, 0x6E, 0x74, 0x65, 0x72, 0x20, 0x68, 0x65, 0x72, 0x65, 0x0A, 0x21, 0x5B, 0x48, 0x6F, 0x70, 0x65, 0x6C, 0x65, 0x73, 0x73, 0x20, 0x70, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x65, 0x72, 0x5D, 0x28, 0x2F, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2F, 0x68, 0x6F, 0x70, 0x65, 0x6C, 0x65, 0x73, 0x73, 0x2D, 0x70, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x65, 0x72, 0x2E, 0x6A, 0x70, 0x67, 0x29, 0x0A, 0x0A, 0x4E, 0x6F, 0x74, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x73, 0x68, 0x69, 0x6E, 0x65, 0x20, 0x69, 0x73, 0x20, 0x67, 0x6F, 0x6C, 0x64, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x61, 0x73, 0x65, 0x2E, 0x2E, 0x2E, 0x20, 0x49, 0x6E, 0x20, 0x66, 0x61, 0x63, 0x74, 0x20, 0x75, 0x70, 0x6F, 0x6E, 0x20, 0x6C, 0x6F, 0x67, 0x67, 0x69, 0x6E, 0x67, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6F, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x69, 0x64, 0x2C, 0x20, 0x77, 0x65, 0x20, 0x67, 0x65, 0x74, 0x20, 0x61, 0x20, 0x62, 0x75, 0x6E, 0x63, 0x68, 0x20, 0x6F, 0x66, 0x20, 0x2A, 0x2A, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x20, 0x44, 0x45, 0x4E, 0x49, 0x45, 0x44, 0x2A, 0x2A, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x73, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x77, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x61, 0x6B, 0x65, 0x6E, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x20, 0x70, 0x61, 0x67, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6E, 0x2E, 0x0A, 0x0A, 0x49, 0x20, 0x61, 0x73, 0x6B, 0x65, 0x64, 0x20, 0x6D, 0x79, 0x73, 0x65, 0x6C, 0x66, 0x20, 0x77, 0x74, 0x68, 0x20, 0x77, 0x61, 0x73, 0x20, 0x67, 0x6F, 0x69, 0x6E, 0x67, 0x20, 0x6F, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x75, 0x70, 0x6F, 0x6E, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x6E, 0x61, 0x6C, 0x79, 0x73, 0x69, 0x73, 0x20, 0x49, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x73, 0x6D, 0x61, 0x6C, 0x6C, 0x20, 0x70, 0x69, 0x65, 0x63, 0x65, 0x20, 0x6F, 0x66, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6E, 0x74, 0x69, 0x6E, 0x67, 0x20, 0x6D, 0x65, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6E, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6C, 0x61, 0x67, 0x2C, 0x20, 0x65, 0x68, 0x6D, 0x6D, 0x6D, 0x20, 0x6F, 0x70, 0x73, 0x20, 0x49, 0x20, 0x6D, 0x65, 0x61, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x6F, 0x6F, 0x74, 0x20, 0x28, 0x74, 0x68, 0x61, 0x74, 0x27, 0x73, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x73, 0x20, 0x6C, 0x69, 0x6B, 0x65, 0x20, 0x61, 0x20, 0x43, 0x54, 0x46, 0x29, 0x2E, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x6C, 0x75, 0x61, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x3D, 0x20, 0x64, 0x62, 0x2E, 0x67, 0x65, 0x74, 0x5F, 0x61, 0x63, 0x6C, 0x5F, 0x62, 0x79, 0x5F, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x28, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x29, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x73, 0x69, 0x64, 0x20, 0x3D, 0x20, 0x75, 0x74, 0x69, 0x6C, 0x73, 0x2E, 0x67, 0x65, 0x6E, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5F, 0x69, 0x64, 0x28, 0x33, 0x32, 0x29, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x73, 0x5B, 0x73, 0x69, 0x64, 0x5D, 0x20, 0x3D, 0x20, 0x7B, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x2C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x3D, 0x20, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x2C, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x20, 0x3D, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x5F, 0x6E, 0x6F, 0x77, 0x28, 0x29, 0x20, 0x2B, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x5F, 0x74, 0x69, 0x6D, 0x65, 0x6F, 0x75, 0x74, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x7D, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x53, 0x65, 0x65, 0x6D, 0x73, 0x20, 0x6C, 0x69, 0x6B, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x68, 0x65, 0x20, 0x69, 0x73, 0x73, 0x75, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x2A, 0x20, 0x77, 0x61, 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x73, 0x69, 0x6E, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x77, 0x65, 0x20, 0x70, 0x72, 0x6F, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x77, 0x61, 0x73, 0x6E, 0x27, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x2A, 0x72, 0x6F, 0x6F, 0x74, 0x2A, 0x2A, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x62, 0x75, 0x74, 0x20, 0x72, 0x61, 0x74, 0x68, 0x65, 0x72, 0x20, 0x61, 0x20, 0x6D, 0x69, 0x78, 0x20, 0x6F, 0x66, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x2C, 0x20, 0x6C, 0x75, 0x63, 0x6B, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x6D, 0x61, 0x67, 0x69, 0x63, 0x2E, 0x0A, 0x0A, 0x55, 0x70, 0x6F, 0x6E, 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6F, 0x73, 0x69, 0x62, 0x6C, 0x65, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x43, 0x4C, 0x2C, 0x20, 0x49, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x69, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x20, 0x2A, 0x2A, 0x2F, 0x75, 0x73, 0x72, 0x2F, 0x6C, 0x69, 0x62, 0x2F, 0x6C, 0x75, 0x61, 0x2F, 0x6F, 0x75, 0x69, 0x2F, 0x64, 0x62, 0x2E, 0x6C, 0x75, 0x61, 0x2A, 0x2A, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x6C, 0x75, 0x61, 0x0A, 0x4D, 0x2E, 0x67, 0x65, 0x74, 0x5F, 0x61, 0x63, 0x6C, 0x5F, 0x62, 0x79, 0x5F, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x66, 0x75, 0x6E, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x28, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x3D, 0x20, 0x22, 0x72, 0x6F, 0x6F, 0x74, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6E, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x22, 0x72, 0x6F, 0x6F, 0x74, 0x22, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x64, 0x62, 0x20, 0x3D, 0x20, 0x73, 0x71, 0x6C, 0x69, 0x74, 0x65, 0x33, 0x2E, 0x6F, 0x70, 0x65, 0x6E, 0x28, 0x44, 0x42, 0x29, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x73, 0x71, 0x6C, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x2E, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x28, 0x22, 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, 0x20, 0x61, 0x63, 0x6C, 0x20, 0x46, 0x52, 0x4F, 0x4D, 0x20, 0x61, 0x63, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x20, 0x57, 0x48, 0x45, 0x52, 0x45, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x25, 0x73, 0x27, 0x22, 0x2C, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x29, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x20, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x3D, 0x20, 0x22, 0x22, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x61, 0x20, 0x69, 0x6E, 0x20, 0x64, 0x62, 0x3A, 0x72, 0x6F, 0x77, 0x73, 0x28, 0x73, 0x71, 0x6C, 0x29, 0x20, 0x64, 0x6F, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x3D, 0x20, 0x61, 0x5B, 0x31, 0x5D, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6E, 0x64, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x64, 0x62, 0x3A, 0x63, 0x6C, 0x6F, 0x73, 0x65, 0x28, 0x29, 0x0A, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x61, 0x63, 0x6C, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x0A, 0x65, 0x6E, 0x64, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x57, 0x61, 0x69, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x3F, 0x3F, 0x20, 0x54, 0x68, 0x65, 0x20, 0x41, 0x43, 0x4C, 0x20, 0x69, 0x73, 0x20, 0x6A, 0x75, 0x73, 0x74, 0x20, 0x61, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x69, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x20, 0x61, 0x20, 0x73, 0x71, 0x6C, 0x69, 0x74, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x2C, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x6D, 0x79, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6E, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x77, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x69, 0x6E, 0x79, 0x20, 0x60, 0x25, 0x73, 0x60, 0x20, 0x69, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x28, 0x79, 0x65, 0x70, 0x20, 0x74, 0x68, 0x61, 0x74, 0x27, 0x73, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x79, 0x6F, 0x75, 0x20, 0x74, 0x68, 0x69, 0x6E, 0x6B, 0x29, 0x2C, 0x20, 0x69, 0x6E, 0x20, 0x66, 0x61, 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x69, 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x73, 0x61, 0x6E, 0x69, 0x74, 0x69, 0x7A, 0x65, 0x64, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x69, 0x74, 0x27, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x70, 0x61, 0x72, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2C, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x6D, 0x65, 0x61, 0x6E, 0x73, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x77, 0x65, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x69, 0x6E, 0x6A, 0x65, 0x63, 0x74, 0x20, 0x53, 0x51, 0x4C, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x69, 0x6E, 0x73, 0x69, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x6D, 0x61, 0x6B, 0x65, 0x20, 0x69, 0x74, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x77, 0x68, 0x61, 0x74, 0x65, 0x76, 0x65, 0x72, 0x20, 0x77, 0x65, 0x20, 0x77, 0x61, 0x6E, 0x74, 0x2E, 0x0A, 0x0A, 0x42, 0x75, 0x74, 0x20, 0x77, 0x61, 0x69, 0x74, 0x20, 0x74, 0x68, 0x61, 0x74, 0x27, 0x73, 0x20, 0x6D, 0x65, 0x61, 0x6E, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6F, 0x75, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x73, 0x68, 0x6F, 0x75, 0x6C, 0x64, 0x20, 0x62, 0x65, 0x20, 0x62, 0x6F, 0x74, 0x68, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x20, 0x53, 0x51, 0x4C, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x27, 0x73, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x70, 0x6F, 0x73, 0x73, 0x69, 0x62, 0x6C, 0x65, 0x2C, 0x20, 0x6F, 0x72, 0x20, 0x69, 0x73, 0x20, 0x69, 0x74, 0x3F, 0x0A, 0x0A, 0x54, 0x68, 0x65, 0x20, 0x74, 0x72, 0x69, 0x63, 0x6B, 0x20, 0x49, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x6A, 0x75, 0x73, 0x74, 0x20, 0x61, 0x62, 0x75, 0x73, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6E, 0x67, 0x6C, 0x65, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x20, 0x74, 0x6F, 0x20, 0x69, 0x6E, 0x6A, 0x65, 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x51, 0x4C, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x2C, 0x20, 0x69, 0x6E, 0x20, 0x66, 0x61, 0x63, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x20, 0x72, 0x65, 0x67, 0x65, 0x78, 0x20, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6C, 0x69, 0x64, 0x20, 0x62, 0x6F, 0x74, 0x68, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x4C, 0x75, 0x61, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x53, 0x51, 0x4C, 0x20, 0x69, 0x6E, 0x6A, 0x65, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x72, 0x6F, 0x6F, 0x5B, 0x5E, 0x27, 0x75, 0x6E, 0x69, 0x6F, 0x6E, 0x20, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x54, 0x20, 0x63, 0x68, 0x61, 0x72, 0x28, 0x31, 0x31, 0x34, 0x2C, 0x31, 0x31, 0x31, 0x2C, 0x31, 0x31, 0x31, 0x2C, 0x31, 0x31, 0x36, 0x29, 0x2D, 0x2D, 0x5D, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x48, 0x65, 0x72, 0x65, 0x20, 0x69, 0x20, 0x72, 0x65, 0x6D, 0x6F, 0x76, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x2A, 0x74, 0x2A, 0x2A, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x2A, 0x72, 0x6F, 0x6F, 0x74, 0x2A, 0x2A, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6C, 0x61, 0x63, 0x65, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x73, 0x69, 0x6E, 0x67, 0x6C, 0x65, 0x20, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x67, 0x72, 0x6F, 0x75, 0x70, 0x2C, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x6D, 0x61, 0x74, 0x63, 0x68, 0x20, 0x65, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x20, 0x6F, 0x75, 0x72, 0x20, 0x53, 0x51, 0x4C, 0x20, 0x63, 0x6F, 0x64, 0x65, 0x20, 0x28, 0x6E, 0x6F, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6D, 0x65, 0x6E, 0x74, 0x29, 0x2C, 0x20, 0x63, 0x6C, 0x65, 0x76, 0x65, 0x72, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x21, 0x3F, 0x20, 0xF0, 0x9F, 0x98, 0x80, 0x0A, 0x0A, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x6D, 0x61, 0x6B, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x73, 0x20, 0x61, 0x73, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x73, 0x71, 0x6C, 0x0A, 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, 0x20, 0x61, 0x63, 0x6C, 0x20, 0x46, 0x52, 0x4F, 0x4D, 0x20, 0x61, 0x63, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x20, 0x57, 0x48, 0x45, 0x52, 0x45, 0x20, 0x75, 0x73, 0x65, 0x72, 0x6E, 0x61, 0x6D, 0x65, 0x20, 0x3D, 0x20, 0x27, 0x72, 0x6F, 0x6F, 0x5B, 0x5E, 0x27, 0x75, 0x6E, 0x69, 0x6F, 0x6E, 0x20, 0x73, 0x65, 0x6C, 0x65, 0x63, 0x54, 0x20, 0x63, 0x68, 0x61, 0x72, 0x28, 0x31, 0x31, 0x34, 0x2C, 0x31, 0x31, 0x31, 0x2C, 0x31, 0x31, 0x31, 0x2C, 0x31, 0x31, 0x36, 0x29, 0x2D, 0x2D, 0x5D, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x3A, 0x5B, 0x5E, 0x3A, 0x5D, 0x2B, 0x27, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x75, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x62, 0x65, 0x6C, 0x6F, 0x76, 0x65, 0x64, 0x20, 0x2A, 0x2A, 0x72, 0x6F, 0x6F, 0x74, 0x2A, 0x2A, 0x20, 0x41, 0x43, 0x4C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x77, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x66, 0x69, 0x6E, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x20, 0x61, 0x73, 0x20, 0x72, 0x6F, 0x6F, 0x74, 0x21, 0x0A, 0x0A, 0x23, 0x20, 0x43, 0x6F, 0x6D, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x72, 0x6B, 0x20, 0x73, 0x69, 0x64, 0x65, 0x2C, 0x20, 0x77, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x63, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x73, 0x0A, 0x21, 0x5B, 0x43, 0x6F, 0x6D, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x72, 0x6B, 0x20, 0x73, 0x69, 0x64, 0x65, 0x2C, 0x20, 0x77, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x63, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x73, 0x5D, 0x28, 0x2F, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2F, 0x64, 0x61, 0x72, 0x6B, 0x2D, 0x73, 0x69, 0x64, 0x65, 0x2D, 0x63, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x2E, 0x6A, 0x70, 0x67, 0x29, 0x0A, 0x0A, 0x59, 0x65, 0x73, 0x20, 0x77, 0x65, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x63, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x73, 0x20, 0x69, 0x6E, 0x64, 0x65, 0x65, 0x64, 0x2C, 0x20, 0x62, 0x75, 0x74, 0x20, 0x77, 0x68, 0x61, 0x74, 0x20, 0x6E, 0x6F, 0x77, 0x3F, 0x20, 0x53, 0x68, 0x6F, 0x75, 0x6C, 0x64, 0x20, 0x49, 0x20, 0x73, 0x74, 0x6F, 0x70, 0x20, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x72, 0x65, 0x70, 0x6F, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x3F, 0x20, 0x6D, 0x61, 0x79, 0x62, 0x65, 0x2C, 0x20, 0x62, 0x75, 0x74, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x2C, 0x20, 0x49, 0x20, 0x77, 0x61, 0x73, 0x20, 0x62, 0x6F, 0x72, 0x65, 0x64, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x49, 0x20, 0x77, 0x61, 0x6E, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x6D, 0x6F, 0x72, 0x65, 0x20, 0x66, 0x75, 0x6E, 0x2C, 0x20, 0x73, 0x6F, 0x20, 0x49, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x74, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x20, 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x6C, 0x6F, 0x6F, 0x6B, 0x69, 0x6E, 0x67, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x6E, 0x65, 0x61, 0x74, 0x20, 0x41, 0x50, 0x49, 0x20, 0x73, 0x74, 0x75, 0x66, 0x66, 0x20, 0x74, 0x6F, 0x20, 0x63, 0x61, 0x6C, 0x6C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x70, 0x6C, 0x61, 0x79, 0x20, 0x77, 0x69, 0x74, 0x68, 0x2E, 0x0A, 0x0A, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x20, 0x64, 0x65, 0x76, 0x65, 0x6C, 0x6F, 0x70, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x72, 0x65, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x6E, 0x69, 0x63, 0x65, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x70, 0x72, 0x6F, 0x76, 0x69, 0x64, 0x65, 0x20, 0x61, 0x20, 0x6E, 0x69, 0x63, 0x65, 0x20, 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x74, 0x68, 0x65, 0x69, 0x72, 0x20, 0x41, 0x50, 0x49, 0x2C, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x62, 0x65, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x5B, 0x68, 0x65, 0x72, 0x65, 0x5D, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x64, 0x65, 0x76, 0x2E, 0x67, 0x6C, 0x2D, 0x69, 0x6E, 0x65, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x72, 0x6F, 0x75, 0x74, 0x65, 0x72, 0x2D, 0x34, 0x2E, 0x78, 0x2D, 0x61, 0x70, 0x69, 0x2F, 0x29, 0x2E, 0x0A, 0x0A, 0x4C, 0x6F, 0x6F, 0x6B, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x72, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x49, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x69, 0x6E, 0x67, 0x20, 0x41, 0x50, 0x49, 0x2C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x2A, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2F, 0x61, 0x64, 0x64, 0x5F, 0x75, 0x73, 0x65, 0x72, 0x2A, 0x2A, 0x20, 0x6C, 0x69, 0x6B, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x0A, 0x0A, 0x3E, 0x20, 0x3C, 0x69, 0x6D, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3D, 0x22, 0x2F, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2F, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2D, 0x61, 0x64, 0x64, 0x2D, 0x75, 0x73, 0x65, 0x72, 0x2E, 0x6A, 0x70, 0x67, 0x22, 0x20, 0x61, 0x6C, 0x74, 0x3D, 0x22, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x20, 0x41, 0x50, 0x49, 0x22, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x7A, 0x6F, 0x6F, 0x6D, 0x61, 0x62, 0x6C, 0x65, 0x22, 0x2F, 0x3E, 0x3C, 0x62, 0x72, 0x3E, 0x0A, 0x0A, 0x41, 0x73, 0x20, 0x77, 0x65, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x64, 0x65, 0x64, 0x75, 0x63, 0x74, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x41, 0x50, 0x49, 0x2C, 0x20, 0x77, 0x65, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x61, 0x64, 0x64, 0x20, 0x61, 0x20, 0x6E, 0x65, 0x77, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D, 0x21, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x73, 0x65, 0x65, 0x6D, 0x73, 0x20, 0x72, 0x65, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x61, 0x20, 0x6E, 0x65, 0x61, 0x74, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2C, 0x20, 0x49, 0x20, 0x74, 0x65, 0x73, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x64, 0x64, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x20, 0x6E, 0x65, 0x77, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x49, 0x20, 0x74, 0x72, 0x69, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x20, 0x76, 0x69, 0x61, 0x20, 0x53, 0x53, 0x48, 0x20, 0x62, 0x75, 0x74, 0x20, 0x67, 0x6F, 0x74, 0x20, 0x6E, 0x6F, 0x20, 0x6C, 0x75, 0x63, 0x6B, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x20, 0xF0, 0x9F, 0x98, 0x94, 0x2E, 0x0A, 0x0A, 0x53, 0x6F, 0x20, 0x49, 0x20, 0x63, 0x6F, 0x6D, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6B, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x73, 0x6F, 0x6D, 0x65, 0x74, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x63, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x6D, 0x79, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6E, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x69, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x2A, 0x2A, 0x72, 0x74, 0x74, 0x79, 0x2F, 0x72, 0x75, 0x6E, 0x2A, 0x2A, 0x20, 0x41, 0x50, 0x49, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x20, 0x61, 0x72, 0x67, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x73, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x53, 0x49, 0x44, 0x3A, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6F, 0x6B, 0x65, 0x6E, 0x20, 0x6F, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6F, 0x6E, 0x0A, 0x74, 0x6F, 0x6B, 0x65, 0x6E, 0x3A, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x6F, 0x6B, 0x65, 0x6E, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x64, 0x75, 0x72, 0x69, 0x6E, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6E, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x72, 0x65, 0x6D, 0x6F, 0x74, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x0A, 0x68, 0x6F, 0x73, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x68, 0x6F, 0x73, 0x74, 0x0A, 0x70, 0x6F, 0x72, 0x74, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x70, 0x6F, 0x72, 0x74, 0x0A, 0x73, 0x73, 0x6C, 0x3A, 0x20, 0x77, 0x68, 0x65, 0x74, 0x68, 0x65, 0x72, 0x20, 0x74, 0x6F, 0x20, 0x65, 0x6E, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x73, 0x73, 0x6C, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x41, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x20, 0x62, 0x69, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x67, 0x6F, 0x6F, 0x67, 0x6C, 0x69, 0x6E, 0x67, 0x20, 0x49, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x5B, 0x2A, 0x2A, 0x72, 0x74, 0x74, 0x79, 0x2A, 0x2A, 0x5D, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x7A, 0x68, 0x61, 0x6F, 0x6A, 0x68, 0x33, 0x32, 0x39, 0x2F, 0x72, 0x74, 0x74, 0x79, 0x29, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x70, 0x75, 0x62, 0x6C, 0x69, 0x63, 0x20, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x20, 0x70, 0x72, 0x6F, 0x6A, 0x65, 0x63, 0x74, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x63, 0x68, 0x69, 0x6E, 0x65, 0x73, 0x65, 0x20, 0x67, 0x75, 0x79, 0x2C, 0x20, 0x69, 0x74, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6D, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x6F, 0x6C, 0x6C, 0x6F, 0x77, 0x69, 0x6E, 0x67, 0x3A, 0x0A, 0x0A, 0x3E, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x70, 0x72, 0x6F, 0x6A, 0x65, 0x63, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6F, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6F, 0x72, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x2E, 0x0A, 0x0A, 0x4F, 0x68, 0x20, 0x6E, 0x69, 0x63, 0x65, 0x20, 0x73, 0x6F, 0x6D, 0x65, 0x20, 0x6F, 0x66, 0x66, 0x69, 0x63, 0x69, 0x61, 0x6C, 0x20, 0x74, 0x6F, 0x6F, 0x6C, 0x21, 0x20, 0x72, 0x74, 0x74, 0x79, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x2D, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x65, 0x64, 0x20, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2C, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x69, 0x74, 0x27, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x61, 0x20, 0x72, 0x65, 0x6D, 0x6F, 0x74, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6E, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x74, 0x68, 0x65, 0x20, 0x5B, 0x2A, 0x2A, 0x72, 0x74, 0x74, 0x79, 0x73, 0x2A, 0x2A, 0x5D, 0x28, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x7A, 0x68, 0x61, 0x6F, 0x6A, 0x68, 0x33, 0x32, 0x39, 0x2F, 0x72, 0x74, 0x74, 0x79, 0x73, 0x29, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2C, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x6D, 0x6F, 0x74, 0x65, 0x20, 0x74, 0x65, 0x72, 0x6D, 0x69, 0x6E, 0x61, 0x6C, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2E, 0x0A, 0x0A, 0x41, 0x72, 0x6D, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6B, 0x6E, 0x6F, 0x77, 0x6C, 0x65, 0x64, 0x67, 0x65, 0x20, 0x49, 0x20, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x74, 0x6F, 0x20, 0x6D, 0x79, 0x20, 0x56, 0x50, 0x53, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x65, 0x64, 0x20, 0x72, 0x74, 0x74, 0x79, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x3A, 0x0A, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x73, 0x75, 0x64, 0x6F, 0x20, 0x64, 0x6F, 0x63, 0x6B, 0x65, 0x72, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x2D, 0x69, 0x74, 0x20, 0x2D, 0x70, 0x20, 0x35, 0x39, 0x31, 0x32, 0x3A, 0x35, 0x39, 0x31, 0x32, 0x20, 0x2D, 0x70, 0x20, 0x35, 0x39, 0x31, 0x33, 0x3A, 0x35, 0x39, 0x31, 0x33, 0x20, 0x7A, 0x68, 0x61, 0x6F, 0x6A, 0x68, 0x33, 0x32, 0x39, 0x2F, 0x72, 0x74, 0x74, 0x79, 0x73, 0x3A, 0x6C, 0x61, 0x74, 0x65, 0x73, 0x74, 0x0A, 0x60, 0x60, 0x60, 0x0A, 0x0A, 0x54, 0x68, 0x69, 0x73, 0x20, 0x64, 0x6F, 0x63, 0x6B, 0x65, 0x72, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x6C, 0x69, 0x73, 0x74, 0x65, 0x6E, 0x20, 0x6F, 0x6E, 0x20, 0x66, 0x65, 0x77, 0x20, 0x70, 0x6F, 0x72, 0x74, 0x73, 0x20, 0x6C, 0x69, 0x6B, 0x65, 0x20, 0x2A, 0x2A, 0x35, 0x39, 0x31, 0x32, 0x2A, 0x2A, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x2A, 0x2A, 0x35, 0x39, 0x31, 0x33, 0x2A, 0x2A, 0x2C, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6C, 0x79, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x77, 0x65, 0x62, 0x20, 0x69, 0x6E, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2E, 0x0A, 0x0A, 0x57, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x62, 0x69, 0x74, 0x20, 0x6F, 0x6E, 0x20, 0x70, 0x79, 0x74, 0x68, 0x6F, 0x6E, 0x2D, 0x66, 0x75, 0x20, 0xF0, 0x9F, 0x90, 0x8D, 0x20, 0x49, 0x20, 0x61, 0x75, 0x74, 0x6F, 0x6D, 0x61, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x68, 0x6F, 0x6C, 0x65, 0x20, 0x70, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x20, 0x6F, 0x66, 0x20, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x69, 0x6E, 0x67, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x65, 0x72, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6F, 0x6E, 0x20, 0x73, 0x68, 0x6F, 0x64, 0x61, 0x6E, 0x2C, 0x20, 0x65, 0x78, 0x70, 0x6C, 0x6F, 0x69, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6D, 0x2C, 0x20, 0x61, 0x64, 0x64, 0x20, 0x61, 0x20, 0x62, 0x61, 0x63, 0x6B, 0x64, 0x6F, 0x6F, 0x72, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x6D, 0x61, 0x6B, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6D, 0x20, 0x63, 0x6F, 0x6E, 0x6E, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x6D, 0x79, 0x20, 0x72, 0x74, 0x74, 0x79, 0x73, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2E, 0x0A, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x20, 0x73, 0x74, 0x75, 0x6E, 0x6E, 0x69, 0x6E, 0x67, 0x20, 0x62, 0x6F, 0x74, 0x6E, 0x65, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x31, 0x30, 0x30, 0x2B, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x28, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x65, 0x76, 0x65, 0x6E, 0x20, 0x6D, 0x6F, 0x72, 0x65, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x65, 0x72, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x6F, 0x6E, 0x20, 0x73, 0x68, 0x6F, 0x64, 0x61, 0x6E, 0x2C, 0x20, 0x62, 0x75, 0x74, 0x20, 0x49, 0x20, 0x73, 0x74, 0x6F, 0x70, 0x70, 0x65, 0x64, 0x20, 0x61, 0x74, 0x20, 0x31, 0x30, 0x30, 0x29, 0x2E, 0x0A, 0x0A, 0x3E, 0x20, 0x3C, 0x69, 0x6D, 0x67, 0x20, 0x73, 0x72, 0x63, 0x3D, 0x22, 0x2F, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2F, 0x62, 0x6F, 0x74, 0x6E, 0x65, 0x74, 0x2E, 0x67, 0x69, 0x66, 0x22, 0x20, 0x61, 0x6C, 0x74, 0x3D, 0x22, 0x52, 0x54, 0x54, 0x59, 0x53, 0x20, 0x62, 0x6F, 0x74, 0x6E, 0x65, 0x74, 0x22, 0x20, 0x63, 0x6C, 0x61, 0x73, 0x73, 0x3D, 0x22, 0x7A, 0x6F, 0x6F, 0x6D, 0x61, 0x62, 0x6C, 0x65, 0x22, 0x2F, 0x3E, 0x3C, 0x62, 0x72, 0x3E, 0x0A, 0x0A, 0x4E, 0x6F, 0x77, 0x20, 0x61, 0x72, 0x65, 0x20, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x74, 0x6F, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x20, 0x61, 0x6C, 0x6C, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x20, 0x74, 0x6F, 0x20, 0x64, 0x6F, 0x20, 0x77, 0x68, 0x61, 0x74, 0x65, 0x76, 0x65, 0x72, 0x20, 0x77, 0x65, 0x20, 0x77, 0x61, 0x6E, 0x74, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6B, 0x64, 0x6F, 0x6F, 0x72, 0x20, 0x61, 0x63, 0x63, 0x6F, 0x75, 0x6E, 0x74, 0x20, 0x77, 0x65, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2C, 0x20, 0x61, 0x68, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x49, 0x20, 0x66, 0x6F, 0x72, 0x67, 0x6F, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x6D, 0x65, 0x6E, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x72, 0x74, 0x74, 0x79, 0x73, 0x20, 0x61, 0x6C, 0x6C, 0x6F, 0x77, 0x20, 0x74, 0x6F, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6C, 0x65, 0x64, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x73, 0x2C, 0x20, 0x73, 0x6F, 0x20, 0x77, 0x65, 0x20, 0x63, 0x61, 0x6E, 0x20, 0x65, 0x76, 0x65, 0x6E, 0x20, 0x6D, 0x61, 0x6B, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6D, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x61, 0x6E, 0x64, 0x73, 0x20, 0x61, 0x74, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x74, 0x69, 0x6D, 0x65, 0x2C, 0x20, 0x6C, 0x69, 0x6B, 0x65, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x6C, 0x20, 0x62, 0x6F, 0x74, 0x6E, 0x65, 0x74, 0x2E, 0x0A, 0x0A, 0x23, 0x20, 0x41, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x6F, 0x75, 0x74, 0x65, 0x72, 0x20, 0x77, 0x65, 0x6E, 0x74, 0x20, 0x77, 0x69, 0x6C, 0x64, 0x0A, 0x21, 0x5B, 0x52, 0x6F, 0x75, 0x74, 0x65, 0x72, 0x20, 0x67, 0x6F, 0x69, 0x6E, 0x67, 0x20, 0x77, 0x69, 0x6C, 0x64, 0x5D, 0x28, 0x2F, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2F, 0x72, 0x6F, 0x75, 0x74, 0x65, 0x72, 0x2D, 0x67, 0x6F, 0x69, 0x6E, 0x67, 0x2D, 0x77, 0x69, 0x6C, 0x64, 0x2E, 0x6A, 0x70, 0x67, 0x29, 0x0A, 0x0A, 0x54, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x20, 0x72, 0x65, 0x61, 0x6C, 0x6C, 0x79, 0x20, 0x66, 0x75, 0x6E, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x20, 0x74, 0x6F, 0x20, 0x65, 0x78, 0x70, 0x6C, 0x6F, 0x69, 0x74, 0x2C, 0x20, 0x49, 0x20, 0x68, 0x6F, 0x70, 0x65, 0x20, 0x79, 0x6F, 0x75, 0x20, 0x65, 0x6E, 0x6A, 0x6F, 0x79, 0x65, 0x64, 0x20, 0x61, 0x73, 0x20, 0x6D, 0x75, 0x63, 0x68, 0x20, 0x61, 0x73, 0x20, 0x49, 0x20, 0x64, 0x69, 0x64, 0x2C, 0x20, 0x49, 0x20, 0x72, 0x65, 0x70, 0x6F, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x76, 0x75, 0x6C, 0x6E, 0x20, 0x74, 0x6F, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x66, 0x69, 0x78, 0x65, 0x64, 0x20, 0x69, 0x74, 0x20, 0x69, 0x6E, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6C, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x73, 0x6F, 0x20, 0x69, 0x66, 0x20, 0x79, 0x6F, 0x75, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x61, 0x20, 0x47, 0x4C, 0x2E, 0x69, 0x4E, 0x65, 0x74, 0x20, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2C, 0x20, 0x70, 0x6C, 0x65, 0x61, 0x73, 0x65, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x6F, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6C, 0x61, 0x74, 0x65, 0x73, 0x74, 0x20, 0x66, 0x69, 0x72, 0x6D, 0x77, 0x61, 0x72, 0x65, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x2E, 0x0A, 0x0A, 0x3E, 0x20, 0x48, 0x61, 0x76, 0x65, 0x20, 0x66, 0x75, 0x6E, 0x20, 0x61, 0x6E, 0x64, 0x20, 0x68, 0x61, 0x70, 0x70, 0x79, 0x20, 0x68, 0x61, 0x63, 0x6B, 0x69, 0x6E, 0x67, 0x21, 0x00}; \ No newline at end of file diff --git a/src/libdzonerzy.so.h b/src/libdzonerzy.so.h index 1230ab0..27e3d83 100644 --- a/src/libdzonerzy.so.h +++ b/src/libdzonerzy.so.h @@ -87,6 +87,8 @@ Copyright: #define MD_CODE(x) "`" x "`" // code block macros #define MD_CODEBLOCK(x) "```" x "```" +// start/end a code block macros +#define MD_CODEBLOCK_TICKS(x) "\n```" x "\n" // code block macros with language #define MD_CODEBLOCK_LANG(l, c) "```" l "\n" c "\n```" // text macros diff --git a/tools/embed/embed.c b/tools/embed/embed.c index be1114e..f989f16 100644 --- a/tools/embed/embed.c +++ b/tools/embed/embed.c @@ -31,6 +31,7 @@ typedef struct _embed char *format; int verbose; int quiet; + int autowrap; } embed_t; static void usage(char **argv); @@ -43,7 +44,7 @@ int main(int argc, char **argv) int c = 0; embed_t args = {0}; - while ((c = getopt(argc, argv, "hvi:o:f:Vq")) != -1) + while ((c = getopt(argc, argv, "hvi:o:f:Vqw")) != -1) { switch (c) { @@ -89,6 +90,9 @@ int main(int argc, char **argv) case 'q': args.quiet = 1; break; + case 'w': + args.autowrap = 1; + break; default: usage(argv); exit(EXIT_FAILURE); @@ -207,12 +211,6 @@ int embed(embed_t *args) return EXIT_FAILURE; } - if (args->output == NULL) - { - fprintf(stderr, "Output file not specified\n"); - return EXIT_FAILURE; - } - if (args->format == NULL) { fprintf(stderr, "Output format not specified\n"); @@ -235,13 +233,15 @@ int embed(embed_t *args) return EXIT_FAILURE; } - FILE *output = fopen(args->output, "w"); + FILE *output = NULL; - if (output == NULL) + if (args->output != NULL) { - if (!args->quiet) - fprintf(stderr, "Unable to open output file: %s\n", args->output); - return EXIT_FAILURE; + output = fopen(args->output, "w"); + } + else + { + output = stdout; } char *name_only = strdup(args->input); @@ -276,48 +276,76 @@ int embed(embed_t *args) if (args->format[0] == 'c') { - fprintf(output, "__attribute__((section(\"embed/%s\"))) const unsigned char %s[] = {\n", name_only, input_name); + if (args->autowrap) + { + fprintf(output, "__attribute__((section(\"embed/%s\"))) const unsigned char %s[] = {\n", name_only, input_name); + } + else + { + fprintf(output, "__attribute__((section(\"embed/%s\"))) const unsigned char %s[] = {", name_only, input_name); + } } else if (args->format[0] == 'h') { fprintf(output, "#pragma once\n"); fprintf(output, "#ifndef %s_H\n", input_name); - fprintf(output, "__attribute__((section(\"embed/%s\"))) const unsigned char %s[] = {\n", name_only, input_name); + if (args->autowrap) + { + fprintf(output, "__attribute__((section(\"embed/%s\"))) const unsigned char %s[] = {\n", name_only, input_name); + } + else + { + fprintf(output, "__attribute__((section(\"embed/%s\"))) const unsigned char %s[] = {", name_only, input_name); + } } int c = 0; int i = 0; - while ((c = fgetc(input)) != EOF) + if (args->autowrap) { - if (i == 0) + while ((c = fgetc(input)) != EOF) { - fprintf(output, " "); + if (i == 0) + { + fprintf(output, " "); + } + + fprintf(output, "0x%02X", c); + + fprintf(output, ", "); + if (i < 15) + { + fprintf(output, ", "); + } + else + { + fprintf(output, ",\n"); + i = -1; + } + + i++; } - fprintf(output, "0x%02X", c); - - if (i < 15) + if (i > 0) { + fprintf(output, "\n"); + } + + fprintf(output, " 0x00,\n"); + fprintf(output, "};\n"); + } + else + { + while ((c = fgetc(input)) != EOF) + { + fprintf(output, "0x%02X", c); fprintf(output, ", "); } - else - { - fprintf(output, ",\n"); - i = -1; - } - - i++; + fprintf(output, "0x00"); + fprintf(output, "};\n\n"); } - if (i > 0) - { - fprintf(output, "\n"); - } - - fprintf(output, " 0x00,\n"); - fprintf(output, "};\n"); - if (args->format[0] == 'h') { fprintf(output, "#endif /* %s_H */\n", input_name);