升级Tomcat版本 apache-tomcat-7.0.77
diff --git a/tomcat-uidm/webapps/manager/META-INF/context.xml b/tomcat-uidm/webapps/manager/META-INF/context.xml
index 33ecf23..7afc3a8 100644
--- a/tomcat-uidm/webapps/manager/META-INF/context.xml
+++ b/tomcat-uidm/webapps/manager/META-INF/context.xml
@@ -15,7 +15,7 @@
   See the License for the specific language governing permissions and

   limitations under the License.

 -->

-<Context antiResourceLocking="false" privileged="true" useHttpOnly="true" >

+<Context antiResourceLocking="false" privileged="true" >

   <!--

     Remove the comment markers from around the Valve below to limit access to

     the manager application to clients connecting from localhost

diff --git a/tomcat-uidm/webapps/manager/WEB-INF/jsp/401.jsp b/tomcat-uidm/webapps/manager/WEB-INF/jsp/401.jsp
index 8b4b024..a2924d0 100644
--- a/tomcat-uidm/webapps/manager/WEB-INF/jsp/401.jsp
+++ b/tomcat-uidm/webapps/manager/WEB-INF/jsp/401.jsp
@@ -14,6 +14,7 @@
   See the License for the specific language governing permissions and

   limitations under the License.

 --%>

+<%@ page session="false" trimDirectiveWhitespaces="true" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

 <html>

  <head>

@@ -45,7 +46,7 @@
 &lt;user username="tomcat" password="s3cret" roles="manager-gui"/&gt;

 </pre>

    <p>

-    Note that for Tomcat 6.0.30 onwards, the roles required to use the manager

+    Note that for Tomcat 7 onwards, the roles required to use the manager

     application were changed from the single <tt>manager</tt> role to the

     following four roles. You will need to assign the role(s) required for

     the functionality you wish to access.

@@ -64,8 +65,6 @@
     are not. To maintain the CSRF protection:

    </p>

    <ul>

-    <li>The deprecated <tt>manager</tt> role should not be assigned to any

-        user.</li>

     <li>Users with the <tt>manager-gui</tt> role should not be granted either

         the <tt>manager-script</tt> or <tt>manager-jmx</tt> roles.</li>

     <li>If the text or jmx interfaces are accessed through a browser (e.g. for

@@ -78,4 +77,4 @@
    </p>

  </body>

 

-</html>
\ No newline at end of file
+</html>

diff --git a/tomcat-uidm/webapps/manager/WEB-INF/jsp/403.jsp b/tomcat-uidm/webapps/manager/WEB-INF/jsp/403.jsp
index 3f3513d..f626814 100644
--- a/tomcat-uidm/webapps/manager/WEB-INF/jsp/403.jsp
+++ b/tomcat-uidm/webapps/manager/WEB-INF/jsp/403.jsp
@@ -14,6 +14,7 @@
   See the License for the specific language governing permissions and

   limitations under the License.

 --%>

+<%@ page session="false" trimDirectiveWhitespaces="true" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

 <html>

  <head>

@@ -34,13 +35,13 @@
    </p>

    <p>

     If you have already configured the Manager application to allow access and

-    you have used your browser's back button, used a saved book-mark or similar

+    you have used your browsers back button, used a saved book-mark or similar

     then you may have triggered the cross-site request forgery (CSRF) protection

     that has been enabled for the HTML interface of the Manager application. You

-    will need to reset this protection by returning to the 

+    will need to reset this protection by returning to the

     <a href="<%=request.getContextPath()%>/html">main Manager page</a>. Once you

     return to this page, you will be able to continue using the Manager

-    appliction's HTML interface normally. If you continue to see this access

+    application's HTML interface normally. If you continue to see this access

     denied message, check that you have the necessary permissions to access this

     application.

    </p>

@@ -60,11 +61,10 @@
 &lt;user username="tomcat" password="s3cret" roles="manager-gui"/&gt;

 </pre>

    <p>

-    Note that for Tomcat 6.0.30 onwards, the roles required to use the manager

-    application were changed from the single <tt>manager</tt> role to add the

-    following four roles. (The manager role is still available but should not be

-    used as it avoids the CSRF protection). You will need to assign the role(s)

-    required for the functionality you wish to access.

+    Note that for Tomcat 7 onwards, the roles required to use the manager

+    application were changed from the single <tt>manager</tt> role to the

+    following four roles. You will need to assign the role(s) required for

+    the functionality you wish to access.

    </p>

     <ul>

       <li><tt>manager-gui</tt> - allows access to the HTML GUI and the status

@@ -80,11 +80,11 @@
     are not. To maintain the CSRF protection:

    </p>

    <ul>

-    <li>users with the <tt>manager-gui</tt> role should not be granted either

+    <li>Users with the <tt>manager-gui</tt> role should not be granted either

         the <tt>manager-script</tt> or <tt>manager-jmx</tt> roles.</li>

-    <li>if the text or jmx interfaces are accessed through a browser (e.g. for

-         testing since these interfaces are intended for tools not humans) then

-         the browser must be closed afterwards to terminate the session.</li>

+    <li>If the text or jmx interfaces are accessed through a browser (e.g. for

+        testing since these interfaces are intended for tools not humans) then

+        the browser must be closed afterwards to terminate the session.</li>

    </ul>

    <p>

     For more information - please see the

diff --git a/tomcat-uidm/webapps/manager/WEB-INF/jsp/404.jsp b/tomcat-uidm/webapps/manager/WEB-INF/jsp/404.jsp
new file mode 100644
index 0000000..7acd51d
--- /dev/null
+++ b/tomcat-uidm/webapps/manager/WEB-INF/jsp/404.jsp
@@ -0,0 +1,63 @@
+<%--

+  Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You under the Apache License, Version 2.0

+  (the "License"); you may not use this file except in compliance with

+  the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing, software

+  distributed under the License is distributed on an "AS IS" BASIS,

+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+  See the License for the specific language governing permissions and

+  limitations under the License.

+--%>

+<%@ page import="org.apache.catalina.util.RequestUtil" session="false"

+         trimDirectiveWhitespaces="true" %>

+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

+<html>

+ <head>

+  <title>404 Not found</title>

+  <style type="text/css">

+    <!--

+    BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;font-size:12px;}

+    H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}

+    PRE, TT {border: 1px dotted #525D76}

+    A {color : black;}A.name {color : black;}

+    -->

+  </style>

+ </head>

+ <body>

+   <h1>404 Not found</h1>

+   <p>

+    The page you tried to access

+    (<%=RequestUtil.filter((String) request.getAttribute(

+            "javax.servlet.error.request_uri"))%>)

+    does not exist.

+   </p>

+   <p>

+    The Manager application has been re-structured for Tomcat 7 onwards and some

+    of URLs have changed. All URLs used to access the Manager application should

+    now start with one of the following options:

+   </p>

+    <ul>

+      <li><%=request.getContextPath()%>/html for the HTML GUI</li>

+      <li><%=request.getContextPath()%>/text for the text interface</li>

+      <li><%=request.getContextPath()%>/jmxproxy for the JMX proxy</li>

+      <li><%=request.getContextPath()%>/status for the status pages</li>

+    </ul>

+   <p>

+    Note that the URL for the text interface has changed from

+    &quot;<%=request.getContextPath()%>&quot; to

+    &quot;<%=request.getContextPath()%>/text&quot;.

+   </p>

+   <p>

+    You probably need to adjust the URL you are using to access the Manager

+    application. However, there is always a chance you have found a bug in the

+    Manager application. If you are sure you have found a bug, and that the bug

+    has not already been reported, please report it to the Apache Tomcat team.

+   </p>

+ </body>

+</html>

diff --git a/tomcat-uidm/webapps/manager/WEB-INF/jsp/sessionDetail.jsp b/tomcat-uidm/webapps/manager/WEB-INF/jsp/sessionDetail.jsp
index 40e8979..0d903e6 100644
--- a/tomcat-uidm/webapps/manager/WEB-INF/jsp/sessionDetail.jsp
+++ b/tomcat-uidm/webapps/manager/WEB-INF/jsp/sessionDetail.jsp
@@ -20,7 +20,8 @@
 <%@page import="javax.servlet.http.HttpSession" %>

 <%@page import="org.apache.catalina.Session" %>

 <%@page import="org.apache.catalina.manager.JspHelper" %>

-<!DOCTYPE html 

+<%@page import="org.apache.catalina.util.ContextName" %>

+<!DOCTYPE html

      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 <%--!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

@@ -28,12 +29,20 @@
 

 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

 <% String path = (String) request.getAttribute("path");

+   String version = (String) request.getAttribute("version");

+   ContextName cn = new ContextName(path, version);

    Session currentSession = (Session)request.getAttribute("currentSession");

-   HttpSession currentHttpSession = currentSession.getSession();

-   String currentSessionId = JspHelper.escapeXml(currentSession.getId());

+   String currentSessionId = null;

+   HttpSession currentHttpSession = null;

+   if (currentSession != null) {

+       currentHttpSession = currentSession.getSession();

+       currentSessionId = JspHelper.escapeXml(currentSession.getId());

+   } else {

+       currentSessionId = "Session invalidated";

+   }

    String submitUrl = JspHelper.escapeXml(response.encodeURL(

            ((HttpServletRequest) pageContext.getRequest()).getRequestURI() +

-           "?path=" + path));

+           "?path=" + path + "&version=" + version));

 %>

 <head>

     <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>

@@ -42,108 +51,127 @@
     <meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' -->

     <meta http-equiv="content-language" content="en"/>

     <meta name="author" content="Cedrik LIME"/>

-    <meta name="copyright" content="copyright 2005-2014 the Apache Software Foundation"/>

+    <meta name="copyright" content="copyright 2005-2017 the Apache Software Foundation"/>

     <meta name="robots" content="noindex,nofollow,noarchive"/>

     <title>Sessions Administration: details for <%= currentSessionId %></title>

 </head>

 <body>

-<h1>Details for Session <%= currentSessionId %></h1>

+<% if (currentHttpSession == null) { %>

+   <h1><%=currentSessionId%></h1>

+<% } else { %>

+   <h1>Details for Session <%= currentSessionId %></h1>

 

-<table style="text-align: left;" border="0">

-  <tr>

-    <th>Session Id</th>

-    <td><%= currentSessionId %></td>

-  </tr>

-  <tr>

-    <th>Guessed Locale</th>

-    <td><%= JspHelper.guessDisplayLocaleFromSession(currentSession) %></td>

-  </tr>

-  <tr>

-    <th>Guessed User</th>

-    <td><%= JspHelper.guessDisplayUserFromSession(currentSession) %></td>

-  </tr>

-  <tr>

-    <th>Creation Time</th>

-    <td><%= JspHelper.getDisplayCreationTimeForSession(currentSession) %></td>

-  </tr>

-  <tr>

-    <th>Last Accessed Time</th>

-    <td><%= JspHelper.getDisplayLastAccessedTimeForSession(currentSession) %></td>

-  </tr>

-  <tr>

-    <th>Session Max Inactive Interval</th>

-    <td><%= JspHelper.secondsToTimeString(currentSession.getMaxInactiveInterval()) %></td>

-  </tr>

-  <tr>

-    <th>Used Time</th>

-    <td><%= JspHelper.getDisplayUsedTimeForSession(currentSession) %></td>

-  </tr>

-  <tr>

-    <th>Inactive Time</th>

-    <td><%= JspHelper.getDisplayInactiveTimeForSession(currentSession) %></td>

-  </tr>

-  <tr>

-    <th>TTL</th>

-    <td><%= JspHelper.getDisplayTTLForSession(currentSession) %></td>

-  </tr>

-</table>

+   <table style="text-align: left;" border="0">

+     <tr>

+       <th>Session Id</th>

+       <td><%= currentSessionId %></td>

+     </tr>

+     <tr>

+       <th>Guessed Locale</th>

+       <td><%= JspHelper.guessDisplayLocaleFromSession(currentSession) %></td>

+     </tr>

+     <tr>

+       <th>Guessed User</th>

+       <td><%= JspHelper.guessDisplayUserFromSession(currentSession) %></td>

+     </tr>

+     <tr>

+       <th>Creation Time</th>

+       <td><%= JspHelper.getDisplayCreationTimeForSession(currentSession) %></td>

+     </tr>

+     <tr>

+       <th>Last Accessed Time</th>

+       <td><%= JspHelper.getDisplayLastAccessedTimeForSession(currentSession) %></td>

+     </tr>

+     <tr>

+       <th>Session Max Inactive Interval</th>

+       <td><%= JspHelper.secondsToTimeString(currentSession.getMaxInactiveInterval()) %></td>

+     </tr>

+     <tr>

+       <th>Used Time</th>

+       <td><%= JspHelper.getDisplayUsedTimeForSession(currentSession) %></td>

+     </tr>

+     <tr>

+       <th>Inactive Time</th>

+       <td><%= JspHelper.getDisplayInactiveTimeForSession(currentSession) %></td>

+     </tr>

+     <tr>

+       <th>TTL</th>

+       <td><%= JspHelper.getDisplayTTLForSession(currentSession) %></td>

+     </tr>

+   </table>

 

-<form method="post" action="<%= submitUrl %>">

-  <div>

-    <input type="hidden" name="sessionId" value="<%= currentSessionId %>" />

-    <input type="hidden" name="action" value="sessionDetail" />

-    <input type="submit" value="Refresh" />

-  </div>

-</form>

+   <form method="post" action="<%= submitUrl %>">

+     <div>

+       <input type="hidden" name="sessionId" value="<%= currentSessionId %>" />

+       <input type="hidden" name="action" value="sessionDetail" />

+       <%

+       if ("Primary".equals(request.getParameter("sessionType"))) {

+       %>

+         <input type="hidden" name="sessionType" value="Primary" />

+       <%

+       }

+       %>    <input type="submit" value="Refresh" />

+     </div>

+   </form>

 

-<div class="error"><%= JspHelper.escapeXml(request.getAttribute("error")) %></div>

-<div class="message"><%= JspHelper.escapeXml(request.getAttribute("message")) %></div>

+   <div class="error"><%= JspHelper.escapeXml(request.getAttribute("error")) %></div>

+   <div class="message"><%= JspHelper.escapeXml(request.getAttribute("message")) %></div>

 

-<table style="text-align: left;" border="1" cellpadding="2" cellspacing="2">

-<% int nAttributes = 0;

-   Enumeration attributeNamesEnumeration = currentHttpSession.getAttributeNames();

-   while (attributeNamesEnumeration.hasMoreElements()) {

-       attributeNamesEnumeration.nextElement();

-       ++nAttributes;

-   }

-%>

-    <caption style="font-variant: small-caps;"><%= JspHelper.formatNumber(nAttributes) %> attributes</caption>

-    <thead>

-        <tr>

-            <th>Remove Attribute</th>

-            <th>Attribute name</th>

-            <th>Attribute value</th>

-        </tr>

-    </thead>

-    <%--tfoot>

-        <tr>

-            <td colspan="3" style="text-align: center;">

-                TODO: set Max Inactive Interval on sessions

-            </td>

-        </tr>

-    </tfoot--%>

-    <tbody>

-<% attributeNamesEnumeration = currentHttpSession.getAttributeNames();

-   while (attributeNamesEnumeration.hasMoreElements()) {

-       String attributeName = (String) attributeNamesEnumeration.nextElement();

-%>

-        <tr>

-            <td align="center">

-                <form method="post" action="<%= submitUrl %>">

-                    <div>

-                        <input type="hidden" name="action" value="removeSessionAttribute" />

-                        <input type="hidden" name="sessionId" value="<%= currentSessionId %>" />

-                        <input type="hidden" name="attributeName" value="<%= JspHelper.escapeXml(attributeName) %>" />

-                        <input type="submit" value="Remove" />

-                    </div>

-                </form>

-            </td>

-            <td><%= JspHelper.escapeXml(attributeName) %></td>

-            <td><% Object attributeValue = currentHttpSession.getAttribute(attributeName); %><span title="<%= attributeValue == null ? "" : attributeValue.getClass().toString() %>"><%= JspHelper.escapeXml(attributeValue) %></span></td>

-        </tr>

-<% } // end while %>

-    </tbody>

-</table>

+   <table style="text-align: left;" border="1" cellpadding="2" cellspacing="2">

+   <% int nAttributes = 0;

+      Enumeration attributeNamesEnumeration = currentHttpSession.getAttributeNames();

+      while (attributeNamesEnumeration.hasMoreElements()) {

+          attributeNamesEnumeration.nextElement();

+          ++nAttributes;

+      }

+   %>

+       <caption style="font-variant: small-caps;"><%= JspHelper.formatNumber(nAttributes) %> attributes</caption>

+       <thead>

+           <tr>

+               <th>Remove Attribute</th>

+               <th>Attribute name</th>

+               <th>Attribute value</th>

+           </tr>

+       </thead>

+       <%--tfoot>

+           <tr>

+               <td colspan="3" style="text-align: center;">

+                   TODO: set Max Inactive Interval on sessions

+               </td>

+           </tr>

+       </tfoot--%>

+       <tbody>

+   <% attributeNamesEnumeration = currentHttpSession.getAttributeNames();

+      while (attributeNamesEnumeration.hasMoreElements()) {

+          String attributeName = (String) attributeNamesEnumeration.nextElement();

+   %>

+           <tr>

+               <td align="center">

+                   <form method="post" action="<%= submitUrl %>">

+                       <div>

+                           <input type="hidden" name="action" value="removeSessionAttribute" />

+                           <input type="hidden" name="sessionId" value="<%= currentSessionId %>" />

+                           <input type="hidden" name="attributeName" value="<%= JspHelper.escapeXml(attributeName) %>" />

+                           <%

+                             if ("Primary".equals(request.getParameter("sessionType"))) {

+                           %>

+                             <input type="submit" value="Remove" />

+                             <input type="hidden" name="sessionType" value="Primary" />

+                           <%

+                             } else {

+                               out.print("Primary sessions only");

+                             }

+                           %>

+                       </div>

+                   </form>

+               </td>

+               <td><%= JspHelper.escapeXml(attributeName) %></td>

+               <td><% Object attributeValue = currentHttpSession.getAttribute(attributeName); %><span title="<%= attributeValue == null ? "" : attributeValue.getClass().toString() %>"><%= JspHelper.escapeXml(attributeValue) %></span></td>

+           </tr>

+   <% } // end while %>

+       </tbody>

+   </table>

+<% } // endif%>

 

 <form method="post" action="<%=submitUrl%>">

   <p style="text-align: center;">

diff --git a/tomcat-uidm/webapps/manager/WEB-INF/jsp/sessionsList.jsp b/tomcat-uidm/webapps/manager/WEB-INF/jsp/sessionsList.jsp
index d5b83f0..da2680c 100644
--- a/tomcat-uidm/webapps/manager/WEB-INF/jsp/sessionsList.jsp
+++ b/tomcat-uidm/webapps/manager/WEB-INF/jsp/sessionsList.jsp
@@ -20,104 +20,132 @@
 <%@page import="java.util.Iterator" %>

 <%@page import="org.apache.catalina.manager.JspHelper" %>

 <%@page import="org.apache.catalina.Session" %>

-<!DOCTYPE html 

+<%@page import="org.apache.catalina.ha.session.DeltaSession" %>

+<%@page import="org.apache.catalina.util.ContextName" %>

+<!DOCTYPE html

      PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

+

+<%@page import="org.apache.catalina.manager.DummyProxySession"%><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

 <% String path = (String) request.getAttribute("path");

+   String version = (String) request.getAttribute("version");

+   ContextName cn = new ContextName(path, version);

    String submitUrl = JspHelper.escapeXml(response.encodeURL(

            ((HttpServletRequest) pageContext.getRequest()).getRequestURI() +

-           "?path=" + path));

+           "?path=" + path + "&version=" + version));

    Collection activeSessions = (Collection) request.getAttribute("activeSessions");

 %>

 <head>

     <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>

-	<meta http-equiv="pragma" content="no-cache"/><!-- HTTP 1.0 -->

-	<meta http-equiv="cache-control" content="no-cache,must-revalidate"/><!-- HTTP 1.1 -->

-	<meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' -->

-	<meta http-equiv="content-language" content="en"/>

-	<meta name="author" content="Cedrik LIME"/>

-	<meta name="copyright" content="copyright 2005-2014 the Apache Software Foundation"/>

-	<meta name="robots" content="noindex,nofollow,noarchive"/>

-	<title>Sessions Administration for <%= JspHelper.escapeXml(path) %></title>

+    <meta http-equiv="pragma" content="no-cache"/><!-- HTTP 1.0 -->

+    <meta http-equiv="cache-control" content="no-cache,must-revalidate"/><!-- HTTP 1.1 -->

+    <meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should be treated as 'now' -->

+    <meta http-equiv="content-language" content="en"/>

+    <meta name="author" content="Cedrik LIME"/>

+    <meta name="copyright" content="copyright 2005-2017 the Apache Software Foundation"/>

+    <meta name="robots" content="noindex,nofollow,noarchive"/>

+    <title>Sessions Administration for <%= JspHelper.escapeXml(cn.getDisplayName()) %></title>

 </head>

 <body>

-<h1>Sessions Administration for <%= JspHelper.escapeXml(path) %></h1>

+<h1>Sessions Administration for <%= JspHelper.escapeXml(cn.getDisplayName()) %></h1>

 

 <p>Tips:</p>

 <ul>

-	<li>Click on a column to sort.</li>

-	<li>To view a session details and/or remove a session attributes, click on its id.</li>

+    <li>Click on a column to sort.</li>

+    <li>To view a session details and/or remove a session attributes, click on its id.</li>

 </ul>

 

 <div class="error"><%= JspHelper.escapeXml(request.getAttribute("error")) %></div>

 <div class="message"><%= JspHelper.escapeXml(request.getAttribute("message")) %></div>

 

 <form action="<%= submitUrl %>" method="post" id="sessionsForm">

-	<fieldset><legend>Active HttpSessions informations</legend>

-		<input type="hidden" name="action" id="sessionsFormAction" value="injectSessions"/>

-		<input type="hidden" name="sort" id="sessionsFormSort" value="<%= JspHelper.escapeXml(request.getAttribute("sort")) %>"/>

-		<% String order = (String) request.getAttribute("order");

-		   if (order == null || "".equals(order)) {

-		   	order = "ASC";

-		   }

-		%>

-		<input type="hidden" name="order" id="sessionsFormSortOrder" value="<%= JspHelper.escapeXml(order) %>"/>

-		<input type="submit" name="refresh" id="refreshButton" value="Refresh Sessions list" onclick="document.getElementById('sessionsFormAction').value='refreshSessions'; return true;"/>

-		<%= JspHelper.formatNumber(activeSessions.size()) %> active Sessions<br/>

-		<table border="1" cellpadding="2" cellspacing="2" width="100%">

-			<thead>

-				<tr>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Session Id</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='locale'; document.getElementById('refreshButton').click(); return true;">Guessed Locale</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='user'; document.getElementById('refreshButton').click(); return true;">Guessed User name</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='CreationTime'; document.getElementById('refreshButton').click(); return true;">Creation Time</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='LastAccessedTime'; document.getElementById('refreshButton').click(); return true;">Last Accessed Time</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='UsedTime'; document.getElementById('refreshButton').click(); return true;">Used Time</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='InactiveTime'; document.getElementById('refreshButton').click(); return true;">Inactive Time</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='TTL'; document.getElementById('refreshButton').click(); return true;"><span title="Time To Live">TTL</span></a></th>

-				</tr>

-			</thead>

-			<% if (activeSessions.size() > 10) { %>

-			<tfoot><%-- <tfoot> is the same as <thead> --%>

-				<tr>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Session Id</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='locale'; document.getElementById('refreshButton').click(); return true;">Guessed Locale</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='user'; document.getElementById('refreshButton').click(); return true;">Guessed User name</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='CreationTime'; document.getElementById('refreshButton').click(); return true;">Creation Time</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='LastAccessedTime'; document.getElementById('refreshButton').click(); return true;">Last Accessed Time</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='UsedTime'; document.getElementById('refreshButton').click(); return true;">Used Time</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='InactiveTime'; document.getElementById('refreshButton').click(); return true;">Inactive Time</a></th>

-					<th><a onclick="document.getElementById('sessionsFormSort').value='TTL'; document.getElementById('refreshButton').click(); return true;"><span title="Time To Live">TTL</span></a></th>

-				</tr>

-			</tfoot>

-			<% } // end if %>

-			<tbody>

+    <fieldset><legend>Active HttpSessions informations</legend>

+        <input type="hidden" name="action" id="sessionsFormAction" value="injectSessions"/>

+        <input type="hidden" name="sort" id="sessionsFormSort" value="<%= JspHelper.escapeXml(request.getAttribute("sort")) %>"/>

+        <% String order = (String) request.getAttribute("order");

+           if (order == null || "".equals(order)) {

+               order = "ASC";

+           }

+        %>

+        <input type="hidden" name="order" id="sessionsFormSortOrder" value="<%= JspHelper.escapeXml(order) %>"/>

+        <input type="submit" name="refresh" id="refreshButton" value="Refresh Sessions list" onclick="document.getElementById('sessionsFormAction').value='refreshSessions'; return true;"/>

+        <%= JspHelper.formatNumber(activeSessions.size()) %> active Sessions<br/>

+        <table border="1" cellpadding="2" cellspacing="2" width="100%">

+            <thead>

+                <tr>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Session Id</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Type</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='locale'; document.getElementById('refreshButton').click(); return true;">Guessed Locale</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='user'; document.getElementById('refreshButton').click(); return true;">Guessed User name</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='CreationTime'; document.getElementById('refreshButton').click(); return true;">Creation Time</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='LastAccessedTime'; document.getElementById('refreshButton').click(); return true;">Last Accessed Time</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='UsedTime'; document.getElementById('refreshButton').click(); return true;">Used Time</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='InactiveTime'; document.getElementById('refreshButton').click(); return true;">Inactive Time</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='TTL'; document.getElementById('refreshButton').click(); return true;"><span title="Time To Live">TTL</span></a></th>

+                </tr>

+            </thead>

+            <% if (activeSessions.size() > 10) { %>

+            <tfoot><%-- <tfoot> is the same as <thead> --%>

+                <tr>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Session Id</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='id'; document.getElementById('refreshButton').click(); return true;">Type</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='locale'; document.getElementById('refreshButton').click(); return true;">Guessed Locale</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='user'; document.getElementById('refreshButton').click(); return true;">Guessed User name</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='CreationTime'; document.getElementById('refreshButton').click(); return true;">Creation Time</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='LastAccessedTime'; document.getElementById('refreshButton').click(); return true;">Last Accessed Time</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='UsedTime'; document.getElementById('refreshButton').click(); return true;">Used Time</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='InactiveTime'; document.getElementById('refreshButton').click(); return true;">Inactive Time</a></th>

+                    <th><a onclick="document.getElementById('sessionsFormSort').value='TTL'; document.getElementById('refreshButton').click(); return true;"><span title="Time To Live">TTL</span></a></th>

+                </tr>

+            </tfoot>

+            <% } // end if %>

+            <tbody>

 <% Iterator iter = activeSessions.iterator();

    while (iter.hasNext()) {

-   	Session currentSession = (Session) iter.next();

-   	String currentSessionId = JspHelper.escapeXml(currentSession.getId());

+       Session currentSession = (Session) iter.next();

+       String currentSessionId = JspHelper.escapeXml(currentSession.getId());

+       String type;

+       if (currentSession instanceof DeltaSession) {

+           if (((DeltaSession) currentSession).isPrimarySession()) {

+               type = "Primary";

+           } else {

+               type = "Backup";

+           }

+       } else if (currentSession instanceof DummyProxySession) {

+           type = "Proxy";

+       } else {

+           type = "Primary";

+       }

 %>

-				<tr>

-					<td>

-<input type="checkbox" name="sessionIds" value="<%= currentSessionId %>" /><a href="<%= submitUrl %>&amp;action=sessionDetail&amp;sessionId=<%= currentSessionId %>"><%= currentSessionId %></a>

-					</td>

-					<td style="text-align: center;"><%= JspHelper.guessDisplayLocaleFromSession(currentSession) %></td>

-					<td style="text-align: center;"><%= JspHelper.guessDisplayUserFromSession(currentSession) %></td>

-					<td style="text-align: center;"><%= JspHelper.getDisplayCreationTimeForSession(currentSession) %></td>

-					<td style="text-align: center;"><%= JspHelper.getDisplayLastAccessedTimeForSession(currentSession) %></td>

-					<td style="text-align: center;"><%= JspHelper.getDisplayUsedTimeForSession(currentSession) %></td>

-					<td style="text-align: center;"><%= JspHelper.getDisplayInactiveTimeForSession(currentSession) %></td>

-					<td style="text-align: center;"><%= JspHelper.getDisplayTTLForSession(currentSession) %></td>

-				</tr>

+                <tr>

+                    <td><input type="checkbox" name="sessionIds" value="<%= currentSessionId %>" />

+                      <%

+                        if ("Proxy".equals(type)) {

+                            out.print(currentSessionId);

+                        } else {

+                      %>

+                      <a href="<%= submitUrl %>&amp;action=sessionDetail&amp;sessionId=<%= currentSessionId %>&amp;sessionType=<%= type %>"><%= currentSessionId %></a>

+                      <%

+                        }

+                      %>

+                    </td>

+                    <td style="text-align: center;"><%= type %></td>

+                    <td style="text-align: center;"><%= JspHelper.guessDisplayLocaleFromSession(currentSession) %></td>

+                    <td style="text-align: center;"><%= JspHelper.guessDisplayUserFromSession(currentSession) %></td>

+                    <td style="text-align: center;"><%= JspHelper.getDisplayCreationTimeForSession(currentSession) %></td>

+                    <td style="text-align: center;"><%= JspHelper.getDisplayLastAccessedTimeForSession(currentSession) %></td>

+                    <td style="text-align: center;"><%= JspHelper.getDisplayUsedTimeForSession(currentSession) %></td>

+                    <td style="text-align: center;"><%= JspHelper.getDisplayInactiveTimeForSession(currentSession) %></td>

+                    <td style="text-align: center;"><%= JspHelper.getDisplayTTLForSession(currentSession) %></td>

+                </tr>

 <% } // end while %>

-			</tbody>

-		</table>

-		<p style="text-align: center;">

-			<input type="submit" name="invalidate" value="Invalidate selected Sessions" onclick="document.getElementById('sessionsFormAction').value='invalidateSessions'; return true;"/>

-		</p>

-	</fieldset>

+            </tbody>

+        </table>

+        <p style="text-align: center;">

+            <input type="submit" name="invalidate" value="Invalidate selected Sessions" onclick="document.getElementById('sessionsFormAction').value='invalidateSessions'; return true;"/>

+        </p>

+    </fieldset>

 </form>

 

 <form method="get" action="<%=request.getContextPath()%>/html">

@@ -128,15 +156,15 @@
 

 <%--div style="display: none;">

 <p>

-	<a href="http://validator.w3.org/check?uri=referer"><img

-		src="http://www.w3.org/Icons/valid-html401"

-		alt="Valid HTML 4.01!" height="31" width="88"></a>

-	<a href="http://validator.w3.org/check?uri=referer"><img

-		src="http://www.w3.org/Icons/valid-xhtml10"

-		alt="Valid XHTML 1.0!" height="31" width="88" /></a>

-	<a href="http://validator.w3.org/check?uri=referer"><img

-		src="http://www.w3.org/Icons/valid-xhtml11"

-		alt="Valid XHTML 1.1!" height="31" width="88" /></a>

+    <a href="http://validator.w3.org/check?uri=referer"><img

+        src="http://www.w3.org/Icons/valid-html401"

+        alt="Valid HTML 4.01!" height="31" width="88"></a>

+    <a href="http://validator.w3.org/check?uri=referer"><img

+        src="http://www.w3.org/Icons/valid-xhtml10"

+        alt="Valid XHTML 1.0!" height="31" width="88" /></a>

+    <a href="http://validator.w3.org/check?uri=referer"><img

+        src="http://www.w3.org/Icons/valid-xhtml11"

+        alt="Valid XHTML 1.1!" height="31" width="88" /></a>

 </p>

 </div--%>

 

diff --git a/tomcat-uidm/webapps/manager/WEB-INF/web.xml b/tomcat-uidm/webapps/manager/WEB-INF/web.xml
index 3d7fefe..4dd97ce 100644
--- a/tomcat-uidm/webapps/manager/WEB-INF/web.xml
+++ b/tomcat-uidm/webapps/manager/WEB-INF/web.xml
@@ -17,9 +17,11 @@
 -->

 

 <web-app xmlns="http://java.sun.com/xml/ns/javaee"

-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

-   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

-   version="2.5"> 

+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

+                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

+  version="3.0"

+  metadata-complete="true">

 

   <display-name>Tomcat Manager Application</display-name>

   <description>

@@ -42,6 +44,19 @@
       <param-name>debug</param-name>

       <param-value>2</param-value>

     </init-param>

+    <!-- Uncomment this to show proxy sessions from the Backup manager or a

+         StoreManager in the sessions list for an application

+    <init-param>

+      <param-name>showProxySessions</param-name>

+      <param-value>true</param-value>

+    </init-param>

+    -->

+    <multipart-config>

+      <!-- 50MB max -->

+      <max-file-size>52428800</max-file-size>

+      <max-request-size>52428800</max-request-size>

+      <file-size-threshold>0</file-size-threshold>

+    </multipart-config>

   </servlet>

   <servlet>

     <servlet-name>Status</servlet-name>

@@ -60,63 +75,7 @@
   <!-- Define the Manager Servlet Mapping -->

   <servlet-mapping>

     <servlet-name>Manager</servlet-name>

-      <url-pattern>/list</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/expire</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/sessions</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/start</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/stop</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/install</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/remove</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/deploy</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/undeploy</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/reload</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/save</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/serverinfo</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/roles</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/resources</url-pattern>

-  </servlet-mapping>

-  <servlet-mapping>

-    <servlet-name>Manager</servlet-name>

-      <url-pattern>/findleaks</url-pattern>

+      <url-pattern>/text/*</url-pattern>

   </servlet-mapping>

   <servlet-mapping>

     <servlet-name>Status</servlet-name>

@@ -132,11 +91,25 @@
   </servlet-mapping>

 

   <filter>

+    <filter-name>SetCharacterEncoding</filter-name>

+    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>

+    <init-param>

+      <param-name>encoding</param-name>

+      <param-value>UTF-8</param-value>

+    </init-param>

+  </filter>

+

+  <filter-mapping>

+    <filter-name>SetCharacterEncoding</filter-name>

+    <url-pattern>/*</url-pattern>

+  </filter-mapping>

+

+  <filter>

     <filter-name>CSRF</filter-name>

     <filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class>

     <init-param>

       <param-name>entryPoints</param-name>

-      <param-value>/html,/html/,/html/list</param-value>

+      <param-value>/html,/html/,/html/list,/index.jsp</param-value>

     </init-param>

   </filter>

 

@@ -145,107 +118,48 @@
     <servlet-name>HTMLManager</servlet-name>

   </filter-mapping>

 

-  <!-- Define reference to the user database for looking up roles -->

-  <resource-env-ref>

-    <description>

-      Link to the UserDatabase instance from which we request lists of

-      defined role names.  Typically, this will be connected to the global

-      user database with a ResourceLink element in server.xml or the context

-      configuration file for the Manager web application.

-    </description>

-    <resource-env-ref-name>users</resource-env-ref-name>

-    <resource-env-ref-type>

-      org.apache.catalina.UserDatabase

-    </resource-env-ref-type>

-  </resource-env-ref>

-

   <!-- Define a Security Constraint on this Application -->

+  <!-- NOTE:  None of these roles are present in the default users file -->

   <security-constraint>

     <web-resource-collection>

-      <web-resource-name>Manager commands</web-resource-name>

-      <url-pattern>/list</url-pattern>

-      <url-pattern>/expire</url-pattern>

-      <url-pattern>/sessions</url-pattern>

-      <url-pattern>/start</url-pattern>

-      <url-pattern>/stop</url-pattern>

-      <url-pattern>/install</url-pattern>

-      <url-pattern>/remove</url-pattern>

-      <url-pattern>/deploy</url-pattern>

-      <url-pattern>/undeploy</url-pattern>

-      <url-pattern>/reload</url-pattern>

-      <url-pattern>/save</url-pattern>

-      <url-pattern>/serverinfo</url-pattern>

-      <url-pattern>/roles</url-pattern>

-      <url-pattern>/resources</url-pattern>

-      <url-pattern>/findleaks</url-pattern>

-    </web-resource-collection>

-    <auth-constraint>

-       <!-- NOTE: 1. These roles are not present in the default users file

-                  2. The manager role is deprecated, it will be removed in

-                     Tomcat 7.

-                  3. Use the manager-script role to take advantage of the new

-                     CSRF protection. Using the manager role or assigning both

-                     the manager-script and manager-gui roles to the same user

-                     will bypass the CSRF protection. -->

-       <role-name>manager-script</role-name>

-       <role-name>manager</role-name>

-    </auth-constraint>

-  </security-constraint>

-

-  <security-constraint>

-    <web-resource-collection>

-      <web-resource-name>HTML Manager commands</web-resource-name>

+      <web-resource-name>HTML Manager interface (for humans)</web-resource-name>

       <url-pattern>/html/*</url-pattern>

     </web-resource-collection>

     <auth-constraint>

-       <!-- NOTE: 1. These roles are not present in the default users file

-                  2. The manager role is deprecated, it will be removed in

-                     Tomcat 7.

-                  3. Use just the manager-gui role to take advantage of the new

-                     CSRF protection. Assigning the manager role or manager-gui

-                     role along with either the manager-script or manager-jmx

-                     roles to the same user will bypass the CSRF protection. -->

        <role-name>manager-gui</role-name>

-       <role-name>manager</role-name>

     </auth-constraint>

   </security-constraint>

-

   <security-constraint>

     <web-resource-collection>

-      <web-resource-name>JMX proxy</web-resource-name>

+      <web-resource-name>Text Manager interface (for scripts)</web-resource-name>

+      <url-pattern>/text/*</url-pattern>

+    </web-resource-collection>

+    <auth-constraint>

+       <role-name>manager-script</role-name>

+    </auth-constraint>

+  </security-constraint>

+  <security-constraint>

+    <web-resource-collection>

+      <web-resource-name>JMX Proxy interface</web-resource-name>

       <url-pattern>/jmxproxy/*</url-pattern>

     </web-resource-collection>

     <auth-constraint>

-       <!-- NOTE: 1. These roles are not present in the default users file

-                  2. The manager role is deprecated, it will be removed in

-                     Tomcat 7.

-                  3. Use the manager-jmx role to take advantage of the new

-                     CSRF protection. Using the manager role or assigning both

-                     the manager-jmx and manager-gui roles to the same user

-                     will bypass the CSRF protection. -->

        <role-name>manager-jmx</role-name>

-       <role-name>manager</role-name>

     </auth-constraint>

   </security-constraint>

-

   <security-constraint>

     <web-resource-collection>

-      <web-resource-name>Status</web-resource-name>

+      <web-resource-name>Status interface</web-resource-name>

       <url-pattern>/status/*</url-pattern>

     </web-resource-collection>

     <auth-constraint>

-       <!-- NOTE: 1. These roles are not present in the default users file

-                  2. The manager role is deprecated, it will be removed in

-                     Tomcat 7. -->

-       <role-name>manager-status</role-name>

        <role-name>manager-gui</role-name>

        <role-name>manager-script</role-name>

        <role-name>manager-jmx</role-name>

-       <role-name>manager</role-name>

+       <role-name>manager-status</role-name>

     </auth-constraint>

   </security-constraint>

 

-

   <!-- Define the Login Configuration for this Application -->

   <login-config>

     <auth-method>BASIC</auth-method>

@@ -273,16 +187,10 @@
   </security-role>

   <security-role>

     <description>

-      The role that is required to access to the Manager Status pages 

+      The role that is required to access to the Manager Status pages

     </description>

     <role-name>manager-status</role-name>

   </security-role>

-  <security-role>

-    <description>

-      Deprecated role that can access all Manager functionality

-    </description>

-    <role-name>manager</role-name>

-  </security-role>

 

   <error-page>

     <error-code>401</error-code>

@@ -292,5 +200,9 @@
     <error-code>403</error-code>

     <location>/WEB-INF/jsp/403.jsp</location>

   </error-page>

+  <error-page>

+    <error-code>404</error-code>

+    <location>/WEB-INF/jsp/404.jsp</location>

+  </error-page>

 

 </web-app>

diff --git a/tomcat-uidm/webapps/manager/images/asf-logo.gif b/tomcat-uidm/webapps/manager/images/asf-logo.gif
deleted file mode 100644
index 22eb9d7..0000000
--- a/tomcat-uidm/webapps/manager/images/asf-logo.gif
+++ /dev/null
Binary files differ
diff --git a/tomcat-uidm/webapps/manager/images/asf-logo.svg b/tomcat-uidm/webapps/manager/images/asf-logo.svg
new file mode 100644
index 0000000..eaf91df
--- /dev/null
+++ b/tomcat-uidm/webapps/manager/images/asf-logo.svg
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

+	 viewBox="0 0 7127.6 2890" enable-background="new 0 0 7127.6 2890" xml:space="preserve">

+<path fill="#6D6E71" d="M7104.7,847.8c15.3,15.3,22.9,33.7,22.9,55.2c0,21.5-7.6,39.9-22.9,55.4c-15.3,15.4-33.8,23.1-55.6,23.1

+	c-21.8,0-40.2-7.6-55.4-22.9c-15.1-15.3-22.7-33.7-22.7-55.2c0-21.5,7.6-39.9,22.9-55.4c15.3-15.4,33.7-23.1,55.4-23.1

+	C7070.9,824.9,7089.4,832.5,7104.7,847.8z M7098.1,951.9c13.3-13.6,20-29.8,20-48.7s-6.6-35-19.8-48.5

+	c-13.2-13.4-29.4-20.1-48.6-20.1c-19.2,0-35.4,6.7-48.7,20.2c-13.3,13.5-19.9,29.7-19.9,48.7c0,19,6.6,35.2,19.7,48.6

+	c13.1,13.4,29.3,20.1,48.5,20.1S7084.7,965.4,7098.1,951.9z M7087.1,888.1c0,14-6.1,22.8-18.4,26.4l22.5,30.5h-18.2l-20.3-28.3

+	h-18.6v28.3h-14.7v-84.6h31.8c12.8,0,22,2.2,27.6,6.6C7084.4,871.4,7087.1,878.4,7087.1,888.1z M7068.2,900c3-2.4,4.4-6.5,4.4-12

+	c0-5.5-1.5-9.4-4.5-11.6c-3-2.2-8.4-3.2-16-3.2h-18v30.5h17.5C7059.7,903.6,7065.3,902.4,7068.2,900z"/>

+<path fill="#6D6E71" d="M1803.6,499.8v155.4h-20V499.8h-56.8v-19.2h133.9v19.2H1803.6z"/>

+<path fill="#6D6E71" d="M2082.2,655.2v-76.9h-105.2v76.9h-20V480.5h20v78.9h105.2v-78.9h20v174.7H2082.2z"/>

+<path fill="#6D6E71" d="M2241.4,499.8v57.4h88.1v19.2h-88.1v59.8h101.8v19h-121.8V480.5H2340v19.2H2241.4z"/>

+<path fill="#D22128" d="M1574.5,1852.4l417.3-997.6h80.1l417.3,997.6h-105.4l-129.3-311.9h-448.2l-127.9,311.9H1574.5z M2032.6,970

+	l-205.1,493.2h404.7L2032.6,970z"/>

+<path fill="#D22128" d="M2596.9,1852.4V854.8H3010c171.4,0,295.1,158.8,295.1,313.3c0,163-115.2,316.1-286.6,316.1h-324.6v368.1

+	H2596.9z M2693.9,1397.1h318.9c118,0,193.9-108.2,193.9-229c0-125.1-92.7-226.2-202.3-226.2h-310.5V1397.1z"/>

+<path fill="#D22128" d="M3250.5,1852.4l417.3-997.6h80.1l417.3,997.6h-105.4l-129.3-311.9h-448.2l-127.9,311.9H3250.5z M3708.6,970

+	l-205.1,493.2h404.7L3708.6,970z"/>

+<path fill="#D22128" d="M4637.3,849.1c177,0,306.3,89.9,368.1,217.8l-78.7,47.8c-63.2-132.1-186.9-177-295.1-177

+	c-238.9,0-369.5,213.6-369.5,414.5c0,220.6,161.6,420.1,373.7,420.1c112.4,0,244.5-56.2,307.7-185.5l81.5,42.1

+	c-64.6,148.9-241.7,231.8-394.8,231.8c-274,0-466.5-261.3-466.5-514.2C4163.8,1106.3,4336.6,849.1,4637.3,849.1z"/>

+<path fill="#D22128" d="M5949.1,854.8v997.6h-98.4v-466.5h-591.5v466.5h-96.9V854.8h96.9v444h591.5v-444H5949.1z"/>

+<path fill="#D22128" d="M6844.6,1765.2v87.1h-670.2V854.8H6832v87.1h-560.6v359.7h489v82.9h-489v380.8H6844.6z"/>

+<path fill="#6D6E71" d="M1667.6,2063.6c11.8,3.5,22.2,8.3,31,14.2l-10.3,22.6c-9-6-18.6-10.4-28.9-13.4c-10.2-2.9-20-4.4-29.2-4.4

+	c-13.6,0-24.5,2.4-32.6,7.3c-8.1,4.9-12.2,11.8-12.2,20.7c0,7.6,2.3,14,6.8,19c4.5,5,10.2,8.9,17,11.7c6.8,2.8,16.1,6,28,9.6

+	c14.4,4.6,26,8.9,34.7,12.9c8.8,4,16.3,9.9,22.5,17.8c6.2,7.8,9.3,18.2,9.3,31c0,11.7-3.2,21.8-9.5,30.6

+	c-6.3,8.7-15.3,15.5-26.8,20.3c-11.6,4.8-24.9,7.2-40,7.2c-15.1,0-29.7-2.9-43.9-8.7c-14.2-5.8-26.4-13.6-36.6-23.4l10.7-21.6

+	c9.6,9.4,20.7,16.7,33.3,21.9c12.6,5.2,24.8,7.8,36.8,7.8c15.3,0,27.3-3,36.1-8.9c8.8-5.9,13.2-13.9,13.2-23.9

+	c0-7.8-2.3-14.3-6.9-19.4c-4.6-5.1-10.3-9-17.1-11.9c-6.8-2.8-16.1-6-28-9.6c-14.2-4.2-25.7-8.3-34.6-12.2

+	c-8.9-3.9-16.4-9.7-22.5-17.5c-6.1-7.7-9.2-17.9-9.2-30.6c0-10.9,3-20.4,9-28.6c6-8.2,14.6-14.6,25.6-19.1

+	c11.1-4.5,23.8-6.8,38.2-6.8C1643.8,2058.3,1655.7,2060.1,1667.6,2063.6z"/>

+<path fill="#6D6E71" d="M1980.1,2072.8c16.8,9.4,30.2,22.3,40,38.4c9.8,16.2,14.8,33.9,14.8,53.3c0,19.5-4.9,37.4-14.8,53.6

+	c-9.8,16.3-23.2,29.1-40,38.6c-16.8,9.5-35.3,14.3-55.2,14.3c-20.3,0-38.8-4.7-55.7-14.3c-16.8-9.5-30.2-22.4-40-38.6

+	c-9.8-16.3-14.8-34.1-14.8-53.6c0-19.5,4.9-37.3,14.8-53.5c9.8-16.2,23.2-29,40-38.3c16.8-9.4,35.4-14,55.7-14

+	C1944.8,2058.6,1963.2,2063.3,1980.1,2072.8z M1881.9,2092.7c-13.1,7.4-23.6,17.5-31.4,30.1c-7.8,12.6-11.8,26.5-11.8,41.7

+	c0,15.3,3.9,29.3,11.8,42c7.8,12.7,18.3,22.8,31.4,30.2c13.1,7.4,27.4,11.1,42.9,11.1c15.5,0,29.7-3.7,42.7-11.1

+	c13-7.4,23.3-17.4,31.1-30.2c7.7-12.7,11.6-26.7,11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30

+	c-13-7.4-27.2-11.2-42.6-11.2C1909.4,2081.5,1895.1,2085.2,1881.9,2092.7z"/>

+<path fill="#6D6E71" d="M2186.5,2082.4v74h98.4v23.2h-98.4v90.2h-24.1v-210.6h133.8v23.2H2186.5z"/>

+<path fill="#6D6E71" d="M2491.6,2082.4v187.4h-24.1v-187.4h-68.4v-23.2h161.4v23.2H2491.6z"/>

+<path fill="#6D6E71" d="M2871.8,2269.8l-56.8-177.4l-57.6,177.4h-24.5l-70.5-210.6h25.9l57.9,182.7l57.1-182.4l24.1-0.3l57.7,182.7

+	l57.1-182.7h25l-70.6,210.6H2871.8z"/>

+<path fill="#6D6E71" d="M3087.3,2216.6l-23.5,53.2h-25.6l94.4-210.6h25l94.1,210.6h-26.1l-23.5-53.2H3087.3z M3144.5,2086.6

+	l-46.9,106.8h94.4L3144.5,2086.6z"/>

+<path fill="#6D6E71" d="M3461.1,2202.7c-6,0.4-10.7,0.6-14.1,0.6h-56v66.5H3367v-210.6h80c26.2,0,46.6,6.2,61.2,18.5

+	c14.5,12.3,21.8,29.8,21.8,52.3c0,17.2-4.1,31.7-12.2,43.3c-8.1,11.6-19.8,20-35,25l49.2,71.5h-27.3L3461.1,2202.7z M3491.3,2167.6

+	c10.3-8.4,15.5-20.8,15.5-37c0-15.9-5.2-27.9-15.5-36c-10.3-8.1-25.1-12.2-44.3-12.2h-56v97.8h56

+	C3466.2,2180.2,3481,2176,3491.3,2167.6z"/>

+<path fill="#6D6E71" d="M3688.3,2082.4v69.2h106.2v23.2h-106.2v72.1h122.8v22.9h-146.9v-210.6h142.9v23.2H3688.3z"/>

+<path fill="#6D6E71" d="M4147,2082.4v74h98.4v23.2H4147v90.2h-24.1v-210.6h133.8v23.2H4147z"/>

+<path fill="#6D6E71" d="M4523.3,2072.8c16.8,9.4,30.2,22.3,40,38.4c9.8,16.2,14.8,33.9,14.8,53.3c0,19.5-4.9,37.4-14.8,53.6

+	c-9.8,16.3-23.2,29.1-40,38.6c-16.8,9.5-35.3,14.3-55.2,14.3c-20.3,0-38.8-4.7-55.7-14.3c-16.8-9.5-30.2-22.4-40-38.6

+	c-9.8-16.3-14.8-34.1-14.8-53.6c0-19.5,4.9-37.3,14.8-53.5c9.8-16.2,23.2-29,40-38.3c16.8-9.4,35.4-14,55.7-14

+	C4488.1,2058.6,4506.5,2063.3,4523.3,2072.8z M4425.2,2092.7c-13.1,7.4-23.6,17.5-31.4,30.1c-7.8,12.6-11.8,26.5-11.8,41.7

+	c0,15.3,3.9,29.3,11.8,42c7.8,12.7,18.3,22.8,31.4,30.2c13.1,7.4,27.4,11.1,42.9,11.1c15.5,0,29.7-3.7,42.7-11.1

+	c13-7.4,23.3-17.4,31.1-30.2c7.7-12.7,11.6-26.7,11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30

+	c-13-7.4-27.2-11.2-42.6-11.2C4452.6,2081.5,4438.3,2085.2,4425.2,2092.7z"/>

+<path fill="#6D6E71" d="M4854.7,2247.7c-15.7,15.5-37.3,23.3-64.8,23.3c-27.7,0-49.4-7.8-65.1-23.3c-15.7-15.5-23.6-37-23.6-64.6

+	v-124h24.1v124c0,20.3,5.8,36.1,17.3,47.5c11.6,11.4,27.3,17.1,47.3,17.1c20.1,0,35.8-5.7,47.1-17c11.4-11.3,17-27.2,17-47.7v-124

+	h24.1v124C4878.2,2210.7,4870.4,2232.2,4854.7,2247.7z"/>

+<path fill="#6D6E71" d="M5169.5,2269.8l-126.3-169.1v169.1h-24.1v-210.6h25l126.3,169.3v-169.3h23.8v210.6H5169.5z"/>

+<path fill="#6D6E71" d="M5478.4,2073.1c16.4,9.3,29.4,21.9,38.9,37.9c9.6,16,14.3,33.9,14.3,53.5s-4.8,37.6-14.3,53.6

+	c-9.5,16.1-22.6,28.7-39.3,37.9c-16.6,9.2-35.2,13.8-55.5,13.8h-84.3v-210.6h85.2C5443.7,2059.2,5462,2063.8,5478.4,2073.1z

+	 M5362.3,2246.9h61.4c15.5,0,29.6-3.5,42.3-10.6c12.7-7.1,22.8-16.9,30.2-29.5c7.4-12.5,11.1-26.5,11.1-42

+	c0-15.5-3.8-29.4-11.3-41.9c-7.5-12.5-17.7-22.3-30.6-29.6c-12.8-7.2-27-10.9-42.6-10.9h-60.5V2246.9z"/>

+<path fill="#6D6E71" d="M5668.6,2216.6l-23.5,53.2h-25.6l94.4-210.6h25l94.1,210.6H5807l-23.5-53.2H5668.6z M5725.8,2086.6

+	l-46.9,106.8h94.4L5725.8,2086.6z"/>

+<path fill="#6D6E71" d="M5991,2082.4v187.4H5967v-187.4h-68.4v-23.2h161.4v23.2H5991z"/>

+<path fill="#6D6E71" d="M6175.9,2269.8v-210.6h24.1v210.6H6175.9z"/>

+<path fill="#6D6E71" d="M6493.7,2072.8c16.8,9.4,30.2,22.3,40,38.4c9.8,16.2,14.8,33.9,14.8,53.3c0,19.5-4.9,37.4-14.8,53.6

+	c-9.8,16.3-23.2,29.1-40,38.6c-16.8,9.5-35.3,14.3-55.2,14.3c-20.3,0-38.8-4.7-55.7-14.3c-16.8-9.5-30.2-22.4-40-38.6

+	c-9.8-16.3-14.8-34.1-14.8-53.6c0-19.5,4.9-37.3,14.8-53.5c9.8-16.2,23.2-29,40-38.3c16.8-9.4,35.4-14,55.7-14

+	C6458.5,2058.6,6476.9,2063.3,6493.7,2072.8z M6395.6,2092.7c-13.1,7.4-23.6,17.5-31.4,30.1c-7.8,12.6-11.8,26.5-11.8,41.7

+	c0,15.3,3.9,29.3,11.8,42c7.8,12.7,18.3,22.8,31.4,30.2c13.1,7.4,27.4,11.1,42.9,11.1c15.5,0,29.7-3.7,42.7-11.1

+	c13-7.4,23.3-17.4,31.1-30.2c7.7-12.7,11.6-26.7,11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30

+	c-13-7.4-27.2-11.2-42.6-11.2C6423,2081.5,6408.8,2085.2,6395.6,2092.7z"/>

+<path fill="#6D6E71" d="M6826.5,2269.8l-126.3-169.1v169.1h-24.1v-210.6h25l126.3,169.3v-169.3h23.8v210.6H6826.5z"/>

+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-4516.6152" y1="-2338.7222" x2="-4108.4111" y2="-1861.3982" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0" style="stop-color:#F69923"/>

+	<stop  offset="0.3123" style="stop-color:#F79A23"/>

+	<stop  offset="0.8383" style="stop-color:#E97826"/>

+</linearGradient>

+<path fill="url(#SVGID_1_)" d="M1230.1,13.7c-45.3,26.8-120.6,102.5-210.5,212.3l82.6,155.9c58-82.9,116.9-157.5,176.3-221.2

+	c4.6-5.1,7-7.5,7-7.5c-2.3,2.5-4.6,5-7,7.5c-19.2,21.2-77.5,89.2-165.5,224.4c84.7-4.2,214.9-21.6,321.1-39.7

+	c31.6-177-31-258-31-258S1323.4-41.4,1230.1,13.7z"/>

+<path fill="none" d="M1090.2,903.1c0.6-0.1,1.2-0.2,1.8-0.3l-11.9,1.3c-0.7,0.3-1.4,0.7-2.1,1

+	C1082.1,904.4,1086.2,903.7,1090.2,903.1z"/>

+<path fill="none" d="M1005.9,1182.3c-6.7,1.5-13.7,2.7-20.7,3.7C992.3,1185,999.2,1183.8,1005.9,1182.3z"/>

+<path fill="none" d="M432.9,1808.8c0.9-2.3,1.8-4.7,2.6-7c18.2-48,36.2-94.7,54-140.1c20-51,39.8-100.4,59.3-148.3

+	c20.6-50.4,40.9-99.2,60.9-146.3c21-49.4,41.7-97,62-142.8c16.5-37.3,32.8-73.4,48.9-108.3c5.4-11.7,10.7-23.2,16-34.6

+	c10.5-22.7,21-44.8,31.3-66.5c9.5-20,19-39.6,28.3-58.8c3.1-6.4,6.2-12.8,9.3-19.1c0.5-1,1-2,1.5-3.1l-10.2,1.1l-8-15.9

+	c-0.8,1.6-1.6,3.1-2.4,4.6c-14.5,28.8-28.9,57.9-43.1,87.2c-8.2,16.9-16.4,34-24.6,51c-22.6,47.4-44.8,95.2-66.6,143.3

+	c-22.1,48.6-43.7,97.5-64.9,146.5c-20.8,48.1-41.3,96.2-61.2,144.2c-20,48-39.5,95.7-58.5,143.2c-19.9,49.5-39.2,98.7-58,147.2

+	c-4.2,10.9-8.5,21.9-12.7,32.8c-15,39.2-29.7,77.8-44,116l12.7,25.1l11.4-1.2c0.4-1.1,0.8-2.3,1.3-3.4

+	C396.7,1905.4,414.9,1856.4,432.9,1808.8z"/>

+<path fill="none" d="M980,1186.8L980,1186.8c0.1,0,0.1,0,0.1-0.1C980.1,1186.8,980.1,1186.8,980,1186.8z"/>

+<path fill="#BE202E" d="M952.6,1323c-10.6,1.9-21.4,3.8-32.5,5.7c-0.1,0-0.1,0.1-0.2,0.1c5.6-0.8,11.2-1.7,16.6-2.6

+	C942,1325.2,947.3,1324.1,952.6,1323z"/>

+<path opacity="0.35" fill="#BE202E" d="M952.6,1323c-10.6,1.9-21.4,3.8-32.5,5.7c-0.1,0-0.1,0.1-0.2,0.1c5.6-0.8,11.2-1.7,16.6-2.6

+	C942,1325.2,947.3,1324.1,952.6,1323z"/>

+<path fill="#BE202E" d="M980.3,1186.7C980.2,1186.7,980.2,1186.7,980.3,1186.7c-0.1,0.1-0.2,0.1-0.2,0.1c1.8-0.2,3.5-0.5,5.2-0.8

+	c7-1,13.9-2.2,20.7-3.7C997.5,1183.8,989,1185.2,980.3,1186.7L980.3,1186.7L980.3,1186.7z"/>

+<path opacity="0.35" fill="#BE202E" d="M980.3,1186.7C980.2,1186.7,980.2,1186.7,980.3,1186.7c-0.1,0.1-0.2,0.1-0.2,0.1

+	c1.8-0.2,3.5-0.5,5.2-0.8c7-1,13.9-2.2,20.7-3.7C997.5,1183.8,989,1185.2,980.3,1186.7L980.3,1186.7L980.3,1186.7z"/>

+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-7537.7339" y1="-2391.4075" x2="-4625.4141" y2="-2391.4075" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0.3233" style="stop-color:#9E2064"/>

+	<stop  offset="0.6302" style="stop-color:#C92037"/>

+	<stop  offset="0.7514" style="stop-color:#CD2335"/>

+	<stop  offset="1" style="stop-color:#E97826"/>

+</linearGradient>

+<path fill="url(#SVGID_2_)" d="M858.6,784.7c25.1-46.9,50.5-92.8,76.2-137.4c26.7-46.4,53.7-91.3,80.9-134.7

+	c1.6-2.6,3.2-5.2,4.8-7.7c27-42.7,54.2-83.7,81.6-122.9L1019.5,226c-6.2,7.6-12.5,15.3-18.8,23.2c-23.8,29.7-48.6,61.6-73.9,95.5

+	c-28.6,38.2-58,78.9-87.8,121.7c-27.6,39.5-55.5,80.9-83.5,123.7c-23.8,36.5-47.7,74-71.4,112.5c-0.9,1.4-1.8,2.9-2.6,4.3

+	l107.5,212.3C811.8,873.6,835.1,828.7,858.6,784.7z"/>

+<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-7186.1777" y1="-2099.3059" x2="-5450.7183" y2="-2099.3059" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0" style="stop-color:#282662"/>

+	<stop  offset="9.548390e-02" style="stop-color:#662E8D"/>

+	<stop  offset="0.7882" style="stop-color:#9F2064"/>

+	<stop  offset="0.9487" style="stop-color:#CD2032"/>

+</linearGradient>

+<path fill="url(#SVGID_3_)" d="M369,1981c-14.2,39.1-28.5,78.9-42.9,119.6c-0.2,0.6-0.4,1.2-0.6,1.8c-2,5.7-4.1,11.5-6.1,17.2

+	c-9.7,27.4-18,52.1-37.3,108.2c31.7,14.5,57.1,52.5,81.1,95.6c-2.6-44.7-21-86.6-56.2-119.1c156.1,7,290.6-32.4,360.1-146.6

+	c6.2-10.2,11.9-20.9,17-32.2c-31.6,40.1-70.8,57.1-144.5,53c-0.2,0.1-0.3,0.1-0.5,0.2c0.2-0.1,0.3-0.1,0.5-0.2

+	c108.6-48.6,163.1-95.3,211.2-172.6c11.4-18.3,22.5-38.4,33.8-60.6c-94.9,97.5-205,125.3-320.9,104.2l-86.9,9.5

+	C374.4,1966.3,371.7,1973.6,369,1981z"/>

+<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2418.5454" x2="-4461.8428" y2="-2418.5454" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0.3233" style="stop-color:#9E2064"/>

+	<stop  offset="0.6302" style="stop-color:#C92037"/>

+	<stop  offset="0.7514" style="stop-color:#CD2335"/>

+	<stop  offset="1" style="stop-color:#E97826"/>

+</linearGradient>

+<path fill="url(#SVGID_4_)" d="M409.6,1786.3c18.8-48.5,38.1-97.7,58-147.2c19-47.4,38.5-95.2,58.5-143.2

+	c20-48,40.4-96.1,61.2-144.2c21.2-49,42.9-97.8,64.9-146.5c21.8-48.1,44-95.9,66.6-143.3c8.1-17.1,16.3-34.1,24.6-51

+	c14.2-29.3,28.6-58.4,43.1-87.2c0.8-1.6,1.6-3.1,2.4-4.6L681.4,706.8c-1.8,2.9-3.5,5.8-5.3,8.6c-25.1,40.9-50,82.7-74.4,125.4

+	c-24.7,43.1-49,87.1-72.7,131.7c-20,37.6-39.6,75.6-58.6,113.9c-3.8,7.8-7.6,15.5-11.3,23.2c-23.4,48.2-44.6,94.8-63.7,139.5

+	c-21.7,50.7-40.7,99.2-57.5,145.1c-11,30.2-21,59.4-30.1,87.4c-7.5,24-14.7,47.9-21.5,71.8c-16,56.3-29.9,112.4-41.2,168.3

+	L353,1935.1c14.3-38.1,28.9-76.8,44-116C401.1,1808.2,405.4,1797.3,409.6,1786.3z"/>

+<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-7161.7642" y1="-2379.1431" x2="-5631.2524" y2="-2379.1431" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0" style="stop-color:#282662"/>

+	<stop  offset="9.548390e-02" style="stop-color:#662E8D"/>

+	<stop  offset="0.7882" style="stop-color:#9F2064"/>

+	<stop  offset="0.9487" style="stop-color:#CD2032"/>

+</linearGradient>

+<path fill="url(#SVGID_5_)" d="M243.5,1729.4c-13.6,68.2-23.2,136.2-28,203.8c-0.2,2.4-0.4,4.7-0.5,7.1

+	c-33.7-54-124-106.8-123.8-106.2c64.6,93.7,113.7,186.7,120.9,278c-34.6,7.1-82-3.2-136.8-23.3c57.1,52.5,100,67,116.7,70.9

+	c-52.5,3.3-107.1,39.3-162.1,80.8c80.5-32.8,145.5-45.8,192.1-35.3C148.1,2414.2,74.1,2645,0,2890c22.7-6.7,36.2-21.9,43.9-42.6

+	c13.2-44.4,100.8-335.6,238-718.2c3.9-10.9,7.8-21.8,11.8-32.9c1.1-3,2.2-6.1,3.3-9.2c14.5-40.1,29.5-81.1,45.1-122.9

+	c3.5-9.5,7.1-19,10.7-28.6c0.1-0.2,0.1-0.4,0.2-0.6l-107.9-213.2C244.6,1724.4,244,1726.9,243.5,1729.4z"/>

+<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2117.1309" x2="-4461.8428" y2="-2117.1309" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0.3233" style="stop-color:#9E2064"/>

+	<stop  offset="0.6302" style="stop-color:#C92037"/>

+	<stop  offset="0.7514" style="stop-color:#CD2335"/>

+	<stop  offset="1" style="stop-color:#E97826"/>

+</linearGradient>

+<path fill="url(#SVGID_6_)" d="M805.6,937c-3.1,6.3-6.2,12.7-9.3,19.1c-9.3,19.2-18.8,38.8-28.3,58.8

+	c-10.3,21.7-20.7,43.9-31.3,66.5c-5.3,11.4-10.6,22.9-16,34.6c-16.1,35-32.4,71.1-48.9,108.3c-20.3,45.8-41,93.4-62,142.8

+	c-20,47.1-40.3,95.9-60.9,146.3c-19.5,47.9-39.3,97.3-59.3,148.3c-17.8,45.4-35.9,92.1-54,140.1c-0.9,2.3-1.8,4.7-2.6,7

+	c-18,47.6-36.2,96.6-54.6,146.8c-0.4,1.1-0.8,2.3-1.3,3.4l86.9-9.5c-1.7-0.3-3.5-0.5-5.2-0.9c103.9-13,242.1-90.6,331.4-186.5

+	c41.1-44.2,78.5-96.3,113-157.3c25.7-45.4,49.8-95.8,72.8-151.5c20.1-48.7,39.4-101.4,58-158.6c-23.9,12.6-51.2,21.8-81.4,28.2

+	c-5.3,1.1-10.7,2.2-16.1,3.1c-5.5,1-11,1.8-16.6,2.6l0,0l0,0c0.1,0,0.1-0.1,0.2-0.1c96.9-37.3,158-109.2,202.4-197.4

+	c-25.5,17.4-66.9,40.1-116.6,51.1c-6.7,1.5-13.7,2.7-20.7,3.7c-1.7,0.3-3.5,0.6-5.2,0.8l0,0l0,0c0.1,0,0.1,0,0.1-0.1

+	c0,0,0.1,0,0.1,0l0,0c33.6-14.1,62-29.8,86.6-48.4c5.3-4,10.4-8.1,15.3-12.3c7.5-6.5,14.7-13.3,21.5-20.5c4.4-4.6,8.6-9.3,12.7-14.2

+	c9.6-11.5,18.7-23.9,27.1-37.3c2.6-4.1,5.1-8.3,7.6-12.6c3.2-6.2,6.3-12.3,9.3-18.3c13.5-27.2,24.4-51.5,33-72.8

+	c4.3-10.6,8.1-20.5,11.3-29.7c1.3-3.7,2.5-7.2,3.7-10.6c3.4-10.2,6.2-19.3,8.4-27.3c3.3-12,5.3-21.5,6.4-28.4l0,0l0,0

+	c-3.3,2.6-7.1,5.2-11.3,7.7c-29.3,17.5-79.5,33.4-119.9,40.8l79.8-8.8l-79.8,8.8c-0.6,0.1-1.2,0.2-1.8,0.3c-4,0.7-8.1,1.3-12.2,2

+	c0.7-0.3,1.4-0.7,2.1-1l-273,29.9C806.6,935,806.1,936,805.6,937z"/>

+<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-7554.8232" y1="-2132.0981" x2="-4642.5034" y2="-2132.0981" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0.3233" style="stop-color:#9E2064"/>

+	<stop  offset="0.6302" style="stop-color:#C92037"/>

+	<stop  offset="0.7514" style="stop-color:#CD2335"/>

+	<stop  offset="1" style="stop-color:#E97826"/>

+</linearGradient>

+<path fill="url(#SVGID_7_)" d="M1112.9,385.1c-24.3,37.3-50.8,79.6-79.4,127.5c-1.5,2.5-3,5.1-4.5,7.6

+	c-24.6,41.5-50.8,87.1-78.3,137c-23.8,43.1-48.5,89.3-74.3,139c-22.4,43.3-45.6,89.2-69.4,137.8l273-29.9

+	c79.5-36.6,115.1-69.7,149.6-117.6c9.2-13.2,18.4-27,27.5-41.3c28-43.8,55.6-92,80.1-139.9c23.7-46.3,44.7-92.2,60.7-133.5

+	c10.2-26.3,18.4-50.8,24.1-72.3c5-19,8.9-36.9,11.9-54.1C1327.9,363.5,1197.6,380.9,1112.9,385.1z"/>

+<path fill="#BE202E" d="M936.5,1326.1c-5.5,1-11,1.8-16.6,2.6l0,0C925.5,1328,931,1327.1,936.5,1326.1z"/>

+<path opacity="0.35" fill="#BE202E" d="M936.5,1326.1c-5.5,1-11,1.8-16.6,2.6l0,0C925.5,1328,931,1327.1,936.5,1326.1z"/>

+<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2027.484" x2="-4461.8433" y2="-2027.484" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0.3233" style="stop-color:#9E2064"/>

+	<stop  offset="0.6302" style="stop-color:#C92037"/>

+	<stop  offset="0.7514" style="stop-color:#CD2335"/>

+	<stop  offset="1" style="stop-color:#E97826"/>

+</linearGradient>

+<path fill="url(#SVGID_8_)" d="M936.5,1326.1c-5.5,1-11,1.8-16.6,2.6l0,0C925.5,1328,931,1327.1,936.5,1326.1z"/>

+<path fill="#BE202E" d="M980,1186.8c1.8-0.2,3.5-0.5,5.2-0.8C983.5,1186.3,981.8,1186.6,980,1186.8L980,1186.8z"/>

+<path opacity="0.35" fill="#BE202E" d="M980,1186.8c1.8-0.2,3.5-0.5,5.2-0.8C983.5,1186.3,981.8,1186.6,980,1186.8L980,1186.8z"/>

+<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2037.7417" x2="-4461.8433" y2="-2037.7417" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0.3233" style="stop-color:#9E2064"/>

+	<stop  offset="0.6302" style="stop-color:#C92037"/>

+	<stop  offset="0.7514" style="stop-color:#CD2335"/>

+	<stop  offset="1" style="stop-color:#E97826"/>

+</linearGradient>

+<path fill="url(#SVGID_9_)" d="M980,1186.8c1.8-0.2,3.5-0.5,5.2-0.8C983.5,1186.3,981.8,1186.6,980,1186.8L980,1186.8z"/>

+<path fill="#BE202E" d="M980.2,1186.7C980.2,1186.7,980.2,1186.7,980.2,1186.7L980.2,1186.7L980.2,1186.7L980.2,1186.7

+	C980.2,1186.7,980.2,1186.7,980.2,1186.7z"/>

+<path opacity="0.35" fill="#BE202E" d="M980.2,1186.7C980.2,1186.7,980.2,1186.7,980.2,1186.7L980.2,1186.7L980.2,1186.7

+	L980.2,1186.7C980.2,1186.7,980.2,1186.7,980.2,1186.7z"/>

+<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-5738.0635" y1="-2039.799" x2="-5094.3457" y2="-2039.799" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)">

+	<stop  offset="0.3233" style="stop-color:#9E2064"/>

+	<stop  offset="0.6302" style="stop-color:#C92037"/>

+	<stop  offset="0.7514" style="stop-color:#CD2335"/>

+	<stop  offset="1" style="stop-color:#E97826"/>

+</linearGradient>

+<path fill="url(#SVGID_10_)" d="M980.2,1186.7C980.2,1186.7,980.2,1186.7,980.2,1186.7L980.2,1186.7L980.2,1186.7L980.2,1186.7

+	C980.2,1186.7,980.2,1186.7,980.2,1186.7z"/>

+</svg>

diff --git a/tomcat-uidm/webapps/manager/images/tomcat.gif b/tomcat-uidm/webapps/manager/images/tomcat.gif
index 6175673..f2aa6f8 100644
--- a/tomcat-uidm/webapps/manager/images/tomcat.gif
+++ b/tomcat-uidm/webapps/manager/images/tomcat.gif
Binary files differ
diff --git a/tomcat-uidm/webapps/manager/index.jsp b/tomcat-uidm/webapps/manager/index.jsp
new file mode 100644
index 0000000..48f50ec
--- /dev/null
+++ b/tomcat-uidm/webapps/manager/index.jsp
@@ -0,0 +1,18 @@
+<%--

+  Licensed to the Apache Software Foundation (ASF) under one or more

+  contributor license agreements.  See the NOTICE file distributed with

+  this work for additional information regarding copyright ownership.

+  The ASF licenses this file to You under the Apache License, Version 2.0

+  (the "License"); you may not use this file except in compliance with

+  the License.  You may obtain a copy of the License at

+

+      http://www.apache.org/licenses/LICENSE-2.0

+

+  Unless required by applicable law or agreed to in writing, software

+  distributed under the License is distributed on an "AS IS" BASIS,

+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+  See the License for the specific language governing permissions and

+  limitations under the License.

+--%>

+<%@ page session="false" trimDirectiveWhitespaces="true" %>

+<% response.sendRedirect(request.getContextPath() + "/html"); %>
\ No newline at end of file
diff --git a/tomcat-uidm/webapps/manager/status.xsd b/tomcat-uidm/webapps/manager/status.xsd
index 6d9d63a..5322fd0 100644
--- a/tomcat-uidm/webapps/manager/status.xsd
+++ b/tomcat-uidm/webapps/manager/status.xsd
@@ -15,65 +15,70 @@
   See the License for the specific language governing permissions and

   limitations under the License.

 -->

-<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by peter lin (consultant) -->

-<!--W3C Schema generated by XMLSPY v5 rel. 4 U (http://www.xmlspy.com)-->

 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

-	<xs:complexType name="connector">

-		<xs:sequence>

-			<xs:element name="threadInfo" type="threadInfo"/>

-			<xs:element name="requestInfo" type="requestInfo"/>

-			<xs:element name="workers" type="workers"/>

-		</xs:sequence>

-		<xs:attribute name="name" type="xs:string" use="required"/>

-	</xs:complexType>

-	<xs:complexType name="jvm">

-		<xs:sequence>

-			<xs:element name="memory" type="memory"/>

-		</xs:sequence>

-	</xs:complexType>

-	<xs:complexType name="memory">

-		<xs:attribute name="free" type="xs:long" use="required"/>

-		<xs:attribute name="total" type="xs:long" use="required"/>

-		<xs:attribute name="max" type="xs:long" use="required"/>

-	</xs:complexType>

-	<xs:complexType name="requestInfo">

-		<xs:attribute name="maxTime" type="xs:long" use="required"/>

-		<xs:attribute name="processingTime" type="xs:int" use="required"/>

-		<xs:attribute name="requestCount" type="xs:long" use="required"/>

-		<xs:attribute name="errorCount" type="xs:long" use="required"/>

-		<xs:attribute name="bytesReceived" type="xs:long" use="required"/>

-		<xs:attribute name="bytesSent" type="xs:long" use="required"/>

-	</xs:complexType>

-	<xs:element name="status">

-		<xs:complexType>

-			<xs:sequence>

-				<xs:element name="jvm" type="jvm"/>

-				<xs:element name="connector" type="connector"/>

-			</xs:sequence>

-		</xs:complexType>

-	</xs:element>

-	<xs:complexType name="threadInfo">

-		<xs:attribute name="maxThreads" type="xs:int" use="required"/>

-		<xs:attribute name="minSpareThreads" type="xs:int" use="required"/>

-		<xs:attribute name="maxSpareThreads" type="xs:int" use="required"/>

-		<xs:attribute name="currentThreadCount" type="xs:int" use="required"/>

-		<xs:attribute name="currentThreadsBusy" type="xs:int" use="required"/>

-	</xs:complexType>

-	<xs:complexType name="worker">

-		<xs:attribute name="stage" type="xs:string" use="required"/>

-		<xs:attribute name="requestProcessingTime" type="xs:int" use="required"/>

-		<xs:attribute name="requestBytesSent" type="xs:long" use="required"/>

-		<xs:attribute name="requestBytesRecieved" type="xs:long" use="required"/>

-		<xs:attribute name="remoteAddr" type="xs:string" use="required"/>

-		<xs:attribute name="virtualHost" type="xs:string" use="required"/>

-		<xs:attribute name="method" type="xs:string" use="required"/>

-		<xs:attribute name="currentUri" type="xs:string" use="required"/>

-		<xs:attribute name="currentQueryString" type="xs:string" use="required"/>

-		<xs:attribute name="protocol" type="xs:string" use="required"/>

-	</xs:complexType>

-	<xs:complexType name="workers">

-		<xs:sequence>

-			<xs:element name="worker" type="worker"/>

-		</xs:sequence>

-	</xs:complexType>

+    <xs:element name="status">

+        <xs:complexType>

+            <xs:sequence>

+                <xs:element name="jvm" type="jvm"/>

+                <xs:element name="connector" type="connector" minOccurs="1" maxOccurs="unbounded"/>

+            </xs:sequence>

+        </xs:complexType>

+    </xs:element>

+    <xs:complexType name="connector">

+        <xs:sequence>

+            <xs:element name="threadInfo" type="threadInfo"/>

+            <xs:element name="requestInfo" type="requestInfo"/>

+            <xs:element name="workers" type="workers"/>

+        </xs:sequence>

+        <xs:attribute name="name" type="xs:string" use="required"/>

+    </xs:complexType>

+    <xs:complexType name="jvm">

+        <xs:sequence>

+            <xs:element name="memory" type="memory"/>

+            <xs:element name="memorypool" type="memorypool" minOccurs="0" maxOccurs="unbounded"/>

+        </xs:sequence>

+    </xs:complexType>

+    <xs:complexType name="memory">

+        <xs:attribute name="free" type="xs:long" use="required"/>

+        <xs:attribute name="total" type="xs:long" use="required"/>

+        <xs:attribute name="max" type="xs:long" use="required"/>

+    </xs:complexType>

+    <xs:complexType name="memorypool">

+        <xs:attribute name="name" type="xs:string" use="required"/>

+        <xs:attribute name="type" type="xs:string" use="required"/>

+        <xs:attribute name="usageInit" type="xs:long" use="required"/>

+        <xs:attribute name="usageCommitted" type="xs:long" use="required"/>

+        <xs:attribute name="usageMax" type="xs:long" use="required"/>

+        <xs:attribute name="usageUsed" type="xs:long" use="required"/>

+    </xs:complexType>

+    <xs:complexType name="requestInfo">

+        <xs:attribute name="maxTime" type="xs:long" use="required"/>

+        <xs:attribute name="processingTime" type="xs:int" use="required"/>

+        <xs:attribute name="requestCount" type="xs:long" use="required"/>

+        <xs:attribute name="errorCount" type="xs:long" use="required"/>

+        <xs:attribute name="bytesReceived" type="xs:long" use="required"/>

+        <xs:attribute name="bytesSent" type="xs:long" use="required"/>

+    </xs:complexType>

+    <xs:complexType name="threadInfo">

+        <xs:attribute name="maxThreads" type="xs:int" use="required"/>

+        <xs:attribute name="currentThreadCount" type="xs:int" use="required"/>

+        <xs:attribute name="currentThreadsBusy" type="xs:int" use="required"/>

+    </xs:complexType>

+    <xs:complexType name="worker">

+        <xs:attribute name="stage" type="xs:string" use="required"/>

+        <xs:attribute name="requestProcessingTime" type="xs:int" use="required"/>

+        <xs:attribute name="requestBytesSent" type="xs:long" use="required"/>

+        <xs:attribute name="requestBytesReceived" type="xs:long" use="required"/>

+        <xs:attribute name="remoteAddr" type="xs:string" use="required"/>

+        <xs:attribute name="virtualHost" type="xs:string" use="required"/>

+        <xs:attribute name="method" type="xs:string" use="required"/>

+        <xs:attribute name="currentUri" type="xs:string" use="required"/>

+        <xs:attribute name="currentQueryString" type="xs:string" use="required"/>

+        <xs:attribute name="protocol" type="xs:string" use="required"/>

+    </xs:complexType>

+    <xs:complexType name="workers">

+        <xs:sequence>

+            <xs:element name="worker" type="worker" minOccurs="0" maxOccurs="unbounded"/>

+        </xs:sequence>

+    </xs:complexType>

 </xs:schema>

diff --git a/tomcat-uidm/webapps/manager/xform.xsl b/tomcat-uidm/webapps/manager/xform.xsl
index f179a1e..61947f1 100644
--- a/tomcat-uidm/webapps/manager/xform.xsl
+++ b/tomcat-uidm/webapps/manager/xform.xsl
@@ -26,12 +26,12 @@
   <xsl:template match="status">

     <html>

     <head>

-    	<TITLE>Tomcat Status</TITLE>

-		<STYLE type="text/css">

-			body, table, tr, td, a, div, span {

-				vertical-align : top;

-			}

-		</STYLE>

+        <TITLE>Tomcat Status</TITLE>

+        <STYLE type="text/css">

+            body, table, tr, td, a, div, span {

+                vertical-align : top;

+            }

+        </STYLE>

     </head>

     <body>

       <div style='font-size:20px;'>Tomcat Status</div>

@@ -44,55 +44,68 @@
 

   <xsl:template match="jvm">

    <xsl:apply-templates select="memory"/>

+   <b>Memory Pools</b><br />

+   <xsl:apply-templates select="memorypool"/>

+   <hr />

   </xsl:template>

 

   <xsl:template match="memory">

     <table><tr>

-    		 <td><b>JVM:</b></td>

-    		 <td><b>free:</b> <xsl:value-of select="@free"/></td>

-    		 <td><b>total:</b> <xsl:value-of select="@total"/></td>

-    		 <td><b>max:</b> <xsl:value-of select="@max"/></td>

-    	   </tr>

+             <td><b>JVM:</b></td>

+             <td><b>free:</b> <xsl:value-of select="@free"/></td>

+             <td><b>total:</b> <xsl:value-of select="@total"/></td>

+             <td><b>max:</b> <xsl:value-of select="@max"/></td>

+           </tr>

     </table><hr />

   </xsl:template>

 

-  <xsl:template match="connector">

-	 <b>Connector -- </b> <xsl:value-of select="@name"/><br />

+  <xsl:template match="memorypool">

+    <table><tr>

+             <td><b>Name:</b> <xsl:value-of select="@name"/></td>

+             <td><b>Type:</b> <xsl:value-of select="@type"/></td>

+             <td><b>Initial:</b> <xsl:value-of select="@usageInit"/></td>

+             <td><b>Committed:</b> <xsl:value-of select="@usageCommitted"/></td>

+             <td><b>Maximum:</b> <xsl:value-of select="@usageMax"/></td>

+             <td><b>Used:</b> <xsl:value-of select="@usageUsed"/></td>

+           </tr>

+    </table>

+  </xsl:template>

 

-  	<xsl:apply-templates select="threadInfo"/>

-  	<xsl:apply-templates select="requestInfo"/>

-  	<xsl:apply-templates select="workers"/>

+  <xsl:template match="connector">

+     <b>Connector -- </b> <xsl:value-of select="@name"/><br />

+

+      <xsl:apply-templates select="threadInfo"/>

+      <xsl:apply-templates select="requestInfo"/>

+      <xsl:apply-templates select="workers"/>

   </xsl:template>

 

   <xsl:template match="threadInfo">

     <table><tr>

-    		 <td><b>threadInfo </b></td>

-    		 <td><b>maxThreads:</b> <xsl:value-of select="@maxThreads"/></td>

-    		 <td><b>minSpareThreads:</b> <xsl:value-of select="@minSpareThreads"/></td>

-    		 <td><b>maxSpareThreads:</b> <xsl:value-of select="@maxSpareThreads"/></td>

-    		 <td><b>currentThreadCount:</b> <xsl:value-of select="@currentThreadCount"/></td>

-    		 <td><b>currentThreadsBusy:</b> <xsl:value-of select="@currentThreadsBusy"/></td>

-    	   </tr>

+             <td><b>threadInfo</b></td>

+             <td><b>maxThreads:</b> <xsl:value-of select="@maxThreads"/></td>

+             <td><b>currentThreadCount:</b> <xsl:value-of select="@currentThreadCount"/></td>

+             <td><b>currentThreadsBusy:</b> <xsl:value-of select="@currentThreadsBusy"/></td>

+           </tr>

     </table><hr />

   </xsl:template>

 

   <xsl:template match="requestInfo">

     <table><tr>

-    		 <td><b>requestInfo </b></td>

-    		 <td><b>maxTime:</b> <xsl:value-of select="@maxTime"/></td>

-    		 <td><b>processingTime:</b> <xsl:value-of select="@processingTime"/></td>

-    		 <td><b>requestCount:</b> <xsl:value-of select="@requestCount"/></td>

-    		 <td><b>errorCount:</b> <xsl:value-of select="@errorCount"/></td>

-    		 <td><b>bytesReceived:</b> <xsl:value-of select="@bytesReceived"/></td>

-    		 <td><b>bytesSent:</b> <xsl:value-of select="@bytesSent"/></td>

-    	   </tr>

+             <td><b>requestInfo </b></td>

+             <td><b>maxTime:</b> <xsl:value-of select="@maxTime"/></td>

+             <td><b>processingTime:</b> <xsl:value-of select="@processingTime"/></td>

+             <td><b>requestCount:</b> <xsl:value-of select="@requestCount"/></td>

+             <td><b>errorCount:</b> <xsl:value-of select="@errorCount"/></td>

+             <td><b>bytesReceived:</b> <xsl:value-of select="@bytesReceived"/></td>

+             <td><b>bytesSent:</b> <xsl:value-of select="@bytesSent"/></td>

+           </tr>

     </table><hr />

   </xsl:template>

 

   <xsl:template match="workers">

    <table>

     <tr><th>Stage</th><th>Time</th><th>B Sent</th><th>B Recv</th><th>Client</th><th>VHost</th><th>Request</th></tr>

-  	<xsl:apply-templates select="worker"/>

+      <xsl:apply-templates select="worker"/>

 

    </table><hr />

   </xsl:template>