JGirault has uploaded a new change for review. https://gerrit.wikimedia.org/r/268770
Change subject: Revert "Adding postCSS & changing blue." ...................................................................... Revert "Adding postCSS & changing blue." This reverts commit 998d7ce74c1f68397a52434ce9b85064de7d0008. Change-Id: Ib011b69ba5eb6d502509bcdcdf0eee7c52b4cf07 --- D dev/wikipedia.org/assets/css/README.txt R dev/wikipedia.org/assets/css/base.css R dev/wikipedia.org/assets/css/buttons.css R dev/wikipedia.org/assets/css/forms.css R dev/wikipedia.org/assets/css/pab1.css R dev/wikipedia.org/assets/css/pab2.css D dev/wikipedia.org/assets/css/style.css R dev/wikipedia.org/assets/css/wm-portal.css D dev/wikipedia.org/assets/cssnext/README.txt D dev/wikipedia.org/assets/cssnext/_vars.css D dev/wikipedia.org/assets/cssnext/style.css M dev/wikipedia.org/index.handlebars M gulpfile.js M package.json M prod/wikipedia.org/index.html D tests/lint.js 16 files changed, 27 insertions(+), 1,001 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/wikimedia/portals refs/changes/70/268770/1 diff --git a/dev/wikipedia.org/assets/css/README.txt b/dev/wikipedia.org/assets/css/README.txt deleted file mode 100644 index c7e71c0..0000000 --- a/dev/wikipedia.org/assets/css/README.txt +++ /dev/null @@ -1,3 +0,0 @@ -Do not edit the CSS files in this directory. -They will be overridden during the build process. -Instead, make your changes to the files in the cssnext folder. \ No newline at end of file diff --git a/dev/wikipedia.org/assets/cssnext/_base.css b/dev/wikipedia.org/assets/css/base.css similarity index 100% rename from dev/wikipedia.org/assets/cssnext/_base.css rename to dev/wikipedia.org/assets/css/base.css diff --git a/dev/wikipedia.org/assets/cssnext/_buttons.css b/dev/wikipedia.org/assets/css/buttons.css similarity index 100% rename from dev/wikipedia.org/assets/cssnext/_buttons.css rename to dev/wikipedia.org/assets/css/buttons.css diff --git a/dev/wikipedia.org/assets/cssnext/_forms.css b/dev/wikipedia.org/assets/css/forms.css similarity index 100% rename from dev/wikipedia.org/assets/cssnext/_forms.css rename to dev/wikipedia.org/assets/css/forms.css diff --git a/dev/wikipedia.org/assets/cssnext/_pab1.css b/dev/wikipedia.org/assets/css/pab1.css similarity index 100% rename from dev/wikipedia.org/assets/cssnext/_pab1.css rename to dev/wikipedia.org/assets/css/pab1.css diff --git a/dev/wikipedia.org/assets/cssnext/_pab2.css b/dev/wikipedia.org/assets/css/pab2.css similarity index 100% rename from dev/wikipedia.org/assets/cssnext/_pab2.css rename to dev/wikipedia.org/assets/css/pab2.css diff --git a/dev/wikipedia.org/assets/css/style.css b/dev/wikipedia.org/assets/css/style.css deleted file mode 100644 index cdf47bc..0000000 --- a/dev/wikipedia.org/assets/css/style.css +++ /dev/null @@ -1,915 +0,0 @@ -/** -* Colors from https://phabricator.wikimedia.org/diffusion/WMUI/browse/master/base.less -*/ -/*! -Pure v0.6.1-pre -Copyright 2014 Yahoo! Inc. All rights reserved. -Licensed under the BSD License. -https://github.com/yahoo/pure/blob/master/LICENSE.md -*/ -/*! -normalize.css v^3.0 | MIT License | git.io/normalize -Copyright (c) Nicolas Gallagher and Jonathan Neal -*/ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS and IE text size adjust after device orientation change, - * without disabling user zoom. - */ -html { - font-family: sans-serif; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} -/** - * Remove default margin. - */ -body { - margin: 0; -} -/* HTML5 display definitions - ========================================================================== */ -/** - * Correct `block` display not defined for any HTML5 element in IE 8/9. - * Correct `block` display not defined for `details` or `summary` in IE 10/11 - * and Firefox. - * Correct `block` display not defined for `main` in IE 11. - */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -/** - * 1. Correct `inline-block` display not defined in IE 8/9. - * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. - */ -audio, -canvas, -progress, -video { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; -} -/** - * Address `[hidden]` styling not present in IE 8/9/10. - * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. - */ -[hidden], -template { - display: none; -} -/* Links - ========================================================================== */ -/** - * Remove the gray background color from active links in IE 10. - */ -a { - background-color: transparent; -} -/** - * Improve readability of focused elements when they are also in an - * active/hover state. - */ -a:active, -a:hover { - outline: 0; -} -/* Text-level semantics - ========================================================================== */ -/** - * Address styling not present in IE 8/9/10/11, Safari, and Chrome. - */ -abbr[title] { - border-bottom: 1px dotted; -} -/** - * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. - */ -b, -strong { - font-weight: bold; -} -/** - * Address styling not present in Safari and Chrome. - */ -dfn { - font-style: italic; -} -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari, and Chrome. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; -} -/** - * Address styling not present in IE 8/9. - */ -mark { - background: #ff0; - color: #000; -} -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 85%; /* CHANGED from 80% to 85% */ -} -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -/* Embedded content - ========================================================================== */ -/** - * Remove border when inside `a` element in IE 8/9/10. - */ -img { - border: 0; -} -/** - * Correct overflow not hidden in IE 9/10/11. - */ -svg:not(:root) { - overflow: hidden; -} -/* Grouping content - ========================================================================== */ -/** - * Address margin not present in IE 8/9 and Safari. - */ -figure { - margin: 1em 40px; -} -/** - * Address differences between Firefox and other browsers. - */ -hr { - box-sizing: content-box; - height: 0; -} -/** - * Contain overflow in all browsers. - */ -pre { - overflow: auto; -} -/** - * Address odd `em`-unit font size rendering in all browsers. - */ -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -/* Forms - ========================================================================== */ -/** - * Known limitation: by default, Chrome and Safari on OS X allow very limited - * styling of `select`, unless a `border` property is set. - */ -/** - * 1. Correct color not being inherited. - * Known issue: affects color of disabled elements. - * 2. Correct font properties not being inherited. - * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. - */ -button, -input, -optgroup, -select, -textarea { - color: inherit; /* 1 */ - font: inherit; /* 2 */ - margin: 0; /* 3 */ -} -/** - * Address `overflow` set to `hidden` in IE 8/9/10/11. - */ -button { - overflow: visible; -} -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. - * Correct `select` style inheritance in Firefox. - */ -button, -select { - text-transform: none; -} -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], -html input[disabled] { - cursor: default; -} -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ -input { - line-height: normal; -} -/** - * It's recommended that you don't attempt to style these elements. - * Firefox's implementation doesn't respect box-sizing, padding, or width. - * - * 1. Address box sizing set to `content-box` in IE 8/9/10. - * 2. Remove excess padding in IE 8/9/10. - */ -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} -/** - * Fix the cursor style for Chrome's increment/decrement buttons. For certain - * `font-size` values of the `input`, it causes the cursor style of the - * decrement button to change from `default` to `text`. - */ -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -/** - * 1. Address `appearance` set to `searchfield` in Safari and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. - */ -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - box-sizing: content-box; /* 2 */ -} -/** - * Remove inner padding and search cancel button in Safari and Chrome on OS X. - * Safari (but not Chrome) clips the cancel button when the search input has - * padding (and `textfield` appearance). - */ -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -/** - * ADDED - * - * Remove extra space between input borders and input outline. - * Needed for Safari. - */ -input[type="search"]:focus { - outline-offset: -2px; -} -/** - * Define consistent border, margin, and padding. - */ -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -/** - * 1. Correct `color` not being inherited in IE 8/9/10/11. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} -/** - * Remove default vertical scrollbar in IE 8/9/10/11. - */ -textarea { - overflow: auto; -} -/** - * Don't inherit the `font-weight` (applied by a rule above). - * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. - */ -optgroup { - font-weight: bold; -} -/* Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -/*csslint important:false*/ -/* ========================================================================== - Pure Base Extras - ========================================================================== */ -/** - * Extra rules that Pure adds on top of Normalize.css - */ -/** - * Always hide an element when it has the `hidden` HTML attribute. - */ -.hidden, -[hidden] { - display: none !important; -} -/** - * Add this class to an image to make it fit within it's fluid parent wrapper while maintaining - * aspect ratio. - */ -.pure-img { - max-width: 100%; - height: auto; - display: block; -} -/** - * This is the stylesheet for the [[m:Project portal]] templates. - * It should loosely match the style of MediaWiki's Vector theme - * for consistency. - * Colors from ./skins/Vector/screen.css - * - * Indention style: 1 tab - * - */ -body { - background-color: white; - font: 13px/1.5 sans-serif; - margin: 0.3em 0; -} -a, -a:active, -a:focus { - unicode-bidi: embed; - white-space: nowrap; - outline: 0; - color: #165c91; - text-decoration: none; -} -a:focus { - outline: 1px solid #165c91; -} -a:hover { - text-decoration: underline; -} -img { - border: none; - vertical-align: middle; -} -hr { - clear: both; - height: 0; - border: none; - border-bottom: 1px solid #aaa; - margin: 0.2em 1em; -} -/** - * Central logo area for wiki-project portals - * (e.g. where the globe is on www.wikipedia.org) - */ -.central-textlogo { - margin: 1em 0 0.3em 0; - text-align: center; - font-size: 30px; - line-height: 110%; - font-family: 'Linux Libertine', 'Hoefler Text', Georgia, 'Times New Roman', Times, serif; - font-weight: normal; - padding: 10px 0; - /* Crossed W in Linux Libertine */ - -webkit-font-feature-settings: "ss05"; - -ms-font-feature-settings: "ss05"; - font-feature-settings: "ss05"; -} -.central-featured { - position: relative; - text-align: center; - vertical-align: middle; - max-width: 100%; - width: 42em; - margin: 0 auto; - height: 26em; -} -.central-featured-logo-wrapper{ - vertical-align: middle; - line-height: 26em; -} -.central-featured-lang { - position: absolute; - width: 12em; -} -/* Make entire block clickable, surpress hover underline */ -.central-featured-lang .link-box { - display: block; - padding: 0; - text-decoration: none; -} -/* Restore underline on main label */ -.central-featured-lang .link-box:hover strong { - text-decoration: underline; -} -/* Surpress blue color */ -.central-featured-lang .link-box em, -.central-featured-lang .link-box small { - color: black; - text-decoration: none; -} -.central-featured-lang strong { - font-size: larger; -} -.central-featured-lang em { - font-style: italic; -} -.central-featured-lang .emNonItalicLang { - font-style: normal; -} -/* Serbo-Croatian is dual-script, so it needs some tweaking to fit in the top 10 ring. */ -/* .digraphic strong { - font-size: 110%; - line-height: 1em; -} -.digraphic em, -.digraphic em + br { - display: none; -} */ -.lang1 { - top: 0; - right: 60%; -} -.lang2 { - top: 0; - left: 60%; -} -.lang3 { - top: 20%; - right: 70%; -} -.lang4 { - top: 20%; - left: 70%; -} -.lang5 { - top: 40%; - right: 72%; -} -.lang6 { - top: 40%; - left: 72%; -} -.lang7 { - top: 60%; - right: 70%; -} -.lang8 { - top: 60%; - left: 70%; -} -.lang9 { - top: 80%; - right: 60%; -} -.lang10 { - top: 80%; - left: 60%; -} -/** - * Search bar below the central logo area - */ -.search-container { - float: none; - margin: 1em auto 1.5em auto; - max-width: 95%; - padding: 0.3em; - text-align: center; - vertical-align: middle; - width: 540px; -} -.search-form fieldset { - background-color: #f9f9f9; - border: 1px solid #aaa; - margin-top: 0.5em; - padding: 0.7em; - width: auto; -} -.search-form #searchInput { - font-size: 1.2em; - margin: 0; - padding: 0; - vertical-align: top; -} -.search-form select { - margin: 0 0.4em; - padding: 0; - vertical-align: middle; - max-width: 12em; - width: 12em; /* otherwise the width is inconsistent between browsers */ -} -/** - * Language lists, bookshelves, etc. - */ -.bookshelf-container { - width: 100%; - overflow: hidden; - margin: 2em 0 0.5em 0; - font-size: 13px; - font-weight: bold; - line-height: 20px; -} -.bookshelf-container .text { - padding: 0 0.5em; -} -.bookshelf { - display: block; - width: 300%; - overflow: hidden; - position: relative; - left: -100%; - text-align: center; - white-space: nowrap; -} -.bookshelf-container .bookend { - display: inline-block; - vertical-align: top; - -} -.langlist { - text-align: center; - margin: 0.5em 3em 2.5em 3em; -} -.langlist-large { - font-size: larger; -} -.langlist-tiny { - margin: 0.5em 3em 3em 3em; -} -.langlist-others { - margin: 0 3em 2em 3em; - font-weight: bold; -} -.otherprojects { - font-weight: bold; - margin: 1.5em auto; - text-align: left; - vertical-align: middle; - width: 90%; -} -.otherprojects-item { - float: left; - height: 60px; - min-width: 12em; - width: 24.75%; - line-height: 60px; -} -.otherprojects-item a { - display: block; - width: 10em; - margin: 0 auto; -} -.sprite-project-logos-wrapper{ - width: 47px; - display: -moz-inline-stack; display: inline-block; - text-align: center; - vertical-align: middle; -} -.otherprojects-item .sprite-project-logos{ - display: -moz-inline-stack; display: inline-block; - text-align: center; - vertical-align: middle; -} -.otherprojects-item .otherprojects-item-name { - vertical-align: middle; -} -.sprite-project-logos-Wikispecies-logo_sister { - background-position: -0px -324px !important; - width: 35px !important; - height: 40px !important; -} -.wm-site-info { - clear: both; - margin: 2.5em 0 2em 0; - text-align: center; - padding-top: 1.5em; -} -/** - * Style for horizontal lists (separator following item). - * @note Support for unused tags like <dt> has been stripped out, and the - * dependency on :last-child and JavaScript has been removed in favor of - * :before. - * @source mediawiki.org/wiki/Snippets/Horizontal_lists - * @revision 6 (2014-05-09) - * @author [[User:Edokter]] - */ -.hlist ul { - margin: 0; - padding: 0; -} -/* Display list items inline */ -.hlist li { - display: inline; -} -/* Display nested lists inline */ -.hlist ul ul { - display: inline; -} -/* Generate interpuncts */ -.hlist li:before { - content: " · "; - font-weight: bold; -} -.hlist li:first-child:before { - content: none; -} -/* Add parentheses around nested lists */ -.hlist li + ul:before { - content: "\00a0("; -} -.hlist li + ul:after { - content: ") "; -} -/** - * Print stylesheet - */ -@media print { - - body { - background-color: transparent; - } - - a { - color: black !important; - background: none !important; - padding: 0 !important; - } - - a:link, - a:visited { - color: #520; - background: transparent; - } - - img { - border: none; - } - -} -@media all and (max-width:480px) { - .central-textlogo { - line-height: normal; - padding: 0; - margin: 0; - height: 70px; - text-align: left; - padding-left: 84px; - position: relative; - } - .central-textlogo img { - height: 35px; - width: auto; - margin-top: 22.5px; - } - .central-featured { - width: auto; - height: auto; - padding-top: 2em; - text-align: left; - font-size: 0.8em; - margin-top: 4em; - } - .central-featured-logo { - right: 0; - left: 0.8em; - top: -70px; - margin-top: -4em; - width: 70px; - position: absolute; - } - .central-featured-lang { - right: auto; - top: auto; - position: relative; - left: auto; - text-align: left; - margin-left: 1em; - display: block; - float: left; - width: 40%; - height: 5em; - } - .search-container { - margin-top: 0; - height: 6em; - position: absolute; - top: 5em; - left: 0; - right: 0; - max-width: 100%; - width: auto; - padding: 0; - text-align: left; - } - .search-container label { - display: none; - } - .search-form #searchInput { - max-width: 40%; - vertical-align:middle; - } - .search-form #searchLanguage, - .search-form .formBtn { - max-width: 25%; - vertical-align: middle; - } - form fieldset { - margin: 0; - border-left: none; - border-right: none; - } - .language-search { - display: none; - } - .bookshelf { - width: auto; - left: auto; - overflow: hidden; - text-align: left; - } - .bookshelf-container .bookend { - width: 40px !important; - } - .bookshelf-container .bookend:last-child { - display: none; - } - .langlist a { - word-wrap: break-word; - white-space: normal; - } - .langlist { - font-size: 0.7em - } - .otherprojects-item { - width: 50%; - text-align: left; - } - .bookshelf-container, - .langlist { - margin: 1em 1em 0 1em; - text-align: left; - width: auto; - } - hr { - margin-top: 0.5em; - } -} -@media all and (max-width:240px) { - .central-featured-lang, - .otherprojects-item { - width: 100%; - } - .central-textlogo img { - width: 100px; - height: auto; - } -} -@media all and (max-width: 45em) { - .otherprojects { - width: 100%; - } - .otherprojects-item { - width: 33.33%; - } -} -@media all and (max-width: 30em) { - .otherprojects-item { - width: 50%; - } -} -@media all and (max-width: 20em) { - .otherprojects-item { - width: 100%; - } -} -@media (-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx), (min-resolution: 144dpi) { - .bookshelf-container .bookend { - background-size: 40px auto; - } -} -@media (-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (min-resolution: 2dppx), (min-resolution: 192dpi) { - .bookshelf-container .bookend { - background-size: 40px auto; - } -} -/* Subpixel borders supported in Gecko, Trident */ -@media (min--moz-device-pixel-ratio: 2), (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx), (min-resolution: 192dpi) { - #footer, - .search-form fieldset { - border-width: 0.5px; - } - - hr { - border-bottom-width: 0.5px; - } -} -/* Subpixel borders not supported in older releases of Blink, WebKit */ -@supports (-webkit-transform: rotate(30deg)) { - #footer, - .search-form fieldset { - border-width: 1px; - } - - hr { - border-bottom-width: 1px; - } -} -/* Gives the button its previous native look */ -.formBtn { - background-color: white; - border: 1px solid #E4E4E4; - border-radius: 4px; - border-top: 1px solid #e8e8e8; - border-bottom: 1px solid #CECECE; - font-size: 11px; - padding: 1px 8px; - margin-left: .3em; - vertical-align: top; -} -.formBtn .sprite-bookshelf_icons-search_icon { - display: inline-block; - vertical-align: middle; -} -.formBtn:focus { - background-color: #c0c0c0; - outline: 0; -} -.formBtn:active { - background-color: #b0b0b0; -} -/* Gives the inputs their previous look */ -.search-container .search-form #searchInput { - font-size: 13px; - padding: 1px 3px; - width: 15em; /* otherwise the width is inconsistent between browsers */ -} -#langsearch-input { - padding: 1px 2px; - font-size: 11px; - vertical-align: top; -} -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJzLmNzcyIsIl9iYXNlLmNzcyIsIl93bS1wb3J0YWwuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztFQUVFO0FDRkY7Ozs7O0VBS0U7QUFDRjs7O0VBR0U7QUFDRiw0RUFBNEU7QUFFNUU7Ozs7R0FJRztBQUVIO0VBQ0Usd0JBQXdCLENBQUMsT0FBTztFQUNoQywyQkFBMkIsQ0FBQyxPQUFPO0VBQ25DLCtCQUErQixDQUFDLE9BQU87Q0FDeEM7QUFFRDs7R0FFRztBQUVIO0VBQ0UsVUFBVTtDQUNYO0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7OztHQUtHO0FBRUg7Ozs7Ozs7Ozs7Ozs7RUFhRSxlQUFlO0NBQ2hCO0FBRUQ7OztHQUdHO0FBRUg7Ozs7RUFJRSxzQkFBc0IsQ0FBQyxPQUFPO0VBQzlCLHlCQUF5QixDQUFDLE9BQU87Q0FDbEM7QUFFRDs7O0dBR0c7QUFFSDtFQUNFLGNBQWM7RUFDZCxVQUFVO0NBQ1g7QUFFRDs7O0dBR0c7QUFFSDs7RUFFRSxjQUFjO0NBQ2Y7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSDtFQUNFLDhCQUE4QjtDQUMvQjtBQUVEOzs7R0FHRztBQUVIOztFQUVFLFdBQVc7Q0FDWjtBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0UsMEJBQTBCO0NBQzNCO0FBRUQ7O0dBRUc7QUFFSDs7RUFFRSxrQkFBa0I7Q0FDbkI7QUFFRDs7R0FFRztBQUVIO0VBQ0UsbUJBQW1CO0NBQ3BCO0FBRUQ7OztHQUdHO0FBRUg7RUFDRSxlQUFlO0VBQ2YsaUJBQWlCO0NBQ2xCO0FBRUQ7O0dBRUc7QUFFSDtFQUNFLGlCQUFpQjtFQUNqQixZQUFZO0NBQ2I7QUFFRDs7R0FFRztBQUVIO0VBQ0UsZUFBZSxDQUFDLDZCQUE2QjtDQUM5QztBQUVEOztHQUVHO0FBRUg7O0VBRUUsZUFBZTtFQUNmLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIseUJBQXlCO0NBQzFCO0FBRUQ7RUFDRSxZQUFZO0NBQ2I7QUFFRDtFQUNFLGdCQUFn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QixvQkFBb0I7Q0FDdkI7QUFDRDtJQUNJLHNCQUFzQjtJQUN0Qix1QkFBdUI7Q0FDMUI7QUFDRDtJQUNJLDBCQUEwQjtJQUMxQixXQUFXO0NBQ2Q7QUFDRDtJQUNJLDBCQUEwQjtDQUM3QjtBQUVELDBDQUEwQztBQUMxQztJQUNJLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsWUFBWSxDQUFDLDBEQUEwRDtDQUMxRTtBQUNEO0lBQ0ksaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixvQkFBb0I7Q0FDdkIiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4qIENvbG9ycyBmcm9tIGh0dHBzOi8vcGhhYnJpY2F0b3Iud2lraW1lZGlhLm9yZy9kaWZmdXNpb24vV01VSS9icm93c2UvbWFzdGVyL2Jhc2UubGVzc1xuKi9cbjpyb290IHtcbiAgICAtLWMtcHJpbWFyeTogIzE2NWM5MTtcbn0iLCIvKiFcblB1cmUgdjAuNi4xLXByZVxuQ29weXJpZ2h0IDIwMTQgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZS5cbmh0dHBzOi8vZ2l0aHViLmNvbS95YWhvby9wdXJlL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWRcbiovXG4vKiFcbm5vcm1hbGl6ZS5jc3Mgdl4zLjAgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemVcbkNvcHlyaWdodCAoYykgTmljb2xhcyBHYWxsYWdoZXIgYW5kIEpvbmF0aGFuIE5lYWxcbiovXG4vKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKi9cblxuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG4gKiBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBGaXJlZm94IDwgMjIuXG4gKi9cblxuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkcmVzcyB2YXJpYWJsZSBgaDFgIGZvbnQtc2l6ZSBhbmQgbWFyZ2luIHdpdGhpbiBgc2VjdGlvbmAgYW5kIGBhcnRpY2xlYFxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogI2ZmMDtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDg1JTsgLyogQ0hBTkdFRCBmcm9tIDgwJSB0byA4NSUgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXI6IDA7XG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxuICogc3R5bGluZyBvZiBgc2VsZWN0YCwgdW5sZXNzIGEgYGJvcmRlcmAgcHJvcGVydHkgaXMgc2V0LlxuICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xuICBtYXJnaW46IDA7IC8qIDMgKi9cbn1cblxuLyoqXG4gKiBBZGRyZXNzIGBvdmVyZmxvd2Agc2V0IHRvIGBoaWRkZW5gIGluIElFIDgvOS8xMC8xMS5cbiAqL1xuXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogQURERURcbiAqXG4gKiBSZW1vdmUgZXh0cmEgc3BhY2UgYmV0d2VlbiBpbnB1dCBib3JkZXJzIGFuZCBpbnB1dCBvdXRsaW5lLlxuICogTmVlZGVkIGZvciBTYWZhcmkuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMge1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm9yZGVyOiAwOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLypjc3NsaW50IGltcG9ydGFudDpmYWxzZSovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQdXJlIEJhc2UgRXh0cmFzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEV4dHJhIHJ1bGVzIHRoYXQgUHVyZSBhZGRzIG9uIHRvcCBvZiBOb3JtYWxpemUuY3NzXG4gKi9cblxuLyoqXG4gKiBBbHdheXMgaGlkZSBhbiBlbGVtZW50IHdoZW4gaXQgaGFzIHRoZSBgaGlkZGVuYCBIVE1MIGF0dHJpYnV0ZS5cbiAqL1xuXG4uaGlkZGVuLFxuW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBBZGQgdGhpcyBjbGFzcyB0byBhbiBpbWFnZSB0byBtYWtlIGl0IGZpdCB3aXRoaW4gaXQncyBmbHVpZCBwYXJlbnQgd3JhcHBlciB3aGlsZSBtYWludGFpbmluZ1xuICogYXNwZWN0IHJhdGlvLlxuICovXG4ucHVyZS1pbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKipcbiAqIFRoaXMgaXMgdGhlIHN0eWxlc2hlZXQgZm9yIHRoZSBbW206UHJvamVjdCBwb3J0YWxdXSB0ZW1wbGF0ZXMuXG4gKiBJdCBzaG91bGQgbG9vc2VseSBtYXRjaCB0aGUgc3R5bGUgb2YgTWVkaWFXaWtpJ3MgVmVjdG9yIHRoZW1lXG4gKiBmb3IgY29uc2lzdGVuY3kuXG4gKiBDb2xvcnMgZnJvbSAuL3NraW5zL1ZlY3Rvci9zY3JlZW4uY3NzXG4gKlxuICogSW5kZW50aW9uIHN0eWxlOiAxIHRhYlxuICpcbiAqL1xuXG5ib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBmb250OiAxM3B4LzEuNSBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbjogMC4zZW0gMDtcbn1cblxuYSxcbmE6YWN0aXZlLFxuYTpmb2N1cyB7XG4gICAgdW5pY29kZS1iaWRpOiBlbWJlZDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG91dGxpbmU6IDA7XG4gICAgY29sb3I6IHZhcigtLWMtcHJpbWFyeSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuYTpmb2N1cyB7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWMtcHJpbWFyeSk7XG59XG5cbmE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG5pbWcge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5ociB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTtcbiAgICBtYXJnaW46IDAuMmVtIDFlbTtcbn1cblxuLyoqXG4gKiBDZW50cmFsIGxvZ28gYXJlYSBmb3Igd2lraS1wcm9qZWN0IHBvcnRhbHNcbiAqIChlLmcuIHdoZXJlIHRoZSBnbG9iZSBpcyBvbiB3d3cud2lraXBlZGlhLm9yZylcbiAqL1xuLmNlbnRyYWwtdGV4dGxvZ28ge1xuICAgIG1hcmdpbjogMWVtIDAgMC4zZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMTAlO1xuICAgIGZvbnQtZmFtaWx5OiAnTGludXggTGliZXJ0aW5lJywgJ0hvZWZsZXIgVGV4dCcsIEdlb3JnaWEsICdUaW1lcyBOZXcgUm9tYW4nLCBUaW1lcywgc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgLyogQ3Jvc3NlZCBXIGluIExpbnV4IExpYmVydGluZSAqL1xuICAgIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcInNzMDU9MVwiOyAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJzczA1XCI7XG4gICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6IFwic3MwNVwiO1xuICAgIC1tcy1mb250LWZlYXR1cmUtc2V0dGluZ3M6IFwic3MwNVwiO1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJzczA1XCI7XG59XG5cbi5jZW50cmFsLWZlYXR1cmVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiA0MmVtO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGhlaWdodDogMjZlbTtcbn1cblxuLmNlbnRyYWwtZmVhdHVyZWQtbG9nby13cmFwcGVye1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbGluZS1oZWlnaHQ6IDI2ZW07XG59XG5cbi5jZW50cmFsLWZlYXR1cmVkLWxhbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTJlbTtcbn1cblxuLyogTWFrZSBlbnRpcmUgYmxvY2sgY2xpY2thYmxlLCBzdXJwcmVzcyBob3ZlciB1bmRlcmxpbmUgKi9cbi5jZW50cmFsLWZlYXR1cmVkLWxhbmcgLmxpbmstYm94IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi8qIFJlc3RvcmUgdW5kZXJsaW5lIG9uIG1haW4gbGFiZWwgKi9cbi5jZW50cmFsLWZlYXR1cmVkLWxhbmcgLmxpbmstYm94OmhvdmVyIHN0cm9uZyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4vKiBTdXJwcmVzcyBibHVlIGNvbG9yICovXG4uY2VudHJhbC1mZWF0dXJlZC1sYW5nIC5saW5rLWJveCBlbSxcbi5jZW50cmFsLWZlYXR1cmVkLWxhbmcgLmxpbmstYm94IHNtYWxsIHtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uY2VudHJhbC1mZWF0dXJlZC1sYW5nIHN0cm9uZyB7XG4gICAgZm9udC1zaXplOiBsYXJnZXI7XG59XG5cbi5jZW50cmFsLWZlYXR1cmVkLWxhbmcgZW0ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmNlbnRyYWwtZmVhdHVyZWQtbGFuZyAuZW1Ob25JdGFsaWNMYW5nIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi8qIFNlcmJvLUNyb2F0aWFuIGlzIGR1YWwtc2NyaXB0LCBzbyBpdCBuZWVkcyBzb21lIHR3ZWFraW5nIHRvIGZpdCBpbiB0aGUgdG9wIDEwIHJpbmcuICovXG4vKiAuZGlncmFwaGljIHN0cm9uZyB7XG4gICAgZm9udC1zaXplOiAxMTAlO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG59XG4uZGlncmFwaGljIGVtLFxuLmRpZ3JhcGhpYyBlbSArIGJyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufSAqL1xuXG4ubGFuZzEge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogNjAlO1xufVxuLmxhbmcyIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNjAlO1xufVxuLmxhbmczIHtcbiAgICB0b3A6IDIwJTtcbiAgICByaWdodDogNzAlO1xufVxuLmxhbmc0IHtcbiAgICB0b3A6IDIwJTtcbiAgICBsZWZ0OiA3MCU7XG59XG4ubGFuZzUge1xuICAgIHRvcDogNDAlO1xuICAgIHJpZ2h0OiA3MiU7XG59XG4ubGFuZzYge1xuICAgIHRvcDogNDAlO1xuICAgIGxlZnQ6IDcyJTtcbn1cbi5sYW5nNyB7XG4gICAgdG9wOiA2MCU7XG4gICAgcmlnaHQ6IDcwJTtcbn1cbi5sYW5nOCB7XG4gICAgdG9wOiA2MCU7XG4gICAgbGVmdDogNzAlO1xufVxuLmxhbmc5IHtcbiAgICB0b3A6IDgwJTtcbiAgICByaWdodDogNjAlO1xufVxuLmxhbmcxMCB7XG4gICAgdG9wOiA4MCU7XG4gICAgbGVmdDogNjAlO1xufVxuXG4vKipcbiAqIFNlYXJjaCBiYXIgYmVsb3cgdGhlIGNlbnRyYWwgbG9nbyBhcmVhXG4gKi9cbi5zZWFyY2gtY29udGFpbmVyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW46IDFlbSBhdXRvIDEuNWVtIGF1dG87XG4gICAgbWF4LXdpZHRoOiA5NSU7XG4gICAgcGFkZGluZzogMC4zZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDU0MHB4O1xufVxuXG4uc2VhcmNoLWZvcm0gZmllbGRzZXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbiAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICBwYWRkaW5nOiAwLjdlbTtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLnNlYXJjaC1mb3JtICNzZWFyY2hJbnB1dCB7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4uc2VhcmNoLWZvcm0gc2VsZWN0IHtcbiAgICBtYXJnaW46IDAgMC40ZW07XG4gICAgcGFkZGluZzogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1heC13aWR0aDogMTJlbTtcbiAgICB3aWR0aDogMTJlbTsgLyogb3RoZXJ3aXNlIHRoZSB3aWR0aCBpcyBpbmNvbnNpc3RlbnQgYmV0d2VlbiBicm93c2VycyAqL1xufVxuXG4vKipcbiAqIExhbmd1YWdlIGxpc3RzLCBib29rc2hlbHZlcywgZXRjLlxuICovXG4uYm9va3NoZWxmLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDJlbSAwIDAuNWVtIDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uYm9va3NoZWxmLWNvbnRhaW5lciAudGV4dCB7XG4gICAgcGFkZGluZzogMCAwLjVlbTtcbn1cblxuLmJvb2tzaGVsZiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDMwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5ib29rc2hlbGYtY29udGFpbmVyIC5ib29rZW5kIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxufVxuXG4ubGFuZ2xpc3Qge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDAuNWVtIDNlbSAyLjVlbSAzZW07XG59XG5cbi5sYW5nbGlzdC1sYXJnZSB7XG4gICAgZm9udC1zaXplOiBsYXJnZXI7XG59XG5cbi5sYW5nbGlzdC10aW55IHtcbiAgICBtYXJnaW46IDAuNWVtIDNlbSAzZW0gM2VtO1xufVxuXG4ubGFuZ2xpc3Qtb3RoZXJzIHtcbiAgICBtYXJnaW46IDAgM2VtIDJlbSAzZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5vdGhlcnByb2plY3RzIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW46IDEuNWVtIGF1dG87XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiA5MCU7XG59XG5cbi5vdGhlcnByb2plY3RzLWl0ZW0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBtaW4td2lkdGg6IDEyZW07XG4gICAgd2lkdGg6IDI0Ljc1JTtcbiAgICBsaW5lLWhlaWdodDogNjBweDtcbn1cblxuLm90aGVycHJvamVjdHMtaXRlbSBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTBlbTtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLnNwcml0ZS1wcm9qZWN0LWxvZ29zLXdyYXBwZXJ7XG4gICAgd2lkdGg6IDQ3cHg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtc3RhY2s7IGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm90aGVycHJvamVjdHMtaXRlbSAuc3ByaXRlLXByb2plY3QtbG9nb3N7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtc3RhY2s7IGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5vdGhlcnByb2plY3RzLWl0ZW0gLm90aGVycHJvamVjdHMtaXRlbS1uYW1lIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uc3ByaXRlLXByb2plY3QtbG9nb3MtV2lraXNwZWNpZXMtbG9nb19zaXN0ZXIge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0wcHggLTMyNHB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDM1cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbn1cblxuLndtLXNpdGUtaW5mbyB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luOiAyLjVlbSAwIDJlbSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nLXRvcDogMS41ZW07XG59XG5cbi8qKlxuICogU3R5bGUgZm9yIGhvcml6b250YWwgbGlzdHMgKHNlcGFyYXRvciBmb2xsb3dpbmcgaXRlbSkuXG4gKiBAbm90ZSBTdXBwb3J0IGZvciB1bnVzZWQgdGFncyBsaWtlIDxkdD4gaGFzIGJlZW4gc3RyaXBwZWQgb3V0LCBhbmQgdGhlXG4gKlx0XHQgZGVwZW5kZW5jeSBvbiA6bGFzdC1jaGlsZCBhbmQgSmF2YVNjcmlwdCBoYXMgYmVlbiByZW1vdmVkIGluIGZhdm9yIG9mXG4gKlx0XHQgOmJlZm9yZS5cbiAqIEBzb3VyY2UgbWVkaWF3aWtpLm9yZy93aWtpL1NuaXBwZXRzL0hvcml6b250YWxfbGlzdHNcbiAqIEByZXZpc2lvbiA2ICgyMDE0LTA1LTA5KVxuICogQGF1dGhvciBbW1VzZXI6RWRva3Rlcl1dXG4gKi9cbi5obGlzdCB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG4vKiBEaXNwbGF5IGxpc3QgaXRlbXMgaW5saW5lICovXG4uaGxpc3QgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbn1cbi8qIERpc3BsYXkgbmVzdGVkIGxpc3RzIGlubGluZSAqL1xuLmhsaXN0IHVsIHVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG4vKiBHZW5lcmF0ZSBpbnRlcnB1bmN0cyAqL1xuLmhsaXN0IGxpOmJlZm9yZSB7XG4gICAgY29udGVudDogXCIgwrcgXCI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uaGxpc3QgbGk6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lO1xufVxuLyogQWRkIHBhcmVudGhlc2VzIGFyb3VuZCBuZXN0ZWQgbGlzdHMgKi9cbi5obGlzdCBsaSArIHVsOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDAwYTAoXCI7XG59XG4uaGxpc3QgbGkgKyB1bDphZnRlciB7XG4gICAgY29udGVudDogXCIpIFwiO1xufVxuXG4vKipcbiAqIFByaW50IHN0eWxlc2hlZXRcbiAqL1xuQG1lZGlhIHByaW50IHtcblxuICAgIGJvZHkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGE6bGluayxcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogIzUyMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjQ4MHB4KSB7XG4gICAgLmNlbnRyYWwtdGV4dGxvZ28ge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4NHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIC5jZW50cmFsLXRleHRsb2dvIGltZyB7XG4gICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IDIyLjVweDtcbiAgICB9XG4gICAgLmNlbnRyYWwtZmVhdHVyZWQge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nLXRvcDogMmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgICBtYXJnaW4tdG9wOiA0ZW07XG4gICAgfVxuICAgIC5jZW50cmFsLWZlYXR1cmVkLWxvZ28ge1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogMC44ZW07XG4gICAgICAgIHRvcDogLTcwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC00ZW07XG4gICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgIC5jZW50cmFsLWZlYXR1cmVkLWxhbmcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgaGVpZ2h0OiA1ZW07XG4gICAgfVxuICAgIC5zZWFyY2gtY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgaGVpZ2h0OiA2ZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1ZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICAuc2VhcmNoLWNvbnRhaW5lciBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5zZWFyY2gtZm9ybSAjc2VhcmNoSW5wdXQge1xuICAgICAgICBtYXgtd2lkdGg6IDQwJTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246bWlkZGxlO1xuICAgIH1cbiAgICAuc2VhcmNoLWZvcm0gI3NlYXJjaExhbmd1YWdlLFxuICAgIC5zZWFyY2gtZm9ybSAuZm9ybUJ0biB7XG4gICAgICAgIG1heC13aWR0aDogMjUlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgICBmb3JtIGZpZWxkc2V0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgICAubGFuZ3VhZ2Utc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmJvb2tzaGVsZiB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICAuYm9va3NoZWxmLWNvbnRhaW5lciAuYm9va2VuZCB7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5ib29rc2hlbGYtY29udGFpbmVyIC5ib29rZW5kOmxhc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAubGFuZ2xpc3QgYSB7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG4gICAgLmxhbmdsaXN0IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjdlbVxuICAgIH1cbiAgICAub3RoZXJwcm9qZWN0cy1pdGVtIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgLmJvb2tzaGVsZi1jb250YWluZXIsXG4gICAgLmxhbmdsaXN0IHtcbiAgICAgICAgbWFyZ2luOiAxZW0gMWVtIDAgMWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gICAgaHIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6MjQwcHgpIHtcbiAgICAuY2VudHJhbC1mZWF0dXJlZC1sYW5nLFxuICAgIC5vdGhlcnByb2plY3RzLWl0ZW0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLmNlbnRyYWwtdGV4dGxvZ28gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0NWVtKSB7XG4gICAgLm90aGVycHJvamVjdHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLm90aGVycHJvamVjdHMtaXRlbSB7XG4gICAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5vdGhlcnByb2plY3RzLWl0ZW0ge1xuICAgICAgICB3aWR0aDogNTAlO1xuICAgIH1cbn1cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDIwZW0pIHtcbiAgICAub3RoZXJwcm9qZWN0cy1pdGVtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG5AbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMvMiksIChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCksIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSB7XG4gICAgLmJvb2tzaGVsZi1jb250YWluZXIgLmJvb2tlbmQge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggYXV0bztcbiAgICB9XG59XG5cbkBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMiksICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG4gICAgLmJvb2tzaGVsZi1jb250YWluZXIgLmJvb2tlbmQge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggYXV0bztcbiAgICB9XG59XG5cbi8qIFN1YnBpeGVsIGJvcmRlcnMgc3VwcG9ydGVkIGluIEdlY2tvLCBUcmlkZW50ICovXG5AbWVkaWEgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSkge1xuICAgICNmb290ZXIsXG4gICAgLnNlYXJjaC1mb3JtIGZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwLjVweDtcbiAgICB9XG5cbiAgICBociB7XG4gICAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDAuNXB4O1xuICAgIH1cbn1cblxuLyogU3VicGl4ZWwgYm9yZGVycyBub3Qgc3VwcG9ydGVkIGluIG9sZGVyIHJlbGVhc2VzIG9mIEJsaW5rLCBXZWJLaXQgKi9cbkBzdXBwb3J0cyAoLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZykpIHtcbiAgICAjZm9vdGVyLFxuICAgIC5zZWFyY2gtZm9ybSBmaWVsZHNldCB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIH1cblxuICAgIGhyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgIH1cbn1cblxuLyogR2l2ZXMgdGhlIGJ1dHRvbiBpdHMgcHJldmlvdXMgbmF0aXZlIGxvb2sgKi9cbi5mb3JtQnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTRFNEU0O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U4ZThlODtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NFQ0VDRTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgcGFkZGluZzogMXB4IDhweDtcbiAgICBtYXJnaW4tbGVmdDogLjNlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLmZvcm1CdG4gLnNwcml0ZS1ib29rc2hlbGZfaWNvbnMtc2VhcmNoX2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmZvcm1CdG46Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMGMwYzA7XG4gICAgb3V0bGluZTogMDtcbn1cbi5mb3JtQnRuOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbn1cblxuLyogR2l2ZXMgdGhlIGlucHV0cyB0aGVpciBwcmV2aW91cyBsb29rICovXG4uc2VhcmNoLWNvbnRhaW5lciAuc2VhcmNoLWZvcm0gI3NlYXJjaElucHV0IHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgcGFkZGluZzogMXB4IDNweDtcbiAgICB3aWR0aDogMTVlbTsgLyogb3RoZXJ3aXNlIHRoZSB3aWR0aCBpcyBpbmNvbnNpc3RlbnQgYmV0d2VlbiBicm93c2VycyAqL1xufVxuI2xhbmdzZWFyY2gtaW5wdXQge1xuICAgIHBhZGRpbmc6IDFweCAycHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4iXX0= */ \ No newline at end of file diff --git a/dev/wikipedia.org/assets/cssnext/_wm-portal.css b/dev/wikipedia.org/assets/css/wm-portal.css similarity index 95% rename from dev/wikipedia.org/assets/cssnext/_wm-portal.css rename to dev/wikipedia.org/assets/css/wm-portal.css index 96304e6..93311d4 100644 --- a/dev/wikipedia.org/assets/cssnext/_wm-portal.css +++ b/dev/wikipedia.org/assets/css/wm-portal.css @@ -6,6 +6,14 @@ * * Indention style: 1 tab * + * Don't be afraid to document changes here with comments, this stylesheet + * is loaded through ResourceLoader on the portal pages and as such is minified + * and squeezed into a tiny package delivered from bits.wikimedia.org + * + * Usage: + * <link rel="stylesheet" href="//meta.wikimedia.org/w/load.php?debug=false&lang=en&modules=ext.gadget.wm-portal&only=styles&skin=vector&*"> + * + * (if RTL flipping is needed, replace lang=en with the correct language) */ body { @@ -20,13 +28,14 @@ unicode-bidi: embed; white-space: nowrap; outline: 0; - color: var(--c-primary); + color: #0645AD; text-decoration: none; } a:focus { - outline: 1px solid var(--c-primary); + outline: 1px solid #0645AD; } + a:hover { text-decoration: underline; } diff --git a/dev/wikipedia.org/assets/cssnext/README.txt b/dev/wikipedia.org/assets/cssnext/README.txt deleted file mode 100644 index a6e4706..0000000 --- a/dev/wikipedia.org/assets/cssnext/README.txt +++ /dev/null @@ -1,10 +0,0 @@ -The files in the directory are processed by cssnext. -style.css is the 'main' file. All other files are -treated as 'partials' that should be included in style.css -via @import statements. PostCSS-import will expand the @import -statements and merge these files in style.css. - -All other files should be treated as 'partials' and -should begin with an underscore. - -_vars.css is reserved for css variables (css custom properties). \ No newline at end of file diff --git a/dev/wikipedia.org/assets/cssnext/_vars.css b/dev/wikipedia.org/assets/cssnext/_vars.css deleted file mode 100644 index 037f11c..0000000 --- a/dev/wikipedia.org/assets/cssnext/_vars.css +++ /dev/null @@ -1,6 +0,0 @@ -/** -* Colors from https://phabricator.wikimedia.org/diffusion/WMUI/browse/master/base.less -*/ -:root { - --c-primary: #165c91; -} \ No newline at end of file diff --git a/dev/wikipedia.org/assets/cssnext/style.css b/dev/wikipedia.org/assets/cssnext/style.css deleted file mode 100644 index 2ab91f2..0000000 --- a/dev/wikipedia.org/assets/cssnext/style.css +++ /dev/null @@ -1,3 +0,0 @@ -@import '_vars.css'; -@import '_base.css'; -@import '_wm-portal.css'; \ No newline at end of file diff --git a/dev/wikipedia.org/index.handlebars b/dev/wikipedia.org/index.handlebars index 835e696..d83803f 100644 --- a/dev/wikipedia.org/index.handlebars +++ b/dev/wikipedia.org/index.handlebars @@ -8,7 +8,8 @@ <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="shortcut icon" href="/static/favicon/wikipedia.ico"> <link rel="license" href="//creativecommons.org/licenses/by-sa/3.0/"> -<link rel="stylesheet" href="assets/css/style.css"> +<link rel="stylesheet" href="assets/css/base.css"> +<link rel="stylesheet" href="assets/css/wm-portal.css"> <link rel="stylesheet" href="assets/css/sprites.css"> <!--[if lt IE 8]><style type="text/css"> diff --git a/gulpfile.js b/gulpfile.js index 8e17cf3..d49c785 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -10,8 +10,7 @@ siteStats = require( './site-stats' ), fs = require( 'fs' ), sprity = require( 'sprity' ), - postCSSNext = require( 'postcss-cssnext' ), - postCSSImport = require( 'postcss-import' ); + gulpif = require( 'gulp-if' ); var baseDir, prodDir, plugins = gulpLoadPlugins(), @@ -97,17 +96,12 @@ }; config.watch = { - sprites: [ baseDir + 'assets/img/sprite_assets/**/*' ], - cssnext: baseDir + 'assets/cssnext/*.css', - hb: [ baseDir + '*.handlebars', - baseDir + '.json', - baseDir + 'controller.js', - baseDir + 'templates/**/*' - ] + hb: [ baseDir + 'templates/*.handlebars', baseDir + '.json', baseDir + 'controller.js' ], + sprites: [ baseDir + 'assets/img/sprite_assets/**/*' ] }; config.optImage = { - src: [ baseDir + 'assets/img/*', '!' + baseDir + 'assets/img/sprite_assets' ], + src: baseDir + 'assets/img/*', pngQuantOptions: { quality: '57-95', speed: 1 }, dest: prodDir + 'assets/img' }; @@ -135,30 +129,10 @@ } ); /** - * Compiles CSSNext files into regular CSS and - * outputs them into the CSS dev folder. - */ -gulp.task( 'cssnext', function () { - - if ( !baseDir ) { - gulp.start( 'build' ); - } - - return gulp.src( baseDir + 'assets/cssnext/style.css' ) - .pipe( plugins.postcss( [ - postCSSImport(), - postCSSNext() - ], - { map: { inline: true } } - ) ) - .pipe( gulp.dest( baseDir + 'assets/css/' ) ); -} ); - -/** * Inlines assets of index.html in dev folder, * moves index.html into prod folder */ -gulp.task( 'inline-assets', [ 'compile-handlebars', 'cssnext' ], function () { +gulp.task( 'inline-assets', [ 'compile-handlebars' ], function () { return gulp.src( config.inline.src ) .pipe( plugins.inline( config.inline.options ) ) .pipe( gulp.dest( prodDir ) ); @@ -200,7 +174,7 @@ /** * Optimizes images in dev folder and moves them into prod folder */ -gulp.task( 'optimize-images', [ 'build' ], function () { +gulp.task( 'optimize-images', [ 'build', 'sprite' ], function () { return gulp.src( config.optImage.src ) .pipe( plugins.imagemin() ) .pipe( imageminPngquant( config.optImage.pngQuantOptions )() ) @@ -208,15 +182,13 @@ } ); /** - * Watches for changes in dev folder and compiles: - * - handlebars templates - * - CSSNext files + * Watches for changes in dev folder and compiles handlebars * into dev folder. */ -gulp.task( 'watch', [ 'build', 'compile-handlebars', 'sprite', 'cssnext' ], function () { +gulp.task( 'watch', [ 'build', 'compile-handlebars', 'sprite' ], function () { gulp.watch( config.watch.hb, [ 'compile-handlebars' ] ); gulp.watch( config.watch.sprites, [ 'sprite' ] ); - gulp.watch( config.watch.cssnext, [ 'cssnext' ] ); + } ); /** @@ -285,9 +257,8 @@ split: true, margin: 0 } ) - .pipe( plugins[ 'if' ]( '*.png', gulp.dest( baseDir + 'assets/img/' ), gulp.dest( baseDir + 'assets/css/' ) ) ); + .pipe( gulpif( '*.png', gulp.dest( baseDir + 'assets/img/' ), gulp.dest( baseDir + 'assets/css/' ) ) ); } ); -gulp.task( 'default', [ 'build', 'lint', 'compile-handlebars', 'sprite', 'cssnext', 'inline-assets', 'clean-prod-js', 'concat-minify-js', 'minify-html', 'optimize-images' ] ); - +gulp.task( 'default', [ 'build', 'lint', 'compile-handlebars', 'sprite', 'inline-assets', 'clean-prod-js', 'concat-minify-js', 'minify-html', 'optimize-images' ] ); gulp.task( 'test', [ 'lint' ] ); diff --git a/package.json b/package.json index 20ef7de..f0384b7 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,11 @@ { "private": true, "scripts": { - "test": "node ./tests/lint.js" + "test": "gulp lint" }, "devDependencies": { "bluebird": "^3.0.5", "del": "^2.2.0", - "cssnext": "^1.8.4", "gulp": "^3.9.0", "gulp-compile-handlebars": "^0.5.0", "gulp-downloader": "^1.0.4", @@ -18,7 +17,6 @@ "gulp-jshint": "^1.11.2", "gulp-load-plugins": "^1.0.0", "gulp-minify-css": "^1.2.1", - "gulp-postcss": "^6.0.1", "gulp-rename": "^1.2.2", "gulp-rev": "^6.0.1", "gulp-rev-replace": "^0.4.3", @@ -28,8 +26,6 @@ "imagemin-pngquant": "^4.2.0", "lwip": "0.0.8", "moment": "^2.10.6", - "postcss-cssnext": "^2.4.0", - "postcss-import": "^8.0.2", "preq": "^0.4.6", "sprity": "^1.0.8", "underscore": "^1.8.3", diff --git a/prod/wikipedia.org/index.html b/prod/wikipedia.org/index.html index 56d24cc..deee21a 100644 --- a/prod/wikipedia.org/index.html +++ b/prod/wikipedia.org/index.html @@ -8,7 +8,8 @@ <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="shortcut icon" href="/static/favicon/wikipedia.ico"> <link rel="license" href="//creativecommons.org/licenses/by-sa/3.0/"> -<style>legend,td,th{padding:0}hr,img{border:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.central-featured,.search-container,img{vertical-align:middle}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=search]:focus{outline-offset:-2px}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0}table{border-collapse:collapse;border-spacing:0}.hidden,[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}body{background-color:#fff;font:13px/1.5 sans-serif;margin:.3em 0}a,a:active,a:focus{unicode-bidi:embed;white-space:nowrap;outline:0;color:#165c91;text-decoration:none}a:focus{outline:#165c91 solid 1px}a:hover{text-decoration:underline}hr{box-sizing:content-box;clear:both;height:0;border-bottom:1px solid #aaa;margin:.2em 1em}.central-textlogo{margin:1em 0 .3em;text-align:center;font-size:30px;line-height:110%;font-family:'Linux Libertine','Hoefler Text',Georgia,'Times New Roman',Times,serif;font-weight:400;padding:10px 0;-webkit-font-feature-settings:"ss05";-ms-font-feature-settings:"ss05";font-feature-settings:"ss05"}.central-featured{position:relative;text-align:center;max-width:100%;width:42em;margin:0 auto;height:26em}.central-featured-logo-wrapper{vertical-align:middle;line-height:26em}.central-featured-lang{position:absolute;width:12em}.central-featured-lang .link-box{display:block;padding:0;text-decoration:none}.central-featured-lang .link-box:hover strong{text-decoration:underline}.central-featured-lang .link-box em,.central-featured-lang .link-box small{color:#000;text-decoration:none}.central-featured-lang strong{font-size:larger}.central-featured-lang em{font-style:italic}.central-featured-lang .emNonItalicLang{font-style:normal}.lang1{top:0;right:60%}.lang2{top:0;left:60%}.lang3{top:20%;right:70%}.lang4{top:20%;left:70%}.lang5{top:40%;right:72%}.lang6{top:40%;left:72%}.lang7{top:60%;right:70%}.lang8{top:60%;left:70%}.lang9{top:80%;right:60%}.lang10{top:80%;left:60%}.search-container{float:none;margin:1em auto 1.5em;max-width:95%;padding:.3em;text-align:center;width:540px}.search-form fieldset{background-color:#f9f9f9;border:1px solid #aaa;margin-top:.5em;padding:.7em;width:auto}.search-form #searchInput{font-size:1.2em;margin:0;padding:0;vertical-align:top}.search-form select{margin:0 .4em;padding:0;vertical-align:middle;max-width:12em;width:12em}.bookshelf-container{width:100%;overflow:hidden;margin:2em 0 .5em;font-size:13px;font-weight:700;line-height:20px}.bookshelf-container .text{padding:0 .5em}.bookshelf{display:block;width:300%;overflow:hidden;position:relative;left:-100%;text-align:center;white-space:nowrap}.bookshelf-container .bookend{display:inline-block;vertical-align:top}.langlist{text-align:center;margin:.5em 3em 2.5em}.langlist-large{font-size:larger}.langlist-tiny{margin:.5em 3em 3em}.langlist-others{margin:0 3em 2em;font-weight:700}.otherprojects{font-weight:700;margin:1.5em auto;text-align:left;vertical-align:middle;width:90%}.otherprojects-item{float:left;height:60px;min-width:12em;width:24.75%;line-height:60px}.otherprojects-item a{display:block;width:10em;margin:0 auto}.sprite-project-logos-wrapper{width:47px;display:-moz-inline-stack;display:inline-block;text-align:center;vertical-align:middle}.otherprojects-item .sprite-project-logos{display:-moz-inline-stack;display:inline-block;text-align:center;vertical-align:middle}.otherprojects-item .otherprojects-item-name{vertical-align:middle}.sprite-project-logos-Wikispecies-logo_sister{background-position:0 -324px!important;width:35px!important;height:40px!important}.wm-site-info{clear:both;margin:2.5em 0 2em;text-align:center;padding-top:1.5em}.hlist ul{margin:0;padding:0}.hlist li,.hlist ul ul{display:inline}.hlist li:before{content:" · ";font-weight:700}.hlist li:first-child:before{content:none}.hlist li+ul:before{content:"\00a0("}.hlist li+ul:after{content:") "}@media print{body{background-color:transparent}a{color:#000!important;background:0 0!important;padding:0!important}a:link,a:visited{color:#520;background:0 0}img{border:none}}@media all and (max-width:480px){.central-textlogo{line-height:normal;padding:0 0 0 84px;margin:0;height:70px;text-align:left;position:relative}.central-textlogo img{height:35px;width:auto;margin-top:22.5px}.central-featured{width:auto;height:auto;padding-top:2em;text-align:left;font-size:.8em;margin-top:4em}.central-featured-logo{right:0;left:.8em;top:-70px;margin-top:-4em;width:70px;position:absolute}.central-featured-lang{right:auto;top:auto;position:relative;left:auto;text-align:left;margin-left:1em;display:block;float:left;width:40%;height:5em}.language-search,.search-container label{display:none}.search-container{margin-top:0;height:6em;position:absolute;top:5em;left:0;right:0;max-width:100%;width:auto;padding:0;text-align:left}.search-form #searchInput{max-width:40%;vertical-align:middle}.search-form #searchLanguage,.search-form .formBtn{max-width:25%;vertical-align:middle}form fieldset{margin:0;border-left:none;border-right:none}.bookshelf{width:auto;left:auto;overflow:hidden;text-align:left}.bookshelf-container .bookend{width:40px!important}.bookshelf-container .bookend:last-child{display:none}.langlist a{word-wrap:break-word;white-space:normal}.langlist{font-size:.7em}.otherprojects-item{width:50%;text-align:left}.bookshelf-container,.langlist{margin:1em 1em 0;text-align:left;width:auto}hr{margin-top:.5em}}@media all and (max-width:240px){.central-featured-lang,.otherprojects-item{width:100%}.central-textlogo img{width:100px;height:auto}}@media all and (max-width:45em){.otherprojects{width:100%}.otherprojects-item{width:33.33%}}@media all and (max-width:30em){.otherprojects-item{width:50%}}@media all and (max-width:20em){.otherprojects-item{width:100%}}@media (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(min-resolution:1.5dppx),(min-resolution:144dpi){.bookshelf-container .bookend{background-size:40px auto}}@media (-webkit-min-device-pixel-ratio:2),(min--moz-device-pixel-ratio:2),(min-resolution:2dppx),(min-resolution:192dpi){.bookshelf-container .bookend{background-size:40px auto}}@media (min--moz-device-pixel-ratio:2),(-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx),(min-resolution:192dpi){#footer,.search-form fieldset{border-width:.5px}hr{border-bottom-width:.5px}}@supports (-webkit-transform:rotate(30deg)){#footer,.search-form fieldset{border-width:1px}hr{border-bottom-width:1px}}.formBtn{background-color:#fff;border:1px solid #E4E4E4;border-radius:4px;border-top:1px solid #e8e8e8;border-bottom:1px solid #CECECE;font-size:11px;padding:1px 8px;margin-left:.3em;vertical-align:top}.formBtn .sprite-bookshelf_icons-search_icon{display:inline-block;vertical-align:middle}.formBtn:focus{background-color:silver;outline:0}.formBtn:active{background-color:#b0b0b0}.search-container .search-form #searchInput{font-size:13px;padding:1px 3px;width:15em}#langsearch-input{padding:1px 2px;font-size:11px;vertical-align:top}</style> +<style>img,legend{border:0}legend,td,th{padding:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=search]:focus{outline-offset:-2px}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}.hidden,[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}</style> +<style>hr,img{border:none}.central-featured,.search-container,img{vertical-align:middle}body{background-color:#fff;font:13px/1.5 sans-serif;margin:.3em 0}a,a:active,a:focus{unicode-bidi:embed;white-space:nowrap;outline:0;color:#0645AD;text-decoration:none}a:focus{outline:#0645AD solid 1px}a:hover{text-decoration:underline}hr{clear:both;height:0;border-bottom:1px solid #aaa;margin:.2em 1em}.central-textlogo{margin:1em 0 .3em;text-align:center;font-size:30px;line-height:110%;font-family:'Linux Libertine','Hoefler Text',Georgia,'Times New Roman',Times,serif;font-weight:400;padding:10px 0;-moz-font-feature-settings:"ss05=1";-moz-font-feature-settings:"ss05";-webkit-font-feature-settings:"ss05";-ms-font-feature-settings:"ss05";font-feature-settings:"ss05"}.central-featured{position:relative;text-align:center;max-width:100%;width:42em;margin:0 auto;height:26em}.central-featured-logo-wrapper{vertical-align:middle;line-height:26em}.central-featured-lang{position:absolute;width:12em}.central-featured-lang .link-box{display:block;padding:0;text-decoration:none}.central-featured-lang .link-box:hover strong{text-decoration:underline}.central-featured-lang .link-box em,.central-featured-lang .link-box small{color:#000;text-decoration:none}.central-featured-lang strong{font-size:larger}.central-featured-lang em{font-style:italic}.central-featured-lang .emNonItalicLang{font-style:normal}.lang1{top:0;right:60%}.lang2{top:0;left:60%}.lang3{top:20%;right:70%}.lang4{top:20%;left:70%}.lang5{top:40%;right:72%}.lang6{top:40%;left:72%}.lang7{top:60%;right:70%}.lang8{top:60%;left:70%}.lang9{top:80%;right:60%}.lang10{top:80%;left:60%}.search-container{float:none;margin:1em auto 1.5em;max-width:95%;padding:.3em;text-align:center;width:540px}.search-form fieldset{background-color:#f9f9f9;border:1px solid #aaa;margin-top:.5em;padding:.7em;width:auto}.search-form #searchInput{font-size:1.2em;margin:0;padding:0;vertical-align:top}.search-form select{margin:0 .4em;padding:0;vertical-align:middle;max-width:12em;width:12em}.bookshelf-container{width:100%;overflow:hidden;margin:2em 0 .5em;font-size:13px;font-weight:700;line-height:20px}.bookshelf-container .text{padding:0 .5em}.bookshelf{display:block;width:300%;overflow:hidden;position:relative;left:-100%;text-align:center;white-space:nowrap}.bookshelf-container .bookend{display:inline-block;vertical-align:top}.langlist{text-align:center;margin:.5em 3em 2.5em}.langlist-large{font-size:larger}.langlist-tiny{margin:.5em 3em 3em}.langlist-others{margin:0 3em 2em;font-weight:700}.otherprojects{font-weight:700;margin:1.5em auto;text-align:left;vertical-align:middle;width:90%}.otherprojects-item{float:left;height:60px;min-width:12em;width:24.75%;line-height:60px}.otherprojects-item a{display:block;width:10em;margin:0 auto}.sprite-project-logos-wrapper{width:47px;display:-moz-inline-stack;display:inline-block;text-align:center;vertical-align:middle}.otherprojects-item .sprite-project-logos{display:-moz-inline-stack;display:inline-block;text-align:center;vertical-align:middle}.otherprojects-item .otherprojects-item-name{vertical-align:middle}.sprite-project-logos-Wikispecies-logo_sister{background-position:0 -324px!important;width:35px!important;height:40px!important}.wm-site-info{clear:both;margin:2.5em 0 2em;text-align:center;padding-top:1.5em}.hlist ul{margin:0;padding:0}.hlist li,.hlist ul ul{display:inline}.hlist li:before{content:" · ";font-weight:700}.hlist li:first-child:before{content:none}.hlist li+ul:before{content:"\00a0("}.hlist li+ul:after{content:") "}@media print{body{background-color:transparent}a{color:#000!important;background:0 0!important;padding:0!important}a:link,a:visited{color:#520;background:0 0}img{border:none}}@media all and (max-width:480px){.central-textlogo{line-height:normal;padding:0 0 0 84px;margin:0;height:70px;text-align:left;position:relative}.central-textlogo img{height:35px;width:auto;margin-top:22.5px}.central-featured{width:auto;height:auto;padding-top:2em;text-align:left;font-size:.8em;margin-top:4em}.central-featured-logo{right:0;left:.8em;top:-70px;margin-top:-4em;width:70px;position:absolute}.central-featured-lang{right:auto;top:auto;position:relative;left:auto;text-align:left;margin-left:1em;display:block;float:left;width:40%;height:5em}.language-search,.search-container label{display:none}.search-container{margin-top:0;height:6em;position:absolute;top:5em;left:0;right:0;max-width:100%;width:auto;padding:0;text-align:left}.search-form #searchInput{max-width:40%;vertical-align:middle}.search-form #searchLanguage,.search-form .formBtn{max-width:25%;vertical-align:middle}form fieldset{margin:0;border-left:none;border-right:none}.bookshelf{width:auto;left:auto;overflow:hidden;text-align:left}.bookshelf-container .bookend{width:40px!important}.bookshelf-container .bookend:last-child{display:none}.langlist a{word-wrap:break-word;white-space:normal}.langlist{font-size:.7em}.otherprojects-item{width:50%;text-align:left}.bookshelf-container,.langlist{margin:1em 1em 0;text-align:left;width:auto}hr{margin-top:.5em}}@media all and (max-width:240px){.central-featured-lang,.otherprojects-item{width:100%}.central-textlogo img{width:100px;height:auto}}@media all and (max-width:45em){.otherprojects{width:100%}.otherprojects-item{width:33.33%}}@media all and (max-width:30em){.otherprojects-item{width:50%}}@media all and (max-width:20em){.otherprojects-item{width:100%}}@media (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:3/2),(min-resolution:1.5dppx),(min-resolution:144dpi){.bookshelf-container .bookend{background-size:40px auto}}@media (-webkit-min-device-pixel-ratio:2),(min--moz-device-pixel-ratio:2),(-o-min-device-pixel-ratio:2),(min-resolution:2dppx),(min-resolution:192dpi){.bookshelf-container .bookend{background-size:40px auto}}@media (min--moz-device-pixel-ratio:2),(min-resolution:2dppx),(min-resolution:192dpi){#footer,.search-form fieldset{border-width:.5px}hr{border-bottom-width:.5px}}@supports (-webkit-transform:rotate(30deg)){#footer,.search-form fieldset{border-width:1px}hr{border-bottom-width:1px}}.formBtn{background-color:#fff;border:1px solid #E4E4E4;border-radius:4px;border-top:1px solid #e8e8e8;border-bottom:1px solid #CECECE;font-size:11px;padding:1px 8px;margin-left:.3em;vertical-align:top}.formBtn .sprite-bookshelf_icons-search_icon{display:inline-block;vertical-align:middle}.formBtn:focus{background-color:silver;outline:0}.formBtn:active{background-color:#b0b0b0}.search-container .search-form #searchInput{font-size:13px;padding:1px 3px;width:15em}#langsearch-input{padding:1px 2px;font-size:11px;vertical-align:top}</style> <style>.sprite-bookshelf_icons{background-image:url(portal/wikipedia.org/assets/img/sprite-bookshelf_icons.png)}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){.sprite-bookshelf_icons{background-image:url(portal/wikipedia.org/assets/img/[email protected]);background-size:40px 57px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.sprite-bookshelf_icons{background-image:url(portal/wikipedia.org/assets/img/[email protected]);background-size:40px 57px}}.sprite-bookshelf_icons-caretDown{background-position:0 0;width:12px;height:12px}.sprite-bookshelf_icons-search-ltr-invert{background-position:0 -12px;width:12px;height:12px}.sprite-bookshelf_icons-search_icon{background-position:0 -24px;width:12px;height:13px}.sprite-bookshelf_icons-Bookshelf{background-position:0 -37px;width:40px;height:20px}.sprite-project-logos{background-image:url(portal/wikipedia.org/assets/img/sprite-project-logos.png)}@media (-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){.sprite-project-logos{background-image:url(portal/wikipedia.org/assets/img/[email protected]);background-size:88px 452px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.sprite-project-logos{background-image:url(portal/wikipedia.org/assets/img/[email protected]);background-size:88px 453px}}.sprite-project-logos-Wikinews-logo_sister{background-position:0 0;width:47px;height:26px}.sprite-project-logos-Wikidata-logo_sister{background-position:0 -26px;width:47px;height:27px}.sprite-project-logos-Wikiversity-logo_sister{background-position:0 -52px;width:35px;height:28px}.sprite-project-logos-wikimedia-button{background-position:0 -80px;width:88px;height:31px}.sprite-project-logos-Wikibooks-logo_sister{background-position:0 -111px;width:35px;height:35px}.sprite-project-logos-Meta-logo_sister{background-position:0 -146px;width:35px;height:35px}.sprite-project-logos-Wikivoyage-logo_sister{background-position:0 -181px;width:35px;height:35px}.sprite-project-logos-Wiktionary-logo_sister{background-position:0 -216px;width:35px;height:35px}.sprite-project-logos-MediaWiki-logo_sister{background-position:0 -251px;width:47px;height:36px}.sprite-project-logos-Wikisource-logo_sister{background-position:0 -287px;width:35px;height:37px}.sprite-project-logos-Wikispecies-logo_sister{background-position:0 -323px;width:35px;height:41px}.sprite-project-logos-Wikiquote-logo_sister{background-position:0 -364px;width:35px;height:42px}.sprite-project-logos-Commons-logo_sister{background-position:0 -406px;width:35px;height:47px}</style> <!--[if lt IE 8]><style type="text/css"> .bookshelf-container .bookend,.otherprojects-icon{zoom:1;display:inline} diff --git a/tests/lint.js b/tests/lint.js deleted file mode 100644 index 5ee6b69..0000000 --- a/tests/lint.js +++ /dev/null @@ -1,15 +0,0 @@ -var gulp = require( 'gulp' ), - jshint = require( 'gulp-jshint' ), - jscs = require( 'gulp-jscs' ); - -gulp.task( 'lint', function () { - var devFolder = 'dev/**/*.js'; - - gulp.src( [ '*.js', devFolder ] ) - .pipe( jshint( '.jshintrc' ) ) - .pipe( jshint.reporter( 'default' ) ) - .pipe( jscs() ) - .pipe( jscs.reporter() ); -} ); - -gulp.start( 'lint' ); -- To view, visit https://gerrit.wikimedia.org/r/268770 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib011b69ba5eb6d502509bcdcdf0eee7c52b4cf07 Gerrit-PatchSet: 1 Gerrit-Project: wikimedia/portals Gerrit-Branch: master Gerrit-Owner: JGirault <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
