RE: Announcing start of WTL10

"'Jeff Boeker' Jeff-b1ql1gapkFVWk0Htik3J/[email protected] [wtl]" <[email protected]> Tue, 26 Sep 2017 23:49:17 +0800
Newsgroups gmane.comp.windows.wtl
Message-ID <[email protected]>
------=_NextPart_000_01B4_01D33722.20FA59D0
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Yes, basically my use case is when I need to read strings from Windows cont=
rols. Typically the pattern, at the Windows API level, is to pass in null s=
tring and get the character count returned, then pass in a string allocated=
 to correct number of characters. Sometime it is more complicated.

=20

In WTL often the choices are BSTR or CString or character array, like CList=
ViewCtrl::GetItemText(). For our company, we=E2=80=99ve standardized on wst=
ring so in many cases I just added a wstring version of the function. I lik=
e to think of WTL as a windows specific addition to the standard template l=
ibrary so being able to use std::string/wstring seamlessly feels natural to=
 me but I agree if there=E2=80=99s not many people interested there=E2=80=
=99s no point to add a 4th string type to WTL.

=20

From: [email protected] [mailto:[email protected]]=20
Sent: Friday, September 22, 2017 3:58 PM
To: [email protected]
Subject: Re: [wtl] Announcing start of WTL10

=20

=20=20

I am not sure if this dependency on the STL should be dragged into the WTL.

Since std:string already provides c_str() that you can always use to feed a=
n STL String where WTL:CString is required. Yes its one more allocation but=
 I don't see that this would have an noticeable impact on the performance.

=20

Jeff what is the use case you have? Do you want CWindow::getText to return =
a std:wstring to save one conversion/allocation?

=20

On Fri, Sep 22, 2017 at 2:27 AM, Nenad Stefanovi=C4=87 [email protected] =
<mailto:[email protected]>  [wtl] <[email protected] <mailto:wtl@yahoog=
roups.com> > wrote:

=20

Hi Jeff,

=20

That can be done, depending on how many people are requesting it. Since WTL=
 already uses CString, you can simply copy values from CString to std:strin=
g in your code.

=20

I hope that others can reply to this thread if they think that direct use o=
f std:string/wstring is needed.

=20

Cheers,

Nenad

=20

=20

On Wed, Sep 20, 2017 at 5:40 PM, 'Jeff Boeker' Jeff-b1ql1gapkFVWk0Htik3J/[email protected] [wtl] <wtl=
@yahoogroups.com <mailto:[email protected]> > wrote:

=20=20

Hello Nenad,

Is there any interest in supporting std:string/wstring in WTL? I=E2=80=99ve=
 already added it internally to several places since my company doesn=E2=80=
=99t use CString.

Jeff

Begin forwarded message:

From: "Nenad Stefanovi=C4=87 [email protected] <mailto:[email protected]=
m>  [wtl]" <[email protected] <mailto:[email protected]> >
Date: September 20, 2017 at 9:11:04 AM GMT+8
To: "[email protected] <mailto:[email protected]> " <wtl-hHKSG33Tihh9OS/[email protected]=
m <mailto:[email protected]> >
Subject: [wtl] Announcing start of WTL10
Reply-To: [email protected] <mailto:[email protected]>=20



Hello everybody,

WTL10 is the new version of WTL. The major changes compared to WTL 9.1 are =
removal of certain things, which enabled us to streamline the code to move =
it forward:

- Visual Studio support: now requires VS2005 or newer (supports VS2017)

- Removed support for Visual Studio Express (use VS Community)

- Removed support for WinCE projects

- Removed support for _ATL_MIN_CRT

- Removed WTL implementation of CPoint/CSize/CRect/CString (use ATL)

- New logo :-)

The code is in 'Git' repository (previous one was in 'Code'). This is just =
an initial commit, and we will now work on adding features and fixing bugs.

Cheers,

Nenad

[Non-text portions of this message have been removed]

=20

=20

=20




------=_NextPart_000_01B4_01D33722.20FA59D0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable





<head>

<style type=3D"text/css">
<!--

/* start of attachment style */
       .ygrp-photo-title{
         clear: both;
         font-size: smaller;
         height: 15px;
         overflow: hidden;
         text-align: center;
         width: 75px;
       }
       div.ygrp-photo{
         background-position: center;
         background-repeat: no-repeat;
         background-color: white;
         border: 1px solid black;
         height: 62px;
         width: 62px;
       }

       div.photo-title=20
         a,
         div.photo-title a:active,
         div.photo-title a:hover,
         div.photo-title a:visited {
           text-decoration: none;=20
       }

       div.attach-table div.attach-row {
         clear: both;
       }

       div.attach-table div.attach-row div {
         float: left;
         /* margin: 2px;*/
       }

       p {
         clear: both;
         padding: 15px 0 3px 0;
	 overflow: hidden;
       }

       div.ygrp-file {
         width: 30px;
         valign: middle;
       }
       div.attach-table div.attach-row div div a {
         text-decoration: none;
       }

       div.attach-table div.attach-row div div span {
         font-weight: normal;
       }

       div.ygrp-file-title {
         font-weight: bold;
       }
 /* end of attachment style */
        -->
        </style>
        </head>
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content=
=3D"text/html; charset=3Dutf-8"><meta name=3DGenerator content=3D"Microsoft=
 Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#defaul=
t#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:DengXian;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
	{font-family:"\@DengXian";
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
code
	{mso-style-priority:99;
	font-family:"Courier New";}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
tt
	{mso-style-priority:99;
	font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Consolas",serif;}
p.attach, li.attach, div.attach
	{mso-style-name:attach;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:9.0pt;
	font-family:"Arial",sans-serif;}
p.bold, li.bold, div.bold
	{mso-style-name:bold;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:10.0pt;
	font-family:"Arial",sans-serif;
	font-weight:bold;}
p.green, li.green, div.green
	{mso-style-name:green;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	color:#628C2A;}
p.replbq, li.replbq, div.replbq
	{mso-style-name:replbq;
	margin:3.0pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.ad, li.ad, div.ad
	{mso-style-name:ad;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.underline, li.underline, div.underline
	{mso-style-name:underline;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.yshortcuts
	{mso-style-name:yshortcuts;}
p.ad1, li.ad1, div.ad1
	{mso-style-name:ad1;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.ad2, li.ad2, div.ad2
	{mso-style-name:ad2;
	mso-margin-top-alt:auto;
	margin-right:0in;
	margin-bottom:7.5pt;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.underline1, li.underline1, div.underline1
	{mso-style-name:underline1;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	text-decoration:underline;}
span.yshortcuts1
	{mso-style-name:yshortcuts1;
	font-family:"Verdana",sans-serif;
	font-weight:bold;}
span.yshortcuts2
	{mso-style-name:yshortcuts2;
	font-family:"Verdana",sans-serif;
	font-weight:normal;}
span.EmailStyle36
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1426458911;
	mso-list-template-ids:1239442412;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:"Courier New";
	mso-bidi-font-family:"Times New Roman";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=3Dwhite lang=3DEN-US=
 link=3Dblue vlink=3Dpurple>


<!-- |**|begin egp html banner|**| -->

<br><br>

<!-- |**|end egp html banner|**| -->


<div class=3DWordSection1><p class=3DMsoNormal>Yes, basically my use case i=
s when I need to read strings from Windows controls. Typically the pattern,=
 at the Windows API level, is to pass in null string and get the character =
count returned, then pass in a string allocated to correct number of charac=
ters. Sometime it is more complicated.<o:p></o:p></p><p class=3DMsoNormal><=
o:p>&nbsp;</o:p></p><p class=3DMsoNormal>In WTL often the choices are BSTR =
or CString or character array, like CListViewCtrl::GetItemText(). For our c=
ompany, we=E2=80=99ve standardized on wstring so in many cases I just added=
 a wstring version of the function. I like to think of WTL as a windows spe=
cific addition to the standard template library so being able to use std::s=
tring/wstring seamlessly feels natural to me but I agree if there=E2=80=99s=
 not many people interested there=E2=80=99s no point to add a 4<sup>th</sup=
> string type to WTL.<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p><=
/p><div><div style=3D'border:none;border-top:solid #E1E1E1 1.0pt;padding:3.=
0pt 0in 0in 0in'><p class=3DMsoNormal><b>From:</b> [email protected] [mai=
lto:[email protected]] <br><b>Sent:</b> Friday, September 22, 2017 3:58 P=
M<br><b>To:</b> [email protected]<br><b>Subject:</b> Re: [wtl] Announcing=
 start of WTL10<o:p></o:p></p></div></div><p class=3DMsoNormal><o:p>&nbsp;<=
/o:p></p><p class=3DMsoNormal>&nbsp; <o:p></o:p></p><div id=3Dygrp-mlmsg><d=
iv id=3Dygrp-msg><div id=3Dygrp-text><div><p class=3DMsoNormal>I am not sur=
e if this dependency on the STL should be dragged into the WTL.<o:p></o:p><=
/p><div><p class=3DMsoNormal>Since std:string already provides c_str() that=
 you can always use to feed an STL String where WTL:CString is required. Ye=
s its one more allocation but I don't see that this would have an noticeabl=
e impact on the performance.<o:p></o:p></p></div><div><p class=3DMsoNormal>=
<o:p>&nbsp;</o:p></p></div><div><p class=3DMsoNormal>Jeff what is the use c=
ase you have? Do you want CWindow::getText to return a std:wstring to save =
one conversion/allocation?<o:p></o:p></p></div></div><div><p class=3DMsoNor=
mal><o:p>&nbsp;</o:p></p><div><p class=3DMsoNormal>On Fri, Sep 22, 2017 at =
2:27 AM, Nenad Stefanovi=C4=87 <a href=3D"mailto:[email protected]">nenad=
[email protected]</a> [wtl] &lt;<a href=3D"mailto:[email protected]" target=
=3D"_blank">[email protected]</a>&gt; wrote:<o:p></o:p></p><blockquote st=
yle=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 0in;=
margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=3DMsoNormal style=3D'ma=
rgin-bottom:12.0pt'><o:p>&nbsp;</o:p></p><div><p class=3DMsoNormal>Hi Jeff,=
<o:p></o:p></p><div><p class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p=
 class=3DMsoNormal>That can be done, depending on how many people are reque=
sting it. Since WTL already uses CString, you can simply copy values from C=
String to std:string in your code.<o:p></o:p></p></div><div><p class=3DMsoN=
ormal><o:p>&nbsp;</o:p></p></div><div><p class=3DMsoNormal>I hope that othe=
rs can reply to this thread if they think that direct use of std:string/wst=
ring is needed.<o:p></o:p></p></div><div><p class=3DMsoNormal><o:p>&nbsp;</=
o:p></p></div><div><p class=3DMsoNormal>Cheers,<o:p></o:p></p></div><div><p=
 class=3DMsoNormal>Nenad<o:p></o:p></p></div><div><p class=3DMsoNormal><o:p=
>&nbsp;</o:p></p></div></div><div><p class=3DMsoNormal><o:p>&nbsp;</o:p></p=
><div><p class=3DMsoNormal>On Wed, Sep 20, 2017 at 5:40 PM, 'Jeff Boeker' <=
a href=3D"mailto:Jeff-b1ql1gapkFVWk0Htik3J/[email protected]" target=3D"_blank">Jeff-b1ql1gapkFVWk0Htik3J/[email protected]</a>=
 [wtl] &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">wtl@yah=
oogroups.com</a>&gt; wrote:<o:p></o:p></p><blockquote style=3D'border:none;=
border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 0in;margin-top:5.0pt;ma=
rgin-bottom:5.0pt'><div><p class=3DMsoNormal style=3D'background:white'>&nb=
sp; <o:p></o:p></p><div id=3D"m_2873775927347566465m_-6255852137115714642yg=
rp-mlmsg"><div id=3D"m_2873775927347566465m_-6255852137115714642ygrp-msg"><=
div id=3D"m_2873775927347566465m_-6255852137115714642ygrp-text"><p style=3D=
'background:white'>Hello Nenad,<br><br>Is there any interest in supporting =
std:string/wstring in WTL? I=E2=80=99ve already added it internally to seve=
ral places since my company doesn=E2=80=99t use CString.<br><br>Jeff<br><br=
>Begin forwarded message:<br><br>From: &quot;Nenad Stefanovi=C4=87 <a href=
=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a> [=
wtl]&quot; &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">wtl=
@yahoogroups.com</a>&gt;<br>Date: September 20, 2017 at 9:11:04 AM GMT+8<br=
>To: &quot;<a href=3D"mailto:[email protected]" target=3D"_blank">wtl@yah=
oogroups.com</a>&quot; &lt;<a href=3D"mailto:[email protected]" target=3D=
"_blank">[email protected]</a>&gt;<br>Subject: [wtl] Announcing start of =
WTL10<br>Reply-To: <a href=3D"mailto:[email protected]" target=3D"_blank"=
>[email protected]</a><o:p></o:p></p><div><div><p class=3DMsoNormal style=
=3D'margin-bottom:12.0pt;background:white'><br><br>Hello everybody,<br><br>=
WTL10 is the new version of WTL. The major changes compared to WTL 9.1 are =
removal of certain things, which enabled us to streamline the code to move =
it forward:<br><br>- Visual Studio support: now requires VS2005 or newer (s=
upports VS2017)<br><br>- Removed support for Visual Studio Express (use VS =
Community)<br><br>- Removed support for WinCE projects<br><br>- Removed sup=
port for _ATL_MIN_CRT<br><br>- Removed WTL implementation of CPoint/CSize/C=
Rect/CString (use ATL)<br><br>- New logo :-)<br><br>The code is in 'Git' re=
pository (previous one was in 'Code'). This is just an initial commit, and =
we will now work on adding features and fixing bugs.<br><br>Cheers,<br><br>=
Nenad<o:p></o:p></p></div></div><p class=3DMsoNormal style=3D'margin-bottom=
:12.0pt;background:white'>[Non-text portions of this message have been remo=
ved]<o:p></o:p></p></div></div></div></div></blockquote></div><p class=3DMs=
oNormal><o:p>&nbsp;</o:p></p></div><p class=3DMsoNormal style=3D'margin-bot=
tom:12.0pt'><o:p>&nbsp;</o:p></p></div></blockquote></div><p class=3DMsoNor=
mal><o:p>&nbsp;</o:p></p></div></div><div><p class=3DMsoNormal><span style=
=3D'color:white'><o:p></o:p></span></p></div></div>



<!-- |**|begin egp html banner|**| -->

<br>


<br>

<!-- |**|end egp html banner|**| -->


<div width=3D"1" style=3D"color: white; clear: both;"/>__._,_.___</div>

=20=20=20=20=20=20
=20=20

=20=20=20=20
    <div id=3D"fromDMARC" style=3D"clear:both; margin-top: 10px;">
         <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; backgroun=
d-color:#E3E3E3;">
         Posted by: &quot;Jeff Boeker&quot; &lt;Jeff-b1ql1gapkFVWk0Htik3J/[email protected]&gt;      =
   <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; background-colo=
r:#E3E3E3;">
    </div>
<!-- Start Recommendations -->
<!-- End Recommendations -->



<!-- |**|begin egp html banner|**| -->

  <img src=3D"http://geo.yahoo.com/serv?s=3D97476590/grpId=3D488621/grpspId=
=3D1705006764/msgId=3D16745/stime=3D1506441291" width=3D"1" height=3D"1"> <=
br>

<!-- |**|end egp html banner|**| -->

=20=20=20=20
<!-- |**|begin egp html banner|**| -->

<br>



=20=20=20
=20=20=20=20=20
=20
        <!-- |**|begin egp html banner|**| -->
        <div id=3D"ygrp-vital" style=3D"background-color: #f2f2f2; font-fam=
ily: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

        <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-tr=
ansform: uppercase; "><a href=3D"https://groups.yahoo.com/neo/groups/wtl/in=
fo;_ylc=3DX3oDMTJkanFuZzg5BF9TAzk3MzU5NzE0BGdycElkAzQ4ODYyMQRncnBzcElkAzE3M=
DUwMDY3NjQEc2VjA3Z0bARzbGsDdmdocARzdGltZQMxNTA2NDQxMjkx" style=3D"text-deco=
ration: none;">Visit Your Group</a></span>

     <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: in=
line;">
                                                    </ul>
  </div>


<div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p=
x; padding: 0 2px 0 0; clear: both;">
  <a href=3D"https://groups.yahoo.com/neo;_ylc=3DX3oDMTJjY3JrYjNyBF9TAzk3ND=
c2NTkwBGdycElkAzQ4ODYyMQRncnBzcElkAzE3MDUwMDY3NjQEc2VjA2Z0cgRzbGsDZ2ZwBHN0a=
W1lAzE1MDY0NDEyOTE-" style=3D"float: left;"><img src=3D"http://l.yimg.com/r=
u/static/images/yg/img/email/new_logo/logo-groups-137x15.png" height=3D"15"=
 width=3D"137" alt=3D"Yahoo! Groups" style=3D"border: 0;"/></a>
  <div style=3D"color: #747575; float: right;"> &bull; <a href=3D"https://i=
nfo.yahoo.com/privacy/us/yahoo/groups/details.html" style=3D"text-decoratio=
n: none;">Privacy</a> &bull; <a href=3D"mailto:wtl-unsubscribe@yahoogroups.=
com?subject=3DUnsubscribe" style=3D"text-decoration: none;">Unsubscribe</a>=
 &bull; <a href=3D"https://info.yahoo.com/legal/us/yahoo/utos/terms/" style=
=3D"text-decoration: none;">Terms of Use</a> </div>
</div>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

=20=20=20


  <br>

<!-- |**|end egp html banner|**| -->


<div style=3D"color: white; clear: both;"/>__,_._,___</div>
</body></html>
------=_NextPart_000_01B4_01D33722.20FA59D0--