<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 18, 2019 at 10:29 AM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 18, 2019 at 8:51 PM Joel Sherrill <<a href="mailto:joel@rtems.org" target="_blank">joel@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 18, 2019 at 9:06 AM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com" target="_blank">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Okay, i read the header file, the functions defined in</div><div dir="ltr"> <a href="https://docs.rtems.org/branches/master/posix-compliance/posix-compliance.html#id396" target="_blank">https://docs.rtems.org/branches/master/posix-compliance/posix-compliance.html#id396</a></div><div>are still missing. </div><div>.<br></div><div>Can they be taken up for SoC project?<br></div></div></blockquote><div><br></div><div>Yep. As I tried to make clear on the other response, the implementation of fenv.h </div><div>is target architecture dependent.</div><div><br></div><div>+ The Cygwin fenv.h is possibly x86 and/or x86_64. It can be moved as appropriate<br></div><div>so the implementation is available to all users of that architecture.</div><div><br></div><div>+ Other architectures like ARM, PowerPC, SPARC, etc will need to be located<br></div><div>and ported to newlib or written. Just a quick search of the net turned up this</div><div>directory from FreeBSD's github which has a number of architectures.</div><div><br></div><div>This by itself is not going to be a full GSoC project but it is a good first ticket to</div><div>tackle in a set of POSIX Compliance tasks.</div></div></div></blockquote><div>So, for now, I have got 1 ticket for POSIX Compilance for SoC.</div><div>As I went through documentation, following methods are also missing from math.h</div><div><ul class="gmail-m_-4789452141428991436gmail-simple"><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">fpclassify()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">isfinite()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">isgreater()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">isgreaterequal()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">isless()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">islessequal()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">islessgreater()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">isnormal()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">isunordered()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">nexttowardf()</span></code></li><li><code class="gmail-m_-4789452141428991436gmail-docutils gmail-m_-4789452141428991436gmail-literal"><span class="gmail-m_-4789452141428991436gmail-pre">signbit()</span></code></li></ul><div><span style="font-family:arial,helvetica,sans-serif"><code><font face="arial,helvetica,sans-serif">Can we add them up for GSoC?</font></code></span></div></div></div></div></blockquote><div><br></div><div>This appears to be the set defined in fenv.h so yes this is one of the tasks under the</div><div>POSIX Compliance umbrella. Remember this one will involve providing implementations</div><div>for multiple architectures and test code.</div><div><br></div><div>--joel </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div><div><span style="font-family:arial,helvetica,sans-serif"><code><font face="arial,helvetica,sans-serif"><br></font></code></span></div><div><span style="font-family:arial,helvetica,sans-serif"><code><font face="arial,helvetica,sans-serif">Thanks</font></code></span></div><div><span style="font-family:arial,helvetica,sans-serif"><code><font face="arial,helvetica,sans-serif">Vaibhav Gupta</font><br></code></span></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div><br></div><div>--joel</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 18, 2019 at 7:19 PM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com" target="_blank">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Ticket no #2971 <a href="https://devel.rtems.org/ticket/2971" target="_blank">https://devel.rtems.org/ticket/2971</a></div><div dir="ltr"><br></div><div>The header file is present in newlib:</div><div><br></div><div><span style="font-family:monospace,monospace">$ find ./ -name \fenv.h<br>./newlib-cygwin/winsup/cygwin/include/fenv.h<br>./newlib-cygwin/newlib/libc/machine/spu/sys/fenv.h<br>./newlib-cygwin/newlib/libc/machine/spu/include/fenv.h<br>./newlib-cygwin/newlib/libc/machine/riscv/sys/fenv.h<br>./newlib-cygwin/newlib/libc/machine/riscv/include/fenv.h</span></div><div><br></div><div><span style="font-family:monospace,monospace">./newlib-cygwin/winsup/cygwin/include/fenv.h</span>   contains full imlementation</div><div>as defined on <a href="http://pubs.opengroup.org/onlinepubs/9699919799/" target="_blank">http://pubs.opengroup.org/onlinepubs/9699919799/</a><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 18, 2019 at 7:04 PM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com" target="_blank">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">Ticket no #3650 <a href="https://devel.rtems.org/ticket/3650" target="_blank">https://devel.rtems.org/ticket/3650</a></div><div dir="ltr"><br></div><div>The header file is present in newlib:</div><div><span style="font-family:monospace,monospace">$ find ./ -name \ipc.h<br>./newlib-cygwin/winsup/cygwin/include/sys/ipc.h<br>./newlib-cygwin/winsup/cygwin/include/cygwin/ipc.h<br>./newlib-cygwin/newlib/libc/sys/phoenix/sys/ipc.h</span><br></div><div>.<br></div><div>and <br></div><div><span style="font-family:monospace,monospace">./newlib-cygwin/winsup/cygwin/include/cygwin/ipc.h</span> contains whole implementation.</div><div>I guess, now we can enable the sys/ipc.h POSIX API Compliance Tests.</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 17, 2019 at 11:03 PM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com" target="_blank">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 17, 2019 at 9:43 PM Joel Sherrill <<a href="mailto:joel@rtems.org" target="_blank">joel@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 16, 2019, 2:49 PM Vaibhav Gupta <<a href="mailto:vaibhavgupta40@gmail.com" target="_blank">vaibhavgupta40@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div><font size="4">Hello,</font></div><div><font size="4">As mentioned by Dr Joel that high priority is to be given to implementations missing in FACE GPP 3.0.</font></div><div><font size="4">So, I have got FACE Technical Standard 3.0 pdf downloaded. And its pretty easy to compare tickets now.</font></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The FACE Technical Standard is a long and sleep inducing read. :)</div><div dir="auto"><br></div><div dir="auto">We have a POSIX Compliance document which tracks RTEMS vs various POSIX profiles. Many standards have POSIX profiles. SCA is for software radios. FACE TS was designed for cockpit software. Use the compliance document for ease:</div><div dir="auto"><br></div><div dir="auto"><a href="https://docs.rtems.org/branches/master/posix-compliance/index.html" target="_blank">https://docs.rtems.org/branches/master/posix-compliance/index.html</a></div></div></blockquote><div>Thanks, I guess this document contains the list of methods that are already supported. I was comparing tickets with FACE to find which all are still in need to be addressed.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">I track compliance against every standard I can find.</div></div></blockquote><div>This is best for RTEMS <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"><br></div><div dir="auto">FYI I have supported the FACE Consortium for a number of years in various roles.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div><font size="4">.</font></div><div><font size="4">And while exploring big picture I got many questions: <br></font></div><div><font size="4"><br></font></div><div><font size="4">1 - It is mentioned in the ticket #2966, <i>"RTEMS POSIX Compliance is achieved via a combination of methods and .h files in RTEMS and the newlib C Library."</i> .</font></div><div><font size="4">So, if a method or a header is present in Newlib C, it is not required to be present in RTEMS library? But that would mean Newlib is directly ported to RTEMS.</font></div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">POSIX includes the entire C Library in its definition. Newlib is our C Library so if the method makes sense to be there, we add it to Newlib. </div><div dir="auto"><br></div><div dir="auto">In general, threading and synchronisation go in RTEMS. But ask for specific methods. It isn't always obvious.</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div><br></div><div> .</div><div><i><font size="1">> I had an off-list talk with Vijay, he proved to be very helpful. I asked him same question (question 1), I would like to conclude what we discussed. <br></font></i></div><div><i><font size="1"><br></font></i></div><div><i><font size="1">> He told that "RTEMS uses its own version of Newlib C as it cannot directly mirror original Newlib as, if methods change the way it works, they can break RTEMS".</font></i></div><div><i><font size="1"><br></font></i></div><div><i><font size="1">> But then my doubt was, if that's the case, <span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">why keep modified headers of original Newlib under separate Newlib C folder in RTEMS? Why not directly include them in RTEMS library? (As I found newlib-1d35a003f.tar.gz in {RTEMS-ROOT}/rsb/rtems/sources/    )<br></span></font></i></div><div><i><font size="1"><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">.</span></font></i></div><div><i><font size="1"><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">> To which he replied,  </span></font><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3gr.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">"RTEMS version of newlib is being used as a libraby of RTEMS only </span><font size="1"><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr"></span></font><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3gq.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">and the posix functions are being linked to this newlib"</span></i></div><div><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">.</span></div><div><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr"><font size="4">2- So, My second doubt is that our target is to contribute to Newlib C or RTEMS Library? Or we will add methods to Newlib C and link them to RTEMS?</font><br></span></div><div><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr"><br></span></div><div><font size="4"><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr">Thanks</span></font></div><div><span id="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-:3h4.co" class="gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-tL8wMe gmail-m_-4789452141428991436gmail-m_-667460178561905975gmail-m_-4075990675995056847gmail-m_-7998296429345650512gmail-m_3488726652205170709gmail-m_-2792599017271387077gmail-m_5988237065134495621m_-4299159201671276824gmail-EMoHub" style="text-align:left" dir="ltr"><font size="4">Vaibhav Gupta</font><br></span></div></div></div>
</blockquote></div></div></div>
</blockquote></div></div>
</blockquote></div>
</blockquote></div>
</blockquote></div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>