<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3622848623797326428</id><updated>2024-03-20T02:56:03.413-07:00</updated><category term="Data Structure and Algorithms"/><category term="Java"/><category term="Interview Questions"/><category term="Servers"/><category term="Ajax"/><category term="Design patterns"/><category term="JQuery"/><category term="Java Script"/><category term="Mobile"/><category term="Spring"/><title type='text'>code forum</title><subtitle type='html'>This blog is my personal how to. I hope it help others also...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-2456857972451148471</id><published>2016-05-29T08:07:00.004-07:00</published><updated>2020-07-16T03:16:56.821-07:00</updated><title type='text'>Fail Fast And Fail Safe Iterator In Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;In this
       post we will be discussing about fail-fast and fail-safe iterators
       present in java.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
      &lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
     &lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; color: #110000; float: none; font-weight: normal; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif; margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Sections in this post:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Concurrent
        Modification&lt;/span&gt;
        &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #110000; font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Fail
        Fast Iterator&lt;/span&gt;
        &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #110000; font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;How
        Fail Fast Iterator works&lt;/span&gt;
        &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #110000; font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Fail
        Safe Iterator&lt;/span&gt;
        &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #110000; font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Examples&lt;/span&gt;
        &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #110000; font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Difference
        between fail fast and fail safe iterator&lt;/span&gt;
        &lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
     &lt;/h3&gt;
&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;What is Concurrent
    Modification?&lt;/span&gt;
    &lt;/h4&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;When one or
    more threads are iterating over a collection and in between, one of the
    thread changes the structure of the collection (either adding the element
    to the collection or by deleting the element from the collection or by
    updating the value at particular position in the collection) is known as
    Concurrent Modification.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Fail fast Iterator&lt;/span&gt;
    &lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;While
     iterating through the collection, Fail fast iterators instantly throws
     Concurrent Modification Exception if there is structural modification
     &amp;nbsp;of the collection. Thus, in the face of concurrent modification, the
     iterator fails quickly and cleanly, rather than risking arbitrary,
     non-deterministic behavior at an undetermined time in the future.&lt;/span&gt;
    &lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
    &lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;How &amp;nbsp;Fail &amp;nbsp;Fast
    Iterator &amp;nbsp;come to know that the internal structure is modified
    ?&lt;/span&gt;
    &lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Fail Fast
     Iterators read underlying collection object data directly. The internal
     data should not be modified while iterating through the collection. To
     ensure this it maintains an internal &amp;nbsp;flag &quot;modCount&quot;. Iterator
     checks the &quot;modCount&quot; flag whenever it gets the next value (using
     hasNext() method and next() method). Value of mods flag changes whenever
     there is an structural modification. Thus indicating iterator to throw
     &quot;ConcurrentModificationException&quot;.&lt;/span&gt;
    &lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
    &lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h4 style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Fail safe Iterator&lt;/span&gt;
     &lt;/h4&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Fail Safe
      Iterator makes a copy of the&amp;nbsp;underlying collection object&amp;nbsp;and
      iterates over the copied collection object. Any structural modification
      done to the iterator affects the copied data structure so, original data
      structure remains &amp;nbsp;structurally unchanged. Hence, no
      ConcurrentModificationException is thrown by the fail safe
      iterator.&lt;/span&gt;
     &lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;
    &lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
    &lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Two
      &amp;nbsp;issues associated with Fail Safe Iterator are :&lt;/span&gt;
     &lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li style=&quot;list-style: outside none none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;
       &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Overhead of maintaining
       the copied data structure i.e memory.&amp;nbsp;&lt;/span&gt;
       &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Fail
       safe iterator does not guarantee that the data being read is the latest
       data from the underlying original collection object.&lt;/span&gt;
       &lt;/li&gt;
&lt;/ol&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
      &lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Lets see a
      fail fast iterator example:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;brush: java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class FailFastExample
{
    public static void main(String[] args)
    {
        Map&amp;lt;string,String&amp;gt; premiumPhone =  
                       new HashMap&amp;lt;string,String&amp;gt;();
        premiumPhone.put(&quot;Apple&quot;, &quot;iPhone&quot;);
        premiumPhone.put(&quot;HTC&quot;, &quot;HTC one&quot;);
        premiumPhone.put(&quot;Samsung&quot;,&quot;S5&quot;);
        
        Iterator iterator = premiumPhone.keySet()
                                         .iterator();
        
        while (iterator.hasNext())
        {
            System.out.println(premiumPhone.get(
                                    iterator.next()));
            premiumPhone.put(&quot;Sony&quot;, &quot;Xperia Z&quot;);
        }
    }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;verdana&amp;quot;, sans-serif; white-space: normal;&quot;&gt;Output:&lt;/span&gt;                                                  &lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif; white-space: normal;&quot;&gt;
                    ================================================================&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;      &lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif; white-space: normal;&quot;&gt;iPhone&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;      &lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif; white-space: normal;&quot;&gt;Exception in thread &quot;main&quot; java.util.ConcurrentModificationException&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;      &lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif; white-space: normal;&quot;&gt;at java.util.HashMap$HashIterator.nextEntry(Unknown Source)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;      &lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif; white-space: normal;&quot;&gt;at java.util.HashMap$KeyIterator.next(Unknown Source)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;      &lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif; white-space: normal;&quot;&gt;at FailFastExample.main(FailFastExample.java:20)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;color: #110000; padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
   &lt;/h3&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;We can see that
  as soon as we try to &amp;nbsp;put a new entry (&lt;span style=&quot;background-color: #f9f9f9;&quot;&gt;&lt;span style=&quot;color: #110000;&quot;&gt;&quot;Sony&quot;, &quot;Xperia
  Z&quot;), fail-fast iterator&amp;nbsp;immediately&amp;nbsp;throws
  ConcurrentModificationException.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
  &lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;lest&#39;s see Fail
  Safe Iterator Example now :&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;brush: java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;import java.util.concurrent.ConcurrentHashMap;
import java.util.Iterator;

public class FailSafeExample
{
    public static void main(String[] args)
    {
        Map&amp;lt;string,String&amp;gt; premiumPhone = 
                     new ConcurrentHashMap&amp;lt;string,String&amp;gt;();
        premiumPhone.put(&quot;Apple&quot;, &quot;iPhone&quot;);
        premiumPhone.put(&quot;HTC&quot;, &quot;HTC one&quot;);
        premiumPhone.put(&quot;Samsung&quot;,&quot;S5&quot;);
        
        Iterator iterator = premiumPhone.keySet()
                                          .iterator();
        
        while (iterator.hasNext())
        {
            System.out.println(premiumPhone
                               .get(iterator.next()));
            premiumPhone.put(&quot;Sony&quot;, &quot;Xperia Z&quot;);
        }
    }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
 &lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Output:&lt;/span&gt;
  &lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;=============================================&lt;/span&gt;
  &lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;S5&lt;/span&gt;
   &lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;HTC one&lt;/span&gt;
   &lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;iPhone&lt;/span&gt;
   &lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;/span&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
 &lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Below table
 summarizes major differences between fail-fast and fail-safe
 iterator.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;style type=&quot;text/css&quot;&gt;
                    table.tableizer-table {
                    font-size: 12px;
                    border: 1px solid #CCC; 
                    font-family: Verdana, Geneva, sans-serif;
                    } 
                    .tableizer-table td {
                    padding: 4px;
                    margin: 3px;
                    border: 1px solid #CCC;
                    }
                    .tableizer-table th {
                    background-color: #104E8B; 
                    color: #FFF;
                    font-weight: bold;
                    }
  &lt;/style&gt;&lt;br /&gt;
&lt;table class=&quot;tableizer-table&quot;&gt;
   &lt;thead&gt;
&lt;tr class=&quot;tableizer-firstrow&quot;&gt;
     &lt;th&gt;&lt;/th&gt;

     &lt;th&gt;Fail Fast Iterator&lt;/th&gt;

     &lt;th&gt;Fail Safe Iterator&lt;/th&gt;
    &lt;/tr&gt;
&lt;/thead&gt;


   &lt;tbody&gt;
&lt;tr&gt;
     &lt;td&gt;Throw ConcurrentModification Exception&lt;/td&gt;

     &lt;td&gt;Yes&lt;/td&gt;

     &lt;td&gt;No&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
     &lt;td&gt;Clone object&lt;/td&gt;

     &lt;td&gt;No&lt;/td&gt;

     &lt;td&gt;Yes&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
     &lt;td&gt;Memory Overhead&lt;/td&gt;

     &lt;td&gt;No&lt;/td&gt;

     &lt;td&gt;Yes&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
     &lt;td&gt;Examples&lt;/td&gt;

     &lt;td&gt;HashMap,Vector,ArrayList,HashSet&lt;/td&gt;

     &lt;td&gt;CopyOnWriteArrayList, ConcurrentHashMap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/tbody&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/2456857972451148471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2016/05/fail-fast-and-fail-safe-iterator-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/2456857972451148471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/2456857972451148471'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2016/05/fail-fast-and-fail-safe-iterator-in-java.html' title='Fail Fast And Fail Safe Iterator In Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-6067351994453752571</id><published>2015-03-10T07:38:00.002-07:00</published><updated>2016-05-18T07:15:30.253-07:00</updated><title type='text'>Stack of Strings Implemented in Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
In my previous post we talked about &lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/03/stack-implementaion-in-java-using.html&quot; target=&quot;_blank&quot;&gt;stack implementation using character array&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
In
 this post I will be sharing my code for a stack implementation which 
can hold String values in other words stack implemented using array 
of String in java.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;Sections in this post:&lt;/b&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;String Array Based Implementation of stack.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;Let see the code directly as it is self explanatory&lt;/span&gt;&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;pre class=&quot;brush: java&quot;&gt;public class StackOfStrings {
 // Every stack has a maximum capacity i.e. number of objects it can hold, 
 private static final int CAPACITY = 10;
 // Top will always point to most recently added element in stack&amp;nbsp;
 //therefore top = -1 implies stack is empty 
 private int top = -1;
 //array to hold stack elemnts.lt is initialized to capacity of stack
 private String[] stackArray = new String[CAPACITY];

 public static void main(String[] args) {
  StackOfStrings stack = new StackOfStrings();
  stack.pop();
  stack.push(&quot;aa&quot;);
  stack.push(&quot;bb&quot;);
  stack.push(&quot;cc&quot;);
  stack.push(&quot;dd&quot;);
  stack.push(&quot;ee&quot;);
  stack.printStack();
  System.out.println(&quot;=============================&quot;);
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
 }

 public boolean isEmpty() {
  return top == -1;
 } 

 public boolean push(String data) {
  
   // Check if stack is full
   // If it is full then we show Stack overflow message
   
  if (isFull()) {
   System.out.println(&quot;Stack overflow&quot;);
   return false;
  } else {
   stackArray[++top] = data;
   return true;
  }
 }

 public String pop() {
  
   // Check if stack is empty
   //  If it is empty then we show Stack underflow message
   
  if (isEmpty()) {
   System.out.println(&quot;Stack underflow&quot;);
  } else {
   // decrementing top by one to sake second element from top as top
   top--;
   // we will be returning top+1 value from array&amp;nbsp;
   //as we have already made top to point second element in stack
   return stackArray[top + 1];
  }
  return null;
 }

 public String peek() {
  // we implement peek by first popping top element then pushing it back
  String element = null;
  if (!isEmpty()) {
   element = pop();
   push(element);
  }
  return element;
 } 

 public boolean isFull() {
  return top == CAPACITY - 1;
 }

 
  // this method just gives view of the stack.
  // As there are only two operation for stack&amp;nbsp;
  // i.e. push and pop so in theory we can never print a stack
  // without calling those two methods
  
 public void printStack() {
  System.out.print(&quot;[&quot;);
  for (int i = top; i &amp;gt;= 0; i--) {
   System.out.print(&quot; &quot; + stackArray[i]);
  }
  System.out.println(&quot; ]&quot;);
 } 
}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;If we run the program we will get output like this:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;================================================================================&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
Stack underflow&lt;br /&gt;
[&amp;nbsp;&amp;nbsp; &amp;nbsp;ee&amp;nbsp;&amp;nbsp; &amp;nbsp;dd&amp;nbsp;&amp;nbsp; &amp;nbsp;cc&amp;nbsp;&amp;nbsp; &amp;nbsp;bb&amp;nbsp;&amp;nbsp; &amp;nbsp;aa&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
=============================&lt;br /&gt;
ee&lt;br /&gt;
dd&lt;br /&gt;
cc&lt;br /&gt;
bb&lt;br /&gt;
aa&lt;br /&gt;
Stack underflow&lt;br /&gt;
null&lt;br /&gt;
Stack underflow&lt;br /&gt;
null&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Please share your 
comments if you find anything incorrect, or you want to share more 
information about the topic discussed above.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;For further reading:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;practice questions on stack &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/02/stack-implementaion-in-java-using.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;S&lt;span style=&quot;font-weight: normal;&quot;&gt;tack &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Implementation &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;using int array&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/03/stack-implementaion-in-java-using.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;S&lt;span style=&quot;font-weight: normal;&quot;&gt;tack &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Implementation &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;using char array&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation using link list&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation by link list node,&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation using doubly link list&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation by doubly link list node .&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;For complete listing see data structure and algorithm page&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/6067351994453752571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2015/03/stack-of-strings-implemented-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6067351994453752571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6067351994453752571'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2015/03/stack-of-strings-implemented-in-java.html' title='Stack of Strings Implemented in Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-417071354761256774</id><published>2015-03-02T07:22:00.000-08:00</published><updated>2016-05-18T07:46:45.572-07:00</updated><title type='text'>Stack Implementaion in Java Using Character Array</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
In my previous post we talked about basic stack terminologies and simple &lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/02/stack-implementaion-in-java-using.html&quot; target=&quot;_blank&quot;&gt;stack implementation using integer array&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
In this post I will be sharing my code for a stack implementation which can hold char values in other words stack implemented using char array in java.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;content&quot; gt=&quot;&quot; span=&quot;&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;Sections in this post:&lt;/b&gt; &lt;/code&gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;pre class=&quot;content&quot; gt=&quot;&quot; span=&quot;&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;char Array Based Implementation of stack. &lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;Let see the code directly as it is self explanatory&lt;/span&gt;&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;pre class=&quot;brush: java&quot;&gt;public class StackUsingCharArray {


&amp;nbsp;&amp;nbsp; &amp;nbsp;// Every stack has a maximum capacity i.e. number of objects it can hold,
&amp;nbsp;&amp;nbsp; &amp;nbsp;private static final int CAPACITY = 10;
&amp;nbsp;&amp;nbsp; &amp;nbsp;
    // Top will always point to most recently added element in stack therefore&amp;nbsp;
    // top = -1 implies stack is empty
     private&amp;nbsp;&amp;nbsp; &amp;nbsp;int top = -1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;   &amp;nbsp;//array to hold stack elemnts.lt is initialized to capacity of stack
&amp;nbsp;&amp;nbsp; &amp;nbsp;private&amp;nbsp;&amp;nbsp; &amp;nbsp;char[] stackArray = new char[CAPACITY];

&amp;nbsp;&amp;nbsp; &amp;nbsp;public static void main(String[] args) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StackUsingCharArray stack = new StackUsingCharArray();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stack.pop();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stack.push(&#39;a&#39;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stack.push(&#39;b&#39;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stack.push(&#39;c&#39;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stack.push(&#39;d&#39;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stack.push(&#39;e&#39;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stack.printStack();&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(stack.pop());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(stack.pop());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(stack.pop());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(stack.pop());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(stack.pop());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(stack.pop());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(stack.pop());
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean isEmpty() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return top == -1;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean push(char data) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Check if stack is full
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//If it is full then we show Stack overflow message
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isFull()) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Stack overflow&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; stackArray[++top] =data;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;public Character pop() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check if stack is empty
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//If it is empty then we show Stack underflow message 
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isEmpty()) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Stack underflow&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //decrementing top by one to make second element from top as top element
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; top --;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //we will be returning top+1 value from array as we have already made&amp;nbsp;
            //top to point second element in stack
            
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return stackArray[top+1];
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;public Character peek() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // we implement peek by first popping top element then pushing it back
        Character element = null ;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!isEmpty()){
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; element = pop();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; push(element);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return element;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;
&amp;nbsp;&amp;nbsp; &amp;nbsp;// this method just gives view of the stack.&amp;nbsp;
    //As there are only two operation for stack i.e. push and pop
&amp;nbsp;&amp;nbsp; &amp;nbsp;//so in theory we can never print a stack&amp;nbsp;
    //without calling those two methods
&amp;nbsp;&amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;public void printStack() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.print(&quot;[&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = top; i&amp;gt;=0;i--){
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.print(&quot;&amp;nbsp;&amp;nbsp; &amp;nbsp;&quot;+stackArray[i]);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;&amp;nbsp;&amp;nbsp; &amp;nbsp;]&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean isFull() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return top == CAPACITY -1;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
}&amp;nbsp;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;If we run the program we will get output like this:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;================================================================================&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
Stack underflow&lt;br /&gt;
[&amp;nbsp;&amp;nbsp; &amp;nbsp;e&amp;nbsp;&amp;nbsp; &amp;nbsp;d&amp;nbsp;&amp;nbsp; &amp;nbsp;c&amp;nbsp;&amp;nbsp; &amp;nbsp;b&amp;nbsp;&amp;nbsp; &amp;nbsp;a&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
e&lt;br /&gt;
d&lt;br /&gt;
c&lt;br /&gt;
b&lt;br /&gt;
a&lt;br /&gt;
Stack underflow&lt;br /&gt;
null&lt;br /&gt;
Stack underflow&lt;br /&gt;
null&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Please share your 
comments if you find anything incorrect, or you want to share more 
information about the topic discussed above.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;For further reading:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;practice questions on stack &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/02/stack-implementaion-in-java-using.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;S&lt;span style=&quot;font-weight: normal;&quot;&gt;tack &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Implementation &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;using int array&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/03/stack-of-strings-implemented-in-java.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;S&lt;span style=&quot;font-weight: normal;&quot;&gt;tack &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Implementation &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;using array &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;of strings&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation using link list&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation by link list node,&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation using doubly link list&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation by doubly link list node .&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;For complete listing see data structure and algorithm page&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/417071354761256774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2015/03/stack-implementaion-in-java-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/417071354761256774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/417071354761256774'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2015/03/stack-implementaion-in-java-using.html' title='Stack Implementaion in Java Using Character Array'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-1893438099446726801</id><published>2015-02-18T09:15:00.002-08:00</published><updated>2016-05-18T08:03:21.325-07:00</updated><title type='text'>Stack Implementaion in Java Using Integer Array</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This is my first post on stack data structure. In this post I am sharing my code of a simple Stack of integers which is internally implemented using integer array.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Stack&lt;/b&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
A stack is a basic data structure that can be logically thought as 
linear structure represented by a real physical stack or pile, a 
structure where insertion and deletion of items takes place at one end 
called top of the stack. The basic concept can be illustrated by 
thinking of your data set as a stack of plates or books where you can 
only take the top item off the stack in order to remove things from it.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img alt=&quot;Data stack.svg&quot; data-file-height=&quot;281&quot; data-file-width=&quot;391&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Data_stack.svg/391px-Data_stack.svg.png&quot; height=&quot;281&quot; width=&quot;391&quot; /&gt; &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;Sections in this post:&lt;/b&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;code&gt;&lt;/code&gt;Basic stack operations.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Push and Pop&lt;/li&gt;
&lt;li&gt;peek&lt;/li&gt;
&lt;li&gt;is Full and is Empty &lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;My Stack Interface.&lt;/li&gt;
&lt;li&gt;Array Based Implementation.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
Basic stack Operations:&lt;/h3&gt;
&lt;h4 id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h4&gt;
&lt;h4 id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Push and Pop&lt;/span&gt;&lt;/h4&gt;
&lt;h4 id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h4&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
A stack has two fundamental operations - Push and Pop.&lt;/div&gt;
The &lt;b&gt;Push&lt;/b&gt; operation stores something on the top of the stack and the &lt;b&gt;Pop&lt;/b&gt; operation retrives something from the top of the stack.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Peek&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt; &lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Peek operation&amp;nbsp; returns top element from the stack without removing it from the stack. Peek is not a fundamental stack operation but it is usually implemented in stack ADT. &lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;b&gt;Is Empty and Is Full&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
When stack is empty and pop operation is called then stack should throw &quot;Stack underflow error&quot; and if stack is already full and pop operation is called then we should throw &quot;Stack overflow error&quot;.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
So as to avoid these two errors we implement  Is Empty and Is Full methods. Similar to peek, &quot;Is Empty&quot; and &quot;Is Full&quot; are also not fundamental stack operation.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
My Stack Interface&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;I am creating Stack interface for my Stack ADT. Lets see the code:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;brush: java&quot;&gt;public interface StackInterface {
 
  //Method to push data onto stack
  
 public boolean push(int data);
 
  //Method to pop topmost element from stack or most recently added element in stack
  
 public Integer pop();
 
  // This is not a basic stack operation
  // This method should allow a user to see the top most element in stack
  // it is similar to popping and pushing element again.
  
 public Integer peek();
 
  //method should return true if stack is empty else false
  
 public boolean isEmpty();
 
  //Method should return true if stack is full else false

 public boolean isFull();
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;h3 id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
Array Based Implementation&lt;/h3&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;In an array-based implementation we maintain the following fields:&lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;an array A of a default size
(≥ 1), &lt;/li&gt;
&lt;li&gt;the variable &lt;i&gt;top&lt;/i&gt; that refers to the top
element in the stack and&lt;/li&gt;
&lt;li&gt;&amp;nbsp;the &lt;i&gt;capacity&lt;/i&gt; that refers to the array size.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
We say that a stack is
empty when &lt;code&gt;top = -1&lt;/code&gt;, and the stack is full when &lt;code&gt;top = capacity-1&lt;/code&gt;. The variable  &lt;i&gt;top&lt;/i&gt; changes from -1  to &lt;code&gt;capacity - 1&lt;/code&gt;.&lt;br /&gt;
&lt;div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;img src=&quot;http://www.cs.cmu.edu/%7Eadamchik/15-121/lectures/Stacks%20and%20Queues/pix/array_stack.bmp&quot; height=&quot;105&quot; width=&quot;200&quot; /&gt; &lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
Below is my code for implementing integer stack using array:&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;brush: java&quot;&gt;public class StackUsingIntArray implements StackInterface {
    // Every stack has a maximum capacity i.e. number of objects it can hold.
     private static final int CAPACITY = 10;
 
    //Top will always point to most recently added element in stack therefore
    //top * -1 implies stack is empty
  
    private int top = -1;
    // array to hold stack elemnts.lt is initialized to capacity of stack&amp;nbsp;
     private int[] stackArray = new int[CAPACITY];        
        
 @Override
 public boolean push(int data) {
  
    //Check if stack is fullIf it is full then we show Stack overflow message
   
     if (isFull()) {
         System.out.println(&quot;Stack overflow&quot;);
         return false;
     } else {
         stackArray[++top] = data;
         return true;
     }
 }

 @Override
 public Integer pop() {
  
   //Check if stack is empty If it is empty then we show Stack underflow message
   
  if (isEmpty()) {
     System.out.println(&quot;Stack underflow&quot;);
  } else {
   
    //decrementing top by one to make second element from top as top
   
     top--;

    //we will be returning top+1 value from array as we have already
    //made top to point second element in stack
    
     return (Integer) stackArray[top + 1];

  }
  return null;
 }

 @Override
 public Integer peek() {
     // we implement peek by first popping top element then pushing it back
      Integer element = null;
      if (!isEmpty()) {
         element = pop();
         push(element);
      }
       return element;
 } 
        
 @Override
 public boolean isEmpty() {
     return top == -1;
 }

 @Override
 public boolean isFull() {  
     return top == CAPACITY-1;
 }
        

  //This method just gives view of the stack. As there are only two operation
  //for stack i.e. push and pop so in theory we can never print a stack
  //without calling those two methods
  
 public void printStack() {
     System.out.print(&quot;[&quot;);
     for (int i = top; i &amp;gt;= 0; i--) {
        System.out.print(&quot; &quot; + stackArray[i]);
     }
     System.out.print(&quot; ]&quot;);
 }
        
 public static void main(String[] args) {
  StackUsingIntArray stack = new StackUsingIntArray();
  stack.pop();
  stack.push(40);
  stack.pop();
  stack.push(50);
  stack.pop();
  stack.push(50);
  stack.push(11);
  stack.pop();
  stack.push(50);
  stack.push(32);
  stack.pop();
  stack.pop();
  stack.push(55);
  stack.pop();
  stack.push(68);
  stack.pop();
  stack.push(75);
  stack.push(-12);
  stack.printStack();
  System.out.println();
  System.out.println(&quot;=============================&quot;);
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  System.out.println(stack.pop());
  stack.push(1);
  stack.push(2);
  stack.push(3);
  stack.push(4);
  stack.push(5);
  stack.printStack();
 }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
If we run the program we will get output like this:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;================================================================================&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
Stack underflow&lt;br /&gt;
[&amp;nbsp;&amp;nbsp; &amp;nbsp;-12&amp;nbsp;&amp;nbsp; &amp;nbsp;75&amp;nbsp;&amp;nbsp; &amp;nbsp;50&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
====================&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
-12&lt;br /&gt;
75&lt;br /&gt;
50&lt;br /&gt;
Stack underflow&lt;br /&gt;
null&lt;br /&gt;
Stack underflow&lt;br /&gt;
null&lt;br /&gt;
Stack underflow&lt;br /&gt;
null&lt;br /&gt;
Stack underflow&lt;br /&gt;
null&lt;br /&gt;
[&amp;nbsp;&amp;nbsp; &amp;nbsp;5&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;3&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Please share your 
comments if you find anything incorrect, or you want to share more 
information about the topic discussed above.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;For further reading:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/03/stack-implementaion-in-java-using.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;S&lt;span style=&quot;font-weight: normal;&quot;&gt;tack &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Implementation &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;using &lt;b&gt;char&lt;/b&gt; array&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/03/stack-of-strings-implemented-in-java.html&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;S&lt;span style=&quot;font-weight: normal;&quot;&gt;tack &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Implementation &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;using array &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;of strings&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation using link list&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation by link list node,&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation using doubly link list&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Stack implementation by doubly link list node .&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;For complete listing see data structure and algorithm page&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/h3&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/1893438099446726801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2015/02/stack-implementaion-in-java-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1893438099446726801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1893438099446726801'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2015/02/stack-implementaion-in-java-using.html' title='Stack Implementaion in Java Using Integer Array'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-5574923849336230358</id><published>2015-02-16T07:32:00.003-08:00</published><updated>2016-10-05T23:27:01.161-07:00</updated><title type='text'>Data structure Questions on Link List</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;In my previous posts we talked about &lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/02/link-list-implementation-in-java.html&quot; target=&quot;_blank&quot;&gt;single link list&lt;/a&gt;, &lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/02/doubly-link-list-in-java.html&quot; target=&quot;_blank&quot;&gt;doubly link list&lt;/a&gt;. In this post I am sharing my code solution for few practice question which are also frequently asked in interviews too.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;S&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;ection in this post:&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/02/data-structure-questions-on-link-list.html#section1&quot;&gt;&lt;code&gt;&lt;/code&gt;Get Nth node value from end of link list. &lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/02/data-structure-questions-on-link-list.html#section2&quot;&gt;Print middle node value.&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/02/data-structure-questions-on-link-list.html#section3&quot;&gt;Get number of occurrence of a number in link list.&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/02/data-structure-questions-on-link-list.html#section4&quot;&gt;Detect loop&amp;nbsp; and print node where loop is&amp;nbsp; present in link list using &lt;b&gt;Floyd Cycle-Finding Algorithm&lt;/b&gt;:&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/02/data-structure-questions-on-link-list.html#section5&quot;&gt;Detect loop using &lt;b&gt;Richard Brent&#39;s algorithm&lt;/b&gt;:&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;h3 id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
Get Nth node value from end of link list&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Given a Linked List and a number n, we need to write a method&amp;nbsp; that returns the value at the nth node from end of the Linked List.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Solution: We maintain two references say First and Second.  First we move First 
to n nodes from head.After that we move both references one by one until First
reaches end. Now Second will point to nth node from the 
end.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Lets see in the code now:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;span style=&quot;font-size: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;

&lt;span style=&quot;font-size: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;

&lt;span style=&quot;font-size: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;code&quot;&gt;
public class LinkListPrograms {
        //Refer my link list post for link list implementation details
 SLL myList = new SLL();

 public static void main(String[] args) {
  LinkListPrograms myProg = new LinkListPrograms();
                
                myProg.myList.insert(new Node(11),1);
  myProg.myList.insert(new Node(42),2);
  myProg.myList.insert(new Node(43),1);
  myProg.myList.insert(new Node(44),1);
  myProg.myList.insert(new Node(45),2);  

  myProg.myList.insert(51,1);
  myProg.myList.insert(52,2);
  myProg.myList.insert(53,1);
  myProg.myList.insert(54,1);
  myProg.myList.insert(55,2);
  myProg.myList.insert(56,4);

  myProg.myList.insertAtStart(1);
  myProg.myList.insertAtStart(2);
  myProg.myList.insertAtStart(3);
  myProg.myList.insertAtStart(4);

  myProg.myList.insertAtStart(new Node(11));
  myProg.myList.insertAtStart(new Node(12));
  myProg.myList.insertAtStart(new Node(13));
  myProg.myList.insertAtStart(new Node(14));
  myProg.myList.printList(myProg.myList.getHead());
  System.out.println(&quot;Nth element form last is: &quot;+myProg.getNthFromLast(5));
      }

      public Integer getNthFromLast(int n) {
  // Check if list is already Empty
  if (myList.isEmpty()) {
   System.out.println(&quot;List is empty returning null;&quot;);
   return null;
  }
  Node firstNode, secondNode;
  firstNode = secondNode = myList.getHead();
  for (int i = 0; i &amp;lt; n; i++) {
   firstNode = firstNode.getNext();
   if (firstNode == null) {
    System.out.println(&quot;invalid number given returning null&quot;);
    return null;
   }
  }
  while (firstNode != null) {
   firstNode = firstNode.getNext();
   secondNode = secondNode.getNext();
  }
  return secondNode.getData();
 }
}&lt;/pre&gt;
&lt;span style=&quot;font-size: normal;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;If we run the program we will get output like this:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;========================================================================&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;List is: [&amp;nbsp;&amp;nbsp; &amp;nbsp;14&amp;nbsp;&amp;nbsp; &amp;nbsp;13&amp;nbsp;&amp;nbsp; &amp;nbsp;12&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;3&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;51&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;45&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp;&amp;nbsp; &amp;nbsp;42&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Nth element form last is: 44&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;h3 id=&quot;section2&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Print middle node value&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;We traverse linked list using two pointers.  Moving one pointer by one and 
other pointer by two.  When the fast pointer reaches end slow pointer 
will reach middle of the linked list.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Lets see the code now:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;code&quot;&gt;
public class LinkListPrograms {
        //Refer my link list post for link list implementation details
 SLL myList = new SLL();

 public static void main(String[] args) {
  LinkListPrograms myProg = new LinkListPrograms();
                
                myProg.myList.insert(new Node(11),1);
  myProg.myList.insert(new Node(42),2);
  myProg.myList.insert(new Node(43),1);
  myProg.myList.insert(new Node(44),1);
  myProg.myList.insert(new Node(45),2);  

  myProg.myList.insert(51,1);
  myProg.myList.insert(52,2);
  myProg.myList.insert(53,1);
  myProg.myList.insert(54,1);
  myProg.myList.insert(55,2);
  myProg.myList.insert(56,4);

  myProg.myList.insertAtStart(1);
  myProg.myList.insertAtStart(2);
  myProg.myList.insertAtStart(3);
  myProg.myList.insertAtStart(4);

  myProg.myList.insertAtStart(new Node(11));
  myProg.myList.insertAtStart(new Node(12));
  myProg.myList.insertAtStart(new Node(13));
  myProg.myList.insertAtStart(new Node(14));
  myProg.myList.printList(myProg.myList.getHead());
                myProg.printMiddle();
      }

      /* method to get the middle of the linked list */
 public void printMiddle() {
 /*
 * We will Traverse linked list using two reference namely fastRef and
 * slowRef Move one first by one and other by two.When the fast ref
 * reaches end slow ref will reach middle of the linked listCheck if
 * list is already Empty
 */

      if (myList.isEmpty()) {
          System.out.println(&quot;List is empty&quot;);
      }
      Node fastRef, slowRef;
      fastRef = slowRef = myList.getHead();
      while (fastRef != null &amp;amp;&amp;amp; fastRef.getNext() != null) {
         fastRef = fastRef.getNext().getNext();
  slowRef = slowRef.getNext();
     }
     System.out.println(&quot;Middle node is: &quot; + slowRef.getData());&amp;nbsp;
   }
}&lt;/pre&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;If we run the program we will get output like this:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;========================================================================&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;List is: [&amp;nbsp;&amp;nbsp; &amp;nbsp;14&amp;nbsp;&amp;nbsp; &amp;nbsp;13&amp;nbsp;&amp;nbsp; &amp;nbsp;12&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;3&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;51&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;45&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp;&amp;nbsp; &amp;nbsp;42&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Middle node is: 55&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;h3 id=&quot;section3&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Get number of occurrence of a number in link list&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;We are require to find how many time a number is present in the list&lt;span style=&quot;color: #110000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Lets see the code now:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;code&quot;&gt;
public class LinkListPrograms {
        //Refer my link list post for link list implementation details
 SLL myList = new SLL();

 public static void main(String[] args) {
  LinkListPrograms myProg = new LinkListPrograms();
                
                myProg.myList.insert(new Node(11),1);
  myProg.myList.insert(new Node(42),2);
  myProg.myList.insert(new Node(43),1);
  myProg.myList.insert(new Node(44),1);
  myProg.myList.insert(new Node(45),2);  

  myProg.myList.insert(51,1);
  myProg.myList.insert(52,2);
  myProg.myList.insert(53,1);
  myProg.myList.insert(54,1);
  myProg.myList.insert(55,2);
  myProg.myList.insert(56,4);

  myProg.myList.insertAtStart(1);
  myProg.myList.insertAtStart(2);
  myProg.myList.insertAtStart(3);
  myProg.myList.insertAtStart(4);

  myProg.myList.insertAtStart(new Node(11));
  myProg.myList.insertAtStart(new Node(12));
  myProg.myList.insertAtStart(new Node(13));
  myProg.myList.insertAtStart(new Node(14));
  myProg.myList.printList(myProg.myList.getHead());
                System.out.println(&quot;occurrence is: &quot;+myProg.getOccurrence(11));
      }

        /*
  * Counts the no. of occurrences of a node (search_for) in a linked list
  * (head)
  */
 Integer getOccurrence(int numTosearchFor) {
  // Check if list is already Empty
  if (myList.isEmpty()) {
   System.out.println(&quot;List is empty returning null;&quot;);
   return null;
  }
  Node currentNode = myList.getHead();
  int count = 0;
  while (currentNode != null) {
   if (currentNode.getData() == numTosearchFor) {
    count++;
   }
   currentNode = currentNode.getNext();
  }
  return count;
 }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;If we run the program we will get output like this:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;========================================================================&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;List is: [&amp;nbsp;&amp;nbsp; &amp;nbsp;14&amp;nbsp;&amp;nbsp; &amp;nbsp;13&amp;nbsp;&amp;nbsp; &amp;nbsp;12&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;3&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;51&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;45&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp;&amp;nbsp; &amp;nbsp;42&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;occurrence is: 2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 id=&quot;section4&quot; style=&quot;text-align: left;&quot;&gt;
 &lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Floyd&#39;s Cycle-Finding Algorithm&lt;/span&gt;&lt;/h3&gt;
&lt;div id=&quot;section4&quot; style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Floyd&#39;s cycle-finding algorithm&lt;span style=&quot;font-weight: normal;&quot;&gt;, also called the &quot;tortoise and the hare algorithm&quot; &lt;/span&gt;is a pointer algorithm that uses only two pointers, which move through the sequence at different speeds.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div id=&quot;section4&quot; style=&quot;text-align: left;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;img alt=&quot;&quot; height=&quot;311&quot; src=&quot;data:image/png;base64,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&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;section4&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Traverse linked list using two pointers.&amp;nbsp; 
Move one pointer by one and other pointer by two.&amp;nbsp; If these pointers 
meet at some node then there is a loop.&amp;nbsp; If pointers do not meet then 
linked list doesn’t have loop. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Lets see the code now:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;code&quot;&gt;
public class LinkListPrograms {
        //Refer my link list post for link list implementation details
 SLL myList = new SLL();

 public static void main(String[] args) {
  LinkListPrograms myProg = new LinkListPrograms();
                
                myProg.myList.insert(new Node(11),1);
  myProg.myList.insert(new Node(42),2);
  myProg.myList.insert(new Node(43),1);
  myProg.myList.insert(new Node(44),1);
  myProg.myList.insert(new Node(45),2);  

  myProg.myList.insert(51,1);
  myProg.myList.insert(52,2);
  myProg.myList.insert(53,1);
  myProg.myList.insert(54,1);
  myProg.myList.insert(55,2);
  myProg.myList.insert(56,4);

  myProg.myList.insertAtStart(1);
  myProg.myList.insertAtStart(2);
  myProg.myList.insertAtStart(3);
  myProg.myList.insertAtStart(4);&amp;nbsp;

               /*
               * Adding two nodes to make a cycle
               */ 
               Node nodeForLoop1 = new Node(22);
        Node nodeForLoop2 = new Node(23);
        nodeForLoop2.setNext(nodeForLoop1); 
                
        myProg.myList.insertAtEnd(nodeForLoop1);
  myProg.myList.insertAtEnd(nodeForLoop2);
      }

      /* Floyd&#39;s Cycle-Finding Algorithm */
 public boolean detectloop() {
  /*
   * The fastest way to detect the loop is to use Floyd&#39;s Cycle-Finding
   * Algorithm Move one pointer by one and other pointer by two. If these
   * pointers meet at some node then there is a loop. If pointers do not
   * meet then linked list doesn&#39;t have loop.
   */

  // Check if list is already Empty
  if (myList.isEmpty()) {
   System.out.println(&quot;List is empty returning false:&quot;);
   return false;
  }
  Node fastRef, slowRef;
  fastRef = slowRef = myList.getHead();
  while (fastRef != null &amp;amp;&amp;amp; fastRef.getNext() != null) {   
   fastRef = fastRef.getNext().getNext();
   slowRef = slowRef.getNext();   
   if (slowRef == fastRef) {
                                //Below method will print node where cycle is present
    getLoopStart(slowRef, fastRef);
    return true;
   }
  }
  return false;
 }

 private void getLoopStart(Node slowRef, Node fastRef) {
  /*
   * Move slowRef to Head. Keep fastRef at Meeting Point. Each are k steps
   * /* from the Loop Start. If they move at the same pace, they must *
   * meet at Loop Start.
   */
  slowRef = myList.getHead();
  while (slowRef != fastRef) {
   slowRef = slowRef.getNext();
   fastRef = fastRef.getNext();
  }
  // Now n2 points to the start of the loop.
  System.out.println(&quot;loop at: &quot; + fastRef.getData());
 }
}&lt;/pre&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;If we run the program we will get output like this:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;============================================================================&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;loop at: 22&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Is loop present: true&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp; &lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;h3 id=&quot;section5&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Richard Brent&#39;s Cycle-Finding Algorithm&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;In 1980, Brent invented an algorithm that not only worked in linear time, but required less stepping than Floyd&#39;s Tortoise and the Hare algorithm (however it is slightly more complex).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Brent&#39;s algorithm features a moving rabbit and a stationary, then 
teleporting, turtle. Both turtle and rabbit start at the top of the 
list. The rabbit takes one step per iteration. If it is then at the same
 position as the stationary turtle, there is obviously a loop. If it 
reaches the end of the list, there is no loop.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Of course, this by itself will take infinite time if there &lt;i&gt;is&lt;/i&gt;
 a loop. So every once in a while, we teleport the turtle to the 
rabbit&#39;s position, and let the rabbit continue moving. We start out 
waiting just 2 steps before teleportation, and we double that each time 
we move the turtle.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Why move the turtle at all? Well, the loop might not include the 
entire list; if a rabbit gets stuck in a loop further down, without the 
turtle, it will go forever. Why take twice as long each time? 
Eventually, the length of time between teleportations will become longer
 than the size of the loop, and the turtle will be there waiting for the
 rabbit when it gets back.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Note that like &lt;a href=&quot;http://binary-imaginers.blogspot.in/2015/02/data-structure-questions-on-link-list.html#section4&quot;&gt;Floyd&#39;s Tortoise and Hare algorithm&lt;/a&gt;, this one runs in 
O(N). However you&#39;re doing less stepping than with Floyd&#39;s (in fact the 
upper bound for steps is the number you would do with Floyd&#39;s 
algorithm). According to Brent&#39;s research, his algorithm is 24-36% faster on average for implicit linked list algorithms.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img alt=&quot;&quot; height=&quot;400&quot; src=&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdEAAAKQCAYAAADAL0DPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdeVhU5f8//ucMMyyCggTiBigqiiJkai7hiuaa4pYluWWpfTCXEjFNyyzX1NTM9reZkIKpmeSCWu64bwiIggFqKu6K7Ny/P/zO/FhmYBhmODPwfFwX18Wc5T7POcC8OOfc5z4yIYQAERERlZlc6gBERETmikWUiIhITyyiREREelJIHYDIECIiIqSOQFRpDBs2TOoIZkPGjkVUGchkMqkjEFUaLAu645EoVRqhoaEYMWKE1DGIzFZYWBgCAwOljmFWeE2UiIhITyyiREREemIRJSIi0hOLKBERkZ5YRImIiPTEIkpERKQnFlEiIiI9sYgSERHpiUWUiIhITyyiREREemIRJSIi0hOLKBERkZ5YRImIiPTEIkpERKQnFlEiIiI9sYhSlSSTyYp92djYwN/fH3FxcTq3Ex8fX+IDwUubr8oSHx8PALh+/TpycnJ03n5Rpa2fn5+PlStXwsfHB1ZWVrC2tkbr1q3xww8/FHoQc3lzlLWNoUOHavyZqL4+/fRTg+UouL8NzVz3P+mPRZSqrIiICJw8eRInT57EiRMnsG3bNgBAQEAA8vPzKyxHSEgIHB0dAQCurq5ITEzUu63S1p8zZw5WrFiB4OBgnDlzBkePHsWoUaMQEhKChQsX6tyOIbIUtHjxYvXPIiIiAgDUr0+ePInx48dXSI7yMtf9T/pTSB2ASCre3t5o1qxZoWk+Pj6oW7cuUlJS0KBBgwrJsWjRogrZDgB8++23iIiIQPfu3dXTXnrpJdSuXRtTp07FrFmzKixLQY0aNVJ/b2dnBwBo06aNJFmMyVT3P+mPR6JEBag+wJVKpXrakSNH0LVrV9ja2kKpVMLX1xdRUVGF1tuwYQPq1KkDa2trvPnmm3j8+LHO81WnF1Wnfb28vLSeAi4piy7rZ2Zm4s6dO8Wm9+vXD7/++qvWdkrbBzKZDLt374aPjw/GjBmjsQ1dTm2Xpuip2KJt6pKjqC1btsDT0xMKhQKtWrXCjh07tG7fnPc/GYkgqgQAiNDQ0DItHxcXp36dn58v0tLSxKRJk0Tnzp1Ffn6+EEKIJ0+eCDs7O9GlSxdx6tQpcenSJREUFCRcXFyEEELExcUJAMLb21scOHBAREVFCQ8PDzF27Fid5hfNUjRXQaVlKW19IYSYNm2akMvlYuDAgWLt2rXi8uXL6veqbf/out0WLVqIpUuXitOnT2vMcvv2bRESEqI1m4pqn2lStM2iy+qSo+Dro0ePCnt7e/Hrr7+KS5cuieDgYCGXy8W+ffuKbdvc978uQkNDte570ox7iyoFfYqopi87OzuRkJCgXu7+/ftixYoVIj4+Xj3t3Llz6g8a1Yd4VFSUen5kZKSwtrYWWVlZpc5XZdGliJaWpbT1hXj+z8K2bdvE6NGjhaurqwAg6tWrJ2bNmiUyMjI0tqPrdtesWVNsH5f1Q1yI8hfR0nIUfD148GCxZMmSQsv37dtX+Pv7F9t2Vdj/LKJlx2uiVGXt2rVLfS1OCIH79+8jJCQEQUFB2LNnDwCgZs2amDRpEv766y+EhoYiMTERhw4dKtbWK6+8ov6+c+fOyMzMRGpqaqnzC14LLI2uWUoik8kwcOBADBw4EEIIJCUl4c8//8TChQuRmpqK9evX673dgu9RSmXJcfjw4WLXIfv06YO5c+cWW5b7nzThNVGqstzd3dG4cWM0btwYTZo0Qbt27TB//nwcPnxYvYwQAn369MHHH38MW1tbDB8+HD///HOJ7aquQVlYWOg1Xxt9shT033//ISAgQH3bg0wmQ6NGjTB16lSEhoYiPDy8XNu1srIq0/sxBE23cJQlR1paGtq0aVPodpr3338fDx8+LLYs9z9pwiNRogKcnJyQkZGhfp2cnIy9e/fiwYMHcHBwAPD81ouijh49Cn9/fwDAoUOHUKNGDbi6uuLKlSslzi8LXbNoY29vj127diEyMhIBAQGF5mVkZOCFF14wynYNrWDhPHfuXLnacnZ2xtatW9GxY0f1tJSUFI1FlPufNOGRKFEBCsXz/ytzc3MBPD+VplQqER4ejlu3bmH//v3qexZv3rypXm/69Ok4dOgQ9u3bh6CgIIwbN67QkWZp8wtKSEjQ2INT1yza1q9WrRqmT5+OUaNGYfHixTh06BCOHTuG77//HhMmTMDUqVM15tB1u6W9lzt37mDmzJklLl+aOnXq4Msvv0RKSgoOHDiAJUuW6LSetn0yevRoTJw4EVFRUbh69So2b96Mtm3bYuPGjcWWNff9T0Yi3eVYIsNBOXvnqmRmZgorKyuRmpqqnrZu3TpRp04doVAoRKdOncSRI0dE8+bNRf369dUdWzZu3Chq1aolbGxsxLhx49SdREqbXzRLQECAkMlkws7OTmPukrLosn5+fr749ttvha+vr7C0tBQKhUJ4e3uL1atXF+olWrSd0raraX8WbaOkDkMFlbTczp07hYeHh5DL5cLX11dER0eX2rGnaI6Cy2RlZYkZM2YIFxcXIZfLRYMGDcS8efNETk6Oxu2b8/7XBTsWlZ1MiAJjTRGZKZlMhtDQUIwYMULqKKRFTk4O7OzskJWVJXUU0iIsLAyBgYFgWdAdT+cSUYVITEzE4MGDpY5BZFAsokRUIZo1a4bffvtN6hhEBsUiSkREpCcWUSIiIj2xiBIREemJRZSIiEhPLKJERER6YhElIiLSE4soERGRnlhEiYiI9MQiSkREpCcWUSIiIj2xiBIREemJRZSIiEhPLKJERER6YhElIiLSE4soERGRnlhEiYiI9KSQOgCRoURERECpVEodg8hsRURESB3B7MiEEELqEETlJZPJpI5AVGmwLOiOR6JUKfCP3vQFBgYCAEJDQyVOQmQ4vCZKRESkJxZRIiIiPbGIEhER6YlFlIiISE8sokRERHpiESUiItITiygREZGeWESJiIj0xCJKRESkJxZRIiIiPbGIEhER6YlFlIiISE8sokRERHpiESUiItITiygREZGeWESJiIj0xCJKRESkJxZRIiIiPbGIEhER6YlFlIiISE8sokRERHpiESUiItITiygREZGeWESJiIj0xCJKRESkJxZRIiIiPbGIEhER6YlFlIiISE8sokRERHpiESUiItITiygREZGeWESJiIj0xCJKRAaRlpaGxMREvddPTExEWlqaARMRGR+LKBEZhLOzM1atWqVXIUxLS8OqVavg7OxshGRExsMiSkQGM2jQILz22mtIT0/XeZ309HS89tprGDRokBGTERkHiygRGUzXrl1x584d2NnZITs7u9C8zMxMZGZmFpqWnZ0NOzs73LlzB127dq3ApESGwSJKRAY1cOBAAIC/vz+EEOrpW7ZswZYtW9SvhRDw9/cvtA6RuZGJgr/lRETllJubC6VSCQCYOXMmFi5cCACQyWQAoC6sH330ERYtWgQAyMnJgUKhkCAtUfnwSJSIDEqhUGDp0qUAgEWLFqm/L2jp0qXqArp06VIWUDJbPBIlIoN7+PAh6tati4yMDMhkMvz666946623AAAbNmzA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D+rWrYuUlBQ0aNCgQnIsWrSoQrZDpKtHjx7xdG4ZeXl5wd7eHtHR0WjRooXUccyeyR+JymQyREVFwd/fH5aWlnB1dcX69evV83NzcxESEgInJydYW1ujV69eSEhIUK+7e/du+Pj4YMyYMep1tmzZAk9PTygUCrRq1Qo7duwotL2tW7eic+fOUCqVqF+/PrZu3Yply5ahZs2asLOzw/z58wtlLK09bflVp0+9vLzKfApb9d93wWHTjhw5gq5du8LW1hZKpRK+vr6IiooqtN6GDRtQp04dWFtb480338Tjx491nq86naspd1U7DU+m4cmTJzwSLSO5XI6WLVvi/PnzUkepFEy+iAJAcHAwgoODkZiYiLfeegvvvPMOHj58CACYN28efv/9d4SHh+P48eOwtLRE//791ac5P/zwQ4waNUo9yPWxY8fw9ttvY+7cubhw4QJ69uyJgQMHYv/+/ertzZs3D1988QWuXr2K7t27Y/jw4Thy5AjOnDmDzz77DJ988gnu3r2rc3va8qseoBMXF6fzI4qEELh79y5mzZqFzp07q8dBffr0KXr37g0AOHjwIM6fP49OnTph5MiRhdZfvHgxNm3ahB07duDEiROYOnVqmearMhTN7ejoiJCQEJ3eA5GhPH36lCMW6cHDwwNJSUlSx6gcRAlGjBghRowYUdIiBhcXFycKxgIgfv75Z/XrzMxMAUDExcWJnJwc4eDgIHbt2qWef/36deHv7y9u3bolAIg1a9YUan/w4MFiyZIlhab17dtX+Pv7q7e3c+dO9bxz584JAOLGjRtCCCGys7PV29e1PW35VfNV32sCQOOXnZ2dSEhIUC93//59sWLFChEfH18se8H9GhUVpZ4fGRkprK2tRVZWVqnzi2YtLXdFMPbvpxS//1VJeffv06dPBQDx119/GTBV1fDpp5+K5s2bSx2jUjCLI9E2bdqovy94Y3VqaioePnwIPz8/9bR69eph7969cHFxAQC88sorhdo6fPgwunfvXmhanz59cObMGfVrd3f3YturU6cOABR76oQu7WnLr6tdu3bhypUruHLlChISEhAdHY3WrVsjKChIvUzNmjUxadIkXL58GXPnzkVgYCBee+21Ym0V3B+dO3dGZmYmUlNTdZ5PZCpu3boFAHB2dpY4ifnx8PDAtWvX+JBuAzCLjkXaHpek+gUo6dmVRYtWWlpaoaKmUvB6nqZre9qu9+nSXnkf9+Tu7o7GjRsXmjZ//nz06tVL/VoIgT59+uD27dsIDAzE8OHDMXbsWPTs2VNru6qMFhYWGm9XKTifyNTcu3cPAIuoPho2bIiMjAz8999/JvNoPHNlFkei2ri6usLW1rbQ6Bu3b99G7dq1ERMTo3EdZ2dnHDlyBEII9VdycjLOnTunVwZDt6crJycnZGRkqF8nJydj7969OHjwIEJCQjBgwACN14oKDvd16NAh1KhRA66urjrPJzIVqiNR1Vkn0p2HhwcA8LqoAZh1EVUqlRg/fjwmTJiAv//+GxcvXsT48ePh4OAALy8vjeuMHj0aEydORFRUFK5evYrNmzejbdu22Lhxo14ZDNFeQkIC7ty5U6btKhTPTyKonqdYs2ZNKJVKhIeH49atW9i/fz/Gjx8PALh586Z6venTp+PQoUPYt28fgoKCMG7cuEJHmqXN15b7zp07mDlzZpneQ2Ukk8nwxhtvaJ2nGqxCJTc3F19//TVatWoFS0tL2NraolOnTggPDy/xVJumtooqS9u6Lqtp8A9nZ2e89957ePr0aWm7x6Du3r0LOzs7DkCvB1UP/JSUFKmjmD2zOJ1bkkWLFkEIgaFDhyI9PR2dOnXCn3/+qfWD//PPP4dMJsPIkSORlpYGNzc3BAUFYdasWXptv7ztBQQEICAgALa2tnjy5InO23Vzc4OVlRVu3bqF+vXrw97eHj/88AM++ugjBAUFoUOHDlizZg3effddtGvXTn2ry8yZMzF06FA8efIEI0aMwIIFCwq1W9p8bbnv37+PxYsX815SAJs2bcLo0aPRp0+fEpfLzc3F4MGDcezYMXzwwQfo2LEjcnNzsXfvXowZMwbHjh3DihUr9MpQlrbLmiMiIkJ9b3JeXh5iY2PxySefIDc3Fz/88INeefWhOutEZSeTyWBnZ8enuRhCSb2O2DuRdJWdnS0sLS0rdJum2DsXgOjevbtwd3cXT58+LTavYI/m5cuXCxcXF/Hvv/8Wa+fEiRPCysqqUM/zktoqqixtl2VZbdv966+/hL29vdY8mpT35zdt2jTRrl07vdev6tzc3MSiRYukjmH2zPp0LpmOxMREDB48WOoYJmHBggXIzs7Gp59+WuJyX3/9NebNm1eoN7hK27ZtMXHiRKxZs0avDGVp2xA5atSoUegafUW4ffu2utc8lZ29vT0fam4ALKJkEM2aNcNvv/0mdQyTYG9vj1WrVmHFihVaO5jduXMHSUlJ6N+/v9Z2+vfvr9fTNsrSdnlz5OXlISYmBsHBwejWrVuZs5ZHamoq6tevX6HbrExsbW1ZRA2ARZTICIYMGYLevXtj/PjxyMvLKzZfNeJWST1La9eurb6NoyzK0rY+OVTDPcpkMigUCrRs2RIA8OOPP5Y5a3kkJyfDzc2tQrdZmdja2uLZs2dSxzB7LKJERiCTybBmzRpcunRJ46lQBwcHAFAPH6lJWloaatasWeZtl6VtfXIUHPzjypUruHnzJo4ePVqhR4W5ubm4efMmi2g52NraFhs7m8qORZTISNzd3fHZZ59h9uzZxUZ9cnZ2RsOGDREZGal1/cjISHTs2LHM2y1L2/rkUA3+ofqS4rrkzZs3kZubq/E6LumGA/cbBosokRFNmTIFjRs3xvvvv19oukwmw6RJkzBnzhyNwyqeOnUKa9aswaRJk8q8zbK0bcwcxqS6v5FHoiQ1g98nGh8fDy8vryozJuP169fh4uKi19B+5VnX1FXm91YWCoUC33//Pdq1a1ds3uTJk/H333+jTZs2CA4ORvv27ZGbm4uoqCh89dVXGD9+fKGhHYuKiYnROMBBmzZtytR2eXNIITk5GZaWlrxPlCRn9oMtSM3V1RVxcXHFHppt7HVNXWV+b2XVtm1bvP/++1i1alWh6QqFAlu3bsU333yDn376CbNmzYKFhQVeeukl/Pjjj1pHPlIZNmyYxulCiDK1Xd4cUkhJSUH9+vUhl/NkGkmLRZTIgLSdgVm5ciVWrlxZbLpCocDkyZPVz7st73b0bVvXZU3lDBN75pKpMPq/cTKZDFFRUfD394elpSVcXV2xfv169fzc3FyEhITAyckJ1tbW6NWrFxISEtTr7t69Gz4+PhgzZox6nS1btsDT0xMKhQKtWrXCjh07Cm1v69at6Ny5M5RKJerXr4+tW7di2bJlqFmzJuzs7DB//vxCGUtrT1t+1VNOVF3+NTl58iS6d++OatWqwdraGp07d8a5c+e0rqstS3x8PGQyGbZv34769eujWrVqGDNmTIld1Evat+np6Xj77bdhZ2eH6tWrY9y4cYXaKjo2q2r75dkvpe1nTT9rIk2uXLkCT09PqWMQGX7YP00P1fb19RU7d+4UKSkpYubMmUKpVIoHDx4IIYT4+OOPRaNGjcS+ffvEuXPnRP/+/UWTJk1EXl6eACBatGghli5dKk6fPi2EEOLo0aPC3t5e/Prrr+LSpUsiODhYyOVysW/fvkLbO3jwoPj333/FyJEjhVKpFIMGDRJJSUli2bJlQiaTibS0tDK1py0/Shh+LT09XTg6OorZs2eLixcviosXL4p33nlHeHl5aVy3pCyq/dqqVStx4MABsWfPHtGwYUMRFBSk9WdR0r6dOHGi8PLyEocOHRKHDx8WXl5e4v/+7/8K/dwKZivrz7Us7021fNGfdWlMcdg/0l159q+rq6tYsmSJgRNVLfz9NowKKaI///yz+nVmZqb6AzYnJ0c4ODgUGh/0+vXrwt/fX9y6dUsAEGvWrCnU/uDBg4v98fTt21f4+/urt7dz5071vHPnzgkA4saNG0KI52O8FvyA16U9bflV87UV0aSkJAFAJCYmqqc9evRIbNu2TeO6JWVR7deoqCj1vMjISGFnZydycnKKbbukfZuSkiJsbGzE/v371fP27t0rbG1t1W3pUkTLsl902c9Ff9alYRE1b/ru3/T0dCGTycQff/xhhFRVB3+/DaNCrsoXfGh1wYdkp6am4uHDh/Dz81NPq1evHvbu3aseQeWVV14p1Nbhw4fRvXv3QtP69OmDM2fOqF8XvHdMtT3VvWxFe4vq0p62/KVp0KABhg0bhhYtWqBv3774/PPPkZCQgIEDB2pcXpcsBfdH586d8fTpU1y/fr1YWyXt2+zsbGRkZKB9+/bqee3bt0d6errGtrQpy34p63sj0iYhIQFCiGIPqieSQoV0LNJ2m4P4f50UtD22DCj+4ZyWllbow1ul6PW6kuaXtT19b9OQyWQIDw/HhQsXsHfvXhw5cgQLFy7EuHHjivXU1DWLpulCQ2ePkvatph6NJbUFADk5OcWmlWW/6PLeyvIPClVdly9fhoWFBYsomQRJ+4e7urrC1tYW0dHR6mmqZwTGxMRoXMfZ2RlHjhyBeH4qGkIIJCcnax3ouzSGbq+gu3fvYs6cOfDx8cEHH3yA33//HZGRkfj+++/1znL06FH194cOHUK1atU0DrdW0r59+PAhqlWrhuPHj6vnRUdHw9bWtlBbBQtnefeHMfczVS1Xr16Fm5sbLC0tpY5CJG0RVSqVGD9+PCZMmIC///4bFy9exPjx4+Hg4AAvLy+N64wePRoTJ05EVFQUrl69is2bN6Nt27bYuHGjXhkM0V5CQgLu3LlTbHr16tWxevVqzJ07FzExMYiJicEvv/wCb29vjevqkmXy5Mk4dOgQ9u3bh6CgIIwePVrjEWFJ+9bHxwejR4/GpEmTcPToURw9ehTvv/8+xo4dq26rTp06+PLLL5GSkoIDBw5gyZIlOu8Pfd8bkS4uX76Mpk2bSh2D6LmSLpgaqmNR0Y43BadlZWWJqVOnCkdHR2FlZSV69OghEhIStK6blZUlZsyYIVxcXIRcLhcNGjQQ8+bN07lDjKbtl6W9otMCAgKETCYTdnZ2GvfHvn37RKtWrYRSqRTVqlUTWVdv9QAAIABJREFUffv2FVevXtW4bklZVO/jp59+Es7OzsLGxkaMGjVKpKena/1ZlLRv09PTxbhx40T16tVF9erVxbvvvisyMjLU6+7cuVN4eHgIuVwufH19RXR0dJl+rmV5b9raKw07Fpk3ffdvhw4dxPvvv2+ERFULf78NQyaE9runAwMDAQChoaFGLOOki6o2nKIujP37yd9/49J3/zo6OuLzzz/H//3f/xkjVpXB32/D4JhZRGQ2bt26hQcPHmi93ENU0VhEzYRSqUSjRo2kjkEkqdjYWABA8+bNJU5C9ByLqJlo1KgRrl69KnUMIkldunQJL7zwgvo+ciKpsYgSkdmIjY1FixYtpI5BpMYiSkRm49KlSyyiZFJYRInIbFy6dInXQ8mksIgSkVm4desW7t+/zyJKJoVFlIjMgqpnLk/nkilhESUisxAbG8ueuWRySn2KS1hYmMYneBBJLSIiAiNGjDDqNvj7bzxl/fnFxsbyVC6ZnBKLaLt27fgBYkCqp6a0a9dO4iSVw7Bhw4y6L/n7b1xl/fldunSJIxWRySlx7FwyLI5VSaQ/Z2dnzJkzB5MnT5Y6SqXAzyPD4DVRIjJ5d+/exd27d9GsWTOpoxAVwiJKRCYvLi4OAHg6l0wOiygRmbzY2FhUr14drq6uUkchKoRFlIhMXlxcHHvmkkliESUikxcXF8froWSSWESJyOTFxcXxeiiZJBZRIjJpT548QWpqKk/nkkliESUikxYfHw8APJ1LJolFlIhMWlxcHKytreHh4SF1FKJiWESJyKTFxsbC09MTFhYWUkchKoZFlIhMGgeeJ1PGIkpEJo09c8mUsYgSkclKT09HUlISWrZsKXUUIo1YRInIZF28eBH5+fksomSyWESJyGRduHAB1atXZ89cMlksokRksi5evAhvb2/I5fyoItPE30wiMlkXL17kqVwyaSyiRGSyLly4wCJKJo1FlIhMUkpKCh48eAAfHx+poxBpxSJKRCbp4sWLAABfX1+JkxBpxyJKRCbp4sWLcHNzg729vdRRiLRiESUik8TroWQOWESJyCSdP3+e10PJ5LGIEpHJycrKQkJCAq+HksljESUikxMXF4fc3FyeziWTxyJKRCbn7NmzsLGxgaenp8b5zZo1g0wmQ0hIiNY2VMsQGROLKBGZnLNnz8LHxwcKhaLE5ZYvX47Y2NgKSkVUHIsoEZmc06dP46WXXip1OYVCgUmTJkEIUQGpiIpjESUik5KXl4fz58/rVEQ/+ugj/P3339i4cWMFJCMqjkWUiExKQkIC0tPTdSqiM2bMgIeHBz788EM8fvy41OX/++8/vP3226hVqxYsLCzg7u6O4OBgPHnyxBDRqQpiESUik3L69GlYWlrC29u71GWtra2xevVq/Pfff/jkk09KXPbevXvo0KED/ve//6F79+744osv4OnpiS+//BKvvvoqcnJyDPUWqAphESUik3LmzBl4e3vD0tJSp+X79u2LgIAArF69GhcuXNC63OLFi5GcnIxPPvkEGzduxMyZM7Fnzx4MHz4c0dHR2LBhg6HeAlUhLKJEZFLOnTun06ncglasWAFLS0sEBQVp7WT0xx9/QC6XY9q0aeppMpkMH3zwAQBg+/bt+oemKotFlIhMhhACZ8+eRatWrcq0XoMGDfDxxx/j8OHDWL9+vcZlkpKS4OrqWmxAe9Vp46SkJP1CU5XGIkpEJiMpKQkPHz4s85EoAHz44Ydo0qQJgoOD8eDBA53Xk8uffwzyNhnSB4soEZmMM2fOwMLCQq+B562srPD1118jLS0Nc+bMKTa/YcOGSE1NxaNHjwpNj4mJUc8nKisWUSIyGWfOnEGzZs1QrVo1vdZ/9dVXMXToUKxduxY3btwoNG/AgAHIz8/HypUr1dOEEFi6dCkAYODAgfoHpyqr5DG1iIgq0JkzZ9C6detytbF8+XLs3LkTT58+LTR95syZ2Lx5Mz755BNcvnwZPj4+2LdvH6KiotChQweMHDmyXNulqolHokRkMs6cOVPmTkVFubq6Yu7cucWmOzk54ejRoxg9ejT27NmDjz76CHFxcZg+fTr27NkDpVJZru1S1cQjUSIyCUlJSbh79y5efvnlUpeNj48vcf6MGTMwY8aMYtPr1q2LdevW6RuRqBgeiRKRSTh58iQUCgVefPFFqaMQ6YxFlIhMwokTJ9Cy5f/H3n2HRXGubQC/Z4sUQQVBxY4dNaCCigRL7EKMJTEYTA4qJpJo0BhLToyx95agnBRPFAuJijGeKEEFVKSIgoiiQYgdYpSuiIhb3u8Pv92LhQUW2N3ZXZ7fdXEp874zc89QHmbmnZnX6jyoiBA+UBElhBiE5ORkuLm58R2DkFqhIkoI4Z1MJsPly5cxcOBAvqMQUitURAkhvLtx4wZKSkroSJQYHSqihBDeJSUlwdLSUqPXnxFiSKiIEkJ4d+nSJbi6ukIoFPIdhZBaoSJKCOFdUlIS+vfvz3cMQmqNiighhFelpaVIS0ujIkqMEhVRQgivrly5AqlUSkWUGCUqooQQXiUlJcHOzg6dO3fmOwohtUZFlBDCq0uXLtFRKDFaVEQJIbyiIkqMGRVRLcrNzcXt27frPP/t27eRm5urxUSEGLbc3FzcunULHh4efEchpE6oiGqRvb09goKC6lQIc3NzERQUBHt7ex0kI8QwJSYmQiAQwN3dne8ohNQJFVEtmzRpEsaPH4+SkhKN5ykpKcH48eMxadIkHSYjxPDExcXByckJTZs25TsKIXVCRVTLhg0bhpycHFhZWeHly5cqbS9evMCLFy9Upr18+RJWVlbIycnBsGHD9JiUEP4lJibSUSgxalREdWDChAkAgBEjRoAxppx+9OhRHD16VPk5YwwjRoxQmYeQhkIqlSI5ORmDBg3iOwohdUZFVAc2b94M4NWpqi+//LLKfl9++SXi4uJU5iGkobh69SqeP39OR6LEqFER1QGRSKQsihs2bFBbIDdv3owNGzYo/y8SifSakRC+JSYmolmzZnBycuI7CiF1RkVUR2bNmgULCwsAwJIlSxAaGqpsCw0NxZIlSwAAFhYWmDVrFi8ZCeFTYmIiBg0aBIGAfg0R40XfvTrSrFkzBAQEQCwWgzGG6dOnK9umT58OxhjEYjECAgLQrFkz/oISwpP4+Hg6lUuMHhVRHZo/fz7kcjkAKP8t/3+5XI758+fzko0QPj169Ah3796lQUXE6FER1aH27dtj0qRJEIvFlYqoWCzGpEmT0L59ex4TEsKPCxcuQCAQYMCAAXxHIaReqIjq2KJFiyCRSCpNl0gkWLRoEQ+JCOFfYmIiPWSBmAQqojo2YMAAeHp6QigUKqcJhUJ4enrSX+GkwVIMKiLE2FER1YOFCxdCJpMpP5fJZFi4cCGPiQjhz8uXL3Hp0iV4enryHYWQeqMiqgfjx49Hhw4dwHEcOI5Dhw4dMH78eL5jEcKL5ORkvHjxAq+//jrfUQipNyqieiAQCLB06VIwxsAYw9KlS+neONJgxcXFoVWrVujSpQvfUQipt0qPyYmLi0NQUBAfWUxa+dO5J0+eRGRkJI9pTFNgYCCdIjQC8fHx9HUiJqPS4dCDBw8QFhbGRxaTJhQK4eTkBCcnJ5VBRkQ7wsLC8ODBA75jkBowxqiIEpNS5QNbDx8+rM8cDcLjx48BAC1btuQ5ienhOI7vCEQD6enpyM/Pp+uhxGTQU8/1iIonaeji4uJgZWWFPn368B2FEK2g0S2EEL1RPC+X3lpETAUVUUKI3sTFxdH1UGJSqIgSQvTi4cOHuHPnDl0PJSaFiighRC/i4+MhEono9WfEpFARJYToRVxcHPr06QMrKyu+oxCiNVRECSF6QddDiSmiIkoI0bmnT5/i6tWrVESJyaEiSgjRudjYWMjlcgwdOpTvKIRoFRVRQojOxcTEoHfv3rCzs+M7CiFaRUWUEKJzMTExGDJkCN8xCNE6KqKEEJ16+vQpLl++jGHDhvEdhRCtoyJKCNGpuLg4uh5KTBYVUUKITsXExKBnz56wt7fnOwohWkdFlBCiU+fOnaNTucRk1buIchyn8mFlZYUJEyYgMzNTbd+bN2+qXc7NmzfBcRzkcrlG6+E4DhYWFhgxYgTS09M1zqtYT13bK25HdnY2JBJJtX1tbW3x8uXLSm0vX76Era2tVt+FWV2ed955R+1+VHysWLFCa+ut7mtd0cuXL7F06VK0b98eIpEIr732Gi5evFjnLMRwFBcXIyUlhU7lEpOllSPRsLAwJCUl4dKlS/jll18gkUjg4eGBrKwslX5LliyBra1ttcuSyWQ1rkexrmPHjgEAJk6cWGXx1YXy29GuXTvcvn272v6FhYWIioqqND06OhpFRUVazVZdno0bNyr3X1hYGAAoP09KSsJHH32kk/XWZNmyZThy5AiCg4Nx7do1vP766/Dx8dHr15ToRlxcHGQyGRVRYrK08lK/3r17o0ePHsrPvb29MW7cOKxatQq7du1STt+wYUONy5JKpRCLxRqtBwCcnZ3RunVrPHjwAB07dqzbBtSSJttRnqenJw4dOgQvLy+V6WFhYfD09ERsbKw241Wpc+fOyv8rnl/q5uaml3VXZ//+/di9ezfGjh0LANi0aRN++OEH3L9/H46OjjynI/Vx7tw59OzZEy1atOA7CiE6oZNrogKBAAsXLsSvv/4KxphyuuIUH2MMQUFB6NChA8RiMfr3748LFy4AqP5IVB1FMShfeOPj4zFs2DA0btwYYrEYLi4uiIyMVJnvwIEDcHBwgLm5Od577z08ffpU43bFdihOwzo5OVV7StbHxwfHjh1DWVmZcppEIsGxY8fw7rvvVup/9OhRdOvWDSKRCH379sWJEyc0atc0T00qnoqteIqb4zicOnUKzs7OmD59ukbrrW6b5s2bp1LMFUfnjRs3rvM2EMNw/vx5uj+UmDZWQWhoKFMzuUoAWHp6eqXp+fn5DAB7+PBhpb4hISHMzMyM7dy5k6WlpbFdu3Yxa2trBoAVFhZqtB65XM5yc3PZ3Llz2ZAhQ5hcLmeMMVZcXMysrKzY0KFDWXJyMrtx4wabM2cOa9myJWOMsfT0dAaA9e7dm8XExLDIyEjWqVMnNmPGDI3aK2apavvL901LS2P29vbs2LFjyukRERHMzs6OpaWlqezvhIQE1rRpU7Z//35248YNtmjRIiYQCFh0dLRG7TXlUVBspyb7umJfAKxXr15s8+bN7PLly2rnKf95TZnLk8vlzMfHh3l7e9e4DRUzh4aG1moeoltPnz5lIpGIHTp0iO8oRA1fX1/m6+vLdwyjp7MiKpVKGQCWkZFRqW+/fv3Y6tWrVfqvW7eOAWC5ublVrkfdh5WVFcvMzFT2KygoYNu3b2c3b95UTktNTVVuk6IgREZGKtvDw8OZubk5Kysrq7G94jZrUkTT09PZxx9/zN577z3l9JkzZ7LZs2dXKlCTJ09mmzZtUlmGl5cXGzFihEbt+iqiwcHB1c5T/vOaMpe3YsUK1qFDB/bo0aMat6Hi+qmIGpaIiAjGcRx7/Pgx31GIGlREtUNnt7goTslZW1tXart+/bry+pfCyJEjAVR/OvfkyZP466+/8NdffyEzMxOJiYlwdXXFnDlzlH1sbGwwd+5cZGRk4Ouvv8a0adMwfvz4Sst6/fXXlf8fMmQIXrx4oTIQqqb22vLx8cHvv/+O58+fQyKR4LffflN7KjcuLg7Dhw9XmTZu3DikpKRo1K4v5fdPTTTNXFBQgDVr1uCXX35By5YttZKT8CcmJgY9evSg66HEpGllYJE6SUlJsLGxQatWrSq1CQSVa7fiWppUKq1ymR06dECXLl1Upq1evRpjxoxRfs4Yw7hx4/D48WNMmzYNPj4+mDFjBkaNGlXlchXrFgqFam8PKd9eV56enrC2tkZERITyWu2QIUNw69YtlX65ublqB/soMtTUrgvq9omZmZnG82uaOScnB1KpFO7u7rUPSQwO3R9KGgKdHInKZDJs3boVkydPVvvL/bXXXsOpU6dUpp05cwZA9UVUHTs7O5SWlio/v3//PqKionD+/HksWbIEb731Fpo2bVppvoSEBOX/Y2Nj0aRJE7Rr107j9toSCoWYMmUKDh06hLCwMLz99tsQiSr/DWNvb4/4+HiwV6fawRjD/fv3kZqaqlG7tpQvnPVdtqaZu3XrhuLiYp3+QUD049mzZ0hOTqYiSkyeVoro9evXkZycjKSkJPz+++/w9vbGlStXsHz5crX9AwMDsXr1agQHB+PGjRvYvXs3tm3bBqD2o3MVhUhRfG1sbCAWi3H48GE8evQIZ86cUd7/+PDhQ+V8CxcuRGxsLKKjozFnzhz4+/urHGnW1F5eZmYmcnJyaszq4+ODEydOVHkqFwD8/PwQEBCAyMhI3Lp1C0eOHEH//v1x8OBBjdprk6cqDg4O2LJlCx48eICYmBhs2rRJo/mqWq8mmQEgLy8Pa9asqXNuYjji4+MhlUppZC4xfRUvktZlYFH5D0tLS/bmm2+qDOwp3zc9PZ3J5XIWFBTE2rVrx4RCIXNxcWFxcXGVBiKpm7eiFy9eMDMzM5aVlaWcFhISwhwcHJhIJGKDBw9m8fHxrGfPnqxt27bKQTIHDx5kLVq0YBYWFszf35+VlpYyxliN7RWzTJw4kXEcx6ysrGrMLZPJWNu2bVnLli2ZVCpVWZ9CWVkZW7x4MWvZsiUTCASsY8eObOXKlUwikWjUXlMeheoGFkVERLBOnToxgUDAXFxcWGJiYqWBRRW/FhXXW75PTZk1yVQT0MAig/LFF18wJycnvmOQatDAIu3gGCt3IyeAn3/+GdOmTUOFyYQYNI7jEBoaCl9fX76jEAAeHh7o06cP/vOf//AdhVRh2rRpAIDQ0FCekxg3egA9IUSrSkpKkJycTKdySYNARZQQolVxcXGQSCQ0qIg0CFRECSFapbg/VN3tbYSYGiqihBCtiomJobe2kAaDiighRGtKSkqQlJREp3JJg0FFlBCiNQkJCZBIJHQkShoMKqKEEK05e/YsunfvDgcHB76jEKIXVEQJIVoTFRWFESNG8B2DEL2hIkoI0YrCwkKkpKQo38hESENARZQQohWKl0i88cYbPCchRH+oiBJCtCIqKgpubm5o1qwZ31EI0RsqooQQrYiOjqbroaTBoSJKCKm3+/fv46+//sLo0aP5jkKIXlERJYTUW2RkJCwtLeHu7s53FEL0ioooIaTeoqOjMWTIEJiZmfEdhRC9oiJKCKkXuVxO10NJg0VFlBBSL9euXUNubi5GjRrFdxRC9I6KKCGkXiIjI2Fvbw9nZ2e+oxCid6KqGt5991195jB5jDFwHMfb+iUSCYqLi2Fra8tbBmKazpw5g5EjR/L6/U0IXyodibZv3x5TpkzhI4vJkslkOHLkCP755x/eMmRmZuLs2bO4d+8ebxl0acqUKWjfvj3fMRqcsrIyxMTE0KP+SINV6UjU09MTnp6efGQxWQ8fPsTRo0exceNGeHh48JJBJpPhq6++wsaNGzFgwABs374dYrGYlyzEdCQkJKC0tJQGFZEGi66J6kF+fj4A8HoqVSgUYv369Th48CBCQkIwatQo5Obm8paHmIaoqCh07doVHTp04DsKIbygIqoHiiJqY2PDc5JX17rj4+ORlZUFV1dXpKSk8B2JGLHIyEgalUsaNCqielBYWAiA3yPR8lxcXHDp0iV069YNnp6eCA0N5TsSMUKKV5/RqVzSkFER1YOCggJYW1sb1DXI5s2b49SpU/j444/x/vvv4/PPP4dMJuM7FjEiZ8+eBUCvPiMNGxVRPSgsLISdnR3fMSoRCoXYunUr9u/fj++++w5jxoxRnnompCaKV58ZwmUKQvhCRVQP8vPzDfoXzfvvv4+4uDhkZmZiwIABuHbtGt+RiBGIioqiU7mkwaMiqgf5+fkGcz20Kv369UNycjLatWsHDw8PHD58mO9IxIApXn1G94eSho6KqB4UFBQY9JGoQosWLRAZGYnp06dj6tSp+PLLL+k6KVErOjoalpaWvN33TIihoCKqB4WFhQZ/JKogFouxc+dO/Pe//8W2bdswfvx4FBUV8R2LGJjIyEh69RkhoCKqFwUFBQY5sKg6M2fOxLlz53D16lUMHDgQf/75J9+RiIFgjCE6OhrDhw/nOwohvKMiqgeGPrCoKu7u7khOToadnR3c3d3xv//9j+9IxACkpqbSq88I+X9URPWgoKDAaE7nVuTg4IAzZ87Ax8cHkyZNwooVK8AY4zsW4dGpU6fg4OAAFxcXvqMQwrsqX4VGtKOsrAwlJSVGeSSqYGZmhl27dsHV1RWBgYG4cuUK9u/fjyZNmvAdjfDg5MmTGD16NL36jBDQkajOGdoj/+ojICAAZ86cwaVLl9C/f3/cuHGD70hEz4qLi5GQkIDRo0fzHYUQg0BFVMcKCgoAwOgGFlXF09NT5TrpoUOH+I5E9Cg6OhoymQxjxozhOwohBoGKqI4Z0htctKVNmzY4d+4c/Pz8MHXqVHz++eeQSqV8xyJ6cPr0abi5uaF58+Z8RyHEIFAR1THFkagpnM4tT3E/6b59+/D9999j5MiRePz4Md+xiI5FRETQUSgh5VAR1bGCggJYWlqa7E3pH3zwARISEpCdnQ1XV1dcuHCB70hERzIyMnDv3j0qooSUQ0VUx4zpaUV15eLiguTkZPTp0wfDhg3Df/7zH74jER04deoUbGxs4O7uzncUQgwGFVEdM8anFdVFs2bN8Pvvv+PLL7/Ep59+Cj8/P5SWlvIdi2jRqVOnMHLkSAiFQr6jEGIwqIjqmDG8wUVbBAIBli9fjuPHj+P48ePw8PDA3bt3+Y5FtKCsrAxnz56lW1sIqYCKqI4ZyxtctMnLywvJyckAADc3N0RERPCciNRXTEwMSktLMXbsWL6jEGJQqIjqmDE/8q8+OnXqhPj4eHh7e+PNN9/EypUrIZfL+Y5F6uj06dPo3bs32rZty3cUQgwKFVEda6hFFAAsLS2xb98+BAUFYe3atXjrrbfotWpG6tSpUzQqlxA1qIjqWGFhYYO/MX3OnDk4d+4cUlNT4ebmhqtXr/IdidRCVlYWrl+/TkWUEDWoiOpYXl4ebG1tIZfL4e7uDo7jcODAgSr7x8TEgOM4uLq6QiaT6TGpbnl4eCA5ORlt2rSBh4dHtftAF3r06AGO47BkyZIa+xBVp06dgoWFBYYMGcJ3FEIMDhVRHZJKpSguLoaNjQ0EAgG+//57CIVCLFq0CE+fPq3UXyaTYd68eQCA4OBgk7uVoFWrVoiOjsbs2bPxwQcfIDAwEBKJRK8Ztm3bRi8Yr6VTp05h+PDhJvvAEELqg4qoDine4KIYndunTx/MmzcPjx49wqpVqyr1/+mnn3D16lXMmjXLZG9oF4lE2LZtGw4ePIg9e/bgjTfewMOHD/W6/rlz59I7UTUkk8kQFRVFt7YQUgUqojqkGETTrFkz5bQVK1agbdu2+Pbbb1WOiIqKirB06VLY2Nhg/fr1es+qbz4+PkhMTERubi5cXV0RGxurl/X++9//xtmzZ3Hw4EG9rM/YXbhwAUVFRXRrCyFVoCKqQxWPRAHA2toaQUFBkEqlCAwMVB4RrVq1Cnl5eVi/fn2lJxxJpVJs3rwZ3bt3h1AoRIsWLRAQEIC8vDxlH7lcjh07dsDV1RUWFhYQi8Xo2bMntmzZYrC3lvTq1QtJSUkYOHAgRowYgW+++Ubn61y8eDE6deqEzz//XO0p9Yr++ecfzJw5Ey1atIBQKESHDh2waNEiFBcX6zyrITh9+jQcHR3RrVs3vqMQYpgY0ZmTJ08yAKyoqEhlulwuZ97e3gwACwsLY+np6UwkEjE3NzcmlUor9X377bcZADZ48GC2bt069v777zOO41j37t3ZkydPGGOMLViwgAFgrq6ubPXq1Wz16tWsV69eDABbt26d3ra5LuRyOVu7di0TCoXMx8eHFRcXa30d3bt3Z4pv9/DwcAaAzZ8/v8o+jDGWl5fHOnTowAAwHx8ftn79ejZy5EgGgLm7u7OXL19qPaehGTBgAPv444/5jkF0wNfXl/n6+vIdw+hREdWhgwcPMqFQqLbt7t27zMLCgrVr146NGDGCcRzHLl68WKnfoUOHGAA2adIkJpPJlNN//PFHBoAtW7aMMcaYlZUVs7OzY2VlZco+//zzD2vZsiUbPXq0lrdMNyIjI5m9vT3r2bMnS09P1+qyKxbIiRMnMqFQyK5evVpln0WLFjEAbPny5cppcrmc+fj4MABs9+7dWs1oaHJzc5lAIGDHjh3jOwrRASqi2kFFVIe+++471rx58yrbN2zYwAAwAOyjjz5S22fMmDEMAEtOTlaZLpPJmKOjI3NxcWGMMWZnZ8caNWrE/vjjDyaXy7W3EXp2//59NmDAANakSRP266+/am25FQuk4o8YT09P5f6q2Kdbt25MIBBUOpNw8eJFBoBNnDhRa/kMUWhoKBOLxezp06d8RyE6QEVUO+iaqA7V9NzcBQsWoFWrVgCAdevWqe2jeAatSCTCzZs3lR+ZmZno1KkTbt++DQDYsWMHRCIRvLy80KpVK0yaNAnffPMN/vnnHy1vlW61b98e58+fh6+vL9555x0sXrwYUqlU6+vp2LEjvvrqK8TFxWHfvn1q+9y5cwft2rVD06ZNVab37t1b2W7KTp48CU9PT1hbW/MdhRCDRUVUhwoLC1VG5lYkFouVv6CreqpRQUEBgFe3xzg5Oal8REdHo6SkBAAwdepUZGVlISQkBOPGjcPVq1fx2WefoXPnzjh58qSWt0y3zMzM8N1332HPnj3YsWMHRo8ejZycHK2v5/PPP0fXrl2xaNEi5SAwTQgEr35smAnfJiOXy3Hq1Cl4e3vzHYUQg0ZFVIeKiorq/QYXRREuKSkBe3X6XeVDMfI2MTERhYWF8PPzQ0hICG7fvo3jx4/V6tqNAAAgAElEQVSjtLRU7T2pxsDPzw8XLlzAvXv30K9fP1y4cEGryzczM8POnTuRm5uLZcuWVWp3dHREVlYWnjx5ojL9+vXrynZTlZSUhJycHLq1hZAaUBHVocLCwnoXUcXzSnft2qUyPTs7G+3atYO/vz8AwNvbG1OnTlUWVY7j0K9fPwDGfcTUp08fXL58GX369MGwYcMQHBys1eWPHj0a77zzDr777jv8/fffKm1vvfUW5HI5vv32W+U0xhg2b94MAJgwYYJWsxiS8PBwtG/fHr169eI7CiEGTcR3AFNWVFSEzp0712sZa9asQXR0NObPn4/Y2FgMHDgQubm52Lt3L549e4b58+cDAHx9fbFz5068/vrrylNwiufTzpo1q34bwjMbGxv8/vvvWLNmDQIDA5GYmIgffvgBlpaWWln+tm3bEBERgWfPnqlM/+KLL3DkyBEsX74cGRkZcHZ2RnR0NCIjIzFo0CB88MEHWlm/IQoPD6dTuYRogr8xTaavX79+bMmSJdX2qTgiVJ179+6xmTNnMgcHB8ZxHGvatCmbMGGCyu0ZL168YMuWLWNdunRhIpGImZmZsf79+7MDBw5oZVsMxR9//MGaN2/OnJ2dWWZmpsbz1bSfN27cqBwpXd7ff//N/Pz8mJ2dHeM4jrVt25YtXLhQJ/eyGoqHDx8yjuPYiRMn+I5CdIhG52oHx5gRn+szcJ07d8bs2bOxePFivqOYlLt37+Kdd97BnTt3sG/fPowfP57vSCZl7969+Pjjj5Gfnw8LCwu+4xAdmTZtGgAgNDSU5yTGja6J6pA2romSyhwdHREfH4/JkydjwoQJ+Oqrr0zqtXF8Cw8Px/Dhw6mAEqIBKqI6whir8RYXUnfm5ub46aef8OOPP2LLli0YN26cyrOESd1IJBKcPn2a3tpCiIaoiOqIuofPE+2bNWsW4uLikJGRAVdXVyQlJfEdyajFxcXhyZMnNKiIEA1REdURda9BI7rh5uaGlJQU9OjRA4MHD650OxDRXHh4OHr06FHvUeWENBRURHWEjkT1q3nz5vjjjz+waNEizJ49GzNnzsSLFy/4jmV06ClFhNQOFVEdURRROhLVH6FQiNWrV+N///sffvvtN3h4eODu3bt8xzIaDx48wPXr16mIElILVER1RHE6l45E9W/8+PFISkqCXC6Hm5sbIiIi+I5kFMLDw2FlZQVPT0++oxBiNKiI6ohiZK7iYeVEv7p06YKEhAR4e3vjzTffxMqVK5WPRCTqhYeHY+TIkRCLxXxHIcRo0G94HdHGw+dJ/VhaWmLfvn3YsWMH1q1bh/HjxyvfikNUlZaW4syZM3Qql5BaoiKqIwUFBXQ91EB88skniImJwdWrV+Hm5oYrV67wHcngnD17Fi9evICXlxffUQgxKlREdYSeVmRY3N3dceXKFXTs2BEeHh4ICQnhO5JBOXXqFPr27YvWrVvzHYUQo0JFVEeoiBoee3t7REZGIjAwEDNnzkRAQADKysr4jmUQwsPD6SiUkDqgIlpHhYWF1d6HWFRURKdzDZBQKMTGjRtx5MgR/PLLLxg8eDAePHjAdyxe3bx5E7dv31a+u5YQojkqonXUrFkzbN++vcp2OhI1bJMnT8alS5fw/PlzuLq6Iioqqlbzm9L9p+Hh4bC1tcWgQYP4jkKI0aEiWkccxyEnJwe//fab2vaaHj4fGxuLkpISXcUjGujevTsSExMxcuRIjB07FuvWrYOmbwY8cuQIJBKJjhPqR3h4OMaNGwehUMh3FEKMDhXRenj33Xfh7++PO3fuVGorKiqCra2t2vn27t2LlJQUNG7cWNcRSQ2srKzwyy+/YOvWrVixYgUmTpyofFBGTfP98MMPekioW0+ePEFcXBwmTJjAdxRCjBIV0Xpwd3dHYWEhOnfuDKlUqpwul8tha2uLFi1aVJpn69atWLduHT755BN9RiU1mDdvHqKjo5GUlIQBAwbg2rVr1fbv168fVq1ahadPn+opoW4onuZErz4jpG6oiNYDx3HKXz5ff/21cvqff/6JzMxMlfsRGWMYOHAgFi5ciC1bttBTYQzQ4MGDkZKSglatWmHQoEE4cOBAlX2dnZ2Rm5sLd3d3PSbUvuPHj8PT0xNNmzblOwohRomKaD2tXLkSALB+/XqcOXMGAHDp0iUAwIABAwAAUqkU06ZNU04fP348D0mJJlq1aoUzZ85g9uzZ+OCDD/Dpp5+qvfZpYWEBAEhPT0dWVpa+Y2qFTCbDyZMn6SlFhNQDFdF6GjhwIBwcHAAAPj4+yMnJQWpqKoBX77l8/vw53nrrLfzyyy8AgBs3bvCWlWhGJBJh27ZtOHjwIEJCQjB06FD8/ffflfpNmzYNALB06VJ9R9SKCxcuoKCggIooIfVARbSeOI7De++9B6FQiCdPnuCDDz7A5cuXAQDm5uYYNmwYTp48CQD49NNP0bNnTz7jklrw8fHBxYsXUVhYiH79+uHs2bMq7QMHDgQAHDhwQPmHkzEJDw9H165d0aNHD76jEGK0qIhqwbvvvguZTAaJRIKoqCgkJCQAeDXwKDU1FYwxNG3aFCtWrOA3KKm1nj174uLFixg8eDBGjx6NKVOmKN8G4+rqCuDVH1KfffYZnzHr5MSJE3jrrbf4jkGIUaMiqgUDBgxQntIt/7qte/fuQSKRQCAQYO3atVXe8kIMW5MmTRAWFoYlS5bgyJEjEAqFyMzMhIuLCwQCAeRyOc6dO6c842AMbt++TS/gJkQLqIhqAcdx8PX1RaNGjVSmSyQSCIVCdO3aFbNnz+YpHdEGjuOwZs0a5VOqunfvjl27dsHR0RHAq8cJzps3DzKZjM+YGgsPD0fTpk3pBdyE1BMVUS1599138fLly0rTZTIZduzYAZFIxEMqom3z589HRkYGAOCzzz7D7du3IRQKIZPJcOvWLezZs4fnhJoJDw/H6NGj6VYrQuqJiqiW9O/fv9JrpMRiMd58802MGjWKp1REW4qLi5GRkYG4uDhcv34dQUFByjbF0SdjDP/+978N/nGOz549Q0xMDJ3KJUQL6PBISxSndL/99luV+wq3bdvGYypSW3fv3sXRo0dx/vx55OTkIDExUW0/sVgMMzMzlVepMcZQVFSELVu2YPny5fqKXGtRUVGQSqV48803+Y5CiNGjI1Etevfdd5UFVCQSYd68eejatSvPqUhtODo64vPPP0dISAiWL1+OIUOGVOojEokgkUjUvotUKpVi48aNePTokT7i1snx48cxaNAgNG/enO8ohBg9KqJa5ObmhjZt2gAAmjZtimXLlvGciNSVjY0Nxo4di5iYGDDGIJVKkZqaih9++AG+vr7o0KGDsq+ZmZnKvFKpVOUxkIZELpfjxIkTdCqXEC0x6tO5QUFBiIuL4zuGCsUIXUdHR8yaNYvnNICnpycCAwN1smxD3P/6MmDAALi4uCA/Px8FBQXIzc1FYWGh8n7hXbt24cGDB2jSpAnfUVU8ffoUubm5OHv2LFJSUviO06AEBgbSaGgTZNRF9OLFiwgLC8OUKVP4jqLUuXNnFBUVoWPHjnxHQVhYmE5HXxri/tcnMzMztG7dWjmgTHFNNC8vD9nZ2bhz5w769OnDc0pVTZo0wVtvvVXpdiyiW2FhYZg4cSLfMYgOGHURBQBfX1+EhobyHUPF9evX0bt3b75jKJ/tqkuGuP8JMTQcx/EdgegIXRPVAUMooIQQQnSPiighhBBSR1RECSGEkDqiIkoIIYTUERVRQgghpI6oiBJCCCF1REWUEEIIqSMqooQQQkgdURElhBBC6oiKKCGEEFJHVEQJIYSQOqIiSgghhNQRFVFCCCGkjqiIEkIIIXVERZQQQgipowZdRDmOw82bN6vtI5VKsXPnTvTt2xeNGjVC48aNMXjwYBw+fBiMsTr15Tiu0oe9vT0+/vhjPHv2TNnv5s2bJvcewvpsU/mvV3Z2NiQSSZV9K7Zr8rXWlpqyGTNd7td33nlH7c+G4mPFihV1XnZ9cr98+RJLly5F+/btIRKJ8Nprr+HixYt1zkJMi9G/lFuXpFIpJk+ejAsXLmDBggXw8PCAVCpFVFQUpk+fjgsXLmD79u217gu8etN9x44dAQAymQx//vknli9fDqlUil27dvGxuQZvyZIlsLW1BQC0a9cO6enp6NGjh9q+FdvLz6trNWUzZrrcto0bN+KLL74AANy7dw9TpkxBUlKSsr1169Z1XnZ9ci9btgzHjh1DcHAwOnfujKCgIPj4+ODOnTsQCBr0cQgBFdFq7dixA5cuXUJycjI6dOignD5ixAhMnjwZgwcPxtixYzFmzJha9QVevbi7/A/0wIED0apVK7z33ntURKuwYcMGXuYl+tG5c2fl/62srAAAbm5ufMVR2r9/P3bv3o2xY8cCADZt2oQffvgB9+/fh6OjI8/pCN/oz6hq7Ny5EytXrlQpigr9+/dHQEAAgoODa923Kk2aNEFpaal2whuJpKQkDB8+HJaWljA3N8eQIUOQmpqqtq/iFJzidLCTk5PaU8Pq2sufvuM4Dr/99huGDBkCsViMtm3b4rfffsPWrVthY2MDKysrrF69WmWZR48eRbdu3SASidC3b1+cOHGiyowV111SUoKZM2fCysoK1tbW8Pf3x/Pnz6vcJ7XNV93yJ0yYgIkTJ6osPzg4GHZ2dnj58mW9tw0Arly5AldXV4hEInTu3BkRERF12neaqngqtuIlAo7jcOrUKTg7O2P69Ok1fr/UlHHevHkqxbyoqAgA0Lhx43ptBzERzIj5+voyX1/fOs8PgKWnp6tte/z4MQPAsrOzq5w/MjKS2dnZ1aqvuvVKpVKWlpbGBg0axMaMGaOcnp6ezurzJarv/tHF8stvU0lJCbO1tWVLly5laWlpLC0tjc2aNYs5OTmpnbf8fqvua6euveK8Li4u7Pz58+zevXvsgw8+YGKxmE2aNInduXOHbd26lXEcx3JzcxljjCUkJLCmTZuy/fv3sxs3brBFixYxgUDAoqOjNVp3QEAAc3JyYrGxsSwuLo45OTmxTz75pNrstclX3fIPHDjAzM3N2bNnz5TLHzJkCJs7d65Wtg0A69SpE4uJiWFZWVls+vTprE2bNsr22i5fobrv/YoZKvYFwHr16sU2b97MLl++XGVuxee1ySiXy5mPjw/z9vauNr+6zKGhobWaR9d0/fuhoaAiWsUv4oyMDAaASSSSKudPS0tjHMfVqq9iveo+Bg0axLKyspTz3Lt3j5mbm9dx6wy/iN65c4cBYLdv31a2P3nyhB07dkztvNosohEREcq21NRUBoD9/fffjDHGXr58qdJ/8uTJbNOmTSrL9/LyYiNGjKhx3WVlZczCwoKdOXNG2R4VFcUaN25c5fdLbfLVtPynT58yMzMz9uuvvzLGGPv7778Zx3Hs0qVL9d42xed79+5Vfn7t2jWVglbb5SvUt4gGBwfXmLsuX98VK1awDh06sEePHlWbX11mKqKmiU7nVqFZs2YAgLy8vCr75ObmwsbGplZ9FU6ePIm//vpL+fHw4UMkJCSgbdu2yj4tW7aEg4NDfTfFYHXs2BFTpkxBr1694OXlhTVr1iAzMxMTJkzQ+brLn3Y3MzMDAOW+FovFKn3j4uIwfPhwlWnjxo1DSkpKjevJyspCaWkp3N3dldPc3d1RUlKC7OzseuerafnW1tbw8vLCb7/9BgD49ddf0b17d+Xpyfpsm0Lfvn2V/9fmvquP119/XeO+mmYsKCjAmjVr8Msvv6Bly5ZayUmMHw0sqoK9vT0cHR0RHh4Of39/tX3Cw8Ph4eFRq74KHTp0QJcuXarNYG5ubpIjPBU4jsPhw4dx7do1REVFIT4+HuvXr4e/vz+CgoJ0vm5NpgGv/gBSN8BFk1t11I3eVMzHKtwiVZd8mizfx8cHAQEBkEgkCAsLw7/+9S9ln/psm0LFwlmeNpZfE3W3Eyn+8NCEphlzcnIglUpV/mAxZs+fP4elpSXfMYweHYlWgeM4zJ07F8uWLUNWVlal9uTkZAQHB2Pu3Lm16ltb8+fPr1N+Y5CXl4dly5bB2dkZCxYswK+//orw8HD8+OOPfEdTYW9vj/j4eLBXlz/AGMP9+/erHABVXtu2bWFpaalyX2FiYiIaN26sctahrjRZvre3N8rKyvDzzz8jISEB06ZN08q2aUJXyy9fOOu7LE0zduvWDcXFxSZz77ZEIjGZbeFTgy+i169fR3JycqUPAAgMDISrqyvc3NywZcsWxMXF4dy5c1i6dCmGDh2Kjz76SHnLSm36aurx48f4448/tL7NhsLa2ho7duzA119/jevXr+P69evYu3cvevfurdH8mZmZyMnJqXO7pvz8/BAQEIDIyEjcunULR44cQf/+/XHw4MEa1y0Wi+Hn54e5c+ciISEBCQkJ+PTTTzFjxoxqj+A0pcnyrays8Oabb2LBggUYOnQo2rdvr5Vt00Rdll8TBwcHbNmyBQ8ePEBMTAw2bdqk0XxV5dY0Y15eHtasWVPn3IamrKwMTZo04TuG8ePjQqy2aGNgUVUfChKJhH377bfM2dmZicViZm5uzjw8PNjPP//M5HK5yvI07YsaBsUomProXMYYi46OZn379mVisZhZWloyLy8vduvWLbXzlt9vEydOZBzHMSsrK7V9K7YDVQ9KUrefUWFw0OLFi1nLli2ZQCBgHTt2ZCtXrqxyYFDFdZeUlDB/f39mbW3NrK2t2YcffshKS0ur3Ee1zafJ8sPCwhgAFhISojK9vttWU9baLr+6bVaIiIhgnTp1YgKBgLm4uLDExMRKA4sq/nxVl1vTjPX5eYQBDizy9PRkH3/8Md8xjB7HWDUXZgyc4rRUaGgoz0kMk673D+1/QjTDcRxCQ0Ph6+vLdxQlDw8PDB48GBs3buQ7ilFr8KdzCSGkIXr27Bk9tlALaA8SQkgDJJFIaHSuFlARJYSQBqigoEB5jzupOyqihBDSABUUFKBFixZ8xzB6VEQJIaSBKSwshFQq1dvrAU0ZFVFCCGlg8vPzAYCKqBZQESWEkAamoKAAANC8eXOekxg/KqKEENLAKIqovb09z0mMHxVRQghpYB4+fAhra2t6sbgWUBElhJAG5v79+yrPUCZ1R0WUEEIamAcPHqi8s5bUHRVRQghpYO7fv09FVEuoiBJCSANDp3O1h4ooIYQ0IHK5HNnZ2XQkqiVURAkhpAH5+++/8fLlSyqiWkJFlBBCGpCMjAwAgJOTE89JTAMVUUIIaUDS09PRqlUr2NjY8B3FJFARJYSQBuTPP/+ko1AtEvEdoL5+/vlnSCQSvmMYpLCwMPj6+up0HbT/TZNMJkNZWRm9tNkE/fnnn3jttdf4jmEyjLqIDhw4kH6BV2PKlCkYOHCgzpZP+990JSUl4fnz53jjjTfAcRzfcYzelClTDOaWkj///BM+Pj58xzAZHGOM8R2CEGJYrl69iv79+2Pbtm2YO3cu33GIluTl5cHe3h5nzpzBG2+8wXcck0DXRAkhlbi4uGDhwoX48ssvkZ2dzXccoiVXr14FADg7O/OcxHRQESWEqPX111/DwcEBH3/8Md9RiJYkJyfD0dGR3iOqRVRECSFqmZub44cffkB4eDgOHTrEdxyiBcnJyXB1deU7hkmhIkoIqdKwYcMwa9YsBAYGKl/kTIxXSkoK3Nzc+I5hUqiIEkKqtWnTJgiFQixcuJDvKKQe8vPzcefOHSqiWkZFlBBSrWbNmmHHjh0ICQlBVFQU33FIHV2+fBkcx9HpXC2jIkoIqdHbb7+NCRMmICAgAM+fP+c7DqmDS5cuoWvXrmjWrBnfUUwKFVFCiEaCg4ORl5eHFStW8B2F1EF8fDw8PT35jmFyqIgSQjTSunVrbNiwAdu3b0dKSgrfcUgtyGQyJCQkUBHVAXpiESFEY4wxDB06FM+ePcOlS5cgEhn1k0MbjJSUFLi6uuLWrVvo3Lkz33FMCh2JEkI0xnEcdu3ahfT0dGzfvp3vOERDsbGxaN26NRVQHaAiSgiple7du2Pp0qVYvnw5bt26xXccooHY2Fg6lasjVEQJIbW2ZMkSdOvWDTNmzIBcLuc7DqkGYwyxsbEYPHgw31FMEhVRQkiticVihISE4NKlS/jmm2/4jkOqkZaWhpycHHpri45QESWE1EmfPn2wdOlSfPXVV8jIyOA7DqnC6dOn0aZNG/Tq1YvvKCaJRucSQupMIpFg0KBBaNSoEWJjYyEUCvmORCoYPXo02rZti927d/MdxSTRkSghpM7EYjH27NmDlJQUbN26le84pILS0lLExsZi9OjRfEcxWVRECSH18tprr+Hrr7/G8uXLcePGDb7jkHJiYmLw8uVLjBo1iu8oJotO5xJC6k0mk8HDwwOMMSQkJNBDGAzEggULEBcXh0uXLvEdxWTRkSghpN6EQiH27NmDtLQ0bNy4ke845P/98ccfGDt2LN8xTBoVUUKIVvTs2ROrVq3CqlWrkJaWxnecBu/mzZvIyMiAt7c331FMGp3OJYRojUwmw+DBg/HixQtcvHgRYrGY70gN1qZNm/Dtt98iKysLAgEdL+kK7VlCiNYIhUKEhITg5s2bWLduHd9xGrTjx4/D29ubCqiO0d4lhGhVt27dsG7dOqxduxapqal8x2mQcnJykJCQgAkTJvAdxeTR6VxCiNbJ5XIMGzYMRUVFSE5ORqNGjfiO1KDs2bMHgYGByM3Nhbm5Od9xTBodiRJCtE4gEGDPnj24c+cOVq9eXev55XI53N3dwXEcDhw4UGW/mJgYcBwHV1dXyGSy+kQ2Kb/99htGjRpFBVQP6EiUEKIzO3fuxGeffYYLFy7Azc2tVvOmpqbCzc0N9vb2yMjIQJMmTVTaZTIZXF1dcfXqVVy4cAHu7u7ajG60ioqK0KpVK+zevRu+vr58xzF5dCRKCNGZOXPmYPDgwfDz80NpaWmt5u3Tpw/mzZuHR48eYdWqVZXaf/rpJ1y9ehWzZs2iAlrOsWPHIBAIMH78eL6jNAh0JEoI0an79+/D2dkZM2fOxPbt22s1b3FxMXr27IlHjx7h6tWr6NmzJ4BXR1tdu3aFTCZDZmYm7OzsdBHdKHl5ecHS0hJHjhzhO0qDQEeihBCd6tChA4KCgvDtt9/i7NmztZrX2toaQUFBkEqlCAwMhOJv/lWrViEvLw/r16+vVEClUik2b96M7t27QygUokWLFggICEBeXp6yj1wux44dO+Dq6goLCwuIxWL07NkTW7ZsMeqXjOfn5yMqKgo+Pj58R2k4GCGE6MHEiRNZ+/btWVFRUa3mk8vlzNvbmwFgYWFhLD09nYlEIubm5sakUmmlvm+//TYDwAYPHszWrVvH3n//fcZxHOvevTt78uQJY4yxBQsWMADM1dWVrV69mq1evZr16tWLAWDr1q3T2jbr265du1jjxo1ZSUkJ31EaDCqihBC9yMnJYS1btmR+fn61nvfu3bvMwsKCtWvXjo0YMYJxHMcuXrxYqd+hQ4cYADZp0iQmk8mU03/88UcGgC1btowxxpiVlRWzs7NjZWVlyj7//PMPa9myJRs9enTtN85ADB8+nE2dOpXvGA0KFVFCiN4cO3aMAWBHjx6t9bwbNmxgABgA9tFHH6ntM2bMGAaAJScnq0yXyWTM0dGRubi4MMYYs7OzY40aNWJ//PEHk8vltd8QA/TgwQMmEAjY77//zneUBoUGFhFC9Mrf3x/Hjx9HWloaWrZsqfF8EokE7du3x6NHj5CXl4fmzZtX6mNnZ4f8/HykpqbCzMxMpW3u3Lm4ePEiiouLcfDgQfj7++P58+do0aIFPDw8MHToUPj4+MDBwaHe28iH9evX45tvvkF2djY9s1iPqIgSQvSquLgYzs7OcHZ2xv/+979azdujRw9kZGSgql9bAoGgyjYA4DhOOXCooKAAx48fx9mzZ3H+/HncvXsXFhYWOHr0qFG+Pqxnz54YNWoUvv32W76jNCg0OpcQolfW1tYICQnBiRMnsHv3bq0uu1mzZgCAkpISsFeXq1Q+FAU0MTERhYWF8PPzQ0hICG7fvo3jx4+jtLRU7T2phi4pKQnp6enw8/PjO0qDQ0WUEKJ3Q4cOxWeffYb58+fj3r17WlvumDFjAAC7du1SmZ6dnY127drB398fAODt7Y2pU6cqiyrHcejXrx8AVHska6j27duHXr16KbeB6A+dziWE8OLFixfo378/bG1tcfbsWY1e2VXT6dzbt29j0KBByM3Nxdtvv42BAwciNzcXe/fuxbNnz5CYmIjXXnsNn376KXbu3Al3d3flS6sPHDiAjIwM/Pe//1UWW2NQVlaGNm3aYPHixVi8eDHfcRoeHgYzEUIIY4yxlJQU1qhRI7ZlyxaN+nfv3p3V9Gvr3r17bObMmczBwYFxHMeaNm3KJkyYwK5evars8+LFC7Zs2TLWpUsXJhKJmJmZGevfvz87cOBAvbaHD/v372eNGjVi//zzD99RGiQ6EiWE8Grt2rVYvXo1kpOT0bt3b77jGB1PT0+0adMGhw4d4jtKg0RFlBDCK5lMBk9PT5SVlSExMZHePVoLaWlpcHZ2xpkzZ/DGG2/wHadBooFFhBBeCYVC7Nu3D5mZmVi5ciXfcYzK999/jx49emDYsGF8R2mwqIgSQnjXtWtXbN68GRs3bkRiYiLfcYzCs2fPcODAAcyePRscx/Edp8Gi07mEEIPAGMO4ceNw+/ZtpKamonHjxnxHMmg//vgj5s+fj7///hs2NjZ8x2mw6EiUEGIQOI7DTz/9hIKCAixatIjvOAbvu+++g4+PDxVQnlERJYQYjDZt2iA4OBjff/89Tp48yXccg3Xx4kWkpqYiICCA7ygNHp3OJYQYnKlTpyI2NhZpaWmwtbXlO47BmTFjBq5du4bLly/zHaXBoyNRQojB+c9//gMA+OSTT3hOYngKCwtx6NAhzJ49m+8oBFRECSEGyNbWFj/99Bigak4AAB0ESURBVBMOHz6MgwcP8h3HoOzduxdisRi+vr58RyGg07mEEAP2ySef4NChQ7h27RratGnDdxzeSaVS9OjRA15eXggKCuI7DgEVUUKIASspKUGfPn3QuXNnRERENPj7IQ8fPgxfX1/cvHkTXbp04TsOAZ3OJYQYsMaNG2P//v2IiorCd999V2P/4uJiPaTiz6ZNm/D2229TATUgVEQJIQbN3d0dS5YsweLFi/HXX39V29eUb4s5d+4cLl++jIULF/IdhZRDp3MJIQbv5cuXcHd3h5mZGeLi4iAUCtX28/Pzw65du0zyIfZjx45FWVkZzp49y3cUUg4diRJCDF6jRo2wb98+XLlyBRs2bKiy3/3795GamqrHZPqRlpaG06dP00u3DRAVUUKIUejduzfWrl2LVatW4cqVK2r7xMTE4MiRI3pOpntbtmxBz549MXbsWL6jkArodC4hxGjI5XK88cYbKCgoQFJSEszNzVXaFaN3TenXWlZWFrp06YJdu3bhX//6F99xSAV0JEoIMRoCgQB79+7F/fv38dVXX6m0lZWV8ZRKt4KCgtCiRQtMnTqV7yhEDSqihBCj0rFjR3zzzTfYvn27yiCbnJwc5f+zs7P5iKZ1RUVF+OGHHzBv3jyTHCxlCqiIEkKMzsyZM+Hl5YXhw4cjMzMTAPDo0SNlu6m82PvHH3+EUCjEhx9+yHcUUgUqooQQo7R161YAQPfu3SGXy/H48WMAgFgsxoULF/iMphUlJSXYunUrAgIC0LRpU77jkCpQESWEGKS7d+/i9OnTyMvLU9verVs3bN68GQDQokUL5OTkQCgUQiKR4Pz58/qMqhPBwcEoLS2lhysYOBqdSwgxWElJSVi8eDHu3LmDBw8ewM/PD++++y769euHVq1aAQDs7OyQn58PW1tblJSUoKysDCKRCMXFxZVG7xqLZ8+eoVOnTvjwww+xdu1avuOQalARJYQYvGPHjmHSpEkq0+zt7dG/f3+4urpi9erVAF6N3pXL5QCA+Ph4eHh46D2rNmzYsAHr16/H3bt36aXkBo5O5xJCDN7EiRMhkUgQHBysHKWam5uLiIgIbNq0SdlPUUDFYrHRDi4qLi7Gli1bEBgYSAXUCFARJYQYBZFIhE8++QT5+flYunQpGjVqBJFIpPb+UJlMhri4OB5S1t+OHTsglUqxYMECvqMQDdDpXEKIUXr48CGWLl2KvXv3QiQSQSKRqLQ3b968ykFJhurp06dwdHTE3LlzsXLlSr7jEA3QkSghxCi1bt0ae/bswZUrVzBs2DAAUHm7S35+Pu7du8dPuDoKCgqCTCbD/Pnz+Y5CNERFlBBi1FxcXHD69GlERESgR48eEAgEymfoGtN10SdPnmDbtm2YN28ebGxs+I5DNESncwnRkqCgIKO9DmcqGGO4d+8e0tLSUFZWhtatW+P111/nO5ZG7t27h9TUVHh7e0MsFvMdh6jh6emJwMBAlWkinrIQYnIuXryIsLAwTJkyhe8oDRbHcXB0dET79u3x559/Ij8/n+9IGuvYsSNatGhBBdRAhYWFqf3aUBElRIt8fX0RGhrKdwzy/woLC+nUKNGKadOmqZ1O10QJISaLCijRNSqihBBCSB1RESWEEELqiIooIYQQUkdURAkhhJA6oiJKCCGE1BEVUUJ48M4774DjuCo/VqxYodFyOI7DzZs3dRu2GtnZ2ZWeWaugrW3UZL312Q/VbYMm1G2bhYUFRowYgfT0dI2Xc/PmTeWTlurSrsii2A/13S51y9Q3bX6ddYXuEyWEBxs3bsQXX3wB4NWTaqZMmYKkpCRle+vWrfmKVivt2rVDeno6evToUalNl9tY3Xr5WFZYWBg6duwI4NVTkwoKCrBp0yZMnDgR6enpEAj0c7yyZMkS5evTym/XzZs34eTkBGN7QF3Fr0357TMUVEQJ4UHnzp2V/7eysgIAuLm58RVHJxrCNir07t27UhF2dnZG69at8eDBA2WB1bUNGzaonS4UCvVWyHWpqu3jk/HvVUJM3NGjR9GtWzeIRCL07dsXJ06cqHVfxanA33//HW3btoWlpSWmT5+O58+fK+ctKSnBzJkzYWVlBWtra/j7+6u0cxyHU6dOwdnZGdOnT1eeWnRycqrxNGN1Kp6iq3jasi7r1XSfqVtWTftBU4o/HMo/Ki4+Ph7Dhg1D48aNIRaL4eLigsjISJX5Dhw4AAcHB5ibm+O9997D06dPNW5X7MuK29W+fXt069ZN2S8pKQnDhw+HpaUlzM3NMWTIEKSmptZ6G4Ga95dUKsWSJUtgZ2cHc3NzjBkzBpmZmTXuD3Vfm/LfK5p8v0ZGRmLEiBFo1KgR2rVrh3379inbNTk9rhFGCNEKX19f5uvrW+v50tPTWVU/igkJCaxp06Zs//797MaNG2zRokVMIBCw6OhoxhhjAFh6enqNfRXr6Nu3L4uJiWGnT59mjo6ObM6cOcp1BQQEMCcnJxYbG8vi4uKYk5MT++STT5TtAFivXr3Y5s2b2eXLlyutv67bWHEZFftqsl5N94Mm669pP9Q0v1wuZ7m5uWzu3LlsyJAhTC6XM8YYKy4uZlZWVmzo0KEsOTmZ3bhxg82ZM4e1bNlSZbt79+7NYmJiWGRkJOvUqRObMWOGRu0Vs1TMtX//fsYYYyUlJczW1pYtXbqUpaWlsbS0NDZr1izm5OSk0fZVVNP++uqrr1jnzp1ZdHQ0S01NZW+++Sbr2rUre/LkSbX7Q926y3+uyferi4sLi4iIYA8ePGBffPEFE4vFrLCwkDHG2OPHj9mSJUuq3K6Kqvr5piJKiJbooohOnjyZbdq0SWWal5cXGzFiBGNM9ZdKdX0V64iMjFS2hYeHMysrKyaRSFhZWRmzsLBgZ86cUbZHRUWxxo0bM4lEolxXcHCwyvL1VURrWq+m+6Gm9WuyH9TNr+7DysqKZWZmKvsVFBSw7du3s5s3byqnpaamKre1qq+Rubk5Kysrq7G94rZU9bW5c+cOA8Bu376tnPbkyRN27NixGvdPRTXtL4lEwpo1a8ZOnjypbM/OzlZ+T1a3P9StW/G5pt+vu3fvVra/ePFC4+9Xdar6+abTuYQYsLi4OAwfPlxl2rhx45CSklKnvuVfCzZkyBA8e/YM2dnZyMrKQmlpKdzd3ZXt7u7uKCkpQXZ2ttr59ak2663NPqtI0/1Q0cmTJ/HXX3/hr7/+QmZmJhITE+Hq6oo5c+Yo+9jY2GDu3LnIyMjA119/jWnTpmH8+PGVllXxa/TixQtkZWVp3F6Tjh07YsqUKejVqxe8vLywZs0aZGZmYsKECRovQ6Gm/ZWVlYWioiJ4enoq29u0aYOoqCj06NFDo/1Rl/UqlL8Gb2ZmVuvt0wQNLCLEgOXm5qodjKPuWk5t+pafzhhTO+ikfLuCrn4RlafutozarLe2+6E8TfdDRR06dECXLl1Upq1evRpjxoxRfs4Yw7hx4/D48WNMmzYNPj4+mDFjBkaNGlXlchXrFgqFavdL+XZNcRyHw4cP49q1a4iKikJ8fDzWr18Pf39/BAUFabwcoOb9pdhn6vLVZX9oul4FfbxWjo5ECTFg9vb2iI+PV/5CYozh/v37ageBaNI3ISFB+f/Y2FhYWlqibdu2ysFGFy9eVLYnJiaicePGaNu2rW43EqqFs64DXBRqs88q0uZ+sLOzQ2lpqfLz+/fvIyoqCufPn8eSJUvw1ltvoWnTppXmq/g1atKkCdq1a6dxe03y8vKwbNkyODs7Y8GCBfj1118RHh6OH3/8sVbbB9S8v9q1a4fGjRsjMTFR2f748WO0atUK4eHhGu2PuqxXn6iIEmLA/Pz8EBAQgMjISNy6dQtHjhxB//79cfDgwTr1DQwMRGxsLKKjozFnzhz4+flBLBZDLBbDz88Pc+fORUJCAhISEvDpp59ixowZNf41n5mZiZycnDpvo4ODA7Zs2YIHDx4gJiYGmzZt0mi+qtZbm31WcVn12Q8ViUSvTvRJpVIAr07nisViHD58GI8ePcKZM2fw0UcfAQAePnyonG/hwoUqXyN/f3+VI7ma2mvaR9bW1tixYwe+/vprXL9+HdevX8fevXvRu3fvKrfl+vXrSE5OrvRR0/4Si8X46KOPMHv2bJw9exZpaWn46KOP0KxZM3h4eGi0P9Rtgza+Tjk5Ocr7mOulTldYCSGV6GJgUVlZGVu8eDFr2bIlEwgErGPHjmzlypUqgyfKD4qpqq9iHT/99BOzt7dnFhYW7F//+hcrKSlRrqukpIT5+/sza2trZm1tzT788ENWWlqqbIeaQRkTJ05kHMcxKyurOm9jREQE69SpExMIBMzFxYUlJiZWO7hE3Xo13Q/qVFxWTfuhInX5GHs1kMXMzIxlZWUpp4WEhDAHBwcmEonY4MGDWXx8POvZsydr27atch8dPHiQtWjRgllYWDB/f3/lumtqr5iluq9NdHQ069u3LxOLxczS0pJ5eXmxW7duVbl9VX1osr/KysrY/Pnzma2tLTMzM2MjR45UDriqbn+o24by21eX79fy06r7nlSnqp9v7v8XTAipp2nTpgEAQkNDeU5SmbE+sYYQXZFIJLCyskJZWZlG/av6+abTuYQQQhqc27dvY/LkyfVeDhVRQhoAsVj8f+3de0xT5xsH8O/pKJdSgqIMHBTRbsaOpgSdmYsb22CbEd1wJmbJzCiKExxqqkExKCZGExXnjBIjQSUq8RLxQowEtNQFKxXjJUQwQi1mIJsixku0g07X5/fH1vOjpeXSgWzyfBKS8r7nvZ3m9EnPefu+TsvwMTbcTZw4EUeOHPnH9XAQZWwYUCqVsFgsQ90Nxl47HEQZY4wxL3EQZYwxxrzEQZQxxhjzEgdRxphXBEHo9hcQEIDExETcunXrlfWjtbXV7ZJ4Dna7HTt27IBGo4Gfnx/8/f0xefJk7Nmzx+knP73VMxAePXqEpUuXIiIiAhKJBGFhYUhLS0NbW9ugtuvqVYx1uOC1cxljXispKRE3nCYiPHr0CHl5eZg9ezZu3br1SjaCVigUuHXrVrdNsR1yc3Nx6NAhbNiwAZMmTYLNZoPRaER2djba29uRk5PTp3r+KavVik8//RS+vr746aefEBUVhYaGBmzevBkJCQm4du0a/P39B6VtV4M91uGEgyhjzGtqtbrbB7FGo8Fbb72FlpYWMcAOpYKCApSUlDjt7DJp0iSEh4dDp9OJQXSwbd26FRKJBBcuXEBAQAAA4IMPPsAXX3yB8ePH48iRI5g/f/4r6QsbOHw7lzE2oORyOYDuO2icPHkSEyZMgI+PD+Li4nDmzBkx78qVK0hISIBMJoO/vz/i4+OdFoz3VNaxc4dKpfK4S0tnZ6fbNXZnzpyJ4uLiHuvx1G5DQwMEQcDp06fFxdBTU1Px+++/u+0DEaGoqAhr164VA6hDREQEioqKEBUVJaZZrVYsWLAAcrkcQUFBSEtLc6pbEAQ0NDSI/zv60zVfr9cjMTERvr6+UCgUOHjwoFdjdZQ5e/YsNBoNUlNT3bY5bPV54UDGWI+8XTv3vwoua5Pa7XZqb2+nJUuWUHx8PNntdjHPZDJRcHAwFRcX082bN2nlypUkkUjIYDCQ1WqlkJAQWrNmDdXV1VFdXR0tXLiQVCpVr2Xd9cPV8uXLSSKRUHJyMu3evZsaGxud+uZpPD2161h3NS4ujqqqqujcuXM0btw4yszMdNuHtrY2AkBtbW19OrcZGRmkUqnIaDTSxYsXSaVS0Q8//OCxr+42Mo+NjaXy8nJqaWmh1atXk1QqpcePH/d7rI7jY2JiaOvWrXTt2jVxTNnZ2X0az+vA0/XNQZSxATIcg6i7P7lcLi4w7jBnzhzKy8tzSktKSqLExES6c+cOAaCmpiYx7+nTp1RaWtprWUc/egqidrudSktLSavVkkKhIAAUERFBOTk5PS5Y3lO7jqCl1+vFvLKyMpLL5W4Xum9sbCQA9PLlS4/9dLDZbBQQEEDnz58X0yorKykwMNDtxgNE7oNoUVGR+H9nZ6dTmf6M1XH8rl27eu3768zT9c23cxljXquoqMDt27dx+/ZtmM1m1NTUYPLkycjMzHQ67uLFi07PJAFgxowZuH79OqKjozF37lzExMQgKSkJGzduhNlsRnJycq9l+0IQBCQnJ2P//v1obm6GxWJBVlYW9u7dK2695U5f2p02bZr4Oj4+Hs+fP0dra2u3uoKCggAAT548cdvWvXv3YDabAQB3795FR0cHpk6dKuZPnToVVqvVbd2edN2YvLdNzfs7VvZ/PLGIMea1sWPH4u2333ZK27BhA6ZPn+6U1t7e7vSh7uD4acyxY8dw48YNVFZWorq6Gps2bUJaWhp27tzZY9ne3Lt3D4sXL0ZJSQmkUikEQYBSqYROp4NarcasWbPEZ4Wu+tuuI53c7JQTHh6O8PBwVFVVuV30PCMjA8+ePcP58+fdzmjuqW4Abn+u0p/9T/sy1t4C8XDF30QZYwNq9OjR6OjocEoLDQ1FdXU16K9HSCAiNDc3o7a2Fg8fPkRubi40Gg1WrFiBEydOoKysDIWFhb2W7U1wcDAqKipQVlbWLa+jowOjRo3yWLYv7ZpMJvG10WiETCZDZGRkt7oEQYBWq8X69eu7TT5qaWnB2bNnMXPmTAAQJypdvnxZPKampgaBgYFOdXcNnH05Fz35J+d4uOMgyhgbUD4+f93gevnypZim1WqRkZEBvV4Pi8WC48ePY8qUKTh69CiCgoKQn5+PdevWob6+HvX19Thw4ADUanWvZR3MZrPbGbgymQxZWVlISUnBli1bYDQacenSJRQWFiI9PR06nc7p+K719KXdZcuWwWg0wmAwIDMzE1qt1uM3wJycHNhsNkybNg2HDx9GTU0NDh48iISEBERFRSE9PR3AX98gtVotlixZApPJBJPJhKVLl2L+/Pli3WPGjMGPP/6IlpYWVFVVIS8vr9/vU3/H6urBgwdYvXp1v9t97bySJ7KMDQPDcWKRuwk9nZ2d5OfnR3fv3hXTbDYbrVq1isLCwkgikVB0dDStX79enChjMBgoLi6OpFIpyWQySkpKIovF0qeys2fPJkEQSC6Xu+2n3W6ngoICio2NJV9fX/Lx8SG1Wk35+flOs3Rd6+mpXcdEnn379lFoaCgFBARQSkoKWa3WHs/ZgwcPaOHChRQaGkoA6M0336QFCxbQ/fv3nY6zWq2UlpZGQUFBFBQURN9//73TJKjy8nIaP348SSQSio2NpZqamm4Ti1zfm65p/Rmrp/pcJzO97jxd3wIRb3XP2EDwtPM9e/00NDRApVJ5fEY5HLx48QJyuRw2m22ou/JKeLq++XYuY4yxfmtqanI7SWq44SDKGGP9JJVKoVQqh7obQ2rixIk4cuTIUHdjyHEQZYyxflIqlbBYLEPdDfYvwEGUMcYY8xIHUcYYY8xLHEQZY4wxL3EQZYwxxrzEQZQxNmCG0x6TdrsdO3bsgEajgZ+fH/z9/TF58mTs2bPH6fejra2tbte2HSiue4v2N7+vdQ/2OP6rOIgyxpgXcnNzsX37dqxcuRLXr1+HyWRCSkoKsrOzsWnTJvE4hUKBpqamIetndnY2QkJC/nHZoR7HvxXv4sIYY14oKChASUmJ0xZikyZNQnh4OHQ6HXJycoawd/+3efPmISk7XPA3UcbYoBEEAXq9HomJifD19YVCoXDaeuzly5fIzs7G6NGj4e/vj+nTp4v7agqCgLNnz0Kj0SA1NVUsc/LkSUyYMAE+Pj6Ii4vDmTNnxLzq6mp88sknCAwMhFQqRWxsLPR6vZh/5coVJCQkQCaTwd/fH/Hx8U47lfRUt6vOzk63i97PnDkTxcXF4hgAQKVSOd3m9tSO43b46dOnxd1cUlNTu+380h9db8kKgoBTp04hPj4eUqkUkZGROHXqFLZt24aRI0dCLpdjw4YN3cp6GgfDMFo9mLFBNtwWoHfHdVFyABQbG0vl5eXU0tJCq1evJqlUSo8fPyYiorVr15JSqSSDwUC1tbU0a9Yseuedd+jPP/8kABQTE0Nbt26la9euERGRyWSi4OBgKi4upps3b9LKlStJIpGQwWCgZ8+ekVwup48//piuXr1KN2/epMzMTAoLCyOivxZ1DwkJoTVr1lBdXR3V1dXRwoULSaVS9Vq3O8uXLyeJRELJycm0e/duamxsdFrQvus56Lp4e0/tOM5fXFwcVVVV0blz52jcuHGUmZnp8Zy71t9TvuP9uHDhAv3yyy/03XffkVQqpa+//pru3LlD27ZtI0EQqL293W3Zntp53Xm6vjmIMjZAOIi6D6JFRUXi/52dneKH8YsXL2jEiBFUUVEh5re2tlJiYiLdv3+fANCuXbuc6p8zZw7l5eU5pSUlJVFiYiI9evSItm/fTg0NDWJebW2t2J87d+4QAGpqahLznz59SqWlpb3W7Y7dbqfS0lLSarWkUCgIAEVERFBOTo7TjiuuwaendhznT6/Xi3llZWUkl8vFHVVc9TeIlpeXdzs/v/76KxER/fHHHx4DJwdR99c3385ljA2q9957T3zt5+cnvr579y6ePHmCDz/8UEyLiIhAZWUlwsLCAADTpk1zquvixYtOzyABYMaMGbh+/TpGjhyJJUuWoLGxEevWrcO8efPw5ZdfisdFR0dj7ty5iImJQVJSEjZu3Aiz2Yzk5ORe63ZHEAQkJydj//79aG5uhsViQVZWFvbu3YtFixZ5PB99aafruOPj4/H8+XO0trZ6rLM/xo4dK752vB9jxowBAI97oTLPeGIRY2xQefpgpr9/BvLGG294LNs16AJAe3u7U1B2EAQBRIQZM2agra0N8+bNwzfffIP58+fj888/F485duwYbty4gcrKSlRXV2PTpk1IS0vDzp07e6zb1b1797B48WKUlJRAKpVCEAQolUrodDqo1WrMmjXL6dlvX8fgjiOdBmjbNXft8HNO7/E3UcbYkFAoFAgMDERNTY2Y1tbWhvDwcNTX17stExoaiurqatBfj6JARGhubkZtbS2am5tRWVmJCxcuIDs7G1999RWCg4PFsg8fPkRubi40Gg1WrFiBEydOoKysDIWFhb3W7So4OBgVFRUoKyvrltfR0YFRo0Z5HHdf2jGZTOJro9EImUyGyMjIHs4mGyocRBljQ0IqlWLRokVIT0/Hzz//jLq6OixatAgjRoyASqVyW0ar1SIjIwN6vR4WiwXHjx/HlClTcPToUYwcORJSqRTHjh3D/fv3cf78efG26m+//YagoCDk5+dj3bp1qK+vR319PQ4cOAC1Wt1r3a5kMhmysrKQkpKCLVu2wGg04tKlSygsLER6ejp0Op3T8WazWZzJ25d2li1bBqPRCIPBgMzMTGi12h5vtdbX1+Pq1avd/gZa13Gwv72iZ7KMvfZ4YpH7iUWuk1G6ptlsNtLpdBQSEkJ+fn702Wefkdls9ljWZrPRqlWrKCwsjCQSCUVHR9P69evFSTf79++nMWPGkI+PD3300UdUXV1N7777LkVGRhIRkcFgoLi4OJJKpSSTySgpKYksFkuf6nZlt9upoKCAYmNjydfXl3x8fEitVlN+fr7TLN3Zs2eTIAgkl8t7bcdx/vbt20ehoaEUEBBAKSkpZLVaPZ5zAB7/XM+j6zl1fb96Ot51HMONp+tbIBqgG+2MDXPz5s0DABw6dGiIe8L+qxoaGqBSqQbs+ScbOJ6ub76dyxhjjHmJgyhjjP1LSKVSKJXKoe4G6wcOoowx9i+hVCphsViGuhusHziIMsYYY17iIMoYY4x5iYMoY4wx5iUOoowxxpiXOIgyxhhjXuIgyhhjjHmJd3FhbAAdPnwYhw8fHupuMMYGwbffftstjZf9Y2yAXL58GS0tLUPdDcbYIImKisL777/vlMZBlDHGGPMSPxNljDHGvMRBlDHGGPMSB1HGGGPMS/8DxsFpkQPsWSQAAAAASUVORK5CYII=&quot; width=&quot;281&quot; /&gt; &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Lets see the code now:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;pre class=&quot;brush:java&quot; name=&quot;code&quot;&gt;
public class LinkListPrograms {
        //Refer my link list post for link list implementation details
 SLL myList = new SLL();

 public static void main(String[] args) {
  LinkListPrograms myProg = new LinkListPrograms();
                
                myProg.myList.insert(new Node(11),1);
  myProg.myList.insert(new Node(42),2);
  myProg.myList.insert(new Node(43),1);
  myProg.myList.insert(new Node(44),1);
  myProg.myList.insert(new Node(45),2);  

  myProg.myList.insert(51,1);
  myProg.myList.insert(52,2);
  myProg.myList.insert(53,1);
  myProg.myList.insert(54,1);
  myProg.myList.insert(55,2);
  myProg.myList.insert(56,4);

  myProg.myList.insertAtStart(1);
  myProg.myList.insertAtStart(2);
  myProg.myList.insertAtStart(3);
  myProg.myList.insertAtStart(4);

  myProg.myList.insertAtStart(new Node(11));
  myProg.myList.insertAtStart(new Node(12));
  myProg.myList.insertAtStart(new Node(13));
  myProg.myList.insertAtStart(new Node(14));
  myProg.myList.printList(myProg.myList.getHead());
                System.out.println(myProg.hasLLoop(myProg.myList.getHead()));
      }

     /*
  * Richard Brent&#39;s algo: Richard Brent described an alternative cycle
  * detection algorithm,which is pretty much like the hare and the tortoise
  * [Floyd’s cycle] except the slow node here doesn&#39;t move, but is later
  * &quot; teleported&quot; to the position of fast node at fixed intervals
  */
 public boolean hasLLoop(Node root) {
  if (root == null) {
   return false;
  }
  Node slow = root, fast = root;
  int taken = 0, limit = 2;
  while (slow.getNext() != null &amp;amp;&amp;amp; fast.getNext() != null) {
   fast = fast.getNext();
   taken++;
   if (slow == fast) {
    return true;
   }

   if (taken == limit) {
    taken = 0;

    limit &amp;lt;&amp;lt;= 1; // equivalent to limit *= 2
    slow = fast; // teleporting the turtle to the hare&#39;s position
   }
  }
  return false;
 }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;If we run the program we will get output like this:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;============================================================================&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Please share your comments if you find anything incorrect, or you want to share more information about the topic discussed above.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;I will keep adding more Question here :) &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/5574923849336230358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2015/02/data-structure-questions-on-link-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/5574923849336230358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/5574923849336230358'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2015/02/data-structure-questions-on-link-list.html' title='Data structure Questions on Link List'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-3504421621590943725</id><published>2014-06-10T02:39:00.001-07:00</published><updated>2014-06-10T02:39:19.559-07:00</updated><title type='text'>Privacy Policy</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
If you require any more information or have any questions about our privacy policy, please feel free to contact us by email at ashvinbhide@gmail.com.&lt;br /&gt;&lt;br /&gt;At www.binary-imaginers.blogspot.com, the privacy of our visitors is of extreme importance to us. This privacy policy document outlines the types of personal information is received and collected by www.binary-imaginers.blogspot.com and how it is used.&lt;br /&gt;&lt;br /&gt;Log Files&lt;br /&gt;Like many other Web sites, www.binary-imaginers.blogspot.com makes use of log files. The information inside the log files includes internet protocol ( IP ) addresses, type of browser, Internet Service Provider ( ISP ), date/time stamp, referring/exit pages, and number of clicks to analyze trends, administer the site, track user’s movement around the site, and gather demographic information. IP addresses, and other such information are not linked to any information that is personally identifiable.&lt;br /&gt;&lt;br /&gt;Cookies and Web Beacons&lt;br /&gt;www.binary-imaginers.blogspot.com does not use cookies.&lt;br /&gt;&lt;br /&gt;DoubleClick DART Cookie&lt;br /&gt;.:: Google, as a third party vendor, uses cookies to serve ads on www.binary-imaginers.blogspot.com.&lt;br /&gt;.:: Google&#39;s use of the DART cookie enables it to serve ads to users based on their visit to www.binary-imaginers.blogspot.com and other sites on the Internet.&lt;br /&gt;.:: Users may opt out of the use of the DART cookie by visiting the Google ad and content network privacy policy at the following URL - http://www.google.com/privacy_ads.html&lt;br /&gt;&lt;br /&gt;Some of our advertising partners may use cookies and web beacons on our site. Our advertising partners include ....&lt;br /&gt;Google Adsense&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These third-party ad servers or ad networks use technology to the advertisements and links that appear on www.binary-imaginers.blogspot.com send directly to your browsers. They automatically receive your IP address when this occurs. Other technologies ( such as cookies, JavaScript, or Web Beacons ) may also be used by the third-party ad networks to measure the effectiveness of their advertisements and / or to personalize the advertising content that you see.&lt;br /&gt;&lt;br /&gt;www.binary-imaginers.blogspot.com has no access to or control over these cookies that are used by third-party advertisers.&lt;br /&gt;&lt;br /&gt;You should consult the respective privacy policies of these third-party ad servers for more detailed information on their practices as well as for instructions about how to opt-out of certain practices. www.binary-imaginers.blogspot.com&#39;s privacy policy does not apply to, and we cannot control the activities of, such other advertisers or web sites.&lt;br /&gt;&lt;br /&gt;If you wish to disable cookies, you may do so through your individual browser options. More detailed information about cookie management with specific web browsers can be found at the browsers&#39; respective websites. &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/3504421621590943725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/06/privacy-policy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/3504421621590943725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/3504421621590943725'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/06/privacy-policy.html' title='Privacy Policy'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-1952581335417425015</id><published>2014-06-02T10:07:00.000-07:00</published><updated>2016-10-06T00:05:37.403-07:00</updated><title type='text'>java program to count minimum number of bits required to convert a given number into another number</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;Question:&lt;/b&gt; Write a
    Java program that will return the number of bits that will need to be
    changed in order to convert an integer, X, into another integer, Y and vice
    versa.&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;Explanation:&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
    The method should accept two different integers as input. For example, if
    your method is passed the integers 12 and 16 then your method should return
    a 3 .&amp;nbsp;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Let&#39;s take a
    closer look at the example given to us. It says that for the input of a 12
    and 16, the output of the method should be a 3. Since we are looking for
    the number of bits that will need to be changed, let&#39;s convert 12 and 16 to
    binary to further understand this bit manipulation problem. The binary
    representation of 12 is 01100 and the binary representation of 16 is 10000.
    Comparing the binary representation of those two numbers, we can see that
    the first 3 digits are different, which means that to convert 12 to 16 or
    16 to 12 we would have to change 3 numbers. And that is why the method that
    we write should output a 3.&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;Solution:&lt;/b&gt;The binary
    operator that is perfect for this exercise is the XOR operator. If you need
    a refresher on how that operator works you can read this: &lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html&quot; target=&quot;_blank&quot;&gt;XOR in Java&lt;/a&gt;. This is because the XOR operator will
    return true when the binary digits being compared are different, but will
    return false when they are the same. So, if we just XOR the two numbers
    being passed in, the result of the XOR operation will be binary number that
    will have a binary 1 each and every time there is a different bit between
    the inputs x and y, and a binary 0 when the bits in the input x and y are
    the same. So, for example, if we XOR 1001 and 0101 the result of the XOR
    operation would be a 1100 because the 2 leftmost bits are different, so the
    result of XOR&#39;ing those 2 bits would be a 1 but the 2 rightmost bits in our
    inputs are the same, so the result of XOR would be a 0.&amp;nbsp;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;So, the
    algorithm to solve this bit manipulation interview question would
    be:&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;First, XOR the
    two numbers being passed in - call them x and y - and then call the result
    Z.&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Then, just
    count the number of binary 1′s in Z since that count represents the number
    of different bits in the two numbers x and y. In order to count the number
    of binary 1′s in Z, we can just take Z, and perform the binary AND
    operation with the number 1. When the result of that operation is a 1 then
    we know that the very last binary digit in Z is a 1. Then, we can shift Z
    by 1 bit and repeat until there is nothing left to shift - which is when Z
    is equal to 0.&amp;nbsp;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Here is the
    Java implementation of that algorithm and our final answer to this problem:
    &amp;nbsp;&lt;/span&gt;
   &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
    &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Bit-wise and
     bit shift operations:&lt;/span&gt;
    &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;brush:java&quot;&gt;public class BitDiffernce {
&amp;nbsp;&amp;nbsp;&amp;nbsp; public&amp;nbsp; int findNumberOfBits(int x, int y) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int bitCount = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int z = x ^ y;&amp;nbsp; //XOR x and y

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while (z != 0) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //increment count if last binary digit is a 1:

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; bitCount += z &amp;amp; 1; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; z = z &amp;gt;&amp;gt; 1;&amp;nbsp; //shift Z by 1 bit to the right
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return bitCount;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String args[]) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; BitDiffernce bd = new BitDiffernce();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;No of bits needed to change are: &quot;+
                   bd.findNumberOfBits(12, 46));&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
} &lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
    &lt;/h1&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;color: #110000;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;You will get following
    output&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;&lt;span style=&quot;color: #110000;&quot;&gt;&lt;span style=&quot;font-family: serif;&quot;&gt;&lt;tt&gt;&lt;span style=&quot;color: #110000;&quot;&gt;:&lt;/span&gt;&lt;/tt&gt;&lt;/span&gt;&lt;/span&gt;&lt;/tt&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;
    &lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Output&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;                                                      &lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;
======================================================&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif; margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;code&gt;&lt;/code&gt;
      &lt;span style=&quot;font-family: Verdana,sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;No of bits needed to change are:2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
     &lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
    &lt;/h3&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
    &lt;/h4&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/1952581335417425015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/06/java-program-to-count-minimum-number-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1952581335417425015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1952581335417425015'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/06/java-program-to-count-minimum-number-of.html' title='java program to count minimum number of bits required to convert a given number into another number'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-6213890498984164543</id><published>2014-06-02T09:33:00.000-07:00</published><updated>2015-02-05T07:11:05.403-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Bitwise and Bit Shift Operators in Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This post is all about basic understanding of operators that perform bit-wise and bit shift operations on integral types that Java programming language provides.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Section in this post:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section1&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;List of Operators&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section2&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Unary bitwise complement&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section3&quot;&gt;Bitwise AND&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section4&quot;&gt;Bitwise exclusive OR&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section5&quot;&gt;Bitwise inclusive OR&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section6&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Signed left shift&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section7&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Non circular shift&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section8&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Unsigned right shift(&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;Logical right shift&lt;/b&gt;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section9&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Lost Bits are gone&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section10&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Signed right shift(&lt;span style=&quot;color: black;&quot;&gt;&lt;b&gt;Arithmetic right shift&lt;/b&gt;&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/06/bitwise-and-bit-shift-operators-in-java.html#section11&quot;&gt;Example&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;section1&quot; style=&quot;text-align: left;&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;The bitwise operators: &lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;4&quot; cellspacing=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;Operator&lt;/th&gt;&lt;th&gt;Name&lt;/th&gt;&lt;th&gt;Example&lt;/th&gt;&lt;th&gt;Result&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;i&gt;a&lt;/i&gt; &amp;amp; &lt;i&gt;b&lt;/i&gt;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;and&lt;/td&gt;&lt;td&gt;3 &amp;amp; 5&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1 if both bits are 1.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;i&gt;a&lt;/i&gt; | &lt;i&gt;b&lt;/i&gt;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;or&lt;/td&gt;     &lt;td&gt;3 | 5    &lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;1 if either bit is 1.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;i&gt;a&lt;/i&gt; ^ &lt;i&gt;b&lt;/i&gt;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;xor&lt;/td&gt;    &lt;td&gt;3 ^ 5    &lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;1 if both bits are different.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;~&lt;i&gt;a&lt;/i&gt;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;not&lt;/td&gt;              &lt;td&gt;~3       &lt;/td&gt;&lt;td&gt;-4&lt;/td&gt;&lt;td&gt;Inverts the bits.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;i&gt;n&lt;/i&gt; &amp;lt;&amp;lt; &lt;i&gt;p&lt;/i&gt;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;left shift&lt;/td&gt;&lt;td&gt;3 &amp;lt;&amp;lt;&amp;lt; 2&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;Shifts the bits of &lt;i&gt;n&lt;/i&gt; left &lt;i&gt;p&lt;/i&gt;
            positions.  Zero bits are shifted into the low-order positions.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;i&gt;n&lt;/i&gt; &amp;gt;&amp;gt; &lt;i&gt;p&lt;/i&gt;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;right shift&lt;/td&gt;&lt;td&gt;5 &amp;gt;&amp;gt; 2&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;Shifts the bits of &lt;i&gt;n&lt;/i&gt; right &lt;i&gt;p&lt;/i&gt;
            positions.  If &lt;i&gt;n&lt;/i&gt; is a 2&#39;s complement signed number, the sign bit 
            is shifted into the high-order positions.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;i&gt;n&lt;/i&gt; &amp;gt;&amp;gt;&amp;gt; &lt;i&gt;p&lt;/i&gt;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;right shift&lt;/td&gt;&lt;td nowrap=&quot;true&quot;&gt;-4 &amp;gt;&amp;gt;&amp;gt; 28 &lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;Shifts the bits of &lt;i&gt;n&lt;/i&gt; right &lt;i&gt;p&lt;/i&gt;
            positions.  Zeros are shifted into the high-order positions.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Note:&lt;/b&gt;&lt;/span&gt;&amp;nbsp; &quot;&lt;code&gt;&amp;lt;&amp;lt;&amp;lt;&lt;/code&gt;&quot; is not an operator, because it would be redundant. Lets see each operator one by one:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span id=&quot;section2&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;The unary bitwise complement operator:&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
The unary bitwise complement operator &quot;&lt;code&gt;~&lt;/code&gt;&quot; inverts a bit 
pattern; it can be applied to any of the integral types, making every 
&quot;0&quot; a &quot;1&quot; and every &quot;1&quot; a &quot;0&quot;.&lt;br /&gt;
&amp;nbsp;&lt;b&gt;For example:&lt;/b&gt; A &lt;code&gt;byte&lt;/code&gt; contains 8 bits; applying this operator to a value whose bit pattern is &quot;00000000&quot; would change its pattern to &quot;11111111&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span id=&quot;section3&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;The bitwise &lt;code&gt;&amp;amp;&lt;/code&gt; operator:&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div  style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;&quot;&gt;Bitwise AND operator works similar to logical AND operator (&amp;amp;&amp;amp;)
and returns 1 if both operands are 1. Difference with bitwise AND and logical
AND also known as short-circuit AND operator is that, logical AND operator
applies only to boolean type. Also bitwise AND operator is denoted by singe &amp;amp; while
short circuit AND operator is denoted by &amp;amp;&amp;amp;.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;For example:&lt;/b&gt;If A
represent 0010 and B represent 1010 then result of A&amp;amp;B would be
0010. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span id=&quot;section4&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;The bitwise &lt;code&gt;^&lt;/code&gt; operator:&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Bitwise XOR operator is denoted by ^ and also work on individual bits.
There is no short-circuit XOR operator in Java and result of bitwise XOR
operator is XOR operation of individual bits. see the truth table of XOR
operation for predicting result. in short bitwise XOR operators will return 1
if both bits are different and return 0 if both bits are same.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span id=&quot;section5&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;The bitwise &lt;code&gt;|&lt;/code&gt; operator:&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial; font-size: 9.0pt; mso-bidi-font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Bitwise OR operator is also similar to bitwise AND operator and applies
to individual bits. It’s different than short-circuit OR operator, which is
denoted by (||) and operates on boolean variable. Bitwise OR operator produce
result of OR operation on two bits. Like other
bitwise operator in Java, bitwise OR is only applicable to integral types.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span id = &quot;section6&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Left shift (&amp;lt;&amp;lt;)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;br /&gt;
&lt;div&gt;
Integers are stored, in memory, as a series of bits.  For example, the number 6 stored as a 32-bit &lt;code&gt;int&lt;/code&gt; would be:&lt;code&gt; &lt;/code&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;00000000 00000000 00000000 00000110&lt;/code&gt;&lt;/pre&gt;
Shifting this bit pattern to the left one position (&lt;code&gt;6 &amp;lt;&amp;lt; 1&lt;/code&gt;) would result in the number 12:&lt;code&gt; &lt;/code&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;00000000 00000000 00000000 00001100 &lt;/code&gt;&lt;/pre&gt;
As you can see, the digits have shifted to the left by one position, 
and the last digit on the right is filled with a zero.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Note:&lt;/b&gt;&lt;/span&gt; Shifting left is equivalent to multiplication by powers of 2. 
 So &lt;code&gt;6 &amp;lt;&amp;lt; 1&lt;/code&gt; is equivalent to &lt;code&gt;6 * 2&lt;/code&gt;, and &lt;code&gt;6 &amp;lt;&amp;lt; 3&lt;/code&gt; is equivalent to &lt;code&gt;6 * 8&lt;/code&gt;.  A good optimizing compiler will substitute shifts for multiplications when possible.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span id =&quot;section7&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Non-circular shifting :&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
Please note that these are &lt;i&gt;not&lt;/i&gt; circular shifts.  Shifting this value to the left by one position (&lt;code&gt;3,758,096,384 &amp;lt;&amp;lt; 1&lt;/code&gt;):&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;11100000 00000000 00000000 00000000
&lt;/code&gt;&lt;/pre&gt;
results in 3,221,225,472:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;11000000 00000000 00000000 00000000
&lt;/code&gt;&lt;/pre&gt;
The digit that gets shifted &quot;off the end&quot; is lost.  It does not wrap around&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span id =&quot;section8&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Logical right shift (&amp;gt;&amp;gt;&amp;gt;)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
A logical right shift is the converse to the left shift.  Rather than
 moving bits to the left, they simply move to the right.  For example, 
shifting the number 12:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;00000000 00000000 00000000 00001100&lt;/code&gt;&lt;/pre&gt;
to the right by one position (&lt;code&gt;12 &amp;gt;&amp;gt;&amp;gt; 1&lt;/code&gt;) will get back our original 6:&lt;code&gt; &lt;/code&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;00000000 00000000 00000000 00000110&lt;/code&gt;&lt;/pre&gt;
So we see that shifting to the right is equivalent to division by powers of 2.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span id = &quot;section9&quot; style=&quot;color: #38761d;&quot;&gt;Lost bits are gone&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
However, a shift cannot reclaim &quot;lost&quot; bits.  For example, if we shift this pattern:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;00111000 00000000 00000000 00000110&lt;/code&gt;&lt;/pre&gt;
to the left 4 positions (&lt;code&gt;939,524,102 &amp;lt;&amp;lt; 4&lt;/code&gt;), we get 2,147,483,744:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;10000000 00000000 00000000 01100000 &lt;/code&gt;&lt;/pre&gt;
and then shifting back (&lt;code&gt;(939,524,102 &amp;lt;&amp;lt; 4) &amp;gt;&amp;gt;&amp;gt; 4&lt;/code&gt;) we get 134,217,734:&lt;code&gt; &lt;/code&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;00001000 00000000 00000000 00000110&lt;/code&gt;&lt;/pre&gt;
We cannot get back our original value once we have lost bits.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span id = &quot;section10&quot; style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Arithmetic right shift (&amp;gt;&amp;gt;)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
The arithmetic right shift is exactly like the logical right shift, 
except instead of padding with zero, it pads with the most significant 
bit.  This is because the most significant bit is the &lt;i&gt;sign&lt;/i&gt; bit,
 or the bit that distinguishes positive and negative numbers.  By 
padding with the most significant bit, the arithmetic right shift is 
sign-preserving.&lt;br /&gt;
&lt;br /&gt;
For example, if we interpret this bit pattern as a negative number:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;10000000 00000000 00000000 01100000&lt;/code&gt;&lt;/pre&gt;
we have the number -2,147,483,552.  Shifting this to the right 4 
positions with the arithmetic shift (-2,147,483,552 &amp;gt;&amp;gt; 4) would 
give us:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;11111000 00000000 00000000 00000110&lt;/code&gt;&lt;/pre&gt;
or the number -134,217,722.&lt;br /&gt;
&lt;br /&gt;
So we see that we have preserved the sign of our negative numbers by 
using the arithmetic right shift, rather than the logical right shift.  
And once again, we see that we are performing division by powers of 2.&lt;br /&gt;
&lt;br /&gt;
Here a simple java program showing Bit-wise and bit shift operations:&lt;br /&gt;
&lt;br /&gt;
&lt;div id =&quot;section11&quot; style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class tetBitOperator{
&amp;nbsp;
public static void main(String args[]) {
      int a = 60; /* 60 = 0011 1100 */  
      int b = 13; /* 13 = 0000 1101 */
      int c = 0;

      System.out.println(&quot;a=&quot;+a);
      System.out.println(&quot;b=&quot;+b);
      
      c = a &amp;amp; b;       /* 12 = 0000 1100 */ 
      System.out.println(&quot;a &amp;amp; b = &quot; + c );

      c = a | b;       /* 61 = 0011 1101 */
      System.out.println(&quot;a | b = &quot; + c );

      c = a ^ b;       /* 49 = 0011 0001 */
      System.out.println(&quot;a ^ b = &quot; + c );

      c = ~a;          /*-61 = 1100 0011 */
      System.out.println(&quot;~a = &quot; + c );

      c = a &amp;lt;&amp;lt; 2;     /* 240 = 1111 0000 */
      System.out.println(&quot;a &amp;lt;&amp;lt; 2 = &quot; + c );

      c = a &amp;gt;&amp;gt; 2;     /* 215 = 1111 */
      System.out.println(&quot;a &amp;gt;&amp;gt; 2  = &quot; + c );

      c = a &amp;gt;&amp;gt;&amp;gt; 2;     /* 215 = 0000 1111 */
      System.out.println(&quot;a &amp;gt;&amp;gt;&amp;gt; 2 = &quot; + c )
 }
}&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;==========================================================================&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;a &amp;amp; b = 12
a | b = 61
a ^ b = 49
~a = -61
a &amp;lt;&amp;lt; 2 = 240
a &amp;gt;&amp;gt; 2  = 15
a &amp;gt;&amp;gt;&amp;gt; 2 = 15 &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/6213890498984164543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/06/bitwise-and-bit-shift-operators-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6213890498984164543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6213890498984164543'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/06/bitwise-and-bit-shift-operators-in-java.html' title='Bitwise and Bit Shift Operators in Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-5743421220939503057</id><published>2014-05-30T04:03:00.000-07:00</published><updated>2015-02-05T07:15:23.743-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Structure and Algorithms"/><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'> Producer Consumer Problem&#39;s solution in Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 22.399999618530273px; margin: 0.5em 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
From the&lt;b&gt; &lt;/b&gt;Wikipedia definition,&amp;nbsp; the&lt;a href=&quot;http://en.wikipedia.org/wiki/Producer%E2%80%93consumer_problem&quot; target=&quot;_blank&quot;&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;producer–consumer problem&lt;/b&gt;&lt;/a&gt;&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;(also known as the&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;bounded-buffer problem&lt;/b&gt;) is a classic example of a multi-process&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;synchronization&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;problem. The problem describes two processes, the producer and the consumer, who share a common, fixed-size&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;buffer&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;used as a&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;queue. The producer&#39;s job is to generate a piece of data, put it into the buffer and start again. At the same time, the consumer is consuming the data (i.e., removing it from the buffer) one piece at a time. The problem is to make sure that the producer won&#39;t try to add data into the buffer if it&#39;s full and that the consumer won&#39;t try to remove data from an empty buffer.&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 22.399999618530273px; margin: 0.5em 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
The solution for the producer is to either go to sleep or discard data if the buffer is full. The next time the consumer removes an item from the buffer, it notifies the producer, who starts to fill the buffer again. In the same way, the consumer can go to sleep if it finds the buffer to be empty. The next time the producer puts data into the buffer, it wakes up the sleeping consumer. The solution can be reached by means of&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;inter-process communication. An inadequate solution could result in a&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;deadlock&lt;span class=&quot;Apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;where both processes are waiting to be awakened. The problem can also be generalized to have multiple producers and consumers.&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 22.399999618530273px; margin: 0.5em 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 22.399999618530273px; margin: 0.5em 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
In this post I am sharing my producer-consumer solution written in Java.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Producer class:&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.util.Vector;

public class MyProducer implements Runnable{
 /*taking vector to use as buffer,&amp;nbsp;
         *it will keep numbers produced by Producer 
  *and work as synchronisation object
        */
 Vector&amp;lt;Integer&amp;gt; sharedQ;
 // Size will store the maximum size of buffer
 int SIZE;
 /*
  * Constructor for Producer class
  */
 public MyProducer(Vector&amp;lt;Integer&amp;gt; sharedQ, final int size) {
  this.sharedQ =sharedQ;
  this.SIZE= size;
 }
 @Override
 public void run() {
  int i=0;
  while(true){
   i++;
   produce(i);
  }
 }
 /*
  * This method has the logic for producing numbers&amp;nbsp;
         *and synchronization with consumer
  */
 public void produce(int i) {
  //testing if buffer is already full
  while(sharedQ.size() == SIZE) {
   synchronized (sharedQ) {
    try {
     System.out.println(&quot;producer waiting...&quot;);
     //waiting until some space is made in buffer
     sharedQ.wait();
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }
  //adding numbers in buffer
  synchronized(sharedQ) {
   sharedQ.add(i);
   System.out.println(&quot;Producer produced: &quot;+i);
   //notifying other thread which are waiting on sharedQ
   sharedQ.notifyAll();
  }
  try {
   /*
    * making thread to sleep for random time after producing  
    *so as to make output more readable and understandable
    *we can set any arbitrary sleeping time
    */
   Thread.sleep(((long)((Math.random())*10000)));
  } catch (InterruptedException e) {
   e.printStackTrace();
  }
 }
}


&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Consumer class:&lt;/span&gt;&lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.util.Vector;

public class MyConsumer implements Runnable {
 
        /*taking vector to use as buffer,&amp;nbsp;
         *it will keep numbers produced by Producer 
  *and work as synchronisation object
        */&amp;nbsp;
        Vector&amp;lt;Integer&amp;gt; sharedQ;
 
 public MyConsumer(Vector&amp;lt;Integer&amp;gt; sharedQ) {
  this.sharedQ = sharedQ;
 }
 
 @Override
 public void run() {
  /*
   * loop will go on forever
   */
  while(true) {
      consumed();
     /*
      * making thread to sleep for random time after consuming  
      *so as to make output more readable and understandable
      *we can set any arbitrary sleeping time
      */
      try {
   Thread.sleep(((long)((Math.random())*20000)));
   
      } catch (InterruptedException e) {   
   e.printStackTrace();
      }
       }
 }
 /*
  * This method has the logic for consuming numbers&amp;nbsp;
         *and synchronization with producer
  */
 public void consumed() {
  // cheacking if buffer is empty-then consumer has to wait
   while(sharedQ.isEmpty()) {
    synchronized(sharedQ) {
     try {
      System.out.println(Thread.currentThread().getName()+&quot; waiting...&quot;);
      sharedQ.wait();
     } catch (InterruptedException e) {
      
      e.printStackTrace();
     }
     
    }
   }
   //consuimng a number from the buffer
   synchronized(sharedQ) {
      System.out.println(Thread.currentThread().getName()+&quot; consumed &quot;+sharedQ.remove(0));
      //notifying other thread which are waiting on sharedQ
      sharedQ.notifyAll();
   }
  }
 
}

&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&amp;nbsp;
&lt;span style=&quot;font-size: small;&quot;&gt;Test class:&lt;/span&gt;&lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.util.Vector;

public class MyProducerConsumerTest { 
 
 public static void main(String args[]) {
  
        /*taking vector to use as buffer,&amp;nbsp;
         *it will keep numbers produced by Producer 
  *and work as synchronisation object
         */&amp;nbsp;&amp;nbsp;
        Vector&amp;lt;Integer&amp;gt; sharedQ = new Vector&amp;lt;Integer&amp;gt;();
        // Size will store the maximum size of buffer
  final int SIZE = 5;
 //Making producer and consumer thread
 Thread producer = new Thread(new MyProducer(sharedQ,SIZE),&quot;producer&quot;);
 Thread consumer = new Thread(new MyConsumer(sharedQ),&quot;consumer&quot;);
  
 //starting producer/consumer threads
 producer.start();
 consumer.start();
 /*
  * this join is optional- 
  * after join this main thread will never finish as consumer/producer willl run forever
  * to see effect of join we need to make consumer/producer to run for some specific time
  */
  
 try {
  producer.join();
  consumer.join();
   
 } catch (InterruptedException e) {   
  e.printStackTrace();
 }
 /*
  * this will never get printed 
  * unless we remove join call made above or finish execution of producer/consumer threads
  */
 System.out.println(&quot;all done&quot;);
 }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;We can make this code to work for multiple producer/consumer scenario just by changing test class and creating multiple threads for producer and consumer. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;Modified Test class:&lt;/span&gt;&lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.util.Vector;

public class MyProducerConsumerTest { 
 
 public static void main(String args[]) {
  
        /*taking vector to use as buffer,&amp;nbsp;
         *it will keep numbers produced by Producer 
  *and work as synchronisation object
         */&amp;nbsp;&amp;nbsp;
        Vector&amp;lt;Integer&amp;gt; sharedQ = new Vector&amp;lt;Integer&amp;gt;();
        // Size will store the maximum size of buffer
  final int SIZE = 5;&amp;nbsp;
&amp;nbsp;
     //Making producer and consumer thread
 Thread producer1 = new Thread(new MyProducer(sharedQ,SIZE),&quot;producer1&quot;);
        Thread producer2 = new Thread(new MyProducer(sharedQ,SIZE),&quot;producer2&quot;); 
&amp;nbsp;       Thread producer3 = new Thread(new MyProducer(sharedQ,SIZE),&quot;producer3&quot;);
&amp;nbsp;       Thread consumer1 = new Thread(new MyConsumer(sharedQ),&quot;consumer1&quot;);
&amp;nbsp;       Thread consumer2 = new Thread(new MyConsumer(sharedQ),&quot;consumer2&quot;);
        Thread consumer3 = new Thread(new MyConsumer(sharedQ),&quot;consumer3&quot;);
        Thread consumer4 = new Thread(new MyConsumer(sharedQ),&quot;consumer4&quot;); 
&amp;nbsp;&amp;nbsp;
       //starting producer/consumer threads
 producer1.start();
        producer2.start();
        producer3.start(); 
&amp;nbsp;       consumer1.start();
&amp;nbsp;       consumer2.start();
        consumer3.start();
       consumer4.start(); 
&amp;nbsp;       /*
  * this join is optional- 
  * after join this main thread will never finish as consumer/producer willl run forever
  * to see effect of join we need to make consumer/producer to run for some specific time
  */
  
 try {
  producer1.join();
&amp;nbsp;               producer2.join();
               producer3.join(); 
&amp;nbsp;               consumer1.join();
&amp;nbsp;               consumer2.join();
                consumer3.join();
                consumer4.join(); 
       &amp;nbsp;} catch (InterruptedException e) {   
  e.printStackTrace();
 }
 /*
  * this will never get printed 
  * unless we remove join call made above or finish execution of producer/consumer threads
  */
 System.out.println(&quot;all done&quot;);
 }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&amp;nbsp;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #252525; font-family: sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 22.399999618530273px; margin: 0.5em 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/5743421220939503057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/producer-consumer-problems-solution-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/5743421220939503057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/5743421220939503057'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/producer-consumer-problems-solution-in.html' title=' Producer Consumer Problem&#39;s solution in Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-1596767838917836668</id><published>2014-05-29T00:55:00.000-07:00</published><updated>2016-05-10T21:43:35.242-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>immutability in Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
An object is considered &lt;i&gt;immutable&lt;/i&gt; if its state cannot change after it is constructed.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Immutable objects are particularly useful in concurrent applications. 
Since they cannot change state, they cannot be corrupted by thread 
interference or observed in an inconsistent state. &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;Sections in this post:&lt;/b&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;code&gt;&lt;/code&gt; &lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/05/immutability-in-java.html#section1&quot;&gt;Strategy for defining immutable objects&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/05/immutability-in-java.html#section2&quot;&gt;Declaring class as final&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/05/immutability-in-java.html#section3&quot;&gt;Using factory methods and making constructor private&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/05/immutability-in-java.html#section4&quot;&gt;When mutable variables are present in class&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/05/immutability-in-java.html#section5&quot;&gt;Builder design pattern&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/05/immutability-in-java.html#section6&quot;&gt;Date Object in immutable class &lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;PageTitle&quot; style=&quot;text-align: left;&quot;&gt;
&lt;h1&gt;
&lt;span id=&quot;section1&quot; style=&quot;font-size: large;&quot;&gt;Strategy for Defining Immutable Objects&lt;/span&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The following rules define a simple strategy for creating immutable objects. &lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Don&#39;t provide &quot;setter&quot; methods — methods that modify fields or objects referred to by fields.&lt;/li&gt;
&lt;li&gt;Make all fields &lt;code&gt;final&lt;/code&gt; and &lt;code&gt;private&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Set all instance data in the constructor. &lt;/li&gt;
&lt;li&gt;Don&#39;t allow sub-classes to override methods. The simplest way to do this is to declare the class as &lt;code&gt;final&lt;/code&gt;. A more sophisticated approach is to make the constructor &lt;code&gt;private&lt;/code&gt; and construct instances in factory methods.&lt;/li&gt;
&lt;li&gt;If the instance fields include references to mutable objects, don&#39;t allow those objects to be changed:
&lt;ul&gt;
&lt;li&gt;Don&#39;t provide methods that modify the mutable objects.&lt;/li&gt;
&lt;li&gt;
     Clone mutable objects for which a reference to them is returned.&lt;br /&gt;

  &lt;/li&gt;
&lt;li&gt;
     Clone mutable objects for which a reference to them is received.&lt;br /&gt;

  &lt;/li&gt;
&lt;li&gt;
     Implement a deep clone if the default shallow clone is not correct for 
      a properly behaved immutable object.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;Lets add all above rules and make something concrete class implementation.&lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;/ol&gt;
&lt;span id=&quot;section2&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;By making class final:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This is the most simple way of making a class mutable.&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public final class FinalPersonClass {    &amp;nbsp;&amp;nbsp; 

&amp;nbsp; &amp;nbsp; &amp;nbsp; private final String name;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final int age;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public FinalPersonClass(final String name, final int age) { 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.name = name;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.age = age; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int getAge() { 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return age;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getName() { 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return name;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
} &lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;span id=&quot;section3&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&amp;nbsp;Using Factory methods and making constructor private:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;//No need to make class final here 
public class FinalPerson { 
    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
     private final String name;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private final int age; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private FinalPerson(final String name, final int age) { 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.name = name;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.age = age;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int getAge() { 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return age;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public String getName() { 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return name;&amp;nbsp;
      } 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public FinalPerson getFinalPerson(final String name, final int age) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new FinalPerson(final String name, final int age);
     }
} &lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span id=&quot;section4&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;Making a class immutable in Java, which includes mutable member
variable.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
When an immutable class is implemented, mutable objects passed to or returned 
  from an immutable object must be properly cloned. Consider the following class declarations: a &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; class and 
  a &lt;tt&gt;User&lt;/tt&gt; class. The &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; is intended to be immutable. The 
  &lt;tt&gt;User&lt;/tt&gt; encapsulates which user has shared access to the disk drive. The 
  &lt;tt&gt;User&lt;/tt&gt; object with shared access is stored as part of the &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; 
  object. In the following example, the designer of the class was careful to make 
  the class &lt;tt&gt;final&lt;/tt&gt; and all fields &lt;tt&gt;private&lt;/tt&gt;, and to provide only getter 
  methods. Is the &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; class immutable? If not, what needs to 
  be done to make it so?&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span id=&quot;section4&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;class User
{
  private String userName;
  private String userID;
  private int userNode;

  User(String name, int node)
  {
    userName = name;
    userNode = node;
  }
  public void setUserName(String name)
  {
    userName = name;
  }
  public void setUserID(String userid)
  {
    userID = userid;
  }
  public void setUserNode(int node)
  {
    userNode = node;
  }
  public String userName()
  {
    return userName;
  }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;final class DiskDriveInfo
{
  private int driveSize;
  private String volumeLabel;
  private User driveShare;

  DiskDriveInfo(int size, String volLabel, User share)
  {
    driveSize = size;
    volumeLabel = volLabel;
    driveShare = share;
  }
  public int size()
  {
    return driveSize;
  }
  public String label()
  {
    return volumeLabel;
  }
  public User share()
  {
    return driveShare;
  }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
The &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; class is not immutable. Objects of this class can 
  be changed. Consider the following code that creates a &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; 
  object and tests its immutability:&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;class Test
{
  private static final int sizeInMeg = 200;
  public static void main(String args[])
  {
    User share1 = new User(&quot;Duke&quot;, 10);                       //1
    DiskDriveInfo dd = new DiskDriveInfo(sizeInMeg, &quot;myDrive&quot;,
                                         share1);             //2
    User share = dd.share();
    System.out.println(&quot;User with shared access is &quot; +
                       share.userName());

    share1.setUserName(&quot;Fred&quot;);                               //3
    System.out.println(&quot;User with shared access is &quot; +
                       share.userName());
  }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;If we run the program we will get output like this:&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;================================================================================&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre&gt;User with shared access is Duke
User with shared access is Fred&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
What went wrong? This code creates a &lt;tt&gt;User&lt;/tt&gt; object, &lt;tt&gt;share1&lt;/tt&gt;, at 
  //1, with the user name &lt;tt&gt;Duke&lt;/tt&gt;. A supposedly immutable &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; 
  object is created at //2 and is passed a reference to the &lt;tt&gt;User&lt;/tt&gt; object. 
  The &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; object is queried, and the shared owner, &lt;tt&gt;Duke&lt;/tt&gt;, 
  is printed. The &lt;tt&gt;User&lt;/tt&gt; object, &lt;tt&gt;share1&lt;/tt&gt;, changes its name to &lt;tt&gt;Fred&lt;/tt&gt; 
  at //3. When the &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; object is queried again for the user name, 
  it discovers that the name changed from &lt;tt&gt;Duke&lt;/tt&gt; to &lt;tt&gt;Fred&lt;/tt&gt;.&lt;br /&gt;
The problem is that the &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; constructor receives a reference 
  to the &lt;tt&gt;User&lt;/tt&gt; object and does not make a copy, or clone, of this object. 
  Therefore, the &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; constructor receives a copy of the reference 
  to the &lt;tt&gt;User&lt;/tt&gt; object. Now the &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; object&#39;s &lt;tt&gt;driveShare&lt;/tt&gt; 
  field and the local variable, &lt;tt&gt;share1&lt;/tt&gt;, in &lt;tt&gt;main&lt;/tt&gt; of class &lt;tt&gt;Test&lt;/tt&gt;, 
  reference the same object. Therefore, any changes made through either reference 
  affect the same object. Figure shows the object layout after the code at //1 is executed.&lt;/div&gt;
&lt;span id=&quot;section5&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;http://ptgmedia.pearsoncmg.com/images/art_haggar2_praxis64/elementLinks/haggar2_fig1.gif&quot; src=&quot;http://ptgmedia.pearsoncmg.com/images/art_haggar2_praxis64/elementLinks/haggar2_fig1.gif&quot; /&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span id=&quot;section4&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
After the code at //2 is executed, the object layout looks as shown in Figure&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;http://ptgmedia.pearsoncmg.com/images/art_haggar2_praxis64/elementLinks/haggar2_fig2.gif&quot; src=&quot;http://ptgmedia.pearsoncmg.com/images/art_haggar2_praxis64/elementLinks/haggar2_fig2.gif&quot; /&gt;&lt;br /&gt;
Notice that because the reference to the &lt;tt&gt;User&lt;/tt&gt; object is not cloned, 
  both the &lt;tt&gt;share1&lt;/tt&gt; and &lt;tt&gt;driveShare&lt;/tt&gt; references share the same &lt;tt&gt;User&lt;/tt&gt; 
  object. After the code at //3 is executed, the object layout as shown in Figure.&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;http://ptgmedia.pearsoncmg.com/images/art_haggar2_praxis64/elementLinks/haggar2_fig3.gif&quot; src=&quot;http://ptgmedia.pearsoncmg.com/images/art_haggar2_praxis64/elementLinks/haggar2_fig3.gif&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
To correct this problem, the &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; class must clone any mutable object to which it receives 
  a reference. It then has a reference to its own copy of the object that cannot 
  be changed by other code.
&lt;br /&gt;
The modified &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; class that supports cloning looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;final class DiskDriveInfo
{
  //As before...
  DiskDriveInfo(int size, String volLabel, User share)
  {
    driveSize = size;
    volumeLabel = volLabel;
    driveShare = (User)share.clone();
  }
  public User share()
  {
    return (User)driveShare.clone();
  }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&amp;nbsp;Because you are cloning the &lt;tt&gt;User&lt;/tt&gt; object, its definition must change 
  as well.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;class User implements Cloneable
{
  //As before...
  public Object clone()
  {
    try {
      return super.clone();
    }
    catch (CloneNotSupportedException e) {
      //This should not happen, since this class is Cloneable.
      throw new InternalError();
    }
  }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&amp;nbsp;With these changes to the &lt;tt&gt;User&lt;/tt&gt; object, running the previous test code 
  produces the correct output:&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;================================================================================&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre&gt;User with shared access is Duke
User with shared access is Fred&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
Because the &lt;tt&gt;User&lt;/tt&gt; object is cloned on the constructor call, the code 
  that subsequently changes the &lt;tt&gt;User&lt;/tt&gt; object at //1 has no effect on the 
  &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; object. The implementation of the immutable &lt;tt&gt;DiskDriveInfo&lt;/tt&gt; 
  class is now correct. The object layout looks as shown in Figure&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;img alt=&quot;http://ptgmedia.pearsoncmg.com/images/art_haggar2_praxis64/elementLinks/haggar2_fig4.gif&quot; src=&quot;http://ptgmedia.pearsoncmg.com/images/art_haggar2_praxis64/elementLinks/haggar2_fig4.gif&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span id=&quot;section5&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;Achieving Immutability with Builder Design Pattern:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
In most of the 
classes in our real applications there are many fields. Also, 
most of these fields are not mandatory for object creation.
 For example, a user in a real application will have a username, 
password, firstname, lastname, creationDate, emailAddress, etc., but for
 
user creation here, only a username and password are required.&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;The Builder Pattern separates the  construction of a complex 
object from its representation so that the  same construction process 
can create different representations.&lt;/i&gt;&lt;br /&gt;
The builder design pattern provides a way for you to build complex 
immutable objects. The process is:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;The client calls a constructor (or static factory) with all the 
required parameters and gets a builder object.&lt;/li&gt;
&lt;li&gt;The client calls setter like methods to set each optional parameter 
of interest.&lt;/li&gt;
&lt;li&gt;Finally the client calls the build method to generate the object 
which is immutable.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;div class=&quot;container&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.math.BigDecimal;

/**
* Immutable, hence thread safe CashBalance objec
*/

public final class CashBalance {
&amp;nbsp;&amp;nbsp;
&amp;nbsp;private BigDecimal initialBalance, totCredits, totDebits;
&amp;nbsp;&amp;nbsp;
 &amp;nbsp;//construct
&amp;nbsp; public CashBalance(CashBalanceBuilder builder) {
&amp;nbsp;&amp;nbsp;this.initialBalance = builder.initialBalance;
&amp;nbsp;&amp;nbsp;this.totCredits = builder.totCredits;
&amp;nbsp;&amp;nbsp;this.totDebits = builder.totDebits;
&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;public static class CashBalanceBuilder {
&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;//has same fields as the object it is going to build
&amp;nbsp;&amp;nbsp; protected BigDecimal initialBalance, totCredits, totDebits;
&amp;nbsp;&amp;nbsp;//define the setters that return itself
&amp;nbsp;&amp;nbsp; CashBalanceBuilder setInitialBalance(BigDecimal initialBalance) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;this.initialBalance = initialBalance;
&amp;nbsp;&amp;nbsp;&amp;nbsp;return this;
&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp; CashBalanceBuilder setTotCredits(BigDecimal totCredits) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; this.totCredits = totCredits;
&amp;nbsp;&amp;nbsp;&amp;nbsp;return this;
&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;CashBalanceBuilder setTotDebits(BigDecimal totDebits) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;this.totDebits = totDebits;
&amp;nbsp;&amp;nbsp;&amp;nbsp;return this;
&amp;nbsp;&amp;nbsp;}
&amp;nbsp;}
&amp;nbsp;&amp;nbsp;
&amp;nbsp;//only getter methods and no setter methods as it is an immutable object
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
The client code will look like this :&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;; font-size: 9.0pt;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;container&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public static void main(String[] args) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;CashBalance.CashBalanceBuilder builder =&amp;nbsp;
           new CashBalance.CashBalanceBuilder(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;               .setInitialBalance(BigDecimal.valueOf(250.00))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;               .setTotCredits(BigDecimal.valueOf(250.00))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;               .setTotDebits(BigDecimal.valueOf(250.00));
&amp;nbsp;&amp;nbsp;&amp;nbsp;                 CashBalance bal = new CashBalance(builder);
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;b&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;span id=&quot;section5&quot; style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;&lt;span id=&quot;section6&quot; style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;How to use &lt;span style=&quot;font-family: &amp;quot;times&amp;quot; , &amp;quot;times new roman&amp;quot; , serif;&quot;&gt;D&lt;/span&gt;ate object in immutable class&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This is a commonly asked scenario in interviews while discussing about immutable classes.&lt;br /&gt;
Some time you may need to write
immutable class which includes mutable classes like java.util.Date, &lt;b&gt;despite
storing Date into final field it can be modified&lt;/b&gt; &lt;b&gt;internally,&lt;/b&gt; if
internal date is returned to the client. In order to preserve immutability in
such cases, its advised to &lt;b&gt;return copy of original object&lt;/b&gt;.&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Consider the below code:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;Times New Roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public final class ImmutableReminder{

&amp;nbsp;&amp;nbsp;&amp;nbsp; private final Date remindingDate;
&amp;nbsp;&amp;nbsp;

&amp;nbsp;&amp;nbsp;&amp;nbsp; public ImmutableReminder (Date remindingDate)
    {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(remindingDate.getTime() &amp;lt; System.currentTimeMillis()){

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new IllegalArgumentException(&quot;Can not
                   set reminder” + “ for past time: &quot; + remindingDate);
         }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // creating new object of Date first
this.remindingDate = new Date(remindingDate.getTime());
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public Date getRemindingDate() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //returning clone of the date object 
     return (Date) remindingDate.clone();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
} &lt;/pre&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/1596767838917836668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/immutability-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1596767838917836668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1596767838917836668'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/immutability-in-java.html' title='immutability in Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-6762590213992006853</id><published>2014-05-28T06:01:00.001-07:00</published><updated>2014-05-29T10:16:29.516-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>serialVersionUID</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;br /&gt;
When you serialize an object using &lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/05/serialization-in-java.html&quot;&gt;Serialization&lt;/a&gt;
 mechanism (by implementing Serializable interface), there is a 
possibility that you may face versioning issues and because of these 
versioning issues, you will not be able to deserialize the object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;Sections in this post:&lt;/b&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;code&gt;&lt;/code&gt; Problem to face&lt;/li&gt;
&lt;li&gt;Root of the problem&lt;/li&gt;
&lt;li&gt;Solution &lt;/li&gt;
&lt;li&gt;What is serialVersionUID&lt;/li&gt;
&lt;li&gt;Example&lt;/li&gt;
&lt;li&gt;When to update serialVersionUID&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Compatible changes&lt;/li&gt;
&lt;li&gt;Incompatible changes &lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;b&gt;Problem scenario.... &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
lets say you created a class, instantiated it, and wrote it out to an 
object stream. That flattened object sits in the file system for some 
time. Meanwhile, you update the class file, perhaps adding a new field. 
Now try to read the flattened object. An exception 
&quot;java.io.InvalidClassException&quot; will be thrown.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;Root of the problem&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
lets first see what is actually causing this problem? Why should any 
change in a serialized class throw &quot;InvalidClassException&quot;.  During object
 serialization, the default Java serialization mechanism writes the 
metadata about the object, which includes the class name, field names 
and types, and superclass. All this information is stored as part of the
 serialized object.&lt;br /&gt;
When you deserialize the object, this information is
 read to reconstitute the object. But to perform the deserialization, the
 object needs to be identified first and this will be done by 
serialVersionUID. So everytime an object is serialized the java 
serialization mechanism automatically computes a hash value using 
ObjectStreamClass’s &lt;i&gt;&lt;b&gt;computeSerialVersionUID()&lt;/b&gt;&lt;/i&gt; method by passing the 
class name, sorted member names, modifiers, and interfaces to the secure
 hash algorithm (SHA), which returns a hash value, the serialVersionUID.&lt;br /&gt;
&lt;br /&gt;
Now when the serilaized object is retrieved, the JVM first evaluates the
 serialVersionUID of the serialized class and compares the 
serialVersionUID value with the one of the object. If the 
sserialVersionUID values match then the object is said to be compatible 
with the class and hence it is de-serialized. If not 
InvalidClassException exception is thrown.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;b&gt;And the solution is...&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The solution is very simple. Instead of relying on the JVM to generate 
the serialVersionUID, you explicitly mention (generate) the 
serialVersionUID in your class. The syntax is:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;
&amp;nbsp;private final static long serialVersionUID = &amp;lt;integer value&amp;gt;&amp;nbsp;
&lt;/pre&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;What is serialVersionUID?&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Its a static, private variable in the class. Once you define the 
serialVersionUID in your class explicitly, you don&#39;t need to update it 
until and unless you make the incompatible changes.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;b&gt;Example: &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Consider the same example taken from serialization post to explain the issue and importance of maintaining 
serialVersionUID.&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: black;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;
&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.ObjectInputStream;&lt;br /&gt;import java.io.ObjectOutputStream;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import java.util.Calendar;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;public class MyDateObject implements Serializable{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //first time we keep serial VersionUID as 1L&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final long serialVersionUID = 1L;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Date date;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public MyDateObject() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //date= Calendar.getInstance().getTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;calculateCurrentTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Date getDate() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return date;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setDate(Date date) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.date=date;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void calculateCurrentTime(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date = Calendar.getInstance().getTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void writeObject(ObjectOutputStream out) throws IOException {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.defaultWriteObject();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void readObject(ObjectInputStream in) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; throws IOException, ClassNotFoundException{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // our &quot;pseudo-constructor&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in.defaultReadObject();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // now perfrom same operation you need to do in constructor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; calculateCurrentTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;/pre&gt;
 &lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt;Class to serialize MayDate object :&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: black;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;
import java.io.FileOutputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.ObjectOutputStream;&lt;br /&gt;&lt;br /&gt;//Class to persist the time in a flat file time.ser&lt;br /&gt;public class WriteSerialClass {&lt;br /&gt;&lt;br /&gt;&amp;nbsp; public static void main(String [] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String filename = &quot;c://time.txt&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(args.length &amp;gt; 0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename = args[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyDateObject time = new MyDateObject();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileOutputStream fos = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ObjectOutputStream out = null;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fos = new FileOutputStream(filename);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = new ObjectOutputStream(fos);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.writeObject(time);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(IOException ex){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ex.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&amp;nbsp;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
Class to De-serialize MydateObject:&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;

&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;
import java.io.FileInputStream;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.ObjectInputStream;&lt;br /&gt;import java.util.Calendar;&lt;br /&gt;&lt;br /&gt;public class ReadSerialClass&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;public static void main(String [] args) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String filename = &quot;c://time.txt&quot;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(args.length &amp;gt; 0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename = args[0];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyDateObject time = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileInputStream fis = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ObjectInputStream in = null;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fis = new FileInputStream(filename);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in = new ObjectInputStream(fis);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time = (MyDateObject)in.readObject();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(IOException ex){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ex.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(ClassNotFoundException cnfe){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cnfe.printStackTrace();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // print out restored time&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Restored time: &quot; + time.getDate());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // print out the current time&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Current time: &quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; + Calendar.getInstance().getTime());&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&amp;nbsp;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Output:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;=======================================================&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;Restored time: Wed May 28 18:11:41 IST 2014&lt;br /&gt;Current time: Wed May 28 18:11:42 IST 2014&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;b&gt;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;Now run the following program again by changing serialVersionUID value in myDateObject class:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: black;&quot;&gt;&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;
import java.io.IOException;&lt;br /&gt;import java.io.ObjectInputStream;&lt;br /&gt;import java.io.ObjectOutputStream;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import java.util.Calendar;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;public class MyDateObject implements Serializable{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Now we change serial VersionUID as 2L&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final long serialVersionUID = 2L;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private Date date;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public MyDateObject() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //date= Calendar.getInstance().getTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;calculateCurrentTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Date getDate() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return date;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setDate(Date date) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.date=date;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void calculateCurrentTime(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date = Calendar.getInstance().getTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void writeObject(ObjectOutputStream out) throws IOException {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.defaultWriteObject();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void readObject(ObjectInputStream in) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; throws IOException, ClassNotFoundException{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // our &quot;pseudo-constructor&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; in.defaultReadObject();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // now perfrom same operation you need to do in constructor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; calculateCurrentTime();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/span&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;=========================================================&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;java.io.InvalidClassException: com.MyDateObject; local class incompatible: stream classdesc serialVersionUID = 1, local class serialVersionUID = 2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.io.ObjectStreamClass.initNonProxy(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.io.ObjectInputStream.readClassDesc(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.io.ObjectInputStream.readObject0(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.io.ObjectInputStream.readObject(Unknown Source)&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt;The reason of the above error is the version change and exactly this is the reason for maintaining the version.&lt;br /&gt;
By maintaining version we keep the serialization/de-serialiation consistent &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;When to update serialVersionUID?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Adding serialVersinUID manually to the class does not mean that it 
should never be updated and never need not be updated. There is no need 
to update the serialVersionUID if the change in the class is compatible 
but it should be updated if the change is incompatible&lt;br /&gt;
&lt;br /&gt;
Some of compatible changes are: &lt;br /&gt;
&lt;ul class=&quot;square&quot;&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Adding field. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Adding classes. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Removing classes.&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Adding writeObject/readObject methods.&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Removing writeObject/readObject methods.&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Adding java.io.Serializable.&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Changing the access to a field.&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Changing a field from static to nonstatic or transient to nontransient.&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;
     Some of the Incompatible changes&amp;nbsp; are:
     &lt;br /&gt;
&lt;ul class=&quot;square&quot; style=&quot;text-align: left;&quot;&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Deleting fields. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Moving classes up or down the hierarchy.&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Changing a nonstatic field to static or a nontransient field to transient.&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Changing the declared type of a primitive field. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Changing the writeObject or readObject method.&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt;Changing a class from Serializable to Externalizable or visa-versa.&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; Removing either Serializable or Externalizable.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt;Adding the writeReplace or readResolve method.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/6762590213992006853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/serialversionuid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6762590213992006853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6762590213992006853'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/serialversionuid.html' title='serialVersionUID'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-1485218227982835372</id><published>2014-05-28T03:48:00.003-07:00</published><updated>2014-05-29T10:16:29.509-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Serialization in Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Serialization is the process of converting an object&#39;s state (including 
its references) to a sequence of bytes, as well as the process of 
rebuilding those bytes into a live object at some future time.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;Sections in this post:&lt;/b&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;code&gt;&lt;/code&gt; Some uses of serailization&lt;/li&gt;
&lt;li&gt;Serializable Interface&lt;/li&gt;
&lt;li&gt;Serialization steps&lt;/li&gt;
&lt;li&gt;readObject and writeObjectMethods &lt;/li&gt;
&lt;li&gt;FAQ&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Serialization is used when you want to persist the object. It is also 
used by RMI to pass objects between JVMs, either as arguments in a 
method invocation from a client to a server or as return values from a 
method invocation. In general, serialization is used when we want the 
object to exist beyond the lifetime of the JVM.&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Here are some uses of serialization &lt;/div&gt;
&lt;ul class=&quot;square&quot; style=&quot;text-align: left;&quot;&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; To persist data for future use. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; To send data to a remote computer using such client/server Java technologies as RMI or socket programming. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; To &quot;flatten&quot; an object into array of bytes in memory. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; To exchange data between applets and servlets. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; To store user session in Web applications. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; To activate/passivate enterprise java beans. &lt;/li&gt;
&lt;li style=&quot;padding-left: 5px;&quot;&gt; To send objects between the servers in a cluster.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Java provides Serialization API, a standard mechanism to handle 
object serialization. 
      To persist an object in java, we need to follow following steps.&lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;the first step is to &lt;b&gt;flatten the 
object&lt;/b&gt;. For that the respective class should implement 
&quot;java.io.Serializable&quot; interface. We don&#39;t need to implement 
any methods as this interface do not have any methods. This is a marker 
interface/tag interface. Marking a class as Serializable indicates the 
underlying API that this object can be flattened.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;

public class MyDateObject implements Serializable{

&amp;nbsp;&amp;nbsp; &amp;nbsp;private static final long serialVersionUID = -5315058568373987829L;
    private Date date;

&amp;nbsp;&amp;nbsp;&amp;nbsp; public MyDateObject() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; date= Calendar.getInstance().getTime();
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public Date getDate() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return date;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setDate(Date date) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;this.date=date;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.&amp;nbsp; Next step is to actually persist the object. To persist an object we need to use node stream to write to file systems or transfer a flattened
 object across a network. We can use java.io.ObjectOutputStream class for this. So to write an object you use &quot;writeObject(&amp;lt;&amp;lt;instance&amp;gt;&amp;gt;)&quot; 
method of &quot;java.io.ObjectOutputStream&quot; class and to read an object you 
use &quot;readObject()&quot; method of &quot;java.io.ObjectOutputStream&quot; class.&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Note:&lt;/span&gt;&amp;nbsp; &quot;readObject()&quot; can read only serialized object, that means if the class 
does not implement &quot;java.io.Serializable&quot; interface, &quot;readObject()&quot; 
cannot read that object.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;


//Class to persist the time in a flat file time.txt
public class WriteSerializeClass {

&amp;nbsp; public static void main(String [] args) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String filename = &quot;c://time.txt&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  if(args.length &amp;gt; 0){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename = args[0];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  }&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyDateObject time = new MyDateObject();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileOutputStream fos = null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ObjectOutputStream out = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fos = new FileOutputStream(filename);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = new ObjectOutputStream(fos);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.writeObject(time);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }catch(IOException ex){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ex.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.Calendar;
//Class to read the time from a flat file time.txt
public class ReadSerializeClass   {

  public static void main(String [] args) {
         String filename = &quot;c://time.txt&quot;;

         if(args.length &amp;gt; 0){
             filename = args[0];
         }
   
         MyDateObject time = null;
         FileInputStream fis = null;
         ObjectInputStream in = null;

         try{
             fis = new FileInputStream(filename);
             in = new ObjectInputStream(fis);
             time = (MyDateObject)in.readObject();
             in.close();
         }catch(IOException ex){
             ex.printStackTrace();
         }catch(ClassNotFoundException cnfe){
             cnfe.printStackTrace();
         }

         // print out restored time
         System.out.println(&quot;Restored time: &quot; + time.getDate());

         // print out the current time
         System.out.println(&quot;Current time: &quot; 
                      + Calendar.getInstance().getTime());
      }
  }
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;b&gt;readObject and writeObject methods:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;To enhance the normal process of serialization/de-serialization provide two methods inside your serializable class. Those methods are:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;i&gt;private void writeObject(ObjectOutputStream out) throws IOException;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;&amp;nbsp;&lt;/i&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;i&gt;&amp;nbsp;&lt;/i&gt;&amp;nbsp; Let&#39;s look at one example&lt;br /&gt;
&lt;br /&gt;
Without readObjet()/writeObject()&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;

public class MyDateObject implements Serializable{
    
 
    private static final long serialVersionUID = -5315058568373987829L;
    private Date date;

    public MyDateObject() {
        //date= Calendar.getInstance().getTime();
        calculateCurrentTime();
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
     this.date=date;
     } 
    
    private void calculateCurrentTime(){
        date = Calendar.getInstance().getTime();
    }
 }
&lt;/pre&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Output:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
=================================================================&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;Restored time: Wed May 28 15:54:31 IST 2014&lt;br /&gt;
Current time: Wed May 28 15:54:34 IST 2014
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
Now we will add the two methods:&amp;nbsp; readObjet()/writeObject()&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;

public class MyDateObject implements Serializable{    
 
   private static final long serialVersionUID = -5315058568373987829L;
   private Date date;

    public MyDateObject() {
        //date= Calendar.getInstance().getTime();
        calculateCurrentTime();
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date=date;
     } 
    
    private void calculateCurrentTime(){
        date = Calendar.getInstance().getTime();
    }&amp;nbsp;   //Adding writObject()
    private void writeObject(ObjectOutputStream out) throws IOException {
        out.defaultWriteObject();
    }&amp;nbsp;&amp;nbsp;   &amp;nbsp;//Adding readObject()
    private void readObject(ObjectInputStream in) 
                         throws IOException, ClassNotFoundException{

         in.defaultReadObject();
        // now perfrom same operation you need to do in constructor
        calculateCurrentTime();
    }
}

&lt;/pre&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Output:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;=========================================================================&lt;/pre&gt;
&lt;pre&gt;Restored time: Wed May 28 16:08:26 IST 2014
Current time: Wed May 28 16:08:26 IST 2014&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&amp;nbsp;So by overriding these two methods, we can easily get desired serialization/de-serialization behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Note:&lt;/b&gt;&lt;/span&gt;&amp;nbsp; serialization does not care about access modifiers. It serializes all private, public and protected fields.&lt;br /&gt;
&lt;br /&gt;
Again there is one more way to serialize the object - create your own 
protocol with the Externalizable interface. Instead of implementing the 
Serializable interface, you can implement Externalizable, which contains
 two methods:&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;

     &lt;i&gt;public void writeExternal(ObjectOutput out) throws IOException;&lt;/i&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException;&lt;/i&gt;&lt;/li&gt;
&lt;/ol&gt;
The Externalization is discussed as separate post. Check it out  here .
     &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Some FAQ:&lt;/b&gt;&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;why readObject And writeObject declared as private?&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ans:&amp;nbsp; We don&#39;t want these methods to be overridden by subclasses&lt;/b&gt;. Instead, each class can have its own &lt;code&gt;writeObject&lt;/code&gt;
 method, and the serialization engine will call all of them one after 
the other. This is only possible with private methods (these are not 
overridden). (The same is valid for &lt;code&gt;readObject&lt;/code&gt;.)&lt;br /&gt;
That&#39;s why&amp;nbsp; both methods are declared private . The trick here is that the virtual machine 
will automatically check to see if either method is declared during the 
corresponding method call. The virtual machine can call private methods 
of your class whenever it wants but no other objects can. Thus, the 
integrity of the class is maintained and the serialization protocol can 
continue to work as normal.&amp;nbsp; 

     &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;2. &lt;b&gt;How stop from serailizing one of the sub class of a serializable class?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ans:&lt;/b&gt;To stop the automatic serialization, we can once again override the readObject/writeObject&amp;nbsp; 
methods to just throw the NotSerializableException in our class.&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;private void writeObject(ObjectOutputStream out) throws IOException{

    throw new NotSerializableException(&quot;Dont Serialize&quot;);
}

private void readObject(ObjectInputStream in) throws IOException{

    throw new NotSerializableException(&quot;Dont Serialize&quot;);
}&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/1485218227982835372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/serialization-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1485218227982835372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1485218227982835372'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/serialization-in-java.html' title='Serialization in Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-1494193643972201750</id><published>2014-05-12T23:54:00.004-07:00</published><updated>2014-05-29T10:15:54.704-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring"/><title type='text'>Simple Example to show Dependency inversion using Spring</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This is a simple example to explain difference between a program having dependency inversion and one without it.&lt;br /&gt;
&lt;br /&gt;
First we will see program without Dependency Inversion.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Example code without Dependency Inversion&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class VotingBooth {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VoteRecorder voteRecorder = new VoteRecorder();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void vote(Candidate candidate) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; voteRecorder.record(candidate);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  class VoteRecorder {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map hVotes = new HashMap();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void record(Candidate candidate) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; int count = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!hVotes.containsKey(candidate)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hVotes.put(candidate, count);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; count = hVotes.get(candidate);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        count++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;       hVotes.put(candidate, count);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;       }
     }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
In this example, the &lt;span class=&quot;emphasis&quot;&gt;&lt;i&gt;VotingBooth&lt;/i&gt;&lt;/span&gt; class is directly dependent on &lt;span class=&quot;emphasis&quot;&gt;&lt;i&gt;VoteRecorder&lt;/i&gt;&lt;/span&gt;, 
                which has no abstractions and is the implementing class.
            &lt;br /&gt;
&lt;br /&gt;
A dependency “inverted” version of this code might look a little different. 
                First, we would define our &lt;code class=&quot;code&quot;&gt;VoteRecorder&lt;/code&gt; interface.
            &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Code with Dependency Inversion in Spring:&lt;/b&gt; &lt;br /&gt;
&lt;br /&gt;
We can use our code exactly as is. All we need to do is inform Spring through an XML configuration file that the recorder bean is implemented by the LocalVoteRecorder class. We do this with the following line:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times Nw eRoman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public interface VoteRecorder {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void record(Candidate candidate) ;
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
And our implementing classes&lt;br /&gt;
&lt;br /&gt;
The &lt;code class=&quot;code&quot;&gt;LocalVoteRecorder&lt;/code&gt;, which implements the &lt;code class=&quot;code&quot;&gt;VoteRecorder&lt;/code&gt; interface: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class LocalVoteRecorder implements VoteRecorder {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map hVotes = new HashMap();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void record(Candidate candidate) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int count = 0;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!hVotes.containsKey(candidate)){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hVotes.put(candidate, count);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count = hVotes.get(candidate);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; count++;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; hVotes.put(candidate, count);
&amp;nbsp;&amp;nbsp;  }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
And the &lt;code class=&quot;code&quot;&gt;VotingBooth&lt;/code&gt; class:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class VotingBooth {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VoteRecorder recorder = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void setVoteRecorder(VoteRecorder recorder) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.recorder = recorder;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void vote(Candidate candidate) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; recorder.record(candidate);
 }

&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&amp;nbsp; Now all we need to do is inform Spring through an XML configuration file that 
            the &lt;span class=&quot;emphasis&quot;&gt;&lt;i&gt;recorder&lt;/i&gt;&lt;/span&gt; bean is implemented by the &lt;code class=&quot;code&quot;&gt;LocalVoteRecorder&lt;/code&gt; class. We do this with the following line:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;bean id=&quot;recorder&quot; class=&quot;com.springindepth.LocalVoteRecorder&quot; /&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
Then we simply map the recorder bean to the VotingBooth bean by setter injection in that beans definition.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;&amp;lt;bean id=&quot;votingBooth&quot; class=&quot;com.springindepth.VotingBooth&quot;&amp;gt;
     &amp;lt;property name=&quot;voteRecorder&quot; ref=&quot;recorder&quot;/&amp;gt;
&amp;lt;/bean&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
**Example taken from http://www.springbyexample.org/&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/1494193643972201750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/simple-exmaple-to-show-dependency.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1494193643972201750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1494193643972201750'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/05/simple-exmaple-to-show-dependency.html' title='Simple Example to show Dependency inversion using Spring'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-6835056782704347256</id><published>2014-03-29T05:24:00.002-07:00</published><updated>2014-05-30T08:20:13.920-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Structure and Algorithms"/><title type='text'>Java Program to merge two sorted Arrays</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
To merge two sorted array is one of the very commonly asked Interview question.&lt;br /&gt;
&lt;br /&gt;
below is my code of merging two sorted arrays with explanation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre style=&quot;color: #110000;&quot;&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color: #110000;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;import java.util.Arrays;
public class MergeSortedArray {  

  int [] a = {1,3,5,7,9,10};// -----&amp;gt; first sorted array
  int [] b = {2,4,6,8,8};   // -----&amp;gt; Second sorted array 

  public static void main(String[] args) {
    MergeSortedArray msa = new MergeSortedArray();
    /*

     * printing all three arrays 

     */  

  System.out.println(&quot;First Sorted Array is:&quot;);
  System.out.println(Arrays.toString(msa.a));
  System.out.println();
  System.out.println(&quot;Second Sorted Array is:&quot;);
  System.out.println(Arrays.toString(msa.b));
  System.out.println();
  System.out.println(&quot;Merged Sorted Array is:&quot;);
  System.out.println(Arrays.toString(

                            msa.getSortedMergedArray(msa.a, msa.b)));
  } 

   /*

    *Method to merged array which will be to get combined sorted array

    */

  public  int[] getSortedMergedArray(int[] a, int[] b) {  

   // defining new array of size first+second array 

    int[] mergedArray = new int[a.length + b.length];
    int i = 0, j = 0, k = 0;  

    /*

    *iterating till last element of any of the array

    * We only loop till we reach at the end of any of the two arrays

    */ 


    while (i &amp;lt; a.length &amp;amp;&amp;amp; j &amp;lt; b.length) {
         if (a[i] &amp;lt; b[j]) {
             mergedArray[k++] = a[i++];
         }

         else {       
             mergedArray[k++] = b[j++];  
         }
     }  

     /* 

      * loop to add reaming elements of either of the remaining array  
     */  

     while (i &amp;lt; a.length) { 
         mergedArray[k++] = a[i++];
     }

     while (j &amp;lt; b.length) {
         mergedArray[k++] = b[j++];
     }

     return mergedArray;
 }
}

&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color: lime;&quot;&gt;OUTPUT:&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color: #110000;&quot;&gt;===========================================================================&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color: #110000;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color: #110000;&quot;&gt;First Sorted Array is:
[1, 3, 5, 7, 9, 10]

Second Sorted Array is:
[2, 4, 6, 8, 8]

Merged Sorted Array is:
[1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 10]
&lt;/span&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;span style=&quot;color: #110000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/6835056782704347256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/java-program-to-merge-two-sorted-arrays.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6835056782704347256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6835056782704347256'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/java-program-to-merge-two-sorted-arrays.html' title='Java Program to merge two sorted Arrays'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-942978524941875380</id><published>2014-03-29T05:10:00.001-07:00</published><updated>2014-05-31T08:19:57.028-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Structure and Algorithms"/><title type='text'>Java Program to find all combinations of a string</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
To find All combinations of a string is another commonly asked Interview question.&lt;br /&gt;
&lt;br /&gt;
Below is my code for finding all the combinations of a given string with explanation:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class AllStringCombinations {&amp;nbsp;
// taking String Builder object as we need to modify many time
     private StringBuilder outputString = new StringBuilder(); 
 
    private final String inputString; 
 
     /*
     *Constructor 
     */

    public AllStringCombinations( final String str ){
        inputString = str;
        System.out.println(&quot;The input string  is  : &quot; + inputString);
    }    
    
    public static void main (String args[])
    {
        AllStringCombinations allStringCombinations =
                                    new AllStringCombinations(&quot;wxyz&quot;);&amp;nbsp;
System.out.println(&quot;&quot;);
        System.out.println(&quot;All possible combinations are :  &quot;);
        System.out.println(&quot;&quot;);
        allStringCombinations.getCombination(0);
    } 
     /*
      *Method to print all possible combinations recursively
      */ 

     public void getCombination(int start) { 
      
     for( int i = start; i &amp;lt;= inputString.length()-1; ++i ){
            outputString.append( inputString.charAt(i) );
            System.out.println( outputString );
            if ( i &amp;lt;= inputString.length() ) 

            // Recursive call

            getCombination( i + 1);
            outputString.setLength( outputString.length() - 1 );
        }
    }
}
&lt;/pre&gt;
&amp;nbsp;
&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;color: lime;&quot;&gt;OUTPUT:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;color: #110000;&quot;&gt;===========================================================================&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color: #110000;&quot;&gt;The input string  is  : wxyz

All possible combinations are :  

w
wx
wxy
wxyz
wxz
wy
wyz
wz
x
xy
xyz
xz
y
yz
z&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/942978524941875380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/java-program-to-find-all-combinations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/942978524941875380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/942978524941875380'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/java-program-to-find-all-combinations.html' title='Java Program to find all combinations of a string'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-3269465813619462703</id><published>2014-03-29T04:55:00.002-07:00</published><updated>2014-05-31T22:43:20.056-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Structure and Algorithms"/><title type='text'>java Program to find if two Strings are Anagrms</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
To find if two given Strings are Anagram of each other is very commonly asked interview Question.&lt;br /&gt;
&lt;br /&gt;
Any word or phrase that exactly reproduces the letters in another order is an &lt;a href=&quot;http://en.wikipedia.org/wiki/Anagram&quot;&gt;anagram.&lt;/a&gt;&lt;br /&gt;
&lt;i&gt;for example &quot;William Shakespeare&lt;/i&gt; &quot; and&amp;nbsp; &quot;I&lt;i&gt; am a weakish speller&lt;/i&gt; &quot; are Anagrams.&lt;br /&gt;
&lt;br /&gt;
In a perfect anagram, every letter must be used, with exactly the same number of occurrences as in the anagrammed word or phrase.&lt;br /&gt;
&lt;br /&gt;
Below is my code of checking if two given strings are anagrams. &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre style=&quot;color: #110000;&quot;&gt;&lt;/pre&gt;
&lt;pre style=&quot;color: #110000;&quot;&gt;&lt;/pre&gt;
&lt;div style=&quot;color: black; font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;br /&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class Anagram {&amp;nbsp;
&amp;nbsp;
        boolean isAnagram(String s1,String s2) {       

           char a1[]= s1.toCharArray();
           char a2[]= s2.toCharArray();
           int []index1= new int[26];
           int []index2= new int[26];

           int i = 0;
&amp;nbsp;          for(i=0;i&amp;lt;a1.length;i++) {
               index1[a1[i]-&#39;a&#39;]++;
           }

           for(i=0;i&amp;lt;a2.length;i++) {
               index2[a2[i]-&#39;a&#39;]++;           
           }

           for(i=0;i&amp;lt;26;i++) {
               if(index1[i]!=index2[i])
                     return false;
           }
           return true;
      }

      public static void main(String[] args) {
    
          String s1=&quot;xyzabc&quot;;
          String s2 = &quot;abcxyz&quot;;

          Anagram anagram = new Anagram();

          if(anagram.isAnagram(s1,s2)==true)
               System.out.println(&quot; String &quot;+s1+&quot; is anagram of &quot;+s2);
          else
               System.out.println(&quot; String &quot;+s1+&quot; is not anagram of &quot;+s2);
      }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Output:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;color: black; font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
==================================================================&lt;/div&gt;
&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;String xyzabc is anagram of abcxyz&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;pre style=&quot;color: #110000;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/3269465813619462703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/java-program-to-find-if-two-strings-are.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/3269465813619462703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/3269465813619462703'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/java-program-to-find-if-two-strings-are.html' title='java Program to find if two Strings are Anagrms'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-6871406912517079042</id><published>2014-03-26T03:24:00.000-07:00</published><updated>2014-05-21T02:00:13.069-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Structure and Algorithms"/><title type='text'>Tree Terminology</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This is my quick recap guide for commonly used tree terminologies:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;img src=&quot;http://www.cs.cmu.edu/%7Eadamchik/15-121/lectures/Trees/pix/binaryTree.bmp&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;depth&lt;/b&gt;&lt;/span&gt; of a node is the number of edges from the root to the
node.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;The &lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;height&lt;/b&gt;&lt;/span&gt; of a node is the number of edges from the node to the deepest leaf.
&lt;/li&gt;
&lt;li&gt;The height of a tree is a height of the root.
&lt;/li&gt;
&lt;li&gt;A &lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;full binary tree&lt;/b&gt;&lt;/span&gt; is a binary tree in which each node has exactly zero or two children.
&lt;/li&gt;
&lt;li&gt;A &lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;complete binary tree&lt;/b&gt;&lt;/span&gt; is a binary tree, which is completely
filled, with the possible exception of the bottom level, which is filled from left to
right.
&lt;/li&gt;
&lt;/ul&gt;
&lt;center&gt;
&lt;img src=&quot;http://www.cs.cmu.edu/%7Eadamchik/15-121/lectures/Trees/pix/full_complete.bmp&quot; /&gt;&amp;nbsp;&lt;/center&gt;
&lt;center&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Traversals&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
A traversal is a process that visits all the nodes in the tree. Since
 a tree is a nonlinear data structure, there is no unique traversal. We 
will consider several traversal algorithms with we group in the 
following two kinds
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;depth-first traversal
&lt;/li&gt;
&lt;li&gt;breadth-first traversal
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
There are three different types of depth-first traversals, :

&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;PreOrder traversal - visit the parent first and then left and right children;
&lt;/li&gt;
&lt;li&gt;InOrder traversal - visit the left child, then the parent and the right child;
&lt;/li&gt;
&lt;li&gt;PostOrder traversal - visit left child, then the right child and then the parent;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
There is only one kind of breadth-first traversal--the&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt; level order 
traversal&lt;/b&gt;&lt;/span&gt;. This traversal visits nodes by levels from top to bottom and 
from left to right.


&lt;/div&gt;
&lt;table cellpadding=&quot;2&quot;&gt;
&lt;tbody&gt;
&lt;tr align=&quot;left&quot;&gt;
&lt;td&gt;As an example consider the following tree and its four traversals:

&lt;br /&gt;
&lt;br /&gt;
PreOrder  - 8, 5, 9, 7, 1, 12, 2, 4, 11, 3
&lt;br /&gt;
InOrder   - 9, 5, 1, 7, 2, 12, 8, 4, 3, 11
&lt;br /&gt;
PostOrder  - 9, 1, 2, 12, 7, 5, 3, 11, 4, 8
&lt;br /&gt;
LevelOrder  - 8, 5, 4, 9, 7, 11, 1, 12, 3, 2

&lt;/td&gt;
&lt;td&gt;&amp;nbsp; &lt;img src=&quot;http://www.cs.cmu.edu/%7Eadamchik/15-121/lectures/Trees/pix/tree1.bmp&quot; height=&quot;320&quot; width=&quot;320&quot; /&gt; &amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The next picture demonstrate the order of node visitation. 
Number 1 denote the first node in a particular traversal and 7 denote 
the last node.

&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;
&lt;img src=&quot;http://www.cs.cmu.edu/%7Eadamchik/15-121/lectures/Trees/pix/traversals.bmp&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;
&amp;nbsp;
&lt;span style=&quot;color: #38761d;&quot;&gt;Binary Search Trees &lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;/center&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&amp;nbsp; A BST is a binary tree where nodes are ordered in the following way:
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;each node contains one key (also known as data)
&lt;/li&gt;
&lt;li&gt;the keys in the left subtree are less then the key in its
parent node, in short L &amp;lt; P;
&lt;/li&gt;
&lt;li&gt;the keys in the right subtree are greater the key in its parent
node, in short P &amp;lt; R;
&lt;/li&gt;
&lt;li&gt;duplicate keys are not allowed.&lt;/li&gt;
&lt;/ul&gt;
&lt;table cellpadding=&quot;2&quot;&gt;&lt;tbody&gt;
&lt;tr align=&quot;left&quot;&gt;&lt;td&gt;&lt;img src=&quot;http://www.cs.cmu.edu/%7Eadamchik/15-121/lectures/Trees/pix/pix03.bmp&quot; height=&quot;200&quot; width=&quot;300&quot; /&gt; &amp;nbsp;&lt;/td&gt;
&lt;td&gt;In the following tree  all nodes in the left subtree of 10 have keys 
&amp;lt; 10
while all nodes in the right subtree &amp;gt; 10. Because both the left and 
right subtrees of a BST are again search trees; the above definition is 
recursively applied to all internal nodes:
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Insertion&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;We start at the root and
recursively go down the tree searching for a location in a BST to insert
 a new node.
If the element to be inserted is already in the tree, we are done (we do
 not insert duplicates). The new node will always replace a NULL 
reference.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&lt;/span&gt;

&lt;/span&gt;&lt;/div&gt;
&lt;center&gt;
&lt;img src=&quot;http://www.cs.cmu.edu/%7Eadamchik/15-121/lectures/Trees/pix/insert.bmp&quot; height=&quot;259&quot; width=&quot;640&quot; /&gt;&lt;/center&gt;
&lt;h3&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Searching&lt;/span&gt;&lt;/h3&gt;
&lt;br /&gt;
Searching in a BST always starts at the root. We compare a data stored at the root with
the key we are searching for. If the node
does not contain the key we proceed either to the left or right child depending upon
comparison. If the result of comparison is negative we go to the left child,
otherwise - to the right child.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h3&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;h3&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;Deletion&lt;/span&gt;&lt;/h3&gt;
&lt;br /&gt;
There are few cases to consider.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt; is not in a tree;
&lt;/li&gt;
&lt;li&gt; is a leaf;
&lt;/li&gt;
&lt;li&gt; has only one child;
&lt;/li&gt;
&lt;li&gt; has two children.
&lt;/li&gt;
&lt;/ul&gt;
If&amp;nbsp; node to delete is not in the tree, there is nothing to delete. If&amp;nbsp;
 node to delete has only one child the procedure of deletion is identical to 
deleting a node from a linked list - we just bypass that node being 
deleted&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;img src=&quot;http://www.cs.cmu.edu/%7Eadamchik/15-121/lectures/Trees/pix/del01.bmp&quot; /&gt;&lt;/center&gt;
&lt;br /&gt;
Deletion of an internal node with two children is less 
straightforward. If we delete such a node, we split a tree into two 
subtrees and therefore, some children of the internal node won&#39;t be 
accessible after deletion. In the picture below we delete 8:&lt;br /&gt;
&lt;br /&gt;
&lt;center&gt;
&lt;img src=&quot;http://www.cs.cmu.edu/%7Eadamchik/15-121/lectures/Trees/pix/del02.bmp&quot; height=&quot;238&quot; width=&quot;640&quot; /&gt;&lt;/center&gt;
&lt;br /&gt;
We replace the node being deleted with
the largest node in the left subtree and then delete that largest node. 
By symmetry, the node being deleted can be swapped with the smallest 
node is the right subtree&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;**taken from http://www.cs.cmu.edu &lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/6871406912517079042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/tree-terminology.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6871406912517079042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6871406912517079042'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/tree-terminology.html' title='Tree Terminology'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-1433200136184309839</id><published>2014-03-04T03:42:00.004-08:00</published><updated>2020-07-14T04:20:07.554-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Cloning in Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
A &lt;b&gt;clone&lt;/b&gt; is an exact copy of the original. &lt;b&gt;In java, it essentially means the ability to create an object with similar state as the original object.&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;font size=&quot;3&quot;&gt;&lt;b&gt;Sections in this post:&lt;/b&gt;&lt;/font&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;code&gt;&lt;/code&gt; &lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;Default Java cloning&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;
&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;Cloneable Interface&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;
&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;Shallow cloning&lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;
&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;Deep cloning &lt;/span&gt;&lt;/li&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;Deep cloning by overriding clone method&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;Deep cloning using copy constructor&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;Deep cloning using The factory Method&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;Deep cloning by Serialzation&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;
&lt;/span&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;Summery &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Java cloning&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;By default, java cloning is ‘field by field copy’&lt;/b&gt; i.e. as the Object class does not have idea about the structure of class on which clone() method will be invoked. So, JVM when called for cloning, do following things:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;1)&lt;/b&gt; If the class has &lt;b&gt;only primitive data type members&lt;/b&gt; then a completely new copy of the object will be created and the reference to the &lt;b&gt;new object copy will be returned&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;2)&lt;/b&gt; If the class contains &lt;b&gt;members of any class type&lt;/b&gt; then only the object references to those members are copied and hence the &lt;b&gt;member references in both the original object as well as the cloned object refer to the same object&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
In java, if a class needs to support cloning it has to do following things:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;A)&lt;/b&gt; &lt;font size=&quot;3&quot;&gt;It must implement &lt;b&gt;Cloneable&lt;/b&gt; interface.&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;font size=&quot;3&quot;&gt;&lt;b&gt;B)&lt;/b&gt; It must override &lt;b&gt;clone()&lt;/b&gt; method from Object class. &lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Cloneable Interface&lt;/b&gt;&lt;/div&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;public interface &lt;span class=&quot;strong&quot;&gt;Cloneable&lt;/span&gt;&lt;/pre&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
A class implements the &lt;code&gt;Cloneable&lt;/code&gt; interface to
 indicate to the &lt;code&gt;Object.clone()&lt;/code&gt; method that it
 is legal for that method to make a
 field-for-field copy of instances of that class.
 
 Invoking Object&#39;s clone method on an instance that does not implement the
 &lt;code&gt;Cloneable&lt;/code&gt; interface results in the exception
 &lt;code&gt;CloneNotSupportedException&lt;/code&gt; being thrown.
 &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
By convention, classes that implement this interface should override
 &lt;tt&gt;Object.clone&lt;/tt&gt; (which is protected) with a public method.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Java docs about clone() method says:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;1. x.clone() != x will be true&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;2. &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;x.clone().getClass() == x.getClass() will be true,&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;                           but these are not absolute requirements.&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;3. x.clone().equals(x) will be true, this is not an absolute requirement&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: black; font-size: medium; font-weight: normal; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;First statement &lt;b&gt;guarantees&lt;/b&gt; that cloned object will have separate memory address assignment.&lt;/li&gt;
&lt;li&gt;Second statement &lt;b&gt;suggest&lt;/b&gt; that original and cloned objects should have same class type, but it is not mandatory.&lt;/li&gt;
&lt;li&gt;Third statement &lt;b&gt;suggest&lt;/b&gt; that original and cloned objects should have be equal using equals() method, but it is not mandatory.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Cloning can be categorized in two types:&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Shallow Cloning&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;This is default implementation in java&lt;/b&gt;. In overridden clone method, if you are not cloning all the object types (not primitives), then you are making a shallow copy. Let&#39;s see one example:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
Class Employee implements cloneable Interface and has Department as its member variable&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class Employee implements Cloneable{

   private int employeeId;
   private String employeeName;
   private Department department;

   public Employee(int id, String name, Department dept) {
     this.empoyeeId = id;
     this.employeeName = name;
     this.department = dept;
   }   
   
   public int getEmployeeId() {
     return empoyeeId;
   }

   public void setEmployeeId(int employeeId) {
     this.employeeId = empoyeeId;
   }

   public String getEmployeeName() {
     return employeeName;
  }

   public void setEmployeeName(String employeeName) {
     this.employeeName = employeeName;
  }

   public Department getDepartment() {
     return department;
   }

   public void setDepartment(Department department) {
     this.department = department;
   }

   @Override
   protected Object clone() throws CloneNotSupportedException {
     return super.clone();
 }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: black; font-size: medium; font-weight: normal; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;
Class Department:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class Department
{
 private int id;
 private String name;

 public Department(int id, String name)
 {
  this.id = id;
  this.name = name;
 }

 public int getId() {
  return id;
 }

 public void setId(int id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: black; font-size: medium; font-weight: normal; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;
Test Class:&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class TestCloning {

&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throws CloneNotSupportedException {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Department dept = new Department(1, &quot;Human Resource&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Employee original = new Employee(1, &quot;Admin&quot;, dept); 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Lets create a clone of original object

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Employee cloned = (Employee) original.clone();


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Let verify using employee id, if cloning actually worked

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(cloned.getEmpoyeeId());

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Verify JDK&#39;s rules
&amp;nbsp;&amp;nbsp;&amp;nbsp; //Must be true and objects must have different memory addresses
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(original != cloned);

&amp;nbsp;&amp;nbsp;&amp;nbsp; //As we are returning same class; so it should be true 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(original.getClass() == cloned.getClass());


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Default equals method checks for references so it should be false.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If we want to make it true,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //we need to override equals method in Employee class.
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(original.equals(cloned));
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&amp;nbsp;
&amp;nbsp;
&lt;/pre&gt;
&lt;pre&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Output:&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;====================================================================&lt;span style=&quot;color: #110000;&quot;&gt;======&lt;/span&gt;&lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;1
true
true
false&lt;/pre&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px;&quot;&gt;&lt;code class=&quot;comments&quot;&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: black; font-size: medium; font-weight: normal; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;What will happen if we don&#39;t implement cloneable Interface???&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Check the following code for Class Employee, I have not Implemented Cloneable interface this time but clone method is still there. No compilation error will be shown but when we run the code run-time Exception will come.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class Employee {

   private int empoyeeId;
   private String employeeName;
   private Department department;

   public Employee(int id, String name, Department dept) {
     this.empoyeeId = id;
     this.employeeName = name;
     this.department = dept;
   }   
   
   public int getEmpoyeeId() {
     return empoyeeId;
 }

 public void setEmpoyeeId(int empoyeeId) {
  this.empoyeeId = empoyeeId;
 }

 public String getEmployeeName() {
  return employeeName;
 }

 public void setEmployeeName(String employeeName) {
  this.employeeName = employeeName;
 }

 public Department getDepartment() {
  return department;
 }

 public void setDepartment(Department department) {
  this.department = department;
 }

 @Override
   protected Object clone() throws CloneNotSupportedException {
     return super.clone();
 }
}&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Output&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;====================================================&lt;span style=&quot;color: #110000;&quot;&gt;=======================&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;/pre&gt;
&lt;pre&gt;Exception in thread &quot;main&quot; java.lang.CloneNotSupportedException:&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;com.Employee
 at java.lang.Object.clone(Native Method)
 at com.Employee.clone(Employee.java:48)
 at com.TestCloning.main(TestCloning.java:13)
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: black; font-size: medium; font-weight: normal; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp; We can see even if Object class has clone method still we need to implement Cloneable interface to use clone method. &lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
Deep cloning&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
We want a clone which is independent of original and making changes in clone should not affect original.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
But before seeing how deep cloning works, lets see what happens when we create two objects of employee class:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class TestCloning {

 public static void main(String[] args)&amp;nbsp;
&amp;nbsp;
  Department hr = new Department(1, &quot;Human Resource&quot;);
  Employee original = new Employee(1, &quot;Admin&quot;, hr);
  Employee cloned = (Employee) original.clone();

  //Let change the department name in cloned object&amp;nbsp;
  //and we will verify in original object
  cloned.getDepartment().setName(&quot;Finance&quot;);

  System.out.println(original.getDepartment().getName());
 }
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Output:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;==========================================================================&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre&gt;Finance&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;color: black; font-size: medium; font-weight: normal; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
cloned object changes are visible in original also. To prevent this from happening we need to do deep cloning.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Let see how it can be done&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;1. Deep Cloning by overriding clone()&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;
Modified clone() method in Employee class&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;@Override
protected Object clone() throws CloneNotSupportedException {
 Employee cloned = (Employee)super.clone();
 cloned.setDepartment((Department)cloned.getDepartment().clone());
 return cloned;
}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: black; font-size: medium; font-weight: normal; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;span&gt;&lt;span style=&quot;color: #110000;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;override clone method in Department class also:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot;, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;&lt;span style=&quot;color: #110000;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;tt&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/tt&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;tt&gt;&lt;span style=&quot;color: #110000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;@Override
protected Object clone() throws CloneNotSupportedException {
 return super.clone();
}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: black; font-size: medium; font-weight: normal; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp; &lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;Test class:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class TestCloning {

 public static void main(String[] args)&amp;nbsp;
                        throws CloneNotSupportedException {&amp;nbsp;
&amp;nbsp;
    Department hr = new Department(1, &quot;Human Resource&quot;);
    Employee original = new Employee(1, &quot;Admin&quot;, hr);
    Employee cloned = (Employee) original.clone();

    //Let&#39;s change the department name in cloned object&amp;nbsp;
                //and we will verify in original object
    cloned.getDepartment().setName(&quot;Finance&quot;);

   System.out.println(original.getDepartment().getName());
 }
}&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Output:&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot;, &amp;quot;helvetica&amp;quot;, sans-serif;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;==========================================================================&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;Human Resource&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
So deep cloning requires satisfaction of following rules.&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;All
 the member classes in original class should support cloning and in 
clone method of original class in context should call super.clone() on 
all member classes.&lt;/li&gt;
&lt;li&gt;If any member class does not support cloning
 then in clone method, one must create a new instance of that member 
class and copy all its attributes one by one to new member class object.
 This new member class object will be set in cloned object. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;2. Deep Cloning Using Copy Constructors&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;
A copy constructor is a constructor that takes only one argument which 
is of the type as the class in which the copy constructor is 
implemented. For example, let us assume a class namely &lt;font size=&quot;3&quot;&gt;&lt;span&gt;&lt;tt&gt;&lt;b&gt;Employee&lt;/b&gt;&lt;/tt&gt;&lt;/span&gt; &lt;/font&gt;and it has a 
constructor called copy constructor which expects only one argument of 
type &lt;font size=&quot;3&quot;&gt;&lt;tt&gt;&lt;span&gt;&lt;b&gt;Employee&lt;/b&gt;&lt;/span&gt;&lt;/tt&gt;&lt;/font&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Let’s see an example&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class Employee {

   private int empoyeeId;
   private String employeeName;
   private Department department;

      
   public int getEmpoyeeId() {
     return empoyeeId;
   }

   public void setEmpoyeeId(int empoyeeId) {
     this.empoyeeId = empoyeeId;
   }

   public String getEmployeeName() {
     return employeeName;
  }

   public void setEmployeeName(String employeeName) {
     this.employeeName = employeeName;
  }

   public Department getDepartment() {
     return department;
   }

   public void setDepartment(Department department) {
     this.department = department;
   }
   public Employee(int id, String name, Department department) {

        this.id = id;

        this.name = name;

        this.department = department;

    }&amp;nbsp;
&amp;nbsp;
&amp;nbsp;  //copy constructor
public Employee(Employee oldEmployee) {

        this.id = oldEmployee.id;
        this.name = oldEmployee.name;
        this.department = oldEmployee.department;  //shallow cloning
    }
} &lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;
Class Department:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class Department
{
 private int id;
 private String name;

 public Department(int id, String name)
 {
  this.id = id;
  this.name = name;
 }

 public int getId() {
  return id;
 }

 public void setId(int id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }
 public Department(int id, String name) {

      this.id = id;

      this.name = name;

 }&amp;nbsp;
&amp;nbsp;
&amp;nbsp; //copy constructor
 public Department(Department oldDepartment) {

      this.id = oldDepartment.id;
      this.name = oldDepartment.name;
  }
 }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;
Test Class&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;container&quot; style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class CopyConstructorTest {
&amp;nbsp;
&amp;nbsp;public static void main(String[] args) {

        Department department = new Department(1, &quot;Finance&quot;);
        Employee originalEmployee = new Employee(1, &quot;Ram&quot;, department);

        Employee clonedEmployee = new Employee(originalEmployee);

        System.out.println(&quot;Original:- &quot; + originalEmployee);
        System.out.println(&quot;Duplicate:- &quot; + clonedEmployee);
        System.out.println();

        clonedEmployee.setId(2);
        clonedEmployee.setName(&quot;Laxman&quot;);
        clonedEmployee.getDepartment().setName(&quot;HR&quot;);

        System.out.println(&quot;Original:- &quot; + originalEmployee);
        System.out.println(&quot;Duplicate:- &quot; + clonedEmployee);
    }
}&lt;/pre&gt;
&lt;font size=&quot;3&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;java plain&quot;&gt;Output&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;java plain&quot;&gt;============================================================================&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;line number16 index15 alt1&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;container&quot;&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;plain plain&quot;&gt;Original:- Employee Id: 1&amp;nbsp;&amp;nbsp; Employee Name: Ram&amp;nbsp; Department Id: 1&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;plain plain&quot;&gt;Department Name: Finance&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;plain plain&quot;&gt;Duplicate:- Employee Id: 1&amp;nbsp; Employee Name: Ram&amp;nbsp; Department Id: 1&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;plain plain&quot;&gt;Department Name: Finance&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;plain plain&quot;&gt;Original:- Employee Id: 1&amp;nbsp;&amp;nbsp; Employee Name: Ram&amp;nbsp; Department Id: 1&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;plain plain&quot;&gt;Department Name: HR&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;font size=&quot;3&quot;&gt;
&lt;/font&gt;&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;plain plain&quot;&gt;Duplicate:- Employee Id: 2&amp;nbsp; Employee Name: Laxman&amp;nbsp;&amp;nbsp; Department Id: 1&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;
&lt;font size=&quot;3&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span&gt;&lt;code class=&quot;plain plain&quot;&gt;Department Name: HR&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
What happens in the above example is, when we change the department name of &lt;b&gt;clonedEmployee&lt;/b&gt;, the change comes up with the &lt;b&gt;originalEmployee&lt;/b&gt; also. Why it behaves so because what we implement here is &lt;b&gt;shallow cloning&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Let’s have a small change in the copy constructor of Employee class&lt;b&gt; to implement Deep cloning&lt;/b&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public Employee(Employee oldEmployee) {
&amp;nbsp; this.id = oldEmployee.id;
&amp;nbsp; this.name = oldEmployee.name;
&amp;nbsp;this.department = newDepartment(oldEmployee.department); //deep cloning
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;
Now we test again and the output is&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;plain plain&quot;&gt;Original:-&amp;nbsp; Employee Id: 1&amp;nbsp; Employee Name: Ram&amp;nbsp; Department Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: Finance&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;plain plain&quot;&gt;Duplicate:- Employee Id: 1&amp;nbsp; Employee Name: Ram&amp;nbsp; Department Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: Finance&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;plain plain&quot;&gt;Original:-&amp;nbsp; Employee Id: 1&amp;nbsp; Employee Name: Ram&amp;nbsp; Department Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: Finance&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;plain plain&quot;&gt;Duplicate:- Employee Id: 2&amp;nbsp; Employee Name: Laxman&amp;nbsp;&amp;nbsp; Department Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: HR&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;Now everything goes fine and this is what we call &lt;b&gt;deep cloning&lt;/b&gt; using copy constructors.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
But wait until Inheritance comes&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
let&#39;s have one class Manager which inherit Employee &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Class Manager:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class Manager extends Employee{&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 
private int managerId;
           
    public int getManagerId() {
        return managerId;
    }

    public void setManagerId(int managerId) {
        this.managerId = managerId;
    }

    public Manager (Employee obj, int ManagerId) {
        super(obj);
        this.managerId= ManagerId;
    }
   
    public Manager(Manager obj) {
        super(obj);
        this.managerId= obj.managerId;
    }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Test class:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class TestCloning {&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 

   public static void main(String[] args) {

        Department department1 = new Department(1, &quot;Finance&quot;);
        Department department2 = new Department(2, &quot;It&quot;);       

        Employee employee1 = new Employee(1, &quot;Ram&quot;, department1);
        Employee employee2 = new Employee(1, &quot;Laxman&quot;, department2);&amp;nbsp;
&amp;nbsp;
        Manager manager1 = new Manager(employee2,1);
&amp;nbsp;
        Employee clone1 = new Employee(employee1);
        Employee clone2 = new Employee(manager1);       

        System.out.println(&quot;clone1:- &quot; +clone1.toString());
        System.out.println(clone1.getClass());
        System.out.println(&quot;clone2:- &quot; + clone2.toString());
        System.out.println(clone2.getClass());
    }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Output&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;===================================================================&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
clone1:- Employee Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Employee Name: Ram&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: Finance&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;class com.Employee&lt;/span&gt;&lt;br /&gt;
clone2:- Employee Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Employee Name: Laxman&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Id: 2&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: It&lt;br /&gt;
&lt;span style=&quot;background-color: #38761d;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;class com.Employee&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
What just happened here? We passed Manger object to clone2 to but we got Employee class object after cloning.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;3. Deep cloning by The Factory Method&lt;/b&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
In certain situations we can’t make our copy constructor public, so it 
has to be private. Now we need to think about an equivalent and yes, 
fortunately we are able to find out another workaround for achieving the
 same result- &lt;b&gt;The Factory Method&lt;/b&gt;. Let’s have a look.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Class Employee&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class Employee {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
private String name;
    private int id;
    private Department department;

    public Department getDepartment() {
        return department;
    }
 
    public String getName() {
        return name;
    }

    public int getId() {
        return id;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Employee(int id, String name, Department department) {
        this.id = id;
        this.name = name;
        this.department = department;
    }

    private Employee(Employee oldEmployee) {
        this.id = oldEmployee.id;
        this.name = oldEmployee.name;
        //deep cloning
&amp;nbsp;       this.department = new Department(oldEmployee.department);
    }

    @Override
    public String toString() {
        return &quot;Employee Id: &quot; + id + &quot;\tEmployee Name: &quot; + name + &quot;\t&quot;&amp;nbsp;
       + department;
    }

    public static Employee copy(Employee originalEmployee) {
        return new Employee(originalEmployee);
    }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
Test Class:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class TestCloning {&amp;nbsp;&amp;nbsp;&amp;nbsp;
public static void main(String[] args) {

        Department department = new Department(1, &quot;Finance&quot;);
        Employee originalEmployee = new Employee(1, &quot;Ram&quot;, department);
        Employee clonedEmployee = Employee.copy(originalEmployee);

        System.out.println(&quot;Original:- &quot; + originalEmployee);
        System.out.println(&quot;Duplicate:- &quot; + clonedEmployee);
        System.out.println();

        clonedEmployee.setEmployeeId(2);
        clonedEmployee.setEmployeeName(&quot;Laxman&quot;);
        clonedEmployee.getDepartment().setName(&quot;HR&quot;);

        System.out.println(&quot;Original:- &quot; + originalEmployee);
        System.out.println(&quot;Duplicate:- &quot; + clonedEmployee);
    }&amp;nbsp;&amp;nbsp;
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;===================================================================&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; text-align: left; vertical-align: top;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Original:- Employee Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Employee Name: Ram&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: Finance&lt;br /&gt;Duplicate:- Employee Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Employee Name: Ram&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: Finance&lt;br /&gt;&lt;br /&gt;Original:- Employee Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Employee Name: Ram&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: Finance&lt;br /&gt;Duplicate:- Employee Id: 2&amp;nbsp;&amp;nbsp;&amp;nbsp; Employee Name: Laxman&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Id: 1&amp;nbsp;&amp;nbsp;&amp;nbsp; Department Name: HR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
4. Deep cloning with serialization&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Java serialization is convenient. Many classes are made serializable by simply declaring them to implement &lt;code&gt;java.io.Serializable&lt;/code&gt;. Thus, a whole hierarchy of classes can be made cloneable by deriving them from a base &lt;code&gt;Serializable&lt;/code&gt; class&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Lets see the code sample:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;code class=&quot;java plain&quot;&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &amp;quot;times new roman&amp;quot;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow: auto hidden; text-align: left; width: 610px;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public Employee clone(Employee obj) {
&amp;nbsp;&amp;nbsp; 
 try
    {
        ByteArrayOutputStream out = new ByteArrayOutputStream ();
        ObjectOutputStream oout = new ObjectOutputStream (out);
        oout.writeObject (obj);
       
        ObjectInputStream in = new ObjectInputStream (
            new ByteArrayInputStream (out.toByteArray ()));&amp;nbsp;
&amp;nbsp;
&amp;nbsp;           //This returned Employee object will be a cloned object
return (Employee)in.readObject ();
    }
    catch (Exception e)
    {
        throw new RuntimeException (&quot;cannot clone class [&quot; +
            obj.getClass ().getName () + &quot;] via serialization: &quot; +
            e.toString ());
    }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;For more details about Serialization refer to&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/05/serialization-in-java.html&quot;&gt; serialization in Java&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
The Summery&lt;/h4&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The following table recaps the properties of all 
cloning approaches from several perspectives: speed, 
resource utilization, class design constraints, object graph handling.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;table-wrapper&quot; style=&quot;text-align: left;&quot;&gt;
&lt;table bgcolor=&quot;&quot; border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;div class=&quot;table-wrapper&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;5&quot; cellspacing=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot; bgcolor=&quot;&quot; colspan=&quot;2&quot;&gt;Object.clone()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Speed&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Resource utilization&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Class design constraints&lt;/td&gt;
&lt;td&gt;Does not work with deep final fields; does not work with inner classes; must implement &lt;code&gt;Cloneable&lt;/code&gt;; medium amount of manual class maintenance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Object graphs&lt;/td&gt;
&lt;td&gt;Does not handle object graphs transparently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot; bgcolor=&quot;&quot; colspan=&quot;2&quot;&gt;Copy construction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Speed&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Resource utilization&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Class design constraints&lt;/td&gt;
&lt;td&gt;Superclasses and subclasses must cooperate; copy constructor required; a lot of manual class maintenance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Object graphs&lt;/td&gt;
&lt;td&gt;Does not handle object graphs transparently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot; bgcolor=&quot;&quot; colspan=&quot;2&quot;&gt;Serialization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Speed&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Resource utilization&lt;/td&gt;
&lt;td&gt;High; creates redundant immutable fields&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Class design constraints&lt;/td&gt;
&lt;td&gt;Must implement &lt;code&gt;Serializable&lt;/code&gt;; first non-&lt;code&gt;Serializable&lt;/code&gt; class needs an accessible no-arg constuctor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Object graphs&lt;/td&gt;
&lt;td&gt;Handles object graphs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot; bgcolor=&quot;&quot; colspan=&quot;2&quot;&gt;Reflection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Speed&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Resource utilization&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Class design constraints&lt;/td&gt;
&lt;td&gt;Does not work with final fields; does not work with inner classes; each class must provide no-arg constructor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr bgcolor=&quot;&quot;&gt;
&lt;td&gt;Object graphs&lt;/td&gt;
&lt;td&gt;Handles object graphs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/1433200136184309839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/cloning-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1433200136184309839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1433200136184309839'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/03/cloning-in-java.html' title='Cloning in Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-1331931549762336685</id><published>2014-02-26T06:24:00.001-08:00</published><updated>2014-06-03T08:11:18.334-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Interview Questions"/><title type='text'>Tower of Hanoi solution using recursion in java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Tower of hanoi is one of the basic questions to learn recursion and very commonly asked interview question at beginner and intermediate level.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Section in this post:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Problem statement&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Iterative solution&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Alternate iterative solution &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Recursive solution&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Java Implementation&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
The &lt;a href=&quot;http://en.wikipedia.org/wiki/Tower_of_Hanoi&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;Tower of Hanoi&lt;/b&gt;&lt;/a&gt; (also called the &lt;b&gt;Tower of Brahma&lt;/b&gt; or &lt;b&gt;Lucas&#39; Tower&lt;/b&gt;,&lt;sup class=&quot;reference&quot; id=&quot;cite_ref-1&quot;&gt;&lt;/sup&gt; and sometimes pluralised) is a mathematical game or puzzle.
 It consists of three rods, and a number of disks of different sizes 
which can slide onto any rod. The puzzle starts with the disks in a neat
 stack in ascending order of size on one rod, the smallest at the top, 
thus making a conical shape.&lt;br /&gt;
The objective of the puzzle is to move the entire stack to another rod, obeying the following simple rules:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Only one disk can be moved at a time.&lt;/li&gt;
&lt;li&gt;Each move consists of taking the upper disk from one of the stacks 
and placing it on top of another stack i.e. a disk can only be moved if 
it is the uppermost disk on a stack.&lt;/li&gt;
&lt;li&gt;No disk may be placed on top of a smaller disk.&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp;With three disks, the puzzle can be solved in seven moves. The minimum 
number of moves required to solve a Tower of Hanoi puzzle is 2&lt;sup&gt;&lt;i&gt;n&lt;/i&gt;&lt;/sup&gt; - 1, where &lt;i&gt;n&lt;/i&gt; is the number of disks. &lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;mw-headline&quot; id=&quot;Iterative_solution&quot;&gt;Iterative solution&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;mw-headline&quot; id=&quot;Iterative_solution&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
Alternate moves between the 
smallest piece and a non-smallest piece. When moving the smallest piece,
 always move it to the next position in the same direction (to the right
 if the starting number of pieces is even, to the left if the starting 
number of pieces is odd). If there is no tower position in the chosen 
direction, move the piece to the opposite end, but then continue to move
 in the correct direction. For example, if you started with three 
pieces, you would move the smallest piece to the opposite end, then 
continue in the left direction after that. When the turn is to move the 
non-smallest piece, there is only one legal move. Doing this will 
complete the puzzle in the fewest number of moves.&lt;br /&gt;
&lt;h4&gt;
&lt;span class=&quot;mw-headline&quot; id=&quot;Simpler_statement_of_iterative_solution&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;mw-headline&quot; id=&quot;Simpler_statement_of_iterative_solution&quot;&gt;Simpler statement of iterative solution&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;mw-headline&quot; id=&quot;Simpler_statement_of_iterative_solution&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
Alternating between the smallest and the next-smallest disks, follow the steps for the appropriate case:&lt;br /&gt;
For an even number of disks:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;make the legal move between pegs A and B&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;make the legal move between pegs A and C&lt;/li&gt;
&lt;li&gt;make the legal move between pegs B and C&lt;/li&gt;
&lt;li&gt;repeat until complete&lt;/li&gt;
&lt;/ul&gt;
For an odd number of disks:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;make the legal move between pegs A and C&lt;/li&gt;
&lt;li&gt;make the legal move between pegs A and B&lt;/li&gt;
&lt;li&gt;make the legal move between pegs C and B&lt;/li&gt;
&lt;li&gt;repeat until complete&lt;/li&gt;
&lt;/ul&gt;
In each case, a total of 2&lt;sup&gt;n&lt;/sup&gt;-1 moves are made.&lt;br /&gt;
&lt;br /&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;mw-headline&quot; id=&quot;Equivalent_iterative_solution&quot;&gt;Equivalent iterative solution&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;mw-headline&quot; id=&quot;Equivalent_iterative_solution&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Another way to generate the unique optimal iterative solution:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Number the disks 1 through n (largest to smallest).&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;If n is odd, the first move is from the Start to the Finish peg.&lt;/li&gt;
&lt;li&gt;If n is even, the first move is from the Start to the Using peg.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Now, add these constraints:&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;No odd disk may be placed directly on an odd disk.&lt;/li&gt;
&lt;li&gt;No even disk may be placed directly on an even disk.&lt;/li&gt;
&lt;li&gt;Never undo your previous move (that is, do not move a disk back to its immediate last peg).&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Considering those constraints after the first move, there is only one legal move at every subsequent turn.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
The sequence of these unique moves is an optimal solution to the problem equivalent to the iterative solution described above.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;mw-headline&quot; id=&quot;Recursive_solution&quot;&gt;Recursive solution&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;mw-headline&quot; id=&quot;Recursive_solution&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
A key to solving this puzzle is to recognize that it can be solved by
 breaking the problem down into a collection of smaller problems and 
further breaking those problems down into even smaller problems until a 
solution is reached. For example:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;label the pegs A, B, C — these labels may move at different steps&lt;/li&gt;
&lt;li&gt;let &lt;i&gt;n&lt;/i&gt; be the total number of discs&lt;/li&gt;
&lt;li&gt;number the discs from 1 (smallest, topmost) to &lt;i&gt;n&lt;/i&gt; (largest, bottommost)&lt;/li&gt;
&lt;/ul&gt;
To move &lt;i&gt;n&lt;/i&gt; discs from peg A to peg C:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;move &lt;i&gt;n&lt;/i&gt;−1 discs from A to B. This leaves disc &lt;i&gt;n&lt;/i&gt; alone on peg A&lt;/li&gt;
&lt;li&gt;move disc &lt;i&gt;n&lt;/i&gt; from A to C&lt;/li&gt;
&lt;li&gt;move &lt;i&gt;n&lt;/i&gt;−1 discs from B to C so they sit on disc &lt;i&gt;n&lt;/i&gt;&lt;/li&gt;
&lt;/ol&gt;
The above is a recursive algorithm, to carry out steps 1 and 3, apply the same algorithm again for &lt;i&gt;n&lt;/i&gt;−1. The entire procedure is a finite number of steps, since at some point the algorithm will be required for &lt;i&gt;n&lt;/i&gt; = 1. This step, moving a single disc from peg A to peg B, is trivial.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFrYRyhd2VVzSZ6dmLWJOvJ4Hj_2N_xaFvrUmsdjZBRl5PjuIwKNiX76rTwkt3NSfhWzNtqM9ehaVSe9_PQbHl4t8_rdO1-tR8911_9o1Lwle3ZogidQGNgQ7VzGdh-aWE7PtuxYp8Xu7k/s1600/300px-Tower_of_Hanoi_4.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFrYRyhd2VVzSZ6dmLWJOvJ4Hj_2N_xaFvrUmsdjZBRl5PjuIwKNiX76rTwkt3NSfhWzNtqM9ehaVSe9_PQbHl4t8_rdO1-tR8911_9o1Lwle3ZogidQGNgQ7VzGdh-aWE7PtuxYp8Xu7k/s1600/300px-Tower_of_Hanoi_4.gif&quot; height=&quot;154&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Below is my Java code to solve the problem recursively.&lt;br /&gt;
&lt;br /&gt;
Class TowerOfHanoi:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 610px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class TowerOfHanoi {

&amp;nbsp; public static void solveHanoi(int nTop, char fromTower, char midTower,
&amp;nbsp;                             char toTower) {
&amp;nbsp; &amp;nbsp; if (nTop == 1){
&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;Disk 1 from &quot; + fromTower + &quot; to &quot; + toTower);
&amp;nbsp; &amp;nbsp; }else {
&amp;nbsp; &amp;nbsp; &amp;nbsp; solveHanoi(nTop - 1, fromTower, toTower, midTower);
&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;Disk &quot; + nTop + &quot; from &quot; + fromTower&amp;nbsp;
                 + &quot; to &quot; + midTower);
&amp;nbsp; &amp;nbsp; &amp;nbsp; solveHanoi(nTop - 1, midTower, fromTower, toTower);
&amp;nbsp; &amp;nbsp; }
  }

&amp;nbsp; public static void main(String[] args) {
&amp;nbsp; &amp;nbsp; int nDisks = 3;
&amp;nbsp; &amp;nbsp; solveHanoi(nDisks, &#39;A&#39;, &#39;B&#39;, &#39;C&#39;);
  }
}

&lt;/pre&gt;
&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;output :&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;===================================================================&lt;/span&gt;&lt;br /&gt;
Disk 1 from A to C&lt;br /&gt;
Disk 2 from A to B&lt;br /&gt;
Disk 1 from C to B&lt;br /&gt;
Disk 3 from A to C&lt;br /&gt;
Disk 1 from B to A&lt;br /&gt;
Disk 2 from B to C&lt;br /&gt;
Disk 1 from A to C&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/1331931549762336685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/02/tower-of-hanoi-solution-using-recursion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1331931549762336685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1331931549762336685'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/02/tower-of-hanoi-solution-using-recursion.html' title='Tower of Hanoi solution using recursion in java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFrYRyhd2VVzSZ6dmLWJOvJ4Hj_2N_xaFvrUmsdjZBRl5PjuIwKNiX76rTwkt3NSfhWzNtqM9ehaVSe9_PQbHl4t8_rdO1-tR8911_9o1Lwle3ZogidQGNgQ7VzGdh-aWE7PtuxYp8Xu7k/s72-c/300px-Tower_of_Hanoi_4.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-6907871283273784158</id><published>2014-02-26T05:57:00.001-08:00</published><updated>2014-05-19T03:55:47.565-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Interview Questions"/><title type='text'>Factorial of a number using recursion in Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
Java program to calculate factorial of integer using recursion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class Factorial&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;public int fact(int n) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;if(n==1) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;return 1;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;}&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;else {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;return &amp;nbsp;fact(n-1) * n;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;} &lt;br /&gt;
&amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public static void main(String args[]){&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int number =4;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Factorial factorial = new factorial();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;System.out.println(&quot;The factorial of the number is : &quot; + factorial.fact(number);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
}&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/6907871283273784158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/02/factorial-of-number-using-recursion-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6907871283273784158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6907871283273784158'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/02/factorial-of-number-using-recursion-in.html' title='Factorial of a number using recursion in Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-8419133346540489377</id><published>2014-02-20T21:59:00.004-08:00</published><updated>2015-02-17T07:16:39.234-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Structure and Algorithms"/><title type='text'>Doubly Link List In Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
In my previous post&amp;nbsp; I made a&lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/02/link-list-implementation-in-java.html&quot; target=&quot;_blank&quot;&gt; simple link list&lt;/a&gt; which holds integer values. Moving ahead in&amp;nbsp; this post I am creating my own doubly link list .&lt;br /&gt;
&lt;br /&gt;
A &lt;a href=&quot;http://en.wikipedia.org/wiki/Doubly_linked_list&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;doubly-linked list&lt;/b&gt;&lt;/a&gt; is a linked data structure that consists of a set of sequentially linked records called nodes. Each node contains two fields, called &lt;i&gt;links&lt;/i&gt;, that are references to the previous and to the next node in the sequence of nodes.&lt;br /&gt;
&lt;br /&gt;
The beginning and ending nodes&#39; &lt;b&gt;previous&lt;/b&gt; and &lt;b&gt;next&lt;/b&gt; links, respectively, point to some kind of terminator, typically a sentinel node or null,
 to facilitate traversal of the list.&lt;br /&gt;
&lt;br /&gt;
It can 
be conceptualized as two &lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/02/link-list-implementation-in-java.html&quot; title=&quot;Linked list&quot;&gt;singly linked lists&lt;/a&gt; formed from the same data items, but in opposite sequential orders.&lt;br /&gt;
&lt;div class=&quot;thumb tnone&quot;&gt;
&lt;div class=&quot;thumbinner&quot; style=&quot;width: 612px;&quot;&gt;
&lt;a class=&quot;image&quot; href=&quot;http://en.wikipedia.org/wiki/File:Doubly-linked-list.svg&quot;&gt;&lt;img alt=&quot;A doubly-linked list whose nodes contain three fields: an integer value, the link to the next node, and the link to the previous node.&quot; class=&quot;thumbimage&quot; data-file-height=&quot;41&quot; data-file-width=&quot;610&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Doubly-linked-list.svg/610px-Doubly-linked-list.svg.png&quot; height=&quot;41&quot; width=&quot;610&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;div class=&quot;thumbcaption&quot; style=&quot;text-align: left;&quot;&gt;
&lt;h4&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;A doubly-linked list whose nodes contain three
 fields: an integer value, the link to the next node, and the link to 
the previous node.&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;Sections in this post:&lt;/b&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;code&gt;&lt;/code&gt; Link List Interface&lt;/li&gt;
&lt;li&gt;Link List Node&lt;/li&gt;
&lt;li&gt;Implementation&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Link List Interface&lt;/span&gt;&lt;/h1&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Below 
is my Link List Interface. It is not at&amp;nbsp; all mandatory to write 
Interface for link list . I have written so as to make code more 
understandable and&amp;nbsp; to follow good code writing practices.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public interface LLInterface {
 /*
  * different overloaded insert
  */
 public boolean insertAtStart(Node nodeToInsert);
 public boolean insertAtStart(int data);
 public boolean insertAtEnd(Node nodeToInsert);
 public boolean insertAtEnd(int data);
 public boolean insert(Node nodeToInsert, int loc);
 public boolean insert(int data, int loc);

 /*
  * different overloaded delete
  */
 public Integer deleteFirst();
 public Integer deleteLast();
 public Integer delete(int loc);
 public boolean deleteThis(int data);

 /*
  * ADT method to know if list is empty
  * we will be using this method at many places such as
  * before deleting a node to make sure list is already not empty
  */
 public boolean isEmpty();

 /*
  * ADT method to print entire list
  *
  */
 public void printList(Node head);


 /* ADT method to get number of nodes present after the given node.
        *If head is passed as argument then it will return size of list
         *This method should be avoided at places such as,
         *to validate given insertion or deletion location as it
         *internally traverse complete list once.
  */
 public int getSize(Node head);
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;h1&gt;
Link List Node&lt;/h1&gt;
&lt;h1&gt;
&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;In &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Link
 list data is stored in nodes. therefore let&#39;s see how to implement a 
node. For the sake of simplicity I am considering nodes having only 
integer values but this can be changed easily.&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;public class Node {
 // data variable will hold integer value 
 private int data;
 //Reference(Pointer) to next node in list 
 private Node next;
 //Reference(Pointer) to previous node in list 
 private Node prev;
 
 public Node(int data) { 
  super();
  this.data = data; 
  this.next = null; 
  this.prev = null;
 }
 
 public Node(){ 
  super();
 }

 /*
  * Getter and setters 
  */
 public int getData() { 
  return data;
 } 

 public void setData(int data) { 
  this.data = data;
 }

 public Node getNext()
 {
  return next;
 }

 public void setNext(Node next) { 
  this.next = next;
 }

 public Node getPrev() { 
  return prev;
 }

 public void setPrev(Node prev) { 
  this.prev = prev;
 }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h1&gt;
Implementation&lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;java&quot; name=&quot;code&quot;&gt;package single;

public class SLL implements LLInterface {

&amp;nbsp;&amp;nbsp;&amp;nbsp; private Node head;

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean insertAtStart(Node nodeToInsert) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Check if node is not null else return
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // We add this check as there can be situation where object is set to
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // null or
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // some one has used default constructor make the node object etc.
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (nodeToInsert == null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Node you are trying to insert is null&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // check if list is empty then set node as head
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (isEmpty()) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; head = nodeToInsert;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // make nodeToInsert as head and head as second
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // node(nodeToInsert--&amp;gt;head--&amp;gt;....)
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; else {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nodeToInsert.setNext(head);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; head = nodeToInsert;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean insertAtStart(int data) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /*
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* we can have two approaches to get new node
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* First Approach: Use default constructor and then set values using
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* setters
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Node nodeToInsert = new Node(); nodeToInsert.setData(data);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* nodeToInsert.setNext(null);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Second approach: Use overloaded constructor of Node class
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node nodeToInsert = new Node(data);

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // As we already have a method to insert node at beginning having node
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // object
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // as parameter we will just call that
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // else we can add all the code of that method here itself
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return insertAtStart(nodeToInsert);

&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean insertAtEnd(Node nodeToInsert) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Check if node is not null else return
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // We add this check as there can be situation where object is set to
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // null or
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // one has used default constructor make the node object etc.
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (nodeToInsert == null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Node you are trying to insert is null&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Check if list is empty then set node as head
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (isEmpty()) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; head = nodeToInsert;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node currentNode = head;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while (currentNode.getNext() != null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode.setNext(nodeToInsert);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean insertAtEnd(int data) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /*
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* we can have two approaches to get new node
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* First Approach: Use default constructor and then set values using
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* setters
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Node nodeToInsert = new Node(); nodeToInsert.setData(data);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* nodeToInsert.setNext(null);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Second approach: Use overloaded constructor of Node class
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node nodeToInsert = new Node(data);

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // As we already have a method to insert node at end having node object
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // as
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // parameter we will just call that
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // else we can add all the code of that method here itself
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return insertAtEnd(nodeToInsert);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean insert(Node nodeToInsert, int loc) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Check if node is not null else return
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // We add this check as there can be situation where object is set to
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // null or
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // some one has used default constructor make the node object etc.
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (nodeToInsert == null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Node you are trying to insert is null&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // validate given location to add node, we wont check with list size
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // here as
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // it internally traverse complete list once
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (loc &amp;lt; 1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Invalid Location specifed to insert node&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (loc == 1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; insertAtStart(nodeToInsert);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node currentNode = head;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Now we will reach the required location so that we can add node
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // there
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // note that we will stop one place before we want to add node and
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // keep in
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // mind current node is already at first node i.e head
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // e.g. if we want to add new node at location five, then we will
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // traverse
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // till node four
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // we will also check whether current node is not null as location
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // given
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // can be more then list size
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; loc - 2 &amp;amp;&amp;amp; currentNode != null; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentNode == null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Invalid Location specifed to insert node&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Now we need to insert new node at this location
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // so we will make new node&#39;s next to point to current node&#39;s next
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // and current node will point to new node
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Note that order is important here
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nodeToInsert.setNext(currentNode.getNext());
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode.setNext(nodeToInsert);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean insert(int data, int loc) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /*
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* we can have two approaches to get new node
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* First Approach: Use default constructor and then set values using
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* setters
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Node nodeToInsert = new Node(); nodeToInsert.setData(data);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* nodeToInsert.setNext(null);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Second approach: Use overloaded constructor of Node class
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node nodeToInsert = new Node(data);

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // As we already have a method to insert node at end having node object
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // as parameter we will just call that
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // else we can add all the code of that method here itself
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return insert(nodeToInsert, loc);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Integer deleteFirst() {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Check if list is already Empty
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (isEmpty()) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;List is empty, can not eprform delete operation&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; /* First save head value to return then Make head to point next node in the list
         *Again order is important
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; */
        int deletedNodeValue = head.getData();
&amp;nbsp;       if(null != head.getNext()) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;   head.getNext().setPrev(null);
    head = head.getNext();
 }
 else {
    head = null;
 }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return deletedNodeValue;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Integer deleteLast() {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Check if list is already Empty
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (isEmpty()) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;List is empty, can not eprform delete operation&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node currentNode = head;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // TODO
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public Integer delete(int loc) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // validate given location to delete node, we wont check with list size
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // here
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // as it internally traverse complete list once
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (loc &amp;lt; 1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Invalid Location specifed to delete node&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node currentNode = head;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (loc == 1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return deleteFirst();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // we will also check whether current node is not null as location given
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // can
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // be can be more then list size
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; loc - 2 &amp;amp;&amp;amp; currentNode != null; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentNode == null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Invalid&amp;nbsp;&amp;nbsp;&amp;nbsp; Location specifed to delete node&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int deletedNodeValue = currentNode.getData();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode.setNext(currentNode.getNext().getNext());
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return deletedNodeValue;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean deleteThis(int data) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (head.getData() == data) {&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return (deleteFirst()!= null);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Check if list is already Empty
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // We are checking isEmpty after checking for head data as deleteFirst
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // also
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // has list empty check
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // and we do&#39;nt want to execute this check twice by putting below
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // isEmpty
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // check at start of this method call
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (isEmpty()) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;List is empty, can not eprform delete operation&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node currentNode = head;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //Iterate list until node to delete is reached or list ends
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while (currentNode.getNext() != null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (currentNode.getNext().getData() == data) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode.setNext(currentNode.getNext().getNext());
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return true;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;data not present in the list&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /*
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* This method will return true if List is Empty else false List will be
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* empty when head is null
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/
&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public boolean isEmpty() {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return null == head;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void printList(Node head) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (head == null) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Invalid node given&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node currentNode = head;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.print(&quot;List is: [&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while (currentNode != null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.print(&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;+currentNode.getData());
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;   public void printList() { 
 if(head == null) { 
  System.out.println(&quot;Invalid node given&quot;); 
  return;
 }
 Node currentNode = head;
 System.out.print(&quot;List is: [ &quot;); 
 while(currentNode != null) {
  System.out.print(currentNode.getData() +&quot; &quot;);
  currentNode = currentNode.getNext();
 }
 System.out.println(&quot;]&quot;);
  }
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public int getSize(Node head) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; int count = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Node currentNode = head;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; while (currentNode != null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; count++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return count;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SLL myLst = new SLL();

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(new Node(41),0);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(new Node(42),2);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(new Node(43),1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(new Node(44),1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(new Node(45),2);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(new Node(46),4);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(null,3);

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(51,0);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(52,2);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(53,1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(54,1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(55,2);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insert(56,4);

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtStart(1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtStart(2);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtStart(3);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtStart(4);

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtStart(new&amp;nbsp;&amp;nbsp;&amp;nbsp; Node(11));
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtStart(new&amp;nbsp;&amp;nbsp;&amp;nbsp; Node(12));
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtStart(new&amp;nbsp;&amp;nbsp;&amp;nbsp; Node(13));
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtStart(new&amp;nbsp;&amp;nbsp;&amp;nbsp; Node(14));
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtStart(null);

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtEnd(21);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtEnd(22);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtEnd(23);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtEnd(24);

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtEnd(new Node(31));
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtEnd(new Node(32));
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtEnd(new Node(33));
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtEnd(new Node(34));
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.insertAtEnd(null);

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.printList(myLst.head);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;===========================deletefirst=================&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.deleteFirst();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.deleteFirst();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.deleteFirst();
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.printList(myLst.head);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;=========delete from location==============&quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.delete(0);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.delete(1);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.delete(30);&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.delete(2);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.printList(myLst.head);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;=========delete this(data)========&quot;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.deleteThis(31);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.deleteThis(131);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.deleteThis(45);
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; myLst.printList(myLst.head);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;h1&gt;
&lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
If we run the program we will get output like this:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;==========================================================================&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
Invalid Location specifed to insert node&lt;br /&gt;
Invalid Location specifed to insert node&lt;br /&gt;
Node you are trying to insert is null&lt;br /&gt;
Invalid Location specifed to insert node&lt;br /&gt;
Node you are trying to insert, is null&lt;br /&gt;
Node you are trying to insert is null&lt;br /&gt;
List is: [14&amp;nbsp;&amp;nbsp; &amp;nbsp;13&amp;nbsp;&amp;nbsp; &amp;nbsp;12&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;3&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;45&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;46&amp;nbsp;&amp;nbsp; &amp;nbsp;21&amp;nbsp;&amp;nbsp; &amp;nbsp;22&amp;nbsp;&amp;nbsp; &amp;nbsp;23&amp;nbsp;&amp;nbsp; &amp;nbsp;24&amp;nbsp;&amp;nbsp; &amp;nbsp;31&amp;nbsp;&amp;nbsp; &amp;nbsp;32&amp;nbsp;&amp;nbsp; &amp;nbsp;33&amp;nbsp;&amp;nbsp; &amp;nbsp;34&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
===========================delecefirst================================&lt;br /&gt;
List is: [11&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;3&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;45&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;46&amp;nbsp;&amp;nbsp; &amp;nbsp;21&amp;nbsp;&amp;nbsp; &amp;nbsp;22&amp;nbsp;&amp;nbsp; &amp;nbsp;23&amp;nbsp;&amp;nbsp; &amp;nbsp;24&amp;nbsp;&amp;nbsp; &amp;nbsp;31&amp;nbsp;&amp;nbsp; &amp;nbsp;32&amp;nbsp;&amp;nbsp; &amp;nbsp;33&amp;nbsp;&amp;nbsp; &amp;nbsp;34&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
&amp;nbsp;============================deleteloc================================&lt;br /&gt;
Invalid Location specifed to delete node&lt;br /&gt;
Invalid Location specifed to delete node &lt;br /&gt;
List is: [4&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;45&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;46&amp;nbsp;&amp;nbsp; &amp;nbsp;21&amp;nbsp;&amp;nbsp; &amp;nbsp;22&amp;nbsp;&amp;nbsp; &amp;nbsp;23&amp;nbsp;&amp;nbsp; &amp;nbsp;24&amp;nbsp;&amp;nbsp; &amp;nbsp;31&amp;nbsp;&amp;nbsp; &amp;nbsp;32&amp;nbsp;&amp;nbsp; &amp;nbsp;33&amp;nbsp;&amp;nbsp; &amp;nbsp;34&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
============================deletethis(data)============================&lt;br /&gt;
data not present in the list&lt;br /&gt;
List is: [4&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;46&amp;nbsp;&amp;nbsp; &amp;nbsp;21&amp;nbsp;&amp;nbsp; &amp;nbsp;22&amp;nbsp;&amp;nbsp; &amp;nbsp;23&amp;nbsp;&amp;nbsp; &amp;nbsp;24&amp;nbsp;&amp;nbsp; &amp;nbsp;32&amp;nbsp;&amp;nbsp; &amp;nbsp;33&amp;nbsp;&amp;nbsp; &amp;nbsp;34&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
&amp;nbsp;============================deletelast================================&lt;br /&gt;
34&lt;br /&gt;
List is: [4&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;46&amp;nbsp;&amp;nbsp; &amp;nbsp;21&amp;nbsp;&amp;nbsp; &amp;nbsp;22&amp;nbsp;&amp;nbsp; &amp;nbsp;23&amp;nbsp;&amp;nbsp; &amp;nbsp;24&amp;nbsp;&amp;nbsp; &amp;nbsp;32&amp;nbsp;&amp;nbsp; &amp;nbsp;33&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
&lt;/h1&gt;
In next post we will talk about circular link list and then we will see some commonly asked question on link list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/8419133346540489377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/02/doubly-link-list-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/8419133346540489377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/8419133346540489377'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/02/doubly-link-list-in-java.html' title='Doubly Link List In Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-7861908719449035136</id><published>2014-02-20T21:51:00.003-08:00</published><updated>2018-05-03T23:47:35.746-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Structure and Algorithms"/><title type='text'>Link list Implementation in Java</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;html&gt;
&lt;head&gt;
 &lt;title&gt;
 &lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
 &lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
  &lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
   &lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;
    &lt;a href=&quot;http://en.wikipedia.org/wiki/Linked_list&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;linked list&lt;/b&gt;&lt;/a&gt; is a data structure consisting of a group of nodes which together represent a sequence. Under the simplest form, each node is composed of a data and a reference (in other words, a &lt;i&gt;link&lt;/i&gt;) to the next node in the sequence. This structure allows for efficient insertion or removal of elements from any position in the sequence.&lt;br /&gt;
    &lt;br /&gt;


    &lt;div class=&quot;center&quot;&gt;
     &lt;a class=&quot;image&quot; href=&quot;http://en.wikipedia.org/wiki/File:Singly-linked-list.svg&quot;&gt;&lt;img alt=&quot;Singly-linked-list.svg&quot; data-file-height=&quot;41&quot; data-file-width=&quot;408&quot; height=&quot;41&quot; src=&quot;https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Singly-linked-list.svg/408px-Singly-linked-list.svg.png&quot; width=&quot;408&quot;&gt;&lt;/a&gt;&lt;br /&gt;
     &lt;small&gt;&lt;i&gt;A linked list whose nodes contain two fields: an integer value and a link to the next node. The last node is linked to a terminator used to signify the end of the list.&lt;/i&gt;&lt;/small&gt;
    &lt;/div&gt;
&lt;div class=&quot;center&quot;&gt;
    &lt;/div&gt;
&lt;div class=&quot;center&quot;&gt;
     &lt;br /&gt;
     &lt;small&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Linked lists are among the simplest and most common data structures. They can be used to implement several other common abstract data types, including lists (the abstract data type), stacks, queues, associative arrays.&lt;/span&gt;&lt;/small&gt;
    &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
     &lt;div style=&quot;text-align: left;&quot;&gt;
      &lt;div style=&quot;text-align: left;&quot;&gt;
       &lt;br /&gt;
      &lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
       &lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
        &lt;pre class=&quot;java&quot; style=&quot;clear: none; float: none; line-height: 1.333; overflow: visible; width: auto;&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;b&gt;Sections in this post:&lt;/b&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;code&gt;&lt;/code&gt; Link List Interface&lt;/li&gt;
&lt;li&gt;Link List Node&lt;/li&gt;
&lt;li&gt;Implementation&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
        &lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;
       &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
    &lt;/h1&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: medium;&quot;&gt;Link List Interface&lt;/span&gt;
    &lt;/h1&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Below is my Link List Interface. It is not at&amp;nbsp; all mandatory to write Interface for link list . I have written so as to make code more understandable and&amp;nbsp; to follow good code writing practices.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
     &lt;div style=&quot;text-align: left;&quot;&gt;
      &lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
       &lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
        &lt;pre class=&quot;java&quot;&gt;public interface LLInterface {
 /*
  * different overloaded insert
  */
 public boolean insertAtStart(Node nodeToInsert);
 public boolean insertAtStart(int data);
 public boolean insertAtEnd(Node nodeToInsert);
 public boolean insertAtEnd(int data);
 public boolean insert(Node nodeToInsert, int loc);
 public boolean insert(int data, int loc);

 /*
  * different overloaded delete
  */
 public Integer deleteFirst();
 public Integer deleteLast();
 public Integer delete(int loc);
 public boolean deleteThis(int data);

 /*
  * ADT method to know if list is empty
  * we will be using this method at many places such as
         * before deleting a node to make sure list is already not empty
  */
 public boolean isEmpty();

 /*
  * ADT method to print entire list
  *
  */
 public void printList(Node head);


 /* ADT method to get number of nodes present after the given node.
        *If head is passed as argument then it will return size of list
         *This method should be avoided at places such as,
         *to validate given insertion or deletion location as it
         *internally traverse complete list once.
  */
 public int getSize(Node head);
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
        &lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;
       &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
     &lt;/h3&gt;
&lt;/div&gt;
&lt;br /&gt;


    &lt;h1&gt;
Link List Node&lt;/h1&gt;
&lt;h1&gt;
&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;In&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Link list data is stored in nodes. therefore let&#39;s see how to implement a node. For the sake of simplicity I am considering nodes having only integer values but this can be changed easily.&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
     &lt;div style=&quot;text-align: left;&quot;&gt;
      &lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
       &lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
        &lt;pre class=&quot;java&quot;&gt;public class Node {

&amp;nbsp;&amp;nbsp; &amp;nbsp;// data variable will hold integer
&amp;nbsp;&amp;nbsp; &amp;nbsp;private int data;

&amp;nbsp;&amp;nbsp; &amp;nbsp;// Reference(Pointer) to next node
&amp;nbsp;&amp;nbsp; &amp;nbsp;private Node next;

&amp;nbsp;&amp;nbsp; &amp;nbsp;public Node(int data) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;super();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;this.data = data;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;this.next = null;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public Node() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;super();
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;/*
&amp;nbsp;&amp;nbsp; &amp;nbsp; * Getter and setters
&amp;nbsp;&amp;nbsp; &amp;nbsp; */

&amp;nbsp;&amp;nbsp; &amp;nbsp;public int getData() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return data;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void setData(int data) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;this.data = data;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public Node getNext() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return next;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public void setNext(Node next) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;this.next = next;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
}&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
        &lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;
       &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
     &lt;/h3&gt;
&lt;/div&gt;
&lt;br /&gt;


    &lt;h1&gt;
Implementation&lt;/h1&gt;
&lt;h1&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Now lets see how to implement link list. Whenever I am saying link list I am referring to singly link list. refer my other posts for &lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/02/doubly-link-list-in-java.html&quot;&gt;Doubly link list&lt;/a&gt; and circular link list .&lt;/span&gt;&lt;/span&gt;
    &lt;/h1&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
     &lt;div style=&quot;text-align: left;&quot;&gt;
      &lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
       &lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
        &lt;pre class=&quot;java&quot;&gt;public class SLL implements LLInterface {

&amp;nbsp;&amp;nbsp; &amp;nbsp;private Node head;

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean insertAtStart(Node nodeToInsert) {
       /* Check if node is not null else return
        * We add this check as there can be situation where object is set
        * to null or some one has used default constructor make the node
        * object etc.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (nodeToInsert == null) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;Node you are trying to insert is null&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return false;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// check if list is empty then set node as head

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (isEmpty()) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;head = nodeToInsert;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// make nodeToInsert as head and head as second
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// node(nodeToInsert--&amp;gt;head--&amp;gt;....)

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;else {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;nodeToInsert.setNext(head);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;head = nodeToInsert;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return true;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean insertAtStart(int data) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * we can have two approaches to get new node
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * 
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * First Approach: Use default constructor and then set values
         * using&amp;nbsp;setters
         * Node nodeToInsert = new Node();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * nodeToInsert.setData(data);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * nodeToInsert.setNext(null);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Second approach: Use overloaded constructor of Node class
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; */

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Node nodeToInsert = new Node(data);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* As we already have a method to insert node at beginning having
         * node object as parameter we will just call that
         * else we can add all the code of that method here itself
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  */

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; return insertAtStart(nodeToInsert);
&amp;nbsp;&amp;nbsp; &amp;nbsp; }

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean insertAtEnd(Node nodeToInsert) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check if node is not null else return
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * We add this check as there can be situation where object&amp;nbsp;
        * is set to null or one has used default constructor make the node
        * object etc.
         */

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (nodeToInsert == null) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;Node you are trying to insert is null&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return false;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check if list is empty then set node as head

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (isEmpty()) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;head = nodeToInsert;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return true;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Node currentNode = head;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (currentNode.getNext() != null) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode.setNext(nodeToInsert);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return true;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean insertAtEnd(int data) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * we can have two approaches to get new node 

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * First Approach: Use default constructor and then set

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * values using setters 

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Node nodeToInsert = new Node();&amp;nbsp;
         * nodeToInsert.setData(data);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * nodeToInsert.setNext(null);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * 
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Second approach: Use overloaded constructor of Node class
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; */

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Node nodeToInsert = new Node(data);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* As we already have a method to insert node at end having
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * node object as parameter we will just call that
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * else we can add all the code of that method here itself
         */
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
         return insertAtEnd(nodeToInsert);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean insert(Node nodeToInsert, int loc) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check if node is not null else return
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * We add this check as there can be situation where
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * object is set to null or some one has used default constructor
         * make the node object etc.
         */
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (nodeToInsert == null) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;Node you are trying to insert is null&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return false;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* validate given location to add node, we wont check with list
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * size here as it internally traverse complete list once
         */
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (loc &amp;lt; 1) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;Invalid Location specified to insert node&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return false;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (loc == 1) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;insertAtStart(nodeToInsert);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} else {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Node currentNode = head;

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Now we will reach the required location so that we can add
             * node there.Note that we will stop one place before we want
             * to add node and keep in mind current node is already at head
             * e.g. if we want to add new node at location five, then we
             * will traverse till node four.
             * We will also check whether current node is not null
             * as location given can be more then list size
             */
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
             for (int i = 0; i &amp;lt; loc - 2 &amp;amp;&amp;amp; currentNode != null; i++) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; if (currentNode == null) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;Invalid Location specified to insert node&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return false;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Now we need to insert new node at this location.
             * So we make new node&#39;s next to point to current node&#39;s next
             * and current node will point to new node.
             * Note that order is important here.
&amp;nbsp;            */
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; nodeToInsert.setNext(currentNode.getNext());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode.setNext(nodeToInsert);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return true;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return false;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean insert(int data, int loc) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * we can have two approaches to get new node
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * First Approach: Use default constructor and
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * then set values using setters
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; *
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Node nodeToInsert = new Node();
         * nodeToInsert.setData(data);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * nodeToInsert.setNext(null);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * 
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Second approach: Use overloaded constructor of Node class
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; */

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Node nodeToInsert = new Node(data);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* As we already have a method to insert node at end
         * having node object as parameter we will just call that
         * else we can add all the code of that method here itself&amp;nbsp;
         */

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return insert(nodeToInsert, loc);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public Integer deleteFirst() {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check if list is already Empty

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (isEmpty()) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; System.out.println(&quot;List empty,can not perform delete operation&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; return null;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* First save head value to return,then Make head to point next
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * node in the list
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Again order is important&amp;nbsp;
         */

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int deletedNodeValue = head.getData();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;head = head.getNext();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return deletedNodeValue;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public Integer deleteLast() {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Check if list is already Empty 
 if(isEmpty()) {
  System.out.println(&quot;List is empty, return null, can not perform delete operation&quot;);  
  return null;
 }

 if(head.getNext() == null) {
  int deletedNode = head.getData() ;
  head = null;
  return deletedNode;
 }
 Node currentNode = head.getNext();
 Node prevNode = head;
 while(currentNode.getNext() != null) { 
  prevNode =currentNode;
  currentNode = currentNode.getNext();
 }
 int deletedNode = currentNode.getData(); 
 currentNode = null; 
 prevNode.setNext(null); 
 return deletedNode;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public Integer delete(int loc) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* validate given location to delete node,
         * we wont check with list size here
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * as it internally traverse complete list once
         */
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (loc &amp;lt; 1) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;Invalid Location specified to delete&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return null;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Node currentNode = head;

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (loc == 1) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return deleteFirst();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* we will also check whether current node is not null
         * as location given can be can be more then list size
         */
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; loc - 2 &amp;amp;&amp;amp; currentNode != null; i++) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (currentNode == null) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;Invalid Location specified to delete&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return null;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int deletedNodeValue = currentNode.getData();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode.setNext(currentNode.getNext().getNext());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
       return deletedNodeValue;

&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean deleteThis(int data) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (head.getData() == data) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return (deleteFirst()!= null);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Check if list is already Empty
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; * We are checking isEmpty after checking for head data as
         * deleteFirst also has list empty check
         * and we don&#39;t want to execute this check twice
         * by putting below isEmpty check at start of this method call
         */
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
        if (isEmpty()) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; System.out.println(&quot;List empty,can not perform delete operation&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return false;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Node currentNode = head;

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Iterate list until node to delete is reached or list ends

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (currentNode.getNext() != null) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (currentNode.getNext().getData() == data) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode.setNext(currentNode.getNext().getNext());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return true;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;data not present in the list&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return false;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;/*
&amp;nbsp;&amp;nbsp; &amp;nbsp; * This method will return true if List is Empty else false.
&amp;nbsp;&amp;nbsp; &amp;nbsp; * List will be empty when head is null
&amp;nbsp;&amp;nbsp; &amp;nbsp; */

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public boolean isEmpty() {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return null == head;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public void printList(Node head) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (head == null) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;Invalid node given&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Node currentNode = head;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.print(&quot;List is: [&quot;);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (currentNode != null) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.print(&quot;&amp;nbsp;&amp;nbsp; &amp;nbsp;&quot;+currentNode.getData());
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;&amp;nbsp;&amp;nbsp; &amp;nbsp;]&quot;);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;
     public void printList() {
 if (head == null) {

  System.out.println(&quot;Invalid node given&quot;);
  return;
 }
 Node currentNode = head;
 System.out.print(&quot;List is: [&quot;);
 while (currentNode != null) {
  System.out.print(&quot; &quot;+currentNode.getData());
  currentNode = currentNode.getNext();
 }
 System.out.println(&quot; ]&quot;);
   }
&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;@Override
&amp;nbsp;&amp;nbsp; &amp;nbsp;public int getSize(Node head) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;int count = 0;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Node currentNode = head;

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;while (currentNode != null) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;count++;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;currentNode = currentNode.getNext();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return count;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;public static void main(String[] args) {

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;SLL myLst = new SLL();

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(new Node(41),0);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(new Node(42),2);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(new Node(43),1);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(new Node(44),1);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(new Node(45),2);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(new Node(46),4);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(null,3);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;
        myLst.insert(51,0);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(52,2);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(53,1);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(54,1);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(55,2);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insert(56,4);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtStart(1);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtStart(2);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtStart(3);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtStart(4);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtStart(new Node(11));
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtStart(new Node(12));
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtStart(new Node(13));
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtStart(new Node(14));

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtStart(null);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtEnd(21);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtEnd(22);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtEnd(23);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtEnd(24);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtEnd(new Node(31));
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtEnd(new Node(32));
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtEnd(new Node(33));
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtEnd(new Node(34));
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.insertAtEnd(null);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.printList(myLst.head);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;=================deletefirst===============&quot;);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.deleteFirst();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.deleteFirst();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.deleteFirst();
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.printList(myLst.head);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;=========delete from location==============&quot;);&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.delete(0);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.delete(1);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.delete(30);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.delete(2);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.printList(myLst.head);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;System.out.println(&quot;=========delete this(data)=================&quot;);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.deleteThis(31);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.deleteThis(131);
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.deleteThis(45);

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;myLst.printList(myLst.head);
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
   &lt;div style=&quot;text-align: left;&quot;&gt;
    &lt;div style=&quot;text-align: left;&quot;&gt;
     If we run the program we will get output like this:&lt;br /&gt;
     &lt;br /&gt;
    &lt;/div&gt;
&lt;div class=&quot;wp_syntax&quot; style=&quot;background-color: #f9f9f9; border: 1px solid silver; color: #110000; font-family: &#39;Times New Roman&#39;; font-weight: normal; line-height: normal; margin: 0px 0px 1.5em; overflow-x: auto; overflow-y: hidden; text-align: left; width: 710px;&quot;&gt;
     &lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
      &lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;Output&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;prettyprint tryit prettyprinted&quot; style=&quot;cursor: default;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;span class=&quot;pln&quot;&gt;==========================================================================&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
Invalid Location specified to insert node&lt;br /&gt;
      Invalid Location specified to insert node&lt;br /&gt;
      Node you are trying to insert is null&lt;br /&gt;
      Invalid Location specified to insert node&lt;br /&gt;
      Node you are trying to insert is null&lt;br /&gt;
      Node you are trying to insert is null&lt;br /&gt;
      List is: [&amp;nbsp;&amp;nbsp; &amp;nbsp;14&amp;nbsp;&amp;nbsp; &amp;nbsp;13&amp;nbsp;&amp;nbsp; &amp;nbsp;12&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;3&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;45&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;46&amp;nbsp;&amp;nbsp; &amp;nbsp;21&amp;nbsp;&amp;nbsp; &amp;nbsp;22&amp;nbsp;&amp;nbsp; &amp;nbsp;23&amp;nbsp;&amp;nbsp; &amp;nbsp;24&amp;nbsp;&amp;nbsp; &amp;nbsp;31&amp;nbsp;&amp;nbsp; &amp;nbsp;32&amp;nbsp;&amp;nbsp; &amp;nbsp;33&amp;nbsp;&amp;nbsp; &amp;nbsp;34&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
      ===========================deletefirst=============================&lt;br /&gt;
      List is: [&amp;nbsp;&amp;nbsp; &amp;nbsp;11&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;3&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;45&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;46&amp;nbsp;&amp;nbsp; &amp;nbsp;21&amp;nbsp;&amp;nbsp; &amp;nbsp;22&amp;nbsp;&amp;nbsp; &amp;nbsp;23&amp;nbsp;&amp;nbsp; &amp;nbsp;24&amp;nbsp;&amp;nbsp; &amp;nbsp;31&amp;nbsp;&amp;nbsp; &amp;nbsp;32&amp;nbsp;&amp;nbsp; &amp;nbsp;33&amp;nbsp;&amp;nbsp; &amp;nbsp;34&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
      ==========================delete from location========================&lt;br /&gt;
      Invalid Location specified to delete node&lt;br /&gt;
      Invalid Location specified to delete node&lt;br /&gt;
      List is: [&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;45&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;46&amp;nbsp;&amp;nbsp; &amp;nbsp;21&amp;nbsp;&amp;nbsp; &amp;nbsp;22&amp;nbsp;&amp;nbsp; &amp;nbsp;23&amp;nbsp;&amp;nbsp; &amp;nbsp;24&amp;nbsp;&amp;nbsp; &amp;nbsp;31&amp;nbsp;&amp;nbsp; &amp;nbsp;32&amp;nbsp;&amp;nbsp; &amp;nbsp;33&amp;nbsp;&amp;nbsp; &amp;nbsp;34&amp;nbsp;&amp;nbsp; &amp;nbsp;]&lt;br /&gt;
      ==========================delete this(data)==========================&lt;br /&gt;
      data not present in the list&lt;br /&gt;
      List is: [&amp;nbsp;&amp;nbsp; &amp;nbsp;4&amp;nbsp;&amp;nbsp; &amp;nbsp;2&amp;nbsp;&amp;nbsp; &amp;nbsp;1&amp;nbsp;&amp;nbsp; &amp;nbsp;54&amp;nbsp;&amp;nbsp; &amp;nbsp;55&amp;nbsp;&amp;nbsp; &amp;nbsp;53&amp;nbsp;&amp;nbsp; &amp;nbsp;56&amp;nbsp;&amp;nbsp; &amp;nbsp;44&amp;nbsp;&amp;nbsp; &amp;nbsp;52&amp;nbsp;&amp;nbsp; &amp;nbsp;43&amp;nbsp;&amp;nbsp; &amp;nbsp;46&amp;nbsp;&amp;nbsp; &amp;nbsp;21&amp;nbsp;&amp;nbsp; &amp;nbsp;22&amp;nbsp;&amp;nbsp; &amp;nbsp;23&amp;nbsp;&amp;nbsp; &amp;nbsp;24&amp;nbsp;&amp;nbsp; &amp;nbsp;32&amp;nbsp;&amp;nbsp; &amp;nbsp;33&amp;nbsp;&amp;nbsp; &amp;nbsp;34&amp;nbsp;&amp;nbsp; &amp;nbsp;]
     &lt;/div&gt;
&lt;div class=&quot;code&quot; style=&quot;padding: 2px 4px; vertical-align: top;&quot;&gt;
      &lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;span class=&quot;content&quot;&gt;&lt;span class=&quot;block&quot; style=&quot;margin-left: 0px !important;&quot;&gt;&lt;code class=&quot;comments&quot;&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;
     &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h1&gt;
  &lt;/h1&gt;
In next post we will talk about &lt;a href=&quot;http://binary-imaginers.blogspot.in/2014/02/doubly-link-list-in-java.html&quot; target=&quot;_blank&quot;&gt;doubly Link List&lt;/a&gt; and Circular Link List and then some commonly asked question based on link list.&lt;br /&gt;
  &lt;br /&gt;
 &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/7861908719449035136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2014/02/link-list-implementation-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/7861908719449035136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/7861908719449035136'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2014/02/link-list-implementation-in-java.html' title='Link list Implementation in Java'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-962467330043545094</id><published>2011-12-28T23:17:00.000-08:00</published><updated>2014-05-19T03:53:31.876-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java Script"/><title type='text'>Key codes for java script</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate=&quot;false&quot; latentstylecount=&quot;156&quot;&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:&quot;Table Normal&quot;;  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:&quot;&quot;;  mso-padding-alt:0in 5.4pt 0in 5.4pt;  mso-para-margin:0in;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:&quot;Times New Roman&quot;;  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;br /&gt;
&lt;h2 style=&quot;margin-bottom: 4.2pt;&quot;&gt;
&lt;span style=&quot;color: #003399; font-family: Verdana; font-size: 11.5pt;&quot;&gt;Key Code Reference Table&lt;/span&gt;&lt;/h2&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; id=&quot;Table1&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid #8DB6CA .75pt; width: 703px;&quot;&gt;  &lt;tbody&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;   &lt;td style=&quot;border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
0&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
10&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
20&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Caps Lock&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
30&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
40&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-left: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Arrow Down&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 1;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
11&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
21&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
31&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
41&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 2;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
2&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
12&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
22&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
32&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
42&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 3;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
3&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
13&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Enter&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
23&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
33&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Page Up&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
43&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 4;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
4&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
14&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
24&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
34&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Page Down&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
44&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 5;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
5&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
15&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
25&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
35&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;End&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
45&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Insert&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 6;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
6&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
16&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Shift&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
26&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
36&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Home&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
46&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Delete&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 7;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
7&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
17&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Ctrl&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
27&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Esc&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
37&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Arrow Left&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
47&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 8;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
8&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Backspace&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
18&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Alt&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
28&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
38&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Arrow Up&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
48&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;0&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 9;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
9&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Tab&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
19&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Pause/Break&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
29&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
39&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Arrow Right&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
49&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;1&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 10;&quot;&gt;   &lt;td colspan=&quot;10&quot; style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: solid white 1.0pt; border-right: solid white 1.0pt; border-top: none; height: 20.95pt; mso-border-bottom-alt: #8DB6CA; mso-border-left-alt: white; mso-border-right-alt: white; mso-border-style-alt: solid; mso-border-top-alt: #8DB6CA; mso-border-top-alt: solid #8DB6CA .75pt; mso-border-width-alt: .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 11;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
50&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;2&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
60&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
70&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;f&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
80&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;p&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
90&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;z&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 12;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
51&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;3&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
61&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;=+&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
71&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;g&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
81&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;q&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
91&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Windows&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 13;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
52&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;4&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
62&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
72&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;h&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
82&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;r&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
92&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 14;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
53&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;5&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
63&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
73&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;i&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
83&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;s&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
93&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Right Click&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 15;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
54&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;6&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
64&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
74&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;j&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
84&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;t&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
94&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 16;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
55&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;7&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
65&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;a&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
75&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;k&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
85&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;u&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
95&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 17;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
56&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;8&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
66&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;b&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
76&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;l&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
86&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;v&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
96&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;0 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 18;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
57&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;9&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
67&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;c&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
77&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;m&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
87&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;w&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
97&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;1 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 19;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
58&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
68&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;d&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
78&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;n&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
88&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;x&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
98&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;2 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 20;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
59&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;;:&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
69&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;e&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
79&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;o&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
89&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;y&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
99&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;3 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 21;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
100&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;4 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
110&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;. (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
120&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F9&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
130&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
140&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 22;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
101&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;5 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
111&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;/ (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
121&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F10&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
131&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
141&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 23;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
102&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;6 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
112&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F1&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
122&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F11&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
132&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
142&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 24;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
103&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;7 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
113&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F2&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
123&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F12&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
133&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
143&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 25;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
104&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;8 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
114&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F3&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
124&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
134&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
144&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Num Lock&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 26;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
105&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;9 (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
115&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F4&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
125&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
135&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
145&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Scroll Lock&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 27;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
106&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;* (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
116&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F5&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
126&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
136&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
146&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 28;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
107&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;+ (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
117&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F6&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
127&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
137&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
147&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 29;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
108&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
118&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F7&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
128&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
138&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
148&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 30;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
109&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;- (Num Lock)&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
119&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;F8&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
129&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
139&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
149&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 31;&quot;&gt;   &lt;td colspan=&quot;10&quot; style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: solid white 1.0pt; border-right: solid white 1.0pt; border-top: none; height: 20.95pt; mso-border-bottom-alt: #8DB6CA; mso-border-left-alt: white; mso-border-right-alt: white; mso-border-style-alt: solid; mso-border-top-alt: #8DB6CA; mso-border-top-alt: solid #8DB6CA .75pt; mso-border-width-alt: .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 32;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
150&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
160&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
170&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
180&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
190&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;.&amp;gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 33;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
151&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
161&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
171&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
181&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
191&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;/?&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 34;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
152&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
162&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
172&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
182&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;My Computer&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
192&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;`~&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 35;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
153&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
163&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
173&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
183&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;My Calculator&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
193&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 36;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
154&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
164&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
174&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
184&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
194&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 37;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
155&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
165&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
175&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
185&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
195&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 38;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
156&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
166&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
176&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
186&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
196&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 39;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
157&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
167&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
177&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
187&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
197&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 40;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
158&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
168&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
178&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
188&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;,&amp;lt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
198&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 41;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
159&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
169&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
179&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
189&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
199&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 42;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
200&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
210&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
220&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;\|&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
230&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
240&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 43;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
201&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
211&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
221&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;]}&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
231&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
241&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 44;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
202&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
212&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
222&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&#39;&quot;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
232&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
242&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 45;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
203&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
213&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
223&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
233&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
243&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 46;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
204&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
214&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
224&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
234&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
244&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 47;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
205&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
215&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
225&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
235&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
245&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 48;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
206&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
216&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
226&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
236&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
246&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 49;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
207&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
217&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
227&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
227&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
227&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 50;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
208&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
218&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
228&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
238&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
248&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;tr style=&quot;height: 20.95pt; mso-yfti-irow: 51; mso-yfti-lastrow: yes;&quot;&gt;   &lt;td style=&quot;border-top: none; border: solid #8DB6CA 1.0pt; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
209&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
219&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;[{&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
229&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
239&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
249&lt;/div&gt;
&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid #8DB6CA 1.0pt; border-left: none; border-right: solid #8DB6CA 1.0pt; border-top: none; height: 20.95pt; mso-border-alt: solid #8DB6CA .75pt; mso-border-left-alt: solid #8DB6CA .75pt; mso-border-top-alt: solid #8DB6CA .75pt; padding: 1.65pt 2.5pt 1.65pt 2.5pt;&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt; &lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/962467330043545094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2011/12/ke-codes-for-java-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/962467330043545094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/962467330043545094'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2011/12/ke-codes-for-java-script.html' title='Key codes for java script'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-1977856854964581412</id><published>2011-11-21T22:56:00.001-08:00</published><updated>2014-05-19T03:53:43.802-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ajax"/><title type='text'>AJAX Notes</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot; style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in; text-align: center;&quot;&gt;
&lt;st1:city w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Verdana; font-size: 18pt; line-height: 150%;&quot;&gt;AJAX&lt;/span&gt;&lt;/b&gt;&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;b&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Verdana; font-size: 18pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;1.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;st1:city w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;AJAX&lt;/span&gt;&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;= Asynchronous JavaScript and XML&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;2.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;st1:place w:st=&quot;on&quot;&gt;&lt;st1:city w:st=&quot;on&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;AJAX&lt;/span&gt;&lt;/st1:city&gt;&lt;/st1:place&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt; applications are Browser and
platform independent &lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;3.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;XMLHttpRequest object: - is used to
exchange data with a server behind the scenes. This means that it is possible
to update parts of a web page without reloading the whole page.&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;4.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Syntax for creating XMLHttpRequest
object:&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Variable
xmlhttp =new &lt;span style=&quot;background: white; mso-bidi-font-weight: bold;&quot;&gt;XMLHttpRequest
();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //for IE 7+, Firefox and chrome&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Variable
xmlhttp = new ActiveXObject (“Microsoft.XMLHTTP”);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //for IE 5 and IE 6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;5.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;To
handle both type of browser:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Var
xmlhttp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;If (window.XMLHTTPRequest)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; text-indent: .25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;//
code for IE 7+, Firefox, chrome, opera, safari&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Xmlhttp= new XMLHTTPRequest ();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // code for IE 5 and IE 6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Xmlhttp= new ActiveXObject (“Microsoft.XMLHTTP”);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;6.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;to
send a request to a server, we use open() and send() methods of XMLHttpRequest
object&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; text-indent: .25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;xmlhttp.open
(“GET”,”ajax.info.txt”,true);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; text-indent: .25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;xmlhttp.send
();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;7.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Syntax
is:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; text-indent: .25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Open
(method,URL,async)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; text-indent: .25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Send (String)&amp;nbsp;  //String
is only used for post&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;8.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Two
XMLHttpRequest object properties are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .75in; margin-right: 0in; margin-top: 0in; mso-list: l0 level2 lfo1; tab-stops: list .75in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;a.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;responseText&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .75in; margin-right: 0in; margin-top: 0in; mso-list: l0 level2 lfo1; tab-stops: list .75in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;b.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;responseXML&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;9.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;the
onereadystatechange event is triggered every time the ready state changes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; margin-left: .25in; mso-list: l0 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;10.&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;Three important
properties of the XMLHttpRequest object:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-collapse: collapse; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; width: 555px;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;background: #E5EECC; border: solid #C3C3C3 1.0pt; mso-border-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt; width: 23.12%;&quot; valign=&quot;top&quot; width=&quot;23%&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;Property&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #E5EECC; border-left: none; border: solid #C3C3C3 1.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt; width: 76.88%;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt; width: 23.12%;&quot; valign=&quot;top&quot; width=&quot;23%&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;onreadystatechange&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt; width: 76.88%;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;Stores a function (or the name of a function) to be called
  automatically each time the readyState property changes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt; width: 23.12%;&quot; valign=&quot;top&quot; width=&quot;23%&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;readyState&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt; width: 76.88%;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;Holds the status of the XMLHttpRequest. Changes from 0 to 4:&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
  0: request not initialized&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
  1: server connection established&lt;br /&gt;
  2: request received&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
  3: processing request&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
  4: request finished and response is ready&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt; width: 23.12%;&quot; valign=&quot;top&quot; width=&quot;23%&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;status&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt; width: 76.88%;&quot; valign=&quot;top&quot; width=&quot;76%&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt;&quot;&gt;200: &quot;OK&quot;&lt;br /&gt;
  404: Page not found&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/1977856854964581412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2011/11/ajax-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1977856854964581412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/1977856854964581412'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2011/11/ajax-notes.html' title='AJAX Notes'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3622848623797326428.post-6362630742984968785</id><published>2011-11-17T23:41:00.001-08:00</published><updated>2014-05-19T03:53:55.086-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JQuery"/><title type='text'>JQuery short notes</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .25in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
1.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;JQuery is a JavaScript library&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .25in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
2.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Features of JQuery&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;HTML element selection&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;HTML element manipulation&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;CSS manipulation&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;HTML event functions&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;JavaScript effect and animation&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;st1:city w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;AJAX&lt;/st1:place&gt;&lt;/st1:city&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Utilities&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .25in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
3.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;To add&amp;nbsp; JQuery to
a page&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
&amp;lt;head&amp;gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
&amp;lt;script
type=”text/javascript” src=”jquery.js”&amp;gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
&amp;lt;/head&amp;gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
JQury tag should
be inside &amp;lt;head &amp;gt; tag&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .25in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
4.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Two version of JQuery are available&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Minified&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Uncompressed( for debugging and testing purpose)&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .25in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
5.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;To use hosted library from Google&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
&amp;lt;head&amp;gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
&amp;lt;script
=”http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js”&amp;gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
&amp;lt;/head&amp;gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .25in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
6.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;JQuery Syntax:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
$(selector).action()&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .25in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
7.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Document Ready function skeleton&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
$(document).ready(function){&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 117.0pt; mso-list: l1 level3 lfo1; tab-stops: list 117.0pt; text-indent: -.25in;&quot;&gt;
-&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;- - - - - - - -&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 117.0pt; mso-list: l1 level3 lfo1; tab-stops: list 117.0pt; text-indent: -.25in;&quot;&gt;
-&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;nbsp;- - - - - - - -&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 117.0pt; mso-list: l1 level3 lfo1; tab-stops: list 117.0pt; text-indent: -.25in;&quot;&gt;
-&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;nbsp;- - -- - - - - -&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
});&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
This is done to
prevent any JQuery code from running before the document is finished loading &lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
Ex.:- &amp;nbsp;&amp;nbsp;&amp;nbsp; Trying to hide an element that doesn’t exist&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .5in;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Trying to get size of an image that
is not loaded&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 0in; mso-list: l1 level1 lfo1; tab-stops: list 0in; text-indent: 0in;&quot;&gt;
8.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;JQuery selector allows to select HTML element by&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Element name&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Attribute name&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Content&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .25in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
9.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Element selector example:&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;p&quot;) selects all &amp;lt;p&amp;gt;
elements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;$(&quot;p.intro&quot;) selects all &amp;lt;p&amp;gt;
elements with class=&quot;intro&quot;.&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;$(&quot;p#demo&quot;) selects all &amp;lt;p&amp;gt;
elements with id=&quot;demo&quot;.&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-left: .25in; mso-list: l1 level1 lfo1; tab-stops: list 0in; text-indent: -.25in;&quot;&gt;
10.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;Attribute
selection Example:&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt; jQuery uses XPath expressions to select
elements with given attributes.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;[href]&quot;) select all elements with
a href attribute.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;[href=&#39;#&#39;]&quot;) select all elements
with a href value equal to &quot;#&quot;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;[href!=&#39;#&#39;]&quot;) select all elements
with a href attribute NOT equal to &quot;#&quot;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;[href$=&#39;.jpg&#39;]&quot;) select all
elements with a href attribute that ends with &quot;.jpg&quot;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in; mso-list: l1 level1 lfo1; tab-stops: list 0in .25in; text-indent: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;11.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;CSS
selection example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;$(&quot;p&quot;).css(&quot;background-color&quot;,&quot;blue&quot;);&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l1 level1 lfo1; tab-stops: list 0in .25in; text-indent: -.5in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;12.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;Some more Examples&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: -.25in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-style: none; border-collapse: collapse; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; width: 544px;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 9.4pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
  &lt;td style=&quot;background: #E5EECC; border: solid #C3C3C3 1.0pt; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Selector&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #E5EECC; border-left: none; border: solid #C3C3C3 1.0pt; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Example&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;background: #E5EECC; border-left: none; border: solid #C3C3C3 1.0pt; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;Selects&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 10.0pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_all.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;*&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;*&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All elements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 9.4pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;.&lt;em&gt;class&lt;/em&gt;.&lt;em&gt;class&lt;/em&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;.intro.demo&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All elements with the
  classes &quot;intro&quot; and &quot;demo&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 10.0pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_first.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:first&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;p:first&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;The first p element&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 10.0pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_last.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:last&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;p:last&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;The last p element&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 9.4pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_even.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:even&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;tr:even&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All even tr elements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 10.0pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_odd.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:odd&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;tr:odd&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All odd tr elements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 9.4pt; mso-yfti-irow: 7;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 10.0pt; mso-yfti-irow: 8;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_eq.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:eq(&lt;em&gt;index&lt;/em&gt;)&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;ul li:eq(3)&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;The fourth element in a
  list (index starts at 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 10.0pt; mso-yfti-irow: 9;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_gt.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:gt(&lt;em&gt;no&lt;/em&gt;)&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;ul li:gt(3)&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;List elements with an index
  greater than 3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 9.4pt; mso-yfti-irow: 10;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_lt.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:lt(&lt;em&gt;no&lt;/em&gt;)&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;ul li:lt(3)&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;List elements with an index
  less than 3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 10.0pt; mso-yfti-irow: 11;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_not.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:not(&lt;em&gt;selector&lt;/em&gt;)&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;input:not(:empty)&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All input elements that are
  not empty&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 9.4pt; mso-yfti-irow: 12;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_animated.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:animated&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;:animated&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All animated elements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 10.0pt; mso-yfti-irow: 13;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_contains.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:contains(&lt;em&gt;text&lt;/em&gt;)&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;:contains(&#39;W3Schools&#39;)&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 10.0pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All elements which contains
  the text&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 9.4pt; mso-yfti-irow: 14;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_empty.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;:empty&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;:empty&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 9.4pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All elements with no child
  (elements) nodes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 20.05pt; mso-yfti-irow: 15;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 20.05pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_attribute_equal_value.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;[&lt;em&gt;attribute&lt;/em&gt;=&lt;em&gt;value&lt;/em&gt;]&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 20.05pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;[href=&#39;default.htm&#39;]&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 20.05pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All elements with a href
  attribute value equal to &quot;default.htm&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 19.35pt; mso-yfti-irow: 16; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;border-top: none; border: solid #C3C3C3 1.0pt; height: 19.35pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;a href=&quot;http://www.w3schools.com/jquery/sel_attribute_end_value.asp&quot;&gt;&lt;span style=&quot;color: #900b09;&quot;&gt;[&lt;em&gt;attribute&lt;/em&gt;$=&lt;em&gt;value&lt;/em&gt;]&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 19.35pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(&quot;[href$=&#39;.jpg&#39;]&quot;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid #C3C3C3 1.0pt; border-left: none; border-right: solid #C3C3C3 1.0pt; border-top: none; height: 19.35pt; mso-border-alt: solid #C3C3C3 .75pt; mso-border-left-alt: solid #C3C3C3 .75pt; mso-border-top-alt: solid #C3C3C3 .75pt; padding: 2.25pt 2.25pt 2.25pt 2.25pt;&quot; valign=&quot;top&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;All elements with a href
  attribute value ending with &quot;.jpg&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l1 level1 lfo1; tab-stops: list 0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;13.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;To put
JQuery functions in a separate file is always a god idea. To use that js file&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 10pt; line-height: 150%;&quot;&gt;&lt;br /&gt;
&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;&quot;&gt;&amp;lt;script type=&quot;text/javascript&quot;
src=&quot;jquery.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;&quot;&gt;&amp;lt;script type=&quot;text/javascript&quot;
src=&quot;my_jquery_functions.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;&quot;&gt;&amp;lt;/head&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in; mso-list: l1 level1 lfo1; tab-stops: list 0in; text-indent: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;14.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;The jQuery noConflict()
method specifies a custom name (like jq), instead of using the dollar sign.&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;lt;html&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;lt;head&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;lt;script
type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;lt;script
type=&quot;text/javascript&quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;var
jq=jQuery.noConflict();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 2.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level4 lfo1; tab-stops: list 2.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;-&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;jq(document).ready(function(){&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .75in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo2; tab-stops: list .75in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;-&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;- - - -&amp;nbsp;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .75in; margin-right: 0in; margin-top: 0in; mso-list: l0 level1 lfo2; tab-stops: list .75in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;-&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;- - - - &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;nbsp; });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;});&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;lt;/script&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;lt;/head&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;lt;/html&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;15.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The
syntax of jQuery&#39;s method for making custom animations is:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in; text-indent: .5in;&quot;&gt;
&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(selector).animate({params},[duration],[easing],[callback])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;16.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JavaScript
statements are executed line by line. However, with animations, the next &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;line of code can be run even though the
animation is not finished. This can create errors. To prevent this, you can
create a callback function. A callback function is executed after the current
animation (effect) is finished.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;

&lt;span style=&quot;font-family: Verdana; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;17.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Changing HTML Content&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;

&lt;span style=&quot;font-family: Symbol; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;$(selector).html(content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(selector).append(content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(selector).prepend(content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;

&lt;span style=&quot;font-family: Symbol; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;$(selector).after(content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;

&lt;span style=&quot;font-family: Symbol; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;$(selector).before(content)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;

&lt;span style=&quot;font-family: Verdana; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;18.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;T&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;he css() method has three different syntaxes, to perform
different tasks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;css(name) - Return CSS property value&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;css(name,value) - Set CSS property and value&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 150%; margin-left: 1.0in; mso-list: l1 level2 lfo1; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 9pt; line-height: 150%;&quot;&gt;·&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;css({properties}) - Set multiple CSS
properties and values&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in;&quot;&gt;

&lt;span style=&quot;font-family: Verdana; font-size: 9pt; font-weight: normal; line-height: 150%;&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;19.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;The
jQuery load() method is a simple (but very powerful) &lt;st1:place w:st=&quot;on&quot;&gt;&lt;st1:city w:st=&quot;on&quot;&gt;AJAX&lt;/st1:city&gt;&lt;/st1:place&gt; function. It has the following syntax:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in; text-indent: .25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$(selector).load(url,&lt;i&gt;data,callback&lt;/i&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in; text-indent: .25in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .25in; margin-right: 0in; margin-top: 0in; mso-list: l1 level1 lfo1; tab-stops: list .25in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;20.&lt;span style=&quot;font: normal normal normal 7pt/normal &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;$.ajax(options)&lt;/span&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;is the syntax of the low level &lt;st1:place w:st=&quot;on&quot;&gt;&lt;st1:city w:st=&quot;on&quot;&gt;AJAX&lt;/st1:city&gt;&lt;/st1:place&gt; function.&lt;/span&gt;&lt;span style=&quot;font-family: Verdana; font-size: 9pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 150%; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://binary-imaginers.blogspot.com/feeds/6362630742984968785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://binary-imaginers.blogspot.com/2011/11/jquery-short-notes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6362630742984968785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3622848623797326428/posts/default/6362630742984968785'/><link rel='alternate' type='text/html' href='http://binary-imaginers.blogspot.com/2011/11/jquery-short-notes.html' title='JQuery short notes'/><author><name>Ashvin Bhide</name><uri>http://www.blogger.com/profile/12479991839198648126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>