<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri",sans-serif;}
span.EmailStyle20
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle21
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle22
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle23
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle24
{mso-style-type:personal;
font-family:"Calibri",sans-serif;}
span.EmailStyle25
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle26
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-CA" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hi Mingyuan,<o:p></o:p></p>
<p class="MsoNormal">No, the change is not planned to be completed by that time, in fact, it has a dependency on it being the default deployment model.<o:p></o:p></p>
<p class="MsoNormal">I just wanted to make sure you were aware of the impending changes that can have an impact on your Story.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards, Matt<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">"Qi, Mingyuan" <mingyuan.qi@intel.com><br>
<b>Date: </b>Wednesday, January 16, 2019 at 3:50 AM<br>
<b>To: </b>"Peters, Matt" <Matt.Peters@windriver.com>, Barton Wensley <Barton.Wensley@windriver.com>, "Miller, Frank" <Frank.Miller@windriver.com>, "Kung, John" <John.Kung@windriver.com><br>
<b>Cc: </b>Chris Friesen <Chris.Friesen@windriver.com>, "Church, Robert" <Robert.Church@windriver.com>, Brent Rowsell <Brent.Rowsell@windriver.com>, "Xie, Cindy" <cindy.xie@intel.com>, "Penney, Don" <Don.Penney@windriver.com>, "starlingx-discuss@lists.starlingx.io"
<starlingx-discuss@lists.starlingx.io>, "Ngo, Tee" <Tee.Ngo@windriver.com><br>
<b>Subject: </b>RE: Approach for SB 2004710 support to access docker images via proxy?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D">Matt,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Is this change planned to be finished before container cutover?</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Mingyuan</span><o:p></o:p></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><a name="_____replyseparator"></a><b>From:</b> Peters, Matt [mailto:Matt.Peters@windriver.com]
<br>
<b>Sent:</b> Tuesday, January 15, 2019 22:17<br>
<b>To:</b> Qi, Mingyuan <mingyuan.qi@intel.com>; Wensley, Barton <Barton.Wensley@windriver.com>; Miller, Frank <Frank.Miller@windriver.com>; Kung, John <John.Kung@windriver.com><br>
<b>Cc:</b> Friesen, Chris <Chris.Friesen@windriver.com>; Church, Robert <Robert.Church@windriver.com>; Rowsell, Brent <Brent.Rowsell@windriver.com>; Xie, Cindy <cindy.xie@intel.com>; Penney, Don <Don.Penney@windriver.com>; starlingx-discuss@lists.starlingx.io;
Ngo, Tee <Tee.Ngo@windriver.com><br>
<b>Subject:</b> Re: Approach for SB 2004710 support to access docker images via proxy?<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal">I also wanted to bring to your attention the following spec and storyboard. These outline changes forthcoming for replacing config_controller. Therefore, any changes that are introduce for config_controller should consider the impacts
to this development.<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><a href="https://review.openstack.org/#/c/629581/">https://review.openstack.org/#/c/629581/</a><o:p></o:p></p>
<p class="MsoNormal"><a href="https://storyboard.openstack.org/#!/story/2004695">https://storyboard.openstack.org/#!/story/2004695</a><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">"Qi, Mingyuan" <<a href="mailto:mingyuan.qi@intel.com">mingyuan.qi@intel.com</a>><br>
<b>Date: </b>Monday, January 14, 2019 at 9:29 PM<br>
<b>To: </b>Barton Wensley <<a href="mailto:Barton.Wensley@windriver.com">Barton.Wensley@windriver.com</a>>, "Miller, Frank" <<a href="mailto:Frank.Miller@windriver.com">Frank.Miller@windriver.com</a>>, "Kung, John" <<a href="mailto:John.Kung@windriver.com">John.Kung@windriver.com</a>><br>
<b>Cc: </b>Chris Friesen <<a href="mailto:Chris.Friesen@windriver.com">Chris.Friesen@windriver.com</a>>, "Church, Robert" <<a href="mailto:Robert.Church@windriver.com">Robert.Church@windriver.com</a>>, Brent Rowsell <<a href="mailto:Brent.Rowsell@windriver.com">Brent.Rowsell@windriver.com</a>>,
"Xie, Cindy" <<a href="mailto:cindy.xie@intel.com">cindy.xie@intel.com</a>>, "Penney, Don" <<a href="mailto:Don.Penney@windriver.com">Don.Penney@windriver.com</a>>, "Peters, Matt" <<a href="mailto:Matt.Peters@windriver.com">Matt.Peters@windriver.com</a>><br>
<b>Subject: </b>RE: Approach for SB 2004710 support to access docker images via proxy?</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D">Thanks Bart, I agree with the proxy part. As for alternate docker registry I have different thinking.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">The additional docker registry(or called registry mirror) is to accelerate docker image pulling from internet, not only for openstack-helm, but also for k8s/armada image. It’s slightly different from local docker
registry (say controller_address:9001) while local registry is more like a cache for controller after pulling. If the registry mirror is needed for k8s/armada, it has to be set in config_controller as well. Meanwhile the registry mirror address may be in no_proxy
if it’s host is within the same LAN as controller. </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">For the proxy SB, once which table is confirmed to store proxy info, I will finish the code for review.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Mingyuan</span><o:p></o:p></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>From:</b> Wensley, Barton [<a href="mailto:Barton.Wensley@windriver.com">mailto:Barton.Wensley@windriver.com</a>]
<br>
<b>Sent:</b> Tuesday, January 15, 2019 4:58<br>
<b>To:</b> Miller, Frank <<a href="mailto:Frank.Miller@windriver.com">Frank.Miller@windriver.com</a>>; Qi, Mingyuan <<a href="mailto:mingyuan.qi@intel.com">mingyuan.qi@intel.com</a>>; Kung, John <<a href="mailto:John.Kung@windriver.com">John.Kung@windriver.com</a>><br>
<b>Cc:</b> Friesen, Chris <<a href="mailto:Chris.Friesen@windriver.com">Chris.Friesen@windriver.com</a>>; Church, Robert <<a href="mailto:Robert.Church@windriver.com">Robert.Church@windriver.com</a>>; Rowsell, Brent <<a href="mailto:Brent.Rowsell@windriver.com">Brent.Rowsell@windriver.com</a>>;
Xie, Cindy <<a href="mailto:cindy.xie@intel.com">cindy.xie@intel.com</a>>; Penney, Don <<a href="mailto:Don.Penney@windriver.com">Don.Penney@windriver.com</a>>; Peters, Matt <<a href="mailto:Matt.Peters@windriver.com">Matt.Peters@windriver.com</a>><br>
<b>Subject:</b> RE: Approach for SB 2004710 support to access docker images via proxy?<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Mingyuan,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">As far as the input of the new configuration goes, we typically only add configuration questions to config_controller if the data is required for the execution of config_controller. In your case, I expect the
proxy configuration would be required by config_controller (in order to download the kubernetes images), but the alternate docker registry wouldn’t be required until the stx-openstack application was required.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">So for the proxy configuration, we would probably add a new set of questions something like this:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif;color:#1F497D">Kubernetes Configuration:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif;color:#1F497D">-------------------------</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif;color:#1F497D">Configure http proxy [y/N]: y</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif;color:#1F497D">HTTP proxy URL:
<a href="http://proxy.example.com:80">http://proxy.example.com:80</a></span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif;color:#1F497D">HTTPS proxy URL:
<a href="https://proxy.example.com:443">https://proxy.example.com:443</a></span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New",serif;color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">I suspect that the NO_PROXY for the service config file can be calculated ourselves - I assume it will just have the IP of our internal docker registry?</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">The http proxy config would be system wide configuration value, so it wouldn’t belong in the host table. John Kung or Matt Peters can comment on which sysinv table you should use. The configuration of the http-proxy.conf
file can be done in the docker.pp manifest as you suggested below. This needs to be done on both controllers.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">You need input from Bob Church for the configuration of the alternate docker registry. I think the registry is currently hardcoded in sysinv. I suspect we will want a new sysinv command to specify the new docker
registry, but Bob or John should comment on that.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Bart</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif"> Miller, Frank
<br>
<b>Sent:</b> January 14, 2019 2:36 PM<br>
<b>To:</b> Qi, Mingyuan<br>
<b>Cc:</b> Friesen, Chris; Wensley, Barton; Church, Robert; Rowsell, Brent; Xie, Cindy; Penney, Don<br>
<b>Subject:</b> RE: Approach for SB 2004710 support to access docker images via proxy?</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks for the update Mingyuan.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Bart are you able to provide your suggestions to Mingyuan on the best approach for this?</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Frank</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>From:</b> Qi, Mingyuan [<a href="mailto:mingyuan.qi@intel.com">mailto:mingyuan.qi@intel.com</a>]
<br>
<b>Sent:</b> Monday, January 14, 2019 2:38 AM<br>
<b>To:</b> Miller, Frank<br>
<b>Cc:</b> Friesen, Chris; Wensley, Barton; Church, Robert; Rowsell, Brent; Xie, Cindy<br>
<b>Subject:</b> RE: Approach for SB 2004710 support to access docker images via proxy?<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Frank,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks for your note, I was just wondering how wide I should send my I thoughts for review.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Last week, I tried 2 approaches to implement proxy:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">First one is following the complete mechanism of config_controller</span><o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="font-family:Symbol;color:#1F497D">·</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:#1F497D">
</span><span style="color:#1F497D">collect proxy info in input_config() and treat them as host values.</span><o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="font-family:Symbol;color:#1F497D">·</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:#1F497D">
</span><span style="color:#1F497D">add 3 attributes(http_proxy, https_proxy, no_proxy) to ihost of sysinv/cgts-client.</span><o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="font-family:Symbol;color:#1F497D">·</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:#1F497D">
</span><span style="color:#1F497D">accordingly add 3 fields in sysinv host api/object/db.</span><o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="font-family:Symbol;color:#1F497D">·</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:#1F497D">
</span><span style="color:#1F497D">add 3 params to docker puppet class and update them during pupput platform yaml file generation.</span><o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="font-family:Symbol;color:#1F497D">·</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:#1F497D">
</span><span style="color:#1F497D">apply docker.pp to create http-proxy.conf with user input proxy info.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">One questions about this approach:</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Is ihost the suitable table for proxy info? Most likely the first controller is the only one node that docker needs proxy to access internet on, is this info redundant for each host?</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Or an alternative one without adding proxy info to sysinv db is better? I did a trail but introduced a shortcut mechanism in config_controller:</span><o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="font-family:Symbol;color:#1F497D">·</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:#1F497D">
</span><span style="color:#1F497D">collect proxy info in input_config() as well</span><o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="font-family:Symbol;color:#1F497D">·</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:#1F497D">
</span><span style="color:#1F497D">a utility script to add proxy info to host yaml after host puppet config creation finished.</span><o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-18.0pt"><span style="font-family:Symbol;color:#1F497D">·</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:#1F497D">
</span><span style="color:#1F497D">Same as the previous approach to apply docker puppet manifest</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Same situation as the docker registry mirror, they could be done as the same approach. Really appreciate your comments.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="color:#1F497D">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Mingyuan</span><o:p></o:p></p>
</div>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b>From:</b> Miller, Frank [<a href="mailto:Frank.Miller@windriver.com">mailto:Frank.Miller@windriver.com</a>]
<br>
<b>Sent:</b> Monday, January 14, 2019 6:36<br>
<b>To:</b> Qi, Mingyuan <<a href="mailto:mingyuan.qi@intel.com">mingyuan.qi@intel.com</a>><br>
<b>Cc:</b> Friesen, Chris <<a href="mailto:Chris.Friesen@windriver.com">Chris.Friesen@windriver.com</a>>; Wensley, Barton <<a href="mailto:Barton.Wensley@windriver.com">Barton.Wensley@windriver.com</a>>; Church, Robert <<a href="mailto:Robert.Church@windriver.com">Robert.Church@windriver.com</a>>;
Rowsell, Brent <<a href="mailto:Brent.Rowsell@windriver.com">Brent.Rowsell@windriver.com</a>>; Xie, Cindy <<a href="mailto:cindy.xie@intel.com">cindy.xie@intel.com</a>><br>
<b>Subject:</b> Approach for SB 2004710 support to access docker images via proxy?<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Mingyuan:<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Thank-you for taking this on. Can you describe the code changes that you think are needed for adding support to access docker images via a proxy? I’ve cc’d a few senior designers who can help you if required and provide initial feedback
to you before you get too far into any implementation and post a gerrit review.
<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Frank<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#333333"> </span><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</body>
</html>