[TFUI] Re: [agile-testing] is Selenium the best choice

George Dinwiddie <lists-HLNzD44B1AikJOqCEYON2AC/[email protected]> Mon, 10 Dec 2007 07:36:48 -0500
Newsgroups gmane.comp.programming.test-first-user-interfaces
Organization iDIA Computing, LLC
Message-ID <[email protected]>
--3cl67YzbfrpORWIyvSwJcjERGMX8n4irRgSbKDd
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Mark Waite wrote:
> --- George Dinwiddie <lists-HLNzD44B1AikJOqCEYON2AC/[email protected]> wrote:
> 
>> Ulrich Freyer-Hirtz wrote:
>>> As I understood your GUI is a Swing GUI. Therefore you can try
>>> jfcUnit (open source). I love to use qfTest from Quality First
>>> Software (http://www.qfs.de/) with Swing-GUIs. It's not costly and
>>> the money comes back soon through the efftive way of desinging the
>>> tests.
>> For Swing, I recommend Abbot over jfcUnit (see 
>> http://blog.gdinwiddie.com/2007/04/25/tdd-and-java-swing/).  You can 
>> also use the Swing wrapper of JBehave 
>>
> (http://blog.gdinwiddie.com/2007/05/09/making-tdd-and-java-swing-behave/).
>>   It's very nice, but not as full-featured as Abbot.  Abbot has a bit 
>> more learning curve (at least for me) because some techniques weren't 
>> obvious to me.  Be sure to see the comments on those entries.
> 
> I used Abbot to create a regression test for a Swing application
> whose user interface was not changing but whose implementation
> was changing.  While developing the Abbot tests, I often found that 
> I wanted to "program" something, but because I had initially chosen
> to record the tests, I had tests written in XML which were not ready
> to be refactored, extended, or changed.
> 
> We left those tests alone, grateful that they continued running.  They
> continued that way for a year or more.
> 
> When we switched to JDK 6, the tests stopped working.  Rather than
> dig deeply into the cause of the failure, I decided to try a different
> automation tool in a scripting language I prefer.  I switched to 
> Marathon (http://sourceforge.net/projects/marathonman) because it
> lets me record scripts, the recorded scripts are written in Python,
> and I'm comfortable with Python.  Some of my initial observations are
> http://blog.360.yahoo.com/blog-4B.afOU8erSVU28a2FPKRNU-?cq=1&p=215
> 
> The switch was about 2 days worth of work, including recording and
> refactoring the tests to keep them simple, and switching our test
> infrastructure to run the Marathon based tests instead of the Abbot
> based tests.
> 
> Others will probably have different experiences than I had.  I know
> that Abbot has a programming interface which allows Java programmers
> to code their UI tests in Java.  I assume that is preferable for Java
> programmers in test, since they can use a familiar language.  In my
> case, Marathon was a better fit because I was more comfortable with
> Python than with Java, and I didn't want to get any "closer" to the
> Java GUI implementation than was absolutely necessary.
> 
> The switch to Marathon has not been trouble free, but the two 
> Marathon questions I've asked on the sourceforge forums have been
> addressed promptly and very well.
> 
> This is not any statement against Abbot's style of testing, I think
> it is a great program, and my first experiences with it a year or
> two ago were quite positive.  As I worked with it further, I found
> that I wanted more programmable tests than I was getting with my
> chosen implementation path on Abbot.

Mark, that's something I hadn't thought about as I've never used the 
record/playback form of testing with Abbot.  I used it for TDDing the 
GUI, so the tests were all programmatic.

I'm curious, have you tried TDD using a testing framework in a different 
language than the implementation?  I haven't done so, but I can imagine 
it might cause me difficulty.

  - George

[cross-posted, because I think this might be an interesting question on 
TFUI, also]

-- 
  ----------------------------------------------------------------------
   * George Dinwiddie *                      http://blog.gdinwiddie.com
   Software Development                    http://www.idiacomputing.com
   Consultant and Coach                    http://www.agilemaryland.org
  ----------------------------------------------------------------------


--3cl67YzbfrpORWIyvSwJcjERGMX8n4irRgSbKDd
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>




<body style="background-color: #ffffff;">

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="width:655px; position:relative;">
  <div id="ygrp-msg" style="width: 490px; padding: 0 15px 0 0; float:left;  z-index:1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id="ygrp-text">
            <p>Mark Waite wrote:<br>
&gt; --- George Dinwiddie &lt;<a href="mailto:lists%40idiacomputing.com">lists@idiacomputing<wbr>.com</a>&gt; wrote:<br>
&gt; <br>
&gt;&gt; Ulrich Freyer-Hirtz wrote:<br>
&gt;&gt;&gt; As I understood your GUI is a Swing GUI. Therefore you can try<br>
&gt;&gt;&gt; jfcUnit (open source). I love to use qfTest from Quality First<br>
&gt;&gt;&gt; Software (<a href="http://www.qfs.de/">http://www.qfs.<wbr>de/</a>) with Swing-GUIs. It's not costly and<br>
&gt;&gt;&gt; the money comes back soon through the efftive way of desinging the<br>
&gt;&gt;&gt; tests.<br>
&gt;&gt; For Swing, I recommend Abbot over jfcUnit (see <br>
&gt;&gt; <a href="http://blog.gdinwiddie.com/2007/04/25/tdd-and-java-swing/">http://blog.<wbr>gdinwiddie.<wbr>com/2007/<wbr>04/25/tdd-<wbr>and-java-<wbr>swing/</a>).  You can <br>
&gt;&gt; also use the Swing wrapper of JBehave <br>
&gt;&gt;<br>
&gt; (<a href="http://blog.gdinwiddie.com/2007/05/09/making-tdd-and-java-swing-behave/">http://blog.<wbr>gdinwiddie.<wbr>com/2007/<wbr>05/09/making-<wbr>tdd-and-java-<wbr>swing-behave/</a>).<br>
&gt;&gt;   It's very nice, but not as full-featured as Abbot.  Abbot has a bit <br>
&gt;&gt; more learning curve (at least for me) because some techniques weren't <br>
&gt;&gt; obvious to me.  Be sure to see the comments on those entries.<br>
&gt; <br>
&gt; I used Abbot to create a regression test for a Swing application<br>
&gt; whose user interface was not changing but whose implementation<br>
&gt; was changing.  While developing the Abbot tests, I often found that <br>
&gt; I wanted to &quot;program&quot; something, but because I had initially chosen<br>
&gt; to record the tests, I had tests written in XML which were not ready<br>
&gt; to be refactored, extended, or changed.<br>
&gt; <br>
&gt; We left those tests alone, grateful that they continued running.  They<br>
&gt; continued that way for a year or more.<br>
&gt; <br>
&gt; When we switched to JDK 6, the tests stopped working.  Rather than<br>
&gt; dig deeply into the cause of the failure, I decided to try a different<br>
&gt; automation tool in a scripting language I prefer.  I switched to <br>
&gt; Marathon (<a href="http://sourceforge.net/projects/marathonman">http://sourceforge.<wbr>net/projects/<wbr>marathonman</a>) because it<br>
&gt; lets me record scripts, the recorded scripts are written in Python,<br>
&gt; and I'm comfortable with Python.  Some of my initial observations are<br>
&gt; <a href="http://blog.360.yahoo.com/blog-4B.afOU8erSVU28a2FPKRNU-?cq=1&amp;p=215">http://blog.<wbr>360.yahoo.<wbr>com/blog-<wbr>4B.afOU8erSVU28a<wbr>2FPKRNU-?<wbr>cq=1&amp;p=215</a><br>
&gt; <br>
&gt; The switch was about 2 days worth of work, including recording and<br>
&gt; refactoring the tests to keep them simple, and switching our test<br>
&gt; infrastructure to run the Marathon based tests instead of the Abbot<br>
&gt; based tests.<br>
&gt; <br>
&gt; Others will probably have different experiences than I had.  I know<br>
&gt; that Abbot has a programming interface which allows Java programmers<br>
&gt; to code their UI tests in Java.  I assume that is preferable for Java<br>
&gt; programmers in test, since they can use a familiar language.  In my<br>
&gt; case, Marathon was a better fit because I was more comfortable with<br>
&gt; Python than with Java, and I didn't want to get any &quot;closer&quot; to the<br>
&gt; Java GUI implementation than was absolutely necessary.<br>
&gt; <br>
&gt; The switch to Marathon has not been trouble free, but the two <br>
&gt; Marathon questions I've asked on the sourceforge forums have been<br>
&gt; addressed promptly and very well.<br>
&gt; <br>
&gt; This is not any statement against Abbot's style of testing, I think<br>
&gt; it is a great program, and my first experiences with it a year or<br>
&gt; two ago were quite positive.  As I worked with it further, I found<br>
&gt; that I wanted more programmable tests than I was getting with my<br>
&gt; chosen implementation path on Abbot.<br>
<br>
Mark, that's something I hadn't thought about as I've never used the <br>
record/playback form of testing with Abbot.  I used it for TDDing the <br>
GUI, so the tests were all programmatic.<br>
<br>
I'm curious, have you tried TDD using a testing framework in a different <br>
language than the implementation?  I haven't done so, but I can imagine <br>
it might cause me difficulty.<br>
<br>
- George<br>
<br>
[cross-posted, because I think this might be an interesting question on <br>
TFUI, also]<br>
<br>
-- <br>
  ------------<wbr>---------<wbr>---------<wbr>---------<wbr>---------<wbr>---------<wbr>-<br>
   * George Dinwiddie *                      <a href="http://blog.gdinwiddie.com">http://blog.<wbr>gdinwiddie.<wbr>com</a><br>
   Software Development                    <a href="http://www.idiacomputing.com">http://www.idiacomp<wbr>uting.com</a><br>
   Consultant and Coach                    <a href="http://www.agilemaryland.org">http://www.agilemar<wbr>yland.org</a><br>
  ------------<wbr>---------<wbr>---------<wbr>---------<wbr>---------<wbr>---------<wbr>-<br>
<br>
</p>
    </div>  

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <span width="1" style="color: white;">__._,_.___</span>
    <!-- Start the section with Message In topic -->
    <div id="ygrp-actbar">
              <span class="left">
          <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/message/1006;_ylc=X3oDMTM0MGllY2V1BF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BG1zZ0lkAzEwMDYEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMTk3MjkwMjE5BHRwY0lkAzEwMDY-">
            Messages in this topic          </a> (<span class="bld">1</span>)
        </span>
        <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/post;_ylc=X3oDMTJwaWplZG1sBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BG1zZ0lkAzEwMDYEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMTk3MjkwMjE5?act=reply&messageNum=1006">
          <span class="bld">
            Reply          </span> (via web post)
        </a>  | 
        <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/post;_ylc=X3oDMTJlbHM2cGppBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTE5NzI5MDIxOQ--" class="bld">
          Start a new topic        </a>
          </div> 
    <!-------     Start Nav Bar  ------>
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-vitnav">
                <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/messages;_ylc=X3oDMTJldDVoNWIwBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA21zZ3MEc3RpbWUDMTE5NzI5MDIxOQ--">Messages</a>  
            |    <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/files;_ylc=X3oDMTJmODEyNm5iBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA2ZpbGVzBHN0aW1lAzExOTcyOTAyMTk-">Files</a>  
            |    <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/photos;_ylc=X3oDMTJlOWY3MGYxBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA3Bob3QEc3RpbWUDMTE5NzI5MDIxOQ--">Photos</a>  
            |    <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/links;_ylc=X3oDMTJmbHIxZnN1BF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA2xpbmtzBHN0aW1lAzExOTcyOTAyMTk-">Links</a>  
            |    <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/database;_ylc=X3oDMTJjMm05MDRpBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA2RiBHN0aW1lAzExOTcyOTAyMTk-">Database</a>  
            |    <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/polls;_ylc=X3oDMTJmYXJuNmJvBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA3BvbGxzBHN0aW1lAzExOTcyOTAyMTk-">Polls</a>  
            |    <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/members;_ylc=X3oDMTJlZ3FucWF2BF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA21icnMEc3RpbWUDMTE5NzI5MDIxOQ--">Members</a>  
            |    <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/calendar;_ylc=X3oDMTJkNXNxams5BF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA2NhbARzdGltZQMxMTk3MjkwMjE5">Calendar</a>  
    </div>  
    <!-- |**|end egp html banner|**| -->

                        <div id="ygrp-grft">
          

        </div>
      
                  <div id="ygrp-mkp">
      <div id="hd">MARKETPLACE</div>
      <div id="ads">
                  <div class="ad">
            <hr size=1 noshade><a href="http://us.ard.yahoo.com/SIG=12mtfi8bd/M=571476.11873916.12370328.11509771/D=groups/S=1705007207:MKP1/Y=YAHOO/EXP=1197297419/A=5086951/R=0/SIG=12k0vbbc9/*http://college-finder.net/index.cfm?key=yahoo_colfngrouptxt_11873916&c=CA152932587">Earn your degree in as few as 2 years - Advance your career with an AS, BS, MS degree</a> - College-Finder.net.          </div>
                              </div>
    </div>
      
    <!-- yahoo logo -->
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-ft">
      <a href="http://groups.yahoo.com/;_ylc=X3oDMTJkMWpkZTBwBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMTk3MjkwMjE5">
      <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" height="15" width="106" border="0" alt="Yahoo! Groups"></a> <br>
      <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces/join;_ylc=X3oDMTJmaWsxODdoBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA3N0bmdzBHN0aW1lAzExOTcyOTAyMTk-">Change settings via the Web</a> (Yahoo! ID required) <br>
      Change settings via email: <a href="mailto:TestFirstUserInterfaces-digest-hHKSG33TihhbjbujkaE4pw@public.gmane.org?subject=Email Delivery: Digest">Switch delivery to Daily Digest</a> | <a href = "mailto:TestFirstUserInterfaces-traditional-hHKSG33TihhbjbujkaE4pw@public.gmane.org?subject=Change Delivery Format: Traditional">Switch format to Traditional</a> <br>

      <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces;_ylc=X3oDMTJkdm5qdHFiBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwNmdHIEc2xrA2hwZgRzdGltZQMxMTk3MjkwMjE5">
        Visit Your Group 
      </a> |
      <a href="http://docs.yahoo.com/info/terms/">
        Yahoo! Groups Terms of Use      </a> |
      <a href="mailto:TestFirstUserInterfaces-unsubscribe-hHKSG33TihhbjbujkaE4pw@public.gmane.org?subject=">
        Unsubscribe      </a> 
    </div>     <!-- |**|end egp html banner|**| -->
  </div> <!-- ygrp-msg -->

  
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id="ygrp-sponsor" style="width:140px;float: left; clear: none; margin-left: 5px; background:white; margin-bottom:25px ;position:absolute; top:0; right: 0;">
    <!-- Network content -->
    
    <!-- Start vitality -->
    <div id="ygrp-vital">
            <a href="http://groups.yahoo.com/group/TestFirstUserInterfaces;_ylc=X3oDMTJlYjNsZnNmBF9TAzk3MzU5NzE0BGdycElkAzg3NDQ3MDQEZ3Jwc3BJZAMxNzA1MDA3MjA3BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTE5NzI5MDIxOQ--">
        Visit Your Group      </a>
    </div> 
              
    <!-- Network content -->
              <div id="nc">
              <div class="ad">
                      <div id="hd1">Yahoo! Finance</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12j4gip0e/M=493064.10729649.11333340.8674578/D=groups/S=1705007207:NC/Y=YAHOO/EXP=1197297419/A=4507179/R=0/SIG=12de4rskk/*http://us.rd.yahoo.com/evt=50284/*http://finance.yahoo.com/personal-finance">It's Now Personal</a></p> 
<p>Guides, news,</p> 
<p>advice & more.</p>                   </div>
                    <div class="ad">
                      <div id="hd1">Cat Fanatics</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12jdcjqr6/M=493064.11292562.11840176.8674578/D=groups/S=1705007207:NC/Y=YAHOO/EXP=1197297419/A=4836040/R=0/SIG=11olbte0b/*http://advision.webevents.yahoo.com/catzone/index.html">on Yahoo! Groups</a></p> 
<p>Find people who are</p> 
<p>crazy about cats.</p>                  </div>
                    <div class="ad">
                      <div id="hd1">Yahoo! Groups</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12kgh30ck/M=493064.11675218.12153349.11323196/D=groups/S=1705007207:NC/Y=YAHOO/EXP=1197297419/A=4840958/R=0/SIG=11l77jq6u/*http://health.groups.yahoo.com/group/specialKgroup/">Special K Challenge</a></p> 
<p>Learn how others are</p> 
<p>shedding the pounds.</p>                  </div>
          </div>
    
  </div>   <!-- |**|end egp html banner|**| -->
  <div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>   <img src="http://geo.yahoo.com/serv?s=97359714/grpId=8744704/grpspId=1705007207/msgId=1006/stime=1197290219/nc1=4507179/nc2=4836040/nc3=4840958" width="1" height="1"> <br>

<span  style="color: white;">__,_._,___</span>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mkp{
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 14px 0px;
  padding: 0px 14px;
}
#ygrp-mkp hr{
  border: 1px solid #d8d8d8;
}
#ygrp-mkp #hd{
  color: #628c2a;
  font-size: 85%;
  font-weight: bold;
  line-height: 122%;
  margin: 10px 0px;
}
#ygrp-mkp #ads{
  margin-bottom: 10px;
}
#ygrp-mkp .ad{
  padding: 0 0;
}
#ygrp-mkp .ad a{
  color: #0000ff;
  text-decoration: none;
}
-->
</style>
</head>
<head>
<style type="text/css">
<!--
#ygrp-sponsor #ygrp-lc{
  font-family: Arial;
}
#ygrp-sponsor #ygrp-lc #hd{
  margin: 10px 0px;
  font-weight: bold;
  font-size: 78%;
  line-height: 122%;
}
#ygrp-sponsor #ygrp-lc .ad{
  margin-bottom: 10px;
  padding: 0 0;
}
-->
</style>
</head>
<head>
<style type="text/css">
<!--
#ygrp-mlmsg {font-size:13px; font-family: arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;*font-size:100%;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
    font-family: Georgia;	
}
#ygrp-text p{
    margin: 0 0 1em 0;
}
#ygrp-tpmsgs{
    font-family: Arial;	
    clear: both;
}
#ygrp-vitnav{
	padding-top: 10px;
	font-family: Verdana;
	font-size: 77%;
	margin: 0;
}
#ygrp-vitnav a{
	padding: 0 1px;
}
#ygrp-actbar{
	clear: both;
	margin: 25px 0;
	white-space:nowrap;
	color: #666;
	text-align: right;
}
#ygrp-actbar .left{
	float: left;
	white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
	font-family: Verdana;
	font-size: 77%;
	padding: 15px 0;
}
#ygrp-ft{
  font-family: verdana;
  font-size: 77%;
  border-top: 1px solid #666; 
  padding: 5px 0; 
}
#ygrp-mlmsg #logo{
  padding-bottom: 10px;
}

#ygrp-vital{
	background-color: #e0ecee;
	margin-bottom: 20px;
	padding: 2px 0 8px 8px;
}
#ygrp-vital #vithd{
	font-size: 77%;
	font-family: Verdana;
	font-weight: bold;
	color: #333;
	text-transform: uppercase;
}
#ygrp-vital ul{
	padding: 0;
	margin: 2px 0;
}
#ygrp-vital ul li{
  list-style-type: none;
  clear: both;
  border: 1px solid #e0ecee;  
}
#ygrp-vital ul li .ct{
  font-weight: bold;
  color: #ff7900;
  float: right;
  width: 2em;
  text-align:right;
  padding-right: .5em;
}
#ygrp-vital ul li .cat{
  font-weight: bold;
}
#ygrp-vital a{
	text-decoration: none;
}

#ygrp-vital a:hover{
  text-decoration: underline;
}

#ygrp-sponsor #hd{
	color: #999;
	font-size: 77%;
}
#ygrp-sponsor #ov{
	padding: 6px 13px;
	background-color: #e0ecee;
	margin-bottom: 20px;
}
#ygrp-sponsor #ov ul{
	padding: 0 0 0 8px;
	margin: 0;
}
#ygrp-sponsor #ov li{
	list-style-type: square;
	padding: 6px 0;
	font-size: 77%;
}
#ygrp-sponsor #ov li a{
	text-decoration: none;
	font-size: 130%;
}
#ygrp-sponsor #nc{
  background-color: #eee;
  margin-bottom: 20px;
  padding: 0 8px;
}
#ygrp-sponsor .ad{
	padding: 8px 0;
}
#ygrp-sponsor .ad #hd1{
	font-family: Arial;
	font-weight: bold;
	color: #628c2a;
	font-size: 100%;
	line-height: 122%;
}
#ygrp-sponsor .ad a{
	text-decoration: none;
}
#ygrp-sponsor .ad a:hover{
	text-decoration: underline;
}
#ygrp-sponsor .ad p{
	margin: 0;
}
o{font-size: 0; }
.MsoNormal{
   margin: 0 0 0 0;
}
#ygrp-text tt{
  font-size: 120%;
}
blockquote{margin: 0 0 0 4px;}
.replbq{margin:4}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html><!--End group email -->


--3cl67YzbfrpORWIyvSwJcjERGMX8n4irRgSbKDd--