Read failing with minicom

nidhi.puri@wipro.com nidhi.puri@wipro.com
Tue, 26 Apr 2005 20:32:27 +0530


This is a multi-part message in MIME format.

------_=_NextPart_001_01C54A71.595099DC
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable


Hi
=0D
I am working on USB Serial converter driver.=0D
The minimal read/write tests are working fine. I am able to read/write
using Kermit.
But the read for Minicom fails the first time after reboot.
=0D
Test set up is as follows ( OS Linux Enterprise Edition - Update 4)
 ----------------------------------------------------------------------
=0D
 Linux host with a USB-Serial device(ttyUSB0) ----> Null Modem Cable
 --->ttyS0 of the other Linux PC=0D
=0D
 To test read flow - type on ttyS0  and characters should echo on
ttyUSB0
=0D
       =0D
=0D
 The scenario is that with Minicom only on (dev/ttyUSB0) I am
 unable to read the first time on every reboot.=0D
 With Kermit it works :)=0D
=0D
 For Minicom , from the logs I am able to see my read_call_back gets
 called and the code inserting characters in flip-buffer gets traversed.
 tty_insert_flip_char(tty, data[i], 0); ---> I use the tty flags as 0
i.e
 TTY_NORMAL for all cases . Would this be wrong.
=0D
 However after read fails and I send a file from minicom on
ttyUSB0(Write is working fine)  to
 ttyS0 on other end .Then again try write from ttyS0 I get the
characters
 echoed on ttyUSB0( i.e read starts working as normal)
=0D
Whats wrong? Whether its related to USB core or the device ?
I just wanted to know what all does minicom do in the initialization
process.=0D
And does it wait for any receive buffer 80% full event to send out a
read command=0D
( Windows Hyperterm works that way!)
=0D
Regards
Nidhi
=0D
=0D
=0D




Confidentiality Notice=0D

The information contained in this electronic message and any attachments to=
 this message are intended
for the exclusive use of the addressee(s) and may contain confidential or=
 privileged information. If
you are not the intended recipient, please notify the sender at Wipro or=
 Mailadmin@wipro.com immediately
and destroy all copies of this message and any attachments.
------_=_NextPart_001_01C54A71.595099DC
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=
=3D"urn:schemas-microsoft-com:office:word" xmlns=
=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=
=3Dus-ascii">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 11">
<meta name=3DOriginator content=3D"Microsoft Word 11">
<link rel=3DFile-List href=3D"cid:filelist.xml@01C54A9F.0FC19ED0">
<!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:RelyOnVML/>
  <o:AllowPNG/>
  <o:DoNotRelyOnCSS/>
 </o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:DisplayBackgroundShape/>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:DocumentKind>DocumentEmail</w:DocumentKind>
  <w:EnvelopeVis/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:UseWord2002TableStyleRules/>
  </w:Compatibility>
 </w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState=3D"false" LatentStyleCount=3D"156">
 </w:LatentStyles>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Courier;
	panose-1:2 7 4 9 2 2 5 2 4 4;
	mso-font-alt:"Courier New";
	mso-font-charset:0;
	mso-generic-font-family:modern;
	mso-font-format:other;
	mso-font-pitch:fixed;
	mso-font-signature:3 0 0 0 1 0;}
@font-face
	{font-family:"Bookman Old Style";
	panose-1:2 5 6 4 5 5 5 2 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:647 0 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
pre
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:Courier;
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:"Courier New";
	color:black;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	mso-style-noshow:yes;
	mso-ansi-font-size:9.0pt;
	mso-bidi-font-size:9.0pt;
	font-family:"Bookman Old Style";
	mso-ascii-font-family:"Bookman Old Style";
	mso-hansi-font-family:"Bookman Old Style";
	color:teal;
	font-weight:normal;
	font-style:normal;
	text-decoration:none;
	text-underline:none;
	text-decoration:none;
	text-line-through:none;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */=0D
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	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:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple style=3D'tab-interval:.5in'>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 color=3Dteal face=3D"Courier New"><span
style=3D'font-size:10.0pt;font-family:"Courier=
 New";color:teal'>Hi<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dteal face=3D"Courier New"><span
style=3D'font-size:10.0pt;font-family:"Courier=
 New";color:teal'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span style=
=3D'font-size:10.0pt;
font-family:"Courier New"'>I am working on USB Serial converter driver.=
 <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span style=
=3D'font-size:10.0pt;
font-family:"Courier New"'>The minimal read/write tests are working fine. I=
 am
able to read/write using Kermit.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span style=
=3D'font-size:10.0pt;
font-family:"Courier New"'>But the read for <span class=
=3DSpellE>Minicom</span>
fails the first time after reboot.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span style=
=3D'font-size:10.0pt;
font-family:"Courier New"'><o:p>&nbsp;</o:p></span></font></p>

<pre><font size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;
font-family:"Courier New"'>Test set up is as follows <span class=3DGramE>(=
 OS</span> Linux Enterprise Edition - Update=
 4)<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New"'>=
 ----------------------------------------------------------------------<o:p=
></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New"'> <o:p></o:p></span></font></pre><pre><font size=3D2 color=
=3Dblack
face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier=
 New"'><span style=3D'mso-spacerun:yes'>&nbsp;</span>Linux host with a=
 USB-Serial <span
class=3DGramE>device(</span>ttyUSB0) ----&gt; Null Modem=
 Cable<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New"'> ---&gt;ttyS0 of the other Linux PC=
 <o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New"'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span><o:p></o:p></span></font></pre><pre><fon=
t
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New"'><span style=3D'mso-spacerun:yes'>&nbsp;</span>To test read=
 flow - type on <span
class=3DGramE>ttyS0<span style=3D'mso-spacerun:yes'>&nbsp;=
 </span>and</span> characters should echo on=
 ttyUSB0<o:p></o:p></span></font></pre><pre><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New"'> <o:p></o:p></span></font></pre><pre><font size=3D2 color=
=3Dblack
face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier=
 New"'><span style=
=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</spa=
n><o:p></o:p></span></font></pre>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span>The scenario
is that with <span class=3DSpellE>Minicom</span> only on (dev/ttyUSB0) I=
 am<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span><span
class=3DGramE>unable</span> to read the first time on every reboot.=
 <o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span>With Kermit
it works :) <o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span>For <span
class=3DSpellE><span class=3DGramE>Minicom</span></span><span class=
=3DGramE> ,</span>
from the logs I am able to see my <span class=
=3DSpellE>read_call_back</span> gets<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span><span
class=3DGramE>called</span> and the code inserting characters in=
 flip-buffer gets
traversed.<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span><span
class=3DSpellE>tty_insert_flip_<span class=3DGramE>char</span></span><span
class=3DGramE>(</span><span class=3DSpellE>tty</span>, data[<span class=
=3DSpellE>i</span>],
0); ---&gt; I use the <span class=3DSpellE>tty</span> flags as 0 <span
class=3DSpellE>i.e</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span>TTY_NORMAL
for all <span class=3DGramE>cases .</span> Would this be <span class=
=3DGramE>wrong.</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span>However after
read fails and I send a file from <span class=3DSpellE>minicom</span> on=
 <span
class=3DGramE>ttyUSB0(</span>Write is working fine) <span
style=3D'mso-spacerun:yes'>&nbsp;</span>to<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span><span
class=3DGramE>ttyS0</span> on other end .Then again try write from ttyS0 I=
 get
the characters<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span><span
class=3DGramE>echoed</span> on ttyUSB0( <span class=3DSpellE>i.e</span>=
 read starts
working as normal)<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><span style=
=3D'mso-spacerun:yes'>&nbsp;</span><o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><span
class=3DSpellE><font size=3D2 color=3Dblack face=3D"Courier New"><span
style=3D'font-size:10.0pt;font-family:"Courier=
 New";color:black'>Whats</span></font></span><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'> wrong?</span></font><font size=3D2 face=
=3D"Courier New"><span
style=3D'font-size:10.0pt;font-family:"Courier New"'> Whether its related=
 to USB
core or the <span class=3DGramE>device ?</span><font color=3Dblack><span
style=3D'color:black'><o:p></o:p></span></font></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'>I just wanted to know what all does <span
class=3DSpellE>minicom</span> <span class=3DGramE>do</span> in the=
 initialization
process. <o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'>And does it wait for any receive buffer 80% full
event to send out a read command <o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><span
class=3DGramE><font size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:
10.0pt;font-family:"Courier New";color:black'>(=
 Windows</span></font></span><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'> <span class=3DSpellE>Hyperterm</span> works=
 that
way!)<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'>Regards<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'>Nidhi<o:p></o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal style=3D'tab-stops:45.8pt 91.6pt 137.4pt 183.2pt=
 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt=
 641.2pt 687.0pt 732.8pt'><font
size=3D2 color=3Dblack face=3D"Courier New"><span style=
=3D'font-size:10.0pt;font-family:
"Courier New";color:black'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dblack face=3D"Courier=
 New"><span
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'><span
style=3D'mso-spacerun:yes'>&nbsp;</span></span></font><font size=3D2 color=
=3Dteal
face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier=
 New";
color:teal'><o:p></o:p></span></font></p>

</div>

</body>

</html>

<table><tr><td bgcolor=3D#ffffff><font color=3D#000000><br>
<br>
Confidentiality Notice <br>
<br>
The information contained in this electronic message and any attachments to=
 this message are intended<br>
for the exclusive use of the addressee(s) and may contain confidential or=
 privileged information. If<br>
you are not the intended recipient, please notify the sender at Wipro or=
 Mailadmin@wipro.com immediately<br>
and destroy all copies of this message and any attachments.<br>
</font></td></tr></table>
------_=_NextPart_001_01C54A71.595099DC--