<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jaeheon Shim</title>
    <description>The latest articles on DEV Community by Jaeheon Shim (@jaeheonshim).</description>
    <link>https://dev.to/jaeheonshim</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F286783%2F6faf9891-150e-4d10-9f36-53c658bfbef0.jpeg</url>
      <title>DEV Community: Jaeheon Shim</title>
      <link>https://dev.to/jaeheonshim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jaeheonshim"/>
    <language>en</language>
    <item>
      <title>Project Euler: Problem 6 Overview</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Mon, 13 Apr 2020 15:00:00 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/project-euler-problem-6-overview-ifm</link>
      <guid>https://dev.to/jaeheonshim/project-euler-problem-6-overview-ifm</guid>
      <description>&lt;p&gt;In this article, we’ll be exploring Project Euler problem 6. I’ll provide some ideas and hints, but it’ll be up to you to create a...&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://jaeheonshim.com/project-euler-problem-6-overview/"&gt;Project Euler: Problem 6 Overview&lt;/a&gt; appeared first on &lt;a href="https://jaeheonshim.com"&gt;Coding with Jaeheon Shim&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>projecteuler</category>
      <category>algorithms</category>
    </item>
    <item>
      <title>Introducing My Java Tutorial Series</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Mon, 30 Mar 2020 15:00:45 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/introducing-my-java-tutorial-series-1o9c</link>
      <guid>https://dev.to/jaeheonshim/introducing-my-java-tutorial-series-1o9c</guid>
      <description>&lt;p&gt;I’ve decided to start a series of articles on my blog dedicated to teaching you, the reader, the basics and fundamentals of Java. In my...&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://jaeheonshim.com/introducing-my-java-tutorial-series/"&gt;Introducing My Java Tutorial Series&lt;/a&gt; appeared first on &lt;a href="https://jaeheonshim.com"&gt;Coding with Jaeheon Shim&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>java</category>
      <category>javatutorialseries</category>
      <category>learnjava</category>
    </item>
    <item>
      <title>How to Learn Java</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Mon, 23 Mar 2020 15:49:22 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/how-to-learn-java-14be</link>
      <guid>https://dev.to/jaeheonshim/how-to-learn-java-14be</guid>
      <description>&lt;p&gt;I've been working on an article on my blog, Coding with Jaeheon Shim, for quite some time now. &lt;/p&gt;

&lt;p&gt;In this article, learn why learning Java is a good investment to yourself, and how you can learn Java effectively and retain information.&lt;/p&gt;

&lt;p&gt;I'll cover why you should learn Java, tips for learning Java, books, videos, and websites for learning Java, and some project ideas for you to use to exercise your Java skills.&lt;/p&gt;

&lt;p&gt;In this article:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why learn Java&lt;/li&gt;
&lt;li&gt;How to learn Java (How to stay motivated, retain information, etc.)&lt;/li&gt;
&lt;li&gt;Resources for learning Java (books, online courses, websites, communities)&lt;/li&gt;
&lt;li&gt;Project ideas for learning Java.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check it out here! &lt;a href="https://jaeheonshim.com/how-to-learn-java/"&gt;How to Learn Java&lt;/a&gt; on &lt;a href="https://jaeheonshim.com"&gt;Coding with Jaeheon Shim&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>java</category>
      <category>learnjava</category>
      <category>studying</category>
    </item>
    <item>
      <title>I built a discord bot for freecodecamp's code radio</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Mon, 23 Mar 2020 13:49:59 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/i-built-a-discord-bot-for-freecodecamp-s-code-radio-3i62</link>
      <guid>https://dev.to/jaeheonshim/i-built-a-discord-bot-for-freecodecamp-s-code-radio-3i62</guid>
      <description>&lt;p&gt;Hey everyone, today I want to share a project I decided to make today. &lt;/p&gt;

&lt;p&gt;If you don't already know, &lt;a href="https://coderadio.freecodecamp&amp;lt;br&amp;gt;%0A.org"&gt;code radio&lt;/a&gt; is freecodecamp's music stream that plays ambient music for coding 24/7.&lt;/p&gt;

&lt;p&gt;What I did is, I brought that music stream into a discord bot, so that you can listen to code radio within a discord server.&lt;/p&gt;

&lt;p&gt;You can add this bot to your own discord server. Click &lt;a href="https://discordapp.com/api/oauth2/authorize?client_id=691360591507619881&amp;amp;permissions=3147776&amp;amp;scope=bot"&gt;here&lt;/a&gt; to do so.&lt;/p&gt;

&lt;p&gt;You can find instructions on how to use the bot on its &lt;a href="https://coderadio.jaeheonshim.dev"&gt;official home page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, you can find the source code &lt;a href="https://github.com/jaeheonshim/coderadio-bot"&gt;here&lt;/a&gt;. Stars on the GitHub repository would be really appreciated!&lt;/p&gt;

&lt;p&gt;Thanks for checking my project out&lt;br&gt;
Jaeheon Shim&lt;/p&gt;

</description>
      <category>showdev</category>
    </item>
    <item>
      <title>Project Euler: Problem 5 Walkthrough</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Wed, 18 Mar 2020 13:53:08 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/project-euler-problem-5-walkthrough-22g8</link>
      <guid>https://dev.to/jaeheonshim/project-euler-problem-5-walkthrough-22g8</guid>
      <description>&lt;p&gt;This article is a full walkthrough on project euler problem 5 where I'll discuss how you can implement the solution to this problem in code.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://jaeheonshim.com/project-euler-problem-5-walkthrough/"&gt;Project Euler: Problem 5 Walkthrough&lt;/a&gt; appeared first on &lt;a href="https://jaeheonshim.com"&gt;Coding with Jaeheon Shim&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>projecteuler</category>
      <category>algorithms</category>
      <category>problemsolving</category>
    </item>
    <item>
      <title>Project Euler: Problem 5 Overview</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Wed, 04 Mar 2020 17:00:00 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/project-euler-problem-5-overview-i0p</link>
      <guid>https://dev.to/jaeheonshim/project-euler-problem-5-overview-i0p</guid>
      <description>&lt;p&gt;Let's take a look at the concepts that we can use to solve project euler problem 5 efficiently. Note that this isn't the actual solution article, in this article I'll just cover the general topics.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://jaeheonshim.com/project-euler-problem-5-overview/"&gt;Project Euler: Problem 5 Overview&lt;/a&gt; appeared first on &lt;a href="https://jaeheonshim.com"&gt;Coding with Jaeheon Shim&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>projecteuler</category>
      <category>algorithms</category>
      <category>problemsolving</category>
    </item>
    <item>
      <title>Project Euler: Problem 4 Walkthrough</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Sun, 01 Mar 2020 15:02:49 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/project-euler-problem-4-walkthrough-49of</link>
      <guid>https://dev.to/jaeheonshim/project-euler-problem-4-walkthrough-49of</guid>
      <description>&lt;p&gt;This article is a full walkthrough on Project Euler problem 4. If you’re stumped on solving this problem, you’re in the right place. This article...&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://jaeheonshim.com/project-euler-problem-4-walkthrough/"&gt;Project Euler: Problem 4 Walkthrough&lt;/a&gt; appeared first on &lt;a href="https://jaeheonshim.com"&gt;Coding with Jaeheon Shim&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>projecteuler</category>
      <category>java</category>
      <category>problemsolving</category>
    </item>
    <item>
      <title>I Made a Chess Library in Java</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Sun, 23 Feb 2020 16:51:55 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/i-made-a-chess-library-in-java-1j9h</link>
      <guid>https://dev.to/jaeheonshim/i-made-a-chess-library-in-java-1j9h</guid>
      <description>&lt;p&gt;One day I was feeling pretty bored, so I started making a chess library. I had originally named it ChessBored, but then I decided against...&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://jaeheonshim.com/i-made-a-chess-library-in-java/"&gt;I Made a Chess Library in Java&lt;/a&gt; appeared first on &lt;a href="https://jaeheonshim.com"&gt;Coding with Jaeheon Shim&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>projects</category>
      <category>java</category>
      <category>library</category>
    </item>
    <item>
      <title>I made a chess library in Java</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Fri, 21 Feb 2020 22:23:32 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/i-made-a-chess-library-in-java-3hfa</link>
      <guid>https://dev.to/jaeheonshim/i-made-a-chess-library-in-java-3hfa</guid>
      <description>&lt;p&gt;Hey guys, in this post I just wanted to share this project I've been working on for the past couple of weeks.&lt;/p&gt;

&lt;p&gt;It's basically a library written in Java that represents the game chess. You can create a board, make moves on it, kill pieces, check if a move is valid, castle kings and rooks, etc. It could be used to make a chess game in java, create a chess AI, create an online chess server, etc.&lt;/p&gt;

&lt;p&gt;My project is hosted on GitHub, and I'd appreciate it if you could check out my hard work. ;)&lt;br&gt;
&lt;a href="https://github.com/jaeheonshim/ChessBoard"&gt;https://github.com/jaeheonshim/ChessBoard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also find some instructions on how to use the library on GitHub. The library is hosted on maven central and can be downloaded to any project simply by adding my package as a repository.&lt;/p&gt;

&lt;p&gt;This project is still a work in progress and there are many features left to implement. I just wanted to share the current state of the project.&lt;/p&gt;

&lt;p&gt;Thanks!&lt;br&gt;
Jaeheon&lt;/p&gt;

</description>
      <category>chess</category>
      <category>java</category>
      <category>library</category>
      <category>github</category>
    </item>
    <item>
      <title>Using a Vigenere Cipher to Encrypt Text</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Fri, 07 Feb 2020 14:53:50 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/using-a-vigenere-cipher-to-encrypt-text-4ncg</link>
      <guid>https://dev.to/jaeheonshim/using-a-vigenere-cipher-to-encrypt-text-4ncg</guid>
      <description>&lt;p&gt;The vigenere cipher is a way of hiding your messages that has been around for a long, long time. In fact, it was first described by Giovan Battista Bellaso in 1553. It became so popular back then because the cipher was easy to understand and implement, but remained unbroken until 1863, three centuries later. &lt;/p&gt;

&lt;p&gt;You can build your own vigenere cipher as well with just a little bit of code. While the example I provided here is in Java, the same concept applies to many other languages.&lt;/p&gt;

&lt;p&gt;My example of the vigenere cipher can be found on GitHub &lt;a href="https://github.com/jaeheonshim/VigenereCipher/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  How a Vigenere Cipher works
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Polyalphabetic Substitution
&lt;/h2&gt;

&lt;p&gt;Polyalphabetic substitution is a method for encrypting text using a substitution alphabet. This means that letters from the original text get substituted into an alphabet to encrypt them. To decrypt the text, you need only the shift value and perform the substitution process backwards.   &lt;/p&gt;

&lt;p&gt;Below is an example of a simple case of polyalphabetic substitution.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;A&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;B&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;D&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;E&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;F&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;G&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;H&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;I&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;J&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;K&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;L&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;M&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;N&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;O&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;P&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Q&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;R&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;S&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;T&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;U&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;V&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;W&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;X&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Y&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Z&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Z&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;A&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;D&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;E&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;F&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;G&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;H&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;I&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;J&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;K&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;L&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;M&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;N&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;O&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;P&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Q&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;R&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;S&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;T&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;U&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;V&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;W&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;X&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Y&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This cipher table is just the alphabet shifted to the right by one letter. This table can be used to substitute letters and encode text:&lt;/p&gt;

&lt;p&gt;Jaeheon Shim -----&amp;gt; IZDGDNM RGHL&lt;/p&gt;

&lt;p&gt;To form this encoding, I just found the letters of my name one by one on the first row of the text, and replaced that letter with the one directly below the row.&lt;/p&gt;

&lt;p&gt;However, this form of encryption is not very secure. In fact, it is not secure at all. Someone trying to crack this would only have to try 26 different combinations for the cipher table, which is a trivial task for a computer.&lt;/p&gt;

&lt;p&gt;The Vigenere Cipher improves upon this by using multiple substitution alphabets.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Vigenere Cipher
&lt;/h2&gt;

&lt;p&gt;The cipher table for a Vigenere cipher consists of the alphabet written out 26 times in 26 different rows, each alphabet shifted one letter to the left compared to the previous alphabet.&lt;br&gt;&lt;br&gt;
The alphabet used for substitution depends on a keyword, known as our key.&lt;/p&gt;

&lt;p&gt;This is what the table looks like for the Vigenere Cipher:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;A&lt;/th&gt;
&lt;th&gt;B&lt;/th&gt;
&lt;th&gt;C&lt;/th&gt;
&lt;th&gt;D&lt;/th&gt;
&lt;th&gt;E&lt;/th&gt;
&lt;th&gt;F&lt;/th&gt;
&lt;th&gt;G&lt;/th&gt;
&lt;th&gt;H&lt;/th&gt;
&lt;th&gt;I&lt;/th&gt;
&lt;th&gt;J&lt;/th&gt;
&lt;th&gt;K&lt;/th&gt;
&lt;th&gt;L&lt;/th&gt;
&lt;th&gt;M&lt;/th&gt;
&lt;th&gt;N&lt;/th&gt;
&lt;th&gt;O&lt;/th&gt;
&lt;th&gt;P&lt;/th&gt;
&lt;th&gt;Q&lt;/th&gt;
&lt;th&gt;R&lt;/th&gt;
&lt;th&gt;S&lt;/th&gt;
&lt;th&gt;T&lt;/th&gt;
&lt;th&gt;U&lt;/th&gt;
&lt;th&gt;V&lt;/th&gt;
&lt;th&gt;W&lt;/th&gt;
&lt;th&gt;X&lt;/th&gt;
&lt;th&gt;Y&lt;/th&gt;
&lt;th&gt;Z&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;D&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;E&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;F&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;G&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;H&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;I&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;J&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;K&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;L&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;M&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;N&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;O&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;P&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Q&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;R&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;S&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;T&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;U&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;V&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;W&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;X&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Y&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Z&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Here is an example of using the viginere cipher to encrypt a string of text.&lt;/p&gt;

&lt;p&gt;For this example, I'll be using my first name, jaeheon, as the text to encrypt, and my last name, shim, as the key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; &lt;br&gt;
Step 1 is to repeat my key until it is the same length as the text I want to encrypt. Likewise, if my key was longer than the text, it would be truncated to match the length.&lt;/p&gt;

&lt;p&gt;shimshi &lt;/p&gt;

&lt;p&gt;As you can see, I repeated the key and then truncated it to fit the length of my text but not exceed it. In practice there would not be a huge problem if the key was longer than the text, but it is still good to trim it so that we can avoid code errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;br&gt;
The second step is to actually encode the letters.&lt;br&gt;
For every letter in my text, I will first find the row in the cipher table that starts with the corresponding letter of the key. For example, if I wanted to encode the second letter of my name I would need to find the row that starts with h, since that is the second letter of my key.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;A&lt;/th&gt;
&lt;th&gt;B&lt;/th&gt;
&lt;th&gt;C&lt;/th&gt;
&lt;th&gt;D&lt;/th&gt;
&lt;th&gt;E&lt;/th&gt;
&lt;th&gt;F&lt;/th&gt;
&lt;th&gt;G&lt;/th&gt;
&lt;th&gt;H&lt;/th&gt;
&lt;th&gt;I&lt;/th&gt;
&lt;th&gt;J&lt;/th&gt;
&lt;th&gt;K&lt;/th&gt;
&lt;th&gt;L&lt;/th&gt;
&lt;th&gt;M&lt;/th&gt;
&lt;th&gt;N&lt;/th&gt;
&lt;th&gt;O&lt;/th&gt;
&lt;th&gt;P&lt;/th&gt;
&lt;th&gt;Q&lt;/th&gt;
&lt;th&gt;R&lt;/th&gt;
&lt;th&gt;S&lt;/th&gt;
&lt;th&gt;T&lt;/th&gt;
&lt;th&gt;U&lt;/th&gt;
&lt;th&gt;V&lt;/th&gt;
&lt;th&gt;W&lt;/th&gt;
&lt;th&gt;X&lt;/th&gt;
&lt;th&gt;Y&lt;/th&gt;
&lt;th&gt;Z&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;H&lt;/td&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;J&lt;/td&gt;
&lt;td&gt;K&lt;/td&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;M&lt;/td&gt;
&lt;td&gt;N&lt;/td&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;P&lt;/td&gt;
&lt;td&gt;Q&lt;/td&gt;
&lt;td&gt;R&lt;/td&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;T&lt;/td&gt;
&lt;td&gt;U&lt;/td&gt;
&lt;td&gt;V&lt;/td&gt;
&lt;td&gt;W&lt;/td&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Y&lt;/td&gt;
&lt;td&gt;Z&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;E&lt;/td&gt;
&lt;td&gt;F&lt;/td&gt;
&lt;td&gt;G&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Now to find the actual letter to substitute, we can treat this as a normal substitution cipher and get the letter that corresponds with the second letter in the text to encrypt. In this case that would be h, because &lt;strong&gt;a&lt;/strong&gt; corresponds with &lt;strong&gt;h&lt;/strong&gt; in the table. This can be repeated with every letter in the text being encrypted.&lt;/p&gt;

&lt;p&gt;By using this process, the shift of the substitution table is determined by the key, and there are multiple degrees of shifting as not every letter in the key is the same.&lt;/p&gt;

&lt;p&gt;The same process can be repeated backwards to decrypt text.&lt;/p&gt;

</description>
      <category>encryption</category>
      <category>java</category>
    </item>
    <item>
      <title>Project Euler: Problem 3 Walkthrough</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Tue, 04 Feb 2020 03:01:19 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/project-euler-problem-3-walkthrough-42jj</link>
      <guid>https://dev.to/jaeheonshim/project-euler-problem-3-walkthrough-42jj</guid>
      <description>&lt;p&gt;This serves as a full walkthrough to the solution for Project Euler problem 3. Stay tuned for future project Euler walkthroughs, and stick around to...&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://jaeheonshim.com/project-euler-problem-3-walkthrough/"&gt;Project Euler: Problem 3 Walkthrough&lt;/a&gt; appeared first on &lt;a href="https://jaeheonshim.com"&gt;Coding with Jaeheon Shim&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>projecteuler</category>
      <category>primefactors</category>
    </item>
    <item>
      <title>Project Euler: Problem 2 Walkthrough</title>
      <dc:creator>Jaeheon Shim</dc:creator>
      <pubDate>Sun, 19 Jan 2020 21:56:00 +0000</pubDate>
      <link>https://dev.to/jaeheonshim/project-euler-problem-2-walkthrough-40k9</link>
      <guid>https://dev.to/jaeheonshim/project-euler-problem-2-walkthrough-40k9</guid>
      <description>&lt;p&gt;This article is a full walkthrough to the solution for Project Euler problem 2. Stick around to see how I solved this problem. This article...&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://jaeheonshim.com/project-euler-problem-2-walkthrough/"&gt;Project Euler: Problem 2 Walkthrough&lt;/a&gt; appeared first on &lt;a href="https://jaeheonshim.com"&gt;Coding with Jaeheon Shim&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>projecteuler</category>
    </item>
  </channel>
</rss>
