diff --git a/sec/Common_Content/css/brand.css b/sec/Common_Content/css/brand.css
new file mode 100644
index 000000000..8a7e7500f
--- /dev/null
+++ b/sec/Common_Content/css/brand.css
@@ -0,0 +1,1982 @@
+/* New Red Hat Font */
+@import url(rhfont.css);
+
+/* Books Icon Font */
+@font-face {
+ font-family: "redhat-books-icons";
+ font-style: normal;
+ font-weight: normal;
+ src: url("../../en-US/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.eot?#iefix") format("embedded-opentype"), url("../../en-US/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.woff") format("woff"), url("../../en-US/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.ttf") format("truetype"), url("../../en-US/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.svg?#redhat-books-icons") format("svg");
+}
+
+#main div,
+#main span,
+#main applet,
+#main object,
+#main iframe,
+#main h1,
+#main h2,
+#main h3,
+#main h4,
+#main h5,
+#main h6,
+#main p,
+#main blockquote,
+#main pre,
+#main a,
+#main abbr,
+#main acronym,
+#main address,
+#main big,
+#main cite,
+#main code,
+#main del,
+#main dfn,
+#main em,
+#main img,
+#main ins,
+#main kbd,
+#main q,
+#main s,
+#main samp,
+#main small,
+#main strike,
+#main strong,
+#main sub,
+#main sup,
+#main tt,
+#main var,
+#main b,
+#main u,
+#main i,
+#main center,
+#main dl,
+#main dt,
+#main dd,
+#main ol,
+#main ul,
+#main li,
+#main fieldset,
+#main form,
+#main label,
+#main legend,
+#main table,
+#main caption,
+#main tbody,
+#main tfoot,
+#main thead,
+#main tr,
+#main th,
+#main td,
+#main article,
+#main aside,
+#main canvas,
+#main details,
+#main embed,
+#main figure,
+#main figcaption,
+#main footer,
+#main header,
+#main hgroup,
+#main menu,
+#main nav,
+#main output,
+#main ruby,
+#main section,
+#main summary,
+#main time,
+#main mark,
+#main audio,
+#main video {
+ -moz-font-feature-settings: inherit;
+ -moz-font-language-override: inherit;
+ border: 0 none;
+ /* this breaks the portal menus & header
+ font-family: inherit;
+ */
+ font-size: 100%;
+ font-size-adjust: inherit;
+ font-stretch: inherit;
+ font-style: inherit;
+ font-variant: inherit;
+ font-weight: inherit;
+ line-height: inherit;
+ margin: 0;
+ padding: 0;
+ vertical-align: baseline;
+}
+
+#main,
+#main > div > .chapter,
+#main div.admonition_header p,
+#main > div > .section {
+ color: #1A1A1A;
+}
+
+/* Hack to fix excess whitespace for some content due to zero-width spaces */
+#main .abstract > a:first-child:not([href]),
+#main .authorgroup > a:first-child:not([href]),
+#main .titlepage .title > a:first-child:not([href]),
+#main .table > a:first-child:not([href]),
+#main .procedure > a:first-child:not([href]),
+#main .figure > a:first-child:not([href]) {
+ display: inline;
+ position: absolute;
+ width: 0;
+ height: 0;
+ overflow: hidden;
+}
+
+#main table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+#main caption,
+#main th,
+#main td {
+ font-weight: normal;
+ text-align: left;
+ vertical-align: middle;
+}
+
+#main q,
+#main blockquote {
+ quotes: none;
+}
+
+#main q:before,
+#main q:after,
+#main blockquote:before,
+#main blockquote:after {
+ content: none;
+}
+#main a img {
+ border: medium none;
+}
+
+#main article,
+#main aside,
+#main details,
+#main figcaption,
+#main figure,
+#main footer,
+#main header,
+#main hgroup,
+#main menu,
+#main nav,
+#main section,
+#main summary {
+ display: block;
+}
+
+#main [class^="icon-"]:before,
+#main [class*=" icon-"]:before {
+ display: inline-block;
+ font-family: "redhat-books-icons";
+ font-style: normal;
+ font-weight: normal;
+ text-decoration: inherit;
+ text-rendering: optimizelegibility;
+ text-transform: none;
+}
+#main .note:before,
+#main .important:before,
+#main .warning:before {
+ content: "" !important;
+ padding: 0px !important;
+}
+
+#main .icon-arrow-left:before,
+#main .docnav .previous a:before {
+ content: "" !important;
+}
+
+#main .icon-arrow-right:before,
+#main .docnav .next a:before {
+ content: "" !important;
+}
+#main .icon-book:before {
+ content: "" !important;
+}
+#main .icon-support:before,
+#main .RoleCreateBugPara a:before {
+ content: "" !important;
+}
+#main .icon-warning:before,
+#main .warning:before {
+ content: "" !important;
+}
+#main .buttons,
+#title,
+#main .docnav {
+ clear: both;
+ display: block;
+}
+#main ul.docnav {
+ margin: auto !important;
+}
+#main .pageSelect,
+#main .doctoc {
+ width: 80%;
+}
+
+#main .buttons:before,
+#title:before,
+#main .docnav:before,
+#main .buttons:after,
+#title:after,
+#main .docnav:after {
+ content: "";
+ display: table;
+}
+#main .buttons:after,
+#main #title:after,
+#main .docnav:after {
+ clear: both;
+}
+#main .pill {
+ -moz-appearance: none;
+ border: medium none;
+ border-radius: 0.15em;
+ box-sizing: border-box;
+ display: inline-block;
+ font-size: 100%;
+ line-height: 1.8em;
+ margin-bottom: 0.5em;
+ margin-right: 0.5em;
+ outline: 0 none;
+ padding: 0.45em 0.9em;
+ position: relative;
+ text-align: center;
+}
+#main .border-heavy-solid {
+ border-style: solid;
+ border-width: 0.45em;
+}
+#main .border-medium-solid {
+ border-style: solid;
+ border-width: 0.225em;
+}
+#main .border-light-solid {
+ border-style: solid;
+ border-width: thin;
+}
+#main .border-top-heavy-solid {
+ border-top-style: solid;
+ border-top-width: 0.45em;
+}
+#main .border-top-medium-solid {
+ border-top-style: solid;
+ border-top-width: 0.225em;
+}
+#main .border-top-light-solid {
+ border-top-style: solid;
+ border-top-width: thin;
+}
+#main .border-bottom-heavy-solid {
+ border-bottom-style: solid;
+ border-bottom-width: 0.45em;
+}
+#main .border-bottom-medium-solid {
+ border-bottom-style: solid;
+ border-bottom-width: 0.225em;
+}
+#main .border-bottom-light-solid {
+ border-bottom-style: solid;
+ border-bottom-width: thin;
+}
+#main {
+ color: #1A1A1A;
+ font-family: "Red Hat Text", "Overpass", "Helvetica Neue", sans-serif;
+ font-size: 100%;
+ line-height: 1.8em;
+ text-rendering: optimizelegibility;
+}
+
+#main p,
+#main .para,
+#main .formalpara {
+ margin-bottom: 1.8em;
+}
+#main p:empty,
+#main .para:empty {
+ margin-bottom: 0;
+}
+#main em,
+#main i,
+#main cite,
+#main .package {
+ font-style: italic;
+}
+#main b,
+#main strong {
+ font-weight: 700;
+}
+#main small {
+ font-size: 0.8em;
+}
+#main s {
+}
+#main u {
+ text-decoration: underline;
+}
+#main q:before {
+ content: "\"";
+}
+#main q:after {
+ content: "\"";
+}
+#main abbr {
+ border-bottom: thin dotted;
+ cursor: help;
+}
+#main sub {
+ bottom: -0.3em;
+ font-size: 0.8em;
+ position: relative;
+}
+#main sup {
+ font-size: 0.8em;
+ position: relative;
+ top: -0.45em;
+}
+#main mark {
+ background-color: #5BC6E8;
+}
+#main ins {
+ background-color: #7AB800;
+}
+#main del {
+ background-color: #A30000;
+}
+#main hr {
+ -moz-border-bottom-colors: none;
+ -moz-border-left-colors: none;
+ -moz-border-right-colors: none;
+ -moz-border-top-colors: none;
+ border-color: #555555 -moz-use-text-color -moz-use-text-color;
+ border-image: none;
+ border-right: medium none;
+ border-style: solid none none;
+ border-width: 0.125em medium medium;
+ height: 0;
+ margin-bottom: 1.8em;
+ margin-top: 1.8em;
+ width: 3em;
+}
+#main pre,
+#main code,
+#main var,
+#main samp,
+#main kbd,
+#main .keycap,
+#main .command,
+#main .filename,
+#main .classname,
+#main .literal {
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+#main kbd,
+#main .keycap {
+ -moz-appearance: none;
+ background: none repeat scroll 0 0 #F2F2F2;
+ border-color: #E6E6E6;
+ border-radius: 0.15em;
+ border-style: solid;
+ border-width: 1px;
+ box-sizing: border-box;
+ display: inline-block;
+ font-size: 90%;
+ line-height: 1.8em;
+ margin: 0 0.25em;
+ outline: 0 none;
+ padding: 0 0.5em;
+ position: relative;
+ text-align: center;
+}
+/* BZ #1110611 & #1185149 */
+#main p code,
+#main .para code {
+ display: inline-block;
+ max-width: 100%;
+}
+#main pre {
+ background: none repeat scroll 0 0 #333333;
+ border-radius: 0.25em;
+ color: #CCCCCC;
+ margin-bottom: 1.7em;
+ padding: 0.9em 1.8em;
+ white-space: pre-wrap;
+ word-break: break-word;
+}
+#main p pre,
+#main .para pre {
+ margin-top: 1.8em;
+}
+#main .perl_Char {
+ color: #FFA500;
+}
+#main .perl_Comment {
+ color: #4D4D4D;
+}
+#main .perl_DataType {
+ color: #F08080;
+}
+#main .perl_DecVal {
+ color: #A0522D;
+}
+#main .perl_Error {
+ color: #A30000;
+}
+#main .perl_Float {
+ color: #87CEFA;
+ font-weight: 600;
+}
+#main .perl_Keyword {
+ color: #FFA07A;
+}
+#main .perl_String {
+ color: #FAFAD2;
+}
+#main .perl_Variable {
+ color: #F1C000;
+}
+#main .perl_Warning {
+ color: #EC7A08;
+}
+#main h1,
+#main h2,
+#main h3,
+#main h4,
+#main h5,
+#main h6,
+#main .formalpara > .title,
+#main .para > .title,
+#main .titlepage .edition {
+ font-family: "Red Hat Display", "Overpass", "Helvetica Neue", sans-serif;
+ font-weight: 600;
+}
+#main h1 {
+ font-size: 42px;
+ line-height: 1.2em;
+ margin-bottom: 1.2em;
+ margin-top: 1.5em;
+ text-transform: uppercase;
+}
+#main h2 {
+ font-size:24.5px;
+ line-height: 1.54286em;
+ margin-bottom: 1.02857em;
+ margin-top: 2.05714em;
+ text-transform: uppercase;
+}
+#main h3 {
+ font-size: 1.5em;
+ line-height: 1.5em;
+ margin-bottom: 1.2em;
+ margin-top: 2.4em;
+}
+#main h4 {
+ font-size: 1.25em;
+ line-height: 1.44em;
+ margin-bottom: 1.44em;
+ margin-top: 2.88em;
+}
+#main h5 {
+ font-size: 1em;
+ line-height: 1.8em;
+ margin-bottom: 1.8em;
+ margin-top: 3.6em;
+}
+#main h6 {
+ font-size: 0.8em;
+ line-height: 1.6875em;
+ margin-bottom: 2.25em;
+ margin-top: 4.5em;
+}
+#main .formalpara > .title,
+#main .para > .title {
+ font-size: 1.25em;
+ line-height: 1.44em;
+ margin-bottom: 1em;
+ margin-top: 0;
+}
+#main h1 + h1,
+#main h1 + h2,
+#main h1 + h3,
+#main h1 + h4,
+#main h1 + h5,
+#main h1 + h6,
+#main h2 + h1,
+#main h2 + h2,
+#main h2 + h3,
+#main h2 + h4,
+#main h2 + h5,
+#main h2 + h6,
+#main h3 + h1,
+#main h3 + h2,
+#main h3 + h3,
+#main h3 + h4,
+#main h3 + h5,
+#main h3 + h6,
+#main h4 + h1,
+#main h4 + h2,
+#main h4 + h3,
+#main h4 + h4,
+#main h4 + h5,
+#main h4 + h6,
+#main h5 + h1,
+#main h5 + h2,
+#main h5 + h3,
+#main h5 + h4,
+#main h5 + h5,
+#main h5 + h6,
+#main h6 + h1,
+#main h6 + h2,
+#main h6 + h3,
+#main h6 + h4,
+#main h6 + h5,
+#main h6 + h6 {
+ margin-top: 0;
+}
+#main header h1:last-child,
+#main header h2:last-child,
+#main header h3:last-child,
+#main header h4:last-child,
+#main header h5:last-child,
+#main header h6:last-child {
+ margin-bottom: 0;
+}
+
+#main div.subtitle,
+#main h2.subtitle,
+#main h3.subtitle {
+ font-size: 24.5px;
+ text-align: left;
+}
+#main .formalpara > .title,
+#main .para > .title {
+ line-height: 1.44;
+}
+#main [data-icon],
+#main [class*="icon-"],
+#main .docnav .previous a,
+#main .docnav .next a,
+#main .warning {
+ font-family: inherit;
+}
+#main .article > .titlepage h2.title {
+ text-align: left;
+ font-size: 42px;
+ line-height: 1.2em;
+ margin-bottom: 1.2em;
+ margin-top: 1.5em;
+}
+#main [data-icon]:before,
+#main [class*="icon-"]:before,
+#main .docnav .previous a:before,
+#main .docnav .next a:before,
+#main .warning:before {
+ font-family: "redhat-books-icons";
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+ line-height: 1;
+ margin-right: 0.5em;
+ text-transform: none;
+}
+#main .icon-only {
+ display: inline-block;
+ height: 1.8em;
+ line-height: 1.8em;
+ overflow: hidden;
+ position: relative;
+ text-indent: 9999em;
+ vertical-align: middle;
+ white-space: nowrap;
+ width: 1.8em;
+}
+#main .icon-only:before {
+ height: 1.8em;
+ left: 50%;
+ line-height: 1.8em;
+ margin: -0.9em;
+ position: absolute;
+ text-align: center;
+ text-indent: 0;
+ top: 50%;
+ width: 1.8em;
+}
+#main .icon-position-left {
+ padding-left: 2.7em;
+ position: relative;
+}
+#main .icon-position-left:before {
+ display: block;
+ left: 0;
+ line-height: 1.8em;
+ position: absolute;
+ width: 1.8em;
+}
+#main .icon-position-right {
+ padding-right: 2.7em;
+ position: relative;
+}
+#main .icon-position-right:before {
+ display: block;
+ line-height: 1.8em;
+ position: absolute;
+ right: 0;
+ width: 1.8em;
+}
+#main ul,
+#main ol {
+ margin-top: 0;
+ padding: 0;
+}
+#main ul ul,
+#main ol ul,
+#main ol ol,
+#main ul ol {
+ padding-left: 24px;
+ padding-left: 1.5rem;
+}
+#main ol > li {
+ font-weight: bold;
+}
+#main ol > li > *{
+ font-weight: normal;
+}
+
+#main dl {
+ margin-bottom: 1.8em;
+}
+#main dl dt {
+ font-family: "Red Hat Text", "Overpass", "Helvetica Neue", sans-serif;
+ font-weight: 600;
+}
+#main dl dd {
+ padding-left: 1.35em;
+}
+#main .para .itemizedlist {
+ margin-top: 1.8em;
+}
+
+#main .docnav a,
+#main .docnav a:link,
+#main .docnav a:visited,
+#main .docnav a strong,
+#main .docnav a:hover {
+ color: #CC0000 !important;
+}
+#main .book a,
+#main main a {
+ text-decoration: none;
+}
+#main .RoleCreateBugPara a:before {
+ background-color: #E6E6E6;
+ border-radius: 50%;
+ color: #333333;
+ display: inline-block;
+ font-family: 'redhat-books-icons';
+ font-size: 3em;
+ line-height: 1.2006em;
+ margin-right: 0.25em;
+ text-align: center;
+ vertical-align: middle;
+ width: 1.2006em;
+}
+#main .button,
+#main button,
+#main input[type="submit"],
+#main input[type="button"] {
+ -moz-appearance: none;
+ background-color: #333333;
+ border: medium none #1A1A1A;
+ border-radius: 0.15em;
+ box-sizing: border-box;
+ color: #FFFFFF;
+ display: inline-block;
+ font-family: inherit;
+ font-size: 100%;
+ font-weight: 600;
+ height: auto;
+ line-height: 1.8em;
+ margin: 0;
+ outline: 0 none;
+ padding: 0.45em 0.9em;
+ position: relative;
+ text-align: center;
+ text-decoration: none;
+ width: auto;
+}
+#main .button:hover,
+#main button:hover,
+#main input[type="submit"]:hover,
+#main input[type="button"]:hover {
+ background-color: #1A1A1A;
+ border-color: #0D0D0D;
+ color: #FFFFFF;
+ cursor: pointer;
+ text-decoration: none;
+}
+#main .active.button,
+#main button.active,
+#main input.active[type="submit"],
+#main input.active[type="button"],
+#main .button:active,
+#main button:active,
+#main input[type="submit"]:active,
+#main input[type="button"]:active {
+ background-color: #4D4D4D;
+ border-color: #333333;
+ color: #FFFFFF;
+}
+#main .button[disabled="disabled"],
+#main button[disabled="disabled"],
+#main input[disabled="disabled"][type="submit"],
+#main input[disabled="disabled"][type="button"],
+#main .button[disabled="disabled"]:hover,
+#main button[disabled="disabled"]:hover,
+#main input[disabled="disabled"][type="submit"]:hover,
+#main input[disabled="disabled"][type="button"]:hover,
+#main .button[disabled="disabled"]:active,
+#main button[disabled="disabled"]:active,
+#main input[disabled="disabled"][type="submit"]:active,
+#main input[disabled="disabled"][type="button"]:active {
+ cursor: default;
+ opacity: 0.5;
+}
+#main .icon-only.button,
+#main button.icon-only,
+#main input.icon-only[type="submit"],
+#main input.icon-only[type="button"] {
+ height: 1.8em;
+ padding: 0;
+ width: 1.8em;
+}
+#main .buttons .button,
+#main .buttons button,
+#main .buttons input[type="submit"],
+#main .buttons input[type="button"] {
+ border-left: thin solid rgba(0, 0, 0, 0.25);
+ border-radius: 0;
+ float: left;
+ margin: 0;
+}
+#main .buttons .button:focus,
+#main .buttons button:focus,
+#main .buttons input[type="submit"]:focus,
+#main .buttons input[type="button"]:focus {
+ outline: 0 none;
+}
+#main .buttons .button:first-child,
+#main .buttons button:first-child,
+#main .buttons input[type="submit"]:first-child,
+#main .buttons input[type="button"]:first-child {
+ border-bottom-left-radius: 0.15em;
+ border-left-width: 0;
+ border-top-left-radius: 0.15em;
+}
+#main .buttons .button:last-child,
+#main .buttons button:last-child,
+#main .buttons input[type="submit"]:last-child,
+#main .buttons input[type="button"]:last-child,
+#main .buttons .last-child.button,
+#main .buttons button.last-child,
+#main .buttons input.last-child[type="submit"],
+#main .buttons input.last-child[type="button"] {
+ border-bottom-right-radius: 0.15em;
+ border-top-right-radius: 0.15em;
+}
+#main input[type="text"],
+#main input[type="search"],
+#main input[type="tel"],
+#main input[type="email"],
+#main input[type="password"],
+#main input[type="url"],
+#main input[type="date"],
+#main input[type="datetime"],
+#main input[type="time"],
+#main input[type="number"],
+#main input[list],
+#main textarea {
+ -moz-appearance: none;
+ background-color: #FFFFFF;
+ border-color: #CCCCCC;
+ border-radius: 0.15em;
+ border-style: solid;
+ border-width: 1px;
+ box-sizing: border-box;
+ color: #000000;
+ display: block;
+ font-family: inherit;
+ font-size: 100%;
+ font-weight: 400;
+ line-height: 1.8em;
+ margin-bottom: 1.8em;
+ margin-top: 0;
+ outline: 0 none;
+ padding: 0.3em 0.45em;
+ position: relative;
+ text-align: left;
+ transition: border-color 0.5s ease 0s;
+ width: 100%;
+}
+#main input[type="text"]:focus,
+#main input[type="search"]:focus,
+#main input[type="tel"]:focus,
+#main input[type="email"]:focus,
+#main input[type="password"]:focus,
+#main input[type="url"]:focus,
+#main input[type="date"]:focus,
+#main input[type="datetime"]:focus,
+#main input[type="time"]:focus,
+#main input[type="number"]:focus,
+#main input[list]:focus,
+#main textarea:focus {
+ background-color: #FFFFFF;
+ border-color: #004153;
+ color: #000000;
+}
+#main input[type="text"]:focus:hover,
+#main input[type="search"]:focus:hover,
+#main input[type="tel"]:focus:hover,
+#main input[type="email"]:focus:hover,
+#main input[type="password"]:focus:hover,
+#main input[type="url"]:focus:hover,
+#main input[type="date"]:focus:hover,
+#main input[type="datetime"]:focus:hover,
+#main input[type="time"]:focus:hover,
+#main input[type="number"]:focus:hover,
+#main input[list]:focus:hover,
+#main textarea:focus:hover {
+ background-color: #FFFFFF;
+ border-color: #004153;
+ color: #000000;
+}
+#main input[type="text"]:hover,
+#main input[type="search"]:hover,
+#main input[type="tel"]:hover,
+#main input[type="email"]:hover,
+#main input[type="password"]:hover,
+#main input[type="url"]:hover,
+#main input[type="date"]:hover,
+#main input[type="datetime"]:hover,
+#main input[type="time"]:hover,
+#main input[type="number"]:hover,
+#main input[list]:hover,
+#main textarea:hover {
+ background-color: #F2F2F2;
+ border-color: #F2F2F2;
+ color: #F2F2F2;
+}
+#main :-moz-placeholder {
+ font-family: inherit;
+ font-weight: 400;
+}
+#main *::-moz-placeholder {
+ font-family: inherit;
+ font-weight: 400;
+}
+#main img {
+ display: block;
+ max-width: 100%;
+ width: auto;
+}
+#main .para .mediaobject {
+ margin-top: 1.8em;
+}
+#main .inlinemediaobject {
+ display: inline-block;
+ line-height: 1.8em;
+}
+#main .inlinemediaobject img {
+ max-width: inherit;
+ min-width: 100%;
+}
+#title,
+#main .book,
+#main .docnav,
+#main > div > .preface,
+#main > div > .section,
+#main > div > .chapter,
+#main > div > .appendix {
+ margin-left: auto !important;
+ margin-right: auto !important;
+}
+@media screen and (max-width: 64em) {
+ #title,
+ #main .book,
+ #main .docnav,
+ #main > div > .preface,
+ #main > div > .section,
+ #main > div > .chapter,
+ #main > div > .appendix {
+ padding-left: 1.8em;
+ padding-right: 1.8em;
+ }
+}
+#main blockquote.blockquote {
+ border-left: 0.6em solid #E6E6E6;
+ padding-left: 1.8em;
+}
+@media screen and (max-width: 32em) {
+ #main blockquote.blockquote {
+ background: none repeat scroll 0 0 #F2F2F2;
+ margin: -1.8em 1.8em;
+ padding: 1.8em 1.8em 0.01em 1.2em;
+ }
+}
+#main .one-half {
+ box-sizing: border-box;
+ display: inline-block;
+ margin-right: -0.25em;
+ vertical-align: top;
+ width: 50%;
+}
+#main .one-half:first-child {
+ padding-left: 0;
+ padding-right: 1.35em;
+}
+#main .one-half:last-child {
+ padding-left: 1.35em;
+ padding-right: 0;
+}
+#main .one-half:nth-child(2n+1) {
+ padding-left: 0;
+ padding-right: 1.35em;
+}
+#main .one-half:nth-child(2n) {
+ padding-left: 1.35em;
+ padding-right: 0;
+}
+#main .one-half.first {
+ padding-left: 0;
+ padding-right: 1.35em;
+}
+#main .one-half.last {
+ padding-left: 1.35em;
+ padding-right: 0;
+}
+#main .one-third {
+ box-sizing: border-box;
+ display: inline-block;
+ margin-right: -0.25em;
+ padding-left: 1.8009em;
+ padding-right: 1.8009em;
+ vertical-align: top;
+ width: 33.3333%;
+}
+#main .one-third:nth-child(3n+3) {
+ padding-left: 0.9em;
+ padding-right: 0;
+}
+#main .one-third:nth-child(3n+1) {
+ padding-left: 0;
+ padding-right: 0.9em;
+}
+#main .one-third.first {
+ padding-left: 0;
+ padding-right: 0.9em;
+}
+#main .one-third.second {
+ padding-left: 1.8009em;
+ padding-right: 1.8009em;
+}
+#main .one-third.third,
+#main .one-third.last {
+ padding-left: 0.9em;
+ padding-right: 0;
+}
+#main .two-thirds {
+ box-sizing: border-box;
+ display: inline-block;
+ margin-right: -0.25em;
+ vertical-align: top;
+ width: 66.6667%;
+}
+#main .two-thirds.first {
+ padding-left: 0;
+ padding-right: 0.8991em;
+}
+#main .two-thirds.last {
+ padding-left: 0.8991em;
+ padding-right: 0;
+}
+#main .one-quarter {
+ box-sizing: border-box;
+ display: inline-block;
+ margin-right: -0.25em;
+ vertical-align: top;
+ width: 25%;
+}
+#main .one-quarter:nth-child(4n+1) {
+ padding-left: 0;
+ padding-right: 2.025em;
+}
+#main .one-quarter:nth-child(4n+2) {
+ padding-left: 0.675em;
+ padding-right: 1.35em;
+}
+#main .one-quarter:nth-child(4n+3) {
+ padding-left: 1.35em;
+ padding-right: 0.675em;
+}
+#main .one-quarter:nth-child(4n+4) {
+ padding-left: 2.025em;
+ padding-right: 0;
+}
+#main .one-quarter.first {
+ padding-left: 0;
+ padding-right: 2.025em;
+}
+#main .one-quarter.second {
+ padding-left: 0.675em;
+ padding-right: 1.35em;
+}
+#main .one-quarter.third {
+ padding-left: 1.35em;
+ padding-right: 0.675em;
+}
+#main .one-quarter.fourth,
+#main .one-quarter.last {
+ padding-left: 2.025em;
+ padding-right: 0;
+}
+#main .three-quarters {
+ box-sizing: border-box;
+ display: inline-block;
+ margin-right: -0.25em;
+ vertical-align: top;
+ width: 75%;
+}
+#main .three-quarters:first-child {
+ padding-left: 0;
+ padding-right: 0.675em;
+}
+#main .three-quarters:last-child {
+ padding-left: 0.675em;
+ padding-right: 0;
+}
+@media screen and (max-width: 32em) {
+ #main .one-half:not(.no-break):not(.break-mobile),
+ #main .two-thirds:not(.no-break):not(.break-mobile),
+ #main .three-quarters:not(.no-break):not(.break-mobile) {
+ padding-left: 0;
+ padding-right: 0;
+ width: 100%;
+ }
+ #main .one-quarter:not(.no-break):not(.break-mobile),
+ #main .one-third:not(.no-break):not(.break-mobile) {
+ padding-left: 1.35em;
+ padding-right: 1.35em;
+ width: 50%;
+ }
+ #main .one-quarter:nth-child(2n+1):not(.no-break):not(.break-mobile),
+ #main .one-third:nth-child(2n+1):not(.no-break):not(.break-mobile) {
+ padding-left: 0;
+ }
+ #main .one-quarter:nth-child(2n):not(.no-break):not(.break-mobile),
+ #main .one-third:nth-child(2n):not(.no-break):not(.break-mobile) {
+ padding-right: 0;
+ }
+ #main .one-half .one-quarter:not(.no-break):not(.break-mobile),
+ #main .one-half .three-quarters:not(.no-break):not(.break-mobile) {
+ padding-left: 1.35em;
+ padding-right: 1.35em;
+ }
+ #main .one-half .one-quarter.first:not(.no-break):not(.break-mobile),
+ #main .one-half .three-quarters.first:not(.no-break):not(.break-mobile) {
+ padding-left: 0;
+ }
+ #main .one-half .one-quarter.last:not(.no-break):not(.break-mobile),
+ #main .one-half .three-quarters.last:not(.no-break):not(.break-mobile) {
+ padding-right: 0;
+ }
+ #main .one-half .one-quarter:not(.no-break):not(.break-mobile) {
+ width: 25%;
+ }
+ #main .one-half .three-quarters:not(.no-break):not(.break-mobile) {
+ width: 75%;
+ }
+}
+@media screen and (max-width: 32em) {
+ #main .one-half:not(.no-break),
+ #main .one-third:not(.no-break),
+ #main .two-thirds:not(.no-break),
+ #main .one-quarter:not(.no-break),
+ #main .three-quarters:not(.no-break) {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ width: 100% !important;
+ }
+ #main .one-half .one-quarter:not(.no-break) {
+ width: 25%;
+ }
+ #main .one-half .three-quarters:not(.no-break) {
+ width: 75%;
+ }
+}
+#title {
+ height: 42px;
+ padding-bottom: 1.8em;
+ padding-top: 1.8em;
+}
+@media screen and (max-width: 64em) {
+ #title {
+ padding-left: 1.8em;
+ padding-right: 1.8em;
+ }
+}
+#title .left,
+#title .right {
+ text-decoration: none;
+}
+#title .left {
+ float: left;
+}
+#title .left img {
+ display: block;
+}
+#title .right {
+ color: #000000;
+ float: right;
+ font-family: inherit;
+}
+#title .right:before {
+ content: "Documentation";
+ font-size: 21px;
+ font-weight: 600;
+ line-height: 42px;
+ text-transform: uppercase;
+}
+#title .right img {
+ display: none;
+}
+
+#main .docnav {
+ font-family: inherit;
+ padding-bottom: 7.2em;
+ padding-top: 3.6em;
+ position: relative;
+ text-align: center;
+}
+#main .docnav a {
+ text-decoration: none;
+}
+#main .docnav li.previous {
+ left: 50px;
+}
+
+#main .docnav .previous,
+#main .docnav .next {
+ position: absolute;
+ margin-top: 10px;
+}
+#main .docnav .previous a,
+#main .docnav .next a {
+ display: block;
+ font-family: inherit;
+ font-weight: 400;
+ line-height: 1em;
+ text-transform: uppercase;
+}
+#main .docnav .previous a:before,
+#main .docnav .next a:before {
+ font-size: 8em;
+ line-height: 1em;
+ margin-top: -0.5em;
+ position: absolute;
+ top: 50%;
+}
+#main .docnav .previous a strong,
+#main .docnav .next a strong {
+ /* display: none; */
+}
+#main .docnav li.next a strong,
+#main .docnav li.previous a strong {
+ background: none;
+ padding: 0px;
+}
+
+#main {
+ margin-left: 31em !important;
+}
+
+#main.noLtoc {
+ margin-left: 4em !important;
+}
+
+#main .docnav .previous {
+ margin-right: 0.9em;
+ /* right: 50%; */
+ text-align: left;
+}
+#main .docnav .previous a:before {
+ /* left: -0.15em; */
+}
+#main .docnav .next {
+ /* left: 50%; */
+ margin-left: 0.9em !important;
+ right: 3.6em !important;
+ text-align: right !important;
+}
+#main .docnav .next a:before {
+ right: -0.50em;
+}
+#main .docnav .home, .docnav .up {
+ display: inline-block;
+}
+#main .docnav .home a {
+ left: 3.6em;
+}
+#main .docnav .up a {
+ right: 3.6em;
+}
+#main .docnav.top {
+ /* display: none; */
+}
+#main .docnav.top a strong {
+ display: block;
+}
+#main .docnav.top .home {
+ display: none;
+}
+
+#floatingtoc {
+ display: none;
+}
+
+#main {
+ position: relative;
+}
+#main #chromed-app-content #navigation {
+ top: -25px !important;
+ margin-left: -31em !important;
+}
+#navigation {
+ background: none repeat scroll 0 0 #F9F9F9;
+ box-sizing: border-box;
+ height: 100%;
+ position: absolute;
+ margin-left: -31em;
+ width: 26em;
+ z-index: 5;
+}
+
+#navigation > .toc {
+ height: calc(100vh - 104px);
+ background: none repeat scroll 0 0 #F9F9F9;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ padding-left: 1.8em;
+ padding-right: 1.8em;
+ padding-top: 1.8em;
+ padding-bottom: 0em;
+ text-align: left;
+ width: 26em;
+}
+
+#main .docnav li.doctoc { display: none !important;}
+
+#navigation.bottom {
+ bottom: 0;
+ top: auto;
+}
+#navigation .toc dl dd {
+ margin: 0;
+ padding: 0 0 0 1.35em;
+}
+#main .producttitle {
+ font-family: "Red Hat Display", "Overpass", "Helvetica Neue", sans-serif;
+ font-size: 1.75em;
+ line-height: 1;
+ margin-bottom: 1.02857em;
+ margin-top: 0;
+ padding-top: 0.75em;
+ position: relative;
+ text-transform: uppercase;
+}
+
+#main div.producttitle,
+#main .book > .titlepage h1.title,
+#main .authorgroup div,
+#main .titlepage .corpauthor,
+#main .titlepage .edition,
+#main .titlepage .releaseinfo {
+ text-align: left !important;
+}
+#main .titlepage .corpauthor {
+ margin-top: 1em;
+}
+#main .titlepage .author,
+#main .titlepage .editor {
+ margin-bottom: 0;
+}
+#main h3.author {
+ margin-top: 1.5em;
+}
+#main h4.editedby {
+ margin-top: 2em;
+ margin-bottom: 1em;
+}
+#main .authorgroup {
+ margin-bottom: 1.8em;
+}
+#main .abstract {
+ margin-top: 1.8em;
+}
+/* BUGBUG this requires renaming products in books :(
+#main .producttitle:before {
+ content: "Red Hat";
+ font-size: 0.7em;
+ font-weight: 600;
+ left: 0;
+ position: absolute;
+ top: 0;
+ white-space: nowrap;
+}
+*/
+#main .productname {
+ font-weight: bold;
+}
+
+#main .titlepage .productname {
+ display: block;
+ font-weight: 300;
+ font-size: 24.5px;
+ white-space: normal;
+ width: 10em;
+}
+#main .productnumber {
+ color: #CC0000;
+ display: block;
+ font-weight: 700;
+ font-size: 24.5px;
+}
+#main table {
+ border: thin solid #CCCCCC;
+ border-collapse: collapse;
+ font-size: 0.9em;
+ margin: 0 0 1.8em;
+ text-align: left;
+ width: 100%;
+}
+#main table caption,
+#main table th,
+#main table td {
+ padding: 0.9em;
+ vertical-align: top;
+}
+#main table caption {
+ font-size: 0.8em;
+ font-weight: 600;
+ text-transform: uppercase;
+}
+#main table th {
+ font-weight: 600;
+}
+#main table thead tr {
+ background-color: #E6E6E6;
+}
+#main table thead tr.no-wrap th {
+ line-height: 2.7em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+#main table tbody tr {
+ border-top: thin solid #CCCCCC;
+}
+#main table tbody tr th {
+ background-color: #E6E6E6;
+ font-weight: 600;
+}
+#main table tbody tr.no-wrap td,
+#main table tbody tr.no-wrap th {
+ line-height: 2.7em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+#main table tfoot {
+ color: #808080;
+}
+#main table tfoot tr {
+ border-top: thin solid #CCCCCC;
+}
+#main table.fixed {
+ box-sizing: border-box;
+ table-layout: fixed;
+}
+#main table.fixed * {
+ box-sizing: border-box;
+}
+#main .toc * {
+ font-weight: normal;
+}
+#main .toc a,
+#main .toc a:link,
+#main .toc a:visited {
+ color: #4D4D4D !important;
+ text-decoration: none;
+}
+#main .toc a:hover {
+ color: #808080 !important;
+}
+#main div.toc li {
+ border-bottom: medium none;
+ font-weight: normal;
+ margin-bottom: 0;
+ padding-bottom: 0;
+ text-transform: none;;
+ list-style: none outside none;
+}
+#main div.toc > ul.toc > li > span:after {
+ content: "" !important;
+ display: block;
+ border-bottom: 0.125em solid #EEEEEE;
+ margin-bottom: 1em;
+ padding-bottom: 0.25em;
+}
+#main div.toc > ul.toc li ul {
+ margin-bottom: 1.5em;
+}
+#main div.toc > ul.toc ul {
+ padding-left: 1.35em;
+}
+#main div.toc > ul.toc > li {
+ font-family: inherit;
+ font-weight: 700;
+ text-transform: uppercase;
+ list-style: none outside none;
+}
+
+#main .admonition_header {
+ margin: 0 !important;
+ position: relative !important;
+ text-transform: uppercase !important;
+ top: -0.3em !important;
+ background: none !important;
+ padding-left: 0px !important;
+ font-weight: bold;
+}
+#main .admonition_header code {
+ text-transform: none !important;
+}
+#main .admonition_header p {
+ margin-bottom: 0 !important;
+}
+
+#main div.admonition > div {
+ padding-left: 0px !important;
+ border: none !important;
+ background-color: white;
+}
+
+#main .note,
+#main .important,
+#main .warning {
+ margin-bottom: 1.8em !important;
+ border-bottom: none !important;
+}
+#main .admonition p:last-child,
+#main .admonition .para:last-child {
+ margin-bottom: 0 !important;
+}
+#main .note,
+#main .important {
+ background-size: 2.7em auto !important;
+ padding-left: 4.5em !important;
+}
+#main .note {
+ background-image: url("../images/service_pattern_tile_positive.svg") !important;
+ background-repeat: repeat-y !important;
+}
+#main .important {
+ background-image: url("../images/service_pattern_tile_negative.svg") !important;
+ background-repeat: repeat-y !important;
+}
+#main .warning {
+ background-color: #333333 !important;
+ border-radius: 0.25em !important;
+ color: #FFFFFF !important;
+ padding: 1.2006em 0.9em 1.2006em 4.5em !important;
+ position: relative;
+}
+#main .warning > *,
+#main .warning .admonition_header strong {
+ background-color: #333333 !important;
+ color: #FFFFFF !important;
+}
+
+#main .warning:before {
+ font-size: 2.7em !important;
+ left: 0.36em !important;
+ position: absolute !important;
+ top: 0.36em !important;
+}
+
+/* toc hider */
+#main .menu-toggle {
+ background: none repeat scroll 0 0 #f9f9f9;
+ height: 48px;
+ right: -48px;
+ line-height: 48px;
+ padding: 0;
+ position: absolute;
+ text-align: center;
+ top: 0;
+ width: 48px;
+}
+#main .menu-toggle:hover,
+#main .menu-toggle:active {
+ background: none repeat scroll 0 0 #f2f2f2;
+}
+#main .menu-toggle > span {
+ background-color: #1a1a1a;
+ border-radius: 1px;
+ display: block;
+ height: 3px;
+ left: 50%;
+ margin-left: -12px;
+ margin-top: -1.5px;
+ position: absolute;
+ text-indent: -9999px;
+ top: 50%;
+ transition: all 0.2s ease 0s;
+ width: 24px;
+}
+#main .menu-toggle > span:before,
+#main .menu-toggle > span:after {
+ background-color: #1a1a1a;
+ border-radius: 1.5px;
+ content: "";
+ display: block;
+ height: 3px;
+ position: absolute;
+ transition: all 0.2s ease 0s;
+ width: 100%;
+}
+#main .menu-toggle > span:before {
+}
+#main .menu-toggle > span:after {
+ bottom: -6px;
+}
+#main .menu-toggle > span {
+ -webkit-transform:rotate(45deg);
+ -moz-transform:rotate(45deg);
+ -ms-transform:rotate(45deg);
+ -o-transform:rotate(45deg);
+ transform:rotate(45deg);
+}
+#main .menu-toggle > span:before {
+ -webkit-transform:rotate(90deg);
+ -moz-transform:rotate(90deg);
+ -ms-transform:rotate(90deg);
+ -o-transform:rotate(90deg);
+ transform: rotate(90deg);
+}
+
+#main .menu-toggle > span:after {
+ opacity: 0;
+}
+
+#main .menu-toggle.tocClosed {
+ margin-right: -1em;
+}
+
+#main .menu-toggle.tocClosed > span {
+ -webkit-transform:rotate(0deg);
+ -moz-transform:rotate(0deg);
+ -ms-transform:rotate(0deg);
+ -o-transform:rotate(0deg);
+ transform: rotate(0deg);
+}
+#main .menu-toggle.tocClosed > span:before {
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ -o-transform: none;
+ transform: none;
+ top: -6px;
+}
+#main .menu-toggle.tocClosed > span:after {
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ -o-transform: none;
+ transform: none;
+ opacity: 1;
+}
+
+/* less than 960px wide */
+@media screen and (max-width: 960px) {
+ #main #chromed-app-content #navigation {
+ margin-left: -21em !important;
+ }
+
+ #navigation {
+ margin-left: -21em;
+ width: 18em;
+ }
+ #main {
+ margin-left: 21em !important;
+ }
+ #navigation > .toc {
+ width: 18em;
+ }
+
+ #main .menu-toggle.tocClosed {
+ margin-right: 1em;
+ }
+
+ #title,
+ #main .book,
+ #main .docnav,
+ #main > div > .preface,
+ #main > div > .section,
+ #main > div > .chapter,
+ #main > div > .appendix {
+ margin-left: 1em !important;
+ }
+}
+
+#main .formalpara-title {
+ color: #454545;
+ display: block;
+ font-size: larger;
+ font-weight: bold;
+ margin-bottom: 1em;
+ margin-top: 1.5em;
+}
+
+#main .calloutlist dt {
+ border-top: 2px solid rgba(0,0,0,0.1);
+ padding-top: .5em;
+}
+
+#main dl.calloutlist {
+ margin-top: 10px !important;
+}
+
+#main a.co,
+#main dl.calloutlist dt a,
+#main span.inlinecallout,
+#main dl.calloutlist dt > span.callout {
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
+ background-color: #9a9a9a;
+ color: white;
+ position: absolute;
+ font-weight: bold;
+ text-align: center;
+ line-height: 1.5em;
+ height: 1.5em;
+ width: 1.5em;
+ border-radius: 1.5em;
+ -moz-border-radius: 1.5em;
+ -webkit-border-radius: 1.5em;
+}
+#main a.co {
+ right: 2em;
+}
+
+#main .callout {
+}
+
+#main dl.calloutlist dd {
+ margin-top: 0px;
+ padding-left: 2em;
+}
+#main a.co {
+ position: absolute !important;
+ width: 90% !important;
+ text-align: right;
+ padding: .6em .5em;
+ background-color: transparent;
+ margin-top: -.4em;
+}
+#main a.co:before {
+ border-top: .1em solid rgba(0,0,0,0.1);
+ content: "";
+ display: block;
+ width: 100%;
+ height: .1em;
+ position: absolute;
+ left: 0;
+ z-index: -1;
+ top: .33em !important;
+ left: auto;
+ right: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+#main a.co:after {
+ content: "";
+ display: block;
+ background-color: #aaa;
+ border-radius: 0% 0 50% 50%;
+ width: 2em;
+ height: 2em;
+ position: absolute;
+ left: 0;
+ z-index: -1;
+ top: .33em !important;
+ left: auto;
+ right: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+#main a.co:hover {
+ position: relative;
+ z-index: 9;
+}
+#main a.co:hover:before {
+ border-top: .1em solid #d00;
+ height: 1.5em;
+ margin-right: 1em;
+}
+#main a.co:hover:after {
+ background-color: #d00;
+}
+#main .programlisting {
+ position: relative !important;
+}
+#main .calloutlist dt {
+ border-top: 2px solid rgba(0,0,0,0.1);
+ padding-top: .25em;
+}
+#main a.co, dl.calloutlist dt a,
+#main span.inlinecallout,
+#main dl.calloutlist dt > span.callout {
+ border-radius: 0 0% 50% 50%;
+}
+
+#main dl.calloutlist dt.active,
+#main dl.calloutlist dt.active span.callout,
+#main dl.calloutlist dt.active a {
+ border-color: #d00;
+}
+#main dl.calloutlist dt.active a {
+ background-color: #d00;
+}
+
+#main .application,
+#main .guimenu,
+#main .guilabel,
+#main .guibutton,
+#main .guisubmenu,
+#main .guimenuitem,
+#main .abstract-title {
+ font-weight: bold;
+}
+
+#main .popper:hover,
+#main .popped:hover {
+ cursor:pointer;
+ background-color:rgba(0,0,0,0.03);
+}
+
+#main .popper {
+ max-height: 5.9em;
+ overflow: hidden;
+ overflow: -moz-hidden-unscrollable;
+ border-bottom: 3px dashed #A1A1A1;
+ position:relative;
+}
+
+#main .popper > .hide {
+ display: none;
+}
+
+#main .popper .show,
+#main .popped .hide {
+ display: block;
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ opacity: 0;
+}
+
+#main .popped {
+ max-height: 100%;
+ position:relative;
+}
+#main .popped > .show {
+ display: none;
+}
+
+@media print {
+ #main .hide, #main .show {display: none;}
+ #main pre.popper {max-height: auto;}
+}
+
+#main pre.numbered {
+ counter-reset: linecounter;
+}
+#main pre.numbered span.line{
+ counter-increment: linecounter;
+}
+#main pre.numbered span.line:before{
+ content: counter(linecounter);
+ width: 2em;
+ display: inline-block;
+ border-right: 1px solid black;
+}
+
+#main .example {
+ padding: 0.5em 0px 0.5em 1em;
+ border-left: 0.5em solid #AAAAAA;
+}
+
+#main .example p:first-child {
+ margin-top: 0px;
+}
+
+#main .switchery {
+}
+
+#main .switchery .labels {
+ margin-left:8px;
+}
+
+#main .switchery .labels > span {
+ background-color: #EEEEEE;
+ color: #666;
+ display: inline;
+ margin: 0;
+ margin-left: -1px;
+ padding: 0.5em 0.5em 0.2em;
+ border: 1px solid #AAAAAA;
+ cursor: pointer;
+}
+
+#main .switchery .labels > span.active {
+ background-color: white;
+ color: black;
+ border-bottom: white !important;
+}
+
+#main .switchery .code {
+ margin-top: 0px;
+}
+
+#main .switchery .code pre {
+ margin-top: 0px;
+ display: none;
+}
+#main .switchery .code pre.active {
+ display: block;
+}
+
+#main .switchery select.deflang {
+ float: right;
+}
+
+/* Start Highlighting css */
+#main .hljs {
+ -webkit-text-size-adjust: none;
+ text-shadow: none;
+}
+
+#main .hljs-comment,
+#main .language-diff .hljs-header,
+#main .hljs-javadoc,
+#main .hljs-preprocessor,
+#main .hljs-pragma,
+#main .hljs-pi,
+#main .hljs-doctype,
+#main .hljs-shebang,
+#main .hljs-cdata {
+ color: #8d8d8d;
+}
+
+#main .hljs-keyword,
+#main .hljs .assignment,
+#main .hljs-literal,
+#main .language-css .rule .hljs-keyword,
+#main .hljs-winutils,
+#main .language-javascript .hljs-title,
+#main .language-lisp .hljs-title,
+#main .hljs-subst {
+ color: #FFA07A;
+}
+
+#main .hljs-number,
+#main .hljs-hexcolor {
+ color: #87CEFA;
+ font-weight: 600;
+}
+
+#main .hljs-string,
+#main .hljs-tag .hljs-value,
+#main .hljs-phpdoc,
+#main .hljs-dartdoc,
+#main .language-tex .hljs-formula {
+ color: #FAFAD2;
+}
+
+#main .language-javascript .hljs-title,
+#main .language-lisp .hljs-title,
+#main .hljs-subst {
+ font-weight: normal;
+}
+
+#main .hljs-tag,
+#main .hljs-tag .hljs-title,
+#main .hljs-rules .hljs-property,
+#main .language-django .hljs-tag .hljs-keyword {
+ color: #FFA07A;
+ font-weight: normal;
+}
+
+#main .language-java .hljs-annotation {
+ color: #a4e2a4;
+}
+
+#main .hljs-attribute,
+#main .hljs-variable,
+#main .hjls .instancevar,
+#main .language-lisp .hljs-body,
+#main .language-xml .hljs-attribute{
+ color: #ca5380;
+}
+
+#main .hljs-regexp {
+ color: #d6b4df;
+}
+
+#main .hljs-symbol,
+#main .language-ruby .hljs-symbol .hljs-string,
+#main .language-ruby .hljs-symbol .hljs-keyword,
+#main .language-ruby .hljs-symbol .keymethods,
+#main .language-lisp .hljs-keyword,
+#main .language-tex .hljs-special,
+#main .hjls .input_number {
+ color: #FFA07A;
+}
+
+#main .hljs-deletion {
+ color: #d9534f;
+}
+
+#main .hljs-addition {
+ color: #a4e2a4;
+}
+
+#main .language-diff .hljs-change {
+ color: #FFA07A;
+}
+
+#main .hljs-chunk {
+ color: #aaa;
+}
+
+#main .language-tex .hljs-formula {
+ opacity: 0.5;
+}
+/* End Highlighting css */
diff --git a/sec/Common_Content/css/common.css b/sec/Common_Content/css/common.css
new file mode 100644
index 000000000..7309eab1b
--- /dev/null
+++ b/sec/Common_Content/css/common.css
@@ -0,0 +1,944 @@
+body, h1, h2, h3, h4, h5, h6, li, div {
+ margin-top: 2em;
+ widows: 4 !important;
+ orphans: 4 !important;
+}
+
+body > div.book,
+body > div.article,
+body > div.set,
+body > div.preface,
+body > div.chapter,
+body > div.section,
+body > div.appendix,
+body > div.part {
+ margin-top: 0;
+ padding: 0em 2em;
+}
+
+div.itemizedlist, div.affiliation {
+ margin-top: 0em;
+}
+
+h1, h2, h3, h4, h5, h6, header .home, .title {
+ color: #454545;
+ font-family: "overpass", "Open Sans","liberation sans", "Myriad ", "Bitstream Vera Sans", "Lucida Grande", "Luxi Sans", "Trebuchet MS", helvetica, verdana, arial, sans-serif;
+}
+
+body {
+ background-color: white;
+ margin: 0 auto;
+ font-family: "Open Sans","liberation sans", "Myriad ", "Bitstream Vera Sans", "Lucida Grande", "Luxi Sans", "Trebuchet MS", helvetica, verdana, arial, sans-serif;
+ font-size: 12pt;
+ max-width: 54em;
+ color: black;
+ line-height: 1.3em;
+ padding-bottom: 3em;
+ padding-top: 2em;
+}
+
+.draft {
+ background-image: url("../images/watermark-draft.png");
+ background-position: center;
+ background-repeat: repeat-y;
+}
+
+header {
+ margin: 0px 1em;
+}
+
+footer {
+ margin: 0px 1em;
+}
+
+.visible {
+ display: block !important;
+}
+.hidden {
+ display: none !important;
+}
+
+
+/* Navigation */
+
+header .docnav {
+ -moz-box-sizing: border-box;
+ background-color: rgba(1, 1, 1, 0.75);
+ border-radius: 9em 9em 0 0;
+ bottom: 0;
+ color: #FFFFFF;
+ height: 2em;
+ left: 5%;
+ margin-bottom: 0;
+ width: 90%;
+ position: fixed;
+ text-align: center;
+ margin-bottom: 0 !important;
+ z-index: 99;
+ list-style: none outside none;
+}
+
+header .docnav li {
+ display: inline;
+ font-size: 14px;
+ list-style: none outside none;
+ margin: 0;
+ padding: 0;
+}
+
+header .docnav li:before {
+ content: " ";
+}
+header .docnav a, .docnav strong {
+ border: medium none;
+ font-weight: normal;
+ text-decoration: none;
+}
+header .docnav li.next, .docnav li.previous {
+ position: absolute;
+ margin: 0;
+ padding: 0;
+ top: auto;
+}
+header .docnav li.previous {
+ left: 1em;
+ text-align: left;
+}
+header .docnav li.next {
+ right: 1em;
+ text-align: right;
+}
+header .docnav li.next a strong,
+header .docnav li.previous a strong,
+header .docnav .home {
+ color: #aaa;
+}
+header .docnav li.next a strong:hover,
+header .docnav li.previous a strong:hover,
+header .docnav .home:hover {
+ color: #FFFFFF;
+}
+header .docnav li.next a strong,
+header .docnav li.previous a strong {
+ line-height: 2.3em;
+ padding: 0.3em 3em;
+}
+header .docnav li.next a strong {
+ background-position: 90% 90%;
+ background: url("../images/stock-go-forward.png") no-repeat scroll right 120% transparent;
+}
+header .docnav li.previous a strong {
+ background-position: 10% 90%;
+ background: url("../images/stock-go-back.png") no-repeat scroll left 120% transparent;
+}
+
+header .docnav li.home a strong {
+ background: url("../images/stock-home.png") no-repeat scroll left top transparent;
+ padding: 5px 5px 5px 28px;
+}
+header .docnav .home {
+ cursor: pointer;
+ position: relative;
+ padding: 0.5em !important;
+ font-size: 20px !important;
+ top: 0.3em !important;
+}
+header .docnav .home:after {
+ border-color: transparent transparent #999999;
+ border-width: 0 0.5em 0.5em;
+ top: 0.8em;
+ border-style: solid;
+ content: "";
+ display: block;
+ position: absolute;
+ right: -1.2em;
+ z-index: 2;
+}
+
+footer .docnav {
+ display: none;
+}
+
+/* Admonitions */
+div.admonition {
+ margin-bottom: 1em;
+ padding-left: 1.5em;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ border-left: 0.5em solid #59BC00;
+}
+
+div.admonition_header {
+ font-weight: bold;
+ margin-top: 0;
+}
+
+div.admonition > div:last-child > *:last-child {
+ margin-bottom: 0em;
+}
+
+
+div.important {
+ border-color: #FFC200;
+}
+
+div.warning {
+ border-color: #FF0000;
+}
+
+div.tip {
+ border-color: #1E90FF;
+}
+
+div.caution {
+ border-color: #950000;
+}
+
+.command, .filename, .keycap, .classname, .literal, code {
+ font-family: "dejavu sans mono","liberation mono","bitstream vera mono","dejavu mono",monospace;
+ font-weight: bold;
+}
+
+.application, .guimenu, .guilabel, .guibutton, .guisubmenu, .guimenuitem, .abstract-title {
+ font-weight: bold;
+}
+
+
+.computeroutput, .option {
+ font-family: "dejavu sans mono","liberation mono","bitstream vera mono","dejavu mono",monospace;
+ font-weight: bold;
+}
+
+pre {
+ padding: 0.5em 0px 0.5em 1em;
+ font-family: "dejavu sans mono","liberation mono","bitstream vera mono","dejavu mono",monospace;
+ font-size: medium;
+ border-left: 0.5em solid #666666;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+.popper:hover,
+.popped:hover {
+ cursor:pointer;
+ background-color:rgba(0,0,0,0.03);
+}
+
+.popper {
+ max-height: 6.3em;
+ overflow: hidden;
+ overflow: -moz-hidden-unscrollable;
+ border-bottom: 1px dashed #666666;
+ position:relative;
+}
+
+.popper > .hide {
+ display: none;
+}
+
+.popper .show,
+.popped .hide {
+ display: block;
+ position: absolute;
+/* top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+*/
+ height: 100%;
+ width: 100%;
+ opacity: 0;
+}
+
+.popped {
+ max-height: 100%;
+ position:relative;
+}
+.popped > .show {
+ display: none;
+}
+
+
+@media print { .hide, .show { display: none;
+} pre.popper {max-height: auto;}}
+
+
+pre.numbered {
+ counter-reset: linecounter;
+}
+pre.numbered span.line{
+ counter-increment: linecounter;
+}
+pre.numbered span.line:before{
+ content: counter(linecounter);
+ width: 1.5em;
+ display: inline-block;
+ border-right: 1px solid #a1a1a1;
+ text-align: right;
+ margin-right: 1em;
+ color: #a1a1a1;
+ padding-right: 0.3em;
+}
+
+.example {
+ padding: 0.5em 0px 0.5em 1em;
+ border-left: 0.5em solid #AAAAAA;
+}
+
+.example p:first-child {
+ margin-top: 0px;
+}
+
+.switchery {
+}
+
+.switchery .labels {
+ margin-left:8px;
+}
+
+.switchery .labels > span {
+ background-color: #EEEEEE;
+ color: #666;
+ display: inline;
+ margin: 0;
+ margin-left: -1px;
+ padding: 0.5em 0.5em 0.2em;
+ border: 1px solid #AAAAAA;
+ cursor: pointer;
+}
+
+
+.switchery .labels > span.active {
+ background-color: white;
+ color: black;
+ border-bottom: white !important;
+}
+
+.switchery .code {
+ margin-top: 0px;
+}
+
+.switchery .code pre {
+ margin-top: 0px;
+ display: none;
+}
+.switchery .code pre.active {
+ display: block;
+}
+
+.switchery select.deflang {
+ float: right;
+ margin-top: -7px;
+}
+
+table {
+ border-collapse: collapse;
+ width: 100%;
+ word-wrap: break-word;
+ table-layout: fixed;
+}
+
+th, td {
+ vertical-align: top;
+ border: 1px solid black;
+ padding: 0.5em;
+}
+
+th {
+ background-color: #6699cc;
+ color: white;
+}
+
+.qandaset li {
+ margin-top: 0.3em;
+}
+
+.qandaset td {
+ border: none;
+}
+
+.revhistory > table,
+.revhistory > table td {
+ border: none;
+}
+
+div.navfooter {
+ color: #999999;
+}
+
+div.navfooter a {
+ text-decoration: none;
+}
+
+div.navfooter a:hover {
+ text-decoration: none;
+ color: #444444;
+}
+
+div.navfooter table {
+ border: none;
+}
+
+div.navfooter table tr:first-child td a {
+ background-position: 90% 90%;
+}
+
+div.navfooter table tr:first-child td:last-child a {
+ background: url("../images/stock-go-forward.png") no-repeat scroll right 120% transparent;
+ padding-bottom: 4px;
+ padding-right: 28px;
+ padding-top: 3px;
+}
+
+div.navfooter table tr:first-child td:first-child a {
+ background: url("../images/stock-go-back.png") no-repeat scroll left 120% transparent;
+ padding: 3px 0.5em 4px 28px;
+}
+
+div.navfooter table tr td {
+ font-size: 10px;
+}
+div.navfooter table tr:first-child td {
+ font-size: 1em;
+}
+
+/* BZ#1222067 */
+.inlinemediaobject {
+ display: inline;
+}
+
+img {
+ max-width: 100%;
+}
+
+.figure {
+ margin-top: 1em;
+}
+
+a {
+ outline: medium none;
+}
+
+a:link {
+ color: #3366CC;
+ text-decoration: none;
+}
+a:visited {
+ color: #003366;
+ text-decoration: none;
+}
+
+.toc *, .qandaset a {
+ border: medium none;
+ font-weight: normal !important;
+ font-family: "Open Sans","liberation sans", "Myriad ", "Bitstream Vera Sans", "Lucida Grande", "Luxi Sans", "Trebuchet MS", helvetica, verdana, arial, sans-serif !important;
+}
+
+.toc a:hover, .qandaset a:hover {
+ border-bottom: 1px dotted;
+}
+
+.toc li {
+ margin-top: 0.1em;
+ font-size: 14px;
+ line-height: 1.25em;
+}
+
+table.lt-4-cols.lt-7-rows td {
+ border: none;
+}
+/*to simplify layout*/
+
+
+table.lt-4-cols.gt-14-rows tr:nth-child(odd) {
+ background-color: #fafafa;
+}
+/* to keep simple but stripe rows */
+
+
+.gt-8-cols td {
+ border-left: 1px solid #ccc;
+}
+
+.gt-8-cols td:first-child {
+ border-left: 0;
+}
+
+/*Lists*/
+ul {
+ list-style-image: url("../images/dot.png");
+ list-style-type: circle;
+ padding-left: 1.6em;
+}
+
+ul ul {
+ list-style-image: url("../images/dot2.png");
+ list-style-type: circle;
+}
+
+ol.1 {
+ list-style-type: decimal;
+}
+
+ol.a {
+ list-style-type: lower-alpha;
+}
+
+ol.i {
+ list-style-type: lower-roman;
+}
+ol.A {
+ list-style-type: upper-alpha;
+}
+
+ol.I {
+ list-style-type: upper-roman;
+}
+
+dt {
+ font-weight:bold;
+ margin-top: 1.5em;
+}
+
+dd {
+ margin-top: 0.5em;
+/* margin:0px;
+ margin-left:2em;
+ padding-top:0px;
+ padding-bottom: 1em;
+*/
+}
+
+li {
+ padding-top: 0px;
+ margin-top: 1em;
+ padding-bottom: 0px;
+/* margin-bottom: 16px;
+ */
+}
+
+ul > li {
+/* margin-top: 0em;
+ */
+
+}
+
+li > p:first-child,
+dd > p:first-child {
+ margin-top: 0em;
+ margin-bottom: 0.1em;
+}
+
+sup {
+ margin:0px;
+ padding:0px;
+ font-size: 10px;
+ padding-left:0px;
+}
+
+.footnote {
+ font-size: small;
+ margin: 0em;
+ line-height: 1.3em;
+}
+
+.footnote p {
+ margin: 0em;
+}
+
+.footnote sup {
+ color: black;
+}
+.footnote .para sup {
+/* position:absolute;
+ */
+ vertical-align: middle;
+}
+
+/*credits*/
+.authorgroup > div {
+ margin-top: 1.5em;
+}
+
+.authorgroup,
+div.producttitle,
+.book > .titlepage h1.title,
+.article > .titlepage h1.title,
+.article > .titlepage h2.title,
+.set .titlepage > div > div > h1.title,
+.part > .titlepage h1.title,
+div.subtitle,
+h2.subtitle,
+h3.subtitle,
+.titlepage .author,
+.mediaobject.logo {
+ text-align: center;
+}
+
+.titlepage div.author {
+ text-align: center;
+ margin-top: 1.5em;
+}
+
+.authorgroup h3 {
+ clear:both;
+ margin-bottom: 0em;
+
+}
+
+div.author div.author,
+div.translator div.translator,
+div.othercredit div.othercredit,
+div.editor div.editor,
+div.contrib div.contrib {
+ margin: 0px;
+ padding: 0px;
+ font-weight: bold;
+}
+
+div.editedby {
+ margin-top: 15px;
+ margin-bottom: -0.8em;
+}
+
+div.authorgroup .author,
+div.authorgroup.editor,
+div.authorgroup.translator,
+div.authorgroup.othercredit,
+div.authorgroup.contrib {
+ display: block;
+}
+
+.revhistory .author {
+ display: inline;
+}
+
+.othercredit h3 {
+ padding-top: 1em;
+}
+
+
+.othercredit {
+ margin:0px;
+ padding:0px;
+}
+
+.releaseinfo {
+ clear: both;
+}
+
+.copyright {
+ margin-top: 1em;
+}
+
+/* qanda sets */
+.answer {
+ margin-bottom:1em;
+ border-bottom:1px dotted #ccc;
+}
+
+.qandaset .toc {
+ border-bottom:1px dotted #ccc;
+}
+
+.qandaset ul,
+.toc ul {
+ list-style: none;
+ margin-bottom: 1em;
+}
+
+.question {
+ font-weight:bold;
+}
+
+.answer .data, .question .data {
+ padding-left: 2.6em;
+}
+
+.answer .label, .question .label {
+ float:left;
+ font-weight:bold;
+ margin-top: 0;
+}
+
+/*revision history*/
+.revhistory {
+ display:block;
+}
+
+.revhistory table {
+ background-color:transparent;
+ border-color:#fff;
+ padding:0px;
+ margin: 0;
+ border-collapse:collapse;
+ border-style:none;
+}
+
+.revhistory td {
+ text-align :left;
+ padding:0px;
+ border: none;
+ border-top: 1px solid #fff;
+ font-weight: bold;
+}
+
+.revhistory .simplelist td {
+ font-weight: normal;
+}
+
+.revhistory .simplelist {
+ margin-bottom: 1.5em;
+ margin-left: 1em;
+}
+
+.revhistory table th {
+ display: none;
+}
+
+.screen * {
+ font-weight: normal;
+}
+
+
+.perl_Alert {
+ color: #0000FF;
+}
+.perl_BaseN {
+ color: #007F00;
+}
+.perl_BString {
+ color: #5C3566;
+}
+.perl_Char {
+ color: #FF00FF;
+}
+.perl_Comment {
+ color: #888888;
+}
+.perl_DataType {
+ color: #0000FF;
+}
+.perl_DecVal {
+ color: #00007F;
+}
+.perl_Error {
+ color: #FF0000;
+}
+.perl_Float {
+ color: #00007F;
+}
+.perl_Function {
+ color: #007F00;
+}
+.perl_IString {
+ color: #5C3566;
+}
+.perl_Keyword {
+ color: brown;
+ font-weight: bold;
+}
+.perl_Operator {
+ color: #FFA500;
+}
+.perl_Others {
+ color: green;
+}
+.perl_RegionMarker {
+ color: #96B9FF;
+}
+.perl_Reserved {
+ color: #9B30FF;
+}
+.perl_String {
+ color: #ff00ff;
+}
+.perl_Variable {
+ color: #0000FF;
+}
+.perl_Warning {
+ color: #0000FF;
+}
+
+/* revisionflag */
+
+.added {
+ background-color: #99ff99;
+}
+
+.changed {
+ background-color: #ffff77;
+}
+
+.deleted {
+ background-color: #ff4455;
+ text-decoration: line-through;
+}
+
+span.remark {
+ background-color: #ff00ff;
+}
+
+iframe {
+ border: none;
+}
+
+#poptoc a {
+ color: #eee;
+}
+#poptoc dd a {
+ color: #eee;
+}
+#poptoc {
+ width: 100%;
+}
+#poptoc div.toc {
+ -moz-box-sizing: border-box;
+ background-color: rgba(100, 100, 100, 0.96);
+ bottom: 2em;
+ left: 50%;
+ margin-bottom: 0;
+ margin-left: -35%;
+ margin-right: auto;
+ margin-top: 0px;
+ overflow: auto;
+ padding: 2em;
+ padding-top: 1em;
+ position: fixed;
+ top: 50px;
+ transition: bottom 0.2s ease 2s;
+ width: 70%;
+ z-index: 1000;
+}
+
+#poptoc .toc ul {
+ padding-bottom: 0.5em;
+}
+
+
+.formalpara-title {
+ color: #454545;
+ display: block;
+ font-size: larger;
+ font-weight: bold;
+ margin-bottom: 1em;
+ margin-top: 1.5em;
+}
+
+.calloutlist dt {
+ border-top: 2px solid rgba(0,0,0,0.1);
+ padding-top: .5em;
+}
+
+.hljs * {
+ z-index: 1;
+}
+
+a.co span {
+ color: inherit;
+}
+
+a.co,
+dl.calloutlist dt a,
+span.inlinecallout,
+dl.calloutlist dt > span.callout {
+ font-family: "dejavu sans mono","liberation mono","bitstream vera mono","dejavu mono",monospace;
+ background-color: #9a9a9a;
+ color: white;
+ position: absolute;
+ font-weight: bold;
+ text-align: center;
+ line-height: 1.5em;
+ height: 1.5em;
+ width: 1.5em;
+ border-radius: 1.5em;
+ -moz-border-radius: 1.5em;
+ -webkit-border-radius: 1.5em;
+}
+a.co {
+ right: 2em;
+}
+
+.callout {
+}
+
+dl.calloutlist dd {
+ margin-top: 0px;
+}
+a.co {
+ position: absolute !important;
+ width: 90% !important;
+ text-align: right;
+ padding: .6em .5em;
+ background-color: transparent;
+ margin-top: -.4em;
+}
+a.co:before {
+ border-top: .1em solid rgba(0,0,0,0.1);
+ content: "";
+ display: block;
+ width: 100%;
+ height: .1em;
+ position: absolute;
+ left: 0;
+ z-index: -1;
+ top: .33em !important;
+ left: auto;
+ right: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+a.co:after {
+ content: "";
+ display: block;
+ background-color: #aaa;
+ border-radius: 0% 0 50% 50%;
+ width: 2em;
+ height: 2em;
+ position: absolute;
+ left: 0;
+ z-index: -1;
+ top: .33em !important;
+ left: auto;
+ right: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+a.co:hover {
+ position: relative;
+ z-index: 9;
+}
+a.co:hover:before {
+ border-top: .1em solid #d00;
+ height: 1.5em;
+ margin-right: 1em;
+}
+a.co:hover:after {
+ background-color: #d00;
+}
+.programlisting {
+ position: relative !important;
+ width: 100%;
+}
+.calloutlist dt {
+ border-top: 2px solid rgba(0,0,0,0.1);
+ padding-top: .25em;
+}
+a.co, dl.calloutlist dt a,
+span.inlinecallout,
+dl.calloutlist dt > span.callout {
+ border-radius: 0 0% 50% 50%;
+}
+
+dl.calloutlist dt.active,
+dl.calloutlist dt.active span.callout,
+dl.calloutlist dt.active a {
+ border-color: #d00;
+}
+dl.calloutlist dt.active a {
+ background-color: #d00;
+}
+
+
diff --git a/sec/Common_Content/css/default.css b/sec/Common_Content/css/default.css
new file mode 100644
index 000000000..7fb9ada5c
--- /dev/null
+++ b/sec/Common_Content/css/default.css
@@ -0,0 +1,4 @@
+@import url("common.css");
+@import url("overrides.css");
+@import url("lang.css");
+
diff --git a/sec/Common_Content/css/epub.css b/sec/Common_Content/css/epub.css
new file mode 100644
index 000000000..b0ffd43cb
--- /dev/null
+++ b/sec/Common_Content/css/epub.css
@@ -0,0 +1,115 @@
+/*headings*/
+h1, h2, h3, h4, h5, h6,
+div.producttitle,
+div.subtitle,
+div.author div.author,
+div.translator div.translator,
+div.othercredit div.othercredit,
+div.editor div.editor,
+div.contrib div.contrib,
+.title,
+.titlepage .edition {
+}
+
+div.para {
+ margin-top: 1em;
+}
+/* inline syntax highlighting */
+.perl_Alert {
+ color: #0000ff;
+}
+
+.perl_BaseN {
+ color: #007f00;
+}
+
+.perl_BString {
+ color: #5C3566;
+}
+
+.perl_Char {
+ color: #ff00ff;
+}
+
+.perl_Comment {
+ color: #888888;
+}
+
+
+.perl_DataType {
+ color: #0000ff;
+}
+
+
+.perl_DecVal {
+ color: #00007f;
+}
+
+
+.perl_Error {
+ color: #ff0000;
+}
+
+
+.perl_Float {
+ color: #00007f;
+}
+
+
+.perl_Function {
+ color: #007f00;
+}
+
+
+.perl_IString {
+ color: #5C3566;
+}
+
+
+.perl_Keyword {
+ color: #002F5D;
+}
+
+
+.perl_Operator {
+ color: #ffa500;
+}
+
+
+.perl_Others {
+ color: #b03060;
+}
+
+
+.perl_RegionMarker {
+ color: #96b9ff;
+}
+
+
+.perl_Reserved {
+ color: #9b30ff;
+}
+
+
+.perl_String {
+ color: #5C3566;
+}
+
+
+.perl_Variable {
+ color: #0000ff;
+}
+
+
+.perl_Warning {
+ color: #0000ff;
+}
+
+b, strong {
+ font-weight: bolder;
+}
+
+code.command {
+ font-family: monospace;
+ font-weight: bolder;
+}
diff --git a/sec/Common_Content/css/overrides.css b/sec/Common_Content/css/overrides.css
new file mode 100644
index 000000000..6c477387f
--- /dev/null
+++ b/sec/Common_Content/css/overrides.css
@@ -0,0 +1,599 @@
+/* New Red Hat Font */
+@import url(rhfont.css);
+
+/* Books Icon Font */
+@font-face {
+ font-family: "redhat-books-icons";
+ font-style: normal;
+ font-weight: normal;
+ src: url("../icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.eot?#iefix") format("embedded-opentype"), url("../icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.woff") format("woff"), url("../icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.ttf") format("truetype"), url("../icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.svg?#redhat-books-icons") format("svg");
+}
+
+/* Overpass */
+
+@font-face {
+ font-family: "Overpass";
+ font-style: normal;
+ font-weight: 400;
+ src: url("../fonts/overpass_regular-web.eot?#iefix") format("embedded-opentype"), url("../fonts/overpass_regular-web.woff") format("woff"), url("../fonts/overpass_regular-web.ttf") format("truetype"), url("../fonts/overpass_regular-web.svg#OverpassRegular") format("svg");
+}
+@font-face {
+ font-family: "Overpass";
+ font-style: normal;
+ font-weight: 700;
+ src: url("../fonts/overpass_bold-web.eot?#iefix") format("embedded-opentype"), url("../fonts/overpass_bold-web.woff") format("woff"), url("../fonts/overpass_bold-web.ttf") format("truetype"), url("../fonts/overpass_bold-web.svg#OverpassBold") format("svg");
+}
+@font-face {
+ font-family: "Overpass";
+ font-style: normal;
+ font-weight: 300;
+ src: url("../fonts/overpass_light-web.eot?#iefix") format("embedded-opentype"), url("../fonts/overpass_light-web.woff") format("woff"), url("../fonts/overpass_light-web.ttf") format("truetype"), url("../fonts/overpass_light-web.svg#overpasslight") format("svg");
+}
+
+
+
+/* Begin styles */
+
+body {
+ font-family: "Red Hat Text", "Overpass", "Helvetica Neue", sans-serif;
+ font-size: 14px;
+ color: #1a1a1a;
+ line-height: 1.8em;
+}
+
+/* desktop styles */
+body.desktop {
+ margin-left: 26em;
+}
+
+body.desktop .book > .toc {
+ margin-top: 0;
+ display:block;
+ width:24em;
+ height:99.99%;
+ position:fixed;
+ overflow:auto;
+ top:0;
+ left:0;
+ /* padding-left:1em; */
+ background-color:#EEEEEE;
+ font-size: 12px;
+}
+/* end desktop styles */
+
+h1, h2, h3, h4, h5, h6, .formalpara > .title, .para > .title, .titlepage .edition {
+ font-family: "Red Hat Display", "Overpass", "Helvetica Neue", sans-serif;
+ font-weight: 600;
+}
+h1 {
+ font-size: 42px;
+ line-height: 1.2em;
+ margin-bottom: 1.2em;
+ margin-top: 1.8em;
+ text-transform: uppercase;
+}
+h2 {
+ font-size:24.5px;
+ line-height: 1.54286em;
+ margin-bottom: 1.02857em;
+ margin-top: 2.05714em;
+ text-transform: uppercase;
+}
+h3 {
+ font-size: 1.5em;
+ line-height: 1.5em;
+ margin-bottom: 1.2em;
+ margin-top: 2.4em;
+}
+h4 {
+ font-size: 1.25em;
+ line-height: 1.44em;
+ margin-bottom: 1.44em;
+ margin-top: 2.88em;
+}
+h5 {
+ font-size: 1em;
+ line-height: 1.8em;
+ margin-bottom: 1.8em;
+ margin-top: 3.6em;
+}
+h6 {
+ font-size: 0.8em;
+ line-height: 1.6875em;
+ margin-bottom: 2.25em;
+ margin-top: 4.5em;
+}
+.formalpara > .title, .para > .title {
+ font-size: 1.1em;
+ line-height: 1.44em;
+ margin-bottom: 1em;
+ margin-top: 0;
+}
+
+.producttitle {
+ font-family: "Red Hat Display", "Overpass", "Helvetica Neue", sans-serif;
+ font-size: 1.75em;
+ line-height: 1;
+ margin-bottom: 1.02857em;
+ margin-top: 2.05714em;
+ padding-top: 0.75em;
+ position: relative;
+ text-transform: uppercase;
+}
+
+
+div.producttitle,
+.book > .titlepage h1.title,
+.titlepage h2.subtitle,
+.authorgroup div,
+.titlepage .author,
+.titlepage .corpauthor,
+.titlepage .edition,
+.titlepage .releaseinfo {
+ text-align: left !important;
+}
+
+
+.authorgroup {
+ margin-bottom: 1.8em;
+}
+.abstract {
+ margin-top: 1.8em;
+}
+
+.productname {
+ font-weight: bold;
+}
+
+.titlepage .productname {
+ display: block;
+ font-weight: 300;
+ font-size: 24.5px;
+ white-space: normal;
+ width: 8em;
+}
+.productnumber {
+ color: #CC0000;
+ display: block;
+ font-weight: 700;
+ font-size: 24.5px;
+}
+
+/* navigation */
+header,
+footer {
+ margin : 0;
+}
+
+header .docnav,
+footer .docnav {
+ position: relative;
+ background: none;
+ width: auto;
+ left: 0;
+ height: 1px;
+}
+
+footer .docnav {
+ display: block;
+}
+
+ul.docnav li.previous {
+ left: 0;
+}
+
+ul.docnav li.next {
+ right: 0;
+}
+
+ul.docnav li.previous,
+ul.docnav li.next {
+ position: absolute;
+ list-style: none outside none;
+ margin: 0;
+}
+
+ul.docnav li.next a strong:hover,
+ul.docnav li.previous a strong:hover,
+ul.docnav .home:hover {
+ color: #777;
+}
+
+ul.docnav li.previous a strong:before,
+ul.docnav li.next a strong:after,
+.warning:before {
+ font-family: "redhat-books-icons";
+ font-style: normal;
+ font-variant: normal;
+ font-weight: normal;
+ line-height: 1;
+ margin-right: 0.5em;
+ text-transform: none;
+ font-size: 5em;
+ line-height: 1em;
+ margin-top: -0.5em;
+ position: absolute;
+ top: 50%;
+ color: #aaa;
+ margin-left: -0.4em;
+}
+
+ul.docnav li.previous a strong:before {
+ content: "" !important;
+}
+ul.docnav li.next a strong:after {
+ content: "" !important;
+}
+
+ul.docnav li.next a strong,
+ul.docnav li.previous a strong {
+ color: #aaa;
+ background: none;
+ line-height: 2.3em;
+ padding: 0.3em 3em;
+}
+
+#poptoc div.toc {
+ background: none repeat scroll 0 0 #f9f9f9;
+ margin: 0 auto 0 -30%;
+ width: 60%;
+ bottom: 3em;
+}
+
+#poptoc .toc > ul {
+ margin: auto;
+}
+
+#poptoc div.toc a {
+ color: #4d4d4d !important;
+ text-decoration: none;
+}
+
+/* admonitions */
+div.admonition {
+ border: none !important;
+}
+
+.note, .important, .warning {
+ margin-bottom: 1.8em !important;
+ border-bottom: none !important;
+}
+.admonition p:last-child, .admonition .para:last-child {
+ margin-bottom: 0 !important;
+}
+.note, .important {
+ background-size: 2.7em auto !important;
+ padding-left: 4.5em !important;
+}
+.note {
+ background-image: url("../images/service_pattern_tile_positive.svg") !important;
+ background-repeat: repeat-y !important;
+}
+.important {
+ background-image: url("../images/service_pattern_tile_negative.svg") !important;
+ background-repeat: repeat-y !important;
+}
+.warning {
+ background-color: #333333 !important;
+ border-radius: 0.25em !important;
+ color: #FFFFFF !important;
+ padding: 1.2006em 0.9em 1.2006em 4.5em !important;
+ position: relative;
+}
+.warning > *, .warning .admonition_header strong {
+ background-color: #333333 !important;
+ color: #FFFFFF !important;
+}
+
+.warning:before {
+ font-size: 2.7em !important;
+ left: 0.36em !important;
+ position: absolute !important;
+ top: 0.36em !important;
+}
+
+
+/* tables */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ border-color: #CCCCCC;
+ border: thin solid #CCCCCC;
+ font-size: 0.9em;
+ margin: 0 0 1.8em;
+ text-align: left;
+ width: 100%;
+}
+table caption, table th, table td {
+ border: none;
+ padding: 0.9em;
+ vertical-align: top;
+}
+table caption {
+ font-size: 0.8em;
+ font-weight: 600;
+ text-transform: uppercase;
+}
+th {
+ font-weight: 600;
+ background-color: #E6E6E6;
+ text-align: left;
+ color: #1a1a1a;
+}
+table thead tr {
+ background-color: #E6E6E6;
+}
+table thead tr.no-wrap th {
+ line-height: 2.7em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+table tbody tr {
+ border-top: thin solid #CCCCCC;
+}
+table tbody tr.no-wrap td, table tbody tr.no-wrap th {
+ line-height: 2.7em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+table tfoot {
+ color: #808080;
+}
+table tfoot tr {
+ border-top: thin solid #CCCCCC;
+}
+table.fixed {
+ box-sizing: border-box;
+ table-layout: fixed;
+}
+table.fixed * {
+ box-sizing: border-box;
+}
+
+/* BZ#1222067 */
+.inlinemediaobject {
+ display: inline;
+}
+
+/* CCS-575 */
+span.callout,
+span.inlinecallout {
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
+ background-color: #9a9a9a;
+ color: white;
+ font-weight: bold;
+ text-align: center;
+ line-height: 1.5em;
+ height: 1.5em;
+ width: 1.5em;
+ display: inline-block;
+ border-radius: 1.5em;
+ -moz-border-radius: 1.5em;
+ -webkit-border-radius: 1.5em;
+}
+.pdf span.callout,
+.pdf span.inlinecallout {
+ line-height: 0.75em;
+ height: 0.75em;
+ width: 0.75em;
+ border-radius: 0.75em;
+ -moz-border-radius: 0.75em;
+ -webkit-border-radius: 0.75em;
+}
+.footnote {
+ font-size: 0.9em;
+}
+.footnote sup {
+ font-size: 1em;
+}
+
+/* List Struct by mcaron */
+.list-struct {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.list-struct,
+.list-struct *,
+.list-struct *:before,
+.list-struct *:after {
+ box-sizing: border-box;
+}
+
+.list-struct dt,
+.list-struct .list-struct-heading {
+ clear: left;
+ float: left;
+ display: inline-block; /* for IE10 */
+ margin: 0 0 8px;
+ padding-right: 15px;
+ font-size: 1em;
+ line-height: inherit;
+ font-weight: 600;
+ text-transform: none;
+ width: 33.33333%;
+}
+
+.list-struct dd,
+.list-struct .list-struct-desc {
+ display: inline-block;
+ margin: 0 0 8px;
+ width: 66.66667%;
+}
+
+/* no flexbox */
+dd:after,
+.list-struct-desc:after {
+ content: " ";
+ display: table;
+}
+
+dd:after,
+.list-struct-desc:after {
+ clear: both;
+}
+/* /no flexbox */
+
+.list-struct dd + dd,
+.list-struct .list-struct-desc + .list-struct-desc {
+ margin-left: 33.33333%;
+}
+
+/* make them bordered */
+.list-struct dt,
+.list-struct dd,
+.list-struct .list-struct-heading,
+.list-struct .list-struct-desc {
+ border-top: 1px solid #ececec;
+ padding-top: 8px;
+}
+
+.list-struct dt:first-of-type,
+.list-struct dd:first-of-type,
+.list-struct dd + dd,
+.list-struct li:first-child > .list-struct-heading,
+.list-struct li:first-child > .list-struct-desc:first-of-type,
+.list-struct .list-struct-desc + .list-struct-desc {
+ padding-top: 0;
+ border-top: 0;
+}
+
+
+/* 25 / 75 */
+.list-struct-25-75 dt,
+.list-struct-25-75 .list-struct-heading {
+ width: 25%;
+}
+
+.list-struct-25-75 dd,
+.list-struct-25-75 .list-struct-desc {
+ width: 75%;
+}
+
+.list-struct-25-75 dd + dd,
+.list-struct-25-75 .list-struct-desc + .list-struct-desc {
+ margin-left: 25%;
+}
+
+/* 50 / 50 */
+.list-struct-50-50 dt,
+.list-struct-50-50 .list-struct-heading {
+ width: 50%;
+}
+
+.list-struct-50-50 dd,
+.list-struct-50-50 .list-struct-desc {
+ width: 50%;
+}
+
+.list-struct-50-50 dd + dd,
+.list-struct-50-50 .list-struct-desc + .list-struct-desc {
+ margin-left: 50%;
+}
+
+/* Start Highlighting css. */
+.hljs {
+ -webkit-text-size-adjust: none;
+}
+
+.hljs-comment,
+.language-diff .hljs-header,
+.hljs-javadoc,
+.hljs-preprocessor,
+.hljs-pragma,
+.hljs-pi,
+.hljs-doctype,
+.hljs-shebang,
+.hljs-cdata {
+ color: #555;
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs .assignment,
+.hljs-literal,
+.language-css .rule .hljs-keyword,
+.hljs-winutils,
+.language-javascript .hljs-title,
+.language-lisp .hljs-title,
+.hljs-subst {
+ color: #305F8D;
+}
+
+.hljs-number,
+.hljs-hexcolor {
+ color: #00007f;
+}
+
+.hljs-string,
+.hljs-tag .hljs-value,
+.hljs-phpdoc,
+.hljs-dartdoc,
+.language-tex .hljs-formula {
+ color: #5C3566;
+}
+
+.language-javascript .hljs-title,
+.language-lisp .hljs-title,
+.hljs-subst {
+ font-weight: normal;
+}
+
+.hljs-tag,
+.hljs-tag .hljs-title,
+.hljs-rules .hljs-property,
+.language-django .hljs-tag .hljs-keyword {
+ color: #000080;
+ font-weight: normal;
+}
+
+.language-java .hljs-annotation {
+ color: #007f00;
+}
+
+.hljs-attribute,
+.hljs-variable,
+.hjls .instancevar,
+.language-lisp .hljs-body,
+.language-xml .hljs-attribute {
+ color: #b03060;
+}
+
+.hljs-regexp {
+ color: #b68;
+}
+
+.hljs-symbol,
+.language-ruby .hljs-symbol .hljs-string,
+.language-ruby .hljs-symbol .hljs-keyword,
+.language-ruby .hljs-symbol .keymethods,
+.language-lisp .hljs-keyword,
+.language-tex .hljs-special,
+.hjls .input_number {
+ color: #305F8D;
+}
+
+.hljs-deletion {
+ background: #fdd;
+}
+
+.hljs-addition {
+ background: #dfd;
+}
+
+.language-diff .hljs-change {
+ background: #ffff77;
+}
+
+.hljs-chunk {
+ color: #666;
+}
+
+.language-tex .hljs-formula {
+ opacity: 0.5;
+}
+/* End Highlighting css */
diff --git a/sec/Common_Content/css/pdf.css b/sec/Common_Content/css/pdf.css
new file mode 100644
index 000000000..a00b528bd
--- /dev/null
+++ b/sec/Common_Content/css/pdf.css
@@ -0,0 +1,956 @@
+/* New Red Hat Font */
+@import url(rhfont.css);
+
+/* Books Icon Font */
+@font-face {
+ font-family: "iconfont";
+ src: url("../fonts/portal/nimbus/iconfont.eot");
+ src: url("../fonts/portal/nimbus/iconfont.eot?#iefix") format("embedded-opentype"),url("../fonts/portal/nimbus/iconfont.woff") format("woff"),url("../fonts/portal/nimbus/iconfont.ttf") format("truetype"),url("../fonts/portal/nimbus/iconfont.svg#iconfont") format("svg");
+ font-weight: normal;
+ font-style: normal
+}
+
+* {
+ widows: 3;
+ orphans: 3;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+
+body {
+ background-color: white;
+ margin: 0 auto;
+ font-family: "Red Hat Text", "Overpass", "Helvetica Neue", sans-serif;
+ font-size: 14px;
+ max-width: 54em;
+ color: #252525;
+ line-height: 1.8em;
+ padding-bottom: 3em;
+ padding-top: 2em;
+}
+
+body, h1, h2, h3, h4, h5, h6, li, div {
+ margin-bottom: 1.25em;
+}
+
+body > div.book,
+body > div.article,
+body > div.set,
+body > div.preface,
+body > div.chapter,
+body > div.section,
+body > div.appendix,
+body > div.part {
+ margin-top: 0;
+ padding: 0 1em;
+}
+
+h1, h2, h3, h4, h5, h6, header .home, .title {
+ font-weight: 600;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family: "Red Hat Display", "Overpass", "Helvetica Neue", sans-serif;
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+h1 {
+ font-size: 42px;
+ line-height: 1.2em;
+ text-transform: uppercase;
+}
+h2 {
+ font-size: 24px;
+ line-height: 1.55em;
+ text-transform: uppercase;
+}
+h3 {
+ font-size: 1.5em;
+ line-height: 1.5em;
+}
+h4 {
+ font-size: 1.25em;
+ line-height: 1.44em;
+}
+h5 {
+ font-size: 1em;
+ line-height: 1.8em;
+}
+h6 {
+ font-size: 0.8em;
+ line-height: 1.69em;
+}
+
+.titlepage, .title {
+ margin-top: 1.85em;
+ margin-bottom: 1em;
+}
+.titlepage > div, .titlepage > div > div {
+ margin-bottom: 0;
+}
+
+.formalpara > .title,
+.para > .title {
+ font-weight: bold;
+ font-size: 1.1em;
+ line-height: 1.44em;
+}
+.formalpara > .title,
+.para > .title,
+.table > .title,
+.figure > .title {
+ margin-top: 1.125em;
+ margin-bottom: 0.7em;
+}
+
+div.para, p {
+ margin: 0 0 1.25em;
+}
+
+div.itemizedlist, div.affiliation {
+ margin-top: 0;
+}
+
+.draft {
+ background: url("../images/watermark-draft.png") repeat-y center;
+}
+
+.visible {
+ display: block !important;
+}
+.hidden {
+ display: none !important;
+}
+
+/* Admonitions */
+div.warning, div.note, div.important, div.tip, div.caution {
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+
+div.admonition_header {
+ font-size: 12px;
+ margin-bottom: 12px;
+ font-weight: bold;
+ margin-top: 0;
+ text-transform: uppercase;
+}
+
+div.admonition p, div.admonition .para {
+ margin-top: 0;
+}
+
+div.admonition > div:last-child > *:last-child,
+.admonition p:last-child, .admonition .para:last-child{
+ margin-bottom: 0;
+}
+
+div.note, div.important {
+ background-size: 40px auto;
+ padding-left: 4.5rem;
+}
+
+div.note {
+ background-image: url("../images/service_pattern_tile_positive.svg") !important;
+ background-repeat: repeat-y !important;
+}
+
+div.important {
+ background-image: url("../images/service_pattern_tile_negative.svg") !important;
+ background-repeat: repeat-y !important;
+}
+
+div.warning {
+ background: #fcf8e3;
+ color: #8a6d3b;
+ padding: 1.575rem 1.575rem 1.575rem 4.625rem;
+}
+div.warning:before {
+ display: inline-block;
+ font-family: "iconfont";
+ content: "\f177";
+ color: #8a6d3b;
+ position: relative;
+ float: left;
+ margin-left: -73px;
+ margin-top: -10px;
+ font-size: 70px;
+ line-height: 1em;
+}
+
+/* Code examples */
+.command, .filename, .keycap, .classname, .literal, code {
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
+ font-weight: bold;
+}
+
+.application, .guimenu, .guilabel, .guibutton, .guisubmenu, .guimenuitem, .abstract-title {
+ font-weight: bold;
+}
+
+.computeroutput, .option {
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
+ font-weight: bold;
+}
+
+pre {
+ padding: 0.5em 0 0.5em 1em;
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
+ font-size: medium;
+ border-left: 0.5em solid #666666;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+pre.numbered {
+ counter-reset: linecounter;
+}
+pre.numbered span.line{
+ counter-increment: linecounter;
+}
+pre.numbered span.line:before{
+ content: counter(linecounter);
+ width: 1.5em;
+ display: inline-block;
+ border-right: 1px solid #a1a1a1;
+ text-align: right;
+ margin-right: 1em;
+ color: #a1a1a1;
+ padding-right: 0.3em;
+}
+
+.example {
+ padding: 0.5em 0 0.5em 1em;
+ border-left: 0.5em solid #646464;
+}
+
+.example p:first-child {
+ margin-top: 0;
+}
+
+.programlisting {
+ position: relative !important;
+ width: 100%;
+}
+
+.screen * {
+ font-weight: normal;
+}
+
+.programlisting,
+.screen,
+.synopsis {
+ border-left: 0.5em solid #646464;
+}
+
+/* Tables */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ border-color: #ddd;
+ border: 1px solid #ddd;
+ border-top-color: #4c4c4c;
+ font-size: 0.9em;
+ margin: 0 0 1.8em;
+ text-align: left;
+ width: 100%;
+ word-wrap: break-word;
+ table-layout: fixed;
+}
+
+table caption, table th, table td {
+ border: none;
+ padding: 1em 0.9em;
+ vertical-align: top;
+}
+table.lt-4-cols.lt-7-rows td, table td {
+ border: 1px solid #ececec;
+}
+table caption {
+ font-size: 0.8em;
+ font-weight: 600;
+ text-transform: uppercase;
+}
+table thead tr th {
+ font-weight: 700;
+ background: #4c4c4c;
+ color: #fff;
+ border-bottom: 0;
+ border-top: 0;
+}
+
+table thead tr th:first-child {
+ border-left: 1px solid #4c4c4c;
+}
+table thead tr th:last-child {
+ border-right: 1px solid #4c4c4c;
+}
+
+table thead tr.no-wrap th {
+ line-height: 2.7em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+table tbody tr.no-wrap td, table tbody tr.no-wrap th {
+ line-height: 2.7em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+table td>*:last-child {
+ margin-bottom: 0;
+}
+table.fixed {
+ box-sizing: border-box;
+ table-layout: fixed;
+}
+table.fixed * {
+ box-sizing: border-box;
+}
+
+table.table-striped tbody tr:nth-child(odd) {
+ background: #f7f7f7;
+}
+
+/* Q&A */
+.qandaset li {
+ margin-top: 0.3em;
+}
+
+.qandaset td {
+ border: none;
+}
+
+.qandaset a {
+ border: medium none;
+ font-weight: normal !important;
+}
+
+.answer {
+ margin-bottom:1em;
+ border-bottom:1px dotted #ccc;
+}
+
+.qandaset {
+ border-bottom:1px dotted #ccc;
+}
+
+.qandaset ul {
+ list-style: none;
+ margin-bottom: 1em;
+}
+
+.question {
+ font-weight:bold;
+}
+
+.answer .data, .question .data {
+ padding-left: 2.6em;
+}
+
+.answer .label, .question .label {
+ float:left;
+ font-weight:bold;
+ margin-top: 0;
+}
+
+/* Revision History */
+.revhistory > table,
+.revhistory > table td {
+ border: none;
+}
+
+.revhistory {
+ display:block;
+}
+
+.revhistory table {
+ background-color: transparent;
+ border-color: #fff;
+ padding: 0;
+ margin: 0;
+ border-collapse: collapse;
+ border-style: none;
+}
+
+.revhistory td {
+ text-align :left;
+ padding:0;
+ border: none;
+ border-top: 1px solid #fff;
+ font-weight: bold;
+}
+
+.revhistory .simplelist td {
+ font-weight: normal;
+}
+
+.revhistory .simplelist {
+ margin-bottom: 1.5em;
+ margin-left: 1em;
+}
+
+.revhistory table th {
+ display: none;
+}
+
+/* Images */
+/* BZ#1222067 */
+.inlinemediaobject {
+ display: inline;
+}
+
+img {
+ max-width: 100%;
+}
+
+.figure {
+ margin-top: 1em;
+}
+
+/* Links */
+a {
+ outline: medium none;
+}
+
+a:link {
+ color: #3366CC;
+ text-decoration: none;
+}
+a:visited {
+ color: #003366;
+ text-decoration: none;
+}
+
+/*Lists*/
+ul ul, ul ol, ol ul, ol ol {
+ padding-left: 1.3rem;
+}
+
+ol.1 {
+ list-style-type: decimal;
+}
+
+ol.a {
+ list-style-type: lower-alpha;
+}
+
+ol.i {
+ list-style-type: lower-roman;
+}
+ol.A {
+ list-style-type: upper-alpha;
+}
+
+ol.I {
+ list-style-type: upper-roman;
+}
+
+dl {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+dt {
+ font-weight:bold;
+ margin-top: 0.5em;
+}
+
+dd {
+ margin-top: 0.5em;
+}
+
+li {
+ padding-top: 0;
+ margin-top: 1em;
+ padding-bottom: 0;
+}
+
+li > p:first-child,
+dd > p:first-child {
+ margin-top: 0;
+ margin-bottom: 0.1em;
+}
+
+dd div.para {
+ margin-top: 0;
+}
+
+dl dd {
+ margin-left: 16px;
+}
+
+dd dl {
+ margin-top: 0;
+}
+
+/* Footnotes */
+sup {
+ margin: 0;
+ padding: 0;
+}
+
+.footnote {
+ font-size: small;
+ margin: 0;
+ line-height: 1.3em;
+}
+
+.footnote p {
+ margin: 0;
+}
+
+.footnote sup {
+ color: #252525;
+}
+.footnote .para sup {
+ vertical-align: middle;
+}
+
+.footnote {
+ font-size: 0.9em;
+}
+.footnote sup {
+ font-size: 1em;
+}
+
+/* Credits */
+.authorgroup > div {
+ margin-top: 1.5em;
+}
+
+.authorgroup,
+div.producttitle,
+.book > .titlepage h1.title,
+.article > .titlepage h1.title,
+.article > .titlepage h2.title,
+.set .titlepage > div > div > h1.title,
+.part > .titlepage h1.title,
+div.subtitle,
+h2.subtitle,
+h3.subtitle,
+.titlepage .author,
+.mediaobject.logo {
+ text-align: center;
+}
+
+.titlepage div.author {
+ text-align: center;
+ margin-top: 1.5em;
+}
+
+.authorgroup h3 {
+ clear:both;
+ margin-bottom: 0;
+}
+
+div.author div.author,
+div.translator div.translator,
+div.othercredit div.othercredit,
+div.editor div.editor,
+div.contrib div.contrib {
+ margin: 0;
+ padding: 0;
+ font-weight: bold;
+}
+
+div.editedby {
+ margin-top: 15px;
+ margin-bottom: -0.8em;
+}
+
+div.authorgroup .author,
+div.authorgroup.editor,
+div.authorgroup.translator,
+div.authorgroup.othercredit,
+div.authorgroup.contrib {
+ display: block;
+}
+
+.authorgroup {
+ margin-bottom: 1.8em;
+}
+
+.revhistory .author {
+ display: inline;
+}
+
+.othercredit h3 {
+ padding-top: 1em;
+}
+
+.othercredit {
+ margin:0;
+ padding:0;
+}
+
+.releaseinfo {
+ clear: both;
+}
+
+.copyright {
+ margin-top: 1em;
+}
+
+
+/* revisionflag */
+.added {
+ background-color: #99ff99;
+}
+
+.changed {
+ background-color: #ffff77;
+}
+
+.deleted {
+ background-color: #ff4455;
+ text-decoration: line-through;
+}
+
+/* Callouts */
+div.calloutlist {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+dl.calloutlist dt {
+ margin: 0 0 0 -5px;
+}
+dl.calloutlist dd {
+ margin-top: 0;
+ margin-left: 25px;
+}
+
+a.co span {
+ color: inherit;
+}
+
+a.co,
+dl.calloutlist dt a,
+span.inlinecallout,
+dl.calloutlist dt > span.callout {
+ float: left;
+}
+span.callout,
+span.inlinecallout {
+ display: inline-block;
+}
+a.co,
+dl.calloutlist dt a,
+span.inlinecallout,
+span.callout,
+span.inlinecallout {
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
+ border: 1px solid #c00;
+ background-color: #c00;
+ color: white;
+ font-weight: bold;
+ text-align: center;
+ line-height: 1.5em;
+ height: 1.5em;
+ width: 1.5em;
+ border-radius: 50%;
+ -moz-border-radius: 1.5em;
+ -webkit-border-radius: 50%;
+}
+.hljs span.callout span,
+.hljs span.inlinecallout span {
+ color:white
+}
+
+/* List Struct by mcaron */
+.list-struct {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.list-struct,
+.list-struct *,
+.list-struct *:before,
+.list-struct *:after {
+ box-sizing: border-box;
+}
+
+.list-struct dt,
+.list-struct .list-struct-heading {
+ clear: left;
+ float: left;
+ display: inline-block; /* for IE10 */
+ margin: 0 0 8px;
+ padding-right: 15px;
+ font-size: 1em;
+ line-height: inherit;
+ font-weight: 600;
+ text-transform: none;
+ width: 33.33333%;
+}
+
+.list-struct dd,
+.list-struct .list-struct-desc {
+ display: inline-block;
+ margin: 0 0 8px;
+ width: 66.66667%;
+}
+
+/* no flexbox */
+dd:after,
+.list-struct-desc:after {
+ content: " ";
+ display: table;
+}
+
+dd:after,
+.list-struct-desc:after {
+ clear: both;
+}
+/* /no flexbox */
+
+.list-struct dd + dd,
+.list-struct .list-struct-desc + .list-struct-desc {
+ margin-left: 33.33333%;
+}
+
+/* make them bordered */
+.list-struct dt,
+.list-struct dd,
+.list-struct .list-struct-heading,
+.list-struct .list-struct-desc {
+ border-top: 1px solid #ececec;
+ padding-top: 8px;
+}
+
+.list-struct dt:first-of-type,
+.list-struct dd:first-of-type,
+.list-struct dd + dd,
+.list-struct li:first-child > .list-struct-heading,
+.list-struct li:first-child > .list-struct-desc:first-of-type,
+.list-struct .list-struct-desc + .list-struct-desc {
+ padding-top: 0;
+ border-top: 0;
+}
+
+
+/* 25 / 75 */
+.list-struct-25-75 dt,
+.list-struct-25-75 .list-struct-heading {
+ width: 25%;
+}
+
+.list-struct-25-75 dd,
+.list-struct-25-75 .list-struct-desc {
+ width: 75%;
+}
+
+.list-struct-25-75 dd + dd,
+.list-struct-25-75 .list-struct-desc + .list-struct-desc {
+ margin-left: 25%;
+}
+
+/* 50 / 50 */
+.list-struct-50-50 dt,
+.list-struct-50-50 .list-struct-heading {
+ width: 50%;
+}
+
+.list-struct-50-50 dd,
+.list-struct-50-50 .list-struct-desc {
+ width: 50%;
+}
+
+.list-struct-50-50 dd + dd,
+.list-struct-50-50 .list-struct-desc + .list-struct-desc {
+ margin-left: 50%;
+}
+
+/* Override the dd margin-top rule */
+.list-struct dd {
+ margin-top: 0;
+}
+
+/* Other */
+span.remark {
+ background-color: #ff00ff;
+}
+
+iframe {
+ border: none;
+}
+
+.formalpara-title {
+ color: #454545;
+ display: block;
+ font-size: larger;
+ font-weight: bold;
+ margin-bottom: 1em;
+ margin-top: 1.5em;
+}
+
+/* Kate syntax highlighting */
+.perl_Alert {
+ color: #0000FF;
+}
+.perl_BaseN {
+ color: #007F00;
+}
+.perl_BString {
+ color: #5C3566;
+}
+.perl_Char {
+ color: #FF00FF;
+}
+.perl_Comment {
+ color: #888888;
+}
+.perl_DataType {
+ color: #0000FF;
+}
+.perl_DecVal {
+ color: #00007F;
+}
+.perl_Error {
+ color: #FF0000;
+}
+.perl_Float {
+ color: #00007F;
+}
+.perl_Function {
+ color: #007F00;
+}
+.perl_IString {
+ color: #5C3566;
+}
+.perl_Keyword {
+ color: brown;
+ font-weight: bold;
+}
+.perl_Operator {
+ color: #FFA500;
+}
+.perl_Others {
+ color: green;
+}
+.perl_RegionMarker {
+ color: #96B9FF;
+}
+.perl_Reserved {
+ color: #9B30FF;
+}
+.perl_String {
+ color: #ff00ff;
+}
+.perl_Variable {
+ color: #0000FF;
+}
+.perl_Warning {
+ color: #0000FF;
+}
+
+/* Start Highlighting css. */
+.hljs * {
+ z-index: 1;
+}
+
+.hljs {
+ -webkit-text-size-adjust: none;
+}
+
+.hljs-comment,
+.language-diff .hljs-header,
+.hljs-javadoc,
+.hljs-preprocessor,
+.hljs-pragma,
+.hljs-pi,
+.hljs-doctype,
+.hljs-shebang,
+.hljs-cdata {
+ color: #555;
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs .assignment,
+.hljs-literal,
+.language-css .rule .hljs-keyword,
+.hljs-winutils,
+.language-javascript .hljs-title,
+.language-lisp .hljs-title,
+.hljs-subst {
+ color: #305F8D;
+}
+
+.hljs-number,
+.hljs-hexcolor {
+ color: #00007f;
+}
+
+.hljs-string,
+.hljs-tag .hljs-value,
+.hljs-phpdoc,
+.hljs-dartdoc,
+.language-tex .hljs-formula {
+ color: #5C3566;
+}
+
+.language-javascript .hljs-title,
+.language-lisp .hljs-title,
+.hljs-subst {
+ font-weight: normal;
+}
+
+.hljs-tag,
+.hljs-tag .hljs-title,
+.hljs-rules .hljs-property,
+.language-django .hljs-tag .hljs-keyword {
+ color: #000080;
+ font-weight: normal;
+}
+
+.language-java .hljs-annotation {
+ color: #007f00;
+}
+
+.hljs-attribute,
+.hljs-variable,
+.hjls .instancevar,
+.language-lisp .hljs-body,
+.language-xml .hljs-attribute {
+ color: #b03060;
+}
+
+.hljs-regexp {
+ color: #b68;
+}
+
+.hljs-symbol,
+.language-ruby .hljs-symbol .hljs-string,
+.language-ruby .hljs-symbol .hljs-keyword,
+.language-ruby .hljs-symbol .keymethods,
+.language-lisp .hljs-keyword,
+.language-tex .hljs-special,
+.hjls .input_number {
+ color: #305F8D;
+}
+
+.hljs-deletion {
+ background: #fdd;
+}
+
+.hljs-addition {
+ background: #dfd;
+}
+
+.language-diff .hljs-change {
+ background: #ffff77;
+}
+
+.hljs-chunk {
+ color: #666;
+}
+
+.language-tex .hljs-formula {
+ opacity: 0.5;
+}
+/* End Highlighting css */
diff --git a/sec/Common_Content/css/print.css b/sec/Common_Content/css/print.css
new file mode 100644
index 000000000..773d8ae1b
--- /dev/null
+++ b/sec/Common_Content/css/print.css
@@ -0,0 +1,16 @@
+@import url("common.css");
+@import url("overrides.css");
+@import url("lang.css");
+
+#tocframe {
+ display: none;
+}
+
+body.toc_embeded {
+ margin-left: 30px;
+}
+
+.producttitle {
+ color: #336699;
+}
+
diff --git a/sec/Common_Content/css/rhfont.css b/sec/Common_Content/css/rhfont.css
new file mode 100644
index 000000000..929be176f
--- /dev/null
+++ b/sec/Common_Content/css/rhfont.css
@@ -0,0 +1,175 @@
+@font-face {
+ font-family: 'Red Hat Text';
+ src: url('../fonts/redhat/text/RedHatText-Regular.eot');
+ src: url('../fonts/redhat/text/RedHatText-Regular.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/text/RedHatText-Regular.woff2') format('woff2'),
+ url('../fonts/redhat/text/RedHatText-Regular.woff') format('woff');
+ font-weight: 300;
+ font-style: normal;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Text';
+ src: url('../fonts/redhat/text/RedHatText-RegularItalic.eot');
+ src: url('../fonts/redhat/text/RedHatText-RegularItalic.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/text/RedHatText-RegularItalic.woff2') format('woff2'),
+ url('../fonts/redhat/text/RedHatText-RegularItalic.woff') format('woff');
+ font-weight: 300;
+ font-style: italic;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Text';
+ src: url('../fonts/redhat/text/RedHatText-Regular.eot');
+ src: url('../fonts/redhat/text/RedHatText-Regular.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/text/RedHatText-Regular.woff2') format('woff2'),
+ url('../fonts/redhat/text/RedHatText-Regular.woff') format('woff');
+ font-weight: 400;
+ font-style: normal;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Text';
+ src: url('../fonts/redhat/text/RedHatText-RegularItalic.eot');
+ src: url('../fonts/redhat/text/RedHatText-RegularItalic.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/text/RedHatText-RegularItalic.woff2') format('woff2'),
+ url('../fonts/redhat/text/RedHatText-RegularItalic.woff') format('woff');
+ font-weight: 400;
+ font-style: italic;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Text';
+ src: url('../fonts/redhat/text/RedHatText-Medium.eot');
+ src: url('../fonts/redhat/text/RedHatText-Medium.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/text/RedHatText-Medium.woff2') format('woff2'),
+ url('../fonts/redhat/text/RedHatText-Medium.woff') format('woff');
+ font-weight: 500;
+ font-style: normal;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Text';
+ src: url('../fonts/redhat/text/RedHatText-MediumItalic.eot');
+ src: url('../fonts/redhat/text/RedHatText-MediumItalic.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/text/RedHatText-MediumItalic.woff2') format('woff2'),
+ url('../fonts/redhat/text/RedHatText-MediumItalic.woff') format('woff');
+ font-weight: 500;
+ font-style: italic;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Text';
+ src: url('../fonts/redhat/text/RedHatText-Medium.eot');
+ src: url('../fonts/redhat/text/RedHatText-Medium.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/text/RedHatText-Medium.woff2') format('woff2'),
+ url('../fonts/redhat/text/RedHatText-Medium.woff') format('woff');
+ font-weight: 700;
+ font-style: normal;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Text';
+ src: url('../fonts/redhat/text/RedHatText-MediumItalic.eot');
+ src: url('../fonts/redhat/text/RedHatText-MediumItalic.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/text/RedHatText-MediumItalic.woff2') format('woff2'),
+ url('../fonts/redhat/text/RedHatText-MediumItalic.woff') format('woff');
+ font-weight: 700;
+ font-style: italic;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Display';
+ src: url('../fonts/redhat/display/RedHatDisplay-Regular.eot');
+ src: url('../fonts/redhat/display/RedHatDisplay-Regular.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/display/RedHatDisplay-Regular.woff2') format('woff2'),
+ url('../fonts/redhat/display/RedHatDisplay-Regular.woff') format('woff');
+ font-weight: 300;
+ font-style: normal;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Display';
+ src: url('../fonts/redhat/display/RedHatDisplay-RegularItalic.eot');
+ src: url('../fonts/redhat/display/RedHatDisplay-RegularItalic.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/display/RedHatDisplay-RegularItalic.woff2') format('woff2'),
+ url('../fonts/redhat/display/RedHatDisplay-RegularItalic.woff') format('woff');
+ font-weight: 300;
+ font-style: italic;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Display';
+ src: url('../fonts/redhat/display/RedHatDisplay-Regular.eot');
+ src: url('../fonts/redhat/display/RedHatDisplay-Regular.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/display/RedHatDisplay-Regular.woff2') format('woff2'),
+ url('../fonts/redhat/display/RedHatDisplay-Regular.woff') format('woff');
+ font-weight: 400;
+ font-style: normal;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Display';
+ src: url('../fonts/redhat/display/RedHatDisplay-RegularItalic.eot');
+ src: url('../fonts/redhat/display/RedHatDisplay-RegularItalic.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/display/RedHatDisplay-RegularItalic.woff2') format('woff2'),
+ url('../fonts/redhat/display/RedHatDisplay-RegularItalic.woff') format('woff');
+ font-weight: 400;
+ font-style: italic;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Display';
+ src: url('../fonts/redhat/display/RedHatDisplay-Medium.eot');
+ src: url('../fonts/redhat/display/RedHatDisplay-Medium.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/display/RedHatDisplay-Medium.woff2') format('woff2'),
+ url('../fonts/redhat/display/RedHatDisplay-Medium.woff') format('woff');
+ font-weight: 700;
+ font-style: normal;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Display';
+ src: url('../fonts/redhat/display/RedHatDisplay-MediumItalic.eot');
+ src: url('../fonts/redhat/display/RedHatDisplay-MediumItalic.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/display/RedHatDisplay-MediumItalic.woff2') format('woff2'),
+ url('../fonts/redhat/display/RedHatDisplay-MediumItalic.woff') format('woff');
+ font-weight: 700;
+ font-style: italic;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Display';
+ src: url('../fonts/redhat/display/RedHatDisplay-Bold.eot');
+ src: url('../fonts/redhat/display/RedHatDisplay-Bold.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/display/RedHatDisplay-Bold.woff2') format('woff2'),
+ url('../fonts/redhat/display/RedHatDisplay-Bold.woff') format('woff');
+ font-weight: 900;
+ font-style: normal;
+ text-rendering: optimizeLegibility;
+}
+
+@font-face {
+ font-family: 'Red Hat Display';
+ src: url('../fonts/redhat/display/RedHatDisplay-BoldItalic.eot');
+ src: url('../fonts/redhat/display/RedHatDisplay-BoldItalic.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/redhat/display/RedHatDisplay-BoldItalic.woff2') format('woff2'),
+ url('../fonts/redhat/display/RedHatDisplay-BoldItalic.woff') format('woff');
+ font-weight: 900;
+ font-style: italic;
+ text-rendering: optimizeLegibility;
+}
diff --git a/sec/Common_Content/fonts/overpass_bold-web.eot b/sec/Common_Content/fonts/overpass_bold-web.eot
new file mode 100644
index 000000000..723b1d9ec
Binary files /dev/null and b/sec/Common_Content/fonts/overpass_bold-web.eot differ
diff --git a/sec/Common_Content/fonts/overpass_bold-web.svg b/sec/Common_Content/fonts/overpass_bold-web.svg
new file mode 100644
index 000000000..4eded0241
--- /dev/null
+++ b/sec/Common_Content/fonts/overpass_bold-web.svg
@@ -0,0 +1,454 @@
+
+
+
\ No newline at end of file
diff --git a/sec/Common_Content/fonts/overpass_bold-web.ttf b/sec/Common_Content/fonts/overpass_bold-web.ttf
new file mode 100644
index 000000000..82a1d3041
Binary files /dev/null and b/sec/Common_Content/fonts/overpass_bold-web.ttf differ
diff --git a/sec/Common_Content/fonts/overpass_bold-web.woff b/sec/Common_Content/fonts/overpass_bold-web.woff
new file mode 100644
index 000000000..e1fc2da3c
Binary files /dev/null and b/sec/Common_Content/fonts/overpass_bold-web.woff differ
diff --git a/sec/Common_Content/fonts/overpass_light-web.eot b/sec/Common_Content/fonts/overpass_light-web.eot
new file mode 100644
index 000000000..a05fd8b3e
Binary files /dev/null and b/sec/Common_Content/fonts/overpass_light-web.eot differ
diff --git a/sec/Common_Content/fonts/overpass_light-web.svg b/sec/Common_Content/fonts/overpass_light-web.svg
new file mode 100644
index 000000000..5c7283193
--- /dev/null
+++ b/sec/Common_Content/fonts/overpass_light-web.svg
@@ -0,0 +1,4193 @@
+
+
+
\ No newline at end of file
diff --git a/sec/Common_Content/fonts/overpass_light-web.ttf b/sec/Common_Content/fonts/overpass_light-web.ttf
new file mode 100644
index 000000000..948294466
Binary files /dev/null and b/sec/Common_Content/fonts/overpass_light-web.ttf differ
diff --git a/sec/Common_Content/fonts/overpass_light-web.woff b/sec/Common_Content/fonts/overpass_light-web.woff
new file mode 100644
index 000000000..64f349245
Binary files /dev/null and b/sec/Common_Content/fonts/overpass_light-web.woff differ
diff --git a/sec/Common_Content/fonts/overpass_regular-web.eot b/sec/Common_Content/fonts/overpass_regular-web.eot
new file mode 100644
index 000000000..c2786fdfa
Binary files /dev/null and b/sec/Common_Content/fonts/overpass_regular-web.eot differ
diff --git a/sec/Common_Content/fonts/overpass_regular-web.svg b/sec/Common_Content/fonts/overpass_regular-web.svg
new file mode 100644
index 000000000..5562b1ca0
--- /dev/null
+++ b/sec/Common_Content/fonts/overpass_regular-web.svg
@@ -0,0 +1,454 @@
+
+
+
\ No newline at end of file
diff --git a/sec/Common_Content/fonts/overpass_regular-web.ttf b/sec/Common_Content/fonts/overpass_regular-web.ttf
new file mode 100644
index 000000000..f89a89e0f
Binary files /dev/null and b/sec/Common_Content/fonts/overpass_regular-web.ttf differ
diff --git a/sec/Common_Content/fonts/overpass_regular-web.woff b/sec/Common_Content/fonts/overpass_regular-web.woff
new file mode 100644
index 000000000..8b9a0e192
Binary files /dev/null and b/sec/Common_Content/fonts/overpass_regular-web.woff differ
diff --git a/sec/Common_Content/fonts/portal/nimbus/iconfont.eot b/sec/Common_Content/fonts/portal/nimbus/iconfont.eot
new file mode 100644
index 000000000..0fdea9dbf
Binary files /dev/null and b/sec/Common_Content/fonts/portal/nimbus/iconfont.eot differ
diff --git a/sec/Common_Content/fonts/portal/nimbus/iconfont.svg b/sec/Common_Content/fonts/portal/nimbus/iconfont.svg
new file mode 100644
index 000000000..835f4786e
--- /dev/null
+++ b/sec/Common_Content/fonts/portal/nimbus/iconfont.svg
@@ -0,0 +1,4740 @@
+
+
+
+
diff --git a/sec/Common_Content/fonts/portal/nimbus/iconfont.ttf b/sec/Common_Content/fonts/portal/nimbus/iconfont.ttf
new file mode 100644
index 000000000..ea56183a5
Binary files /dev/null and b/sec/Common_Content/fonts/portal/nimbus/iconfont.ttf differ
diff --git a/sec/Common_Content/fonts/portal/nimbus/iconfont.woff b/sec/Common_Content/fonts/portal/nimbus/iconfont.woff
new file mode 100644
index 000000000..fbdb10e1c
Binary files /dev/null and b/sec/Common_Content/fonts/portal/nimbus/iconfont.woff differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Black.eot b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Black.eot
new file mode 100644
index 000000000..d37aff5f3
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Black.eot differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Black.woff b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Black.woff
new file mode 100644
index 000000000..2a03eade6
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Black.woff differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Black.woff2 b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Black.woff2
new file mode 100644
index 000000000..86cd50b0c
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Black.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BlackItalic.eot b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BlackItalic.eot
new file mode 100644
index 000000000..81265cb1f
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BlackItalic.eot differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BlackItalic.woff b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BlackItalic.woff
new file mode 100644
index 000000000..0f74c656e
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BlackItalic.woff differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BlackItalic.woff2 b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BlackItalic.woff2
new file mode 100644
index 000000000..241807942
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BlackItalic.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Bold.eot b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Bold.eot
new file mode 100644
index 000000000..74a7ef2df
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Bold.eot differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Bold.woff b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Bold.woff
new file mode 100644
index 000000000..8f3cf469c
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Bold.woff differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Bold.woff2 b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Bold.woff2
new file mode 100644
index 000000000..20dde6352
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Bold.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BoldItalic.eot b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BoldItalic.eot
new file mode 100644
index 000000000..ecb39826a
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BoldItalic.eot differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BoldItalic.woff b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BoldItalic.woff
new file mode 100644
index 000000000..e15c78ec3
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BoldItalic.woff differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BoldItalic.woff2 b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BoldItalic.woff2
new file mode 100644
index 000000000..e56651ed5
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-BoldItalic.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Medium.eot b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Medium.eot
new file mode 100644
index 000000000..b44eecace
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Medium.eot differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Medium.woff b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Medium.woff
new file mode 100644
index 000000000..0860ff69a
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Medium.woff differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Medium.woff2 b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Medium.woff2
new file mode 100644
index 000000000..c3d968720
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Medium.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-MediumItalic.eot b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-MediumItalic.eot
new file mode 100644
index 000000000..cb545f04c
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-MediumItalic.eot differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-MediumItalic.woff b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-MediumItalic.woff
new file mode 100644
index 000000000..3228d55e9
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-MediumItalic.woff differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-MediumItalic.woff2 b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-MediumItalic.woff2
new file mode 100644
index 000000000..431c4d061
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-MediumItalic.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Regular.eot b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Regular.eot
new file mode 100644
index 000000000..140699132
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Regular.eot differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Regular.woff b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Regular.woff
new file mode 100644
index 000000000..2e94e1721
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Regular.woff differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Regular.woff2 b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Regular.woff2
new file mode 100644
index 000000000..506a412fa
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-Regular.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-RegularItalic.eot b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-RegularItalic.eot
new file mode 100644
index 000000000..a5adb4fe1
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-RegularItalic.eot differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-RegularItalic.woff b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-RegularItalic.woff
new file mode 100644
index 000000000..2406ae89a
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-RegularItalic.woff differ
diff --git a/sec/Common_Content/fonts/redhat/display/RedHatDisplay-RegularItalic.woff2 b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-RegularItalic.woff2
new file mode 100644
index 000000000..fcd48e4dc
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/display/RedHatDisplay-RegularItalic.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-Bold.eot b/sec/Common_Content/fonts/redhat/text/RedHatText-Bold.eot
new file mode 100644
index 000000000..c04c575c6
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-Bold.eot differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-Bold.woff b/sec/Common_Content/fonts/redhat/text/RedHatText-Bold.woff
new file mode 100644
index 000000000..d93d35146
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-Bold.woff differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-Bold.woff2 b/sec/Common_Content/fonts/redhat/text/RedHatText-Bold.woff2
new file mode 100644
index 000000000..12ebb0b87
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-Bold.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-BoldItalic.eot b/sec/Common_Content/fonts/redhat/text/RedHatText-BoldItalic.eot
new file mode 100644
index 000000000..b72e25074
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-BoldItalic.eot differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-BoldItalic.woff b/sec/Common_Content/fonts/redhat/text/RedHatText-BoldItalic.woff
new file mode 100644
index 000000000..9023e4f2d
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-BoldItalic.woff differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-BoldItalic.woff2 b/sec/Common_Content/fonts/redhat/text/RedHatText-BoldItalic.woff2
new file mode 100644
index 000000000..d5e531559
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-BoldItalic.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-Medium.eot b/sec/Common_Content/fonts/redhat/text/RedHatText-Medium.eot
new file mode 100644
index 000000000..0c82b88bf
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-Medium.eot differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-Medium.woff b/sec/Common_Content/fonts/redhat/text/RedHatText-Medium.woff
new file mode 100644
index 000000000..a54b1c5a2
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-Medium.woff differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-Medium.woff2 b/sec/Common_Content/fonts/redhat/text/RedHatText-Medium.woff2
new file mode 100644
index 000000000..b8c4cd029
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-Medium.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-MediumItalic.eot b/sec/Common_Content/fonts/redhat/text/RedHatText-MediumItalic.eot
new file mode 100644
index 000000000..74ccef022
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-MediumItalic.eot differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-MediumItalic.woff b/sec/Common_Content/fonts/redhat/text/RedHatText-MediumItalic.woff
new file mode 100644
index 000000000..4756a3ae1
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-MediumItalic.woff differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-MediumItalic.woff2 b/sec/Common_Content/fonts/redhat/text/RedHatText-MediumItalic.woff2
new file mode 100644
index 000000000..80129ffb1
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-MediumItalic.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-Regular.eot b/sec/Common_Content/fonts/redhat/text/RedHatText-Regular.eot
new file mode 100644
index 000000000..e34f77c4c
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-Regular.eot differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-Regular.woff b/sec/Common_Content/fonts/redhat/text/RedHatText-Regular.woff
new file mode 100644
index 000000000..e6de8e34a
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-Regular.woff differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-Regular.woff2 b/sec/Common_Content/fonts/redhat/text/RedHatText-Regular.woff2
new file mode 100644
index 000000000..d78ed70d0
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-Regular.woff2 differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-RegularItalic.eot b/sec/Common_Content/fonts/redhat/text/RedHatText-RegularItalic.eot
new file mode 100644
index 000000000..e6ae7be4d
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-RegularItalic.eot differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-RegularItalic.woff b/sec/Common_Content/fonts/redhat/text/RedHatText-RegularItalic.woff
new file mode 100644
index 000000000..3b35c9b79
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-RegularItalic.woff differ
diff --git a/sec/Common_Content/fonts/redhat/text/RedHatText-RegularItalic.woff2 b/sec/Common_Content/fonts/redhat/text/RedHatText-RegularItalic.woff2
new file mode 100644
index 000000000..aed64182d
Binary files /dev/null and b/sec/Common_Content/fonts/redhat/text/RedHatText-RegularItalic.woff2 differ
diff --git a/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.eot b/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.eot
new file mode 100644
index 000000000..9f40a208d
Binary files /dev/null and b/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.eot differ
diff --git a/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.svg b/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.svg
new file mode 100644
index 000000000..17d66935e
--- /dev/null
+++ b/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.svg
@@ -0,0 +1,60 @@
+
+
+
diff --git a/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.ttf b/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.ttf
new file mode 100644
index 000000000..0e805d468
Binary files /dev/null and b/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.ttf differ
diff --git a/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.woff b/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.woff
new file mode 100644
index 000000000..93be03477
Binary files /dev/null and b/sec/Common_Content/icons/redhat-books-icons-a2efd68d1f13be356c9c4e5c29a64e69.woff differ
diff --git a/sec/Common_Content/images/1.png b/sec/Common_Content/images/1.png
new file mode 100644
index 000000000..270707b88
Binary files /dev/null and b/sec/Common_Content/images/1.png differ
diff --git a/sec/Common_Content/images/1.svg b/sec/Common_Content/images/1.svg
new file mode 100644
index 000000000..0a7036e8a
--- /dev/null
+++ b/sec/Common_Content/images/1.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/sec/Common_Content/images/10.png b/sec/Common_Content/images/10.png
new file mode 100644
index 000000000..ec548f3f3
Binary files /dev/null and b/sec/Common_Content/images/10.png differ
diff --git a/sec/Common_Content/images/10.svg b/sec/Common_Content/images/10.svg
new file mode 100644
index 000000000..d1c32c779
--- /dev/null
+++ b/sec/Common_Content/images/10.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/11.png b/sec/Common_Content/images/11.png
new file mode 100644
index 000000000..f59d84b46
Binary files /dev/null and b/sec/Common_Content/images/11.png differ
diff --git a/sec/Common_Content/images/11.svg b/sec/Common_Content/images/11.svg
new file mode 100644
index 000000000..872d14af4
--- /dev/null
+++ b/sec/Common_Content/images/11.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/12.png b/sec/Common_Content/images/12.png
new file mode 100644
index 000000000..c8a39069a
Binary files /dev/null and b/sec/Common_Content/images/12.png differ
diff --git a/sec/Common_Content/images/12.svg b/sec/Common_Content/images/12.svg
new file mode 100644
index 000000000..6bc95d23a
--- /dev/null
+++ b/sec/Common_Content/images/12.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/13.png b/sec/Common_Content/images/13.png
new file mode 100644
index 000000000..2db67434a
Binary files /dev/null and b/sec/Common_Content/images/13.png differ
diff --git a/sec/Common_Content/images/13.svg b/sec/Common_Content/images/13.svg
new file mode 100644
index 000000000..cf105bc15
--- /dev/null
+++ b/sec/Common_Content/images/13.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/14.png b/sec/Common_Content/images/14.png
new file mode 100644
index 000000000..1a12fb322
Binary files /dev/null and b/sec/Common_Content/images/14.png differ
diff --git a/sec/Common_Content/images/14.svg b/sec/Common_Content/images/14.svg
new file mode 100644
index 000000000..1009bce43
--- /dev/null
+++ b/sec/Common_Content/images/14.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/15.png b/sec/Common_Content/images/15.png
new file mode 100644
index 000000000..2532d138f
Binary files /dev/null and b/sec/Common_Content/images/15.png differ
diff --git a/sec/Common_Content/images/15.svg b/sec/Common_Content/images/15.svg
new file mode 100644
index 000000000..52daf8d85
--- /dev/null
+++ b/sec/Common_Content/images/15.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/16.png b/sec/Common_Content/images/16.png
new file mode 100644
index 000000000..3b3f17fc2
Binary files /dev/null and b/sec/Common_Content/images/16.png differ
diff --git a/sec/Common_Content/images/16.svg b/sec/Common_Content/images/16.svg
new file mode 100644
index 000000000..95dedc203
--- /dev/null
+++ b/sec/Common_Content/images/16.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/17.png b/sec/Common_Content/images/17.png
new file mode 100644
index 000000000..d0f12f79c
Binary files /dev/null and b/sec/Common_Content/images/17.png differ
diff --git a/sec/Common_Content/images/17.svg b/sec/Common_Content/images/17.svg
new file mode 100644
index 000000000..7b3e32739
--- /dev/null
+++ b/sec/Common_Content/images/17.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/18.png b/sec/Common_Content/images/18.png
new file mode 100644
index 000000000..ed2f1fe33
Binary files /dev/null and b/sec/Common_Content/images/18.png differ
diff --git a/sec/Common_Content/images/18.svg b/sec/Common_Content/images/18.svg
new file mode 100644
index 000000000..fc744d5bd
--- /dev/null
+++ b/sec/Common_Content/images/18.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/19.png b/sec/Common_Content/images/19.png
new file mode 100644
index 000000000..a145b4afa
Binary files /dev/null and b/sec/Common_Content/images/19.png differ
diff --git a/sec/Common_Content/images/19.svg b/sec/Common_Content/images/19.svg
new file mode 100644
index 000000000..69c6f5f5e
--- /dev/null
+++ b/sec/Common_Content/images/19.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/2.png b/sec/Common_Content/images/2.png
new file mode 100644
index 000000000..126f8fd39
Binary files /dev/null and b/sec/Common_Content/images/2.png differ
diff --git a/sec/Common_Content/images/2.svg b/sec/Common_Content/images/2.svg
new file mode 100644
index 000000000..15424b208
--- /dev/null
+++ b/sec/Common_Content/images/2.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/sec/Common_Content/images/20.png b/sec/Common_Content/images/20.png
new file mode 100644
index 000000000..b23618fb0
Binary files /dev/null and b/sec/Common_Content/images/20.png differ
diff --git a/sec/Common_Content/images/20.svg b/sec/Common_Content/images/20.svg
new file mode 100644
index 000000000..7abd11ea9
--- /dev/null
+++ b/sec/Common_Content/images/20.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/21.png b/sec/Common_Content/images/21.png
new file mode 100644
index 000000000..91b602bfa
Binary files /dev/null and b/sec/Common_Content/images/21.png differ
diff --git a/sec/Common_Content/images/21.svg b/sec/Common_Content/images/21.svg
new file mode 100644
index 000000000..8d33472b2
--- /dev/null
+++ b/sec/Common_Content/images/21.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/22.png b/sec/Common_Content/images/22.png
new file mode 100644
index 000000000..33e0374fb
Binary files /dev/null and b/sec/Common_Content/images/22.png differ
diff --git a/sec/Common_Content/images/22.svg b/sec/Common_Content/images/22.svg
new file mode 100644
index 000000000..02249654c
--- /dev/null
+++ b/sec/Common_Content/images/22.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/23.png b/sec/Common_Content/images/23.png
new file mode 100644
index 000000000..cc961c161
Binary files /dev/null and b/sec/Common_Content/images/23.png differ
diff --git a/sec/Common_Content/images/23.svg b/sec/Common_Content/images/23.svg
new file mode 100644
index 000000000..72609f4a1
--- /dev/null
+++ b/sec/Common_Content/images/23.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/24.png b/sec/Common_Content/images/24.png
new file mode 100644
index 000000000..17b153100
Binary files /dev/null and b/sec/Common_Content/images/24.png differ
diff --git a/sec/Common_Content/images/24.svg b/sec/Common_Content/images/24.svg
new file mode 100644
index 000000000..5b34c33f6
--- /dev/null
+++ b/sec/Common_Content/images/24.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/25.png b/sec/Common_Content/images/25.png
new file mode 100644
index 000000000..193686c6d
Binary files /dev/null and b/sec/Common_Content/images/25.png differ
diff --git a/sec/Common_Content/images/25.svg b/sec/Common_Content/images/25.svg
new file mode 100644
index 000000000..4f5737368
--- /dev/null
+++ b/sec/Common_Content/images/25.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/26.png b/sec/Common_Content/images/26.png
new file mode 100644
index 000000000..e8bf82a53
Binary files /dev/null and b/sec/Common_Content/images/26.png differ
diff --git a/sec/Common_Content/images/26.svg b/sec/Common_Content/images/26.svg
new file mode 100644
index 000000000..aff5a904a
--- /dev/null
+++ b/sec/Common_Content/images/26.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/27.png b/sec/Common_Content/images/27.png
new file mode 100644
index 000000000..06dfc67da
Binary files /dev/null and b/sec/Common_Content/images/27.png differ
diff --git a/sec/Common_Content/images/27.svg b/sec/Common_Content/images/27.svg
new file mode 100644
index 000000000..0769006d3
--- /dev/null
+++ b/sec/Common_Content/images/27.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/28.png b/sec/Common_Content/images/28.png
new file mode 100644
index 000000000..065ce1ab6
Binary files /dev/null and b/sec/Common_Content/images/28.png differ
diff --git a/sec/Common_Content/images/28.svg b/sec/Common_Content/images/28.svg
new file mode 100644
index 000000000..60cf1575c
--- /dev/null
+++ b/sec/Common_Content/images/28.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/29.png b/sec/Common_Content/images/29.png
new file mode 100644
index 000000000..8f28d5b18
Binary files /dev/null and b/sec/Common_Content/images/29.png differ
diff --git a/sec/Common_Content/images/29.svg b/sec/Common_Content/images/29.svg
new file mode 100644
index 000000000..6dc663582
--- /dev/null
+++ b/sec/Common_Content/images/29.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/3.png b/sec/Common_Content/images/3.png
new file mode 100644
index 000000000..9e3ae4028
Binary files /dev/null and b/sec/Common_Content/images/3.png differ
diff --git a/sec/Common_Content/images/3.svg b/sec/Common_Content/images/3.svg
new file mode 100644
index 000000000..2e88abd28
--- /dev/null
+++ b/sec/Common_Content/images/3.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/sec/Common_Content/images/30.png b/sec/Common_Content/images/30.png
new file mode 100644
index 000000000..d5831850f
Binary files /dev/null and b/sec/Common_Content/images/30.png differ
diff --git a/sec/Common_Content/images/30.svg b/sec/Common_Content/images/30.svg
new file mode 100644
index 000000000..717ae1c93
--- /dev/null
+++ b/sec/Common_Content/images/30.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/31.png b/sec/Common_Content/images/31.png
new file mode 100644
index 000000000..914692561
Binary files /dev/null and b/sec/Common_Content/images/31.png differ
diff --git a/sec/Common_Content/images/31.svg b/sec/Common_Content/images/31.svg
new file mode 100644
index 000000000..25c7b5209
--- /dev/null
+++ b/sec/Common_Content/images/31.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/32.png b/sec/Common_Content/images/32.png
new file mode 100644
index 000000000..cbc972e24
Binary files /dev/null and b/sec/Common_Content/images/32.png differ
diff --git a/sec/Common_Content/images/32.svg b/sec/Common_Content/images/32.svg
new file mode 100644
index 000000000..79866e886
--- /dev/null
+++ b/sec/Common_Content/images/32.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/33.png b/sec/Common_Content/images/33.png
new file mode 100644
index 000000000..7c1ab6a21
Binary files /dev/null and b/sec/Common_Content/images/33.png differ
diff --git a/sec/Common_Content/images/33.svg b/sec/Common_Content/images/33.svg
new file mode 100644
index 000000000..01c322275
--- /dev/null
+++ b/sec/Common_Content/images/33.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/34.png b/sec/Common_Content/images/34.png
new file mode 100644
index 000000000..2585ddc9c
Binary files /dev/null and b/sec/Common_Content/images/34.png differ
diff --git a/sec/Common_Content/images/34.svg b/sec/Common_Content/images/34.svg
new file mode 100644
index 000000000..cf9cf7ce7
--- /dev/null
+++ b/sec/Common_Content/images/34.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/35.png b/sec/Common_Content/images/35.png
new file mode 100644
index 000000000..86ff09ca8
Binary files /dev/null and b/sec/Common_Content/images/35.png differ
diff --git a/sec/Common_Content/images/35.svg b/sec/Common_Content/images/35.svg
new file mode 100644
index 000000000..948ed841c
--- /dev/null
+++ b/sec/Common_Content/images/35.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/36.png b/sec/Common_Content/images/36.png
new file mode 100644
index 000000000..c4a7f794c
Binary files /dev/null and b/sec/Common_Content/images/36.png differ
diff --git a/sec/Common_Content/images/36.svg b/sec/Common_Content/images/36.svg
new file mode 100644
index 000000000..cff32b518
--- /dev/null
+++ b/sec/Common_Content/images/36.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/37.png b/sec/Common_Content/images/37.png
new file mode 100644
index 000000000..91cf6ae3e
Binary files /dev/null and b/sec/Common_Content/images/37.png differ
diff --git a/sec/Common_Content/images/37.svg b/sec/Common_Content/images/37.svg
new file mode 100644
index 000000000..6694ee403
--- /dev/null
+++ b/sec/Common_Content/images/37.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/38.png b/sec/Common_Content/images/38.png
new file mode 100644
index 000000000..882f8cdc7
Binary files /dev/null and b/sec/Common_Content/images/38.png differ
diff --git a/sec/Common_Content/images/38.svg b/sec/Common_Content/images/38.svg
new file mode 100644
index 000000000..26ded9383
--- /dev/null
+++ b/sec/Common_Content/images/38.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/39.png b/sec/Common_Content/images/39.png
new file mode 100644
index 000000000..cc0726d78
Binary files /dev/null and b/sec/Common_Content/images/39.png differ
diff --git a/sec/Common_Content/images/39.svg b/sec/Common_Content/images/39.svg
new file mode 100644
index 000000000..082c1b1fd
--- /dev/null
+++ b/sec/Common_Content/images/39.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/4.png b/sec/Common_Content/images/4.png
new file mode 100644
index 000000000..266e71432
Binary files /dev/null and b/sec/Common_Content/images/4.png differ
diff --git a/sec/Common_Content/images/4.svg b/sec/Common_Content/images/4.svg
new file mode 100644
index 000000000..25888e42e
--- /dev/null
+++ b/sec/Common_Content/images/4.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/sec/Common_Content/images/40.png b/sec/Common_Content/images/40.png
new file mode 100644
index 000000000..b92fd2ffd
Binary files /dev/null and b/sec/Common_Content/images/40.png differ
diff --git a/sec/Common_Content/images/40.svg b/sec/Common_Content/images/40.svg
new file mode 100644
index 000000000..33ef96ad3
--- /dev/null
+++ b/sec/Common_Content/images/40.svg
@@ -0,0 +1,31 @@
+
+
+
+
diff --git a/sec/Common_Content/images/5.png b/sec/Common_Content/images/5.png
new file mode 100644
index 000000000..94153bdbb
Binary files /dev/null and b/sec/Common_Content/images/5.png differ
diff --git a/sec/Common_Content/images/5.svg b/sec/Common_Content/images/5.svg
new file mode 100644
index 000000000..7d1dabd4a
--- /dev/null
+++ b/sec/Common_Content/images/5.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/sec/Common_Content/images/6.png b/sec/Common_Content/images/6.png
new file mode 100644
index 000000000..792940e9f
Binary files /dev/null and b/sec/Common_Content/images/6.png differ
diff --git a/sec/Common_Content/images/6.svg b/sec/Common_Content/images/6.svg
new file mode 100644
index 000000000..3ab7c3914
--- /dev/null
+++ b/sec/Common_Content/images/6.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/sec/Common_Content/images/7.png b/sec/Common_Content/images/7.png
new file mode 100644
index 000000000..59eaefd80
Binary files /dev/null and b/sec/Common_Content/images/7.png differ
diff --git a/sec/Common_Content/images/7.svg b/sec/Common_Content/images/7.svg
new file mode 100644
index 000000000..ab9cb5d20
--- /dev/null
+++ b/sec/Common_Content/images/7.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/sec/Common_Content/images/8.png b/sec/Common_Content/images/8.png
new file mode 100644
index 000000000..6aad94b5c
Binary files /dev/null and b/sec/Common_Content/images/8.png differ
diff --git a/sec/Common_Content/images/8.svg b/sec/Common_Content/images/8.svg
new file mode 100644
index 000000000..23b1e2092
--- /dev/null
+++ b/sec/Common_Content/images/8.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/sec/Common_Content/images/9.png b/sec/Common_Content/images/9.png
new file mode 100644
index 000000000..2478355b2
Binary files /dev/null and b/sec/Common_Content/images/9.png differ
diff --git a/sec/Common_Content/images/9.svg b/sec/Common_Content/images/9.svg
new file mode 100644
index 000000000..80db11b7f
--- /dev/null
+++ b/sec/Common_Content/images/9.svg
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/sec/Common_Content/images/bkgrnd_greydots.png b/sec/Common_Content/images/bkgrnd_greydots.png
new file mode 100644
index 000000000..2333a6db9
Binary files /dev/null and b/sec/Common_Content/images/bkgrnd_greydots.png differ
diff --git a/sec/Common_Content/images/bullet_arrowblue.png b/sec/Common_Content/images/bullet_arrowblue.png
new file mode 100644
index 000000000..c2355345e
Binary files /dev/null and b/sec/Common_Content/images/bullet_arrowblue.png differ
diff --git a/sec/Common_Content/images/documentation.png b/sec/Common_Content/images/documentation.png
new file mode 100644
index 000000000..7ae45bdf6
Binary files /dev/null and b/sec/Common_Content/images/documentation.png differ
diff --git a/sec/Common_Content/images/dot.png b/sec/Common_Content/images/dot.png
new file mode 100644
index 000000000..36a685995
Binary files /dev/null and b/sec/Common_Content/images/dot.png differ
diff --git a/sec/Common_Content/images/dot2.png b/sec/Common_Content/images/dot2.png
new file mode 100644
index 000000000..40aff9237
Binary files /dev/null and b/sec/Common_Content/images/dot2.png differ
diff --git a/sec/Common_Content/images/green.png b/sec/Common_Content/images/green.png
new file mode 100644
index 000000000..ebb3c247d
Binary files /dev/null and b/sec/Common_Content/images/green.png differ
diff --git a/sec/Common_Content/images/h1-bg.png b/sec/Common_Content/images/h1-bg.png
new file mode 100644
index 000000000..31397b5c3
Binary files /dev/null and b/sec/Common_Content/images/h1-bg.png differ
diff --git a/sec/Common_Content/images/image_left.png b/sec/Common_Content/images/image_left.png
new file mode 100644
index 000000000..1b5f142ae
Binary files /dev/null and b/sec/Common_Content/images/image_left.png differ
diff --git a/sec/Common_Content/images/image_right.png b/sec/Common_Content/images/image_right.png
new file mode 100644
index 000000000..7ae45bdf6
Binary files /dev/null and b/sec/Common_Content/images/image_right.png differ
diff --git a/sec/Common_Content/images/important.png b/sec/Common_Content/images/important.png
new file mode 100644
index 000000000..eb429663b
Binary files /dev/null and b/sec/Common_Content/images/important.png differ
diff --git a/sec/Common_Content/images/important.svg b/sec/Common_Content/images/important.svg
new file mode 100644
index 000000000..064c783b5
--- /dev/null
+++ b/sec/Common_Content/images/important.svg
@@ -0,0 +1,30 @@
+
+
+
diff --git a/sec/Common_Content/images/note.png b/sec/Common_Content/images/note.png
new file mode 100644
index 000000000..2b421d271
Binary files /dev/null and b/sec/Common_Content/images/note.png differ
diff --git a/sec/Common_Content/images/note.svg b/sec/Common_Content/images/note.svg
new file mode 100644
index 000000000..abe5a6024
--- /dev/null
+++ b/sec/Common_Content/images/note.svg
@@ -0,0 +1,28 @@
+
+
+
diff --git a/sec/Common_Content/images/red.png b/sec/Common_Content/images/red.png
new file mode 100644
index 000000000..d32d5e2e8
Binary files /dev/null and b/sec/Common_Content/images/red.png differ
diff --git a/sec/Common_Content/images/redhat-logo.svg b/sec/Common_Content/images/redhat-logo.svg
new file mode 100644
index 000000000..22c16f779
--- /dev/null
+++ b/sec/Common_Content/images/redhat-logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sec/Common_Content/images/rhlogo.png b/sec/Common_Content/images/rhlogo.png
new file mode 100644
index 000000000..1b5f142ae
Binary files /dev/null and b/sec/Common_Content/images/rhlogo.png differ
diff --git a/sec/Common_Content/images/service_pattern_tile_negative.svg b/sec/Common_Content/images/service_pattern_tile_negative.svg
new file mode 100644
index 000000000..6fdfb93e9
--- /dev/null
+++ b/sec/Common_Content/images/service_pattern_tile_negative.svg
@@ -0,0 +1,44 @@
+
+
+
+
diff --git a/sec/Common_Content/images/service_pattern_tile_positive.svg b/sec/Common_Content/images/service_pattern_tile_positive.svg
new file mode 100644
index 000000000..b1157ea2a
--- /dev/null
+++ b/sec/Common_Content/images/service_pattern_tile_positive.svg
@@ -0,0 +1,73 @@
+
+
+
+
diff --git a/sec/Common_Content/images/shade.png b/sec/Common_Content/images/shade.png
new file mode 100644
index 000000000..a73afdf6a
Binary files /dev/null and b/sec/Common_Content/images/shade.png differ
diff --git a/sec/Common_Content/images/shine.png b/sec/Common_Content/images/shine.png
new file mode 100644
index 000000000..a18f7c461
Binary files /dev/null and b/sec/Common_Content/images/shine.png differ
diff --git a/sec/Common_Content/images/stock-go-back.png b/sec/Common_Content/images/stock-go-back.png
new file mode 100644
index 000000000..816029015
Binary files /dev/null and b/sec/Common_Content/images/stock-go-back.png differ
diff --git a/sec/Common_Content/images/stock-go-forward.png b/sec/Common_Content/images/stock-go-forward.png
new file mode 100644
index 000000000..be8647411
Binary files /dev/null and b/sec/Common_Content/images/stock-go-forward.png differ
diff --git a/sec/Common_Content/images/stock-go-up.png b/sec/Common_Content/images/stock-go-up.png
new file mode 100644
index 000000000..52a31edf4
Binary files /dev/null and b/sec/Common_Content/images/stock-go-up.png differ
diff --git a/sec/Common_Content/images/stock-home.png b/sec/Common_Content/images/stock-home.png
new file mode 100644
index 000000000..b9ce2b86f
Binary files /dev/null and b/sec/Common_Content/images/stock-home.png differ
diff --git a/sec/Common_Content/images/title_logo.png b/sec/Common_Content/images/title_logo.png
new file mode 100644
index 000000000..1b5f142ae
Binary files /dev/null and b/sec/Common_Content/images/title_logo.png differ
diff --git a/sec/Common_Content/images/title_logo.svg b/sec/Common_Content/images/title_logo.svg
new file mode 100644
index 000000000..22c16f779
--- /dev/null
+++ b/sec/Common_Content/images/title_logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sec/Common_Content/images/warning.png b/sec/Common_Content/images/warning.png
new file mode 100644
index 000000000..3745cf6a3
Binary files /dev/null and b/sec/Common_Content/images/warning.png differ
diff --git a/sec/Common_Content/images/warning.svg b/sec/Common_Content/images/warning.svg
new file mode 100644
index 000000000..9d08ae03f
--- /dev/null
+++ b/sec/Common_Content/images/warning.svg
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/sec/Common_Content/images/watermark-draft.png b/sec/Common_Content/images/watermark-draft.png
new file mode 100644
index 000000000..0ead5af8b
Binary files /dev/null and b/sec/Common_Content/images/watermark-draft.png differ
diff --git a/sec/Common_Content/images/yellow.png b/sec/Common_Content/images/yellow.png
new file mode 100644
index 000000000..223865d77
Binary files /dev/null and b/sec/Common_Content/images/yellow.png differ
diff --git a/sec/Common_Content/scripts/highlight.js/CHANGES.md b/sec/Common_Content/scripts/highlight.js/CHANGES.md
new file mode 100644
index 000000000..c20ef62d6
--- /dev/null
+++ b/sec/Common_Content/scripts/highlight.js/CHANGES.md
@@ -0,0 +1,1049 @@
+## Version 8.4
+
+We've got the new [demo page][]! The obvious new feature is the new look, but
+apart from that it's got smarter: by presenting languages in groups it avoids
+running 10000 highlighting attempts after first load which was slowing it down
+and giving bad overall impression. It is now also being generated from test
+code snippets so the authors of new languages don't have to update both tests
+and the demo page with the same thing.
+
+Other notable changes:
+
+- The `template_comment` class is gone in favor of the more general `comment`.
+- Number parsing unified and improved across languages.
+- C++, Java and C# now use unified grammar to highlight titles in
+ function/method definitions.
+- The browser build is now usable as an AMD module, there's no separate build
+ target for that anymore.
+- OCaml has got a [comprehensive overhaul][ocaml] by [Mickaël Delahaye][].
+- Clojure's data structures and literals are now highlighted outside of lists
+ and we can now highlight Clojure's REPL sessions.
+
+New languages:
+
+- *AspectJ* by [Hakan Özler][]
+- *STEP Part 21* by [Adam Joseph Cook][]
+- *SML* derived by [Edwin Dalorzo][] from OCaml definition
+- *Mercury* by [mucaho][]
+- *Smali* by [Dennis Titze][]
+- *Verilog* by [Jon Evans][]
+- *Stata* by [Brian Quistorff][]
+
+[Hakan Özler]: https://github.com/ozlerhakan
+[Adam Joseph Cook]: https://github.com/adamjcook
+[demo page]: https://highlightjs.org/static/demo/
+[Ivan Sagalaev]: https://github.com/isagalaev
+[Edwin Dalorzo]: https://github.com/edalorzo
+[mucaho]: https://github.com/mucaho
+[Dennis Titze]: https://github.com/titze
+[Jon Evans]: https://github.com/craftyjon
+[Brian Quistorff]: https://github.com/bquistorff
+[ocaml]: https://github.com/isagalaev/highlight.js/pull/608#issue-46190207
+[Mickaël Delahaye]: https://github.com/polazarus
+
+
+## Version 8.3
+
+We streamlined our tool chain, it is now based entirely on node.js instead of
+being a mix of node.js, Python and Java. The build script options and arguments
+remained the same, and we've noted all the changes in the [documentation][b].
+Apart from reducing complexity, the new build script is also faster from not
+having to start Java machine repeatedly. The credits for the work go to [Jeremy
+Hull][].
+
+Some notable fixes:
+
+- PHP and JavaScript mixed in HTML now live happily with each other.
+- JavaScript regexes now understand ES6 flags "u" and "y".
+- `throw` keyword is no longer detected as a method name in Java.
+- Fixed parsing of numbers and symbols in Clojure thanks to [input from Ivan
+ Kleshnin][ik].
+
+New languages in this release:
+
+- *Less* by [Max Mikhailov][]
+- *Stylus* by [Bryant Williams][]
+- *Tcl* by [Radek Liska][]
+- *Puppet* by [Jose Molina Colmenero][]
+- *Processing* by [Erik Paluka][]
+- *Twig* templates by [Luke Holder][]
+- *PowerShell* by [David Mohundro][], based on [the work of Nicholas
+ Blumhardt][ps]
+- *XL* by [Christophe de Dinechin][]
+- *LiveScript* by [Taneli Vatanen][] and [Jen Evers-Corvina][]
+- *ERB* (Ruby in HTML) by [Lucas Mazza][]
+- *Roboconf* by [Vincent Zurczak][]
+
+[b]: http://highlightjs.readthedocs.org/en/latest/building-testing.html
+[Jeremy Hull]: https://github.com/sourrust
+[ik]: https://twitter.com/IvanKleshnin/status/514041599484231680
+[Max Mikhailov]: https://github.com/seven-phases-max
+[Bryant Williams]: https://github.com/scien
+[Radek Liska]: https://github.com/Nindaleth
+[Jose Molina Colmenero]: https://github.com/Moliholy
+[Erik Paluka]: https://github.com/paluka
+[Luke Holder]: https://github.com/lukeholder
+[David Mohundro]: https://github.com/drmohundro
+[ps]: https://github.com/OctopusDeploy/Library/blob/master/app/shared/presentation/highlighting/powershell.js
+[Christophe de Dinechin]: https://github.com/c3d
+[Taneli Vatanen]: https://github.com/Daiz-
+[Jen Evers-Corvina]: https://github.com/sevvie
+[Lucas Mazza]: https://github.com/lucasmazza
+[Vincent Zurczak]: https://github.com/vincent-zurczak
+
+## Version 8.2
+
+We've finally got [real tests][test] and [continuous testing on Travis][ci]
+thanks to [Jeremy Hull][] and [Chris Eidhof][]. The tests designed to cover
+everything: language detection, correct parsing of individual language features
+and various special cases. This is a very important change that gives us
+confidence in extending language definitions and refactoring library core.
+
+We're going to redesign the old [demo/test suite][demo] into an interactive
+demo web app. If you're confident front-end developer or designer and want to
+help us with it, drop a comment into [the issue][#542] on GitHub.
+
+[test]: https://github.com/isagalaev/highlight.js/tree/master/test
+[demo]: https://highlightjs.org/static/test.html
+[#542]: https://github.com/isagalaev/highlight.js/issues/542
+[ci]: https://travis-ci.org/isagalaev/highlight.js
+[Jeremy Hull]: https://github.com/sourrust
+[Chris Eidhof]: https://github.com/chriseidhof
+
+As usually there's a handful of new languages in this release:
+
+- *Groovy* by [Guillaume Laforge][]
+- *Dart* by [Maxim Dikun][]
+- *Dust* by [Michael Allen][]
+- *Scheme* by [JP Verkamp][]
+- *G-Code* by [Adam Joseph Cook][]
+- *Q* from Kx Systems by [Sergey Vidyuk][]
+
+[Guillaume Laforge]: https://github.com/glaforge
+[Maxim Dikun]: https://github.com/dikmax
+[Michael Allen]: https://github.com/bfui
+[JP Verkamp]: https://github.com/jpverkamp
+[Adam Joseph Cook]: https://github.com/adamjcook
+[Sergey Vidyuk]: https://github.com/sv
+
+Other improvements:
+
+- [Erik Osheim][] heavily reworked Scala definitions making it richer.
+- [Lucas Mazza][] fixed Ruby hashes highlighting
+- Lisp variants (Lisp, Clojure and Scheme) are unified in regard to naming
+ the first symbol in parentheses: it's "keyword" in general case and also
+ "built_in" for built-in functions in Clojure and Scheme.
+
+[Erik Osheim]: https://github.com/non
+[Lucas Mazza]: https://github.com/lucasmazza
+
+## Version 8.1
+
+New languages:
+
+- *Gherkin* by [Sam Pikesley][]
+- *Elixir* by [Josh Adams][]
+- *NSIS* by [Jan T. Sott][]
+- *VIM script* by [Jun Yang][]
+- *Protocol Buffers* by [Dan Tao][]
+- *Nix* by [Domen Kožar][]
+- *x86asm* by [innocenat][]
+- *Cap’n Proto* and *Thrift* by [Oleg Efimov][]
+- *Monkey* by [Arthur Bikmullin][]
+- *TypeScript* by [Panu Horsmalahti][]
+- *Nimrod* by [Flaviu Tamas][]
+- *Gradle* by [Damian Mee][]
+- *Haxe* by [Christopher Kaster][]
+- *Swift* by [Chris Eidhof][] and [Nate Cook][]
+
+New styles:
+
+- *Kimbie*, light and dark variants by [Jan T. Sott][]
+- *Color brewer* by [Fabrício Tavares de Oliveira][]
+- *Codepen.io embed* by [Justin Perry][]
+- *Hybrid* by [Nic West][]
+
+[Sam Pikesley]: https://github.com/pikesley
+[Sindre Sorhus]: https://github.com/sindresorhus
+[Josh Adams]: https://github.com/knewter
+[Jan T. Sott]: https://github.com/idleberg
+[Jun Yang]: https://github.com/harttle
+[Dan Tao]: https://github.com/dtao
+[Domen Kožar]: https://github.com/iElectric
+[innocenat]: https://github.com/innocenat
+[Oleg Efimov]: https://github.com/Sannis
+[Arthur Bikmullin]: https://github.com/devolonter
+[Panu Horsmalahti]: https://github.com/panuhorsmalahti
+[Flaviu Tamas]: https://github.com/flaviut
+[Damian Mee]: https://github.com/chester1000
+[Christopher Kaster]: http://christopher.kaster.ws
+[Fabrício Tavares de Oliveira]: https://github.com/fabriciotav
+[Justin Perry]: https://github.com/ourmaninamsterdam
+[Nic West]: https://github.com/nicwest
+[Chris Eidhof]: https://github.com/chriseidhof
+[Nate Cook]: https://github.com/natecook1000
+
+Other improvements:
+
+- The README is heavily reworked and brought up to date by [Jeremy Hull][].
+- Added [`listLanguages()`][ll] method in the API.
+- Improved C/C++/C# detection.
+- Added a bunch of new language aliases, documented the existing ones. Thanks to
+ [Sindre Sorhus][] for background research.
+- Added phrasal English words to boost relevance in comments.
+- Many improvements to SQL definition made by [Heiko August][],
+ [Nikolay Lisienko][] and [Travis Odom][].
+- The shorter `lang-` prefix for language names in HTML classes supported
+ alongside `language-`. Thanks to [Jeff Escalante][].
+- Ruby's got support for interactive console sessions. Thanks to
+ [Pascal Hurni][].
+- Added built-in functions for R language. Thanks to [Artem A. Klevtsov][].
+- Rust's got definition for lifetime parameters and improved string syntax.
+ Thanks to [Roman Shmatov][].
+- Various improvements to Objective-C definition by [Matt Diephouse][].
+- Fixed highlighting of generics in Java.
+
+[ll]: http://highlightjs.readthedocs.org/en/latest/api.html#listlanguages
+[Sindre Sorhus]: https://github.com/sindresorhus
+[Heiko August]: https://github.com/auge8472
+[Nikolay Lisienko]: https://github.com/neor-ru
+[Travis Odom]: https://github.com/Burstaholic
+[Jeff Escalante]: https://github.com/jenius
+[Pascal Hurni]: https://github.com/phurni
+[Jiyin Yiyong]: https://github.com/jiyinyiyong
+[Artem A. Klevtsov]: https://github.com/unikum
+[Roman Shmatov]: https://github.com/shmatov
+[Jeremy Hull]: https://github.com/sourrust
+[Matt Diephouse]: https://github.com/mdiep
+
+
+## Version 8.0
+
+This new major release is quite a big overhaul bringing both new features and
+some backwards incompatible changes. However, chances are that the majority of
+users won't be affected by the latter: the basic scenario described in the
+README is left intact.
+
+Here's what did change in an incompatible way:
+
+- We're now prefixing all classes located in [CSS classes reference][cr] with
+ `hljs-`, by default, because some class names would collide with other
+ people's stylesheets. If you were using an older version, you might still want
+ the previous behavior, but still want to upgrade. To suppress this new
+ behavior, you would initialize like so:
+
+ ```html
+
+ ```
+
+- `tabReplace` and `useBR` that were used in different places are also unified
+ into the global options object and are to be set using `configure(options)`.
+ This function is documented in our [API docs][]. Also note that these
+ parameters are gone from `highlightBlock` and `fixMarkup` which are now also
+ rely on `configure`.
+
+- We removed public-facing (though undocumented) object `hljs.LANGUAGES` which
+ was used to register languages with the library in favor of two new methods:
+ `registerLanguage` and `getLanguage`. Both are documented in our [API docs][].
+
+- Result returned from `highlight` and `highlightAuto` no longer contains two
+ separate attributes contributing to relevance score, `relevance` and
+ `keyword_count`. They are now unified in `relevance`.
+
+Another technically compatible change that nonetheless might need attention:
+
+- The structure of the NPM package was refactored, so if you had installed it
+ locally, you'll have to update your paths. The usual `require('highlight.js')`
+ works as before. This is contributed by [Dmitry Smolin][].
+
+New features:
+
+- Languages now can be recognized by multiple names like "js" for JavaScript or
+ "html" for, well, HTML (which earlier insisted on calling it "xml"). These
+ aliases can be specified in the class attribute of the code container in your
+ HTML as well as in various API calls. For now there are only a few very common
+ aliases but we'll expand it in the future. All of them are listed in the
+ [class reference][cr].
+
+- Language detection can now be restricted to a subset of languages relevant in
+ a given context — a web page or even a single highlighting call. This is
+ especially useful for node.js build that includes all the known languages.
+ Another example is a StackOverflow-style site where users specify languages
+ as tags rather than in the markdown-formatted code snippets. This is
+ documented in the [API reference][] (see methods `highlightAuto` and
+ `configure`).
+
+- Language definition syntax streamlined with [variants][] and
+ [beginKeywords][].
+
+New languages and styles:
+
+- *Oxygene* by [Carlo Kok][]
+- *Mathematica* by [Daniel Kvasnička][]
+- *Autohotkey* by [Seongwon Lee][]
+- *Atelier* family of styles in 10 variants by [Bram de Haan][]
+- *Paraíso* styles by [Jan T. Sott][]
+
+Miscellaneous improvements:
+
+- Highlighting `=>` prompts in Clojure.
+- [Jeremy Hull][] fixed a lot of styles for consistency.
+- Finally, highlighting PHP and HTML [mixed in peculiar ways][php-html].
+- Objective C and C# now properly highlight titles in method definition.
+- Big overhaul of relevance counting for a number of languages. Please do report
+ bugs about mis-detection of non-trivial code snippets!
+
+[API reference]: http://highlightjs.readthedocs.org/en/latest/api.html
+
+[cr]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html
+[api docs]: http://highlightjs.readthedocs.org/en/latest/api.html
+[variants]: https://groups.google.com/d/topic/highlightjs/VoGC9-1p5vk/discussion
+[beginKeywords]: https://github.com/isagalaev/highlight.js/commit/6c7fdea002eb3949577a85b3f7930137c7c3038d
+[php-html]: https://twitter.com/highlightjs/status/408890903017689088
+
+[Carlo Kok]: https://github.com/carlokok
+[Bram de Haan]: https://github.com/atelierbram
+[Daniel Kvasnička]: https://github.com/dkvasnicka
+[Dmitry Smolin]: https://github.com/dimsmol
+[Jeremy Hull]: https://github.com/sourrust
+[Seongwon Lee]: https://github.com/dlimpid
+[Jan T. Sott]: https://github.com/idleberg
+
+
+## Version 7.5
+
+A catch-up release dealing with some of the accumulated contributions. This one
+is probably will be the last before the 8.0 which will be slightly backwards
+incompatible regarding some advanced use-cases.
+
+One outstanding change in this version is the addition of 6 languages to the
+[hosted script][d]: Markdown, ObjectiveC, CoffeeScript, Apache, Nginx and
+Makefile. It now weighs about 6K more but we're going to keep it under 30K.
+
+New languages:
+
+- OCaml by [Mehdi Dogguy][mehdid] and [Nicolas Braud-Santoni][nbraud]
+- [LiveCode Server][lcs] by [Ralf Bitter][revig]
+- Scilab by [Sylvestre Ledru][sylvestre]
+- basic support for Makefile by [Ivan Sagalaev][isagalaev]
+
+Improvements:
+
+- Ruby's got support for characters like `?A`, `?1`, `?\012` etc. and `%r{..}`
+ regexps.
+- Clojure now allows a function call in the beginning of s-expressions
+ `(($filter "myCount") (arr 1 2 3 4 5))`.
+- Haskell's got new keywords and now recognizes more things like pragmas,
+ preprocessors, modules, containers, FFIs etc. Thanks to [Zena Treep][treep]
+ for the implementation and to [Jeremy Hull][sourrust] for guiding it.
+- Miscellaneous fixes in PHP, Brainfuck, SCSS, Asciidoc, CMake, Python and F#.
+
+[mehdid]: https://github.com/mehdid
+[nbraud]: https://github.com/nbraud
+[revig]: https://github.com/revig
+[lcs]: http://livecode.com/developers/guides/server/
+[sylvestre]: https://github.com/sylvestre
+[isagalaev]: https://github.com/isagalaev
+[treep]: https://github.com/treep
+[sourrust]: https://github.com/sourrust
+[d]: http://highlightjs.org/download/
+
+
+## New core developers
+
+The latest long period of almost complete inactivity in the project coincided
+with growing interest to it led to a decision that now seems completely obvious:
+we need more core developers.
+
+So without further ado let me welcome to the core team two long-time
+contributors: [Jeremy Hull][] and [Oleg
+Efimov][].
+
+Hope now we'll be able to work through stuff faster!
+
+P.S. The historical commit is [here][1] for the record.
+
+[Jeremy Hull]: https://github.com/sourrust
+[Oleg Efimov]: https://github.com/sannis
+[1]: https://github.com/isagalaev/highlight.js/commit/f3056941bda56d2b72276b97bc0dd5f230f2473f
+
+
+## Version 7.4
+
+This long overdue version is a snapshot of the current source tree with all the
+changes that happened during the past year. Sorry for taking so long!
+
+Along with the changes in code highlight.js has finally got its new home at
+, moving from its cradle on Software Maniacs which it
+outgrew a long time ago. Be sure to report any bugs about the site to
+.
+
+On to what's new…
+
+New languages:
+
+- Handlebars templates by [Robin Ward][]
+- Oracle Rules Language by [Jason Jacobson][]
+- F# by [Joans Follesø][]
+- AsciiDoc and Haml by [Dan Allen][]
+- Lasso by [Eric Knibbe][]
+- SCSS by [Kurt Emch][]
+- VB.NET by [Poren Chiang][]
+- Mizar by [Kelley van Evert][]
+
+[Robin Ward]: https://github.com/eviltrout
+[Jason Jacobson]: https://github.com/jayce7
+[Joans Follesø]: https://github.com/follesoe
+[Dan Allen]: https://github.com/mojavelinux
+[Eric Knibbe]: https://github.com/EricFromCanada
+[Kurt Emch]: https://github.com/kemch
+[Poren Chiang]: https://github.com/rschiang
+[Kelley van Evert]: https://github.com/kelleyvanevert
+
+New style themes:
+
+- Monokai Sublime by [noformnocontent][]
+- Railscasts by [Damien White][]
+- Obsidian by [Alexander Marenin][]
+- Docco by [Simon Madine][]
+- Mono Blue by [Ivan Sagalaev][] (uses a single color hue for everything)
+- Foundation by [Dan Allen][]
+
+[noformnocontent]: http://nn.mit-license.org/
+[Damien White]: https://github.com/visoft
+[Alexander Marenin]: https://github.com/ioncreature
+[Simon Madine]: https://github.com/thingsinjars
+[Ivan Sagalaev]: https://github.com/isagalaev
+
+Other notable changes:
+
+- Corrected many corner cases in CSS.
+- Dropped Python 2 version of the build tool.
+- Implemented building for the AMD format.
+- Updated Rust keywords (thanks to [Dmitry Medvinsky][]).
+- Literal regexes can now be used in language definitions.
+- CoffeeScript highlighting is now significantly more robust and rich due to
+ input from [Cédric Néhémie][].
+
+[Dmitry Medvinsky]: https://github.com/dmedvinsky
+[Cédric Néhémie]: https://github.com/abe33
+
+
+## Version 7.3
+
+- Since this version highlight.js no longer works in IE version 8 and older.
+ It's made it possible to reduce the library size and dramatically improve code
+ readability and made it easier to maintain. Time to go forward!
+
+- New languages: AppleScript (by [Nathan Grigg][ng] and [Dr. Drang][dd]) and
+ Brainfuck (by [Evgeny Stepanischev][bolk]).
+
+- Improvements to existing languages:
+
+ - interpreter prompt in Python (`>>>` and `...`)
+ - @-properties and classes in CoffeeScript
+ - E4X in JavaScript (by [Oleg Efimov][oe])
+ - new keywords in Perl (by [Kirk Kimmel][kk])
+ - big Ruby syntax update (by [Vasily Polovnyov][vast])
+ - small fixes in Bash
+
+- Also Oleg Efimov did a great job of moving all the docs for language and style
+ developers and contributors from the old wiki under the source code in the
+ "docs" directory. Now these docs are nicely presented at
+ .
+
+[ng]: https://github.com/nathan11g
+[dd]: https://github.com/drdrang
+[bolk]: https://github.com/bolknote
+[oe]: https://github.com/Sannis
+[kk]: https://github.com/kimmel
+[vast]: https://github.com/vast
+
+
+## Version 7.2
+
+A regular bug-fix release without any significant new features. Enjoy!
+
+
+## Version 7.1
+
+A Summer crop:
+
+- [Marc Fornos][mf] made the definition for Clojure along with the matching
+ style Rainbow (which, of course, works for other languages too).
+- CoffeeScript support continues to improve getting support for regular
+ expressions.
+- Yoshihide Jimbo ported to highlight.js [five Tomorrow styles][tm] from the
+ [project by Chris Kempson][tm0].
+- Thanks to [Casey Duncun][cd] the library can now be built in the popular
+ [AMD format][amd].
+- And last but not least, we've got a fair number of correctness and consistency
+ fixes, including a pretty significant refactoring of Ruby.
+
+[mf]: https://github.com/mfornos
+[tm]: http://jmblog.github.com/color-themes-for-highlightjs/
+[tm0]: https://github.com/ChrisKempson/Tomorrow-Theme
+[cd]: https://github.com/caseman
+[amd]: http://requirejs.org/docs/whyamd.html
+
+
+## Version 7.0
+
+The reason for the new major version update is a global change of keyword syntax
+which resulted in the library getting smaller once again. For example, the
+hosted build is 2K less than at the previous version while supporting two new
+languages.
+
+Notable changes:
+
+- The library now works not only in a browser but also with [node.js][]. It is
+ installable with `npm install highlight.js`. [API][] docs are available on our
+ wiki.
+
+- The new unique feature (apparently) among syntax highlighters is highlighting
+ *HTTP* headers and an arbitrary language in the request body. The most useful
+ languages here are *XML* and *JSON* both of which highlight.js does support.
+ Here's [the detailed post][p] about the feature.
+
+- Two new style themes: a dark "south" *[Pojoaque][]* by Jason Tate and an
+ emulation of*XCode* IDE by [Angel Olloqui][ao].
+
+- Three new languages: *D* by [Aleksandar Ružičić][ar], *R* by [Joe Cheng][jc]
+ and *GLSL* by [Sergey Tikhomirov][st].
+
+- *Nginx* syntax has become a million times smaller and more universal thanks to
+ remaking it in a more generic manner that doesn't require listing all the
+ directives in the known universe.
+
+- Function titles are now highlighted in *PHP*.
+
+- *Haskell* and *VHDL* were significantly reworked to be more rich and correct
+ by their respective maintainers [Jeremy Hull][sr] and [Igor Kalnitsky][ik].
+
+And last but not least, many bugs have been fixed around correctness and
+language detection.
+
+Overall highlight.js currently supports 51 languages and 20 style themes.
+
+[node.js]: http://nodejs.org/
+[api]: http://softwaremaniacs.org/wiki/doku.php/highlight.js:api
+[p]: http://softwaremaniacs.org/blog/2012/05/10/http-and-json-in-highlight-js/en/
+[pojoaque]: http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html
+[ao]: https://github.com/angelolloqui
+[ar]: https://github.com/raleksandar
+[jc]: https://github.com/jcheng5
+[st]: https://github.com/tikhomirov
+[sr]: https://github.com/sourrust
+[ik]: https://github.com/ikalnitsky
+
+
+## Version 6.2
+
+A lot of things happened in highlight.js since the last version! We've got nine
+new contributors, the discussion group came alive, and the main branch on GitHub
+now counts more than 350 followers. Here are most significant results coming
+from all this activity:
+
+- 5 (five!) new languages: Rust, ActionScript, CoffeeScript, MatLab and
+ experimental support for markdown. Thanks go to [Andrey Vlasovskikh][av],
+ [Alexander Myadzel][am], [Dmytrii Nagirniak][dn], [Oleg Efimov][oe], [Denis
+ Bardadym][db] and [John Crepezzi][jc].
+
+- 2 new style themes: Monokai by [Luigi Maselli][lm] and stylistic imitation of
+ another well-known highlighter Google Code Prettify by [Aahan Krish][ak].
+
+- A vast number of [correctness fixes and code refactorings][log], mostly made
+ by [Oleg Efimov][oe] and [Evgeny Stepanischev][es].
+
+[av]: https://github.com/vlasovskikh
+[am]: https://github.com/myadzel
+[dn]: https://github.com/dnagir
+[oe]: https://github.com/Sannis
+[db]: https://github.com/btd
+[jc]: https://github.com/seejohnrun
+[lm]: http://grigio.org/
+[ak]: https://github.com/geekpanth3r
+[es]: https://github.com/bolknote
+[log]: https://github.com/isagalaev/highlight.js/commits/
+
+
+## Version 6.1 — Solarized
+
+[Jeremy Hull][jh] has implemented my dream feature — a port of [Solarized][]
+style theme famous for being based on the intricate color theory to achieve
+correct contrast and color perception. It is now available for highlight.js in
+both variants — light and dark.
+
+This version also adds a new original style Arta. Its author pumbur maintains a
+[heavily modified fork of highlight.js][pb] on GitHub.
+
+[jh]: https://github.com/sourrust
+[solarized]: http://ethanschoonover.com/solarized
+[pb]: https://github.com/pumbur/highlight.js
+
+
+## Version 6.0
+
+New major version of the highlighter has been built on a significantly
+refactored syntax. Due to this it's even smaller than the previous one while
+supporting more languages!
+
+New languages are:
+
+- Haskell by [Jeremy Hull][sourrust]
+- Erlang in two varieties — module and REPL — made collectively by [Nikolay
+ Zakharov][desh], [Dmitry Kovega][arhibot] and [Sergey Ignatov][ignatov]
+- Objective C by [Valerii Hiora][vhbit]
+- Vala by [Antono Vasiljev][antono]
+- Go by [Stephan Kountso][steplg]
+
+[sourrust]: https://github.com/sourrust
+[desh]: http://desh.su/
+[arhibot]: https://github.com/arhibot
+[ignatov]: https://github.com/ignatov
+[vhbit]: https://github.com/vhbit
+[antono]: https://github.com/antono
+[steplg]: https://github.com/steplg
+
+Also this version is marginally faster and fixes a number of small long-standing
+bugs.
+
+Developer overview of the new language syntax is available in a [blog post about
+recent beta release][beta].
+
+[beta]: http://softwaremaniacs.org/blog/2011/04/25/highlight-js-60-beta/en/
+
+P.S. New version is not yet available on a Yandex CDN, so for now you have to
+download [your own copy][d].
+
+[d]: /soft/highlight/en/download/
+
+
+## Version 5.14
+
+Fixed bugs in HTML/XML detection and relevance introduced in previous
+refactoring.
+
+Also test.html now shows the second best result of language detection by
+relevance.
+
+
+## Version 5.13
+
+Past weekend began with a couple of simple additions for existing languages but
+ended up in a big code refactoring bringing along nice improvements for language
+developers.
+
+### For users
+
+- Description of C++ has got new keywords from the upcoming [C++ 0x][] standard.
+- Description of HTML has got new tags from [HTML 5][].
+- CSS-styles have been unified to use consistent padding and also have lost
+ pop-outs with names of detected languages.
+- [Igor Kalnitsky][ik] has sent two new language descriptions: CMake & VHDL.
+
+This makes total number of languages supported by highlight.js to reach 35.
+
+Bug fixes:
+
+- Custom classes on `
` tags are not being overridden anymore
+- More correct highlighting of code blocks inside non-`
` containers:
+ highlighter now doesn't insist on replacing them with its own container and
+ just replaces the contents.
+- Small fixes in browser compatibility and heuristics.
+
+[c++ 0x]: http://ru.wikipedia.org/wiki/C%2B%2B0x
+[html 5]: http://en.wikipedia.org/wiki/HTML5
+[ik]: http://kalnitsky.org.ua/
+
+### For developers
+
+The most significant change is the ability to include language submodes right
+under `contains` instead of defining explicit named submodes in the main array:
+
+ contains: [
+ 'string',
+ 'number',
+ {begin: '\\n', end: hljs.IMMEDIATE_RE}
+ ]
+
+This is useful for auxiliary modes needed only in one place to define parsing.
+Note that such modes often don't have `className` and hence won't generate a
+separate `` in the resulting markup. This is similar in effect to
+`noMarkup: true`. All existing languages have been refactored accordingly.
+
+Test file test.html has at last become a real test. Now it not only puts the
+detected language name under the code snippet but also tests if it matches the
+expected one. Test summary is displayed right above all language snippets.
+
+
+## CDN
+
+Fine people at [Yandex][] agreed to host highlight.js on their big fast servers.
+[Link up][l]!
+
+[yandex]: http://yandex.com/
+[l]: http://softwaremaniacs.org/soft/highlight/en/download/
+
+
+## Version 5.10 — "Paris".
+
+Though I'm on a vacation in Paris, I decided to release a new version with a
+couple of small fixes:
+
+- Tomas Vitvar discovered that TAB replacement doesn't always work when used
+ with custom markup in code
+- SQL parsing is even more rigid now and doesn't step over SmallTalk in tests
+
+
+## Version 5.9
+
+A long-awaited version is finally released.
+
+New languages:
+
+- Andrew Fedorov made a definition for Lua
+- a long-time highlight.js contributor [Peter Leonov][pl] made a definition for
+ Nginx config
+- [Vladimir Moskva][vm] made a definition for TeX
+
+[pl]: http://kung-fu-tzu.ru/
+[vm]: http://fulc.ru/
+
+Fixes for existing languages:
+
+- [Loren Segal][ls] reworked the Ruby definition and added highlighting for
+ [YARD][] inline documentation
+- the definition of SQL has become more solid and now it shouldn't be overly
+ greedy when it comes to language detection
+
+[ls]: http://gnuu.org/
+[yard]: http://yardoc.org/
+
+The highlighter has become more usable as a library allowing to do highlighting
+from initialization code of JS frameworks and in ajax methods (see.
+readme.eng.txt).
+
+Also this version drops support for the [WordPress][wp] plugin. Everyone is
+welcome to [pick up its maintenance][p] if needed.
+
+[wp]: http://wordpress.org/
+[p]: http://bazaar.launchpad.net/~isagalaev/+junk/highlight/annotate/342/src/wp_highlight.js.php
+
+
+## Version 5.8
+
+- Jan Berkel has contributed a definition for Scala. +1 to hotness!
+- All CSS-styles are rewritten to work only inside `
` tags to avoid
+ conflicts with host site styles.
+
+
+## Version 5.7.
+
+Fixed escaping of quotes in VBScript strings.
+
+
+## Version 5.5
+
+This version brings a small change: now .ini-files allow digits, underscores and
+square brackets in key names.
+
+
+## Version 5.4
+
+Fixed small but upsetting bug in the packer which caused incorrect highlighting
+of explicitly specified languages. Thanks to Andrew Fedorov for precise
+diagnostics!
+
+
+## Version 5.3
+
+The version to fulfil old promises.
+
+The most significant change is that highlight.js now preserves custom user
+markup in code along with its own highlighting markup. This means that now it's
+possible to use, say, links in code. Thanks to [Vladimir Dolzhenko][vd] for the
+[initial proposal][1] and for making a proof-of-concept patch.
+
+Also in this version:
+
+- [Vasily Polovnyov][vp] has sent a GitHub-like style and has implemented
+ support for CSS @-rules and Ruby symbols.
+- Yura Zaripov has sent two styles: Brown Paper and School Book.
+- Oleg Volchkov has sent a definition for [Parser 3][p3].
+
+[1]: http://softwaremaniacs.org/forum/highlightjs/6612/
+[p3]: http://www.parser.ru/
+[vp]: http://vasily.polovnyov.ru/
+[vd]: http://dolzhenko.blogspot.com/
+
+
+## Version 5.2
+
+- at last it's possible to replace indentation TABs with something sensible
+ (e.g. 2 or 4 spaces)
+- new keywords and built-ins for 1C by Sergey Baranov
+- a couple of small fixes to Apache highlighting
+
+
+## Version 5.1
+
+This is one of those nice version consisting entirely of new and shiny
+contributions!
+
+- [Vladimir Ermakov][vooon] created highlighting for AVR Assembler
+- [Ruslan Keba][rukeba] created highlighting for Apache config file. Also his
+ original visual style for it is now available for all highlight.js languages
+ under the name "Magula".
+- [Shuen-Huei Guan][drake] (aka Drake) sent new keywords for RenderMan
+ languages. Also thanks go to [Konstantin Evdokimenko][ke] for his advice on
+ the matter.
+
+[vooon]: http://vehq.ru/about/
+[rukeba]: http://rukeba.com/
+[drake]: http://drakeguan.org/
+[ke]: http://k-evdokimenko.moikrug.ru/
+
+
+## Version 5.0
+
+The main change in the new major version of highlight.js is a mechanism for
+packing several languages along with the library itself into a single compressed
+file. Now sites using several languages will load considerably faster because
+the library won't dynamically include additional files while loading.
+
+Also this version fixes a long-standing bug with Javascript highlighting that
+couldn't distinguish between regular expressions and division operations.
+
+And as usually there were a couple of minor correctness fixes.
+
+Great thanks to all contributors! Keep using highlight.js.
+
+
+## Version 4.3
+
+This version comes with two contributions from [Jason Diamond][jd]:
+
+- language definition for C# (yes! it was a long-missed thing!)
+- Visual Studio-like highlighting style
+
+Plus there are a couple of minor bug fixes for parsing HTML and XML attributes.
+
+[jd]: http://jason.diamond.name/weblog/
+
+
+## Version 4.2
+
+The biggest news is highlighting for Lisp, courtesy of Vasily Polovnyov. It's
+somewhat experimental meaning that for highlighting "keywords" it doesn't use
+any pre-defined set of a Lisp dialect. Instead it tries to highlight first word
+in parentheses wherever it makes sense. I'd like to ask people programming in
+Lisp to confirm if it's a good idea and send feedback to [the forum][f].
+
+Other changes:
+
+- Smalltalk was excluded from DEFAULT_LANGUAGES to save traffic
+- [Vladimir Epifanov][voldmar] has implemented javascript style switcher for
+ test.html
+- comments now allowed inside Ruby function definition
+- [MEL][] language from [Shuen-Huei Guan][drake]
+- whitespace now allowed between `
` and ``
+- better auto-detection of C++ and PHP
+- HTML allows embedded VBScript (`<% .. %>`)
+
+[f]: http://softwaremaniacs.org/forum/highlightjs/
+[voldmar]: http://voldmar.ya.ru/
+[mel]: http://en.wikipedia.org/wiki/Maya_Embedded_Language
+[drake]: http://drakeguan.org/
+
+
+## Version 4.1
+
+Languages:
+
+- Bash from Vah
+- DOS bat-files from Alexander Makarov (Sam)
+- Diff files from Vasily Polovnyov
+- Ini files from myself though initial idea was from Sam
+
+Styles:
+
+- Zenburn from Vladimir Epifanov, this is an imitation of a
+ [well-known theme for Vim][zenburn].
+- Ascetic from myself, as a realization of ideals of non-flashy highlighting:
+ just one color in only three gradations :-)
+
+In other news. [One small bug][bug] was fixed, built-in keywords were added for
+Python and C++ which improved auto-detection for the latter (it was shame that
+[my wife's blog][alenacpp] had issues with it from time to time). And lastly
+thanks go to Sam for getting rid of my stylistic comments in code that were
+getting in the way of [JSMin][].
+
+[zenburn]: http://en.wikipedia.org/wiki/Zenburn
+[alenacpp]: http://alenacpp.blogspot.com/
+[bug]: http://softwaremaniacs.org/forum/viewtopic.php?id=1823
+[jsmin]: http://code.google.com/p/jsmin-php/
+
+
+## Version 4.0
+
+New major version is a result of vast refactoring and of many contributions.
+
+Visible new features:
+
+- Highlighting of embedded languages. Currently is implemented highlighting of
+ Javascript and CSS inside HTML.
+- Bundled 5 ready-made style themes!
+
+Invisible new features:
+
+- Highlight.js no longer pollutes global namespace. Only one object and one
+ function for backward compatibility.
+- Performance is further increased by about 15%.
+
+Changing of a major version number caused by a new format of language definition
+files. If you use some third-party language files they should be updated.
+
+
+## Version 3.5
+
+A very nice version in my opinion fixing a number of small bugs and slightly
+increased speed in a couple of corner cases. Thanks to everybody who reports
+bugs in he [forum][f] and by email!
+
+There is also a new language — XML. A custom XML formerly was detected as HTML
+and didn't highlight custom tags. In this version I tried to make custom XML to
+be detected and highlighted by its own rules. Which by the way include such
+things as CDATA sections and processing instructions (` ... ?>`).
+
+[f]: http://softwaremaniacs.org/forum/viewforum.php?id=6
+
+
+## Version 3.3
+
+[Vladimir Gubarkov][xonix] has provided an interesting and useful addition.
+File export.html contains a little program that shows and allows to copy and
+paste an HTML code generated by the highlighter for any code snippet. This can
+be useful in situations when one can't use the script itself on a site.
+
+
+[xonix]: http://xonixx.blogspot.com/
+
+
+## Version 3.2 consists completely of contributions:
+
+- Vladimir Gubarkov has described SmallTalk
+- Yuri Ivanov has described 1C
+- Peter Leonov has packaged the highlighter as a Firefox extension
+- Vladimir Ermakov has compiled a mod for phpBB
+
+Many thanks to you all!
+
+
+## Version 3.1
+
+Three new languages are available: Django templates, SQL and Axapta. The latter
+two are sent by [Dmitri Roudakov][1]. However I've almost entirely rewrote an
+SQL definition but I'd never started it be it from the ground up :-)
+
+The engine itself has got a long awaited feature of grouping keywords
+("keyword", "built-in function", "literal"). No more hacks!
+
+[1]: http://roudakov.ru/
+
+
+## Version 3.0
+
+It is major mainly because now highlight.js has grown large and has become
+modular. Now when you pass it a list of languages to highlight it will
+dynamically load into a browser only those languages.
+
+Also:
+
+- Konstantin Evdokimenko of [RibKit][] project has created a highlighting for
+ RenderMan Shading Language and RenderMan Interface Bytestream. Yay for more
+ languages!
+- Heuristics for C++ and HTML got better.
+- I've implemented (at last) a correct handling of backslash escapes in C-like
+ languages.
+
+There is also a small backwards incompatible change in the new version. The
+function initHighlighting that was used to initialize highlighting instead of
+initHighlightingOnLoad a long time ago no longer works. If you by chance still
+use it — replace it with the new one.
+
+[RibKit]: http://ribkit.sourceforge.net/
+
+
+## Version 2.9
+
+Highlight.js is a parser, not just a couple of regular expressions. That said
+I'm glad to announce that in the new version 2.9 has support for:
+
+- in-string substitutions for Ruby -- `#{...}`
+- strings from from numeric symbol codes (like #XX) for Delphi
+
+
+## Version 2.8
+
+A maintenance release with more tuned heuristics. Fully backwards compatible.
+
+
+## Version 2.7
+
+- Nikita Ledyaev presents highlighting for VBScript, yay!
+- A couple of bugs with escaping in strings were fixed thanks to Mickle
+- Ongoing tuning of heuristics
+
+Fixed bugs were rather unpleasant so I encourage everyone to upgrade!
+
+
+## Version 2.4
+
+- Peter Leonov provides another improved highlighting for Perl
+- Javascript gets a new kind of keywords — "literals". These are the words
+ "true", "false" and "null"
+
+Also highlight.js homepage now lists sites that use the library. Feel free to
+add your site by [dropping me a message][mail] until I find the time to build a
+submit form.
+
+[mail]: mailto:Maniac@SoftwareManiacs.Org
+
+
+## Version 2.3
+
+This version fixes IE breakage in previous version. My apologies to all who have
+already downloaded that one!
+
+
+## Version 2.2
+
+- added highlighting for Javascript
+- at last fixed parsing of Delphi's escaped apostrophes in strings
+- in Ruby fixed highlighting of keywords 'def' and 'class', same for 'sub' in
+ Perl
+
+
+## Version 2.0
+
+- Ruby support by [Anton Kovalyov][ak]
+- speed increased by orders of magnitude due to new way of parsing
+- this same way allows now correct highlighting of keywords in some tricky
+ places (like keyword "End" at the end of Delphi classes)
+
+[ak]: http://anton.kovalyov.net/
+
+
+## Version 1.0
+
+Version 1.0 of javascript syntax highlighter is released!
+
+It's the first version available with English description. Feel free to post
+your comments and question to [highlight.js forum][forum]. And don't be afraid
+if you find there some fancy Cyrillic letters -- it's for Russian users too :-)
+
+[forum]: http://softwaremaniacs.org/forum/viewforum.php?id=6
diff --git a/sec/Common_Content/scripts/highlight.js/LICENSE b/sec/Common_Content/scripts/highlight.js/LICENSE
new file mode 100644
index 000000000..422deb735
--- /dev/null
+++ b/sec/Common_Content/scripts/highlight.js/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2006, Ivan Sagalaev
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of highlight.js nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/sec/Common_Content/scripts/highlight.js/README.md b/sec/Common_Content/scripts/highlight.js/README.md
new file mode 100644
index 000000000..8618022c8
--- /dev/null
+++ b/sec/Common_Content/scripts/highlight.js/README.md
@@ -0,0 +1,101 @@
+# Highlight.js
+
+[![Build Status](https://travis-ci.org/isagalaev/highlight.js.svg?branch=master)](https://travis-ci.org/isagalaev/highlight.js)
+
+Highlight.js is a syntax highlighter written in JavaScript. It works in the
+browser as well as on the server. It works with pretty much any markup,
+doesn't depend on any framework and has automatic language detection.
+
+
+## Getting Started
+
+The bare minimum for using highlight.js on a web page is linking to the library
+along with one of the styles and calling [`initHighlightingOnLoad`][1]:
+
+```html
+
+
+
+```
+
+This will find and highlight code inside of `
` tags trying to detect
+the language automatically. If automatic detection doesn't work for you, you can
+specify the language in the class attribute:
+
+```html
+
...
+```
+
+The list of supported language classes is available in the [class reference][8].
+Classes can also be prefixed with either `language-` or `lang-`.
+
+To disable highlighting altogether use the `nohighlight` class:
+
+```html
+
...
+```
+
+## Custom Initialization
+
+When you need a bit more control over the initialization of
+highlight.js, you can use the [`highlightBlock`][2] and [`configure`][3]
+functions. This allows you to control *what* to highlight and *when*.
+
+Here's an equivalent way to calling [`initHighlightingOnLoad`][1] using jQuery:
+
+```javascript
+$(document).ready(function() {
+ $('pre code').each(function(i, block) {
+ hljs.highlightBlock(block);
+ });
+});
+```
+
+You can use any tags instead of `
` to mark up your code. If you don't
+use a container that preserve line breaks you will need to configure
+highlight.js to use the ` ` tag:
+
+```javascript
+hljs.configure({useBR: true});
+
+$('div.code').each(function(i, block) {
+ hljs.highlightBlock(block);
+});
+```
+
+For other options refer to the documentation for [`configure`][3].
+
+
+## Getting the Library
+
+You can get highlight.js as a hosted or custom-build browser script or as a
+server module. Head over to the [download page][4] for all the options.
+
+Note, that the library is not supposed to work straight from the source on
+GitHub, it requires building. If none of the pre-packaged options work for you
+refer to the [building documentation][5].
+
+
+## License
+
+Highlight.js is released under the BSD License. See [LICENSE][10] file for
+details.
+
+
+## Links
+
+The official site for the library is at .
+
+Further in-depth documentation for the API and other topics is at
+.
+
+Authors and contributors are listed in the [AUTHORS.en.txt][9] file.
+
+[1]: http://highlightjs.readthedocs.org/en/latest/api.html#inithighlightingonload
+[2]: http://highlightjs.readthedocs.org/en/latest/api.html#highlightblock-block
+[3]: http://highlightjs.readthedocs.org/en/latest/api.html#configure-options
+[4]: https://highlightjs.org/download/
+[5]: http://highlightjs.readthedocs.org/en/latest/building-testing.html
+[8]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html
+[9]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.en.txt
+[10]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE
diff --git a/sec/Common_Content/scripts/highlight.js/README.ru.md b/sec/Common_Content/scripts/highlight.js/README.ru.md
new file mode 100644
index 000000000..198c02932
--- /dev/null
+++ b/sec/Common_Content/scripts/highlight.js/README.ru.md
@@ -0,0 +1,101 @@
+# Highlight.js
+
+Highlight.js — это подсветчик синтаксиса, написанный на JavaScript. Он работает
+и в браузере, и на сервере. Он работает с практически любой HTML разметкой, не
+зависит от каких-либо фреймворков и умеет автоматически определять язык.
+
+
+## Начало работы
+
+Минимум, что нужно сделать для использования highlight.js на веб-странице — это
+подключить библиотеку, CSS-стили и вызывать [`initHighlightingOnLoad`][1]:
+
+```html
+
+
+
+```
+
+Библиотека найдёт и раскрасит код внутри тегов `
`, попытавшись
+автоматически определить язык. Когда автоопределение не срабатывает, можно явно
+указать язык в атрибуте class:
+
+```html
+
...
+```
+
+Список поддерживаемых классов языков доступен в [справочнике по классам][8].
+Класс также можно предваоить префиксами `language-` или `lang-`.
+
+Чтобы отключить подсветку для какого-то блока, используйте класс `nohighlight`:
+
+```html
+
...
+```
+
+## Инициализация вручную
+
+Чтобы иметь чуть больше контроля за инициализацией подсветки, вы можете
+использовать функции [`highlightBlock`][2] и [`configure`][3]. Таким образом
+можно управлять тем, *что* подсвечивать и *когда*.
+
+Вот пример инициализация, эквивалентной вызову [`initHighlightingOnLoad`][1], но
+с использованием jQuery:
+
+```javascript
+$(document).ready(function() {
+ $('pre code').each(function(i, block) {
+ hljs.highlightBlock(block);
+ });
+});
+```
+
+Вы можете использовать любые теги разметки вместо `
`. Если
+используете контейнер, не сохраняющий переводы строк, вам нужно сказать
+highlight.js использовать для них тег ` `:
+
+```javascript
+hljs.configure({useBR: true});
+
+$('div.code').each(function(i, block) {
+ hljs.highlightBlock(block);
+});
+```
+
+Другие опции можно найти в документации функции [`configure`][3].
+
+
+## Установка библиотеки
+
+Highlight.js можно использовать в браузере прямо с CDN хостинга или скачать
+индивидуальную сборку, а также установив модуль на сервере. На
+[страница загрузки][4] подробно описаны все варианты.
+
+Обратите внимание, что библиотека не предназначена для использования в виде
+исходного кода на GitHub, а требует отдельной сборки. Если вам не подходит ни
+один из готовых вариантов, читайте [документацию по сборке][5].
+
+
+## Лицензия
+
+Highlight.js распространяется под лицензией BSD. Подробнее читайте файл
+[LICENSE][10].
+
+
+## Ссылки
+
+Официальный сайт билиотеки расположен по адресу .
+
+Более подробная документация по API и другим темам расположена на
+.
+
+Авторы и контрибьютора перечислена в файле [AUTHORS.ru.txt][9] file.
+
+[1]: http://highlightjs.readthedocs.org/en/latest/api.html#inithighlightingonload
+[2]: http://highlightjs.readthedocs.org/en/latest/api.html#highlightblock-block
+[3]: http://highlightjs.readthedocs.org/en/latest/api.html#configure-options
+[4]: https://highlightjs.org/download/
+[5]: http://highlightjs.readthedocs.org/en/latest/building-testing.html
+[8]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html
+[9]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.ru.txt
+[10]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE
diff --git a/sec/Common_Content/scripts/highlight.js/highlight.pack.js b/sec/Common_Content/scripts/highlight.js/highlight.pack.js
new file mode 100644
index 000000000..a98ad1e71
--- /dev/null
+++ b/sec/Common_Content/scripts/highlight.js/highlight.pack.js
@@ -0,0 +1,3 @@
+/*! highlight.js v9.2.0 | BSD3 License | git.io/hljslicense */
+!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/&/gm,"&").replace(//gm,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){return/^(no-?highlight|plain|text)$/i.test(e)}function i(e){var n,t,r,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=/\blang(?:uage)?-([\w-]+)\b/i.exec(i))return w(t[1])?t[1]:"no-highlight";for(i=i.split(/\s+/),n=0,r=i.length;r>n;n++)if(w(i[n])||a(i[n]))return i[n]}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset"}function u(e){f+=""+t(e)+">"}function c(e){("start"==e.event?o:u)(e.node)}for(var s=0,f="",l=[];e.length||r.length;){var g=i();if(f+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){l.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);l.reverse().forEach(o)}else"start"==g[0].event?l.push(g[0].node):l.pop(),c(g.splice(0,1)[0])}return f+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\b\w+\b/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var f=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=f.length?t(f.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){for(var t=0;t";return i+=e+'">',i+n+o}function h(){if(!k.k)return n(M);var e="",t=0;k.lR.lastIndex=0;for(var r=k.lR.exec(M);r;){e+=n(M.substr(t,r.index-t));var a=g(k,r);a?(B+=a[1],e+=p(a[0],n(r[0]))):e+=n(r[0]),t=k.lR.lastIndex,r=k.lR.exec(M)}return e+n(M.substr(t))}function d(){var e="string"==typeof k.sL;if(e&&!R[k.sL])return n(M);var t=e?f(k.sL,M,!0,y[k.sL]):l(M,k.sL.length?k.sL:void 0);return k.r>0&&(B+=t.r),e&&(y[k.sL]=t.top),p(t.language,t.value,!1,!0)}function b(){L+=void 0!==k.sL?d():h(),M=""}function v(e,n){L+=e.cN?p(e.cN,"",!0):"",k=Object.create(e,{parent:{value:k}})}function m(e,n){if(M+=e,void 0===n)return b(),0;var t=o(n,k);if(t)return t.skip?M+=n:(t.eB&&(M+=n),b(),t.rB||t.eB||(M=n)),v(t,n),t.rB?0:n.length;var r=u(k,n);if(r){var a=k;a.skip?M+=n:(a.rE||a.eE||(M+=n),b(),a.eE&&(M=n));do k.cN&&(L+="
+ Red Hat Quay is built for enterprise use cases where content governance and security are two major focus areas.
+
+ This guide provides guidance for enhancing the security of your Red Hat Quay deployment. The following topics are covered:
+
+ Adjusting repository visibility
+
+ Creating and managing robot accounts
+
+ Creating self-signed Certificate Authorities
+
+ Configuring custom SSL/TLS certificates for standalone Red Hat Quay deployments
+
+ Configuring custom SSL/TLS certificates for Red Hat Quay on OpenShift Container Platform
+
+ Adding additional Certificate Authorities to the Red Hat Quay container
+
+ Adding additional Certificate Authorities to Red Hat Quay on OpenShift Container Platform
+
+ Clair vulnerability reporting
+
Chapter 1. Red Hat Quay permissions model
+ Red Hat Quay’s permission model provides fine-grained access control over repositories and the content of those repositories, helping ensure secure collaboration and automation. Red Hat Quay administrators can grant users and robot accounts one of the following levels of access:
+
+ Read: Allows users, robots, and teams to pull images.
+
+ Write: Allows users, robots, and teams to push images.
+
+ Admin: Provides users, robots, and teams administrative privileges.
+
Note
+ Administrative users can delegate new permissions for existing users and teams, change existing permissions, and revoke permissions when necessary
+
+ Collectively, these levels of access provide users or robot accounts the ability to perform specific tasks, like pulling images, pushing new versions of an image into the registry, or managing the settings of a repository. These permissions can be delegated across the entire organization and on specific repositories. For example, Read permissions can be set to a specific team within the organization, while Admin permissions can be given to all users across all repositories within the organization.
+
1.1. Red Hat Quay teams overview
+ In Red Hat Quay a team is a group of users with shared permissions, allowing for efficient management and collaboration on projects. Teams can help streamline access control and project management within organizations and repositories. They can be assigned designated permissions and help ensure that members have the appropriate level of access to their repositories based on their roles and responsibilities.
+
1.1.1. Setting a team role by using the UI
+ After you have created a team, you can set the role of that team within the Organization.
+
Prerequisites
+ You have created a team.
+
Procedure
+ On the Red Hat Quay landing page, click the name of your Organization.
+
+ In the navigation pane, click Teams and Membership.
+
+ Select the TEAM ROLE drop-down menu, as shown in the following figure:
+
+
+
+ For the selected team, choose one of the following roles:
+
+ Admin. Full administrative access to the organization, including the ability to create teams, add members, and set permissions.
+
+ Member. Inherits all permissions set for the team.
+
+ Creator. All member permissions, plus the ability to create new repositories.
+
1.1.1.1. Managing team members and repository permissions
+ Use the following procedure to manage team members and set repository permissions.
+
+ On the Teams and membership page of your organization, you can also manage team members and set repository permissions.
+
+ Click the kebab menu, and select one of the following options:
+
+ Manage Team Members. On this page, you can view all members, team members, robot accounts, or users who have been invited. You can also add a new team member by clicking Add new member.
+
+ Set repository permissions. On this page, you can set the repository permissions to one of the following:
+
+ None. Team members have no permission to the repository.
+
+ Read. Team members can view and pull from the repository.
+
+ Write. Team members can read (pull) from and write (push) to the repository.
+
+ Admin. Full access to pull from, and push to, the repository, plus the ability to do administrative tasks associated with the repository.
+
+ Delete. This popup windows allows you to delete the team by clicking Delete.
+
1.1.2. Setting the role of a team within an organization by using the API
+ Use the following procedure to view and set the role a team within an organization using the API.
+
+ You have set BROWSER_API_CALLS_XHR_ONLY: false in your config.yaml file.
+
Procedure
+ Enter the following GET /api/v1/organization/{orgname}/team/{teamname}/permissions command to return a list of repository permissions for the organization’s team. Note that your team must have been added to a repository for this command to return information.
+
1.2. Creating and managing default permissions by using the UI
+ Default permissions define permissions that should be granted automatically to a repository when it is created, in addition to the default of the repository’s creator. Permissions are assigned based on the user who created the repository.
+
+ Use the following procedure to create default permissions using the Red Hat Quay v2 UI.
+
Procedure
+ Click the name of an organization.
+
+ Click Default permissions.
+
+ Click Create default permissions. A toggle drawer appears.
+
+ Select either Anyone or Specific user to create a default permission when a repository is created.
+
+ If selecting Anyone, the following information must be provided:
+
+ Applied to. Search, invite, or add a user/robot/team.
+
+ Permission. Set the permission to one of Read, Write, or Admin.
+
+ If selecting Specific user, the following information must be provided:
+
+ Repository creator. Provide either a user or robot account.
+
+ Applied to. Provide a username, robot account, or team name.
+
+ Permission. Set the permission to one of Read, Write, or Admin.
+
+ Click Create default permission. A confirmation box appears, returning the following alert: Successfully created default permission for creator.
+
1.3. Creating and managing default permissions by using the API
+ Use the following procedures to manage default permissions using the Red Hat Quay API.
+
+ Enter the following command to update a default permission using the PUT /api/v1/organization/{orgname}/prototypes/{prototypeid} endpoint, for example, if you want to change the permission type. You must include the ID that was returned when you created the policy.
+
1.4. Adjusting access settings for a repository by using the UI
+ Use the following procedure to adjust access settings for a user or robot account for a repository using the v2 UI.
+
Prerequisites
+ You have created a user account or robot account.
+
Procedure
+ Log into Red Hat Quay.
+
+ On the v2 UI, click Repositories.
+
+ Click the name of a repository, for example, quayadmin/busybox.
+
+ Click the Settings tab.
+
+ Optional. Click User and robot permissions. You can adjust the settings for a user or robot account by clicking the dropdown menu option under Permissions. You can change the settings to Read, Write, or Admin.
+
+ Read. The User or Robot Account can view and pull from the repository.
+
+ Write. The User or Robot Account can read (pull) from and write (push) to the repository.
+
+ Admin. The User or Robot account has access to pull from, and push to, the repository, plus the ability to do administrative tasks associated with the repository.
+
1.5. Adjusting access settings for a repository by using the API
+ Use the following procedure to adjust access settings for a user or robot account for a repository by using the API.
+
Prerequisites
+ You have created a user account or robot account.
+
{"message":"User does not have permission for repo."}
+
Chapter 2. Red Hat Quay repository overview
+ A repository provides a central location for storing a related set of container images. These images can be used to build applications along with their dependencies in a standardized format.
+
+ Repositories are organized by namespaces. Each namespace can have multiple repositories. For example, you might have a namespace for your personal projects, one for your company, or one for a specific team within your organization.
+
+ Private repositories provide control over the users that have access to your images by allowing you to define users or teams who can push to, or pull from, the repository, thereby enhancing the security of your registry.
+
2.1. Adjusting repository visibility by using the UI
+ You can adjust the visibility of a repository to make it either public of private by using the Red Hat Quay UI.
+
Procedure
+ On the Red Hat Quay UI, click Repositories in the navigation pane.
+
+ Click the name of a repository.
+
+ Click Settings in the navigation pane.
+
+ Click Repository visibility.
+
+ Click Make private. The repository is made private, and only users on the permissions list can view and interact with it.
+
2.2. Adjusting repository visibility by using the API
+ Robot Accounts are used to set up automated access to the repositories in your Red Hat Quay. registry. They are similar to OpenShift Container Platform service accounts.
+
+ Setting up a Robot Account results in the following:
+
+ Credentials are generated that are associated with the Robot Account.
+
+ Repositories and images that the Robot Account can push and pull images from are identified.
+
+ Generated credentials can be copied and pasted to use with different container clients, such as Docker, Podman, Kubernetes, Mesos, and so on, to access each defined repository.
+
+ Robot Accounts can help secure your Red Hat Quay registry by offering various security advantages, such as the following:
+
+ Specifying repository access.
+
+ Granular permissions, such as Read (pull) or Write (push) access. They can also be equipped with Admin permissions if warranted.
+
+ Designed for CI/CD pipelines, system integrations, and other automation tasks, helping avoid credential exposure in scripts, pipelines, or other environment variables.
+
+ Robot Accounts use tokens instead of passwords, which provides the ability for an administrator to revoke the token in the event that it is compromised.
+
+ Each Robot Account is limited to a single user namespace or Organization. For example, the Robot Account could provide access to all repositories for the user quayadmin. However, it cannot provide access to repositories that are not in the user’s list of repositories.
+
+ Robot Accounts can be created using the Red Hat Quay UI, or through the CLI using the Red Hat Quay API.
+
3.1. Creating a robot account by using the UI
+ Use the following procedure to create a robot account using the v2 UI.
+
Procedure
+ On the v2 UI, click Organizations.
+
+ Click the name of the organization that you will create the robot account for, for example, test-org.
+
+ In the Provide a name for your robot account box, enter a name, for example, robot1. The name of your Robot Account becomes a combination of your username plus the name of the robot, for example, quayadmin+robot1
+
+ Optional. The following options are available if desired:
+
+ Add the robot account to a team.
+
+ Add the robot account to a repository.
+
+ Adjust the robot account’s permissions.
+
+ On the Review and finish page, review the information you have provided, then click Review and finish. The following alert appears: Successfully created robot account with robot name: <organization_name> + <robot_name>.
+
+ Alternatively, if you tried to create a robot account with the same name as another robot account, you might receive the following error message: Error creating robot account.
+
+ Optional. You can click Expand or Collapse to reveal descriptive information about the robot account.
+
+ Optional. You can change permissions of the robot account by clicking the kebab menu → Set repository permissions. The following message appears: Successfully updated repository permission.
+
+ Optional. You can click the name of your robot account to obtain the following information:
+
+ Robot Account: Select this obtain the robot account token. You can regenerate the token by clicking Regenerate token now.
+
+ Kubernetes Secret: Select this to download credentials in the form of a Kubernetes pull secret YAML file.
+
+ Podman: Select this to copy a full podman login command line that includes the credentials.
+
+ Docker Configuration: Select this to copy a full docker login command line that includes the credentials.
+
3.2. Creating a robot account by using the Red Hat Quay API
+ Use the following procedure to create a robot account using the Red Hat Quay API.
+
+ Use the following procedure to manage, in bulk, robot account repository access by using the Red Hat Quay v2 UI.
+
Prerequisites
+ You have created a robot account.
+
+ You have created multiple repositories under a single organization.
+
Procedure
+ On the Red Hat Quay v2 UI landing page, click Organizations in the navigation pane.
+
+ On the Organizations page, select the name of the organization that has multiple repositories. The number of repositories under a single organization can be found under the Repo Count column.
+
+ On your organization’s page, click Robot accounts.
+
+ For the robot account that will be added to multiple repositories, click the kebab icon → Set repository permissions.
+
+ On the Set repository permissions page, check the boxes of the repositories that the robot account will be added to. For example:
+
+
+
+ Set the permissions for the robot account, for example, None, Read, Write, Admin.
+
+ Click save. An alert that says Success alert: Successfully updated repository permission appears on the Set repository permissions page, confirming the changes.
+
+ Return to the Organizations → Robot accounts page. Now, the Repositories column of your robot account shows the number of repositories that the robot account has been added to.
+
3.4. Disabling robot accounts by using the UI
+ Red Hat Quay administrators can manage robot accounts by disallowing users to create new robot accounts.
+
Important
+ Robot accounts are mandatory for repository mirroring. Setting the ROBOTS_DISALLOW configuration field to true breaks mirroring configurations. Users mirroring repositories should not set ROBOTS_DISALLOW to true in their config.yaml file. This is a known issue and will be fixed in a future release of Red Hat Quay.
+
+ Use the following procedure to disable robot account creation.
+
Prerequisites
+ You have created multiple robot accounts.
+
Procedure
+ Update your config.yaml field to add the ROBOTS_DISALLOW variable, for example:
+
ROBOTS_DISALLOW: true
+ Restart your Red Hat Quay deployment.
+
Verification: Creating a new robot account
+ Navigate to your Red Hat Quay repository.
+
+ Click the name of a repository.
+
+ In the navigation pane, click Robot Accounts.
+
+ Click Create Robot Account.
+
+ Enter a name for the robot account, for example, <organization-name/username>+<robot-name>.
+
+ Click Create robot account to confirm creation. The following message appears: Cannot create robot account. Robot accounts have been disabled. Please contact your administrator.
+
Verification: Logging into a robot account
+ On the command-line interface (CLI), attempt to log in as one of the robot accounts by entering the following command:
+
...
+DEBU[0000] error logging into "quay-server.example.com": unable to retrieve auth token: invalid username/password: unauthorized: Robot accounts have been disabled. Please contact your administrator.
3.5. Regenerating a robot account token by using the Red Hat Quay API
+ Use the following procedure to regenerate a robot account token using the Red Hat Quay API.
+
+ The CLI does not return information when deleting a robot account with the API. To confirm deletion, you can check the Red Hat Quay UI, or you can enter the following GET /api/v1/organization/{orgname}/robots command to see if details are returned for the robot account:
+
$ curl -X GET -H "Authorization: Bearer <bearer_token>" "https://<quay-server.example.com>/api/v1/organization/<organization_name>/robots"
+ The CLI does not return information when deleting a robot account for the current user with the API. To confirm deletion, you can check the Red Hat Quay UI, or you can enter the following GET /api/v1/user/robots/{robot_shortname} command to see if details are returned for the robot account:
+
{"message":"Could not find robot with specified username"}
Chapter 4. SSL and TLS for Red Hat Quay
+ The Secure Sockets Layer (SSL) protocol was originally developed by Netscape Corporation to provide a mechanism for secure communication over the Internet. Subsequently, the protocol was adopted by the Internet Engineering Task Force (IETF) and renamed to Transport Layer Security (TLS).
+
+ TLS (Transport Layer Security) is a cryptographic protocol used to secure network communications. When hardening system security settings by configuring preferred key-exchange protocols, authentication methods, and encryption algorithms, it is necessary to bear in mind that the broader the range of supported clients, the lower the resulting security. Conversely, strict security settings lead to limited compatibility with clients, which can result in some users being locked out of the system. Be sure to target the strictest available configuration and only relax it when it is required for compatibility reasons.
+
+ Red Hat Quay can be configured to use SSL/TLS certificates to ensure secure communication between clients and the Red Hat Quay server. This configuration involves the use of valid SSL/TLS certificates, which can be obtained from a trusted Certificate Authority (CA) or generated as self-signed certificates for internal use.
+
4.1. Creating a Certificate Authority
+ Use the following procedure to set up your own CA and use it to issue a server certificate for your domain. This allows you to secure communications with SSL/TLS using your own certificates.
+
Procedure
+ Generate the root CA key by entering the following command:
+
$ openssl genrsa -out rootCA.key 2048
+ Generate the root CA certificate by entering the following command:
+
+ Enter the information that will be incorporated into your certificate request, including the server hostname, for example:
+
Country Name (2 letter code) [XX]:IE
+State or Province Name (full name) []:GALWAY
+Locality Name (eg, city) [Default City]:GALWAY
+Organization Name (eg, company) [Default Company Ltd]:QUAY
+Organizational Unit Name (eg, section) []:DOCS
+Common Name (eg, your name or your server's hostname) []:quay-server.example.com
+ Generate the server key by entering the following command:
+
$ openssl genrsa -out ssl.key 2048
+ Generate a signing request by entering the following command:
+
$ openssl req -new -key ssl.key -out ssl.csr
+ Enter the information that will be incorporated into your certificate request, including the server hostname, for example:
+
Country Name (2 letter code) [XX]:IE
+State or Province Name (full name) []:GALWAY
+Locality Name (eg, city) [Default City]:GALWAY
+Organization Name (eg, company) [Default Company Ltd]:QUAY
+Organizational Unit Name (eg, section) []:DOCS
+Common Name (eg, your name or your server's hostname) []:quay-server.example.com
+Email Address []:
+ Create a configuration file openssl.cnf, specifying the server hostname, for example:
+
4.2. Configuring SSL/TLS for standalone Red Hat Quay deployments
+ For standalone Red Hat Quay deployments, SSL/TLS certificates must be configured by using the command-line interface and by updating your config.yaml file manually.
+
4.2.1. Configuring custom SSL/TLS certificates by using the command line interface
+ SSL/TLS must be configured by using the command-line interface (CLI) and updating your config.yaml file manually.
+
Prerequisites
+ You have created a certificate authority and signed the certificate.
+
Procedure
+ Copy the certificate file and primary key file to your configuration directory, ensuring they are named ssl.cert and ssl.key respectively:
+
4.2.2. Configuring Podman to trust the Certificate Authority
+ Podman uses two paths to locate the Certificate Authority (CA) file: /etc/containers/certs.d/ and /etc/docker/certs.d/. Use the following procedure to configure Podman to trust the CA.
+
Procedure
+ Copy the root CA file to one of /etc/containers/certs.d/ or /etc/docker/certs.d/. Use the exact path determined by the server hostname, and name the file ca.crt:
+
4.3. Configuring custom SSL/TLS certificates for Red Hat Quay on OpenShift Container Platform
+ When Red Hat Quay is deployed on OpenShift Container Platform, the tls component of the QuayRegistry custom resource definition (CRD) is set to managed by default. As a result, OpenShift Container Platform’s Certificate Authority is used to create HTTPS endpoints and to rotate SSL/TLS certificates.
+
+ You can configure custom SSL/TLS certificates before or after the initial deployment of Red Hat Quay on OpenShift Container Platform. This process involves creating or updating the configBundleSecret resource within the QuayRegistry YAML file to integrate your custom certificates and setting the tls component to unmanaged.
+
Important
+ When configuring custom SSL/TLS certificates for Red Hat Quay, administrators are responsible for certificate rotation.
+
+ The following procedures enable you to apply custom SSL/TLS certificates to ensure secure communication and meet specific security requirements for your Red Hat Quay on OpenShift Container Platform deployment. These steps assumed you have already created a Certificate Authority (CA) bundle or an ssl.key, and an ssl.cert. The procedure then shows you how to integrate those files into your Red Hat Quay on OpenShift Container Platform deployment, which ensures that your registry operates with the specified security settings and conforms to your organization’s SSL/TLS policies.
+
Note
+ The following procedure is used for securing Red Hat Quay with an HTTPS certificate. Note that this differs from managing Certificate Authority Trust Bundles. CA Trust Bundles are used by system processes within the Quay container to verify certificates against trusted CAs, and ensure that services like LDAP, storage backend, and OIDC connections are trusted.
+
+ If you are adding the certificates to an existing deployment, you must include the existing config.yaml file in the new config bundle secret, even if you are not making any configuration changes.
+
4.3.1. Creating a custom SSL/TLS configBundleSecret resource
+ After creating your custom SSL/TLS certificates, you can create a custom configBundleSecret resource for Red Hat Quay on OpenShift Container Platform, which allows you to upload ssl.cert and ssl.key files.
+
Prerequisites
+ You have base64 decoded the original config bundle into a config.yaml file.
+
+ You have generated custom SSL certificates and keys.
+
Procedure
+ Create a new YAML file, for example, custom-ssl-config-bundle-secret.yaml:
+
$ touch custom-ssl-config-bundle-secret.yaml
+ Create the custom-ssl-config-bundle-secret resource.
+
+ Create the resource by entering the following command:
+
+ Optional. The --from-file=extra_ca_cert=<ca.cert> field allows Red Hat Quay to recognize custom Certificate Authority (CA) files. If you are using LDAP, OIDC, or another service that uses custom CAs, you must add them via the extra_ca_cert path. For more information, see "Adding additional Certificate Authorities to Red Hat Quay on OpenShift Container Platform."
+
+ Ensure that your QuayRegistry YAML file has been updated to use the custom SSL configBundleSecret resource, and that your and tls resource is set to false by entering the following command:
+
$ oc get quayregistry <registry_name> -n <namespace> -o yaml
Chapter 5. Adding additional Certificate Authorities for Red Hat Quay
+ Certificate Authorities (CAs) are used by Red Hat Quay to verify SSL/TLS connections with external services, like ODIC providers, LDAP providers, storage providers, and so on.
+
+ The following sections provide information about uploading additional CAs to Red Hat Quay depending on your deployment type.
+
5.1. Adding additional Certificate Authorities to the Red Hat Quay container
+ The extra_ca_certs directory is the directory where additional Certificate Authorities (CAs) can be stored to extend the set of trusted certificates. These certificates are used by Red Hat Quay to verify SSL/TLS connections with external services. When deploying Red Hat Quay, you can place the necessary CAs in this directory to ensure that connections to services like LDAP, OIDC, and storage systems are properly secured and validated.
+
+ For standalone Red Hat Quay deployments, you must create this directory and copy the additional CA certificates into that directory.
+
Prerequisites
+ You have a CA for the desired service.
+
Procedure
+ View the certificate to be added to the container by entering the following command:
+
+ Obtain the CONTAINER ID of your Quay consider by entering the following command:
+
$ podman ps
Example output
+
+
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
+5a3e82c4a75f <registry>/<repo>/quay:{productminv} "/sbin/my_init" 24 hours ago Up 18 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 443/tcp grave_keller
+
+ Restart the container by entering the following command
+
$ podman restart 5a3e82c4a75f
+ Confirm that the certificate was copied into the container namespace by running the following command:
+
5.2. Adding additional Certificate Authorities to Red Hat Quay on OpenShift Container Platform
+ On Red Hat Quay on OpenShift Container Platform, the extra_ca_certs configuration field is is used to populate additional Certificate Authorities (CAs) into the CA directory, which then adds the CAs into the system trust bundle. These certificates are used by Red Hat Quay to verify SSL/TLS connections with external services like LDAP, OIDC, and storage systems.
+
+ When deploying or redeploying Red Hat Quay on OpenShift Container Platform, you can add one, or multiple, CAs into the CA directory to ensure that external services are properly secured and validated. On Red Hat Quay on OpenShift Container Platform deployments, you must manually add the extra_ca_certs configuration field to your config.yaml file and re-upload the config.yaml to OpenShift Container Platform.
+
+ The following procedures show you how to download your existing configuration file, add additional CAs to your Red Hat Quay on OpenShift Container Platform deployment, and then re-upload the configuration file.
+
5.2.1. Downloading the existing configuration
+ The following procedure shows you how to download the existing configuration by locating the Config Bundle Secret.
+
Procedure
+ Describe the QuayRegistry resource by entering the following command:
+
+ Ensure that your QuayRegistry YAML file has been updated to use the extra CA certificate configBundleSecret resource by entering the following command:
+
$ oc get quayregistry <registry_name> -n <namespace> -o yaml
5.3. Adding custom SSL/TLS certificates when Red Hat Quay is deployed on Kubernetes
+ When deployed on Kubernetes, Red Hat Quay mounts in a secret as a volume to store config assets. Currently, this breaks the upload certificate function of the superuser panel.
+
+ As a temporary workaround, base64 encoded certificates can be added to the secret after Red Hat Quay has been deployed.
+
+ Use the following procedure to add custom SSL/TLS certificates when Red Hat Quay is deployed on Kubernetes.
+
Prerequisites
+ Red Hat Quay has been deployed.
+
+ You have a custom ca.crt file.
+
Procedure
+ Base64 encode the contents of an SSL/TLS certificate by entering the following command:
+
+ Use the kubectl delete command to remove all Red Hat Quay pods. For example:
+
$ kubectl delete pod quay-operator.v3.7.1-6f9d859bd-p5ftc quayregistry-clair-postgres-7487f5bd86-xnxpr quayregistry-quay-app-upgrade-xq2v6 quayregistry-quay-database-859d5445ff-cqthr quayregistry-quay-redis-84f888776f-hhgms
+ Afterwards, the Red Hat Quay deployment automatically schedules replace pods with the new certificate data.
+
Chapter 6. Clair security scanner
+ Clair v4 (Clair) is an open source application that leverages static code analyses for parsing image content and reporting vulnerabilities affecting the content. Clair is packaged with Red Hat Quay and can be used in both standalone and Operator deployments. It can be run in highly scalable configurations, where components can be scaled separately as appropriate for enterprise environments.
+
+ The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
+
+ Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
+
+ Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
+
+ Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
+
+ Java® is a registered trademark of Oracle and/or its affiliates.
+
+ XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
+
+ MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
+
+ Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
+
+ The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
+
+ All other trademarks are the property of their respective owners.
+