{"version":3,"file":"runestone.61f83a67b708750a.bundle.js","mappings":"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","sources":["webpack://WebComponents/./runestone/common/js/bookfuncs.js","webpack://WebComponents/./runestone/common/js/jquery.idle-timer.js","webpack://WebComponents/./runestone/common/js/jquery_i18n/jquery.i18n.emitter.bidi.js","webpack://WebComponents/./runestone/common/js/jquery_i18n/jquery.i18n.emitter.js","webpack://WebComponents/./runestone/common/js/jquery_i18n/jquery.i18n.fallbacks.js","webpack://WebComponents/./runestone/common/js/jquery_i18n/jquery.i18n.js","webpack://WebComponents/./runestone/common/js/jquery_i18n/jquery.i18n.language.js","webpack://WebComponents/./runestone/common/js/jquery_i18n/jquery.i18n.messagestore.js","webpack://WebComponents/./runestone/common/js/jquery_i18n/jquery.i18n.parser.js","webpack://WebComponents/./runestone/common/js/presenter_mode.js","webpack://WebComponents/./runestone/common/js/runestonebase.js","webpack://WebComponents/./runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.js","webpack://WebComponents/./runestone/common/js/user-highlights.js","webpack://WebComponents/./runestone/common/js/pretext.js","webpack://WebComponents/./webpack.index.js","webpack://WebComponents/./runestone/common/js/theme.js","webpack://WebComponents/external var \"jQuery\""],"sourcesContent":["/**\n *\n * User: bmiller\n * Original: 2011-04-20\n * Date: 2019-06-14\n * Time: 2:01 PM\n * This change marks the beginning of version 4.0 of the runestone components\n * Login/logout is no longer handled through javascript but rather server side.\n * Many of the components depend on the runestone:login event so we will keep that\n * for now to keep the churn fairly minimal.\n */\n\n/*\n\n Copyright (C) 2011 Brad Miller bonelake@gmail.com\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with this program. If not, see
load('path/to/all_localizations.json');
\n\t\t *\n\t\t * To load a localization file for a locale:\n\t\t * \n\t\t * load('path/to/de-messages.json', 'de' );\n\t\t *
\n\t\t *\n\t\t * To load a localization file from a directory:\n\t\t * \n\t\t * load('path/to/i18n/directory', 'de' );\n\t\t *
\n\t\t * The above method has the advantage of fallback resolution.\n\t\t * ie, it will automatically load the fallback locales for de.\n\t\t * For most usecases, this is the recommended method.\n\t\t * It is optional to have trailing slash at end.\n\t\t *\n\t\t * A data object containing message key- message translation mappings\n\t\t * can also be passed. Example:\n\t\t * \n\t\t * load( { 'hello' : 'Hello' }, optionalLocale );\n\t\t *
\n\t\t *\n\t\t * A source map containing key-value pair of languagename and locations\n\t\t * can also be passed. Example:\n\t\t * \n\t\t * load( {\n\t\t * bn: 'i18n/bn.json',\n\t\t * he: 'i18n/he.json',\n\t\t * en: 'i18n/en.json'\n\t\t * } )\n\t\t *
\n\t\t *\n\t\t * If the data argument is null/undefined/false,\n\t\t * all cached messages for the i18n instance will get reset.\n\t\t *\n\t\t * @param {string|Object} source\n\t\t * @param {string} locale Language tag\n\t\t * @return {jQuery.Promise}\n\t\t */\n\t\tload: function ( source, locale ) {\n\t\t\tvar fallbackLocales, locIndex, fallbackLocale, sourceMap = {};\n\t\t\tif ( !source && !locale ) {\n\t\t\t\tsource = 'i18n/' + $.i18n().locale + '.json';\n\t\t\t\tlocale = $.i18n().locale;\n\t\t\t}\n\t\t\tif ( typeof source === 'string' &&\n\t\t\t\t// source extension should be json, but can have query params after that.\n\t\t\t\tsource.split( '?' )[ 0 ].split( '.' ).pop() !== 'json'\n\t\t\t) {\n\t\t\t\t// Load specified locale then check for fallbacks when directory is\n\t\t\t\t// specified in load()\n\t\t\t\tsourceMap[ locale ] = source + '/' + locale + '.json';\n\t\t\t\tfallbackLocales = ( $.i18n.fallbacks[ locale ] || [] )\n\t\t\t\t\t.concat( this.options.fallbackLocale );\n\t\t\t\tfor ( locIndex = 0; locIndex < fallbackLocales.length; locIndex++ ) {\n\t\t\t\t\tfallbackLocale = fallbackLocales[ locIndex ];\n\t\t\t\t\tsourceMap[ fallbackLocale ] = source + '/' + fallbackLocale + '.json';\n\t\t\t\t}\n\t\t\t\treturn this.load( sourceMap );\n\t\t\t} else {\n\t\t\t\treturn this.messageStore.load( source, locale );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Does parameter and magic word substitution.\n\t\t *\n\t\t * @param {string} key Message key\n\t\t * @param {Array} parameters Message parameters\n\t\t * @return {string}\n\t\t */\n\t\tparse: function ( key, parameters ) {\n\t\t\tvar message = this.localize( key );\n\t\t\t// FIXME: This changes the state of the I18N object,\n\t\t\t// should probably not change the 'this.parser' but just\n\t\t\t// pass it to the parser.\n\t\t\tthis.parser.language = $.i18n.languages[ $.i18n().locale ] || $.i18n.languages[ 'default' ];\n\t\t\tif ( message === '' ) {\n\t\t\t\tmessage = key;\n\t\t\t}\n\t\t\treturn this.parser.parse( message, parameters );\n\t\t}\n\t};\n\n\t/**\n\t * Process a message from the $.I18N instance\n\t * for the current document, stored in jQuery.data(document).\n\t *\n\t * @param {string} key Key of the message.\n\t * @param {string} param1 [param...] Variadic list of parameters for {key}.\n\t * @return {string|$.I18N} Parsed message, or if no key was given\n\t * the instance of $.I18N is returned.\n\t */\n\t$.i18n = function ( key, param1 ) {\n\t\tvar parameters,\n\t\t\ti18n = $.data( document, 'i18n' ),\n\t\t\toptions = typeof key === 'object' && key;\n\n\t\t// If the locale option for this call is different then the setup so far,\n\t\t// update it automatically. This doesn't just change the context for this\n\t\t// call but for all future call as well.\n\t\t// If there is no i18n setup yet, don't do this. It will be taken care of\n\t\t// by the `new I18N` construction below.\n\t\t// NOTE: It should only change language for this one call.\n\t\t// Then cache instances of I18N somewhere.\n\t\tif ( options && options.locale && i18n && i18n.locale !== options.locale ) {\n\t\t\ti18n.locale = options.locale;\n\t\t}\n\n\t\tif ( !i18n ) {\n\t\t\ti18n = new I18N( options );\n\t\t\t$.data( document, 'i18n', i18n );\n\t\t}\n\n\t\tif ( typeof key === 'string' ) {\n\t\t\tif ( param1 !== undefined ) {\n\t\t\t\tparameters = slice.call( arguments, 1 );\n\t\t\t} else {\n\t\t\t\tparameters = [];\n\t\t\t}\n\n\t\t\treturn i18n.parse( key, parameters );\n\t\t} else {\n\t\t\t// FIXME: remove this feature/bug.\n\t\t\treturn i18n;\n\t\t}\n\t};\n\n\t$.fn.i18n = function () {\n\t\tvar i18n = $.data( document, 'i18n' );\n\n\t\tif ( !i18n ) {\n\t\t\ti18n = new I18N();\n\t\t\t$.data( document, 'i18n', i18n );\n\t\t}\n\n\t\treturn this.each( function () {\n\t\t\tvar $this = $( this ),\n\t\t\t\tmessageKey = $this.data( 'i18n' ),\n\t\t\t\tlBracket, rBracket, type, key;\n\n\t\t\tif ( messageKey ) {\n\t\t\t\tlBracket = messageKey.indexOf( '[' );\n\t\t\t\trBracket = messageKey.indexOf( ']' );\n\t\t\t\tif ( lBracket !== -1 && rBracket !== -1 && lBracket < rBracket ) {\n\t\t\t\t\ttype = messageKey.slice( lBracket + 1, rBracket );\n\t\t\t\t\tkey = messageKey.slice( rBracket + 1 );\n\t\t\t\t\tif ( type === 'html' ) {\n\t\t\t\t\t\t$this.html( i18n.parse( key ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$this.attr( type, i18n.parse( key ) );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$this.text( i18n.parse( messageKey ) );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t$this.find( '[data-i18n]' ).i18n();\n\t\t\t}\n\t\t} );\n\t};\n\n\tfunction getDefaultLocale() {\n\t\tvar nav, locale = $( 'html' ).attr( 'lang' );\n\n\t\tif ( !locale ) {\n\t\t\tif ( typeof window.navigator !== undefined ) {\n\t\t\t\tnav = window.navigator;\n\t\t\t\tlocale = nav.language || nav.userLanguage || '';\n\t\t\t} else {\n\t\t\t\tlocale = '';\n\t\t\t}\n\t\t}\n\t\treturn locale;\n\t}\n\n\t$.i18n.languages = {};\n\t$.i18n.messageStore = $.i18n.messageStore || {};\n\t$.i18n.parser = {\n\t\t// The default parser only handles variable substitution\n\t\tparse: function ( message, parameters ) {\n\t\t\treturn message.replace( /\\$(\\d+)/g, function ( str, match ) {\n\t\t\t\tvar index = parseInt( match, 10 ) - 1;\n\t\t\t\treturn parameters[ index ] !== undefined ? parameters[ index ] : '$' + match;\n\t\t\t} );\n\t\t},\n\t\temitter: {}\n\t};\n\t$.i18n.fallbacks = {};\n\t$.i18n.debug = false;\n\t$.i18n.log = function ( /* arguments */ ) {\n\t\tif ( window.console && $.i18n.debug ) {\n\t\t\twindow.console.log.apply( window.console, arguments );\n\t\t}\n\t};\n\t/* Static members */\n\tI18N.defaults = {\n\t\tlocale: getDefaultLocale(),\n\t\tfallbackLocale: 'en',\n\t\tparser: $.i18n.parser,\n\t\tmessageStore: $.i18n.messageStore\n\t};\n\n\t// Expose constructor\n\t$.i18n.constructor = I18N;\n}( jQuery ) );","/* global pluralRuleParser */\n( function ( $ ) {\n\t'use strict';\n\n\t// jscs:disable\n\tvar language = {\n\t\t// CLDR plural rules generated using\n\t\t// libs/CLDRPluralRuleParser/tools/PluralXML2JSON.html\n\t\tpluralRules: {\n\t\t\tak: {\n\t\t\t\tone: 'n = 0..1'\n\t\t\t},\n\t\t\tam: {\n\t\t\t\tone: 'i = 0 or n = 1'\n\t\t\t},\n\t\t\tar: {\n\t\t\t\tzero: 'n = 0',\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2',\n\t\t\t\tfew: 'n % 100 = 3..10',\n\t\t\t\tmany: 'n % 100 = 11..99'\n\t\t\t},\n\t\t\tars: {\n\t\t\t\tzero: 'n = 0',\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2',\n\t\t\t\tfew: 'n % 100 = 3..10',\n\t\t\t\tmany: 'n % 100 = 11..99'\n\t\t\t},\n\t\t\tas: {\n\t\t\t\tone: 'i = 0 or n = 1'\n\t\t\t},\n\t\t\tbe: {\n\t\t\t\tone: 'n % 10 = 1 and n % 100 != 11',\n\t\t\t\tfew: 'n % 10 = 2..4 and n % 100 != 12..14',\n\t\t\t\tmany: 'n % 10 = 0 or n % 10 = 5..9 or n % 100 = 11..14'\n\t\t\t},\n\t\t\tbh: {\n\t\t\t\tone: 'n = 0..1'\n\t\t\t},\n\t\t\tbn: {\n\t\t\t\tone: 'i = 0 or n = 1'\n\t\t\t},\n\t\t\tbr: {\n\t\t\t\tone: 'n % 10 = 1 and n % 100 != 11,71,91',\n\t\t\t\ttwo: 'n % 10 = 2 and n % 100 != 12,72,92',\n\t\t\t\tfew: 'n % 10 = 3..4,9 and n % 100 != 10..19,70..79,90..99',\n\t\t\t\tmany: 'n != 0 and n % 1000000 = 0'\n\t\t\t},\n\t\t\tbs: {\n\t\t\t\tone: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',\n\t\t\t\tfew: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'\n\t\t\t},\n\t\t\tcs: {\n\t\t\t\tone: 'i = 1 and v = 0',\n\t\t\t\tfew: 'i = 2..4 and v = 0',\n\t\t\t\tmany: 'v != 0'\n\t\t\t},\n\t\t\tcy: {\n\t\t\t\tzero: 'n = 0',\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2',\n\t\t\t\tfew: 'n = 3',\n\t\t\t\tmany: 'n = 6'\n\t\t\t},\n\t\t\tda: {\n\t\t\t\tone: 'n = 1 or t != 0 and i = 0,1'\n\t\t\t},\n\t\t\tdsb: {\n\t\t\t\tone: 'v = 0 and i % 100 = 1 or f % 100 = 1',\n\t\t\t\ttwo: 'v = 0 and i % 100 = 2 or f % 100 = 2',\n\t\t\t\tfew: 'v = 0 and i % 100 = 3..4 or f % 100 = 3..4'\n\t\t\t},\n\t\t\tfa: {\n\t\t\t\tone: 'i = 0 or n = 1'\n\t\t\t},\n\t\t\tff: {\n\t\t\t\tone: 'i = 0,1'\n\t\t\t},\n\t\t\tfil: {\n\t\t\t\tone: 'v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 10 != 4,6,9'\n\t\t\t},\n\t\t\tfr: {\n\t\t\t\tone: 'i = 0,1'\n\t\t\t},\n\t\t\tga: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2',\n\t\t\t\tfew: 'n = 3..6',\n\t\t\t\tmany: 'n = 7..10'\n\t\t\t},\n\t\t\tgd: {\n\t\t\t\tone: 'n = 1,11',\n\t\t\t\ttwo: 'n = 2,12',\n\t\t\t\tfew: 'n = 3..10,13..19'\n\t\t\t},\n\t\t\tgu: {\n\t\t\t\tone: 'i = 0 or n = 1'\n\t\t\t},\n\t\t\tguw: {\n\t\t\t\tone: 'n = 0..1'\n\t\t\t},\n\t\t\tgv: {\n\t\t\t\tone: 'v = 0 and i % 10 = 1',\n\t\t\t\ttwo: 'v = 0 and i % 10 = 2',\n\t\t\t\tfew: 'v = 0 and i % 100 = 0,20,40,60,80',\n\t\t\t\tmany: 'v != 0'\n\t\t\t},\n\t\t\the: {\n\t\t\t\tone: 'i = 1 and v = 0',\n\t\t\t\ttwo: 'i = 2 and v = 0',\n\t\t\t\tmany: 'v = 0 and n != 0..10 and n % 10 = 0'\n\t\t\t},\n\t\t\thi: {\n\t\t\t\tone: 'i = 0 or n = 1'\n\t\t\t},\n\t\t\thr: {\n\t\t\t\tone: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',\n\t\t\t\tfew: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'\n\t\t\t},\n\t\t\thsb: {\n\t\t\t\tone: 'v = 0 and i % 100 = 1 or f % 100 = 1',\n\t\t\t\ttwo: 'v = 0 and i % 100 = 2 or f % 100 = 2',\n\t\t\t\tfew: 'v = 0 and i % 100 = 3..4 or f % 100 = 3..4'\n\t\t\t},\n\t\t\thy: {\n\t\t\t\tone: 'i = 0,1'\n\t\t\t},\n\t\t\tis: {\n\t\t\t\tone: 't = 0 and i % 10 = 1 and i % 100 != 11 or t != 0'\n\t\t\t},\n\t\t\tiu: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2'\n\t\t\t},\n\t\t\tiw: {\n\t\t\t\tone: 'i = 1 and v = 0',\n\t\t\t\ttwo: 'i = 2 and v = 0',\n\t\t\t\tmany: 'v = 0 and n != 0..10 and n % 10 = 0'\n\t\t\t},\n\t\t\tkab: {\n\t\t\t\tone: 'i = 0,1'\n\t\t\t},\n\t\t\tkn: {\n\t\t\t\tone: 'i = 0 or n = 1'\n\t\t\t},\n\t\t\tkw: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2'\n\t\t\t},\n\t\t\tlag: {\n\t\t\t\tzero: 'n = 0',\n\t\t\t\tone: 'i = 0,1 and n != 0'\n\t\t\t},\n\t\t\tln: {\n\t\t\t\tone: 'n = 0..1'\n\t\t\t},\n\t\t\tlt: {\n\t\t\t\tone: 'n % 10 = 1 and n % 100 != 11..19',\n\t\t\t\tfew: 'n % 10 = 2..9 and n % 100 != 11..19',\n\t\t\t\tmany: 'f != 0'\n\t\t\t},\n\t\t\tlv: {\n\t\t\t\tzero: 'n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19',\n\t\t\t\tone: 'n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != 11 or v != 2 and f % 10 = 1'\n\t\t\t},\n\t\t\tmg: {\n\t\t\t\tone: 'n = 0..1'\n\t\t\t},\n\t\t\tmk: {\n\t\t\t\tone: 'v = 0 and i % 10 = 1 or f % 10 = 1'\n\t\t\t},\n\t\t\tmo: {\n\t\t\t\tone: 'i = 1 and v = 0',\n\t\t\t\tfew: 'v != 0 or n = 0 or n != 1 and n % 100 = 1..19'\n\t\t\t},\n\t\t\tmr: {\n\t\t\t\tone: 'i = 0 or n = 1'\n\t\t\t},\n\t\t\tmt: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\tfew: 'n = 0 or n % 100 = 2..10',\n\t\t\t\tmany: 'n % 100 = 11..19'\n\t\t\t},\n\t\t\tnaq: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2'\n\t\t\t},\n\t\t\tnso: {\n\t\t\t\tone: 'n = 0..1'\n\t\t\t},\n\t\t\tpa: {\n\t\t\t\tone: 'n = 0..1'\n\t\t\t},\n\t\t\tpl: {\n\t\t\t\tone: 'i = 1 and v = 0',\n\t\t\t\tfew: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14',\n\t\t\t\tmany: 'v = 0 and i != 1 and i % 10 = 0..1 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 12..14'\n\t\t\t},\n\t\t\tprg: {\n\t\t\t\tzero: 'n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19',\n\t\t\t\tone: 'n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != 11 or v != 2 and f % 10 = 1'\n\t\t\t},\n\t\t\tpt: {\n\t\t\t\tone: 'i = 0..1'\n\t\t\t},\n\t\t\tro: {\n\t\t\t\tone: 'i = 1 and v = 0',\n\t\t\t\tfew: 'v != 0 or n = 0 or n != 1 and n % 100 = 1..19'\n\t\t\t},\n\t\t\tru: {\n\t\t\t\tone: 'v = 0 and i % 10 = 1 and i % 100 != 11',\n\t\t\t\tfew: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14',\n\t\t\t\tmany: 'v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14'\n\t\t\t},\n\t\t\tse: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2'\n\t\t\t},\n\t\t\tsh: {\n\t\t\t\tone: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',\n\t\t\t\tfew: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'\n\t\t\t},\n\t\t\tshi: {\n\t\t\t\tone: 'i = 0 or n = 1',\n\t\t\t\tfew: 'n = 2..10'\n\t\t\t},\n\t\t\tsi: {\n\t\t\t\tone: 'n = 0,1 or i = 0 and f = 1'\n\t\t\t},\n\t\t\tsk: {\n\t\t\t\tone: 'i = 1 and v = 0',\n\t\t\t\tfew: 'i = 2..4 and v = 0',\n\t\t\t\tmany: 'v != 0'\n\t\t\t},\n\t\t\tsl: {\n\t\t\t\tone: 'v = 0 and i % 100 = 1',\n\t\t\t\ttwo: 'v = 0 and i % 100 = 2',\n\t\t\t\tfew: 'v = 0 and i % 100 = 3..4 or v != 0'\n\t\t\t},\n\t\t\tsma: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2'\n\t\t\t},\n\t\t\tsmi: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2'\n\t\t\t},\n\t\t\tsmj: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2'\n\t\t\t},\n\t\t\tsmn: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2'\n\t\t\t},\n\t\t\tsms: {\n\t\t\t\tone: 'n = 1',\n\t\t\t\ttwo: 'n = 2'\n\t\t\t},\n\t\t\tsr: {\n\t\t\t\tone: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',\n\t\t\t\tfew: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'\n\t\t\t},\n\t\t\tti: {\n\t\t\t\tone: 'n = 0..1'\n\t\t\t},\n\t\t\ttl: {\n\t\t\t\tone: 'v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 10 != 4,6,9'\n\t\t\t},\n\t\t\ttzm: {\n\t\t\t\tone: 'n = 0..1 or n = 11..99'\n\t\t\t},\n\t\t\tuk: {\n\t\t\t\tone: 'v = 0 and i % 10 = 1 and i % 100 != 11',\n\t\t\t\tfew: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14',\n\t\t\t\tmany: 'v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14'\n\t\t\t},\n\t\t\twa: {\n\t\t\t\tone: 'n = 0..1'\n\t\t\t},\n\t\t\tzu: {\n\t\t\t\tone: 'i = 0 or n = 1'\n\t\t\t}\n\t\t},\n\t\t// jscs:enable\n\n\t\t/**\n\t\t * Plural form transformations, needed for some languages.\n\t\t *\n\t\t * @param {integer} count\n\t\t * Non-localized quantifier\n\t\t * @param {Array} forms\n\t\t * List of plural forms\n\t\t * @return {string} Correct form for quantifier in this language\n\t\t */\n\t\tconvertPlural: function ( count, forms ) {\n\t\t\tvar pluralRules,\n\t\t\t\tpluralFormIndex,\n\t\t\t\tindex,\n\t\t\t\texplicitPluralPattern = new RegExp( '\\\\d+=', 'i' ),\n\t\t\t\tformCount,\n\t\t\t\tform;\n\n\t\t\tif ( !forms || forms.length === 0 ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\t// Handle for Explicit 0= & 1= values\n\t\t\tfor ( index = 0; index < forms.length; index++ ) {\n\t\t\t\tform = forms[ index ];\n\t\t\t\tif ( explicitPluralPattern.test( form ) ) {\n\t\t\t\t\tformCount = parseInt( form.slice( 0, form.indexOf( '=' ) ), 10 );\n\t\t\t\t\tif ( formCount === count ) {\n\t\t\t\t\t\treturn ( form.slice( form.indexOf( '=' ) + 1 ) );\n\t\t\t\t\t}\n\t\t\t\t\tforms[ index ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tforms = $.map( forms, function ( form ) {\n\t\t\t\tif ( form !== undefined ) {\n\t\t\t\t\treturn form;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tpluralRules = this.pluralRules[ $.i18n().locale ];\n\n\t\t\tif ( !pluralRules ) {\n\t\t\t\t// default fallback.\n\t\t\t\treturn ( count === 1 ) ? forms[ 0 ] : forms[ 1 ];\n\t\t\t}\n\n\t\t\tpluralFormIndex = this.getPluralForm( count, pluralRules );\n\t\t\tpluralFormIndex = Math.min( pluralFormIndex, forms.length - 1 );\n\n\t\t\treturn forms[ pluralFormIndex ];\n\t\t},\n\n\t\t/**\n\t\t * For the number, get the plural for index\n\t\t *\n\t\t * @param {integer} number\n\t\t * @param {Object} pluralRules\n\t\t * @return {integer} plural form index\n\t\t */\n\t\tgetPluralForm: function ( number, pluralRules ) {\n\t\t\tvar i,\n\t\t\t\tpluralForms = [ 'zero', 'one', 'two', 'few', 'many', 'other' ],\n\t\t\t\tpluralFormIndex = 0;\n\n\t\t\tfor ( i = 0; i < pluralForms.length; i++ ) {\n\t\t\t\tif ( pluralRules[ pluralForms[ i ] ] ) {\n\t\t\t\t\tif ( pluralRuleParser( pluralRules[ pluralForms[ i ] ], number ) ) {\n\t\t\t\t\t\treturn pluralFormIndex;\n\t\t\t\t\t}\n\n\t\t\t\t\tpluralFormIndex++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn pluralFormIndex;\n\t\t},\n\n\t\t/**\n\t\t * Converts a number using digitTransformTable.\n\t\t *\n\t\t * @param {number} num Value to be converted\n\t\t * @param {boolean} integer Convert the return value to an integer\n\t\t * @return {string} The number converted into a String.\n\t\t */\n\t\tconvertNumber: function ( num, integer ) {\n\t\t\tvar tmp, item, i,\n\t\t\t\ttransformTable, numberString, convertedNumber;\n\n\t\t\t// Set the target Transform table:\n\t\t\ttransformTable = this.digitTransformTable( $.i18n().locale );\n\t\t\tnumberString = String( num );\n\t\t\tconvertedNumber = '';\n\n\t\t\tif ( !transformTable ) {\n\t\t\t\treturn num;\n\t\t\t}\n\n\t\t\t// Check if the restore to Latin number flag is set:\n\t\t\tif ( integer ) {\n\t\t\t\tif ( parseFloat( num, 10 ) === num ) {\n\t\t\t\t\treturn num;\n\t\t\t\t}\n\n\t\t\t\ttmp = [];\n\n\t\t\t\tfor ( item in transformTable ) {\n\t\t\t\t\ttmp[ transformTable[ item ] ] = item;\n\t\t\t\t}\n\n\t\t\t\ttransformTable = tmp;\n\t\t\t}\n\n\t\t\tfor ( i = 0; i < numberString.length; i++ ) {\n\t\t\t\tif ( transformTable[ numberString[ i ] ] ) {\n\t\t\t\t\tconvertedNumber += transformTable[ numberString[ i ] ];\n\t\t\t\t} else {\n\t\t\t\t\tconvertedNumber += numberString[ i ];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn integer ? parseFloat( convertedNumber, 10 ) : convertedNumber;\n\t\t},\n\n\t\t/**\n\t\t * Grammatical transformations, needed for inflected languages.\n\t\t * Invoked by putting {{grammar:form|word}} in a message.\n\t\t * Override this method for languages that need special grammar rules\n\t\t * applied dynamically.\n\t\t *\n\t\t * @param {string} word\n\t\t * @param {string} form\n\t\t * @return {string}\n\t\t */\n\t\t// eslint-disable-next-line no-unused-vars\n\t\tconvertGrammar: function ( word, form ) {\n\t\t\treturn word;\n\t\t},\n\n\t\t/**\n\t\t * Provides an alternative text depending on specified gender. Usage\n\t\t * {{gender:[gender|user object]|masculine|feminine|neutral}}. If second\n\t\t * or third parameter are not specified, masculine is used.\n\t\t *\n\t\t * These details may be overriden per language.\n\t\t *\n\t\t * @param {string} gender\n\t\t * male, female, or anything else for neutral.\n\t\t * @param {Array} forms\n\t\t * List of gender forms\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tgender: function ( gender, forms ) {\n\t\t\tif ( !forms || forms.length === 0 ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\twhile ( forms.length < 2 ) {\n\t\t\t\tforms.push( forms[ forms.length - 1 ] );\n\t\t\t}\n\n\t\t\tif ( gender === 'male' ) {\n\t\t\t\treturn forms[ 0 ];\n\t\t\t}\n\n\t\t\tif ( gender === 'female' ) {\n\t\t\t\treturn forms[ 1 ];\n\t\t\t}\n\n\t\t\treturn ( forms.length === 3 ) ? forms[ 2 ] : forms[ 0 ];\n\t\t},\n\n\t\t/**\n\t\t * Get the digit transform table for the given language\n\t\t * See http://cldr.unicode.org/translation/numbering-systems\n\t\t *\n\t\t * @param {string} language\n\t\t * @return {Array|boolean} List of digits in the passed language or false\n\t\t * representation, or boolean false if there is no information.\n\t\t */\n\t\tdigitTransformTable: function ( language ) {\n\t\t\tvar tables = {\n\t\t\t\tar: '٠١٢٣٤٥٦٧٨٩',\n\t\t\t\tfa: '۰۱۲۳۴۵۶۷۸۹',\n\t\t\t\tml: '൦൧൨൩൪൫൬൭൮൯',\n\t\t\t\tkn: '೦೧೨೩೪೫೬೭೮೯',\n\t\t\t\tlo: '໐໑໒໓໔໕໖໗໘໙',\n\t\t\t\tor: '୦୧୨୩୪୫୬୭୮୯',\n\t\t\t\tkh: '០១២៣៤៥៦៧៨៩',\n\t\t\t\tpa: '੦੧੨੩੪੫੬੭੮੯',\n\t\t\t\tgu: '૦૧૨૩૪૫૬૭૮૯',\n\t\t\t\thi: '०१२३४५६७८९',\n\t\t\t\tmy: '၀၁၂၃၄၅၆၇၈၉',\n\t\t\t\tta: '௦௧௨௩௪௫௬௭௮௯',\n\t\t\t\tte: '౦౧౨౩౪౫౬౭౮౯',\n\t\t\t\tth: '๐๑๒๓๔๕๖๗๘๙', // FIXME use iso 639 codes\n\t\t\t\tbo: '༠༡༢༣༤༥༦༧༨༩' // FIXME use iso 639 codes\n\t\t\t};\n\n\t\t\tif ( !tables[ language ] ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn tables[ language ].split( '' );\n\t\t}\n\t};\n\n\t$.extend( $.i18n.languages, {\n\t\t'default': language\n\t} );\n}( jQuery ) );\n","/*!\n * jQuery Internationalization library - Message Store\n *\n * Copyright (C) 2012 Santhosh Thottingal\n *\n * jquery.i18n is dual licensed GPLv2 or later and MIT. You don't have to do anything special to\n * choose one license or the other and you don't have to notify anyone which license you are using.\n * You are free to use UniversalLanguageSelector in commercial projects as long as the copyright\n * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.\n *\n * @licence GNU General Public Licence 2.0 or later\n * @licence MIT License\n */\n\n( function ( $ ) {\n\t'use strict';\n\n\tvar MessageStore = function () {\n\t\tthis.messages = {};\n\t\tthis.sources = {};\n\t};\n\n\tfunction jsonMessageLoader( url ) {\n\t\tvar deferred = $.Deferred();\n\n\t\t$.getJSON( url )\n\t\t\t.done( deferred.resolve )\n\t\t\t.fail( function ( jqxhr, settings, exception ) {\n\t\t\t\t$.i18n.log( 'Error in loading messages from ' + url + ' Exception: ' + exception );\n\t\t\t\t// Ignore 404 exception, because we are handling fallabacks explicitly\n\t\t\t\tdeferred.resolve();\n\t\t\t} );\n\n\t\treturn deferred.promise();\n\t}\n\n\t/**\n\t * See https://github.com/wikimedia/jquery.i18n/wiki/Specification#wiki-Message_File_Loading\n\t */\n\tMessageStore.prototype = {\n\n\t\t/**\n\t\t * General message loading API This can take a URL string for\n\t\t * the json formatted messages.\n\t\t * load('path/to/all_localizations.json');
\n\t\t *\n\t\t * This can also load a localization file for a locale \n\t\t * load( 'path/to/de-messages.json', 'de' );\n\t\t *
\n\t\t * A data object containing message key- message translation mappings\n\t\t * can also be passed Eg:\n\t\t * \n\t\t * load( { 'hello' : 'Hello' }, optionalLocale );\n\t\t *
If the data argument is\n\t\t * null/undefined/false,\n\t\t * all cached messages for the i18n instance will get reset.\n\t\t *\n\t\t * @param {string|Object} source\n\t\t * @param {string} locale Language tag\n\t\t * @return {jQuery.Promise}\n\t\t */\n\t\tload: function ( source, locale ) {\n\t\t\tvar key = null,\n\t\t\t\tdeferred = null,\n\t\t\t\tdeferreds = [],\n\t\t\t\tmessageStore = this;\n\n\t\t\tif ( typeof source === 'string' ) {\n\t\t\t\t// This is a URL to the messages file.\n\t\t\t\t$.i18n.log( 'Loading messages from: ' + source );\n\t\t\t\tdeferred = jsonMessageLoader( source )\n\t\t\t\t\t.done( function ( localization ) {\n\t\t\t\t\t\tmessageStore.set( locale, localization );\n\t\t\t\t\t} );\n\n\t\t\t\treturn deferred.promise();\n\t\t\t}\n\n\t\t\tif ( locale ) {\n\t\t\t\t// source is an key-value pair of messages for given locale\n\t\t\t\tmessageStore.set( locale, source );\n\n\t\t\t\treturn $.Deferred().resolve();\n\t\t\t} else {\n\t\t\t\t// source is a key-value pair of locales and their source\n\t\t\t\tfor ( key in source ) {\n\t\t\t\t\tif ( Object.prototype.hasOwnProperty.call( source, key ) ) {\n\t\t\t\t\t\tlocale = key;\n\t\t\t\t\t\t// No {locale} given, assume data is a group of languages,\n\t\t\t\t\t\t// call this function again for each language.\n\t\t\t\t\t\tdeferreds.push( messageStore.load( source[ key ], locale ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $.when.apply( $, deferreds );\n\t\t\t}\n\n\t\t},\n\n\t\t/**\n\t\t * Set messages to the given locale.\n\t\t * If locale exists, add messages to the locale.\n\t\t *\n\t\t * @param {string} locale\n\t\t * @param {Object} messages\n\t\t */\n\t\tset: function ( locale, messages ) {\n\t\t\tif ( !this.messages[ locale ] ) {\n\t\t\t\tthis.messages[ locale ] = messages;\n\t\t\t} else {\n\t\t\t\tthis.messages[ locale ] = $.extend( this.messages[ locale ], messages );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t *\n\t\t * @param {string} locale\n\t\t * @param {string} messageKey\n\t\t * @return {boolean}\n\t\t */\n\t\tget: function ( locale, messageKey ) {\n\t\t\treturn this.messages[ locale ] && this.messages[ locale ][ messageKey ];\n\t\t}\n\t};\n\n\t$.extend( $.i18n.messageStore, new MessageStore() );\n}( jQuery ) );\n","/*!\n * jQuery Internationalization library\n *\n * Copyright (C) 2011-2013 Santhosh Thottingal, Neil Kandalgaonkar\n *\n * jquery.i18n is dual licensed GPLv2 or later and MIT. You don't have to do\n * anything special to choose one license or the other and you don't have to\n * notify anyone which license you are using. You are free to use\n * UniversalLanguageSelector in commercial projects as long as the copyright\n * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.\n *\n * @licence GNU General Public Licence 2.0 or later\n * @licence MIT License\n */\n\n( function ( $ ) {\n\t'use strict';\n\n\tvar MessageParser = function ( options ) {\n\t\tthis.options = $.extend( {}, $.i18n.parser.defaults, options );\n\t\tthis.language = $.i18n.languages[ String.locale ] || $.i18n.languages[ 'default' ];\n\t\tthis.emitter = $.i18n.parser.emitter;\n\t};\n\n\tMessageParser.prototype = {\n\n\t\tconstructor: MessageParser,\n\n\t\tsimpleParse: function ( message, parameters ) {\n\t\t\treturn message.replace( /\\$(\\d+)/g, function ( str, match ) {\n\t\t\t\tvar index = parseInt( match, 10 ) - 1;\n\n\t\t\t\treturn parameters[ index ] !== undefined ? parameters[ index ] : '$' + match;\n\t\t\t} );\n\t\t},\n\n\t\tparse: function ( message, replacements ) {\n\t\t\tif ( message.indexOf( '{{' ) < 0 ) {\n\t\t\t\treturn this.simpleParse( message, replacements );\n\t\t\t}\n\n\t\t\tthis.emitter.language = $.i18n.languages[ $.i18n().locale ] ||\n\t\t\t\t$.i18n.languages[ 'default' ];\n\n\t\t\treturn this.emitter.emit( this.ast( message ), replacements );\n\t\t},\n\n\t\tast: function ( message ) {\n\t\t\tvar pipe, colon, backslash, anyCharacter, dollar, digits, regularLiteral,\n\t\t\t\tregularLiteralWithoutBar, regularLiteralWithoutSpace, escapedOrLiteralWithoutBar,\n\t\t\t\tescapedOrRegularLiteral, templateContents, templateName, openTemplate,\n\t\t\t\tcloseTemplate, expression, paramExpression, result,\n\t\t\t\tpos = 0;\n\n\t\t\t// Try parsers until one works, if none work return null\n\t\t\tfunction choice( parserSyntax ) {\n\t\t\t\treturn function () {\n\t\t\t\t\tvar i, result;\n\n\t\t\t\t\tfor ( i = 0; i < parserSyntax.length; i++ ) {\n\t\t\t\t\t\tresult = parserSyntax[ i ]();\n\n\t\t\t\t\t\tif ( result !== null ) {\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Try several parserSyntax-es in a row.\n\t\t\t// All must succeed; otherwise, return null.\n\t\t\t// This is the only eager one.\n\t\t\tfunction sequence( parserSyntax ) {\n\t\t\t\tvar i, res,\n\t\t\t\t\toriginalPos = pos,\n\t\t\t\t\tresult = [];\n\n\t\t\t\tfor ( i = 0; i < parserSyntax.length; i++ ) {\n\t\t\t\t\tres = parserSyntax[ i ]();\n\n\t\t\t\t\tif ( res === null ) {\n\t\t\t\t\t\tpos = originalPos;\n\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tresult.push( res );\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\t// Run the same parser over and over until it fails.\n\t\t\t// Must succeed a minimum of n times; otherwise, return null.\n\t\t\tfunction nOrMore( n, p ) {\n\t\t\t\treturn function () {\n\t\t\t\t\tvar originalPos = pos,\n\t\t\t\t\t\tresult = [],\n\t\t\t\t\t\tparsed = p();\n\n\t\t\t\t\twhile ( parsed !== null ) {\n\t\t\t\t\t\tresult.push( parsed );\n\t\t\t\t\t\tparsed = p();\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( result.length < n ) {\n\t\t\t\t\t\tpos = originalPos;\n\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn result;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Helpers -- just make parserSyntax out of simpler JS builtin types\n\n\t\t\tfunction makeStringParser( s ) {\n\t\t\t\tvar len = s.length;\n\n\t\t\t\treturn function () {\n\t\t\t\t\tvar result = null;\n\n\t\t\t\t\tif ( message.slice( pos, pos + len ) === s ) {\n\t\t\t\t\t\tresult = s;\n\t\t\t\t\t\tpos += len;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn result;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tfunction makeRegexParser( regex ) {\n\t\t\t\treturn function () {\n\t\t\t\t\tvar matches = message.slice( pos ).match( regex );\n\n\t\t\t\t\tif ( matches === null ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tpos += matches[ 0 ].length;\n\n\t\t\t\t\treturn matches[ 0 ];\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tpipe = makeStringParser( '|' );\n\t\t\tcolon = makeStringParser( ':' );\n\t\t\tbackslash = makeStringParser( '\\\\' );\n\t\t\tanyCharacter = makeRegexParser( /^./ );\n\t\t\tdollar = makeStringParser( '$' );\n\t\t\tdigits = makeRegexParser( /^\\d+/ );\n\t\t\tregularLiteral = makeRegexParser( /^[^{}[\\]$\\\\]/ );\n\t\t\tregularLiteralWithoutBar = makeRegexParser( /^[^{}[\\]$\\\\|]/ );\n\t\t\tregularLiteralWithoutSpace = makeRegexParser( /^[^{}[\\]$\\s]/ );\n\n\t\t\t// There is a general pattern:\n\t\t\t// parse a thing;\n\t\t\t// if it worked, apply transform,\n\t\t\t// otherwise return null.\n\t\t\t// But using this as a combinator seems to cause problems\n\t\t\t// when combined with nOrMore().\n\t\t\t// May be some scoping issue.\n\t\t\tfunction transform( p, fn ) {\n\t\t\t\treturn function () {\n\t\t\t\t\tvar result = p();\n\n\t\t\t\t\treturn result === null ? null : fn( result );\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Used to define \"literals\" within template parameters. The pipe\n\t\t\t// character is the parameter delimeter, so by default\n\t\t\t// it is not a literal in the parameter\n\t\t\tfunction literalWithoutBar() {\n\t\t\t\tvar result = nOrMore( 1, escapedOrLiteralWithoutBar )();\n\n\t\t\t\treturn result === null ? null : result.join( '' );\n\t\t\t}\n\n\t\t\tfunction literal() {\n\t\t\t\tvar result = nOrMore( 1, escapedOrRegularLiteral )();\n\n\t\t\t\treturn result === null ? null : result.join( '' );\n\t\t\t}\n\n\t\t\tfunction escapedLiteral() {\n\t\t\t\tvar result = sequence( [ backslash, anyCharacter ] );\n\n\t\t\t\treturn result === null ? null : result[ 1 ];\n\t\t\t}\n\n\t\t\tchoice( [ escapedLiteral, regularLiteralWithoutSpace ] );\n\t\t\tescapedOrLiteralWithoutBar = choice( [ escapedLiteral, regularLiteralWithoutBar ] );\n\t\t\tescapedOrRegularLiteral = choice( [ escapedLiteral, regularLiteral ] );\n\n\t\t\tfunction replacement() {\n\t\t\t\tvar result = sequence( [ dollar, digits ] );\n\n\t\t\t\tif ( result === null ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn [ 'REPLACE', parseInt( result[ 1 ], 10 ) - 1 ];\n\t\t\t}\n\n\t\t\ttemplateName = transform(\n\t\t\t\t// see $wgLegalTitleChars\n\t\t\t\t// not allowing : due to the need to catch \"PLURAL:$1\"\n\t\t\t\tmakeRegexParser( /^[ !\"$&'()*,./0-9;=?@A-Z^_`a-z~\\x80-\\xFF+-]+/ ),\n\n\t\t\t\tfunction ( result ) {\n\t\t\t\t\treturn result.toString();\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tfunction templateParam() {\n\t\t\t\tvar expr,\n\t\t\t\t\tresult = sequence( [ pipe, nOrMore( 0, paramExpression ) ] );\n\n\t\t\t\tif ( result === null ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\texpr = result[ 1 ];\n\n\t\t\t\t// use a \"CONCAT\" operator if there are multiple nodes,\n\t\t\t\t// otherwise return the first node, raw.\n\t\t\t\treturn expr.length > 1 ? [ 'CONCAT' ].concat( expr ) : expr[ 0 ];\n\t\t\t}\n\n\t\t\tfunction templateWithReplacement() {\n\t\t\t\tvar result = sequence( [ templateName, colon, replacement ] );\n\n\t\t\t\treturn result === null ? null : [ result[ 0 ], result[ 2 ] ];\n\t\t\t}\n\n\t\t\tfunction templateWithOutReplacement() {\n\t\t\t\tvar result = sequence( [ templateName, colon, paramExpression ] );\n\n\t\t\t\treturn result === null ? null : [ result[ 0 ], result[ 2 ] ];\n\t\t\t}\n\n\t\t\ttemplateContents = choice( [\n\t\t\t\tfunction () {\n\t\t\t\t\tvar res = sequence( [\n\t\t\t\t\t\t// templates can have placeholders for dynamic\n\t\t\t\t\t\t// replacement eg: {{PLURAL:$1|one car|$1 cars}}\n\t\t\t\t\t\t// or no placeholders eg:\n\t\t\t\t\t\t// {{GRAMMAR:genitive|{{SITENAME}}}\n\t\t\t\t\t\tchoice( [ templateWithReplacement, templateWithOutReplacement ] ),\n\t\t\t\t\t\tnOrMore( 0, templateParam )\n\t\t\t\t\t] );\n\n\t\t\t\t\treturn res === null ? null : res[ 0 ].concat( res[ 1 ] );\n\t\t\t\t},\n\t\t\t\tfunction () {\n\t\t\t\t\tvar res = sequence( [ templateName, nOrMore( 0, templateParam ) ] );\n\n\t\t\t\t\tif ( res === null ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [ res[ 0 ] ].concat( res[ 1 ] );\n\t\t\t\t}\n\t\t\t] );\n\n\t\t\topenTemplate = makeStringParser( '{{' );\n\t\t\tcloseTemplate = makeStringParser( '}}' );\n\n\t\t\tfunction template() {\n\t\t\t\tvar result = sequence( [ openTemplate, templateContents, closeTemplate ] );\n\n\t\t\t\treturn result === null ? null : result[ 1 ];\n\t\t\t}\n\n\t\t\texpression = choice( [ template, replacement, literal ] );\n\t\t\tparamExpression = choice( [ template, replacement, literalWithoutBar ] );\n\n\t\t\tfunction start() {\n\t\t\t\tvar result = nOrMore( 0, expression )();\n\n\t\t\t\tif ( result === null ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn [ 'CONCAT' ].concat( result );\n\t\t\t}\n\n\t\t\tresult = start();\n\n\t\t\t/*\n\t\t\t * For success, the pos must have gotten to the end of the input\n\t\t\t * and returned a non-null.\n\t\t\t * n.b. This is part of language infrastructure, so we do not throw an\n\t\t\t * internationalizable message.\n\t\t\t */\n\t\t\tif ( result === null || pos !== message.length ) {\n\t\t\t\tthrow new Error( 'Parse error at position ' + pos.toString() + ' in input: ' + message );\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t};\n\n\t$.extend( $.i18n.parser, new MessageParser() );\n}( jQuery ) );","var codeExercises;\nvar presenterCssLink;\nvar presentModeInitialized = false;\n\nfunction presentToggle() {\n if (!presentModeInitialized) {\n presentModeSetup();\n presentModeInitialized = true;\n }\n let bod = $(\"body\");\n let presentClass = \"present\";\n let fullHeightClass = \"full-height\";\n let bottomClass = \"bottom\";\n if (bod.hasClass(presentClass)) {\n $(\".section *\")\n .not(\n \"h1, .presentation-title, .btn-presenter, .runestone, .runestone *, .section, .pre, code\"\n )\n .removeClass(\"hidden\"); //show everything\n $(\"#completionButton\").removeClass(\"hidden\");\n bod.removeClass(presentClass);\n $(\".\" + fullHeightClass).removeClass(fullHeightClass);\n $(\".\" + bottomClass).removeClass(bottomClass);\n localStorage.setItem(\"presentMode\", \"text\");\n codeExercises.removeClass(\"hidden\");\n presenterCssLink.disabled = true; // disable present_mode.css\n } else {\n $(\".section *\")\n .not(\n \"h1, .presentation-title, .btn-presenter, .runestone, .runestone *, .section, .pre, code\"\n )\n .addClass(\"hidden\"); // hide extraneous stuff\n $(\"#completionButton\").addClass(\"hidden\");\n bod.addClass(presentClass);\n bod.addClass(fullHeightClass);\n $(\"html\").addClass(fullHeightClass);\n $(\".section .runestone\").addClass(fullHeightClass);\n $(\".ac-caption\").addClass(bottomClass);\n localStorage.setItem(\"presentMode\", presentClass);\n loadPresenterCss(); // present_mode.css should only apply when in presenter mode.\n activateExercise();\n }\n}\n\nfunction loadPresenterCss() {\n presenterCssLink = document.createElement(\"link\");\n presenterCssLink.type = \"text/css\";\n presenterCssLink.href = \"../_static/presenter_mode.css\";\n presenterCssLink.rel = \"stylesheet\";\n document.getElementsByTagName(\"head\")[0].appendChild(presenterCssLink);\n}\n\nfunction presentModeSetup() {\n // moved this out of configure\n let dataComponent = $(\"[data-childcomponent]\");\n\n // this still leaves some things semi-messed up when you exit presenter mode.\n // but instructors will probably just learn to refresh the page.\n dataComponent.addClass(\"runestone\");\n dataComponent.parent().closest(\"div\").not(\".section\").addClass(\"runestone\");\n dataComponent.parent().closest(\"div\").css(\"max-width\", \"none\");\n\n dataComponent.each(function (index) {\n let me = $(this);\n $(this)\n .find(\".ac_code_div, .ac_output\")\n .wrapAll(\"\");\n });\n\n codelensListener(500);\n $(\".section img\").wrap('
\").text($(this).text());\n });\n }});\n });\n}(window.jQuery));\n","/*global variable declarations*/\n\n\"use strict\";\n\nimport \"../css/user-highlights.css\";\n\n\nfunction getCompletions() {\n // Get the completion status\n if (\n window.location.href.match(\n /(index.html|toctree.html|genindex.html|navhelp.html|toc.html|assignments.html|Exercises.html)/\n )\n ) {\n return;\n }\n\n var currentPathname = window.location.pathname;\n if (currentPathname.indexOf(\"?\") !== -1) {\n currentPathname = currentPathname.substring(\n 0,\n currentPathname.lastIndexOf(\"?\")\n );\n }\n var data = { lastPageUrl: currentPathname };\n jQuery\n .ajax({\n url: `${eBookConfig.new_server_prefix}/logger/getCompletionStatus`,\n data: data,\n async: false,\n })\n .done(function (data) {\n if (data != \"None\") {\n var completionData = data.detail;\n var completionClass, completionMsg;\n if (completionData[0].completionStatus == 1) {\n completionClass = \"buttonConfirmCompletion\";\n completionMsg =\n \" Completed. Well Done!\";\n } else {\n completionClass = \"buttonAskCompletion\";\n completionMsg = \"Mark as Completed\";\n }\n $(\"#main-content\").append(\n '\"\n );\n }\n });\n}\n\nfunction showLastPositionBanner() {\n var lastPositionVal = $.getUrlVar(\"lastPosition\");\n if (typeof lastPositionVal !== \"undefined\") {\n $(\"body\").append(\n '