<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Thanks Florent. Now visible at <a
        href="https://bugs.openjdk.java.net/browse/JDK-8230297">https://bugs.openjdk.java.net/browse/JDK-8230297</a></p>
    <p>regards,<br>
      Sean.<br>
    </p>
    <div class="moz-cite-prefix">On 27/08/2019 20:04, Florent Guillaume
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAF-4BpMd3g+XFmaLc_OB-sKufzK0fsuPR-KTewg-hpn-j-DbGA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div dir="ltr">I'm not an Author so I created the ticket on <a
              href="http://bugreport.java.com" moz-do-not-send="true">bugreport.java.com</a>,
            it has the internal review ID 9062061</div>
          <div dir="ltr"><br>
          </div>
          <div>Thanks,</div>
          <div>Florent</div>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Tue, Aug 27, 2019 at 6:04
          PM Seán Coffey <<a href="mailto:sean.coffey@oracle.com"
            moz-do-not-send="true">sean.coffey@oracle.com</a>> wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
          <div bgcolor="#FFFFFF">
            <p>Probably best to log a bug to capture this issue. <br>
            </p>
            <p>It reminds me of another issue I've been meaning to wrap
              up:<br>
              <a
                class="gmail-m_-3007434805093952975moz-txt-link-freetext"
                href="https://bugs.openjdk.java.net/browse/JDK-8223260"
                target="_blank" moz-do-not-send="true">https://bugs.openjdk.java.net/browse/JDK-8223260</a></p>
            <p>Similar scenario in how the ContextFactory is searched
              for. My proposed<br>
              patch is to cache a factory per classloader (for the
              NamingManager issue at least)<br>
              <br>
              regards,<br>
              Sean.<br>
            </p>
            <div class="gmail-m_-3007434805093952975moz-cite-prefix">On
              27/08/2019 16:16, Florent Guillaume wrote:<br>
            </div>
            <blockquote type="cite">
              <div dir="ltr">
                <div dir="ltr">
                  <div dir="ltr">
                    <div dir="ltr">
                      <div dir="ltr">
                        <div dir="ltr">
                          <div dir="ltr">
                            <div dir="ltr">
                              <div dir="ltr">Hi,
                                <div><br>
                                </div>
                                <div>When switching from Java 8 to Java
                                  11, we're experiencing an important
                                  slowdown when executing
                                  LoginContext.login(), especially under
                                  concurrency.</div>
                                <div><br>
                                </div>
                                <div>We tracked this down to JDK-8047789
                                  which changed the way the lookup of
                                  LoginModules is done in
                                  LoginContext.invoke. Previously, it
                                  was a simple Class.forName that is of
                                  course extremely optimized.
                                  After JDK-8047789, there is first a
                                  ServiceLoader-based lookup for the
                                  class. This lookup doesn't seem to be
                                  cached. In our case, it has to open
                                  the 400+ JARs in our classpath (we're
                                  not using modules yet) to check the
                                  content
                                  of META-INF/services/javax.security.auth.spi.LoginModule,
                                  and in addition this hits a
                                  synchronized block in ZipFile.getEntry
                                  which prevents any performance under
                                  concurrency.</div>
                                <div><br>
                                </div>
                                <div>Is there anything we can do to
                                  improve LoginContext.login() in this
                                  context?</div>
                                <div><br>
                                </div>
                                <div>For reference, the code path to the
                                  synchronized block:</div>
                                <div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.util.zip.ZipFile.getEntry(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/ZipFile.java:346" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/ZipFile.java:346</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>-
                                    locked <0x000000068b18bdd0> (a
                                    java.util.jar.JarFile)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.util.zip.ZipFile$1.getEntry(<a
class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
                                      href="mailto:java.base@11.0.4/ZipFile.java:1121"
                                      target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/ZipFile.java:1121</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.util.jar.JarFile.getEntry0(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/JarFile.java:576" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/JarFile.java:576</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.util.jar.JarFile.getEntry(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/JarFile.java:506" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/JarFile.java:506</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.util.jar.JarFile.getJarEntry(<a
class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
                                      href="mailto:java.base@11.0.4/JarFile.java:468"
                                      target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/JarFile.java:468</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
jdk.internal.loader.URLClassPath$JarLoader.getResource(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/URLClassPath.java:929" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/URLClassPath.java:929</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
jdk.internal.loader.URLClassPath$JarLoader.findResource(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/URLClassPath.java:912" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/URLClassPath.java:912</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
jdk.internal.loader.URLClassPath$1.next(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/URLClassPath.java:341" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/URLClassPath.java:341</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
jdk.internal.loader.URLClassPath$1.hasMoreElements(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/URLClassPath.java:351" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/URLClassPath.java:351</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.net.URLClassLoader$3$1.run(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/URLClassLoader.java:687" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/URLClassLoader.java:687</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.net.URLClassLoader$3$1.run(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/URLClassLoader.java:685" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/URLClassLoader.java:685</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
java.security.AccessController.doPrivileged(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/Native" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/Native</a>
                                    Method)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.net.URLClassLoader$3.next(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/URLClassLoader.java:684" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/URLClassLoader.java:684</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
java.net.URLClassLoader$3.hasMoreElements(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/URLClassLoader.java:709" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/URLClassLoader.java:709</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.lang.CompoundEnumeration.next(<a
class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
                                      href="mailto:java.base@11.0.4/ClassLoader.java:3022"
                                      target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/ClassLoader.java:3022</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
java.lang.CompoundEnumeration.hasMoreElements(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/ClassLoader.java:3031" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/ClassLoader.java:3031</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.inc(WebappClassLoaderBase.java:2670)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
org.apache.catalina.loader.WebappClassLoaderBase$CombinedEnumeration.hasMoreElements(WebappClassLoaderBase.java:2655)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(<a
class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
                                      href="mailto:java.base@11.0.4/ServiceLoader.java:1202"
                                      target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/ServiceLoader.java:1202</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/ServiceLoader.java:1220" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/ServiceLoader.java:1220</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/ServiceLoader.java:1264" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/ServiceLoader.java:1264</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.util.ServiceLoader$2.hasNext(<a
class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
                                      href="mailto:java.base@11.0.4/ServiceLoader.java:1299"
                                      target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/ServiceLoader.java:1299</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
                                    java.util.ServiceLoader$3.hasNext(<a
class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
                                      href="mailto:java.base@11.0.4/ServiceLoader.java:1384"
                                      target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/ServiceLoader.java:1384</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
javax.security.auth.login.LoginContext.invoke(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/LoginContext.java:691" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/LoginContext.java:691</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
javax.security.auth.login.LoginContext$4.run(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/LoginContext.java:665" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/LoginContext.java:665</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
javax.security.auth.login.LoginContext$4.run(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/LoginContext.java:663" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/LoginContext.java:663</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
java.security.AccessController.doPrivileged(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/Native" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/Native</a>
                                    Method)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
javax.security.auth.login.LoginContext.invokePriv(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/LoginContext.java:663" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/LoginContext.java:663</a>)</div>
                                  <div><span class="gmail-m_-3007434805093952975gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>at
javax.security.auth.login.LoginContext.login(<a
                                      class="gmail-m_-3007434805093952975moz-txt-link-abbreviated"
href="mailto:java.base@11.0.4/LoginContext.java:574" target="_blank"
                                      moz-do-not-send="true">java.base@11.0.4/LoginContext.java:574</a>)</div>
                                </div>
                                <div><br>
                                </div>
                                <div>Thanks,</div>
                                <div><br>
                                </div>
                                <div>Florent<br clear="all">
                                  <div><br>
                                  </div>
                                  -- <br>
                                  <div dir="ltr"
                                    class="gmail-m_-3007434805093952975gmail_signature">
                                    <div dir="ltr">
                                      <div>
                                        <div dir="ltr">
                                          <table
style="color:rgb(10,10,10);font-family:Arial,Helvetica,sans-serif;font-size:12px;border-collapse:collapse;border-spacing:0px;padding:0px;vertical-align:top;width:600px">
                                            <tbody>
                                              <tr
                                                style="padding:0px;vertical-align:top">
                                                <td
style="font-family:Arial,Helvetica,sans-serif;line-height:1.33;padding:0px;vertical-align:top;word-wrap:break-word;width:38px;border-collapse:collapse"><a
href="https://www.nuxeo.com/"
style="background-color:transparent;border-bottom-width:0px;color:rgb(0,102,255);line-height:1.33;margin:0px;padding:0px"
                                                    target="_blank"
                                                    moz-do-not-send="true"><img
                                                      alt="Nuxeo Logo"
                                                      style="border:
                                                      none; display:
                                                      block;
                                                      vertical-align:
                                                      middle; max-width:
                                                      100%; height:
                                                      32px; clear: both;
                                                      margin-top: 4px;
                                                      outline: 0px;
                                                      text-decoration:
                                                      none; width:
                                                      32px;"
                                                      moz-do-not-send="true"
                                                      width="32"
                                                      height="32"></a></td>
                                                <td
style="font-family:Arial,Helvetica,sans-serif;line-height:1.33;padding:0px;vertical-align:top;word-wrap:break-word;border-collapse:collapse">
                                                  <p
style="font-size:15px;line-height:1.33;color:rgb(31,40,191);margin:0px;padding:0px"><span
style="font-weight:700">Florent Guillaume</span>  Head of R&D  <a
                                                      href="https://www.linkedin.com/in/fguillaume/"
style="background-color:transparent;border-bottom-width:0px;color:inherit"
                                                      target="_blank"
                                                      moz-do-not-send="true"><img
                                                        alt="LinkedIn"
                                                        style="border-style:
                                                        none; display:
                                                        inline-block;
                                                        vertical-align:
                                                        middle;
                                                        max-width: 100%;
                                                        height: auto;"
                                                        moz-do-not-send="true"
                                                        width="14"
                                                        height="14"></a> <a
href="https://twitter.com/efge"
style="background-color:transparent;border-bottom-width:0px;color:inherit"
                                                      target="_blank"
                                                      moz-do-not-send="true"><img
                                                        alt="Twitter"
                                                        style="border-style:
                                                        none; display:
                                                        inline-block;
                                                        vertical-align:
                                                        middle;
                                                        max-width: 100%;
                                                        height: auto;"
                                                        moz-do-not-send="true"
                                                        width="14"
                                                        height="14"></a> <a
href="https://github.com/efge"
style="background-color:transparent;border-bottom-width:0px;color:inherit"
                                                      target="_blank"
                                                      moz-do-not-send="true"><img
                                                        alt="Github"
                                                        style="border-style:
                                                        none; display:
                                                        inline-block;
                                                        vertical-align:
                                                        middle;
                                                        max-width: 100%;
                                                        height: auto;"
                                                        moz-do-not-send="true"
                                                        width="14"
                                                        height="14"></a></p>
                                                  <p
style="font-weight:700;font-size:15px;line-height:1.33;color:rgb(0,102,255);margin:0px
                                                    0px
                                                    10px;padding:0px">Nuxeo
                                                    Content Services
                                                    Platform. <span
                                                      style="color:rgb(31,40,191)">Stay
                                                      ahead.</span></p>
                                                </td>
                                              </tr>
                                            </tbody>
                                          </table>
                                        </div>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </blockquote>
          </div>
        </blockquote>
      </div>
      <br clear="all">
      <div><br>
      </div>
      -- <br>
      <div dir="ltr" class="gmail_signature">
        <div dir="ltr">
          <div>
            <div dir="ltr">
              <table
style="color:rgb(10,10,10);font-family:Arial,Helvetica,sans-serif;font-size:12px;border-collapse:collapse;border-spacing:0px;padding:0px;vertical-align:top;width:600px">
                <tbody>
                  <tr style="padding:0px;vertical-align:top">
                    <td
style="font-family:Arial,Helvetica,sans-serif;line-height:1.33;padding:0px;vertical-align:top;word-wrap:break-word;width:38px;border-collapse:collapse"><a
                        href="https://www.nuxeo.com/"
style="background-color:transparent;border-bottom-width:0px;color:rgb(0,102,255);line-height:1.33;margin:0px;padding:0px"
                        target="_blank" moz-do-not-send="true"><img
src="http://res.cloudinary.com/nuxeo/image/upload/c_scale,w_64/nuxeo-logo-x.png"
                          alt="Nuxeo Logo" style="border: none; display:
                          block; vertical-align: middle; max-width:
                          100%; height: 32px; clear: both; margin-top:
                          4px; outline: 0px; text-decoration: none;
                          width: 32px;" moz-do-not-send="true"
                          width="32" height="32"></a></td>
                    <td
style="font-family:Arial,Helvetica,sans-serif;line-height:1.33;padding:0px;vertical-align:top;word-wrap:break-word;border-collapse:collapse">
                      <p
style="font-size:15px;line-height:1.33;color:rgb(31,40,191);margin:0px;padding:0px"><span
                          style="font-weight:700">Florent Guillaume</span> 
                        Head of R&D  <a
                          href="https://www.linkedin.com/in/fguillaume/"
style="background-color:transparent;border-bottom-width:0px;color:inherit"
                          target="_blank" moz-do-not-send="true"><img
src="http://res.cloudinary.com/nuxeo/image/upload/c_scale,w_28/static/linkedin.png"
                            alt="LinkedIn" style="border-style: none;
                            display: inline-block; vertical-align:
                            middle; max-width: 100%; height: auto;"
                            moz-do-not-send="true" width="14"
                            height="14"></a> <a
                          href="https://twitter.com/efge"
style="background-color:transparent;border-bottom-width:0px;color:inherit"
                          target="_blank" moz-do-not-send="true"><img
src="http://res.cloudinary.com/nuxeo/image/upload/c_scale,w_28/static/twitter.png"
                            alt="Twitter" style="border-style: none;
                            display: inline-block; vertical-align:
                            middle; max-width: 100%; height: auto;"
                            moz-do-not-send="true" width="14"
                            height="14"></a> <a
                          href="https://github.com/efge"
style="background-color:transparent;border-bottom-width:0px;color:inherit"
                          target="_blank" moz-do-not-send="true"><img
src="http://res.cloudinary.com/nuxeo/image/upload/c_scale,w_28/static/github.png"
                            alt="Github" style="border-style: none;
                            display: inline-block; vertical-align:
                            middle; max-width: 100%; height: auto;"
                            moz-do-not-send="true" width="14"
                            height="14"></a></p>
                      <p
style="font-weight:700;font-size:15px;line-height:1.33;color:rgb(0,102,255);margin:0px
                        0px 10px;padding:0px">Nuxeo Content Services
                        Platform. <span style="color:rgb(31,40,191)">Stay
                          ahead.</span></p>
                    </td>
                  </tr>
                </tbody>
              </table>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
  </body>
</html>