From 13a2de080323b0a56a04707a0eae331f0b461311 Mon Sep 17 00:00:00 2001 From: Hengqing Hu Date: Fri, 9 Mar 2012 16:12:00 +0800 Subject: [PATCH] Remove trailing whitespaces in regular file Change-Id: Iba81fd861db4dfc00d41275a26cdbc8b6e07ab38 --- openstack-identity-api/pom.xml | 52 +- .../src/docbkx/RAX-KS/RAX-KSQA-admin.wadl | 212 ++-- .../src/docbkx/admin/OS-KSADM-admin.wadl | 76 +- .../src/docbkx/admin/OS-KSCATALOG-admin.wadl | 46 +- .../src/docbkx/admin/OS-KSEC2-admin.wadl | 18 +- .../src/docbkx/admin/RAX-KSGRP-admin.wadl | 18 +- .../src/docbkx/admin/RAX-KSKEY-admin.wadl | 16 +- .../src/docbkx/admin/RAX-KSQA-admin.wadl | 212 ++-- .../src/docbkx/admin/identity-admin.wadl | 20 +- .../src/docbkx/common/js/shjs/sh_main.js | 1076 ++++++++--------- .../src/docbkx/common/style/shjs/sh_style.css | 132 +- .../src/docbkx/common/xslt/schema.xslt | 2 +- tools/rfc.sh | 2 +- 13 files changed, 941 insertions(+), 941 deletions(-) diff --git a/openstack-identity-api/pom.xml b/openstack-identity-api/pom.xml index 54b4f354..9e4277a5 100644 --- a/openstack-identity-api/pom.xml +++ b/openstack-identity-api/pom.xml @@ -1,4 +1,4 @@ - @@ -9,27 +9,27 @@ 1.0.0-SNAPSHOT jar Keystone Dev Guide - - - Rackspace Research Repositories - - true - - - - rackspace-research - Rackspace Research Repository - http://maven.research.rackspacecloud.com/content/groups/public/ - - - - - rackspace-research - Rackspace Research Repository - http://maven.research.rackspacecloud.com/content/groups/public/ - - - + + + Rackspace Research Repositories + + true + + + + rackspace-research + Rackspace Research Repository + http://maven.research.rackspacecloud.com/content/groups/public/ + + + + + rackspace-research + Rackspace Research Repository + http://maven.research.rackspacecloud.com/content/groups/public/ + + + UTF-8 @@ -219,7 +219,7 @@ - + @@ -232,11 +232,11 @@ - + - - - - - - - - -%common; -]> - - - - - - - - - - - - - - - - You need a valid admin token for access. - - - - - - - - - - - - - - - - - -

Gets a User secret Question and Answer.

-
- - - - - - - - - - - - - &commonFaults; - &getFaults; -
- - -

Updates a User secret Question and Answer.

-
- - - - - - - - - - - - - - - - - - - - - - - - - &commonFaults; - &postPutFaults; -
-
+ + + + + + + + + + +%common; +]> + + + + + + + + + + + + + + + + You need a valid admin token for access. + + + + + + + + + + + + + + + + + +

Gets a User secret Question and Answer.

+
+ + + + + + + + + + + + + &commonFaults; + &getFaults; +
+ + +

Updates a User secret Question and Answer.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + &commonFaults; + &postPutFaults; +
+
diff --git a/openstack-identity-api/src/docbkx/admin/OS-KSADM-admin.wadl b/openstack-identity-api/src/docbkx/admin/OS-KSADM-admin.wadl index 8ee61a00..42590077 100644 --- a/openstack-identity-api/src/docbkx/admin/OS-KSADM-admin.wadl +++ b/openstack-identity-api/src/docbkx/admin/OS-KSADM-admin.wadl @@ -14,11 +14,11 @@ You need a valid admin token for access. - + @@ -57,12 +57,12 @@ - + - + @@ -213,12 +213,12 @@ &commonFaults; &getFaults; - +

Lists all the users for a tenant.

Lists all the users for a tenant.

- +
@@ -239,7 +239,7 @@ &commonFaults; &getFaults;
- +

Adds a specific role to a user for a tenant.

@@ -248,7 +248,7 @@ &commonFaults; &postPutFaults; &getFaults; -
+
@@ -257,13 +257,13 @@ &commonFaults; &getFaults; - - + +

List users.

- +
@@ -280,8 +280,8 @@ &commonFaults; &getFaults;
- - + +

Adds a user.

@@ -314,7 +314,7 @@ &getFaults; &postPutFaults;
- +

Update a user.

@@ -347,7 +347,7 @@ &postPutFaults; &getFaults;
- +

Delete a user.

@@ -356,12 +356,12 @@ &commonFaults; &getFaults;
- +

Enable user.

- - + +
@@ -401,8 +401,8 @@ &commonFaults; &postPutFaults; &getFaults; -
- + +

Deletes a specific global role from a user.

@@ -410,9 +410,9 @@ &commonFaults; &getFaults; -
- - + + + @@ -450,7 +450,7 @@

List credentials.

- +
@@ -471,11 +471,11 @@ &commonFaults; &getFaults;
- +

List credentials by type.

- +
@@ -495,12 +495,12 @@ &commonFaults; &getFaults; -
+

Update credentials.

- +
@@ -530,7 +530,7 @@ &postPutFaults; &getFaults;
- +

Delete User credentials.

@@ -540,11 +540,11 @@ &postPutFaults; &getFaults;
- +

Get user credentials.

- +
@@ -561,12 +561,12 @@ &commonFaults; &getFaults;
- +

List roles.

- +
@@ -592,7 +592,7 @@

Add a Role.

-
+ @@ -673,7 +673,7 @@ &postPutFaults; &getFaults;
- +

Delete a role.

@@ -751,7 +751,7 @@

Add a service.

-
+
@@ -785,7 +785,7 @@

Delete a service.

-
+
&commonFaults; &getFaults; diff --git a/openstack-identity-api/src/docbkx/admin/OS-KSCATALOG-admin.wadl b/openstack-identity-api/src/docbkx/admin/OS-KSCATALOG-admin.wadl index 29b52502..f6855989 100644 --- a/openstack-identity-api/src/docbkx/admin/OS-KSCATALOG-admin.wadl +++ b/openstack-identity-api/src/docbkx/admin/OS-KSCATALOG-admin.wadl @@ -42,7 +42,7 @@ - + @@ -53,9 +53,9 @@ - +
- + @@ -77,12 +77,12 @@ - +

List Endpoint Templates.

- -
+ + @@ -101,11 +101,11 @@ &commonFaults; &getFaults;
- +

Get Endpoint Template.

- +
@@ -122,12 +122,12 @@ &commonFaults; &getFaults;
- +

Add Endpoint Template.

- - + +
@@ -159,21 +159,21 @@ &getFaults; &postPutFaults;
- +

Delete a Endpoint Template.

-
+ &commonFaults; &getFaults;
- +

Add Endpoint to a tenant.

- - + +
@@ -207,12 +207,12 @@ &getFaults; &postPutFaults;
- +

List Endpoints of a Tenant.

- -
+ + @@ -228,11 +228,11 @@ &commonFaults; &getFaults;
- +

Get Endpoint of a Tenant.

- +
@@ -249,11 +249,11 @@ &commonFaults; &getFaults;
- +

Delete a Endpoint from a Tenant.

-
+ &commonFaults; &getFaults; diff --git a/openstack-identity-api/src/docbkx/admin/OS-KSEC2-admin.wadl b/openstack-identity-api/src/docbkx/admin/OS-KSEC2-admin.wadl index d9724444..2f903f4c 100644 --- a/openstack-identity-api/src/docbkx/admin/OS-KSEC2-admin.wadl +++ b/openstack-identity-api/src/docbkx/admin/OS-KSEC2-admin.wadl @@ -14,7 +14,7 @@ You need a valid admin token for access. - + @@ -54,7 +54,7 @@
-
+ @@ -63,8 +63,8 @@ - - + + @@ -122,7 +122,7 @@ &commonFaults; &getFaults; - +

List credentials by type.

@@ -145,7 +145,7 @@ &commonFaults; &getFaults; -
+ @@ -179,7 +179,7 @@ &postPutFaults; &getFaults; - +

Delete User credentials.

@@ -189,7 +189,7 @@ &postPutFaults; &getFaults;
- +

Get user credentials.

diff --git a/openstack-identity-api/src/docbkx/admin/RAX-KSGRP-admin.wadl b/openstack-identity-api/src/docbkx/admin/RAX-KSGRP-admin.wadl index 01548029..8ccac652 100644 --- a/openstack-identity-api/src/docbkx/admin/RAX-KSGRP-admin.wadl +++ b/openstack-identity-api/src/docbkx/admin/RAX-KSGRP-admin.wadl @@ -13,17 +13,17 @@ ]> - + @@ -32,13 +32,13 @@ - + You need a valid admin token for access. - + @@ -49,11 +49,11 @@ - +

List all the groups for a user.

- +
@@ -70,5 +70,5 @@ &commonFaults; &getFaults;
-
- +
+ diff --git a/openstack-identity-api/src/docbkx/admin/RAX-KSKEY-admin.wadl b/openstack-identity-api/src/docbkx/admin/RAX-KSKEY-admin.wadl index 3bebb1b3..0f573127 100644 --- a/openstack-identity-api/src/docbkx/admin/RAX-KSKEY-admin.wadl +++ b/openstack-identity-api/src/docbkx/admin/RAX-KSKEY-admin.wadl @@ -14,7 +14,7 @@ You need a valid admin token for access. - + @@ -62,7 +62,7 @@ - + @@ -120,11 +120,11 @@ &commonFaults; &getFaults; - +

List credentials by type.

- +
@@ -144,7 +144,7 @@ &commonFaults; &getFaults; -
+ @@ -178,7 +178,7 @@ &postPutFaults; &getFaults; - +

Delete User credentials.

@@ -188,7 +188,7 @@ &postPutFaults; &getFaults;
- +

Get user credentials.

diff --git a/openstack-identity-api/src/docbkx/admin/RAX-KSQA-admin.wadl b/openstack-identity-api/src/docbkx/admin/RAX-KSQA-admin.wadl index 23d201fd..1d9795c7 100644 --- a/openstack-identity-api/src/docbkx/admin/RAX-KSQA-admin.wadl +++ b/openstack-identity-api/src/docbkx/admin/RAX-KSQA-admin.wadl @@ -1,106 +1,106 @@ - - - - - - - - - - -%common; -]> - - - - - - - - - - - - - - - - You need a valid admin token for access. - - - - - - - - - - - - - - - - - -

Gets a User secret Question and Answer.

-
- - - - - - - - - - - - - &commonFaults; - &getFaults; -
- - -

Updates a User secret Question and Answer.

-
- - - - - - - - - - - - - - - - - - - - - - - - - &commonFaults; - &postPutFaults; -
-
+ + + + + + + + + + +%common; +]> + + + + + + + + + + + + + + + + You need a valid admin token for access. + + + + + + + + + + + + + + + + + +

Gets a User secret Question and Answer.

+
+ + + + + + + + + + + + + &commonFaults; + &getFaults; +
+ + +

Updates a User secret Question and Answer.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + &commonFaults; + &postPutFaults; +
+
diff --git a/openstack-identity-api/src/docbkx/admin/identity-admin.wadl b/openstack-identity-api/src/docbkx/admin/identity-admin.wadl index a6ded2ac..a40895b9 100644 --- a/openstack-identity-api/src/docbkx/admin/identity-admin.wadl +++ b/openstack-identity-api/src/docbkx/admin/identity-admin.wadl @@ -16,7 +16,7 @@ xmlns:capi="http://docs.openstack.org/common/api/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0" + xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0" xsi:schemaLocation="http://docs.openstack.org/identity/api/v2.0 ../common/xsd/api.xsd http://docs.openstack.org/common/api/v1.0 ../common/xsd/api-common.xsd http://wadl.dev.java.net/2009/02 http://www.w3.org/Submission/wadl/wadl.xsd @@ -64,7 +64,7 @@ You need a valid admin token for access. - + @@ -107,11 +107,11 @@ - + - +

@@ -120,7 +120,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -343,7 +343,7 @@ - + @@ -360,7 +360,7 @@

Returns global roles for a specific user (excludes tenant roles). -

+

Returns a list of global roles associated with a specific user (excludes tenant roles).

@@ -390,7 +390,7 @@

The operation returns a list of tenants which the supplied token provides access to. This call must be authenticated, so a valid token must - be passed in as a header. + be passed in as a header.

@@ -483,7 +483,7 @@ &commonFaults; &getFaults;
- +

diff --git a/openstack-identity-api/src/docbkx/common/js/shjs/sh_main.js b/openstack-identity-api/src/docbkx/common/js/shjs/sh_main.js index 1fe3ea07..c83fd1b0 100644 --- a/openstack-identity-api/src/docbkx/common/js/shjs/sh_main.js +++ b/openstack-identity-api/src/docbkx/common/js/shjs/sh_main.js @@ -1,538 +1,538 @@ -/* -SHJS - Syntax Highlighting in JavaScript -Copyright (C) 2007, 2008 gnombat@users.sourceforge.net -License: http://shjs.sourceforge.net/doc/gplv3.html -*/ - -if (! this.sh_languages) { - this.sh_languages = {}; -} -var sh_requests = {}; - -function sh_isEmailAddress(url) { - if (/^mailto:/.test(url)) { - return false; - } - return url.indexOf('@') !== -1; -} - -function sh_setHref(tags, numTags, inputString) { - var url = inputString.substring(tags[numTags - 2].pos, tags[numTags - 1].pos); - if (url.length >= 2 && url.charAt(0) === '<' && url.charAt(url.length - 1) === '>') { - url = url.substr(1, url.length - 2); - } - if (sh_isEmailAddress(url)) { - url = 'mailto:' + url; - } - tags[numTags - 2].node.href = url; -} - -/* -Konqueror has a bug where the regular expression /$/g will not match at the end -of a line more than once: - - var regex = /$/g; - var match; - - var line = '1234567890'; - regex.lastIndex = 10; - match = regex.exec(line); - - var line2 = 'abcde'; - regex.lastIndex = 5; - match = regex.exec(line2); // fails -*/ -function sh_konquerorExec(s) { - var result = ['']; - result.index = s.length; - result.input = s; - return result; -} - -/** -Highlights all elements containing source code in a text string. The return -value is an array of objects, each representing an HTML start or end tag. Each -object has a property named pos, which is an integer representing the text -offset of the tag. Every start tag also has a property named node, which is the -DOM element started by the tag. End tags do not have this property. -@param inputString a text string -@param language a language definition object -@return an array of tag objects -*/ -function sh_highlightString(inputString, language) { - if (/Konqueror/.test(navigator.userAgent)) { - if (! language.konquered) { - for (var s = 0; s < language.length; s++) { - for (var p = 0; p < language[s].length; p++) { - var r = language[s][p][0]; - if (r.source === '$') { - r.exec = sh_konquerorExec; - } - } - } - language.konquered = true; - } - } - - var a = document.createElement('a'); - var span = document.createElement('span'); - - // the result - var tags = []; - var numTags = 0; - - // each element is a pattern object from language - var patternStack = []; - - // the current position within inputString - var pos = 0; - - // the name of the current style, or null if there is no current style - var currentStyle = null; - - var output = function(s, style) { - var length = s.length; - // this is more than just an optimization - we don't want to output empty elements - if (length === 0) { - return; - } - if (! style) { - var stackLength = patternStack.length; - if (stackLength !== 0) { - var pattern = patternStack[stackLength - 1]; - // check whether this is a state or an environment - if (! pattern[3]) { - // it's not a state - it's an environment; use the style for this environment - style = pattern[1]; - } - } - } - if (currentStyle !== style) { - if (currentStyle) { - tags[numTags++] = {pos: pos}; - if (currentStyle === 'sh_url') { - sh_setHref(tags, numTags, inputString); - } - } - if (style) { - var clone; - if (style === 'sh_url') { - clone = a.cloneNode(false); - } - else { - clone = span.cloneNode(false); - } - clone.className = style; - tags[numTags++] = {node: clone, pos: pos}; - } - } - pos += length; - currentStyle = style; - }; - - var endOfLinePattern = /\r\n|\r|\n/g; - endOfLinePattern.lastIndex = 0; - var inputStringLength = inputString.length; - while (pos < inputStringLength) { - var start = pos; - var end; - var startOfNextLine; - var endOfLineMatch = endOfLinePattern.exec(inputString); - if (endOfLineMatch === null) { - end = inputStringLength; - startOfNextLine = inputStringLength; - } - else { - end = endOfLineMatch.index; - startOfNextLine = endOfLinePattern.lastIndex; - } - - var line = inputString.substring(start, end); - - var matchCache = []; - for (;;) { - var posWithinLine = pos - start; - - var stateIndex; - var stackLength = patternStack.length; - if (stackLength === 0) { - stateIndex = 0; - } - else { - // get the next state - stateIndex = patternStack[stackLength - 1][2]; - } - - var state = language[stateIndex]; - var numPatterns = state.length; - var mc = matchCache[stateIndex]; - if (! mc) { - mc = matchCache[stateIndex] = []; - } - var bestMatch = null; - var bestPatternIndex = -1; - for (var i = 0; i < numPatterns; i++) { - var match; - if (i < mc.length && (mc[i] === null || posWithinLine <= mc[i].index)) { - match = mc[i]; - } - else { - var regex = state[i][0]; - regex.lastIndex = posWithinLine; - match = regex.exec(line); - mc[i] = match; - } - if (match !== null && (bestMatch === null || match.index < bestMatch.index)) { - bestMatch = match; - bestPatternIndex = i; - if (match.index === posWithinLine) { - break; - } - } - } - - if (bestMatch === null) { - output(line.substring(posWithinLine), null); - break; - } - else { - // got a match - if (bestMatch.index > posWithinLine) { - output(line.substring(posWithinLine, bestMatch.index), null); - } - - var pattern = state[bestPatternIndex]; - - var newStyle = pattern[1]; - var matchedString; - if (newStyle instanceof Array) { - for (var subexpression = 0; subexpression < newStyle.length; subexpression++) { - matchedString = bestMatch[subexpression + 1]; - output(matchedString, newStyle[subexpression]); - } - } - else { - matchedString = bestMatch[0]; - output(matchedString, newStyle); - } - - switch (pattern[2]) { - case -1: - // do nothing - break; - case -2: - // exit - patternStack.pop(); - break; - case -3: - // exitall - patternStack.length = 0; - break; - default: - // this was the start of a delimited pattern or a state/environment - patternStack.push(pattern); - break; - } - } - } - - // end of the line - if (currentStyle) { - tags[numTags++] = {pos: pos}; - if (currentStyle === 'sh_url') { - sh_setHref(tags, numTags, inputString); - } - currentStyle = null; - } - pos = startOfNextLine; - } - - return tags; -} - -//////////////////////////////////////////////////////////////////////////////// -// DOM-dependent functions - -function sh_getClasses(element) { - var result = []; - var htmlClass = element.className; - if (htmlClass && htmlClass.length > 0) { - var htmlClasses = htmlClass.split(' '); - for (var i = 0; i < htmlClasses.length; i++) { - if (htmlClasses[i].length > 0) { - result.push(htmlClasses[i]); - } - } - } - return result; -} - -function sh_addClass(element, name) { - var htmlClasses = sh_getClasses(element); - for (var i = 0; i < htmlClasses.length; i++) { - if (name.toLowerCase() === htmlClasses[i].toLowerCase()) { - return; - } - } - htmlClasses.push(name); - element.className = htmlClasses.join(' '); -} - -/** -Extracts the tags from an HTML DOM NodeList. -@param nodeList a DOM NodeList -@param result an object with text, tags and pos properties -*/ -function sh_extractTagsFromNodeList(nodeList, result) { - var length = nodeList.length; - for (var i = 0; i < length; i++) { - var node = nodeList.item(i); - switch (node.nodeType) { - case 1: - if (node.nodeName.toLowerCase() === 'br') { - var terminator; - if (/MSIE/.test(navigator.userAgent)) { - terminator = '\r'; - } - else { - terminator = '\n'; - } - result.text.push(terminator); - result.pos++; - } - else { - result.tags.push({node: node.cloneNode(false), pos: result.pos}); - sh_extractTagsFromNodeList(node.childNodes, result); - result.tags.push({pos: result.pos}); - } - break; - case 3: - case 4: - result.text.push(node.data); - result.pos += node.length; - break; - } - } -} - -/** -Extracts the tags from the text of an HTML element. The extracted tags will be -returned as an array of tag objects. See sh_highlightString for the format of -the tag objects. -@param element a DOM element -@param tags an empty array; the extracted tag objects will be returned in it -@return the text of the element -@see sh_highlightString -*/ -function sh_extractTags(element, tags) { - var result = {}; - result.text = []; - result.tags = tags; - result.pos = 0; - sh_extractTagsFromNodeList(element.childNodes, result); - return result.text.join(''); -} - -/** -Merges the original tags from an element with the tags produced by highlighting. -@param originalTags an array containing the original tags -@param highlightTags an array containing the highlighting tags - these must not overlap -@result an array containing the merged tags -*/ -function sh_mergeTags(originalTags, highlightTags) { - var numOriginalTags = originalTags.length; - if (numOriginalTags === 0) { - return highlightTags; - } - - var numHighlightTags = highlightTags.length; - if (numHighlightTags === 0) { - return originalTags; - } - - var result = []; - var originalIndex = 0; - var highlightIndex = 0; - - while (originalIndex < numOriginalTags && highlightIndex < numHighlightTags) { - var originalTag = originalTags[originalIndex]; - var highlightTag = highlightTags[highlightIndex]; - - if (originalTag.pos <= highlightTag.pos) { - result.push(originalTag); - originalIndex++; - } - else { - result.push(highlightTag); - if (highlightTags[highlightIndex + 1].pos <= originalTag.pos) { - highlightIndex++; - result.push(highlightTags[highlightIndex]); - highlightIndex++; - } - else { - // new end tag - result.push({pos: originalTag.pos}); - - // new start tag - highlightTags[highlightIndex] = {node: highlightTag.node.cloneNode(false), pos: originalTag.pos}; - } - } - } - - while (originalIndex < numOriginalTags) { - result.push(originalTags[originalIndex]); - originalIndex++; - } - - while (highlightIndex < numHighlightTags) { - result.push(highlightTags[highlightIndex]); - highlightIndex++; - } - - return result; -} - -/** -Inserts tags into text. -@param tags an array of tag objects -@param text a string representing the text -@return a DOM DocumentFragment representing the resulting HTML -*/ -function sh_insertTags(tags, text) { - var doc = document; - - var result = document.createDocumentFragment(); - var tagIndex = 0; - var numTags = tags.length; - var textPos = 0; - var textLength = text.length; - var currentNode = result; - - // output one tag or text node every iteration - while (textPos < textLength || tagIndex < numTags) { - var tag; - var tagPos; - if (tagIndex < numTags) { - tag = tags[tagIndex]; - tagPos = tag.pos; - } - else { - tagPos = textLength; - } - - if (tagPos <= textPos) { - // output the tag - if (tag.node) { - // start tag - var newNode = tag.node; - currentNode.appendChild(newNode); - currentNode = newNode; - } - else { - // end tag - currentNode = currentNode.parentNode; - } - tagIndex++; - } - else { - // output text - currentNode.appendChild(doc.createTextNode(text.substring(textPos, tagPos))); - textPos = tagPos; - } - } - - return result; -} - -/** -Highlights an element containing source code. Upon completion of this function, -the element will have been placed in the "sh_sourceCode" class. -@param element a DOM

 element containing the source code to be highlighted
-@param  language  a language definition object
-*/
-function sh_highlightElement(element, language) {
-  sh_addClass(element, 'sh_sourceCode');
-  var originalTags = [];
-  var inputString = sh_extractTags(element, originalTags);
-  var highlightTags = sh_highlightString(inputString, language);
-  var tags = sh_mergeTags(originalTags, highlightTags);
-  var documentFragment = sh_insertTags(tags, inputString);
-  while (element.hasChildNodes()) {
-    element.removeChild(element.firstChild);
-  }
-  element.appendChild(documentFragment);
-}
-
-function sh_getXMLHttpRequest() {
-  if (window.ActiveXObject) {
-    return new ActiveXObject('Msxml2.XMLHTTP');
-  }
-  else if (window.XMLHttpRequest) {
-    return new XMLHttpRequest();
-  }
-  throw 'No XMLHttpRequest implementation available';
-}
-
-function sh_load(language, element, prefix, suffix) {
-  if (language in sh_requests) {
-    sh_requests[language].push(element);
-    return;
-  }
-  sh_requests[language] = [element];
-  var request = sh_getXMLHttpRequest();
-  var url = prefix + 'sh_' + language + suffix;
-  request.open('GET', url, true);
-  request.onreadystatechange = function () {
-    if (request.readyState === 4) {
-      try {
-        if (! request.status || request.status === 200) {
-          eval(request.responseText);
-          var elements = sh_requests[language];
-          for (var i = 0; i < elements.length; i++) {
-            sh_highlightElement(elements[i], sh_languages[language]);
-          }
-        }
-        else {
-          throw 'HTTP error: status ' + request.status;
-        }
-      }
-      finally {
-        request = null;
-      }
-    }
-  };
-  request.send(null);
-}
-
-/**
-Highlights all elements containing source code on the current page. Elements
-containing source code must be "pre" elements with a "class" attribute of
-"sh_LANGUAGE", where LANGUAGE is a valid language identifier; e.g., "sh_java"
-identifies the element as containing "java" language source code.
-*/
-function sh_highlightDocument(prefix, suffix) {
-  var nodeList = document.getElementsByTagName('pre');
-  for (var i = 0; i < nodeList.length; i++) {
-    var element = nodeList.item(i);
-    var htmlClasses = sh_getClasses(element);
-    for (var j = 0; j < htmlClasses.length; j++) {
-      var htmlClass = htmlClasses[j].toLowerCase();
-      if (htmlClass === 'sh_sourcecode') {
-        continue;
-      }
-      if (htmlClass.substr(0, 3) === 'sh_') {
-        var language = htmlClass.substring(3);
-        if (language in sh_languages) {
-          sh_highlightElement(element, sh_languages[language]);
-        }
-        else if (typeof(prefix) === 'string' && typeof(suffix) === 'string') {
-          sh_load(language, element, prefix, suffix);
-        }
-        else {
-          throw 'Found 
 element with class="' + htmlClass + '", but no such language exists';
-        }
-        break;
-      }
-    }
-  }
-}
+/*
+SHJS - Syntax Highlighting in JavaScript
+Copyright (C) 2007, 2008 gnombat@users.sourceforge.net
+License: http://shjs.sourceforge.net/doc/gplv3.html
+*/
+
+if (! this.sh_languages) {
+  this.sh_languages = {};
+}
+var sh_requests = {};
+
+function sh_isEmailAddress(url) {
+  if (/^mailto:/.test(url)) {
+    return false;
+  }
+  return url.indexOf('@') !== -1;
+}
+
+function sh_setHref(tags, numTags, inputString) {
+  var url = inputString.substring(tags[numTags - 2].pos, tags[numTags - 1].pos);
+  if (url.length >= 2 && url.charAt(0) === '<' && url.charAt(url.length - 1) === '>') {
+    url = url.substr(1, url.length - 2);
+  }
+  if (sh_isEmailAddress(url)) {
+    url = 'mailto:' + url;
+  }
+  tags[numTags - 2].node.href = url;
+}
+
+/*
+Konqueror has a bug where the regular expression /$/g will not match at the end
+of a line more than once:
+
+  var regex = /$/g;
+  var match;
+
+  var line = '1234567890';
+  regex.lastIndex = 10;
+  match = regex.exec(line);
+
+  var line2 = 'abcde';
+  regex.lastIndex = 5;
+  match = regex.exec(line2);  // fails
+*/
+function sh_konquerorExec(s) {
+  var result = [''];
+  result.index = s.length;
+  result.input = s;
+  return result;
+}
+
+/**
+Highlights all elements containing source code in a text string.  The return
+value is an array of objects, each representing an HTML start or end tag.  Each
+object has a property named pos, which is an integer representing the text
+offset of the tag. Every start tag also has a property named node, which is the
+DOM element started by the tag. End tags do not have this property.
+@param  inputString  a text string
+@param  language  a language definition object
+@return  an array of tag objects
+*/
+function sh_highlightString(inputString, language) {
+  if (/Konqueror/.test(navigator.userAgent)) {
+    if (! language.konquered) {
+      for (var s = 0; s < language.length; s++) {
+        for (var p = 0; p < language[s].length; p++) {
+          var r = language[s][p][0];
+          if (r.source === '$') {
+            r.exec = sh_konquerorExec;
+          }
+        }
+      }
+      language.konquered = true;
+    }
+  }
+
+  var a = document.createElement('a');
+  var span = document.createElement('span');
+
+  // the result
+  var tags = [];
+  var numTags = 0;
+
+  // each element is a pattern object from language
+  var patternStack = [];
+
+  // the current position within inputString
+  var pos = 0;
+
+  // the name of the current style, or null if there is no current style
+  var currentStyle = null;
+
+  var output = function(s, style) {
+    var length = s.length;
+    // this is more than just an optimization - we don't want to output empty  elements
+    if (length === 0) {
+      return;
+    }
+    if (! style) {
+      var stackLength = patternStack.length;
+      if (stackLength !== 0) {
+        var pattern = patternStack[stackLength - 1];
+        // check whether this is a state or an environment
+        if (! pattern[3]) {
+          // it's not a state - it's an environment; use the style for this environment
+          style = pattern[1];
+        }
+      }
+    }
+    if (currentStyle !== style) {
+      if (currentStyle) {
+        tags[numTags++] = {pos: pos};
+        if (currentStyle === 'sh_url') {
+          sh_setHref(tags, numTags, inputString);
+        }
+      }
+      if (style) {
+        var clone;
+        if (style === 'sh_url') {
+          clone = a.cloneNode(false);
+        }
+        else {
+          clone = span.cloneNode(false);
+        }
+        clone.className = style;
+        tags[numTags++] = {node: clone, pos: pos};
+      }
+    }
+    pos += length;
+    currentStyle = style;
+  };
+
+  var endOfLinePattern = /\r\n|\r|\n/g;
+  endOfLinePattern.lastIndex = 0;
+  var inputStringLength = inputString.length;
+  while (pos < inputStringLength) {
+    var start = pos;
+    var end;
+    var startOfNextLine;
+    var endOfLineMatch = endOfLinePattern.exec(inputString);
+    if (endOfLineMatch === null) {
+      end = inputStringLength;
+      startOfNextLine = inputStringLength;
+    }
+    else {
+      end = endOfLineMatch.index;
+      startOfNextLine = endOfLinePattern.lastIndex;
+    }
+
+    var line = inputString.substring(start, end);
+
+    var matchCache = [];
+    for (;;) {
+      var posWithinLine = pos - start;
+
+      var stateIndex;
+      var stackLength = patternStack.length;
+      if (stackLength === 0) {
+        stateIndex = 0;
+      }
+      else {
+        // get the next state
+        stateIndex = patternStack[stackLength - 1][2];
+      }
+
+      var state = language[stateIndex];
+      var numPatterns = state.length;
+      var mc = matchCache[stateIndex];
+      if (! mc) {
+        mc = matchCache[stateIndex] = [];
+      }
+      var bestMatch = null;
+      var bestPatternIndex = -1;
+      for (var i = 0; i < numPatterns; i++) {
+        var match;
+        if (i < mc.length && (mc[i] === null || posWithinLine <= mc[i].index)) {
+          match = mc[i];
+        }
+        else {
+          var regex = state[i][0];
+          regex.lastIndex = posWithinLine;
+          match = regex.exec(line);
+          mc[i] = match;
+        }
+        if (match !== null && (bestMatch === null || match.index < bestMatch.index)) {
+          bestMatch = match;
+          bestPatternIndex = i;
+          if (match.index === posWithinLine) {
+            break;
+          }
+        }
+      }
+
+      if (bestMatch === null) {
+        output(line.substring(posWithinLine), null);
+        break;
+      }
+      else {
+        // got a match
+        if (bestMatch.index > posWithinLine) {
+          output(line.substring(posWithinLine, bestMatch.index), null);
+        }
+
+        var pattern = state[bestPatternIndex];
+
+        var newStyle = pattern[1];
+        var matchedString;
+        if (newStyle instanceof Array) {
+          for (var subexpression = 0; subexpression < newStyle.length; subexpression++) {
+            matchedString = bestMatch[subexpression + 1];
+            output(matchedString, newStyle[subexpression]);
+          }
+        }
+        else {
+          matchedString = bestMatch[0];
+          output(matchedString, newStyle);
+        }
+
+        switch (pattern[2]) {
+        case -1:
+          // do nothing
+          break;
+        case -2:
+          // exit
+          patternStack.pop();
+          break;
+        case -3:
+          // exitall
+          patternStack.length = 0;
+          break;
+        default:
+          // this was the start of a delimited pattern or a state/environment
+          patternStack.push(pattern);
+          break;
+        }
+      }
+    }
+
+    // end of the line
+    if (currentStyle) {
+      tags[numTags++] = {pos: pos};
+      if (currentStyle === 'sh_url') {
+        sh_setHref(tags, numTags, inputString);
+      }
+      currentStyle = null;
+    }
+    pos = startOfNextLine;
+  }
+
+  return tags;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// DOM-dependent functions
+
+function sh_getClasses(element) {
+  var result = [];
+  var htmlClass = element.className;
+  if (htmlClass && htmlClass.length > 0) {
+    var htmlClasses = htmlClass.split(' ');
+    for (var i = 0; i < htmlClasses.length; i++) {
+      if (htmlClasses[i].length > 0) {
+        result.push(htmlClasses[i]);
+      }
+    }
+  }
+  return result;
+}
+
+function sh_addClass(element, name) {
+  var htmlClasses = sh_getClasses(element);
+  for (var i = 0; i < htmlClasses.length; i++) {
+    if (name.toLowerCase() === htmlClasses[i].toLowerCase()) {
+      return;
+    }
+  }
+  htmlClasses.push(name);
+  element.className = htmlClasses.join(' ');
+}
+
+/**
+Extracts the tags from an HTML DOM NodeList.
+@param  nodeList  a DOM NodeList
+@param  result  an object with text, tags and pos properties
+*/
+function sh_extractTagsFromNodeList(nodeList, result) {
+  var length = nodeList.length;
+  for (var i = 0; i < length; i++) {
+    var node = nodeList.item(i);
+    switch (node.nodeType) {
+    case 1:
+      if (node.nodeName.toLowerCase() === 'br') {
+        var terminator;
+        if (/MSIE/.test(navigator.userAgent)) {
+          terminator = '\r';
+        }
+        else {
+          terminator = '\n';
+        }
+        result.text.push(terminator);
+        result.pos++;
+      }
+      else {
+        result.tags.push({node: node.cloneNode(false), pos: result.pos});
+        sh_extractTagsFromNodeList(node.childNodes, result);
+        result.tags.push({pos: result.pos});
+      }
+      break;
+    case 3:
+    case 4:
+      result.text.push(node.data);
+      result.pos += node.length;
+      break;
+    }
+  }
+}
+
+/**
+Extracts the tags from the text of an HTML element. The extracted tags will be
+returned as an array of tag objects. See sh_highlightString for the format of
+the tag objects.
+@param  element  a DOM element
+@param  tags  an empty array; the extracted tag objects will be returned in it
+@return  the text of the element
+@see  sh_highlightString
+*/
+function sh_extractTags(element, tags) {
+  var result = {};
+  result.text = [];
+  result.tags = tags;
+  result.pos = 0;
+  sh_extractTagsFromNodeList(element.childNodes, result);
+  return result.text.join('');
+}
+
+/**
+Merges the original tags from an element with the tags produced by highlighting.
+@param  originalTags  an array containing the original tags
+@param  highlightTags  an array containing the highlighting tags - these must not overlap
+@result  an array containing the merged tags
+*/
+function sh_mergeTags(originalTags, highlightTags) {
+  var numOriginalTags = originalTags.length;
+  if (numOriginalTags === 0) {
+    return highlightTags;
+  }
+
+  var numHighlightTags = highlightTags.length;
+  if (numHighlightTags === 0) {
+    return originalTags;
+  }
+
+  var result = [];
+  var originalIndex = 0;
+  var highlightIndex = 0;
+
+  while (originalIndex < numOriginalTags && highlightIndex < numHighlightTags) {
+    var originalTag = originalTags[originalIndex];
+    var highlightTag = highlightTags[highlightIndex];
+
+    if (originalTag.pos <= highlightTag.pos) {
+      result.push(originalTag);
+      originalIndex++;
+    }
+    else {
+      result.push(highlightTag);
+      if (highlightTags[highlightIndex + 1].pos <= originalTag.pos) {
+        highlightIndex++;
+        result.push(highlightTags[highlightIndex]);
+        highlightIndex++;
+      }
+      else {
+        // new end tag
+        result.push({pos: originalTag.pos});
+
+        // new start tag
+        highlightTags[highlightIndex] = {node: highlightTag.node.cloneNode(false), pos: originalTag.pos};
+      }
+    }
+  }
+
+  while (originalIndex < numOriginalTags) {
+    result.push(originalTags[originalIndex]);
+    originalIndex++;
+  }
+
+  while (highlightIndex < numHighlightTags) {
+    result.push(highlightTags[highlightIndex]);
+    highlightIndex++;
+  }
+
+  return result;
+}
+
+/**
+Inserts tags into text.
+@param  tags  an array of tag objects
+@param  text  a string representing the text
+@return  a DOM DocumentFragment representing the resulting HTML
+*/
+function sh_insertTags(tags, text) {
+  var doc = document;
+
+  var result = document.createDocumentFragment();
+  var tagIndex = 0;
+  var numTags = tags.length;
+  var textPos = 0;
+  var textLength = text.length;
+  var currentNode = result;
+
+  // output one tag or text node every iteration
+  while (textPos < textLength || tagIndex < numTags) {
+    var tag;
+    var tagPos;
+    if (tagIndex < numTags) {
+      tag = tags[tagIndex];
+      tagPos = tag.pos;
+    }
+    else {
+      tagPos = textLength;
+    }
+
+    if (tagPos <= textPos) {
+      // output the tag
+      if (tag.node) {
+        // start tag
+        var newNode = tag.node;
+        currentNode.appendChild(newNode);
+        currentNode = newNode;
+      }
+      else {
+        // end tag
+        currentNode = currentNode.parentNode;
+      }
+      tagIndex++;
+    }
+    else {
+      // output text
+      currentNode.appendChild(doc.createTextNode(text.substring(textPos, tagPos)));
+      textPos = tagPos;
+    }
+  }
+
+  return result;
+}
+
+/**
+Highlights an element containing source code.  Upon completion of this function,
+the element will have been placed in the "sh_sourceCode" class.
+@param  element  a DOM 
 element containing the source code to be highlighted
+@param  language  a language definition object
+*/
+function sh_highlightElement(element, language) {
+  sh_addClass(element, 'sh_sourceCode');
+  var originalTags = [];
+  var inputString = sh_extractTags(element, originalTags);
+  var highlightTags = sh_highlightString(inputString, language);
+  var tags = sh_mergeTags(originalTags, highlightTags);
+  var documentFragment = sh_insertTags(tags, inputString);
+  while (element.hasChildNodes()) {
+    element.removeChild(element.firstChild);
+  }
+  element.appendChild(documentFragment);
+}
+
+function sh_getXMLHttpRequest() {
+  if (window.ActiveXObject) {
+    return new ActiveXObject('Msxml2.XMLHTTP');
+  }
+  else if (window.XMLHttpRequest) {
+    return new XMLHttpRequest();
+  }
+  throw 'No XMLHttpRequest implementation available';
+}
+
+function sh_load(language, element, prefix, suffix) {
+  if (language in sh_requests) {
+    sh_requests[language].push(element);
+    return;
+  }
+  sh_requests[language] = [element];
+  var request = sh_getXMLHttpRequest();
+  var url = prefix + 'sh_' + language + suffix;
+  request.open('GET', url, true);
+  request.onreadystatechange = function () {
+    if (request.readyState === 4) {
+      try {
+        if (! request.status || request.status === 200) {
+          eval(request.responseText);
+          var elements = sh_requests[language];
+          for (var i = 0; i < elements.length; i++) {
+            sh_highlightElement(elements[i], sh_languages[language]);
+          }
+        }
+        else {
+          throw 'HTTP error: status ' + request.status;
+        }
+      }
+      finally {
+        request = null;
+      }
+    }
+  };
+  request.send(null);
+}
+
+/**
+Highlights all elements containing source code on the current page. Elements
+containing source code must be "pre" elements with a "class" attribute of
+"sh_LANGUAGE", where LANGUAGE is a valid language identifier; e.g., "sh_java"
+identifies the element as containing "java" language source code.
+*/
+function sh_highlightDocument(prefix, suffix) {
+  var nodeList = document.getElementsByTagName('pre');
+  for (var i = 0; i < nodeList.length; i++) {
+    var element = nodeList.item(i);
+    var htmlClasses = sh_getClasses(element);
+    for (var j = 0; j < htmlClasses.length; j++) {
+      var htmlClass = htmlClasses[j].toLowerCase();
+      if (htmlClass === 'sh_sourcecode') {
+        continue;
+      }
+      if (htmlClass.substr(0, 3) === 'sh_') {
+        var language = htmlClass.substring(3);
+        if (language in sh_languages) {
+          sh_highlightElement(element, sh_languages[language]);
+        }
+        else if (typeof(prefix) === 'string' && typeof(suffix) === 'string') {
+          sh_load(language, element, prefix, suffix);
+        }
+        else {
+          throw 'Found 
 element with class="' + htmlClass + '", but no such language exists';
+        }
+        break;
+      }
+    }
+  }
+}
diff --git a/openstack-identity-api/src/docbkx/common/style/shjs/sh_style.css b/openstack-identity-api/src/docbkx/common/style/shjs/sh_style.css
index 6cd20b47..02d1f6d3 100644
--- a/openstack-identity-api/src/docbkx/common/style/shjs/sh_style.css
+++ b/openstack-identity-api/src/docbkx/common/style/shjs/sh_style.css
@@ -1,66 +1,66 @@
-pre.sh_sourceCode {
-  background-color: white;
-  color: black;
-  font-style: normal;
-  font-weight: normal;
-}
-
-pre.sh_sourceCode .sh_keyword { color: blue; font-weight: bold; }           /* language keywords */
-pre.sh_sourceCode .sh_type { color: darkgreen; }                            /* basic types */
-pre.sh_sourceCode .sh_usertype { color: teal; }                             /* user defined types */
-pre.sh_sourceCode .sh_string { color: red; font-family: monospace; }        /* strings and chars */
-pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; }     /* regular expressions */
-pre.sh_sourceCode .sh_specialchar { color: pink; font-family: monospace; }  /* e.g., \n, \t, \\ */
-pre.sh_sourceCode .sh_comment { color: brown; font-style: italic; }         /* comments */
-pre.sh_sourceCode .sh_number { color: purple; }                             /* literal numbers */
-pre.sh_sourceCode .sh_preproc { color: darkblue; font-weight: bold; }       /* e.g., #include, import */
-pre.sh_sourceCode .sh_symbol { color: darkred; }                            /* e.g., <, >, + */
-pre.sh_sourceCode .sh_function { color: black; font-weight: bold; }         /* function calls and declarations */
-pre.sh_sourceCode .sh_cbracket { color: red; }                              /* block brackets (e.g., {, }) */
-pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: cyan; }   /* TODO and FIXME */
-
-/* Predefined variables and functions (for instance glsl) */
-pre.sh_sourceCode .sh_predef_var { color: darkblue; }
-pre.sh_sourceCode .sh_predef_func { color: darkblue; font-weight: bold; }
-
-/* for OOP */
-pre.sh_sourceCode .sh_classname { color: teal; }
-
-/* line numbers (not yet implemented) */
-pre.sh_sourceCode .sh_linenum { color: black; font-family: monospace; }
-
-/* Internet related */
-pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
-
-/* for ChangeLog and Log files */
-pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
-pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: darkblue; font-weight: bold; }
-pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: darkgreen; }
-
-/* for Prolog, Perl... */
-pre.sh_sourceCode .sh_variable { color: darkgreen; }
-
-/* for LaTeX */
-pre.sh_sourceCode .sh_italics { color: darkgreen; font-style: italic; }
-pre.sh_sourceCode .sh_bold { color: darkgreen; font-weight: bold; }
-pre.sh_sourceCode .sh_underline { color: darkgreen; text-decoration: underline; }
-pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
-pre.sh_sourceCode .sh_argument { color: darkgreen; }
-pre.sh_sourceCode .sh_optionalargument { color: purple; }
-pre.sh_sourceCode .sh_math { color: orange; }
-pre.sh_sourceCode .sh_bibtex { color: blue; }
-
-/* for diffs */
-pre.sh_sourceCode .sh_oldfile { color: orange; }
-pre.sh_sourceCode .sh_newfile { color: darkgreen; }
-pre.sh_sourceCode .sh_difflines { color: blue; }
-
-/* for css */
-pre.sh_sourceCode .sh_selector { color: purple; }
-pre.sh_sourceCode .sh_property { color: blue; }
-pre.sh_sourceCode .sh_value { color: darkgreen; font-style: italic; }
-
-/* other */
-pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
-pre.sh_sourceCode .sh_paren { color: red; }
-pre.sh_sourceCode .sh_attribute { color: darkgreen; }
+pre.sh_sourceCode {
+  background-color: white;
+  color: black;
+  font-style: normal;
+  font-weight: normal;
+}
+
+pre.sh_sourceCode .sh_keyword { color: blue; font-weight: bold; }           /* language keywords */
+pre.sh_sourceCode .sh_type { color: darkgreen; }                            /* basic types */
+pre.sh_sourceCode .sh_usertype { color: teal; }                             /* user defined types */
+pre.sh_sourceCode .sh_string { color: red; font-family: monospace; }        /* strings and chars */
+pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; }     /* regular expressions */
+pre.sh_sourceCode .sh_specialchar { color: pink; font-family: monospace; }  /* e.g., \n, \t, \\ */
+pre.sh_sourceCode .sh_comment { color: brown; font-style: italic; }         /* comments */
+pre.sh_sourceCode .sh_number { color: purple; }                             /* literal numbers */
+pre.sh_sourceCode .sh_preproc { color: darkblue; font-weight: bold; }       /* e.g., #include, import */
+pre.sh_sourceCode .sh_symbol { color: darkred; }                            /* e.g., <, >, + */
+pre.sh_sourceCode .sh_function { color: black; font-weight: bold; }         /* function calls and declarations */
+pre.sh_sourceCode .sh_cbracket { color: red; }                              /* block brackets (e.g., {, }) */
+pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: cyan; }   /* TODO and FIXME */
+
+/* Predefined variables and functions (for instance glsl) */
+pre.sh_sourceCode .sh_predef_var { color: darkblue; }
+pre.sh_sourceCode .sh_predef_func { color: darkblue; font-weight: bold; }
+
+/* for OOP */
+pre.sh_sourceCode .sh_classname { color: teal; }
+
+/* line numbers (not yet implemented) */
+pre.sh_sourceCode .sh_linenum { color: black; font-family: monospace; }
+
+/* Internet related */
+pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
+
+/* for ChangeLog and Log files */
+pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
+pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: darkblue; font-weight: bold; }
+pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: darkgreen; }
+
+/* for Prolog, Perl... */
+pre.sh_sourceCode .sh_variable { color: darkgreen; }
+
+/* for LaTeX */
+pre.sh_sourceCode .sh_italics { color: darkgreen; font-style: italic; }
+pre.sh_sourceCode .sh_bold { color: darkgreen; font-weight: bold; }
+pre.sh_sourceCode .sh_underline { color: darkgreen; text-decoration: underline; }
+pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
+pre.sh_sourceCode .sh_argument { color: darkgreen; }
+pre.sh_sourceCode .sh_optionalargument { color: purple; }
+pre.sh_sourceCode .sh_math { color: orange; }
+pre.sh_sourceCode .sh_bibtex { color: blue; }
+
+/* for diffs */
+pre.sh_sourceCode .sh_oldfile { color: orange; }
+pre.sh_sourceCode .sh_newfile { color: darkgreen; }
+pre.sh_sourceCode .sh_difflines { color: blue; }
+
+/* for css */
+pre.sh_sourceCode .sh_selector { color: purple; }
+pre.sh_sourceCode .sh_property { color: blue; }
+pre.sh_sourceCode .sh_value { color: darkgreen; font-style: italic; }
+
+/* other */
+pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
+pre.sh_sourceCode .sh_paren { color: red; }
+pre.sh_sourceCode .sh_attribute { color: darkgreen; }
diff --git a/openstack-identity-api/src/docbkx/common/xslt/schema.xslt b/openstack-identity-api/src/docbkx/common/xslt/schema.xslt
index 6d602cc7..548ec6db 100644
--- a/openstack-identity-api/src/docbkx/common/xslt/schema.xslt
+++ b/openstack-identity-api/src/docbkx/common/xslt/schema.xslt
@@ -266,7 +266,7 @@
                   annotations:  currently just xsdxt:code.
               -->
               
-            
+
               
diff --git a/tools/rfc.sh b/tools/rfc.sh
index ed287e8b..14f9163a 100755
--- a/tools/rfc.sh
+++ b/tools/rfc.sh
@@ -1,5 +1,5 @@
 #!/bin/sh -e
-# Copyright (c) 2010-2011 Gluster, Inc.  
+# Copyright (c) 2010-2011 Gluster, Inc. 
 # This initial version of this file was taken from the source tree
 # of GlusterFS. It was not directly attributed, but is assumed to be
 # Copyright (c) 2010-2011 Gluster, Inc and release GPLv3