diff options
-rw-r--r-- | _sources/deprecation.rst.txt | 5 | ||||
-rw-r--r-- | _static/basic.css | 1 | ||||
-rw-r--r-- | _static/doctools.js | 5 | ||||
-rw-r--r-- | _static/jquery-3.5.1.js (renamed from _static/jquery-3.4.1.js) | 1238 | ||||
-rw-r--r-- | _static/pygments.css | 8 | ||||
-rw-r--r-- | _static/searchtools.js | 8 | ||||
-rw-r--r-- | basics.html | 2 | ||||
-rw-r--r-- | combined.html | 7 | ||||
-rw-r--r-- | dependencies.html | 2 | ||||
-rw-r--r-- | deprecation.html | 7 | ||||
-rw-r--r-- | ebuild-format.html | 2 | ||||
-rw-r--r-- | filesystem.html | 2 | ||||
-rw-r--r-- | genindex.html | 2 | ||||
-rw-r--r-- | index.html | 2 | ||||
-rw-r--r-- | installed-files.html | 2 | ||||
-rw-r--r-- | keywords.html | 2 | ||||
-rw-r--r-- | languages.html | 2 | ||||
-rw-r--r-- | maintainer.html | 2 | ||||
-rw-r--r-- | motivation.html | 2 | ||||
-rw-r--r-- | other-docs.html | 2 | ||||
-rw-r--r-- | other-metadata.html | 2 | ||||
-rw-r--r-- | preface.html | 2 | ||||
-rw-r--r-- | search.html | 2 | ||||
-rw-r--r-- | searchindex.js | 2 | ||||
-rw-r--r-- | std-policy-index.html | 2 | ||||
-rw-r--r-- | use-flags.html | 2 | ||||
-rw-r--r-- | user-group.html | 2 |
27 files changed, 795 insertions, 522 deletions
diff --git a/_sources/deprecation.rst.txt b/_sources/deprecation.rst.txt index c0badd0..83284f5 100644 --- a/_sources/deprecation.rst.txt +++ b/_sources/deprecation.rst.txt @@ -32,6 +32,5 @@ Deprecated eclasses should not be used in new ebuilds. Existing packages should be updated not to use these eclasses on version bumps, or proactively when no version bumps are expected. -The current list of deprecated eclasses is stored along with suggested -replacements as ``deprecated-eclass`` section -of ``metadata/qa-policy.conf``. +Deprecations are indicated using the ``@DEPRECATED`` eclassdoc tag +inside the eclass files. diff --git a/_static/basic.css b/_static/basic.css index 24bc73e..24a49f0 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -764,6 +764,7 @@ div.code-block-caption code { } table.highlighttable td.linenos, +span.linenos, div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ user-select: none; } diff --git a/_static/doctools.js b/_static/doctools.js index daccd20..7d88f80 100644 --- a/_static/doctools.js +++ b/_static/doctools.js @@ -285,9 +285,10 @@ var Documentation = { initOnKeyListeners: function() { $(document).keydown(function(event) { var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea + // don't navigate when in search box, textarea, dropdown or button if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) { + && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey + && !event.shiftKey) { switch (event.keyCode) { case 37: // left var prevHref = $('link[rel="prev"]').prop('href'); diff --git a/_static/jquery-3.4.1.js b/_static/jquery-3.5.1.js index 773ad95..5093733 100644 --- a/_static/jquery-3.4.1.js +++ b/_static/jquery-3.5.1.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v3.4.1 + * jQuery JavaScript Library v3.5.1 * https://jquery.com/ * * Includes Sizzle.js @@ -9,7 +9,7 @@ * Released under the MIT license * https://jquery.org/license * - * Date: 2019-05-01T21:04Z + * Date: 2020-05-04T22:49Z */ ( function( global, factory ) { @@ -47,13 +47,16 @@ var arr = []; -var document = window.document; - var getProto = Object.getPrototypeOf; var slice = arr.slice; -var concat = arr.concat; +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + var push = arr.push; @@ -86,6 +89,8 @@ var isWindow = function isWindow( obj ) { }; +var document = window.document; + var preservedScriptAttributes = { @@ -142,7 +147,7 @@ function toType( obj ) { var - version = "3.4.1", + version = "3.5.1", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -150,11 +155,7 @@ var // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + }; jQuery.fn = jQuery.prototype = { @@ -220,6 +221,18 @@ jQuery.fn = jQuery.prototype = { return this.eq( -1 ); }, + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); @@ -353,9 +366,10 @@ jQuery.extend( { return true; }, - // Evaluates a script in a global context - globalEval: function( code, options ) { - DOMEval( code, { nonce: options && options.nonce } ); + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); }, each: function( obj, callback ) { @@ -379,13 +393,6 @@ jQuery.extend( { return obj; }, - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; @@ -472,7 +479,7 @@ jQuery.extend( { } // Flatten any nested arrays - return concat.apply( [], ret ); + return flat( ret ); }, // A global GUID counter for objects @@ -489,7 +496,7 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { +function( _i, name ) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); } ); @@ -511,17 +518,16 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.4 + * Sizzle CSS Selector Engine v2.3.5 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2019-04-08 + * Date: 2020-03-14 */ -(function( window ) { - +( function( window ) { var i, support, Expr, @@ -561,59 +567,70 @@ var i, }, // Instance methods - hasOwn = ({}).hasOwnProperty, + hasOwn = ( {} ).hasOwnProperty, arr = [], pop = arr.pop, - push_native = arr.push, + pushNative = arr.push, push = arr.push, slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { - if ( list[i] === elem ) { + if ( list[ i ] === elem ) { return i; } } return -1; }, - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), rdescend = new RegExp( whitespace + "|>" ), rpseudo = new RegExp( pseudos ), @@ -625,14 +642,16 @@ var i, "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, rhtml = /HTML$/i, @@ -648,18 +667,21 @@ var i, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair high < 0 ? - // BMP codepoint String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, @@ -675,7 +697,8 @@ var i, } // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped @@ -700,18 +723,20 @@ var i, // Optimize for push.apply( _, NodeList ) try { push.apply( - (arr = slice.call( preferredDoc.childNodes )), + ( arr = slice.call( preferredDoc.childNodes ) ), preferredDoc.childNodes ); + // Support: Android<4.0 // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { - push_native.apply( target, slice.call(els) ); + pushNative.apply( target, slice.call( els ) ); } : // Support: IE<9 @@ -719,8 +744,9 @@ try { function( target, els ) { var j = target.length, i = 0; + // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} + while ( ( target[ j++ ] = els[ i++ ] ) ) {} target.length = j - 1; } }; @@ -744,24 +770,21 @@ function Sizzle( selector, context, results, seed ) { // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } + setDocument( context ); context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { // ID selector - if ( (m = match[1]) ) { + if ( ( m = match[ 1 ] ) ) { // Document context if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { + if ( ( elem = context.getElementById( m ) ) ) { // Support: IE, Opera, Webkit // TODO: identify versions @@ -780,7 +803,7 @@ function Sizzle( selector, context, results, seed ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && + if ( newContext && ( elem = newContext.getElementById( m ) ) && contains( context, elem ) && elem.id === m ) { @@ -790,12 +813,12 @@ function Sizzle( selector, context, results, seed ) { } // Type selector - } else if ( match[2] ) { + } else if ( match[ 2 ] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); @@ -806,11 +829,11 @@ function Sizzle( selector, context, results, seed ) { // Take advantage of querySelectorAll if ( support.qsa && !nonnativeSelectorCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && // Support: IE 8 only // Exclude object elements - (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) { + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { newSelector = selector; newContext = context; @@ -819,27 +842,36 @@ function Sizzle( selector, context, results, seed ) { // descendant combinators, which is not what we want. // In such cases, we work around the behavior by prefixing every selector in the // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && rdescend.test( selector ) ) { + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); } newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; } try { @@ -872,12 +904,14 @@ function createCache() { var keys = []; function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries delete cache[ keys.shift() ]; } - return (cache[ key + " " ] = value); + return ( cache[ key + " " ] = value ); } return cache; } @@ -896,17 +930,19 @@ function markFunction( fn ) { * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { - var el = document.createElement("fieldset"); + var el = document.createElement( "fieldset" ); try { return !!fn( el ); - } catch (e) { + } catch ( e ) { return false; } finally { + // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } + // release memory in IE el = null; } @@ -918,11 +954,11 @@ function assert( fn ) { * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { - var arr = attrs.split("|"), + var arr = attrs.split( "|" ), i = arr.length; while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; + Expr.attrHandle[ arr[ i ] ] = handler; } } @@ -944,7 +980,7 @@ function siblingCheck( a, b ) { // Check if b follows a if ( cur ) { - while ( (cur = cur.nextSibling) ) { + while ( ( cur = cur.nextSibling ) ) { if ( cur === b ) { return -1; } @@ -972,7 +1008,7 @@ function createInputPseudo( type ) { function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; + return ( name === "input" || name === "button" ) && elem.type === type; }; } @@ -1015,7 +1051,7 @@ function createDisabledPseudo( disabled ) { // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; + inDisabledFieldset( elem ) === disabled; } return elem.disabled === disabled; @@ -1037,21 +1073,21 @@ function createDisabledPseudo( disabled ) { * @param {Function} fn */ function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { + return markFunction( function( argument ) { argument = +argument; - return markFunction(function( seed, matches ) { + return markFunction( function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); } } - }); - }); + } ); + } ); } /** @@ -1073,7 +1109,7 @@ support = Sizzle.support = {}; */ isXML = Sizzle.isXML = function( elem ) { var namespace = elem.namespaceURI, - docElem = (elem.ownerDocument || elem).documentElement; + docElem = ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -1091,7 +1127,11 @@ setDocument = Sizzle.setDocument = function( node ) { doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } @@ -1100,10 +1140,14 @@ setDocument = Sizzle.setDocument = function( node ) { docElem = document.documentElement; documentIsHTML = !isXML( document ); - // Support: IE 9-11, Edge + // Support: IE 9 - 11+, Edge 12 - 18+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { @@ -1115,25 +1159,36 @@ setDocument = Sizzle.setDocument = function( node ) { } } + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) - support.attributes = assert(function( el ) { + support.attributes = assert( function( el ) { el.className = "i"; - return !el.getAttribute("className"); - }); + return !el.getAttribute( "className" ); + } ); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); @@ -1142,38 +1197,38 @@ setDocument = Sizzle.setDocument = function( node ) { // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { + support.getById = assert( function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); + } ); // ID filter and find if ( support.getById ) { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - return elem.getAttribute("id") === attrId; + return elem.getAttribute( "id" ) === attrId; }; }; - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); + elem.getAttributeNode( "id" ); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); @@ -1181,7 +1236,7 @@ setDocument = Sizzle.setDocument = function( node ) { if ( elem ) { // Verify the id attribute - node = elem.getAttributeNode("id"); + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1189,8 +1244,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1203,7 +1258,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Tag - Expr.find["TAG"] = support.getElementsByTagName ? + Expr.find[ "TAG" ] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); @@ -1218,12 +1273,13 @@ setDocument = Sizzle.setDocument = function( node ) { var elem, tmp = [], i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } @@ -1235,7 +1291,7 @@ setDocument = Sizzle.setDocument = function( node ) { }; // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } @@ -1256,10 +1312,14 @@ setDocument = Sizzle.setDocument = function( node ) { // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + // Build QSA regex // Regex strategy adopted from Diego Perini - assert(function( el ) { + assert( function( el ) { + + var input; + // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, @@ -1273,78 +1333,98 @@ setDocument = Sizzle.setDocument = function( node ) { // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { + if ( !el.querySelectorAll( "[selected]" ).length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); + rbuggyQSA.push( ".#.+[+~]" ); } - }); - assert(function( el ) { + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { el.innerHTML = "<a href='' disabled='disabled'></a>" + "<select disabled='disabled'><option/></select>"; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); + var input = document.createElement( "input" ); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { + if ( el.querySelectorAll( "[name=d]" ).length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } + // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); } - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { - assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); @@ -1353,11 +1433,11 @@ setDocument = Sizzle.setDocument = function( node ) { // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); - }); + } ); } - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); /* Contains ---------------------------------------------------------------------- */ @@ -1374,11 +1454,11 @@ setDocument = Sizzle.setDocument = function( node ) { adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); + ) ); } : function( a, b ) { if ( b ) { - while ( (b = b.parentNode) ) { + while ( ( b = b.parentNode ) ) { if ( b === a ) { return true; } @@ -1407,7 +1487,11 @@ setDocument = Sizzle.setDocument = function( node ) { } // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected @@ -1415,13 +1499,24 @@ setDocument = Sizzle.setDocument = function( node ) { // Disconnected nodes if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { return -1; } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { return 1; } @@ -1434,6 +1529,7 @@ setDocument = Sizzle.setDocument = function( node ) { return compare & 4 ? -1 : 1; } : function( a, b ) { + // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; @@ -1449,8 +1545,14 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ aup ? -1 : bup ? 1 : sortInput ? @@ -1464,26 +1566,32 @@ setDocument = Sizzle.setDocument = function( node ) { // Otherwise we need full lists of their ancestors for comparison cur = a; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { ap.unshift( cur ); } cur = b; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { + while ( ap[ i ] === bp[ i ] ) { i++; } return i ? + // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : + siblingCheck( ap[ i ], bp[ i ] ) : // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ 0; }; @@ -1495,10 +1603,7 @@ Sizzle.matches = function( expr, elements ) { }; Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } + setDocument( elem ); if ( support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[ expr + " " ] && @@ -1510,12 +1615,13 @@ Sizzle.matchesSelector = function( elem, expr ) { // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch (e) { + } catch ( e ) { nonnativeSelectorCache( expr, true ); } } @@ -1524,20 +1630,31 @@ Sizzle.matchesSelector = function( elem, expr ) { }; Sizzle.contains = function( context, elem ) { + // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { + // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : @@ -1547,13 +1664,13 @@ Sizzle.attr = function( elem, name ) { val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); + return ( sel + "" ).replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { @@ -1576,7 +1693,7 @@ Sizzle.uniqueSort = function( results ) { results.sort( sortOrder ); if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } @@ -1604,17 +1721,21 @@ getText = Sizzle.getText = function( elem ) { nodeType = elem.nodeType; if ( !nodeType ) { + // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { + while ( ( node = elem[ i++ ] ) ) { + // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { + // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); @@ -1623,6 +1744,7 @@ getText = Sizzle.getText = function( elem ) { } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } + // Do not include comment or processing instruction nodes return ret; @@ -1650,19 +1772,21 @@ Expr = Sizzle.selectors = { preFilter: { "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) @@ -1673,22 +1797,25 @@ Expr = Sizzle.selectors = { 7 sign of y-component 8 y of y-component */ - match[1] = match[1].toLowerCase(); + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } return match; @@ -1696,26 +1823,28 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[6] && match[2]; + unquoted = !match[ 6 ] && match[ 2 ]; - if ( matchExpr["CHILD"].test( match[0] ) ) { + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { return null; } // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && + ( excess = tokenize( unquoted, true ) ) && + // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) @@ -1728,7 +1857,9 @@ Expr = Sizzle.selectors = { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? - function() { return true; } : + function() { + return true; + } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; @@ -1738,10 +1869,16 @@ Expr = Sizzle.selectors = { var pattern = classCache[ className + " " ]; return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); }, "ATTR": function( name, operator, check ) { @@ -1757,6 +1894,8 @@ Expr = Sizzle.selectors = { result += ""; + /* eslint-disable max-len */ + return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : @@ -1765,10 +1904,12 @@ Expr = Sizzle.selectors = { operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; + /* eslint-enable max-len */ + }; }, - "CHILD": function( type, what, argument, first, last ) { + "CHILD": function( type, what, _argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; @@ -1780,7 +1921,7 @@ Expr = Sizzle.selectors = { return !!elem.parentNode; } : - function( elem, context, xml ) { + function( elem, _context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, @@ -1794,7 +1935,7 @@ Expr = Sizzle.selectors = { if ( simple ) { while ( dir ) { node = elem; - while ( (node = node[ dir ]) ) { + while ( ( node = node[ dir ] ) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { @@ -1802,6 +1943,7 @@ Expr = Sizzle.selectors = { return false; } } + // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } @@ -1817,22 +1959,22 @@ Expr = Sizzle.selectors = { // ...in a gzip-friendly way node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; - while ( (node = ++nodeIndex && node && node[ dir ] || + while ( ( node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { + ( diff = nodeIndex = 0 ) || start.pop() ) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { @@ -1842,16 +1984,18 @@ Expr = Sizzle.selectors = { } } else { + // Use previously-cached element index if available if ( useCache ) { + // ...in a gzip-friendly way node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; @@ -1861,9 +2005,10 @@ Expr = Sizzle.selectors = { // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : @@ -1872,12 +2017,13 @@ Expr = Sizzle.selectors = { // Cache the index of each encountered element if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || + ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); uniqueCache[ type ] = [ dirruns, diff ]; } @@ -1898,6 +2044,7 @@ Expr = Sizzle.selectors = { }, "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters @@ -1917,15 +2064,15 @@ Expr = Sizzle.selectors = { if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { + markFunction( function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); } - }) : + } ) : function( elem ) { return fn( elem, 0, args ); }; @@ -1936,8 +2083,10 @@ Expr = Sizzle.selectors = { }, pseudos: { + // Potentially complex pseudos - "not": markFunction(function( selector ) { + "not": markFunction( function( selector ) { + // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators @@ -1946,39 +2095,40 @@ Expr = Sizzle.selectors = { matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { + markFunction( function( seed, matches, _context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); } } - }) : - function( elem, context, xml ) { - input[0] = elem; + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) - input[0] = null; + input[ 0 ] = null; return !results.pop(); }; - }), + } ), - "has": markFunction(function( selector ) { + "has": markFunction( function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; - }), + } ), - "contains": markFunction(function( text ) { + "contains": markFunction( function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; }; - }), + } ), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value @@ -1988,25 +2138,26 @@ Expr = Sizzle.selectors = { // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { + // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { + if ( !ridentifier.test( lang || "" ) ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { - if ( (elemLang = documentIsHTML ? + if ( ( elemLang = documentIsHTML ? elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); return false; }; - }), + } ), // Miscellaneous "target": function( elem ) { @@ -2019,7 +2170,9 @@ Expr = Sizzle.selectors = { }, "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); }, // Boolean properties @@ -2027,16 +2180,20 @@ Expr = Sizzle.selectors = { "disabled": createDisabledPseudo( true ), "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); }, "selected": function( elem ) { + // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } @@ -2045,6 +2202,7 @@ Expr = Sizzle.selectors = { // Contents "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) @@ -2058,7 +2216,7 @@ Expr = Sizzle.selectors = { }, "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); + return !Expr.pseudos[ "empty" ]( elem ); }, // Element/input types @@ -2082,39 +2240,40 @@ Expr = Sizzle.selectors = { // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); }, // Position-in-collection - "first": createPositionalPseudo(function() { + "first": createPositionalPseudo( function() { return [ 0 ]; - }), + } ), - "last": createPositionalPseudo(function( matchIndexes, length ) { + "last": createPositionalPseudo( function( _matchIndexes, length ) { return [ length - 1 ]; - }), + } ), - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; - }), + } ), - "even": createPositionalPseudo(function( matchIndexes, length ) { + "even": createPositionalPseudo( function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "odd": createPositionalPseudo(function( matchIndexes, length ) { + "odd": createPositionalPseudo( function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument > length ? @@ -2124,19 +2283,19 @@ Expr = Sizzle.selectors = { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; - }) + } ) } }; -Expr.pseudos["nth"] = Expr.pseudos["eq"]; +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { @@ -2167,37 +2326,39 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { while ( soFar ) { // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { if ( match ) { + // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; + soFar = soFar.slice( match[ 0 ].length ) || soFar; } - groups.push( (tokens = []) ); + groups.push( ( tokens = [] ) ); } matched = false; // Combinators - if ( (match = rcombinators.exec( soFar )) ) { + if ( ( match = rcombinators.exec( soFar ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, + // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); + type: match[ 0 ].replace( rtrim, " " ) + } ); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, type: type, matches: match - }); + } ); soFar = soFar.slice( matched.length ); } } @@ -2214,6 +2375,7 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { soFar.length : soFar ? Sizzle.error( selector ) : + // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; @@ -2223,7 +2385,7 @@ function toSelector( tokens ) { len = tokens.length, selector = ""; for ( ; i < len; i++ ) { - selector += tokens[i].value; + selector += tokens[ i ].value; } return selector; } @@ -2236,9 +2398,10 @@ function addCombinator( matcher, combinator, base ) { doneName = done++; return combinator.first ? + // Check against closest ancestor/preceding element function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } @@ -2253,7 +2416,7 @@ function addCombinator( matcher, combinator, base ) { // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; @@ -2261,27 +2424,29 @@ function addCombinator( matcher, combinator, base ) { } } } else { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && + } else if ( ( oldCache = uniqueCache[ key ] ) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); + return ( newCache[ 2 ] = oldCache[ 2 ] ); } else { + // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { return true; } } @@ -2297,20 +2462,20 @@ function elementMatcher( matchers ) { function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { + if ( !matchers[ i ]( elem, context, xml ) ) { return false; } } return true; } : - matchers[0]; + matchers[ 0 ]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); + Sizzle( selector, contexts[ i ], results ); } return results; } @@ -2323,7 +2488,7 @@ function condense( unmatched, map, filter, context, xml ) { mapped = map != null; for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { + if ( ( elem = unmatched[ i ] ) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { @@ -2343,14 +2508,18 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } - return markFunction(function( seed, results, context, xml ) { + return markFunction( function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? @@ -2358,6 +2527,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS elems, matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? @@ -2381,8 +2551,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); } } } @@ -2390,25 +2560,27 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) ) { + if ( ( elem = matcherOut[ i ] ) ) { + // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); + temp.push( ( matcherIn[ i ] = elem ) ); } } - postFinder( null, (matcherOut = []), temp, xml ); + postFinder( null, ( matcherOut = [] ), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - seed[temp] = !(results[temp] = elem); + seed[ temp ] = !( results[ temp ] = elem ); } } } @@ -2426,14 +2598,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS push.apply( results, matcherOut ); } } - }); + } ); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) @@ -2445,38 +2617,43 @@ function matcherFromTokens( tokens ) { }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? + ( checkContext = context ).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { + if ( Expr.relative[ tokens[ j ].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), j < len && toSelector( tokens ) ); } @@ -2497,28 +2674,40 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { unmatched = seed && [], setMatched = [], contextBackup = outermostContext, + // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), len = elems.length; if ( outermost ) { - outermostContext = context === document || context || outermost; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { if ( byElement && elem ) { j = 0; - if ( !context && elem.ownerDocument !== document ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { setDocument( elem ); xml = !documentIsHTML; } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { results.push( elem ); break; } @@ -2530,8 +2719,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // Track unmatched elements for set filters if ( bySet ) { + // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { + if ( ( elem = !matcher && elem ) ) { matchedCount--; } @@ -2555,16 +2745,17 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; - while ( (matcher = setMatchers[j++]) ) { + while ( ( matcher = setMatchers[ j++ ] ) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); } } } @@ -2605,13 +2796,14 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { cached = compilerCache[ selector + " " ]; if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { - cached = matcherFromTokens( match[i] ); + cached = matcherFromTokens( match[ i ] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -2620,7 +2812,10 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { } // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); // Save selector and tokenization cached.selector = selector; @@ -2640,7 +2835,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); results = results || []; @@ -2649,11 +2844,12 @@ select = Sizzle.select = function( selector, context, results, seed ) { if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; if ( !context ) { return results; @@ -2666,20 +2862,22 @@ select = Sizzle.select = function( selector, context, results, seed ) { } // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; while ( i-- ) { - token = tokens[i]; + token = tokens[ i ]; // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { + if ( Expr.relative[ ( type = token.type ) ] ) { break; } - if ( (find = Expr.find[ type ]) ) { + if ( ( find = Expr.find[ type ] ) ) { + // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); @@ -2710,7 +2908,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // One-time assignments // Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function @@ -2721,58 +2919,59 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { +support.sortDetached = assert( function( el ) { + // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { +if ( !assert( function( el ) { el.innerHTML = "<a href='#'></a>"; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } - }); + } ); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { +if ( !support.attributes || !assert( function( el ) { el.innerHTML = "<input/>"; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } - }); + } ); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : - null; + null; } - }); + } ); } return Sizzle; -})( window ); +} )( window ); @@ -3141,7 +3340,7 @@ jQuery.each( { parents: function( elem ) { return dir( elem, "parentNode" ); }, - parentsUntil: function( elem, i, until ) { + parentsUntil: function( elem, _i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { @@ -3156,10 +3355,10 @@ jQuery.each( { prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, - nextUntil: function( elem, i, until ) { + nextUntil: function( elem, _i, until ) { return dir( elem, "nextSibling", until ); }, - prevUntil: function( elem, i, until ) { + prevUntil: function( elem, _i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { @@ -3169,7 +3368,13 @@ jQuery.each( { return siblings( elem.firstChild ); }, contents: function( elem ) { - if ( typeof elem.contentDocument !== "undefined" ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // <object> elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + return elem.contentDocument; } @@ -3512,7 +3717,7 @@ jQuery.extend( { var fns = arguments; return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { + jQuery.each( tuples, function( _i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; @@ -3965,7 +4170,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { // ...except when executing function values } else { bulk = fn; - fn = function( elem, key, value ) { + fn = function( elem, _key, value ) { return bulk.call( jQuery( elem ), value ); }; } @@ -4000,7 +4205,7 @@ var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() -function fcamelCase( all, letter ) { +function fcamelCase( _all, letter ) { return letter.toUpperCase(); } @@ -4528,27 +4733,6 @@ var isHiddenWithinTree = function( elem, el ) { jQuery.css( elem, "display" ) === "none"; }; -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - function adjustCSS( elem, prop, valueParts, tween ) { @@ -4719,11 +4903,40 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); -// We have to close these tags to support XHTML (#13200) -var wrapMap = { +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = "<textarea>x</textarea>"; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; // Support: IE <=9 only - option: [ 1, "<select multiple='multiple'>", "</select>" ], + // IE <=9 replaces <option> tags with their contents when inserted outside of + // the select element. + div.innerHTML = "<option></option>"; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten @@ -4736,12 +4949,14 @@ var wrapMap = { _default: [ 0, "", "" ] }; -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ]; +} + function getAll( context, tag ) { @@ -4874,32 +5089,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = "<textarea>x</textarea>"; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); - - var rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, @@ -5008,8 +5197,8 @@ jQuery.event = { special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { return; } @@ -5033,7 +5222,7 @@ jQuery.event = { // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { - events = elemData.events = {}; + events = elemData.events = Object.create( null ); } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { @@ -5191,12 +5380,15 @@ jQuery.event = { dispatch: function( nativeEvent ) { - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5771,13 +5963,6 @@ jQuery.fn.extend( { var - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - // Support: IE <=10 - 11, Edge 12 - 13 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ @@ -5814,7 +5999,7 @@ function restoreScript( elem ) { } function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + var i, l, type, pdataOld, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; @@ -5822,13 +6007,11 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); + pdataOld = dataPriv.get( src ); events = pdataOld.events; if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; + dataPriv.remove( dest, "handle events" ); for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { @@ -5864,7 +6047,7 @@ function fixInput( src, dest ) { function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays - args = concat.apply( [], args ); + args = flat( args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, @@ -5939,7 +6122,7 @@ function domManip( collection, args, callback, ignored ) { if ( jQuery._evalUrl && !node.noModule ) { jQuery._evalUrl( node.src, { nonce: node.nonce || node.getAttribute( "nonce" ) - } ); + }, doc ); } } else { DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); @@ -5976,7 +6159,7 @@ function remove( elem, selector, keepData ) { jQuery.extend( { htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1></$2>" ); + return html; }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { @@ -6238,6 +6421,27 @@ var getStyles = function( elem ) { return view.getComputedStyle( elem ); }; +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); @@ -6295,7 +6499,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); } var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableMarginLeftVal, + reliableTrDimensionsVal, reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); @@ -6330,6 +6534,35 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); scrollboxSize: function() { computeStyleTests(); return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px"; + tr.style.height = "1px"; + trChild.style.height = "9px"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; } } ); } )(); @@ -6454,7 +6687,7 @@ var fontWeight: "400" }; -function setPositiveNumber( elem, value, subtract ) { +function setPositiveNumber( _elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point @@ -6559,17 +6792,26 @@ function getWidthOrHeight( elem, dimension, extra ) { } - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - // Support: IE 9-11 only - // Also use offsetWidth/offsetHeight for when box sizing is unreliable - // We use getClientRects() to check for hidden/disconnected. - // In those cases, the computed value can be trusted to be border-box + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected elem.getClientRects().length ) { isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; @@ -6764,7 +7006,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "height", "width" ], function( i, dimension ) { +jQuery.each( [ "height", "width" ], function( _i, dimension ) { jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { @@ -7537,7 +7779,7 @@ jQuery.fn.extend( { clearQueue = type; type = undefined; } - if ( clearQueue && type !== false ) { + if ( clearQueue ) { this.queue( type || "fx", [] ); } @@ -7620,7 +7862,7 @@ jQuery.fn.extend( { } } ); -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? @@ -7841,7 +8083,7 @@ boolHook = { } }; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { @@ -8465,7 +8707,9 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + handle = ( + dataPriv.get( cur, "events" ) || Object.create( null ) + )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8576,7 +8820,10 @@ if ( !support.focusin ) { jQuery.event.special[ fix ] = { setup: function() { - var doc = this.ownerDocument || this, + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { @@ -8585,7 +8832,7 @@ if ( !support.focusin ) { dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - var doc = this.ownerDocument || this, + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { @@ -8601,7 +8848,7 @@ if ( !support.focusin ) { } var location = window.location; -var nonce = Date.now(); +var nonce = { guid: Date.now() }; var rquery = ( /\?/ ); @@ -8733,7 +8980,7 @@ jQuery.fn.extend( { rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); } ) - .map( function( i, elem ) { + .map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9346,7 +9593,8 @@ jQuery.extend( { // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) @@ -9479,6 +9727,11 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } + // Use a noop converter for missing script + if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + s.converters[ "text script" ] = function() {}; + } + // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); @@ -9569,7 +9822,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "get", "post" ], function( i, method ) { +jQuery.each( [ "get", "post" ], function( _i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted @@ -9590,8 +9843,17 @@ jQuery.each( [ "get", "post" ], function( i, method ) { }; } ); +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + -jQuery._evalUrl = function( url, options ) { +jQuery._evalUrl = function( url, options, doc ) { return jQuery.ajax( { url: url, @@ -9609,7 +9871,7 @@ jQuery._evalUrl = function( url, options ) { "text script": function() {} }, dataFilter: function( response ) { - jQuery.globalEval( response, options ); + jQuery.globalEval( response, options, doc ); } } ); }; @@ -9931,7 +10193,7 @@ var oldCallbacks = [], jQuery.ajaxSetup( { jsonp: "callback", jsonpCallback: function() { - var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); this[ callback ] = true; return callback; } @@ -10148,23 +10410,6 @@ jQuery.fn.load = function( url, params, callback ) { -// Attach a bunch of functions for handling common AJAX events -jQuery.each( [ - "ajaxStart", - "ajaxStop", - "ajaxComplete", - "ajaxError", - "ajaxSuccess", - "ajaxSend" -], function( i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; -} ); - - - - jQuery.expr.pseudos.animated = function( elem ) { return jQuery.grep( jQuery.timers, function( fn ) { return elem === fn.elem; @@ -10221,6 +10466,12 @@ jQuery.offset = { options.using.call( elem, props ); } else { + if ( typeof props.top === "number" ) { + props.top += "px"; + } + if ( typeof props.left === "number" ) { + props.left += "px"; + } curElem.css( props ); } } @@ -10371,7 +10622,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 // getComputedStyle returns percent when specified for top/left/bottom/right; // rather than make the css module depend on the offset module, just check for it here -jQuery.each( [ "top", "left" ], function( i, prop ) { +jQuery.each( [ "top", "left" ], function( _i, prop ) { jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, function( elem, computed ) { if ( computed ) { @@ -10434,25 +10685,19 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup contextmenu" ).split( " " ), - function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); +jQuery.each( [ + "ajaxStart", + "ajaxStop", + "ajaxComplete", + "ajaxError", + "ajaxSuccess", + "ajaxSend" +], function( _i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); }; } ); -jQuery.fn.extend( { - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -} ); - @@ -10474,9 +10719,33 @@ jQuery.fn.extend( { return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } } ); +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( _i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + } ); + + + + +// Support: Android <=4.0 only +// Make sure we trim BOM and NBSP +var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + // Bind a function to a context, optionally partially applying any // arguments. // jQuery.proxy is deprecated to promote standards (specifically Function#bind) @@ -10539,6 +10808,11 @@ jQuery.isNumeric = function( obj ) { !isNaN( obj - parseFloat( obj ) ); }; +jQuery.trim = function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); +}; @@ -10587,7 +10861,7 @@ jQuery.noConflict = function( deep ) { // Expose jQuery and $ identifiers, even in AMD // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) // and CommonJS for browser emulators (#13566) -if ( !noGlobal ) { +if ( typeof noGlobal === "undefined" ) { window.jQuery = window.$ = jQuery; } diff --git a/_static/pygments.css b/_static/pygments.css index d14395e..f346859 100644 --- a/_static/pygments.css +++ b/_static/pygments.css @@ -1,8 +1,8 @@ pre { line-height: 125%; margin: 0; } -td.linenos pre { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; } -span.linenos { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; } -td.linenos pre.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; } +td.linenos pre { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } +span.linenos { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } +td.linenos pre.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight { background: #eeffcc; } .highlight .c { color: #408090; font-style: italic } /* Comment */ diff --git a/_static/searchtools.js b/_static/searchtools.js index 970d0d9..261ecaa 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -59,10 +59,10 @@ var Search = { _pulse_status : -1, htmlToText : function(htmlString) { - var htmlElement = document.createElement('span'); - htmlElement.innerHTML = htmlString; - $(htmlElement).find('.headerlink').remove(); - docContent = $(htmlElement).find('[role=main]')[0]; + var virtualDocument = document.implementation.createHTMLDocument('virtual'); + var htmlElement = $(htmlString, virtualDocument); + htmlElement.find('.headerlink').remove(); + docContent = htmlElement.find('[role=main]')[0]; if(docContent === undefined) { console.warn("Content block not found. Sphinx search tries to obtain it " + "via '[role=main]'. Could you check your theme or template."); diff --git a/basics.html b/basics.html index f547768..a5165ff 100644 --- a/basics.html +++ b/basics.html @@ -282,7 +282,7 @@ be appealed to the <a class="reference external" href="https://wiki.gentoo.org/w <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/combined.html b/combined.html index 06a2a3e..478b358 100644 --- a/combined.html +++ b/combined.html @@ -581,9 +581,8 @@ in <code class="docutils literal notranslate"><span class="pre">metadata/layout. <p>Deprecated eclasses should not be used in new ebuilds. Existing packages should be updated not to use these eclasses on version bumps, or proactively when no version bumps are expected.</p> -<p>The current list of deprecated eclasses is stored along with suggested -replacements as <code class="docutils literal notranslate"><span class="pre">deprecated-eclass</span></code> section -of <code class="docutils literal notranslate"><span class="pre">metadata/qa-policy.conf</span></code>.</p> +<p>Deprecations are indicated using the <code class="docutils literal notranslate"><span class="pre">@DEPRECATED</span></code> eclassdoc tag +inside the eclass files.</p> </div> </div> <span id="document-ebuild-format"></span><div class="section" id="ebuild-file-format"> @@ -1724,7 +1723,7 @@ been reserved for true system users and groups.</p> <h3 class="footerhead">None</h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/dependencies.html b/dependencies.html index ce7f6ed..f002c80 100644 --- a/dependencies.html +++ b/dependencies.html @@ -450,7 +450,7 @@ updating its reverse dependencies.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/deprecation.html b/deprecation.html index 310357e..58c0799 100644 --- a/deprecation.html +++ b/deprecation.html @@ -173,9 +173,8 @@ in <code class="docutils literal notranslate"><span class="pre">metadata/layout. <p>Deprecated eclasses should not be used in new ebuilds. Existing packages should be updated not to use these eclasses on version bumps, or proactively when no version bumps are expected.</p> -<p>The current list of deprecated eclasses is stored along with suggested -replacements as <code class="docutils literal notranslate"><span class="pre">deprecated-eclass</span></code> section -of <code class="docutils literal notranslate"><span class="pre">metadata/qa-policy.conf</span></code>.</p> +<p>Deprecations are indicated using the <code class="docutils literal notranslate"><span class="pre">@DEPRECATED</span></code> eclassdoc tag +inside the eclass files.</p> </div> </div> @@ -258,7 +257,7 @@ of <code class="docutils literal notranslate"><span class="pre">metadata/qa-poli <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/ebuild-format.html b/ebuild-format.html index 8165544..bb1b763 100644 --- a/ebuild-format.html +++ b/ebuild-format.html @@ -336,7 +336,7 @@ make sure that it works correctly on their ebuilds.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/filesystem.html b/filesystem.html index e8127b5..67e97dc 100644 --- a/filesystem.html +++ b/filesystem.html @@ -433,7 +433,7 @@ it is mounted in another location, e.g. for the purposes of recovery.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/genindex.html b/genindex.html index b752f3f..934080f 100644 --- a/genindex.html +++ b/genindex.html @@ -519,7 +519,7 @@ <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> @@ -331,7 +331,7 @@ in which the policy can be updated.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/installed-files.html b/installed-files.html index 53a3495..799a837 100644 --- a/installed-files.html +++ b/installed-files.html @@ -307,7 +307,7 @@ unnecessary and potentially harmful.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/keywords.html b/keywords.html index 2599f15..c3863a4 100644 --- a/keywords.html +++ b/keywords.html @@ -290,7 +290,7 @@ of last rite mails.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/languages.html b/languages.html index eb2f1ee..277701a 100644 --- a/languages.html +++ b/languages.html @@ -286,7 +286,7 @@ will cause major upgrade issues.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/maintainer.html b/maintainer.html index 7bec66d..24b5043 100644 --- a/maintainer.html +++ b/maintainer.html @@ -296,7 +296,7 @@ to them silently becoming maintainer-needed).</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/motivation.html b/motivation.html index fdd5fcc..010e239 100644 --- a/motivation.html +++ b/motivation.html @@ -256,7 +256,7 @@ devmanual) should conform to policies stated here.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/other-docs.html b/other-docs.html index a62d1c7..29231f3 100644 --- a/other-docs.html +++ b/other-docs.html @@ -269,7 +269,7 @@ disagree, Gentoo policies should be followed.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/other-metadata.html b/other-metadata.html index 4ab87d1..c3957e9 100644 --- a/other-metadata.html +++ b/other-metadata.html @@ -367,7 +367,7 @@ by the ebuild, e.g. init.d scripts (usually GPL-2).</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/preface.html b/preface.html index 5822744..e331d27 100644 --- a/preface.html +++ b/preface.html @@ -241,7 +241,7 @@ in which the policy can be updated.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/search.html b/search.html index ed4b12e..4f37785 100644 --- a/search.html +++ b/search.html @@ -178,7 +178,7 @@ <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/searchindex.js b/searchindex.js index 46fd615..c562cdd 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["basics","dependencies","deprecation","ebuild-format","filesystem","index","installed-files","keywords","languages","maintainer","motivation","other-docs","other-metadata","preface","use-flags","user-group"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,sphinx:56},filenames:["basics.rst","dependencies.rst","deprecation.rst","ebuild-format.rst","filesystem.rst","index.rst","installed-files.rst","keywords.rst","languages.rst","maintainer.rst","motivation.rst","other-docs.rst","other-metadata.rst","preface.rst","use-flags.rst","user-group.rst"],objects:{},objnames:{},objtypes:{},terms:{"0001":1,"0002":1,"0003":1,"0011":1,"0012":1,"0021":1,"0101":3,"0102":3,"0103":3,"0104":3,"0105":3,"0201":4,"0202":4,"0203":4,"0204":4,"0205":4,"0206":4,"0301":6,"0302":6,"0303":6,"0401":7,"0402":7,"0403":7,"0501":8,"0502":8,"0601":9,"0602":9,"0603":9,"0701":12,"0702":12,"0703":12,"0704":12,"0801":14,"0802":14,"0803":14,"08gentoo":4,"0901":15,"100":[1,15],"1001":2,"1003":2,"101":15,"104017":1,"109991":[12,14],"126033":7,"2013":4,"20130813":4,"20130924":4,"20151011":[1,4],"20151213":4,"2016":12,"2019":8,"20191013":14,"2fuse":12,"499":15,"612630":3,"702460":15,"80librari":4,"80multilib":4,"83cc5bbd7bbe8bdf04dd3c3bc7f8a035":12,"999":15,"9cae3a92412a007febe7ac0612d50f5f":1,"break":[3,8],"case":[0,4,5,7,12],"class":0,"default":[1,6],"final":[0,10,11],"function":[0,3,4,8],"g\u00f3rny":13,"import":[1,8,12,15],"long":[1,7,8,12],"micha\u0142":13,"new":[2,4,5,8,10,14,15],"public":1,"static":[5,12],"switch":14,"true":15,"try":[0,3,9],"var":4,"while":[0,1,3,6,12],Adding:5,FHS:5,For:[1,4,9],Its:[0,10],PMS:[1,10,11,12],Such:[6,12],The:[0,1,2,3,4,5,7,8,9,10,11,12,13,14,15],There:[1,6,9,10],USE:[5,6],Use:3,Using:1,With:4,abi:[1,4],abil:[3,10,12],abolish:0,about:12,absolut:5,accept:[1,4,12,15],access:4,accident:8,accord:1,account:[1,3,5],acct:15,achiev:0,across:[0,10],action:0,activ:11,actual:9,add:[3,9],added:[4,6,9],adding:[1,9,15],addit:[3,4,6,10,11],addition:0,address:10,adjust:14,adopt:15,advantag:[3,14],affect:[0,3,7,12],aforement:[4,10],after:[0,1,4],afterward:14,against:[0,3,10,12],agre:9,aid:15,aim:[0,1,5,9,13,14],align:3,all:[0,1,3,5,6,7,8,9,10,11,12,13,14,15],alloc:15,allow:[3,12],along:[2,4,10],alreadi:[1,4,8,12],also:[0,8,10,14],alter:12,alwai:[3,4],amd64:4,amount:10,analyz:0,ani:[1,3,6,9,10,11,12,14],anoth:[1,4,12],anymor:[4,7],anywher:12,api:1,app:6,appeal:5,append:3,appli:[0,1,7,9,10,11],applic:[1,4,6,10,11,12],appropri:[4,12],approv:[1,11,15],arbitrari:15,arch:[3,7],architectur:[0,4,7],archiv:[1,6,12,14],area:0,argu:1,aris:[10,14,15],ask:[0,7],assign:[9,15],assum:[1,14],assumpt:12,attempt:[3,6,10,14],attribut:13,author:5,autom:0,autotool:6,avail:[1,10,12,14],avoid:[3,6],awar:9,backup:9,bad:[1,4,12],base:6,baselayout:15,bash:[3,6],basic:[5,11],becom:[1,5,9,13],been:[1,4,6,12,14,15],befor:[0,7,14,15],behavior:[0,1,6,12],being:[1,6,7,8,9,12],besid:11,better:[8,10],between:[4,8,12,14,15],bin:4,binari:12,bind:[5,10,13],bit:4,blurri:4,bodi:[0,5,10,13],boot:4,both:[0,3,5,6,8,13,14],boundari:4,bracket:3,breakag:[1,7],broken:4,brought:6,browser:4,bug:[3,7,9,12,15],build:[0,1,4,6,8,12,14],builtin:3,bump:[2,5,15],bundl:12,burden:9,cach:12,call:[1,8],can:[0,1,4,5,7,10,11,12,13,14,15],care:9,categori:6,caus:[1,6,7,8,12,14],cf3f5a59ac918335766632bd02438722:14,chanc:[8,9],chang:[3,5,8,11],check:[1,4,5],choic:[3,14],choos:[12,14],chosen:15,chost:4,circumst:[1,12],claim:1,clarifi:4,clean:1,clear:[5,10,13,14],close:7,code:[0,1,5,8,12],collect:10,collis:15,combin:[0,5,10,12,13],comment:9,commit:0,common:[1,3,12,13],compar:9,compat:[4,8],compil:0,complet:[6,10,12],compli:11,complianc:5,compon:0,concept:0,concis:10,condit:[3,12],conf:2,config:6,conform:[10,11],confus:[3,7,14],consent:9,consequ:6,consid:[6,12,14],consist:[0,3,8,14],construct:3,contact:0,contain:[5,9,11,14],content:[3,5],context:6,contrari:12,contribut:0,control:[1,4,6,12,14],controlled_optional_rdepend:1,convert:[3,14],copi:3,correct:[1,4,12],correctli:[0,3,4],correspond:[1,4],cost:[6,8],could:[6,9,12],council:[0,1,2,4,5,10,11,13,14],cover:12,creat:[0,4,10,11,14,15],creativ:13,cross:15,ctarget:4,cumbersom:1,current:[0,2,4,5,9,13],dai:7,data:4,debat:1,decid:[1,12],decis:[0,10],declar:12,dedic:[9,12],defer:8,defici:10,defin:[1,5,8,11,14],definit:[5,13],delai:[8,15],delet:6,depclean:12,depend:[3,5,6,7,8,12,14],dependent_slot:12,deprec:[5,15],deriv:12,design:[3,5,13],desir:15,detail:11,detect:[0,1],dev:[1,4,9,12,14],develop:[0,1,3,4,5,7,9,10,13,14,15],devmanu:[10,11],did:[6,10,12],die:6,differ:[0,1,3,12],difficult:4,direct:[0,12],directli:[0,8,10],directori:[3,4],disabl:[1,12],disagre:[0,11],disciplinari:0,discourag:[6,14],discov:14,discuss:[11,14],distinguish:[9,14],distribut:[4,11],distro:15,doc:4,document:[0,5,12,13],doe:[1,6,7,9,11,12],done:11,dosym:4,doubt:[0,15],down:[0,10],download:12,downward:15,drop:[5,9],dropping_stable_keyword:7,due:[1,4,6,7],duplic:7,dure:[1,4],dynam:[1,3,4,5,15],each:[0,1,10,12],eapi:[5,11],earli:[4,8],easi:[0,12],easier:[0,14],easili:9,eblit:3,ebuild:[0,1,2,4,5,6,8,10,11,12],eclass:[1,5,12,15],edit:[3,10],editor:3,educ:0,effect:12,effort:[0,7],eight:10,either:[1,4,6,7,8,12,14],ekeyword:3,elog:1,emerg:12,enabl:[1,6,12,14],encourag:3,end:[0,8,9,14],enforc:[3,5,11,12],enough:12,ensur:[1,4,8,12],entri:[3,15],equal:1,equival:1,error:[1,3,12],especi:[1,4],establish:10,etc:[0,3,4],eutil:1,eval:3,even:[1,12,14],everi:10,exampl:[1,4,6,9,12],except:[1,4,7],execut:[0,4,12],exempt:7,exist:[1,2,8,12,14,15],expect:[0,2],experi:0,experienc:[0,1],experiment:7,explan:10,explicit:[1,12],explicitli:[1,3,6,8,9,10,12,14,15],exponenti:8,express:[12,14],extend:14,extern:[3,5],fact:1,facto:10,fail:12,fallback:6,far:[0,10,12],fatal:[4,12],favor:15,featur:[1,12],few:[3,14],file:[0,5,7,9,10,12],filesystem:[4,11],find:[6,9,10,12],first:[6,7],fit:9,fix:[0,9,15],flag:[0,5,6],flat:[10,14],flip:1,focu:0,focus:[0,10],follow:[0,4,6,7,9,11,15],foo:[1,3],forbidden:[3,9,12],form:[3,10,14],formal:10,format:[5,11,12],former:[1,10],found:[4,10],free:15,frequent:[8,9],frobnic:4,from:[1,3,4,7,9,10,12,15],fulfil:4,full:[4,6],fulli:3,further:[0,15],furthermor:[1,3,4,9,10,12],futur:[1,7,9,11,14,15],game:5,gamestat:4,gap:15,gener:[3,4,6,11,12,14],gentoo:[0,1,2,3,4,7,8,9,10,12,13,14,15],get:1,gid:15,git:[2,4],github:3,gitweb:[2,4],give:8,glep:[0,1,5,15],global:[5,12,13,14],gnu:4,goal:[5,6],goe:3,going:[6,10],good:[1,4,12,15],govern:0,gpl:12,grab:9,gracefulli:[8,12],grant:4,graph:[1,7,8],grep:[3,9],group:[4,5,9],grow:8,gtk2:[1,14],gtk3:14,gtk:14,guarante:[8,12],gui:5,guid:[11,13],guidelin:[4,11],guix:4,hack:4,had:[1,7],hand:3,handl:[8,12],hard:[3,9,10,12,14],hardcod:[4,6],harder:3,harm:[6,12],has:[1,3,4,6,8,12,14,15],have:[1,3,6,7,8,12,15],help:[0,1,3,9],helper:8,here:[6,7,10],hierarch:14,hierarchi:4,high:4,highest:11,highlight:3,his:[0,8],histor:[1,3,4,5,6,12,14,15],histori:5,hold:4,homepag:5,host:4,hour:6,how:[1,10,11],howev:[6,7,10,11,12],http:[1,2,3,4,7,8,12,14,15],huge:6,hyphen:14,idea:1,identifi:12,imit:14,immedi:[1,7],immin:15,implement:[0,1,8,11,12],impli:4,implicitli:1,impos:11,imposs:6,improv:14,inappropri:9,incident:3,includ:[0,1,3,4,6,9,12],inconsist:4,increas:[1,9],indent:3,independ:7,index:[1,3,5,7,12,14],indic:[0,1,4,10,13],individu:[2,3],infer:[1,12],inform:[1,5,9,10,12],init:12,initramf:4,instal:[0,1,5,8,12,14],install_mask:6,instead:[1,4,8],instruct:11,intend:10,interchang:1,interest:[7,9],intern:13,introduc:[6,8,14],introduct:[5,14],invalid:12,invari:12,investig:3,involv:0,ish:3,isol:4,issu:[0,6,8,14],its:[1,4,8,10,11],itself:11,ius:12,job:12,justifi:15,keep:6,kept:7,keyword:5,kind:0,knowledg:9,known:[0,7,12],lack:10,languag:5,larg:[3,9,10],larger:4,last:[7,9],later:8,latter:[1,4,10,12,14],layout:[2,5,11],lead:15,least:[1,3,7,12],leav:[3,15],lengthen:14,less:[0,3,10,12],level:[3,4,11],lib64:4,lib:[1,4,6],libbar:1,libexec:4,libfoo:1,libfrobn:1,libpython:8,librari:[1,5],libreoffic:6,libtool:5,licens:5,life:8,like:14,likeli:0,likewis:1,limit:[0,3],line:5,liner:6,link:[1,5,6,8,12],linker:[0,4],lint:[0,3],linux:11,list:[0,2,4,6,9,10,11,12,15],liter:3,littl:[3,12],load:3,loader:[4,6],local:[6,14],locat:[3,5,6,12],log:[1,4,10,14],logic:[1,10],longer:[1,4,9],lose:[1,8],lost:9,lot:10,low:14,lowest:15,made:[4,14],mai:[1,4,6,11,14],mail:[0,7,9,11],maintain:[0,2,4,5,7,8,10,11,13],mainten:[3,8,9],major:[0,8,11,12,15],make:[1,3,4,5,6,8,9,10,12,14],manag:[0,1,4,5,12],mani:[1,4,6,8,9,11,12],manual:[5,14],marker:12,match:[1,8,15],mean:[1,14],meaning:5,meant:[5,7,9,13],measur:0,meet:[1,4,10,14],member:[0,9],mention:10,mere:9,messag:[1,12,14],metadata:[2,4,5,9],method:3,mgorni:13,might:6,migrat:[2,15],minim:8,minor:[0,7],mismatch:14,miss:[1,12],mistak:[0,1,12],modern:4,modifi:3,modul:8,moment:1,more:[3,6,10,11,12,14],most:3,motiv:5,mount:4,move:[3,4],mtab:4,much:[6,12],multi:3,multilib:5,multipl:[3,12,14],multislot:5,must:[1,4,5,6,7,8,9,14,15],name:[3,4,5,6],necessari:[1,6,9,14],need:[1,4,6,9,10,11,12,14,15],needless:1,neg:[6,7],neglect:7,neither:9,never:[4,6,10],nevertheless:11,newer:2,newest:1,newli:14,next:15,nix:4,no_homepag:12,non:[0,1,3,4,7,10,12],nonfunct:1,nor:[1,9],normal:[4,12],noth:12,notic:[1,6],number:[3,8,9,15],obsolet:10,obtain:14,offer:14,often:[7,9],old:[1,4,7,8,9,12],oldid:[1,7,12,14],omit:12,onc:[1,3,7,9],one:[1,4,6,7,8,9,12],ones:15,onli:[1,3,4,6,7,10,11,12],open:[1,15],oper:[5,11],oppon:1,opportun:1,opt:4,optfeatur:1,option:[5,12,14],order:[0,1,4,6,8,10,12],org:[1,2,3,4,7,8,12,14,15],organ:10,origin:[9,10,12],other:[0,1,3,4,5,6,7,8,9,10,13,14],otherwis:[1,6],out:[1,8,9,10,14],over:[0,7],overlai:12,overlap:3,overrid:[0,11],overspecifi:12,own:4,ownership:5,packag:[0,2,3,4,5,6,7,8,12,14,15],page:[3,5,10,11],paludi:1,parallel:12,part:[1,3,4,10],partial:[3,10,11],particular:[6,10],partit:4,past:[3,10],path:[0,5,6],per:14,period:0,permit:[1,3,4,9,12],person:[0,7,14],phase:[0,3,8,14],php:[1,7,12,14],pkg:6,pkgcheck:[0,1,2,3,4,7,8,12,14,15],place:[1,6,7],plain:[1,3],pleas:[9,12],plugin:6,point:[1,4,6,10],pointless:15,polici:[1,2,6,7,9,12,13,14],port:8,portabl:[0,1,6],portag:[1,4],posix:[3,5],possibl:[0,1,3,8,9,10],potenti:[6,12],practic:[0,6],pre:12,precis:10,predict:1,prefac:5,prefer:[1,8,14],prepar:8,preprocess:3,prerequisit:12,present:12,prevent:[1,9,15],previou:[0,1,7],primari:[10,12],primit:15,principl:3,prioriti:14,privat:1,privileg:4,proactiv:[2,5],problem:[0,1],proc:4,proceed:7,process:[3,5,7,11,13,15],profil:[4,9],program:[6,8,9],proj:4,project:[0,1,3,4,5,6,7,8,9,10,11,12,13,14],prolifer:6,prone:3,propag:1,proper:14,propon:1,propos:1,protect:12,provid:[0,6,8,10,11,12,15],pull:1,purpos:[4,5,12],push:[0,15],pypi:3,python:[5,9],python_2_end:8,python_compat:8,python_gen_cond_dep:8,python_single_target:8,python_single_usedep:8,python_target:8,python_usedep:8,qt4:14,qt5:14,qualiti:0,quality_assur:[1,7,12,14],queri:[10,12],question:[0,1,4,7,9,12],rang:[1,15],rapid:15,rather:[3,10,11,14],rational:[1,3,4,5,6,7,8,9,10,12,13,14,15],reach:8,readabl:4,readi:8,readm:1,realli:[6,10],reason:[1,4,15],reassign:9,rebuild:[1,6],recommend:[3,6,11,14,15],reconsid:1,recoveri:[4,6],reduc:[0,3,8],refer:[1,2,4,5,7,8,10,12,14,15],refin:1,refus:[0,9],regard:0,regular:[14,15],reject:10,rekeyword:5,rel:4,relat:[0,10],relev:[0,7,12],reli:[1,4],reliabl:[0,8],remain:7,rememb:12,remov:[1,5,6,8,12,14,15],render:3,repair:4,repeat:[0,3],replac:[2,6,10,14],repo:[2,4],repoman:[0,1,2,3,4,7,15],report:[0,1,2,3,4,6,7,8,9,12,14,15],repositori:[0,10,11,12],request:[0,1,7,15],requir:[1,4,6,8,10,11,12,15],resembl:14,reserv:[14,15],resign:9,resolv:[0,12],respond:7,respons:[1,12,14,15],restrict:[1,4,5,10,11],result:[1,15],retest:7,retir:8,reus:15,revers:[1,6,8],review:[11,15],revis:[4,5],risk:0,rite:7,role:0,root:4,rootf:4,rule:[3,7,11,12,14,15],run:[0,4],runtim:[5,8,12],same:[0,12,15],sbin:4,scale:10,scan:0,scatter:10,scope:12,score:4,script:[4,8,12],search:5,second:15,section:[1,2],secur:6,select:15,self:4,send:9,separ:[5,12],serv:15,servic:[0,6],set:[1,3,5,10,13,14],setgid:4,setup:[0,4],share:[4,6],sharealik:13,shell:6,shorter:14,should:[0,1,2,4,6,7,8,10,11,12,14,15],side:1,silent:9,similar:12,simpl:[14,15],simplest:12,simpli:1,simplifi:15,simultan:12,sinc:[3,4,6,12,14],singl:[5,10,12],size:6,skip:12,slack:7,slot:[5,8],small:[4,5,9],smaller:6,softwar:[0,4,11],sole:9,solut:1,some:[4,7,10,12],soon:8,sooner:8,sourc:[1,2,3,4,5,6,7,8,9,10,12,13,14,15],space:[4,12],span:1,special:[4,5,12,14],specif:[0,1,5,6,10,12,13,14],specifi:[1,3,11,12],spend:6,spirit:10,split:9,src:4,src_uri:5,srv:4,stabil:5,stabl:[1,5],stale:10,standard:[3,5],start:[1,10,15],state:[4,5,12],still:[1,4,7,14],store:2,strict:5,strictli:[4,12],strip:6,strongli:6,style:[1,5],sub:5,subdirectori:4,subpag:12,subsequ:11,subset:7,subslot:5,subtli:4,success:15,suffer:9,suffici:10,suffix:4,suggest:[2,11],summari:[1,4,14],supplement:[0,6],suppli:[5,13],support:[0,1,3,5,6,8,12,14],suppos:4,sure:[3,9],surpris:[0,3],symbol:5,symlink:4,sync:15,synchron:15,syntax:3,system:[0,5,6,11,12,15],systemd:[0,6],tab:3,take:[0,1,7,9],target:5,task:0,team:[0,3,4,5,7,9,10,13,14],technic:[4,6,9,10,11,12,14],temporarili:12,tent:1,term:8,termin:3,test:[0,3,5],text:13,than:[0,3,6,8,10,11,14],thei:[0,1,4,6,7,9,12,14],them:[0,4,6,9,10,11,14],themselv:6,therefor:[1,3,4,5,10,13],thi:[0,1,3,4,6,7,9,10,11,12,13,14,15],those:[0,3,4,8,9,12],three:[0,1],through:[8,11],tild:1,time:[0,1,7,8,10,12],timefram:1,tini:6,tip:10,titl:[1,7,12,14],todai:6,toggl:1,tool:[0,1,3,6],toolchain:[4,12],toolkit:14,top:4,tracker:12,tree:[0,2,4,5,10,11,13],trigger:[0,12],triplet:4,trivial:[0,12],turn:[10,12],two:[0,12],txt:[1,4,14,15],udev:4,uid:15,unclear:10,uncommon:[1,6],uncondition:[6,12],undefin:12,under:[1,12,13],underscor:5,understand:10,unfair:9,unit:[0,6],unless:[1,6,8,9,15],unmaintain:9,unnecessari:[3,6,7,8,14],unnecessarili:[1,14],unpredict:12,unprefix:14,unreli:1,unset:12,until:8,unus:3,unwilling:0,updat:[1,2,5,10,11,13,15],upgrad:[8,12],upon:11,upstream:[4,8,12],uri:3,usag:[1,5,10],use:[0,2,3,4,5,6,8,10,12,14,15],use_expand:14,used:[1,2,3,4,6,8,9,12,14,15],usefulness:3,user:[0,1,4,5,6,8,9,12,14],uses:[1,8,12,14],using:[0,1,3,4,6,8,12,15],usr:5,usual:[1,12],valid:14,valu:[1,3,4,5],variabl:[5,8],variant:4,variou:[0,9,10,14],verbatim:3,veri:[1,4,6,9,10,14,15],verifi:[1,12],version:[1,2,3,4,5,12,15],versioned_use_flag:14,via:[3,4,10,11,12,14,15],violat:[0,12],wai:[1,10,12,14],want:[7,14],warn:1,wast:4,web:[4,12],well:[3,5,7,10,11,12,13],were:[1,3,6,7,10,12,15],what:9,when:[0,1,2,3,4,6,9,11,12,14],whenev:[1,3,4,6,7,11,12,14],where:4,whether:[0,1,7],which:[1,3,5,7,10,12,13,14],who:[1,6,7,9,10,14],whole:8,why:9,wide:0,wider:10,widget:14,width:3,wiki:[1,7,8,10,11,12,14],wildcard:1,wish:[6,14],within:[1,4,5,7,9,14],without:[0,3,4,5],word:10,work:[0,3,4,7,12,13,14],world:4,wors:9,would:[4,10],wrap:3,writabl:4,written:[0,1,9,10],wrong:[4,12],www:12,xml:9,yet:1,you:1,your:1,zeroth:1},titles:["Basic information","Dependencies","Deprecations","Ebuild file format","File system layout","Gentoo Policy Guide","Installed files","Keywording and stabilization","Language-specific policies","Package Maintainers","Motivation and history","Other policy documents","Other metadata variables","Preface","USE flags","Users and groups"],titleterms:{"case":1,"new":[7,9],"static":[4,6],Adding:9,FHS:11,USE:[1,12,14],absolut:4,account:15,appeal:0,author:13,basic:0,bump:1,chang:[0,1],check:0,code:3,complianc:0,contain:3,defin:3,depend:1,deprec:[2,8],develop:11,document:[10,11],drop:7,dynam:12,eapi:2,ebuild:3,eclass:[2,3,8],enforc:0,extern:11,file:[3,4,6],flag:[1,12,14],format:3,game:4,gentoo:[5,11],glep:11,goal:0,group:15,gui:14,guid:[5,10],histor:10,histori:10,homepag:[3,12],indic:5,inform:0,instal:[4,6],introduct:13,keyword:[3,7],languag:8,layout:4,librari:[4,6],libtool:[4,6],licens:[12,13],line:3,link:4,locat:4,maintain:9,make:0,manag:11,manual:11,meaning:12,metadata:12,motiv:10,multilib:4,multislot:12,must:[3,12],name:14,oper:1,option:1,other:[11,12],ownership:4,packag:[1,9,11],path:4,polici:[0,5,8,10,11,15],posix:11,prefac:13,proactiv:1,purpos:10,python:8,refer:3,rekeyword:7,remov:[7,9],restrict:12,revis:1,runtim:1,separ:4,singl:3,slot:[1,12],small:6,special:1,specif:[8,11],src_uri:3,stabil:7,stabl:7,standard:11,state:10,strict:4,style:3,sub:1,subslot:1,support:4,symbol:4,system:4,tabl:5,target:4,test:12,todo:[4,7,14],underscor:14,usag:8,use:1,user:15,usr:4,valu:12,variabl:[3,12],version:[7,14],within:3,without:[1,9]}})
\ No newline at end of file +Search.setIndex({docnames:["basics","dependencies","deprecation","ebuild-format","filesystem","index","installed-files","keywords","languages","maintainer","motivation","other-docs","other-metadata","preface","use-flags","user-group"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,sphinx:56},filenames:["basics.rst","dependencies.rst","deprecation.rst","ebuild-format.rst","filesystem.rst","index.rst","installed-files.rst","keywords.rst","languages.rst","maintainer.rst","motivation.rst","other-docs.rst","other-metadata.rst","preface.rst","use-flags.rst","user-group.rst"],objects:{},objnames:{},objtypes:{},terms:{"0001":1,"0002":1,"0003":1,"0011":1,"0012":1,"0021":1,"0101":3,"0102":3,"0103":3,"0104":3,"0105":3,"0201":4,"0202":4,"0203":4,"0204":4,"0205":4,"0206":4,"0301":6,"0302":6,"0303":6,"0401":7,"0402":7,"0403":7,"0501":8,"0502":8,"0601":9,"0602":9,"0603":9,"0701":12,"0702":12,"0703":12,"0704":12,"0801":14,"0802":14,"0803":14,"08gentoo":4,"0901":15,"100":[1,15],"1001":2,"1003":2,"101":15,"104017":1,"109991":[12,14],"126033":7,"2013":4,"20130813":4,"20130924":4,"20151011":[1,4],"20151213":4,"2016":12,"2019":8,"20191013":14,"2fuse":12,"499":15,"612630":3,"702460":15,"80librari":4,"80multilib":4,"83cc5bbd7bbe8bdf04dd3c3bc7f8a035":12,"999":15,"9cae3a92412a007febe7ac0612d50f5f":1,"break":[3,8],"case":[0,4,5,7,12],"class":0,"default":[1,6],"final":[0,10,11],"function":[0,3,4,8],"g\u00f3rny":13,"import":[1,8,12,15],"long":[1,7,8,12],"micha\u0142":13,"new":[2,4,5,8,10,14,15],"public":1,"static":[5,12],"switch":14,"true":15,"try":[0,3,9],"var":4,"while":[0,1,3,6,12],Adding:5,FHS:5,For:[1,4,9],Its:[0,10],PMS:[1,10,11,12],Such:[6,12],The:[0,1,2,3,4,5,7,8,9,10,11,12,13,14,15],There:[1,6,9,10],USE:[5,6],Use:3,Using:1,With:4,abi:[1,4],abil:[3,10,12],abolish:0,about:12,absolut:5,accept:[1,4,12,15],access:4,accident:8,accord:1,account:[1,3,5],acct:15,achiev:0,across:[0,10],action:0,activ:11,actual:9,add:[3,9],added:[4,6,9],adding:[1,9,15],addit:[3,4,6,10,11],addition:0,address:10,adjust:14,adopt:15,advantag:[3,14],affect:[0,3,7,12],aforement:[4,10],after:[0,1,4],afterward:14,against:[0,3,10,12],agre:9,aid:15,aim:[0,1,5,9,13,14],align:3,all:[0,1,3,5,6,7,8,9,10,11,12,13,14,15],alloc:15,allow:[3,12],along:[4,10],alreadi:[1,4,8,12],also:[0,8,10,14],alter:12,alwai:[3,4],amd64:4,amount:10,analyz:0,ani:[1,3,6,9,10,11,12,14],anoth:[1,4,12],anymor:[4,7],anywher:12,api:1,app:6,appeal:5,append:3,appli:[0,1,7,9,10,11],applic:[1,4,6,10,11,12],appropri:[4,12],approv:[1,11,15],arbitrari:15,arch:[3,7],architectur:[0,4,7],archiv:[1,6,12,14],area:0,argu:1,aris:[10,14,15],ask:[0,7],assign:[9,15],assum:[1,14],assumpt:12,attempt:[3,6,10,14],attribut:13,author:5,autom:0,autotool:6,avail:[1,10,12,14],avoid:[3,6],awar:9,backup:9,bad:[1,4,12],base:6,baselayout:15,bash:[3,6],basic:[5,11],becom:[1,5,9,13],been:[1,4,6,12,14,15],befor:[0,7,14,15],behavior:[0,1,6,12],being:[1,6,7,8,9,12],besid:11,better:[8,10],between:[4,8,12,14,15],bin:4,binari:12,bind:[5,10,13],bit:4,blurri:4,bodi:[0,5,10,13],boot:4,both:[0,3,5,6,8,13,14],boundari:4,bracket:3,breakag:[1,7],broken:4,brought:6,browser:4,bug:[3,7,9,12,15],build:[0,1,4,6,8,12,14],builtin:3,bump:[2,5,15],bundl:12,burden:9,cach:12,call:[1,8],can:[0,1,4,5,7,10,11,12,13,14,15],care:9,categori:6,caus:[1,6,7,8,12,14],cf3f5a59ac918335766632bd02438722:14,chanc:[8,9],chang:[3,5,8,11],check:[1,4,5],choic:[3,14],choos:[12,14],chosen:15,chost:4,circumst:[1,12],claim:1,clarifi:4,clean:1,clear:[5,10,13,14],close:7,code:[0,1,5,8,12],collect:10,collis:15,combin:[0,5,10,12,13],comment:9,commit:0,common:[1,3,12,13],compar:9,compat:[4,8],compil:0,complet:[6,10,12],compli:11,complianc:5,compon:0,concept:0,concis:10,condit:[3,12],conf:2,config:6,conform:[10,11],confus:[3,7,14],consent:9,consequ:6,consid:[6,12,14],consist:[0,3,8,14],construct:3,contact:0,contain:[5,9,11,14],content:[3,5],context:6,contrari:12,contribut:0,control:[1,4,6,12,14],controlled_optional_rdepend:1,convert:[3,14],copi:3,correct:[1,4,12],correctli:[0,3,4],correspond:[1,4],cost:[6,8],could:[6,9,12],council:[0,1,2,4,5,10,11,13,14],cover:12,creat:[0,4,10,11,14,15],creativ:13,cross:15,ctarget:4,cumbersom:1,current:[0,2,4,5,9,13],dai:7,data:4,debat:1,decid:[1,12],decis:[0,10],declar:12,dedic:[9,12],defer:8,defici:10,defin:[1,5,8,11,14],definit:[5,13],delai:[8,15],delet:6,depclean:12,depend:[3,5,6,7,8,12,14],dependent_slot:12,deprec:[5,15],deriv:12,design:[3,5,13],desir:15,detail:11,detect:[0,1],dev:[1,4,9,12,14],develop:[0,1,3,4,5,7,9,10,13,14,15],devmanu:[10,11],did:[6,10,12],die:6,differ:[0,1,3,12],difficult:4,direct:[0,12],directli:[0,8,10],directori:[3,4],disabl:[1,12],disagre:[0,11],disciplinari:0,discourag:[6,14],discov:14,discuss:[11,14],distinguish:[9,14],distribut:[4,11],distro:15,doc:4,document:[0,5,12,13],doe:[1,6,7,9,11,12],done:11,dosym:4,doubt:[0,15],down:[0,10],download:12,downward:15,drop:[5,9],dropping_stable_keyword:7,due:[1,4,6,7],duplic:7,dure:[1,4],dynam:[1,3,4,5,15],each:[0,1,10,12],eapi:[5,11],earli:[4,8],easi:[0,12],easier:[0,14],easili:9,eblit:3,ebuild:[0,1,2,4,5,6,8,10,11,12],eclass:[1,5,12,15],eclassdoc:2,edit:[3,10],editor:3,educ:0,effect:12,effort:[0,7],eight:10,either:[1,4,6,7,8,12,14],ekeyword:3,elog:1,emerg:12,enabl:[1,6,12,14],encourag:3,end:[0,8,9,14],enforc:[3,5,11,12],enough:12,ensur:[1,4,8,12],entri:[3,15],equal:1,equival:1,error:[1,3,12],especi:[1,4],establish:10,etc:[0,3,4],eutil:1,eval:3,even:[1,12,14],everi:10,exampl:[1,4,6,9,12],except:[1,4,7],execut:[0,4,12],exempt:7,exist:[1,2,8,12,14,15],expect:[0,2],experi:0,experienc:[0,1],experiment:7,explan:10,explicit:[1,12],explicitli:[1,3,6,8,9,10,12,14,15],exponenti:8,express:[12,14],extend:14,extern:[3,5],fact:1,facto:10,fail:12,fallback:6,far:[0,10,12],fatal:[4,12],favor:15,featur:[1,12],few:[3,14],file:[0,2,5,7,9,10,12],filesystem:[4,11],find:[6,9,10,12],first:[6,7],fit:9,fix:[0,9,15],flag:[0,5,6],flat:[10,14],flip:1,focu:0,focus:[0,10],follow:[0,4,6,7,9,11,15],foo:[1,3],forbidden:[3,9,12],form:[3,10,14],formal:10,format:[5,11,12],former:[1,10],found:[4,10],free:15,frequent:[8,9],frobnic:4,from:[1,3,4,7,9,10,12,15],fulfil:4,full:[4,6],fulli:3,further:[0,15],furthermor:[1,3,4,9,10,12],futur:[1,7,9,11,14,15],game:5,gamestat:4,gap:15,gener:[3,4,6,11,12,14],gentoo:[0,1,2,3,4,7,8,9,10,12,13,14,15],get:1,gid:15,git:[2,4],github:3,gitweb:[2,4],give:8,glep:[0,1,5,15],global:[5,12,13,14],gnu:4,goal:[5,6],goe:3,going:[6,10],good:[1,4,12,15],govern:0,gpl:12,grab:9,gracefulli:[8,12],grant:4,graph:[1,7,8],grep:[3,9],group:[4,5,9],grow:8,gtk2:[1,14],gtk3:14,gtk:14,guarante:[8,12],gui:5,guid:[11,13],guidelin:[4,11],guix:4,hack:4,had:[1,7],hand:3,handl:[8,12],hard:[3,9,10,12,14],hardcod:[4,6],harder:3,harm:[6,12],has:[1,3,4,6,8,12,14,15],have:[1,3,6,7,8,12,15],help:[0,1,3,9],helper:8,here:[6,7,10],hierarch:14,hierarchi:4,high:4,highest:11,highlight:3,his:[0,8],histor:[1,3,4,5,6,12,14,15],histori:5,hold:4,homepag:5,host:4,hour:6,how:[1,10,11],howev:[6,7,10,11,12],http:[1,2,3,4,7,8,12,14,15],huge:6,hyphen:14,idea:1,identifi:12,imit:14,immedi:[1,7],immin:15,implement:[0,1,8,11,12],impli:4,implicitli:1,impos:11,imposs:6,improv:14,inappropri:9,incident:3,includ:[0,1,3,4,6,9,12],inconsist:4,increas:[1,9],indent:3,independ:7,index:[1,3,5,7,12,14],indic:[0,1,2,4,10,13],individu:[2,3],infer:[1,12],inform:[1,5,9,10,12],init:12,initramf:4,insid:2,instal:[0,1,5,8,12,14],install_mask:6,instead:[1,4,8],instruct:11,intend:10,interchang:1,interest:[7,9],intern:13,introduc:[6,8,14],introduct:[5,14],invalid:12,invari:12,investig:3,involv:0,ish:3,isol:4,issu:[0,6,8,14],its:[1,4,8,10,11],itself:11,ius:12,job:12,justifi:15,keep:6,kept:7,keyword:5,kind:0,knowledg:9,known:[0,7,12],lack:10,languag:5,larg:[3,9,10],larger:4,last:[7,9],later:8,latter:[1,4,10,12,14],layout:[2,5,11],lead:15,least:[1,3,7,12],leav:[3,15],lengthen:14,less:[0,3,10,12],level:[3,4,11],lib64:4,lib:[1,4,6],libbar:1,libexec:4,libfoo:1,libfrobn:1,libpython:8,librari:[1,5],libreoffic:6,libtool:5,licens:5,life:8,like:14,likeli:0,likewis:1,limit:[0,3],line:5,liner:6,link:[1,5,6,8,12],linker:[0,4],lint:[0,3],linux:11,list:[0,2,4,6,9,10,11,12,15],liter:3,littl:[3,12],load:3,loader:[4,6],local:[6,14],locat:[3,5,6,12],log:[1,4,10,14],logic:[1,10],longer:[1,4,9],lose:[1,8],lost:9,lot:10,low:14,lowest:15,made:[4,14],mai:[1,4,6,11,14],mail:[0,7,9,11],maintain:[0,2,4,5,7,8,10,11,13],mainten:[3,8,9],major:[0,8,11,12,15],make:[1,3,4,5,6,8,9,10,12,14],manag:[0,1,4,5,12],mani:[1,4,6,8,9,11,12],manual:[5,14],marker:12,match:[1,8,15],mean:[1,14],meaning:5,meant:[5,7,9,13],measur:0,meet:[1,4,10,14],member:[0,9],mention:10,mere:9,messag:[1,12,14],metadata:[2,4,5,9],method:3,mgorni:13,might:6,migrat:[2,15],minim:8,minor:[0,7],mismatch:14,miss:[1,12],mistak:[0,1,12],modern:4,modifi:3,modul:8,moment:1,more:[3,6,10,11,12,14],most:3,motiv:5,mount:4,move:[3,4],mtab:4,much:[6,12],multi:3,multilib:5,multipl:[3,12,14],multislot:5,must:[1,4,5,6,7,8,9,14,15],name:[3,4,5,6],necessari:[1,6,9,14],need:[1,4,6,9,10,11,12,14,15],needless:1,neg:[6,7],neglect:7,neither:9,never:[4,6,10],nevertheless:11,newer:2,newest:1,newli:14,next:15,nix:4,no_homepag:12,non:[0,1,3,4,7,10,12],nonfunct:1,nor:[1,9],normal:[4,12],noth:12,notic:[1,6],number:[3,8,9,15],obsolet:10,obtain:14,offer:14,often:[7,9],old:[1,4,7,8,9,12],oldid:[1,7,12,14],omit:12,onc:[1,3,7,9],one:[1,4,6,7,8,9,12],ones:15,onli:[1,3,4,6,7,10,11,12],open:[1,15],oper:[5,11],oppon:1,opportun:1,opt:4,optfeatur:1,option:[5,12,14],order:[0,1,4,6,8,10,12],org:[1,2,3,4,7,8,12,14,15],organ:10,origin:[9,10,12],other:[0,1,3,4,5,6,7,8,9,10,13,14],otherwis:[1,6],out:[1,8,9,10,14],over:[0,7],overlai:12,overlap:3,overrid:[0,11],overspecifi:12,own:4,ownership:5,packag:[0,2,3,4,5,6,7,8,12,14,15],page:[3,5,10,11],paludi:1,parallel:12,part:[1,3,4,10],partial:[3,10,11],particular:[6,10],partit:4,past:[3,10],path:[0,5,6],per:14,period:0,permit:[1,3,4,9,12],person:[0,7,14],phase:[0,3,8,14],php:[1,7,12,14],pkg:6,pkgcheck:[0,1,2,3,4,7,8,12,14,15],place:[1,6,7],plain:[1,3],pleas:[9,12],plugin:6,point:[1,4,6,10],pointless:15,polici:[1,2,6,7,9,12,13,14],port:8,portabl:[0,1,6],portag:[1,4],posix:[3,5],possibl:[0,1,3,8,9,10],potenti:[6,12],practic:[0,6],pre:12,precis:10,predict:1,prefac:5,prefer:[1,8,14],prepar:8,preprocess:3,prerequisit:12,present:12,prevent:[1,9,15],previou:[0,1,7],primari:[10,12],primit:15,principl:3,prioriti:14,privat:1,privileg:4,proactiv:[2,5],problem:[0,1],proc:4,proceed:7,process:[3,5,7,11,13,15],profil:[4,9],program:[6,8,9],proj:4,project:[0,1,3,4,5,6,7,8,9,10,11,12,13,14],prolifer:6,prone:3,propag:1,proper:14,propon:1,propos:1,protect:12,provid:[0,6,8,10,11,12,15],pull:1,purpos:[4,5,12],push:[0,15],pypi:3,python:[5,9],python_2_end:8,python_compat:8,python_gen_cond_dep:8,python_single_target:8,python_single_usedep:8,python_target:8,python_usedep:8,qt4:14,qt5:14,qualiti:0,quality_assur:[1,7,12,14],queri:[10,12],question:[0,1,4,7,9,12],rang:[1,15],rapid:15,rather:[3,10,11,14],rational:[1,3,4,5,6,7,8,9,10,12,13,14,15],reach:8,readabl:4,readi:8,readm:1,realli:[6,10],reason:[1,4,15],reassign:9,rebuild:[1,6],recommend:[3,6,11,14,15],reconsid:1,recoveri:[4,6],reduc:[0,3,8],refer:[1,2,4,5,7,8,10,12,14,15],refin:1,refus:[0,9],regard:0,regular:[14,15],reject:10,rekeyword:5,rel:4,relat:[0,10],relev:[0,7,12],reli:[1,4],reliabl:[0,8],remain:7,rememb:12,remov:[1,5,6,8,12,14,15],render:3,repair:4,repeat:[0,3],replac:[6,10,14],repo:[2,4],repoman:[0,1,2,3,4,7,15],report:[0,1,2,3,4,6,7,8,9,12,14,15],repositori:[0,10,11,12],request:[0,1,7,15],requir:[1,4,6,8,10,11,12,15],resembl:14,reserv:[14,15],resign:9,resolv:[0,12],respond:7,respons:[1,12,14,15],restrict:[1,4,5,10,11],result:[1,15],retest:7,retir:8,reus:15,revers:[1,6,8],review:[11,15],revis:[4,5],risk:0,rite:7,role:0,root:4,rootf:4,rule:[3,7,11,12,14,15],run:[0,4],runtim:[5,8,12],same:[0,12,15],sbin:4,scale:10,scan:0,scatter:10,scope:12,score:4,script:[4,8,12],search:5,second:15,section:1,secur:6,select:15,self:4,send:9,separ:[5,12],serv:15,servic:[0,6],set:[1,3,5,10,13,14],setgid:4,setup:[0,4],share:[4,6],sharealik:13,shell:6,shorter:14,should:[0,1,2,4,6,7,8,10,11,12,14,15],side:1,silent:9,similar:12,simpl:[14,15],simplest:12,simpli:1,simplifi:15,simultan:12,sinc:[3,4,6,12,14],singl:[5,10,12],size:6,skip:12,slack:7,slot:[5,8],small:[4,5,9],smaller:6,softwar:[0,4,11],sole:9,solut:1,some:[4,7,10,12],soon:8,sooner:8,sourc:[1,2,3,4,5,6,7,8,9,10,12,13,14,15],space:[4,12],span:1,special:[4,5,12,14],specif:[0,1,5,6,10,12,13,14],specifi:[1,3,11,12],spend:6,spirit:10,split:9,src:4,src_uri:5,srv:4,stabil:5,stabl:[1,5],stale:10,standard:[3,5],start:[1,10,15],state:[4,5,12],still:[1,4,7,14],store:2,strict:5,strictli:[4,12],strip:6,strongli:6,style:[1,5],sub:5,subdirectori:4,subpag:12,subsequ:11,subset:7,subslot:5,subtli:4,success:15,suffer:9,suffici:10,suffix:4,suggest:11,summari:[1,4,14],supplement:[0,6],suppli:[5,13],support:[0,1,3,5,6,8,12,14],suppos:4,sure:[3,9],surpris:[0,3],symbol:5,symlink:4,sync:15,synchron:15,syntax:3,system:[0,5,6,11,12,15],systemd:[0,6],tab:3,tag:2,take:[0,1,7,9],target:5,task:0,team:[0,3,4,5,7,9,10,13,14],technic:[4,6,9,10,11,12,14],temporarili:12,tent:1,term:8,termin:3,test:[0,3,5],text:13,than:[0,3,6,8,10,11,14],thei:[0,1,4,6,7,9,12,14],them:[0,4,6,9,10,11,14],themselv:6,therefor:[1,3,4,5,10,13],thi:[0,1,3,4,6,7,9,10,11,12,13,14,15],those:[0,3,4,8,9,12],three:[0,1],through:[8,11],tild:1,time:[0,1,7,8,10,12],timefram:1,tini:6,tip:10,titl:[1,7,12,14],todai:6,toggl:1,tool:[0,1,3,6],toolchain:[4,12],toolkit:14,top:4,tracker:12,tree:[0,2,4,5,10,11,13],trigger:[0,12],triplet:4,trivial:[0,12],turn:[10,12],two:[0,12],txt:[1,4,14,15],udev:4,uid:15,unclear:10,uncommon:[1,6],uncondition:[6,12],undefin:12,under:[1,12,13],underscor:5,understand:10,unfair:9,unit:[0,6],unless:[1,6,8,9,15],unmaintain:9,unnecessari:[3,6,7,8,14],unnecessarili:[1,14],unpredict:12,unprefix:14,unreli:1,unset:12,until:8,unus:3,unwilling:0,updat:[1,2,5,10,11,13,15],upgrad:[8,12],upon:11,upstream:[4,8,12],uri:3,usag:[1,5,10],use:[0,2,3,4,5,6,8,10,12,14,15],use_expand:14,used:[1,2,3,4,6,8,9,12,14,15],usefulness:3,user:[0,1,4,5,6,8,9,12,14],uses:[1,8,12,14],using:[0,1,2,3,4,6,8,12,15],usr:5,usual:[1,12],valid:14,valu:[1,3,4,5],variabl:[5,8],variant:4,variou:[0,9,10,14],verbatim:3,veri:[1,4,6,9,10,14,15],verifi:[1,12],version:[1,2,3,4,5,12,15],versioned_use_flag:14,via:[3,4,10,11,12,14,15],violat:[0,12],wai:[1,10,12,14],want:[7,14],warn:1,wast:4,web:[4,12],well:[3,5,7,10,11,12,13],were:[1,3,6,7,10,12,15],what:9,when:[0,1,2,3,4,6,9,11,12,14],whenev:[1,3,4,6,7,11,12,14],where:4,whether:[0,1,7],which:[1,3,5,7,10,12,13,14],who:[1,6,7,9,10,14],whole:8,why:9,wide:0,wider:10,widget:14,width:3,wiki:[1,7,8,10,11,12,14],wildcard:1,wish:[6,14],within:[1,4,5,7,9,14],without:[0,3,4,5],word:10,work:[0,3,4,7,12,13,14],world:4,wors:9,would:[4,10],wrap:3,writabl:4,written:[0,1,9,10],wrong:[4,12],www:12,xml:9,yet:1,you:1,your:1,zeroth:1},titles:["Basic information","Dependencies","Deprecations","Ebuild file format","File system layout","Gentoo Policy Guide","Installed files","Keywording and stabilization","Language-specific policies","Package Maintainers","Motivation and history","Other policy documents","Other metadata variables","Preface","USE flags","Users and groups"],titleterms:{"case":1,"new":[7,9],"static":[4,6],Adding:9,FHS:11,USE:[1,12,14],absolut:4,account:15,appeal:0,author:13,basic:0,bump:1,chang:[0,1],check:0,code:3,complianc:0,contain:3,defin:3,depend:1,deprec:[2,8],develop:11,document:[10,11],drop:7,dynam:12,eapi:2,ebuild:3,eclass:[2,3,8],enforc:0,extern:11,file:[3,4,6],flag:[1,12,14],format:3,game:4,gentoo:[5,11],glep:11,goal:0,group:15,gui:14,guid:[5,10],histor:10,histori:10,homepag:[3,12],indic:5,inform:0,instal:[4,6],introduct:13,keyword:[3,7],languag:8,layout:4,librari:[4,6],libtool:[4,6],licens:[12,13],line:3,link:4,locat:4,maintain:9,make:0,manag:11,manual:11,meaning:12,metadata:12,motiv:10,multilib:4,multislot:12,must:[3,12],name:14,oper:1,option:1,other:[11,12],ownership:4,packag:[1,9,11],path:4,polici:[0,5,8,10,11,15],posix:11,prefac:13,proactiv:1,purpos:10,python:8,refer:3,rekeyword:7,remov:[7,9],restrict:12,revis:1,runtim:1,separ:4,singl:3,slot:[1,12],small:6,special:1,specif:[8,11],src_uri:3,stabil:7,stabl:7,standard:11,state:10,strict:4,style:3,sub:1,subslot:1,support:4,symbol:4,system:4,tabl:5,target:4,test:12,todo:[4,7,14],underscor:14,usag:8,use:1,user:15,usr:4,valu:12,variabl:[3,12],version:[7,14],within:3,without:[1,9]}})
\ No newline at end of file diff --git a/std-policy-index.html b/std-policy-index.html index c88272d..b0f1c7c 100644 --- a/std-policy-index.html +++ b/std-policy-index.html @@ -398,7 +398,7 @@ <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/use-flags.html b/use-flags.html index ce44ef3..99ef2d6 100644 --- a/use-flags.html +++ b/use-flags.html @@ -307,7 +307,7 @@ or underscores depending on developer’s personal preference.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> diff --git a/user-group.html b/user-group.html index 7ed35d6..87c2515 100644 --- a/user-group.html +++ b/user-group.html @@ -252,7 +252,7 @@ been reserved for true system users and groups.</p> <h3 class="footerhead">Gentoo Policy Guide </h3> <div class="row"> <div class="col-xs-12 col-md-4"> - <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.2.1</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> + <span class="kk-group-header">Powered by</span><br><span><a href="http://sphinx-doc.org/">Sphinx 3.3.0</a> & <a href="https://github.com/mmagorsc/tyrian_sphinx_theme">Tyrian Theme 0.0.7</a></span> </div> <div class="col-xs-12 col-md-4"> </div> |