From af575f37f50b2339dbeb0997cea98e9b9aaecb36 Mon Sep 17 00:00:00 2001 From: Khaled Garbaya Date: Fri, 1 Dec 2017 14:20:10 +0100 Subject: [PATCH] Production build (#75) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Production (#44) * test: Fix integration test * fix: Fix Editorial feature * chore(localization): move locales to i18n folder * feat(modules): add image caption and shadow * fix: clarify German translation🇩🇪 * chore(localization): fix typo (#47) * Split first paragraph into sections (#46) * feat(controls): add help text to API dropdown * fix(style): simplify header and fix mobile design * fix(style): simplify footer and fix mobile design * fix(style): update stylesheet and scripts file * test(e2e): adjust tests and make them fail on CI * language fixes * rename labels to use full api name * Refactor entry state toggle (#48) * chore(editorialFeatures): extract editorial features toggle * chore(refactor): rename function to make more contextual sense * Fix breadcrumb and add test for locales (#49) * test(unit): add test to check for locale consistency * fix(breadcrumb): translate lessons route * Change readme url to http from https (#52) * tests(e2e): expect only 2 courses * fix(cookies): fix variable naming and extend to two days maxAge * Change text on next lesson button (#54) * Retranslate advancedLabel * fix(translations): do not break on vim temp files. This is dedicated to JP * fix(analytics): use correct app-id * Add instructions to seed a space to readme (#61) * Change modal text; add link to model's repo to localization files (#57) * fix(links): link correct GH repository * fix(i18n): adjust view on github link label * fix(style): move GitHub link to the left * new screenshot * Update README.md (#63) * Update README.md * Update README.md * Https mistake and Heroku buton * fixup * fixup * feat(heroku): add app.json * docs(README): add linebreak * docs(README): minor adjustments * fix(tracking): add link click tracking to snowplow * Add translation for edit in the web app (#64) * chore(typo): fix error message (#67) * chore(update): remove image rendering on lessons (#65) * chore: Improve error page (#66) * chore: Improve error page * fix: Fix middlware order * fix: Remove console.log * fix: no more duplicate error messges (#71) * fix: Fix middlware order * fix: Remove console.log * feat: Uniq error meassages * fix: fix cli link (#72) * Add instructions to run app as Docker container (#68) * feat: Minor fixes (#73) * feat: Address JPs Feedback * fix: settings config * fix: fix tests * fix: fix error display * Fix Cookie Max Age (#74) --- app.js | 2 +- lib/cookies.js | 4 ++-- public/scripts/index.js | 2 +- public/stylesheets/style.css | 2 +- routes/landingPage.js | 2 +- routes/settings.js | 6 +++--- test/e2e/specs/the-example-app-spec.js | 2 +- views/error.pug | 2 +- views/layout.pug | 2 +- views/mixins/_moduleHighlightedCourse.pug | 20 ++++++++++---------- views/settings.pug | 1 + 11 files changed, 23 insertions(+), 22 deletions(-) diff --git a/app.js b/app.js index 3f24b39..dfb0c9d 100644 --- a/app.js +++ b/app.js @@ -27,7 +27,7 @@ app.set('view engine', 'pug') app.use(logger('dev')) app.use(helmet()) app.use(bodyParser.json()) -app.use(bodyParser.urlencoded({ extended: false })) +app.use(bodyParser.urlencoded({ extended: true })) app.use(cookieParser()) app.use(express.static(path.join(__dirname, 'public'))) diff --git a/lib/cookies.js b/lib/cookies.js index c74f45c..5c5e5f1 100644 --- a/lib/cookies.js +++ b/lib/cookies.js @@ -1,4 +1,4 @@ -const TWO_DAYS_IN_SECONDS = 172800 // 60 * 60 * 24 * 2 +const TWO_DAYS_IN_MILLISECONDS = 172800000 // 1000 * 60 * 60 * 24 * 2 module.exports.updateCookie = (response, cookieName, value) => { - response.cookie(cookieName, value, { maxAge: TWO_DAYS_IN_SECONDS, httpOnly: true }) + response.cookie(cookieName, value, { maxAge: TWO_DAYS_IN_MILLISECONDS, httpOnly: true }) } diff --git a/public/scripts/index.js b/public/scripts/index.js index c0335a6..4da497e 100644 --- a/public/scripts/index.js +++ b/public/scripts/index.js @@ -1 +1 @@ -!function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=1)}([function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){e.exports=n(2)},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var r=n(3),o=i(r),a=n(4),s=i(a),l=n(5),c=i(l),u=n(6),d=i(u),f=n(7),p=i(f),g=n(8),m=i(g),h=n(9),b=i(h),E=n(10),v=i(E),_=n(11),w=i(_),y=n(12),N=i(y),O=n(14),M=i(O),x=n(15),C=i(x);o.default.registerLanguage("csharp",s.default),o.default.registerLanguage("javascript",c.default),o.default.registerLanguage("java",d.default),o.default.registerLanguage("php",p.default),o.default.registerLanguage("python",m.default),o.default.registerLanguage("ruby",b.default),o.default.registerLanguage("shell",v.default),o.default.registerLanguage("swift",w.default),!NodeList.prototype.forEach&&Array.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll(".header__controls_group").forEach(function(e){var t=e.querySelector(".header__controls_label"),n=e.querySelector(".header__controls_dropdown"),i=null;(0,N.default)(e,function(){},function(){i&&(n.classList.remove("header__controls_dropdown--active"),window.setTimeout(function(){return i.destroy()},500))}).options({sensitivity:10,interval:150,timeout:300}),t.addEventListener("click",function(e){n.classList.add("header__controls_dropdown--active"),i=new M.default(e.target,n)})});var e=document.getElementById("about-this-modal-trigger"),t=document.getElementById("about-this-modal"),n=document.querySelectorAll("#about-this-modal .close");e.addEventListener("click",function(){t.classList.add("modal--visible")}),n.forEach(function(e){e.addEventListener("click",function(){t.classList.remove("modal--visible")})}),o.default.initHighlightingOnLoad(),(0,C.default)(document.getElementsByClassName("module-higlighted-course__title"),{minFontSize:20,multiLine:!1}),Array.from(document.getElementsByClassName("lesson-module-code")).forEach(function(e){var t=Array.from(e.getElementsByClassName("lesson-module-code__trigger")),n=Array.from(e.getElementsByClassName("lesson-module-code__code")),i=function(e){var i=e.target.getAttribute("data-target");t.forEach(function(e){e.classList.remove("lesson-module-code__trigger--active")}),e.target.classList.add("lesson-module-code__trigger--active"),n.forEach(function(e){e.classList.remove("lesson-module-code__code--active"),e.id===i&&e.classList.add("lesson-module-code__code--active")})};t.forEach(function(e){e.onclick=i})})})},function(e,t,n){!function(e){"object"==typeof window&&window||"object"==typeof self&&self;e(t)}(function(e){function t(e){return e.replace(/&/g,"&").replace(//g,">")}function n(e){return e.nodeName.toLowerCase()}function i(e,t){var n=e&&e.exec(t);return n&&0===n.index}function r(e){return x.test(e)}function o(e){var t,n,i,o,a=e.className+" ";if(a+=e.parentNode?e.parentNode.className:"",n=C.exec(a))return w(n[1])?n[1]:"no-highlight";for(a=a.split(/\s+/),t=0,i=a.length;t"}function s(e){u+=""}function l(e){("start"===e.event?a:s)(e.node)}for(var c=0,u="",d=[];e.length||i.length;){var f=o();if(u+=t(r.substring(c,f[0].offset)),c=f[0].offset,f===e){d.reverse().forEach(s);do{l(f.splice(0,1)[0]),f=o()}while(f===e&&f.length&&f[0].offset===c);d.reverse().forEach(a)}else"start"===f[0].event?d.push(f[0].node):d.pop(),l(f.splice(0,1)[0])}return u+t(r.substr(c))}function c(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map(function(t){return a(e,{variants:null},t)})),e.cached_variants||e.endsWithParent&&[a(e)]||[e]}function u(e){function t(e){return e&&e.source||e}function n(n,i){return new RegExp(t(n),"m"+(e.case_insensitive?"i":"")+(i?"g":""))}function i(r,o){if(!r.compiled){if(r.compiled=!0,r.keywords=r.keywords||r.beginKeywords,r.keywords){var a={},s=function(t,n){e.case_insensitive&&(n=n.toLowerCase()),n.split(" ").forEach(function(e){var n=e.split("|");a[n[0]]=[t,n[1]?Number(n[1]):1]})};"string"==typeof r.keywords?s("keyword",r.keywords):N(r.keywords).forEach(function(e){s(e,r.keywords[e])}),r.keywords=a}r.lexemesRe=n(r.lexemes||/\w+/,!0),o&&(r.beginKeywords&&(r.begin="\\b("+r.beginKeywords.split(" ").join("|")+")\\b"),r.begin||(r.begin=/\B|\b/),r.beginRe=n(r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(r.endRe=n(r.end)),r.terminator_end=t(r.end)||"",r.endsWithParent&&o.terminator_end&&(r.terminator_end+=(r.end?"|":"")+o.terminator_end)),r.illegal&&(r.illegalRe=n(r.illegal)),null==r.relevance&&(r.relevance=1),r.contains||(r.contains=[]),r.contains=Array.prototype.concat.apply([],r.contains.map(function(e){return c("self"===e?r:e)})),r.contains.forEach(function(e){i(e,r)}),r.starts&&i(r.starts,o);var l=r.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([r.terminator_end,r.illegal]).map(t).filter(Boolean);r.terminators=l.length?n(l.join("|"),!0):{exec:function(){return null}}}}i(e)}function d(e,n,r,o){function a(e,t){var n,r;for(n=0,r=t.contains.length;n')+t+a}function g(){var e,n,i,r;if(!y.keywords)return t(x);for(r="",n=0,y.lexemesRe.lastIndex=0,i=y.lexemesRe.exec(x);i;)r+=t(x.substring(n,i.index)),e=c(y,i),e?(C+=e[1],r+=p(e[0],t(i[0]))):r+=t(i[0]),n=y.lexemesRe.lastIndex,i=y.lexemesRe.exec(x);return r+t(x.substr(n))}function m(){var e="string"==typeof y.subLanguage;if(e&&!O[y.subLanguage])return t(x);var n=e?d(y.subLanguage,x,!0,N[y.subLanguage]):f(x,y.subLanguage.length?y.subLanguage:void 0);return y.relevance>0&&(C+=n.relevance),e&&(N[y.subLanguage]=n.top),p(n.language,n.value,!1,!0)}function h(){M+=null!=y.subLanguage?m():g(),x=""}function b(e){M+=e.className?p(e.className,"",!0):"",y=Object.create(e,{parent:{value:y}})}function E(e,t){if(x+=e,null==t)return h(),0;var n=a(t,y);if(n)return n.skip?x+=t:(n.excludeBegin&&(x+=t),h(),n.returnBegin||n.excludeBegin||(x=t)),b(n,t),n.returnBegin?0:t.length;var i=s(y,t);if(i){var r=y;r.skip?x+=t:(r.returnEnd||r.excludeEnd||(x+=t),h(),r.excludeEnd&&(x=t));do{y.className&&(M+=L),y.skip||(C+=y.relevance),y=y.parent}while(y!==i.parent);return i.starts&&b(i.starts,""),r.returnEnd?0:t.length}if(l(t,y))throw new Error('Illegal lexeme "'+t+'" for mode "'+(y.className||"")+'"');return x+=t,t.length||1}var v=w(e);if(!v)throw new Error('Unknown language: "'+e+'"');u(v);var _,y=o||v,N={},M="";for(_=y;_!==v;_=_.parent)_.className&&(M=p(_.className,"",!0)+M);var x="",C=0;try{for(var T,S,A=0;;){if(y.terminators.lastIndex=A,!(T=y.terminators.exec(n)))break;S=E(n.substring(A,T.index),T[0]),A=T.index+S}for(E(n.substr(A)),_=y;_.parent;_=_.parent)_.className&&(M+=L);return{relevance:C,value:M,language:e,top:y}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:t(n)};throw e}}function f(e,n){n=n||R.languages||N(O);var i={relevance:0,value:t(e)},r=i;return n.filter(w).forEach(function(t){var n=d(t,e,!1);n.language=t,n.relevance>r.relevance&&(r=n),n.relevance>i.relevance&&(r=i,i=n)}),r.language&&(i.second_best=r),i}function p(e){return R.tabReplace||R.useBR?e.replace(T,function(e,t){return R.useBR&&"\n"===e?"
":R.tabReplace?t.replace(/\t/g,R.tabReplace):""}):e}function g(e,t,n){var i=t?M[t]:n,r=[e.trim()];return e.match(/\bhljs\b/)||r.push("hljs"),-1===e.indexOf(i)&&r.push(i),r.join(" ").trim()}function m(e){var t,n,i,a,c,u=o(e);r(u)||(R.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):t=e,c=t.textContent,i=u?d(u,c,!0):f(c),n=s(t),n.length&&(a=document.createElementNS("http://www.w3.org/1999/xhtml","div"),a.innerHTML=i.value,i.value=l(n,s(a),c)),i.value=p(i.value),e.innerHTML=i.value,e.className=g(e.className,u,i.language),e.result={language:i.language,re:i.relevance},i.second_best&&(e.second_best={language:i.second_best.language,re:i.second_best.relevance}))}function h(e){R=a(R,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");y.forEach.call(e,m)}}function E(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function v(t,n){var i=O[t]=n(e);i.aliases&&i.aliases.forEach(function(e){M[e]=t})}function _(){return N(O)}function w(e){return e=(e||"").toLowerCase(),O[e]||O[M[e]]}var y=[],N=Object.keys,O={},M={},x=/^(no-?highlight|plain|text)$/i,C=/\blang(?:uage)?-([\w-]+)\b/i,T=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,L="",R={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=d,e.highlightAuto=f,e.fixMarkup=p,e.highlightBlock=m,e.configure=h,e.initHighlighting=b,e.initHighlightingOnLoad=E,e.registerLanguage=v,e.listLanguages=_,e.getLanguage=w,e.inherit=a,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.COMMENT=function(t,n,i){var r=e.inherit({className:"comment",begin:t,end:n,contains:[]},i||{});return r.contains.push(e.PHRASAL_WORDS_MODE),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),r},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0},e})},function(e,t){e.exports=function(e){var t={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long nameof object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let on orderby partial remove select set value var where yield",literal:"null false true"},n={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},i=e.inherit(n,{illegal:/\n/}),r={className:"subst",begin:"{",end:"}",keywords:t},o=e.inherit(r,{illegal:/\n/}),a={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,o]},s={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},r]},l=e.inherit(s,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},o]});r.contains=[s,a,n,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE],o.contains=[l,a,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var c={variants:[s,a,n,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?";return{aliases:["csharp"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},c,e.C_NUMBER_MODE,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.TITLE_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+u+"\\s+)+"+e.IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[c,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}}},function(e,t){e.exports=function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",n={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},r={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},o={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,r]};r.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,i,e.REGEXP_MODE];var a=r.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:n,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:a}]}]},{begin://,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:a}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}},function(e,t){e.exports=function(e){var t="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",n={className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0};return{aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,{className:"meta",begin:"@[A-Za-z]+"}]}}},function(e,t){e.exports=function(e){var t={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},n={className:"meta",begin:/<\?(php)?|\?>/},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["php3","php4","php5","php6"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[n]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},n,{className:"keyword",begin:/\$this\b/},t,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",t,e.C_BLOCK_COMMENT_MODE,i,r]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},i,r]}}},function(e,t){e.exports=function(e){var t={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},n={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:t,illegal:/#/},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[n],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[n],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[n,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[n,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},o={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},a={className:"params",begin:/\(/,end:/\)/,contains:["self",n,o,r]};return i.contains=[r,o,n],{aliases:["py","gyp"],keywords:t,illegal:/(<\/|->|\?)|=>/,contains:[n,o,r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,a,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}},function(e,t){e.exports=function(e){var t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",n={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},i={className:"doctag",begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},o=[e.COMMENT("#","$",{contains:[i]}),e.COMMENT("^\\=begin","^\\=end",{contains:[i],relevance:10}),e.COMMENT("^__END__","\\n$")],a={className:"subst",begin:"#\\{",end:"}",keywords:n},s={className:"string",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<(-?)\w+$/,end:/^\s*\w+$/}]},l={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:n},c=[s,r,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(o)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:t}),l].concat(o)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[s,{begin:t}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:n},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[r,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(o),relevance:0}].concat(o);a.contains=c,l.contains=c;var u=[{begin:/^\s*=>/,starts:{end:"$",contains:c}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:c}}];return{aliases:["rb","gemspec","podspec","thor","irb"],keywords:n,illegal:/\/\*/,contains:o.concat(u).concat(c)}}},function(e,t){e.exports=function(e){return{aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}}},function(e,t){e.exports=function(e){var t={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n={className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},i=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r={className:"subst",begin:/\\\(/,end:"\\)",keywords:t,contains:[]},o={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0},a=e.inherit(e.QUOTE_STRING_MODE,{contains:[r,e.BACKSLASH_ESCAPE]});return r.contains=[o],{keywords:t,contains:[a,e.C_LINE_COMMENT_MODE,i,n,o,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,contains:["self",o,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:t,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,i]}]}}},function(e,t,n){"use strict";var i=n(13);e.exports=function(e,t,n){function r(e,t){return m&&(m=clearTimeout(m)),g=0,n.call(e,t)}function o(e){c=e.clientX,u=e.clientY}function a(e,n){if(m&&(m=clearTimeout(m)),Math.abs(d-c)+Math.abs(f-u)1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===t?"scrollTop":"scrollLeft",i=e.nodeName;if("BODY"===i||"HTML"===i){var r=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||r)[n]}return e[n]}function p(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=f(t,"top"),r=f(t,"left"),o=n?-1:1;return e.top+=i*o,e.bottom+=i*o,e.left+=r*o,e.right+=r*o,e}function g(e,t){var n="x"===t?"Left":"Top",i="Left"===n?"Right":"Bottom";return+e["border"+n+"Width"].split("px")[0]+ +e["border"+i+"Width"].split("px")[0]}function m(e,t,n,i){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],ge()?n["offset"+e]+i["margin"+("Height"===e?"Top":"Left")]+i["margin"+("Height"===e?"Bottom":"Right")]:0)}function h(){var e=window.document.body,t=window.document.documentElement,n=ge()&&window.getComputedStyle(t);return{height:m("Height",e,t,n),width:m("Width",e,t,n)}}function b(e){return Ee({},e,{right:e.left+e.width,bottom:e.top+e.height})}function E(e){var t={};if(ge())try{t=e.getBoundingClientRect();var n=f(e,"top"),i=f(e,"left");t.top+=n,t.left+=i,t.bottom+=n,t.right+=i}catch(e){}else t=e.getBoundingClientRect();var r={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},a="HTML"===e.nodeName?h():{},s=a.width||e.clientWidth||r.right-r.left,l=a.height||e.clientHeight||r.bottom-r.top,c=e.offsetWidth-s,u=e.offsetHeight-l;if(c||u){var d=o(e);c-=g(d,"x"),u-=g(d,"y"),r.width-=c,r.height-=u}return b(r)}function v(e,t){var n=ge(),i="HTML"===t.nodeName,r=E(e),a=E(t),l=s(e),c=o(t),u=+c.borderTopWidth.split("px")[0],d=+c.borderLeftWidth.split("px")[0],f=b({top:r.top-a.top-u,left:r.left-a.left-d,width:r.width,height:r.height});if(f.marginTop=0,f.marginLeft=0,!n&&i){var g=+c.marginTop.split("px")[0],m=+c.marginLeft.split("px")[0];f.top-=u-g,f.bottom-=u-g,f.left-=d-m,f.right-=d-m,f.marginTop=g,f.marginLeft=m}return(n?t.contains(l):t===l&&"BODY"!==l.nodeName)&&(f=p(f,t)),f}function _(e){var t=e.ownerDocument.documentElement,n=v(e,t),i=Math.max(t.clientWidth,window.innerWidth||0),r=Math.max(t.clientHeight,window.innerHeight||0),o=f(t),a=f(t,"left");return b({top:o-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:i,height:r})}function w(e){var t=e.nodeName;return"BODY"!==t&&"HTML"!==t&&("fixed"===o(e,"position")||w(a(e)))}function y(e,t,n,i){var r={top:0,left:0},o=d(e,t);if("viewport"===i)r=_(o);else{var l=void 0;"scrollParent"===i?(l=s(a(e)),"BODY"===l.nodeName&&(l=e.ownerDocument.documentElement)):l="window"===i?e.ownerDocument.documentElement:i;var c=v(l,o);if("HTML"!==l.nodeName||w(o))r=c;else{var u=h(),f=u.height,p=u.width;r.top+=c.top-c.marginTop,r.bottom=f+c.top,r.left+=c.left-c.marginLeft,r.right=p+c.left}}return r.left+=n,r.top+=n,r.right-=n,r.bottom-=n,r}function N(e){return e.width*e.height}function O(e,t,n,i,r){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var a=y(n,i,o,r),s={top:{width:a.width,height:t.top-a.top},right:{width:a.right-t.right,height:a.height},bottom:{width:a.width,height:a.bottom-t.bottom},left:{width:t.left-a.left,height:a.height}},l=Object.keys(s).map(function(e){return Ee({key:e},s[e],{area:N(s[e])})}).sort(function(e,t){return t.area-e.area}),c=l.filter(function(e){var t=e.width,i=e.height;return t>=n.clientWidth&&i>=n.clientHeight}),u=c.length>0?c[0].key:l[0].key,d=e.split("-")[1];return u+(d?"-"+d:"")}function M(e,t,n){return v(n,d(t,n))}function x(e){var t=window.getComputedStyle(e),n=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight);return{width:e.offsetWidth+i,height:e.offsetHeight+n}}function C(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function T(e,t,n){n=n.split("-")[0];var i=x(e),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),a=o?"top":"left",s=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[a]=t[a]+t[l]/2-i[l]/2,r[s]=n===s?t[s]-i[c]:t[C(s)],r}function L(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function R(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var i=L(e,function(e){return e[t]===n});return e.indexOf(i)}function S(e,t,n){return(void 0===n?e:e.slice(0,R(e,"name",n))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&r(n)&&(t.offsets.popper=b(t.offsets.popper),t.offsets.reference=b(t.offsets.reference),t=n(t,e))}),t}function A(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=M(this.state,this.popper,this.reference),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.offsets.popper=T(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position="absolute",e=S(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function D(e,t){return e.some(function(e){var n=e.name;return e.enabled&&n===t})}function I(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),i=0;ia[p]&&(e.offsets.popper[d]+=s[d]+g-a[p]);var m=s[d]+s[c]/2-g/2,h=o(e.instance.popper,"margin"+u).replace("px",""),E=m-b(e.offsets.popper)[d]-h;return E=Math.max(Math.min(a[c]-g,E),0),e.arrowElement=n,e.offsets.arrow={},e.offsets.arrow[d]=Math.round(E),e.offsets.arrow[f]="",e}function Q(e){return"end"===e?"start":"start"===e?"end":e}function Y(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=_e.indexOf(e),i=_e.slice(n+1).concat(_e.slice(0,n));return t?i.reverse():i}function X(e,t){if(D(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=y(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split("-")[0],r=C(i),o=e.placement.split("-")[1]||"",a=[];switch(t.behavior){case we.FLIP:a=[i,r];break;case we.CLOCKWISE:a=Y(i);break;case we.COUNTERCLOCKWISE:a=Y(i,!0);break;default:a=t.behavior}return a.forEach(function(s,l){if(i!==s||a.length===l+1)return e;i=e.placement.split("-")[0],r=C(i);var c=e.offsets.popper,u=e.offsets.reference,d=Math.floor,f="left"===i&&d(c.right)>d(u.left)||"right"===i&&d(c.left)d(u.top)||"bottom"===i&&d(c.top)d(n.right),m=d(c.top)d(n.bottom),b="left"===i&&p||"right"===i&&g||"top"===i&&m||"bottom"===i&&h,E=-1!==["top","bottom"].indexOf(i),v=!!t.flipVariations&&(E&&"start"===o&&p||E&&"end"===o&&g||!E&&"start"===o&&m||!E&&"end"===o&&h);(f||b||v)&&(e.flipped=!0,(f||b)&&(i=a[l+1]),v&&(o=Q(o)),e.placement=i+(o?"-"+o:""),e.offsets.popper=Ee({},e.offsets.popper,T(e.instance.popper,e.offsets.reference,e.placement)),e=S(e.instance.modifiers,e,"flip"))}),e}function J(e){var t=e.offsets,n=t.popper,i=t.reference,r=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(r),s=a?"right":"bottom",l=a?"left":"top",c=a?"width":"height";return n[s]o(i[s])&&(e.offsets.popper[l]=o(i[s])),e}function ee(e,t,n,i){var r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],a=r[2];if(!o)return e;if(0===a.indexOf("%")){var s=void 0;switch(a){case"%p":s=n;break;case"%":case"%r":default:s=i}return b(s)[t]/100*o}if("vh"===a||"vw"===a){return("vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o}return o}function te(e,t,n,i){var r=[0,0],o=-1!==["right","left"].indexOf(i),a=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=a.indexOf(L(a,function(e){return-1!==e.search(/,|\s/)}));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==s?[a.slice(0,s).concat([a[s].split(l)[0]]),[a[s].split(l)[1]].concat(a.slice(s+1))]:[a];return c=c.map(function(e,i){var r=(1===i?!o:o)?"height":"width",a=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,a=!0,e):a?(e[e.length-1]+=t,a=!1,e):e.concat(t)},[]).map(function(e){return ee(e,r,t,n)})}),c.forEach(function(e,t){e.forEach(function(n,i){K(n)&&(r[t]+=n*("-"===e[i-1]?-1:1))})}),r}function ne(e,t){var n=t.offset,i=e.placement,r=e.offsets,o=r.popper,a=r.reference,s=i.split("-")[0],l=void 0;return l=K(+n)?[+n,0]:te(n,o,a,s),"left"===s?(o.top+=l[0],o.left-=l[1]):"right"===s?(o.top+=l[0],o.left+=l[1]):"top"===s?(o.left+=l[0],o.top-=l[1]):"bottom"===s&&(o.left+=l[0],o.top+=l[1]),e.popper=o,e}function ie(e,t){var n=t.boundariesElement||l(e.instance.popper);e.instance.reference===n&&(n=l(n));var i=y(e.instance.popper,e.instance.reference,t.padding,n);t.boundaries=i;var r=t.priority,o=e.offsets.popper,a={primary:function(e){var n=o[e];return o[e]i[e]&&!t.escapeWithReference&&(r=Math.min(o[n],i[e]-("right"===e?o.width:o.height))),be({},n,r)}};return r.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";o=Ee({},o,a[t](e))}),e.offsets.popper=o,e}function re(e){var t=e.placement,n=t.split("-")[0],i=t.split("-")[1];if(i){var r=e.offsets,o=r.reference,a=r.popper,s=-1!==["bottom","top"].indexOf(n),l=s?"left":"top",c=s?"width":"height",u={start:be({},l,o[l]),end:be({},l,o[l]+o[c]-a[c])};e.offsets.popper=Ee({},a,u[i])}return e}function oe(e){if(!V(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right=0){ce=1;break}var de=se&&window.Promise,fe=de?n:i,pe=void 0,ge=function(){return void 0===pe&&(pe=-1!==navigator.appVersion.indexOf("MSIE 10")),pe},me=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},he=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};me(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=fe(this.update.bind(this)),this.options=Ee({},e.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(Ee({},e.Defaults.modifiers,o.modifiers)).forEach(function(t){i.options.modifiers[t]=Ee({},e.Defaults.modifiers[t]||{},o.modifiers?o.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return Ee({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&r(e.onLoad)&&e.onLoad(i.reference,i.popper,i.options,e,i.state)}),this.update();var a=this.options.eventsEnabled;a&&this.enableEventListeners(),this.state.eventsEnabled=a}return he(e,[{key:"update",value:function(){return A.call(this)}},{key:"destroy",value:function(){return B.call(this)}},{key:"enableEventListeners",value:function(){return F.call(this)}},{key:"disableEventListeners",value:function(){return j.call(this)}}]),e}();Oe.Utils=("undefined"!=typeof window?window:e).PopperUtils,Oe.placements=ve,Oe.Defaults=Ne,t.default=Oe}.call(t,n(0))},function(e,t,n){(function(n){var i,r,o;!function(n,a){"use strict";r=[],i=a,void 0!==(o="function"==typeof i?i.apply(t,r):i)&&(e.exports=o)}(0,function(){"use strict";function e(e,a){if(!i(e)||!a.reProcess&&e.getAttribute("textFitted"))return!1;a.reProcess||e.setAttribute("textFitted",1);var s,l,c,u,d,f,p;if(c=e.innerHTML,u=n(e),l=t(e),!u||!a.widthOnly&&!l)throw a.widthOnly?new Error("Set a static width on the target element "+e.outerHTML+" before using textFit!"):new Error("Set a static height and width on the target element "+e.outerHTML+" before using textFit!");-1===c.indexOf("textFitted")?(s=document.createElement("span"),s.className="textFitted",s.style.display="inline-block",s.innerHTML=c,e.innerHTML="",e.appendChild(s)):(s=e.querySelector("span.textFitted"),r(s,"textFitAlignVert")&&(s.className=s.className.replace("textFitAlignVert",""),s.style.height="",e.className.replace("textFitAlignVertFlex",""))),a.alignHoriz&&(e.style["text-align"]="center",s.style["text-align"]="center");var g=a.multiLine;for(a.detectMultiLine&&!g&&s.scrollHeight>=2*parseInt(window.getComputedStyle(s)["font-size"],10)&&(g=!0),g||(e.style["white-space"]="nowrap"),d=a.minFontSize+1,p=a.maxFontSize+1;d<=p;)f=parseInt((d+p)/2,10),s.style.fontSize=f+"px",s.scrollWidth<=u&&(a.widthOnly||s.scrollHeight<=l)?d=f+1:p=f-1;if(s.style.fontSize=f-1+"px",a.alignVert){o();var m=s.scrollHeight;"static"===window.getComputedStyle(e).position&&(e.style.position="relative"),r(s,"textFitAlignVert")||(s.className=s.className+" textFitAlignVert"),s.style.height=m+"px",a.alignVertWithFlexbox&&!r(e,"textFitAlignVertFlex")&&(e.className=e.className+" textFitAlignVertFlex")}}function t(e){var t=window.getComputedStyle(e,null);return e.clientHeight-parseInt(t.getPropertyValue("padding-top"),10)-parseInt(t.getPropertyValue("padding-bottom"),10)}function n(e){var t=window.getComputedStyle(e,null);return e.clientWidth-parseInt(t.getPropertyValue("padding-left"),10)-parseInt(t.getPropertyValue("padding-right"),10)}function i(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&null!==e&&1===e.nodeType&&"string"==typeof e.nodeName}function r(e,t){return(" "+e.className+" ").indexOf(" "+t+" ")>-1}function o(){if(!document.getElementById("textFitStyleSheet")){var e=[".textFitAlignVert{","position: absolute;","top: 0; right: 0; bottom: 0; left: 0;","margin: auto;","display: flex;","justify-content: center;","flex-direction: column;","}",".textFitAlignVertFlex{","display: flex;","}",".textFitAlignVertFlex .textFitAlignVert{","position: static;","}"].join(""),t=document.createElement("style");t.type="text/css",t.id="textFitStyleSheet",t.innerHTML=e,document.body.appendChild(t)}}var a={alignVert:!1,alignHoriz:!1,multiLine:!1,detectMultiLine:!0,minFontSize:6,maxFontSize:80,reProcess:!0,widthOnly:!1,alignVertWithFlexbox:!1};return function(t,n){n||(n={});var i={};for(var r in a)n.hasOwnProperty(r)?i[r]=n[r]:i[r]=a[r];"function"==typeof t.toArray&&(t=t.toArray());var o=Object.prototype.toString.call(t);"[object Array]"!==o&&"[object NodeList]"!==o&&"[object HTMLCollection]"!==o&&(t=[t]);for(var s=0;s/g,">")}function n(e){return e.nodeName.toLowerCase()}function i(e,t){var n=e&&e.exec(t);return n&&0===n.index}function r(e){return x.test(e)}function o(e){var t,n,i,o,a=e.className+" ";if(a+=e.parentNode?e.parentNode.className:"",n=C.exec(a))return w(n[1])?n[1]:"no-highlight";for(a=a.split(/\s+/),t=0,i=a.length;t"}function s(e){u+=""}function l(e){("start"===e.event?a:s)(e.node)}for(var c=0,u="",d=[];e.length||i.length;){var f=o();if(u+=t(r.substring(c,f[0].offset)),c=f[0].offset,f===e){d.reverse().forEach(s);do{l(f.splice(0,1)[0]),f=o()}while(f===e&&f.length&&f[0].offset===c);d.reverse().forEach(a)}else"start"===f[0].event?d.push(f[0].node):d.pop(),l(f.splice(0,1)[0])}return u+t(r.substr(c))}function c(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map(function(t){return a(e,{variants:null},t)})),e.cached_variants||e.endsWithParent&&[a(e)]||[e]}function u(e){function t(e){return e&&e.source||e}function n(n,i){return new RegExp(t(n),"m"+(e.case_insensitive?"i":"")+(i?"g":""))}function i(r,o){if(!r.compiled){if(r.compiled=!0,r.keywords=r.keywords||r.beginKeywords,r.keywords){var a={},s=function(t,n){e.case_insensitive&&(n=n.toLowerCase()),n.split(" ").forEach(function(e){var n=e.split("|");a[n[0]]=[t,n[1]?Number(n[1]):1]})};"string"==typeof r.keywords?s("keyword",r.keywords):N(r.keywords).forEach(function(e){s(e,r.keywords[e])}),r.keywords=a}r.lexemesRe=n(r.lexemes||/\w+/,!0),o&&(r.beginKeywords&&(r.begin="\\b("+r.beginKeywords.split(" ").join("|")+")\\b"),r.begin||(r.begin=/\B|\b/),r.beginRe=n(r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(r.endRe=n(r.end)),r.terminator_end=t(r.end)||"",r.endsWithParent&&o.terminator_end&&(r.terminator_end+=(r.end?"|":"")+o.terminator_end)),r.illegal&&(r.illegalRe=n(r.illegal)),null==r.relevance&&(r.relevance=1),r.contains||(r.contains=[]),r.contains=Array.prototype.concat.apply([],r.contains.map(function(e){return c("self"===e?r:e)})),r.contains.forEach(function(e){i(e,r)}),r.starts&&i(r.starts,o);var l=r.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([r.terminator_end,r.illegal]).map(t).filter(Boolean);r.terminators=l.length?n(l.join("|"),!0):{exec:function(){return null}}}}i(e)}function d(e,n,r,o){function a(e,t){var n,r;for(n=0,r=t.contains.length;n')+t+a}function g(){var e,n,i,r;if(!y.keywords)return t(x);for(r="",n=0,y.lexemesRe.lastIndex=0,i=y.lexemesRe.exec(x);i;)r+=t(x.substring(n,i.index)),e=c(y,i),e?(C+=e[1],r+=p(e[0],t(i[0]))):r+=t(i[0]),n=y.lexemesRe.lastIndex,i=y.lexemesRe.exec(x);return r+t(x.substr(n))}function m(){var e="string"==typeof y.subLanguage;if(e&&!O[y.subLanguage])return t(x);var n=e?d(y.subLanguage,x,!0,N[y.subLanguage]):f(x,y.subLanguage.length?y.subLanguage:void 0);return y.relevance>0&&(C+=n.relevance),e&&(N[y.subLanguage]=n.top),p(n.language,n.value,!1,!0)}function h(){M+=null!=y.subLanguage?m():g(),x=""}function b(e){M+=e.className?p(e.className,"",!0):"",y=Object.create(e,{parent:{value:y}})}function E(e,t){if(x+=e,null==t)return h(),0;var n=a(t,y);if(n)return n.skip?x+=t:(n.excludeBegin&&(x+=t),h(),n.returnBegin||n.excludeBegin||(x=t)),b(n,t),n.returnBegin?0:t.length;var i=s(y,t);if(i){var r=y;r.skip?x+=t:(r.returnEnd||r.excludeEnd||(x+=t),h(),r.excludeEnd&&(x=t));do{y.className&&(M+=L),y.skip||(C+=y.relevance),y=y.parent}while(y!==i.parent);return i.starts&&b(i.starts,""),r.returnEnd?0:t.length}if(l(t,y))throw new Error('Illegal lexeme "'+t+'" for mode "'+(y.className||"")+'"');return x+=t,t.length||1}var v=w(e);if(!v)throw new Error('Unknown language: "'+e+'"');u(v);var _,y=o||v,N={},M="";for(_=y;_!==v;_=_.parent)_.className&&(M=p(_.className,"",!0)+M);var x="",C=0;try{for(var T,S,A=0;;){if(y.terminators.lastIndex=A,!(T=y.terminators.exec(n)))break;S=E(n.substring(A,T.index),T[0]),A=T.index+S}for(E(n.substr(A)),_=y;_.parent;_=_.parent)_.className&&(M+=L);return{relevance:C,value:M,language:e,top:y}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:t(n)};throw e}}function f(e,n){n=n||R.languages||N(O);var i={relevance:0,value:t(e)},r=i;return n.filter(w).forEach(function(t){var n=d(t,e,!1);n.language=t,n.relevance>r.relevance&&(r=n),n.relevance>i.relevance&&(r=i,i=n)}),r.language&&(i.second_best=r),i}function p(e){return R.tabReplace||R.useBR?e.replace(T,function(e,t){return R.useBR&&"\n"===e?"
":R.tabReplace?t.replace(/\t/g,R.tabReplace):""}):e}function g(e,t,n){var i=t?M[t]:n,r=[e.trim()];return e.match(/\bhljs\b/)||r.push("hljs"),-1===e.indexOf(i)&&r.push(i),r.join(" ").trim()}function m(e){var t,n,i,a,c,u=o(e);r(u)||(R.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):t=e,c=t.textContent,i=u?d(u,c,!0):f(c),n=s(t),n.length&&(a=document.createElementNS("http://www.w3.org/1999/xhtml","div"),a.innerHTML=i.value,i.value=l(n,s(a),c)),i.value=p(i.value),e.innerHTML=i.value,e.className=g(e.className,u,i.language),e.result={language:i.language,re:i.relevance},i.second_best&&(e.second_best={language:i.second_best.language,re:i.second_best.relevance}))}function h(e){R=a(R,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");y.forEach.call(e,m)}}function E(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function v(t,n){var i=O[t]=n(e);i.aliases&&i.aliases.forEach(function(e){M[e]=t})}function _(){return N(O)}function w(e){return e=(e||"").toLowerCase(),O[e]||O[M[e]]}var y=[],N=Object.keys,O={},M={},x=/^(no-?highlight|plain|text)$/i,C=/\blang(?:uage)?-([\w-]+)\b/i,T=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,L="",R={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=d,e.highlightAuto=f,e.fixMarkup=p,e.highlightBlock=m,e.configure=h,e.initHighlighting=b,e.initHighlightingOnLoad=E,e.registerLanguage=v,e.listLanguages=_,e.getLanguage=w,e.inherit=a,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.COMMENT=function(t,n,i){var r=e.inherit({className:"comment",begin:t,end:n,contains:[]},i||{});return r.contains.push(e.PHRASAL_WORDS_MODE),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),r},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0},e})},function(e,t){e.exports=function(e){var t={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long nameof object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let on orderby partial remove select set value var where yield",literal:"null false true"},n={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},i=e.inherit(n,{illegal:/\n/}),r={className:"subst",begin:"{",end:"}",keywords:t},o=e.inherit(r,{illegal:/\n/}),a={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,o]},s={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},r]},l=e.inherit(s,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},o]});r.contains=[s,a,n,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE],o.contains=[l,a,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var c={variants:[s,a,n,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?";return{aliases:["csharp"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},c,e.C_NUMBER_MODE,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.TITLE_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+u+"\\s+)+"+e.IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[c,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}}},function(e,t){e.exports=function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",n={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},i={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},r={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},o={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,r]};r.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,i,e.REGEXP_MODE];var a=r.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:n,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:a}]}]},{begin://,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:a}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}},function(e,t){e.exports=function(e){var t="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",n={className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0};return{aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,{className:"meta",begin:"@[A-Za-z]+"}]}}},function(e,t){e.exports=function(e){var t={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},n={className:"meta",begin:/<\?(php)?|\?>/},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["php3","php4","php5","php6"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[n]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},n,{className:"keyword",begin:/\$this\b/},t,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",t,e.C_BLOCK_COMMENT_MODE,i,r]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},i,r]}}},function(e,t){e.exports=function(e){var t={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},n={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:t,illegal:/#/},r={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[n],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[n],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[n,i]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[n,i]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[i]},{begin:/(fr|rf|f)"/,end:/"/,contains:[i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},o={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},a={className:"params",begin:/\(/,end:/\)/,contains:["self",n,o,r]};return i.contains=[r,o,n],{aliases:["py","gyp"],keywords:t,illegal:/(<\/|->|\?)|=>/,contains:[n,o,r,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,a,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}},function(e,t){e.exports=function(e){var t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",n={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},i={className:"doctag",begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},o=[e.COMMENT("#","$",{contains:[i]}),e.COMMENT("^\\=begin","^\\=end",{contains:[i],relevance:10}),e.COMMENT("^__END__","\\n$")],a={className:"subst",begin:"#\\{",end:"}",keywords:n},s={className:"string",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<(-?)\w+$/,end:/^\s*\w+$/}]},l={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:n},c=[s,r,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(o)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:t}),l].concat(o)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[s,{begin:t}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:n},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[r,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(o),relevance:0}].concat(o);a.contains=c,l.contains=c;var u=[{begin:/^\s*=>/,starts:{end:"$",contains:c}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:c}}];return{aliases:["rb","gemspec","podspec","thor","irb"],keywords:n,illegal:/\/\*/,contains:o.concat(u).concat(c)}}},function(e,t){e.exports=function(e){return{aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}}},function(e,t){e.exports=function(e){var t={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n={className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},i=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r={className:"subst",begin:/\\\(/,end:"\\)",keywords:t,contains:[]},o={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0},a=e.inherit(e.QUOTE_STRING_MODE,{contains:[r,e.BACKSLASH_ESCAPE]});return r.contains=[o],{keywords:t,contains:[a,e.C_LINE_COMMENT_MODE,i,n,o,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin://},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,contains:["self",o,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:t,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,i]}]}}},function(e,t,n){"use strict";var i=n(13);e.exports=function(e,t,n){function r(e,t){return m&&(m=clearTimeout(m)),g=0,n.call(e,t)}function o(e){c=e.clientX,u=e.clientY}function a(e,n){if(m&&(m=clearTimeout(m)),Math.abs(d-c)+Math.abs(f-u)1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===t?"scrollTop":"scrollLeft",i=e.nodeName;if("BODY"===i||"HTML"===i){var r=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||r)[n]}return e[n]}function p(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=f(t,"top"),r=f(t,"left"),o=n?-1:1;return e.top+=i*o,e.bottom+=i*o,e.left+=r*o,e.right+=r*o,e}function g(e,t){var n="x"===t?"Left":"Top",i="Left"===n?"Right":"Bottom";return+e["border"+n+"Width"].split("px")[0]+ +e["border"+i+"Width"].split("px")[0]}function m(e,t,n,i){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],ge()?n["offset"+e]+i["margin"+("Height"===e?"Top":"Left")]+i["margin"+("Height"===e?"Bottom":"Right")]:0)}function h(){var e=window.document.body,t=window.document.documentElement,n=ge()&&window.getComputedStyle(t);return{height:m("Height",e,t,n),width:m("Width",e,t,n)}}function b(e){return Ee({},e,{right:e.left+e.width,bottom:e.top+e.height})}function E(e){var t={};if(ge())try{t=e.getBoundingClientRect();var n=f(e,"top"),i=f(e,"left");t.top+=n,t.left+=i,t.bottom+=n,t.right+=i}catch(e){}else t=e.getBoundingClientRect();var r={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},a="HTML"===e.nodeName?h():{},s=a.width||e.clientWidth||r.right-r.left,l=a.height||e.clientHeight||r.bottom-r.top,c=e.offsetWidth-s,u=e.offsetHeight-l;if(c||u){var d=o(e);c-=g(d,"x"),u-=g(d,"y"),r.width-=c,r.height-=u}return b(r)}function v(e,t){var n=ge(),i="HTML"===t.nodeName,r=E(e),a=E(t),l=s(e),c=o(t),u=+c.borderTopWidth.split("px")[0],d=+c.borderLeftWidth.split("px")[0],f=b({top:r.top-a.top-u,left:r.left-a.left-d,width:r.width,height:r.height});if(f.marginTop=0,f.marginLeft=0,!n&&i){var g=+c.marginTop.split("px")[0],m=+c.marginLeft.split("px")[0];f.top-=u-g,f.bottom-=u-g,f.left-=d-m,f.right-=d-m,f.marginTop=g,f.marginLeft=m}return(n?t.contains(l):t===l&&"BODY"!==l.nodeName)&&(f=p(f,t)),f}function _(e){var t=e.ownerDocument.documentElement,n=v(e,t),i=Math.max(t.clientWidth,window.innerWidth||0),r=Math.max(t.clientHeight,window.innerHeight||0),o=f(t),a=f(t,"left");return b({top:o-n.top+n.marginTop,left:a-n.left+n.marginLeft,width:i,height:r})}function w(e){var t=e.nodeName;return"BODY"!==t&&"HTML"!==t&&("fixed"===o(e,"position")||w(a(e)))}function y(e,t,n,i){var r={top:0,left:0},o=d(e,t);if("viewport"===i)r=_(o);else{var l=void 0;"scrollParent"===i?(l=s(a(e)),"BODY"===l.nodeName&&(l=e.ownerDocument.documentElement)):l="window"===i?e.ownerDocument.documentElement:i;var c=v(l,o);if("HTML"!==l.nodeName||w(o))r=c;else{var u=h(),f=u.height,p=u.width;r.top+=c.top-c.marginTop,r.bottom=f+c.top,r.left+=c.left-c.marginLeft,r.right=p+c.left}}return r.left+=n,r.top+=n,r.right-=n,r.bottom-=n,r}function N(e){return e.width*e.height}function O(e,t,n,i,r){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var a=y(n,i,o,r),s={top:{width:a.width,height:t.top-a.top},right:{width:a.right-t.right,height:a.height},bottom:{width:a.width,height:a.bottom-t.bottom},left:{width:t.left-a.left,height:a.height}},l=Object.keys(s).map(function(e){return Ee({key:e},s[e],{area:N(s[e])})}).sort(function(e,t){return t.area-e.area}),c=l.filter(function(e){var t=e.width,i=e.height;return t>=n.clientWidth&&i>=n.clientHeight}),u=c.length>0?c[0].key:l[0].key,d=e.split("-")[1];return u+(d?"-"+d:"")}function M(e,t,n){return v(n,d(t,n))}function x(e){var t=window.getComputedStyle(e),n=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight);return{width:e.offsetWidth+i,height:e.offsetHeight+n}}function C(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function T(e,t,n){n=n.split("-")[0];var i=x(e),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),a=o?"top":"left",s=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[a]=t[a]+t[l]/2-i[l]/2,r[s]=n===s?t[s]-i[c]:t[C(s)],r}function L(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function R(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var i=L(e,function(e){return e[t]===n});return e.indexOf(i)}function S(e,t,n){return(void 0===n?e:e.slice(0,R(e,"name",n))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&r(n)&&(t.offsets.popper=b(t.offsets.popper),t.offsets.reference=b(t.offsets.reference),t=n(t,e))}),t}function A(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=M(this.state,this.popper,this.reference),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.offsets.popper=T(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position="absolute",e=S(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function D(e,t){return e.some(function(e){var n=e.name;return e.enabled&&n===t})}function I(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),i=0;ia[p]&&(e.offsets.popper[d]+=s[d]+g-a[p]);var m=s[d]+s[c]/2-g/2,h=o(e.instance.popper,"margin"+u).replace("px",""),E=m-b(e.offsets.popper)[d]-h;return E=Math.max(Math.min(a[c]-g,E),0),e.arrowElement=n,e.offsets.arrow={},e.offsets.arrow[d]=Math.round(E),e.offsets.arrow[f]="",e}function Q(e){return"end"===e?"start":"start"===e?"end":e}function Y(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=_e.indexOf(e),i=_e.slice(n+1).concat(_e.slice(0,n));return t?i.reverse():i}function X(e,t){if(D(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=y(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split("-")[0],r=C(i),o=e.placement.split("-")[1]||"",a=[];switch(t.behavior){case we.FLIP:a=[i,r];break;case we.CLOCKWISE:a=Y(i);break;case we.COUNTERCLOCKWISE:a=Y(i,!0);break;default:a=t.behavior}return a.forEach(function(s,l){if(i!==s||a.length===l+1)return e;i=e.placement.split("-")[0],r=C(i);var c=e.offsets.popper,u=e.offsets.reference,d=Math.floor,f="left"===i&&d(c.right)>d(u.left)||"right"===i&&d(c.left)d(u.top)||"bottom"===i&&d(c.top)d(n.right),m=d(c.top)d(n.bottom),b="left"===i&&p||"right"===i&&g||"top"===i&&m||"bottom"===i&&h,E=-1!==["top","bottom"].indexOf(i),v=!!t.flipVariations&&(E&&"start"===o&&p||E&&"end"===o&&g||!E&&"start"===o&&m||!E&&"end"===o&&h);(f||b||v)&&(e.flipped=!0,(f||b)&&(i=a[l+1]),v&&(o=Q(o)),e.placement=i+(o?"-"+o:""),e.offsets.popper=Ee({},e.offsets.popper,T(e.instance.popper,e.offsets.reference,e.placement)),e=S(e.instance.modifiers,e,"flip"))}),e}function J(e){var t=e.offsets,n=t.popper,i=t.reference,r=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(r),s=a?"right":"bottom",l=a?"left":"top",c=a?"width":"height";return n[s]o(i[s])&&(e.offsets.popper[l]=o(i[s])),e}function ee(e,t,n,i){var r=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],a=r[2];if(!o)return e;if(0===a.indexOf("%")){var s=void 0;switch(a){case"%p":s=n;break;case"%":case"%r":default:s=i}return b(s)[t]/100*o}if("vh"===a||"vw"===a){return("vh"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o}return o}function te(e,t,n,i){var r=[0,0],o=-1!==["right","left"].indexOf(i),a=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=a.indexOf(L(a,function(e){return-1!==e.search(/,|\s/)}));a[s]&&-1===a[s].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==s?[a.slice(0,s).concat([a[s].split(l)[0]]),[a[s].split(l)[1]].concat(a.slice(s+1))]:[a];return c=c.map(function(e,i){var r=(1===i?!o:o)?"height":"width",a=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,a=!0,e):a?(e[e.length-1]+=t,a=!1,e):e.concat(t)},[]).map(function(e){return ee(e,r,t,n)})}),c.forEach(function(e,t){e.forEach(function(n,i){K(n)&&(r[t]+=n*("-"===e[i-1]?-1:1))})}),r}function ne(e,t){var n=t.offset,i=e.placement,r=e.offsets,o=r.popper,a=r.reference,s=i.split("-")[0],l=void 0;return l=K(+n)?[+n,0]:te(n,o,a,s),"left"===s?(o.top+=l[0],o.left-=l[1]):"right"===s?(o.top+=l[0],o.left+=l[1]):"top"===s?(o.left+=l[0],o.top-=l[1]):"bottom"===s&&(o.left+=l[0],o.top+=l[1]),e.popper=o,e}function ie(e,t){var n=t.boundariesElement||l(e.instance.popper);e.instance.reference===n&&(n=l(n));var i=y(e.instance.popper,e.instance.reference,t.padding,n);t.boundaries=i;var r=t.priority,o=e.offsets.popper,a={primary:function(e){var n=o[e];return o[e]i[e]&&!t.escapeWithReference&&(r=Math.min(o[n],i[e]-("right"===e?o.width:o.height))),be({},n,r)}};return r.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";o=Ee({},o,a[t](e))}),e.offsets.popper=o,e}function re(e){var t=e.placement,n=t.split("-")[0],i=t.split("-")[1];if(i){var r=e.offsets,o=r.reference,a=r.popper,s=-1!==["bottom","top"].indexOf(n),l=s?"left":"top",c=s?"width":"height",u={start:be({},l,o[l]),end:be({},l,o[l]+o[c]-a[c])};e.offsets.popper=Ee({},a,u[i])}return e}function oe(e){if(!V(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=L(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right=0){ce=1;break}var de=se&&window.Promise,fe=de?n:i,pe=void 0,ge=function(){return void 0===pe&&(pe=-1!==navigator.appVersion.indexOf("MSIE 10")),pe},me=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},he=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:{};me(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=fe(this.update.bind(this)),this.options=Ee({},e.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(Ee({},e.Defaults.modifiers,o.modifiers)).forEach(function(t){i.options.modifiers[t]=Ee({},e.Defaults.modifiers[t]||{},o.modifiers?o.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return Ee({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&r(e.onLoad)&&e.onLoad(i.reference,i.popper,i.options,e,i.state)}),this.update();var a=this.options.eventsEnabled;a&&this.enableEventListeners(),this.state.eventsEnabled=a}return he(e,[{key:"update",value:function(){return A.call(this)}},{key:"destroy",value:function(){return B.call(this)}},{key:"enableEventListeners",value:function(){return F.call(this)}},{key:"disableEventListeners",value:function(){return j.call(this)}}]),e}();Oe.Utils=("undefined"!=typeof window?window:e).PopperUtils,Oe.placements=ve,Oe.Defaults=Ne,t.default=Oe}.call(t,n(0))},function(e,t,n){(function(n){var i,r,o;!function(n,a){"use strict";r=[],i=a,void 0!==(o="function"==typeof i?i.apply(t,r):i)&&(e.exports=o)}(0,function(){"use strict";function e(e,a){if(!i(e)||!a.reProcess&&e.getAttribute("textFitted"))return!1;a.reProcess||e.setAttribute("textFitted",1);var s,l,c,u,d,f,p;if(c=e.innerHTML,u=n(e),l=t(e),!u||!a.widthOnly&&!l)throw a.widthOnly?new Error("Set a static width on the target element "+e.outerHTML+" before using textFit!"):new Error("Set a static height and width on the target element "+e.outerHTML+" before using textFit!");-1===c.indexOf("textFitted")?(s=document.createElement("span"),s.className="textFitted",s.style.display="inline-block",s.innerHTML=c,e.innerHTML="",e.appendChild(s)):(s=e.querySelector("span.textFitted"),r(s,"textFitAlignVert")&&(s.className=s.className.replace("textFitAlignVert",""),s.style.height="",e.className.replace("textFitAlignVertFlex",""))),a.alignHoriz&&(e.style["text-align"]="center",s.style["text-align"]="center");var g=a.multiLine;for(a.detectMultiLine&&!g&&s.scrollHeight>=2*parseInt(window.getComputedStyle(s)["font-size"],10)&&(g=!0),g||(e.style["white-space"]="nowrap"),d=a.minFontSize+1,p=a.maxFontSize+1;d<=p;)f=parseInt((d+p)/2,10),s.style.fontSize=f+"px",s.scrollWidth<=u&&(a.widthOnly||s.scrollHeight<=l)?d=f+1:p=f-1;if(s.style.fontSize=f-1+"px",a.alignVert){o();var m=s.scrollHeight;"static"===window.getComputedStyle(e).position&&(e.style.position="relative"),r(s,"textFitAlignVert")||(s.className=s.className+" textFitAlignVert"),s.style.height=m+"px",a.alignVertWithFlexbox&&!r(e,"textFitAlignVertFlex")&&(e.className=e.className+" textFitAlignVertFlex")}}function t(e){var t=window.getComputedStyle(e,null);return e.clientHeight-parseInt(t.getPropertyValue("padding-top"),10)-parseInt(t.getPropertyValue("padding-bottom"),10)}function n(e){var t=window.getComputedStyle(e,null);return e.clientWidth-parseInt(t.getPropertyValue("padding-left"),10)-parseInt(t.getPropertyValue("padding-right"),10)}function i(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&null!==e&&1===e.nodeType&&"string"==typeof e.nodeName}function r(e,t){return(" "+e.className+" ").indexOf(" "+t+" ")>-1}function o(){if(!document.getElementById("textFitStyleSheet")){var e=[".textFitAlignVert{","position: absolute;","top: 0; right: 0; bottom: 0; left: 0;","margin: auto;","display: flex;","justify-content: center;","flex-direction: column;","}",".textFitAlignVertFlex{","display: flex;","}",".textFitAlignVertFlex .textFitAlignVert{","position: static;","}"].join(""),t=document.createElement("style");t.type="text/css",t.id="textFitStyleSheet",t.innerHTML=e,document.body.appendChild(t)}}var a={alignVert:!1,alignHoriz:!1,multiLine:!1,detectMultiLine:!0,minFontSize:6,maxFontSize:80,reProcess:!0,widthOnly:!1,alignVertWithFlexbox:!1};return function(t,n){n||(n={});var i={};for(var r in a)n.hasOwnProperty(r)?i[r]=n[r]:i[r]=a[r];"function"==typeof t.toArray&&(t=t.toArray());var o=Object.prototype.toString.call(t);"[object Array]"!==o&&"[object NodeList]"!==o&&"[object HTMLCollection]"!==o&&(t=[t]);for(var s=0;s*{max-width:732px;width:100%}.grid-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.grid-list__item{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;margin-bottom:32px}.header{margin-bottom:24px}.header__upper-wrapper{background:#536171;padding:8px 0;color:#b4c3ca}.header__upper-wrapper a.active,.header__upper-wrapper a:hover{color:#fff}.header__upper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:.875em}.header__upper-copy{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:0 0 8px}.header__upper-menu,.header__upper-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.header__upper-title{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin:0 0 8px}.header__upper-title img{display:inline-block;width:24px;height:auto;margin-right:8px}.header__upper-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.header__upper-icon{display:inline-block;width:20px;height:20px;margin-right:8px}.header__lower{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;padding-top:16px;padding-bottom:8px;border-bottom:1px solid #e5ebed}.header__logo,.header__lower{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;justify-content:center}.header__logo{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;-ms-flex-pack:center;margin:0 0 8px}.header__logo img{width:100%;height:auto;max-width:169px}.header__controls{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center}.header__controls,.header__controls_group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;justify-content:center;margin:0 0 8px}.header__controls_group{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;position:relative;-ms-flex-pack:center;border:none;border-radius:4px;color:inherit}.header__controls_group:last-child{margin:0}.header__controls_label{position:relative;z-index:5;cursor:pointer}.header__controls_label:hover{color:#fff}.header__controls_label:hover:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='5' viewBox='0 0 10 5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M0 0l5 5 5-5z'/%3E%3C/svg%3E")}.header__controls_label:after{content:"";display:inline-block;width:10px;height:5px;margin-left:8px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='5' viewBox='0 0 10 5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23B4C3CA' d='M0 0l5 5 5-5z'/%3E%3C/svg%3E");background-size:contain;background-position:50%;background-repeat:no-repeat;vertical-align:middle}.header__controls_dropdown{position:absolute;z-index:6;-webkit-box-sizing:border-box;box-sizing:border-box;right:0;width:260px;max-width:90vw;margin:12px 0 0;opacity:0;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1);-webkit-transition:opacity .3s ease;transition:opacity .3s ease;pointer-events:none}.header__controls_dropdown--active{opacity:1;pointer-events:all}.header__controls_dropdown--active:before{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;background-color:inherit;-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.header__controls_help_text{padding:16px;color:#8091a5;line-height:1.29}.header__controls_button{-webkit-box-sizing:border-box;box-sizing:border-box;height:auto;width:100%;margin:0;padding:16px;border-radius:0;font-size:1em;text-align:left;line-height:1em}.header__controls_button,.header__controls_button:hover{background:#fff;color:#263545}.header__controls_button--active,.header__controls_button--active:hover{background:#d3dce0}.header__controls_button_help{display:inline-block;margin-top:8px;font-size:.875em;line-height:1.5em;color:#8091a5}.footer{padding:32px 0 16px}.footer p{margin:0}.footer__upper{-ms-flex-wrap:wrap;flex-wrap:wrap;min-height:80px;border-bottom:1px solid #e5ebed}.footer__upper,.footer__upper>*{display:-webkit-box;display:-ms-flexbox;display:flex}.footer__upper>*{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer__navigation{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.footer__apps{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.footer__apps a{display:inline-block;width:138px}.footer__apps a+a{margin-left:8px}.footer__apps a img{width:100%;height:auto}.footer__lower{display:-webkit-box;display:-ms-flexbox;display:flex;padding:16px 8px 0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer__lower>*{margin:0 0 16px}.footer__logo{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:140px;height:28px;margin-right:16px}.footer__disclaimer-text{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;color:#a9b9c0;font-size:.75em;line-height:1.5;text-align:justify}.footer__social{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer__social a+a{margin-left:16px}.footer__social svg{color:#a9b9c0;width:24px;height:24px}.breadcrumb{margin-bottom:8px;font-size:.875em}.breadcrumb ul{display:-webkit-box;display:-ms-flexbox;display:flex;list-style:none;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0}.breadcrumb ul,.breadcrumb ul li{margin:0}.breadcrumb ul li:after{content:"";display:inline-block;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='8' viewBox='0 0 5 8'%3E%3Cpath fill='none' stroke='%23536171' stroke-width='1.5' d='M1 7l3-2.89L1 1'/%3E%3C/svg%3E");background-size:contain;background-position:50%;background-repeat:no-repeat;width:4px;height:8px;padding:0 8px}.breadcrumb ul li:last-child:after{display:none}.breadcrumb ul li a{display:inline-block}.breadcrumb ul li a:hover{color:#3c80cf}.editorial-features{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-line-pack:center;align-content:center;margin-bottom:16px}.editorial-features a{color:#5c9fef}.editorial-features__item{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;margin-right:8px}.editorial-features__item:last-child{margin-right:0}.editorial-features__hint-wrapper{position:relative;z-index:3;margin-left:8px}.editorial-features__hint-wrapper:hover>div{opacity:1;-webkit-transition-delay:0s;transition-delay:0s}.editorial-features__hint-icon{width:24px;height:24px;cursor:help}.editorial-features__hint-message{position:absolute;z-index:4;-webkit-box-sizing:border-box;box-sizing:border-box;top:24px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:260px;max-width:90vw;margin:12px 0 0;padding:16px;background:#536171;border-radius:2px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1);opacity:0;-webkit-transition:opacity .3s ease .3s;transition:opacity .3s ease .3s;pointer-events:none;font-size:.75em;line-height:1.5;color:#fff}.editorial-features__hint-message:before{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;background-color:inherit;-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.main-navigation ul{display:-webkit-box;display:-ms-flexbox;display:flex;list-style:none;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0}.main-navigation ul,.main-navigation ul li{margin:0}.main-navigation ul li+li{margin-left:8px}.main-navigation ul li a{display:block;text-transform:uppercase;font-weight:700;padding:.7em 1em;color:#8091a5;border-radius:4px}.main-navigation ul li a.active,.main-navigation ul li a:hover{background:#f7f9fa}.main-navigation ul li a.active{color:#536171}.modal{display:none}.modal--visible{display:block}.modal__overlay{position:fixed;z-index:7;left:0;right:0;top:0;bottom:0;opacity:.3;background-color:#3b3d40;cursor:pointer}.modal__wrapper{position:fixed;z-index:8;left:50%;top:5vh;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-box-sizing:border-box;box-sizing:border-box;width:80vw;max-width:800px;max-height:90vh;overflow:auto;padding:32px;background-color:#fff;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1);border-radius:4px}.modal__title{margin-bottom:2vh;font-size:1em;text-align:center}.modal__content{color:#8091a5;font-size:.875em;line-height:1.3em}.modal__content a{color:#5c9fef;text-decoration:underline}.modal__content a:hover{color:#3c80cf}.modal__cta-wrapper{text-align:center;margin-top:32px}.modal__cta{display:inline-block;padding-bottom:.3em;border-bottom:1px solid #5c9fef;color:#5c9fef;font-size:.75em;font-weight:700;line-height:2.17;letter-spacing:2px;text-transform:uppercase}.modal__cta:hover{color:#3c80cf;border-bottom-color:#3c80cf}.modal__close-wrapper{position:absolute;z-index:9;top:16px;right:16px}.modal__close-button{display:block;width:18px;height:18px;color:#a9b9c0}.modal__close-button svg{width:100%;height:100%}.pill{display:inline-block;vertical-align:middle;padding:0 8px;background:#3c80cf;border-radius:4px;text-transform:uppercase;font-size:14px;font-size:.875rem;letter-spacing:1px;color:#fff}.pill--draft{background-color:#e6ae17}.pill--pending-changes{background-color:#3e97d6}.sidebar-menu__list{list-style:none;margin:0;padding:0}.sidebar-menu__item{margin:0 0 16px;padding:0;font-size:.9em;line-height:1.8}.sidebar-menu__link{display:block;color:#8091a5}.sidebar-menu__link.active,.sidebar-menu__link:hover{color:#536171}.sidebar-menu__link.active{font-family:robotomedium,Helvetica,sans-serif}.table-of-contents__list{list-style:none;margin:0;padding:0;padding-left:32px}.table-of-contents__item{margin:0 0 8px;padding:0;font-size:.9em;line-height:1.8}.table-of-contents__link{display:block;color:#8091a5}.table-of-contents__link.active,.table-of-contents__link:hover{color:#536171}.table-of-contents__link.active{position:relative;font-family:robotomedium,Helvetica,sans-serif}.table-of-contents__link.active:after,.table-of-contents__link.active:before{position:absolute;top:0}.table-of-contents__link.active:before{content:"";left:-48px;bottom:0;width:3px;background:#536171}.table-of-contents__link.visited{position:relative}.table-of-contents__link.visited:after,.table-of-contents__link.visited:before{position:absolute;top:0}.table-of-contents__link.visited:after{content:"";display:block;width:16px;height:16px;top:50%;left:-32px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%23536171'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3Cpath fill='%23A9B9C0' fill-rule='nonzero' d='M9.992 1.667c-4.6 0-8.325 3.733-8.325 8.333s3.725 8.333 8.325 8.333c4.608 0 8.341-3.733 8.341-8.333S14.6 1.667 9.992 1.667zm.008 15A6.665 6.665 0 0 1 3.333 10 6.665 6.665 0 0 1 10 3.333 6.665 6.665 0 0 1 16.667 10 6.665 6.665 0 0 1 10 16.667z'/%3E%3Cpath stroke='%23A9B9C0' stroke-width='1.333' d='M13.333 7.5l-5 5-1.666-1.786'/%3E%3C/g%3E%3C/svg%3E");background-size:contain;background-position:50%;background-repeat:no-repeat}body{background-color:#fff;color:#536171;font-family:roboto,Helvetica,sans-serif;font-size:16px;font-size:1rem;line-height:1.5em}.main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100vh}.main__header{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.main__content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.main__footer{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.course-card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:32px;border-radius:4px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.course-card__categories{-webkit-box-flex:0;-ms-flex:0 0 1.5em;flex:0 0 1.5em;margin-bottom:16px;height:1.5em}.course-card__category{display:inline-block;color:#8091a5;font-size:.75em;font-family:robotomedium,Helvetica,sans-serif}.course-card__category:after{content:" • ";display:inline-block;padding:0 .5em}.course-card__category:last-child:after{display:none}.course-card__category-link{display:inline-block;letter-spacing:2px}.course-card__title{-webkit-box-flex:0;-ms-flex:0 1 12vh;flex:0 1 12vh;max-height:120px;margin:0;overflow:hidden;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #e5ebed;font-family:robotomedium,Helvetica,sans-serif;font-weight:400;font-size:1.625em;line-height:1.38}.course-card__title a:after{content:" "}.course-card__title .pill{margin-bottom:3px}.course-card__description{-webkit-box-flex:0;-ms-flex:0 1 18vh;flex:0 1 18vh;max-height:150px;overflow:hidden;margin:0 0 32px;line-height:1.63;color:#536171}.course-card__link-wrapper{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.course-card__link{display:inline-block;padding-bottom:.3em;border-bottom:1px solid #5c9fef;text-transform:uppercase;color:#5c9fef;font-size:.75em;line-height:2.17;letter-spacing:2px}.course-card__link:hover{color:#3c80cf;border-bottom-color:#3c80cf}.course__title{margin-bottom:32px}.course__overview{font-family:robotomedium,Helvetica,sans-serif}.course__overview-title{border-bottom:1px solid #eee;padding:16px 0;margin:0;line-height:1.31;font-weight:400;text-transform:uppercase;text-align:center}.course__overview-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:16px;border-bottom:1px solid #eee;line-height:1.54;font-size:.8em}.course__overview-icon{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:24px;height:24px;padding-right:16px}.course__overview-value{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.course__overview-cta-wrapper{padding:16px 0;text-align:center}.course__overview-cta{margin:0}.course__cta{margin-bottom:0}.module-copy img{display:block;max-width:100%;height:auto;margin:0 auto;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.module-copy--emphasized{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:24px 0;background-color:#8091a5;border-radius:4px;color:#c3cfd5}.module-copy--emphasized a{color:inherit}.module-copy--emphasized a:hover{color:#fff}.module-copy__first--emphasized{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:50vw;padding:0 32px}.module-copy__second--emphasized{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.module-copy__headline--emphasized{color:#fff;font-size:1.25em}.module-copy__copy--emphasized{font-size:.875em}.module-copy__cta--emphasized{background-color:#536171;color:#fff;margin-bottom:0}.module-hero-image__wrapper{position:relative;overflow:hidden;max-height:60vh;border-radius:4px}.module-hero-image__image{display:block;max-width:100%;height:auto;margin:0 auto}.module-hero-image__headline-wrapper{position:absolute;left:0;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.module-hero-image__headline{color:#fff;text-align:center;font-size:4.5vw;line-height:1;text-shadow:0 3px 0 #b2a98f,0 14px 10px rgba(0,0,0,.15),0 24px 2px rgba(0,0,0,.1),0 34px 30px rgba(0,0,0,.1)}.module-higlighted-course__wrapper{position:relative;overflow:hidden;height:50vh;min-height:250px;max-height:500px;border-radius:4px;background-size:cover;background-repeat:no-repeat;background-position:50%}.module-higlighted-course__overlay{z-index:1;position:absolute;left:0;right:0;top:0;bottom:0;opacity:.8;border-radius:4px;background-color:#3c3d41}.module-higlighted-course__content{z-index:2;position:absolute;left:0;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:32px 64px;color:#a9b9c0}.module-higlighted-course__categories{-webkit-box-flex:0;-ms-flex:0 0 1.5em;flex:0 0 1.5em}.module-higlighted-course__category{display:inline-block;margin-right:32px;font-size:.75em;letter-spacing:2px}.module-higlighted-course__title{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin:0 0 8px;color:#fff;font-size:2em;line-height:1.3;white-space:nowrap}.module-higlighted-course__description-wrapper{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:400px;line-height:1.3}.module-higlighted-course__description-wrapper p{margin:0}.module-higlighted-course__link-wrapper{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-top:32px}.module-higlighted-course__link{display:inline-block;border-bottom:1px solid #fff;text-transform:uppercase;color:#fff;font-size:.75em;line-height:2.17;letter-spacing:2px}.module{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:980px;margin:0 auto 32px;padding:0 2vw}.module img{width:100%;height:auto}.module:last-child{margin-bottom:0}.modules-container{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.lesson__title{margin-bottom:32px}.lesson__cta{margin-bottom:0}.lesson-module{margin-bottom:32px}.lesson-module:last-child{margin-bottom:0}.lesson-module-copy img{display:block;max-width:100%;height:auto;margin:0 auto;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.lesson-module-code__header{white-space:nowrap;overflow:auto}.lesson-module-code__code-area{background:#f7f9fa}.lesson-module-code__trigger{display:inline-block;height:30px;padding:0 8px;margin-right:8px;background:#fff;border-top:3px solid transparent;line-height:30px;font-family:robotomedium,Helvetica,sans-serif;font-size:.875em;color:#8091a5;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.lesson-module-code__trigger:last-child{margin-right:0}.lesson-module-code__trigger:hover{color:#3c80cf}.lesson-module-code__trigger--active{background:#f7f9fa;color:#536171!important;cursor:default;border-color:#c3cfd5}.lesson-module-code__code{display:none}.lesson-module-code__code pre{margin:0}.lesson-module-code__code--active{display:block}.lesson-module-image__figure{margin:0}.lesson-module-image__image{display:block;max-width:100%;height:auto;margin:0 auto;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.lesson-module-image__caption{margin-top:16px;font-style:italic;line-height:1.63;color:#a9b9c0}@media (min-width:700px){.layout-no-sidebar{padding-left:276px}.layout-sidebar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;padding:0 16px}.layout-sidebar__sidebar{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:228px;border-radius:4px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.layout-sidebar__content{-webkit-box-flex:0;-ms-flex:0 1 732px;flex:0 1 732px;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 0 0 32px;padding:0}.grid-list{margin:0 -16px}.grid-list,.grid-list__item{-webkit-box-flex:0;-ms-flex:0 0 calc(50% - 32px);flex:0 0 calc(50% - 32px)}.grid-list__item{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 16px 32px}.header{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.header__upper{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header__upper-copy{margin:0 0 0 16px;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.header__upper-title{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin:0}.header__lower{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.header__logo{-webkit-box-flex:0;-ms-flex:0 0 200px;flex:0 0 200px;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin:0}.header__controls{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:distribute;justify-content:space-around}.header__controls,.header__controls_group{margin:0 16px 0 0}.footer__apps{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.footer__lower{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;padding:16px 16px 0}.footer__disclaimer-text{text-align:normal}.footer__social{padding:0 0 0 32px}.main-navigation ul{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.modal__wrapper{top:20vh;max-height:70vh;padding:64px 96px}.modal__title{margin-bottom:32px;font-size:1.25em}.modal__content{font-size:1em;line-height:1.5em}.modal__close-wrapper{top:32px;right:32px}.modal__close-button{width:24px;height:24px}.course__overview{float:right;border-radius:4px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1);width:228px;margin:0 0 32px 32px}.module-copy--emphasized{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.module-copy__first--emphasized{padding-left:32px}.module-copy__second--emphasized{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:0 32px;width:20vw}.module-hero-image__headline{font-size:4em}.module-higlighted-course__title{font-size:3.25em}.module-higlighted-course__description-wrapper{font-size:1.25em}} \ No newline at end of file +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;white-space:normal}progress{display:inline-block;vertical-align:baseline}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}@font-face{font-family:roboto;src:url(/fonts/roboto-regular-webfont.woff2) format("woff2"),url(/fonts/roboto-regular-webfont.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:roboto;src:url(/fonts/roboto-italic-webfont.woff2) format("woff2"),url(/fonts/roboto-italic-webfont.woff) format("woff");font-weight:400;font-style:italic}@font-face{font-family:roboto;src:url(/fonts/roboto-bold-webfont.woff2) format("woff2"),url(/fonts/roboto-bold-webfont.woff) format("woff");font-weight:700;font-style:normal}@font-face{font-family:roboto;src:url(/fonts/roboto-bolditalic-webfont.woff2) format("woff2"),url(/fonts/roboto-bolditalic-webfont.woff) format("woff");font-weight:700;font-style:italic}@font-face{font-family:robotomedium;src:url(/fonts/roboto-medium-webfont.woff2) format("woff2"),url(/fonts/roboto-medium-webfont.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:robotomedium;src:url(/fonts/roboto-mediumitalic-webfont.woff2) format("woff2"),url(/fonts/roboto-mediumitalic-webfont.woff) format("woff");font-weight:400;font-style:italic}.cta,button,fieldset,input,legend,optgroup,option,select,textarea{-webkit-box-sizing:border-box;box-sizing:border-box;outline:none;font-family:Raleway,sans-serif;font-size:16px;color:#536171;vertical-align:top;display:block;margin:32px 0;text-align:left}datalist{font-family:Raleway,sans-serif;font-size:16px}label{display:block;margin:32px 0 0;text-align:left;font-weight:700;font-size:.875em}label+input{margin-top:8px}input[type=checkbox],input[type=radio]{margin:0 0 4px!important}input[type=checkbox]+label,input[type=radio]+label{margin:0 0 0 8px;display:inline-block}input[list],input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=file],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{width:100%;max-width:100%;padding:8px;background-color:#fff;border-radius:5px;border:1px solid #d3dce0}input[list],input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{height:40px;line-height:40px;-webkit-appearance:none}textarea{-webkit-appearance:none;overflow:auto}input[type=range]{height:40px;width:100%;max-width:100%}input[type=file]{min-height:40px}input[type=search]{height:40px;-webkit-appearance:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=checkbox],input[type=radio]{display:inline-block;vertical-align:middle}fieldset{padding:0;border:0}legend{padding:0;font-weight:inherit}.cta,button,input[type=button],input[type=image],input[type=reset],input[type=submit]{display:inline-block;height:40px;min-width:200px;background-color:#5c9fef;padding:0 2em;cursor:pointer;line-height:40px;color:#fff;font-weight:400;-webkit-appearance:none;-moz-appearance:none;border:none;border-radius:3px;text-align:center}input[type=image]{text-align:center;padding:8px}button[disabled],input[disabled],option[disabled],select[disabled],textarea[disabled]{cursor:not-allowed}input:focus,option:focus,select:focus,textarea:focus{border-color:#5c9fef;color:#536171}.cta:focus,button:focus{background-color:#3c80cf;color:#fff}input[type=checkbox]:focus,input[type=radio]:focus{outline:2px dashed #d3dce0;border-radius:4px}.cta:focus,.cta:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{background-color:#3c80cf;color:#fff}.form-item+.form-item{margin-top:32px}.form-item input{margin:0 0 8px}.form-item__help-text{font-size:.875em;color:#8091a5}.form-item__error-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.form-item__error-icon{width:12px;height:12px;padding-right:.3em;color:#cd3f39}.form-item__error-message{font-size:.875em;color:#cd3f39}.status-block{display:-webkit-box;display:-ms-flexbox;display:flex;margin:32px 0;padding:16px;border-radius:4px;font-size:.875em}.status-block--success{background:#f4fffb}.status-block--error{background:#fbe3e2}.status-block--info{background:#e8f7ff}.status-block__icon{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:24px;height:24px;margin-right:8px}.status-block__icon--success{color:#0eb87f}.status-block__icon--error{color:#cd3f39}.status-block__icon--info{color:#a9b9c0}.status-block__content{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.status-block__title{font-weight:700;color:#2a3039}.status-block__message{color:#536171}table{width:100%;border:1px solid #e5ebed;border-collapse:collapse}td,th{padding:10px;line-height:1.5}td:not(:last-of-type),th:not(:last-of-type){border-right:1px solid #e5ebed}th{background-color:#f7f9fa;border-bottom:1px solid #e5ebed;color:#2a3039;font-weight:400;font-family:robotomedium,Helvetica,sans-serif;text-align:left}tbody td{border-bottom:1px dashed #e5ebed}h1,h2,h3,h4,h5,h6{font-family:robotomedium,Helvetica,sans-serif;font-weight:400;line-height:1.31;color:#2a3039}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}a{color:inherit;text-decoration:none}.form-item a,label a,p a{color:#5c9fef;text-decoration:underline}.form-item a:hover,label a:hover,p a:hover{color:#3c80cf;text-decoration:underline}p:first-child{margin-top:0}p:last-child{margin-bottom:0}blockquote{margin:0;padding:0 0 0 16px;font-style:italic;border-left:4px solid #c3cfd5}.layout-centered{max-width:980px}.layout-centered,.layout-centered-small{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;margin:0 auto;padding:0 2vw}.layout-centered-small{max-width:620px}.layout-no-sidebar{padding:0 16px}.layout-no-sidebar,.layout-sidebar{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:980px;margin:0 auto}.layout-sidebar__sidebar-header{padding:16px;border-bottom:1px solid #eee}.layout-sidebar__sidebar-title{font-family:robotomedium,Helvetica,sans-serif;font-size:1.25em;font-weight:400;margin:0}.layout-sidebar__sidebar-content{background:#f7f9fa;padding:16px}.layout-sidebar__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:16px 0 0;padding:0 16px}.layout-sidebar__content>*{max-width:732px;width:100%}.grid-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.grid-list__item{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;margin-bottom:32px}.header{margin-bottom:24px}.header__upper-wrapper{background:#536171;padding:8px 0;color:#b4c3ca}.header__upper-wrapper a.active,.header__upper-wrapper a:hover{color:#fff}.header__upper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:.875em}.header__upper-copy{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:0 0 8px}.header__upper-menu,.header__upper-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.header__upper-title{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin:0 0 8px}.header__upper-title img{display:inline-block;width:24px;height:auto;margin-right:8px}.header__upper-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.header__upper-icon{display:inline-block;width:20px;height:20px;margin-right:8px}.header__lower{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;padding-top:16px;padding-bottom:8px;border-bottom:1px solid #e5ebed}.header__logo,.header__lower{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;justify-content:center}.header__logo{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;-ms-flex-pack:center;margin:0 0 8px}.header__logo img{width:100%;height:auto;max-width:169px}.header__controls{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center}.header__controls,.header__controls_group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;justify-content:center;margin:0 0 8px}.header__controls_group{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;position:relative;-ms-flex-pack:center;border:none;border-radius:4px;color:inherit}.header__controls_group:last-child{margin:0}.header__controls_label{position:relative;z-index:5;cursor:pointer}.header__controls_label:hover{color:#fff}.header__controls_label:hover:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='5' viewBox='0 0 10 5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M0 0l5 5 5-5z'/%3E%3C/svg%3E")}.header__controls_label:after{content:"";display:inline-block;width:10px;height:5px;margin-left:8px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='5' viewBox='0 0 10 5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23B4C3CA' d='M0 0l5 5 5-5z'/%3E%3C/svg%3E");background-size:contain;background-position:50%;background-repeat:no-repeat;vertical-align:middle}.header__controls_dropdown{position:absolute;z-index:6;-webkit-box-sizing:border-box;box-sizing:border-box;right:0;width:260px;max-width:90vw;margin:12px 0 0;opacity:0;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1);-webkit-transition:opacity .3s ease;transition:opacity .3s ease;pointer-events:none}.header__controls_dropdown--active{opacity:1;pointer-events:all}.header__controls_dropdown--active:before{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;background-color:inherit;-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.header__controls_help_text{padding:16px;color:#8091a5;line-height:1.29}.header__controls_button{-webkit-box-sizing:border-box;box-sizing:border-box;height:auto;width:100%;margin:0;padding:16px;border-radius:0;font-size:1em;text-align:left;line-height:1em}.header__controls_button,.header__controls_button:hover{background:#fff;color:#263545}.header__controls_button--active,.header__controls_button--active:hover{background:#d3dce0}.header__controls_button_help{display:inline-block;margin-top:8px;font-size:.875em;line-height:1.5em;color:#8091a5}.footer{padding:32px 0 16px}.footer p{margin:0}.footer__upper{-ms-flex-wrap:wrap;flex-wrap:wrap;min-height:80px;border-bottom:1px solid #e5ebed}.footer__upper,.footer__upper>*{display:-webkit-box;display:-ms-flexbox;display:flex}.footer__upper>*{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer__navigation{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.footer__apps{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.footer__apps a{display:inline-block;width:138px}.footer__apps a+a{margin-left:8px}.footer__apps a img{width:100%;height:auto}.footer__lower{display:-webkit-box;display:-ms-flexbox;display:flex;padding:16px 8px 0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer__lower>*{margin:0 0 16px}.footer__logo{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:140px;height:28px;margin-right:16px}.footer__disclaimer-text{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;color:#a9b9c0;font-size:.75em;line-height:1.5;text-align:justify}.footer__social{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.footer__social a+a{margin-left:16px}.footer__social svg{color:#a9b9c0;width:24px;height:24px}.breadcrumb{margin-bottom:8px;font-size:.875em}.breadcrumb ul{display:-webkit-box;display:-ms-flexbox;display:flex;list-style:none;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0}.breadcrumb ul,.breadcrumb ul li{margin:0}.breadcrumb ul li:after{content:"";display:inline-block;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='8' viewBox='0 0 5 8'%3E%3Cpath fill='none' stroke='%23536171' stroke-width='1.5' d='M1 7l3-2.89L1 1'/%3E%3C/svg%3E");background-size:contain;background-position:50%;background-repeat:no-repeat;width:4px;height:8px;padding:0 8px}.breadcrumb ul li:last-child:after{display:none}.breadcrumb ul li a{display:inline-block}.breadcrumb ul li a:hover{color:#3c80cf}.editorial-features{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-line-pack:center;align-content:center;margin-bottom:16px}.editorial-features a{color:#5c9fef}.editorial-features__item{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;margin-right:8px}.editorial-features__item:last-child{margin-right:0}.editorial-features__hint-wrapper{position:relative;z-index:3;margin-left:8px}.editorial-features__hint-wrapper:hover>div{opacity:1;-webkit-transition-delay:0s;transition-delay:0s}.editorial-features__hint-icon{width:24px;height:24px;cursor:help}.editorial-features__hint-message{position:absolute;z-index:4;-webkit-box-sizing:border-box;box-sizing:border-box;top:24px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:260px;max-width:90vw;margin:12px 0 0;padding:16px;background:#536171;border-radius:2px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1);opacity:0;-webkit-transition:opacity .3s ease .3s;transition:opacity .3s ease .3s;pointer-events:none;font-size:.75em;line-height:1.5;color:#fff}.editorial-features__hint-message:before{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;background-color:inherit;-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.main-navigation ul{display:-webkit-box;display:-ms-flexbox;display:flex;list-style:none;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0}.main-navigation ul,.main-navigation ul li{margin:0}.main-navigation ul li+li{margin-left:8px}.main-navigation ul li a{display:block;text-transform:uppercase;font-weight:700;padding:.7em 1em;color:#8091a5;border-radius:4px}.main-navigation ul li a.active,.main-navigation ul li a:hover{background:#f7f9fa}.main-navigation ul li a.active{color:#536171}.modal{display:none}.modal--visible{display:block}.modal__overlay{position:fixed;z-index:7;left:0;right:0;top:0;bottom:0;opacity:.3;background-color:#3b3d40;cursor:pointer}.modal__wrapper{position:fixed;z-index:8;left:50%;top:5vh;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-box-sizing:border-box;box-sizing:border-box;width:80vw;max-width:800px;max-height:90vh;overflow:auto;padding:32px;background-color:#fff;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1);border-radius:4px}.modal__title{margin-bottom:2vh;font-size:1em;text-align:center}.modal__content{color:#8091a5;font-size:.875em;line-height:1.3em}.modal__content a{color:#5c9fef;text-decoration:underline}.modal__content a:hover{color:#3c80cf}.modal__cta-wrapper{text-align:center;margin-top:32px}.modal__cta{display:inline-block;padding-bottom:.3em;border-bottom:1px solid #5c9fef;color:#5c9fef;font-size:.75em;font-weight:700;line-height:2.17;letter-spacing:2px;text-transform:uppercase}.modal__cta:hover{color:#3c80cf;border-bottom-color:#3c80cf}.modal__close-wrapper{position:absolute;z-index:9;top:16px;right:16px}.modal__close-button{display:block;width:18px;height:18px;color:#a9b9c0}.modal__close-button svg{width:100%;height:100%}.pill{display:inline-block;vertical-align:middle;padding:0 8px;background:#3c80cf;border-radius:4px;text-transform:uppercase;font-size:14px;font-size:.875rem;letter-spacing:1px;color:#fff}.pill--draft{background-color:#e6ae17}.pill--pending-changes{background-color:#3e97d6}.sidebar-menu__list{list-style:none;margin:0;padding:0}.sidebar-menu__item{margin:0 0 16px;padding:0;font-size:.9em;line-height:1.8}.sidebar-menu__link{display:block;color:#8091a5}.sidebar-menu__link.active,.sidebar-menu__link:hover{color:#536171}.sidebar-menu__link.active{font-family:robotomedium,Helvetica,sans-serif}.table-of-contents__list{list-style:none;margin:0;padding:0;padding-left:32px}.table-of-contents__item{margin:0 0 8px;padding:0;font-size:.9em;line-height:1.8}.table-of-contents__link{display:block;color:#8091a5}.table-of-contents__link.active,.table-of-contents__link:hover{color:#536171}.table-of-contents__link.active{position:relative;font-family:robotomedium,Helvetica,sans-serif}.table-of-contents__link.active:after,.table-of-contents__link.active:before{position:absolute;top:0}.table-of-contents__link.active:before{content:"";left:-48px;bottom:0;width:3px;background:#536171}.table-of-contents__link.visited{position:relative}.table-of-contents__link.visited:after,.table-of-contents__link.visited:before{position:absolute;top:0}.table-of-contents__link.visited:after{content:"";display:block;width:16px;height:16px;top:50%;left:-32px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='%23536171'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 0h20v20H0z'/%3E%3Cpath fill='%23A9B9C0' fill-rule='nonzero' d='M9.992 1.667c-4.6 0-8.325 3.733-8.325 8.333s3.725 8.333 8.325 8.333c4.608 0 8.341-3.733 8.341-8.333S14.6 1.667 9.992 1.667zm.008 15A6.665 6.665 0 0 1 3.333 10 6.665 6.665 0 0 1 10 3.333 6.665 6.665 0 0 1 16.667 10 6.665 6.665 0 0 1 10 16.667z'/%3E%3Cpath stroke='%23A9B9C0' stroke-width='1.333' d='M13.333 7.5l-5 5-1.666-1.786'/%3E%3C/g%3E%3C/svg%3E");background-size:contain;background-position:50%;background-repeat:no-repeat}body{background-color:#fff;color:#536171;font-family:roboto,Helvetica,sans-serif;font-size:16px;font-size:1rem;line-height:1.5em}.main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100vh}.main__header{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.main__content{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.main__footer{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.course-card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:32px;border-radius:4px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.course-card__categories{-webkit-box-flex:0;-ms-flex:0 0 1.5em;flex:0 0 1.5em;margin-bottom:16px;height:1.5em}.course-card__category{display:inline-block;color:#8091a5;font-size:.75em;font-family:robotomedium,Helvetica,sans-serif}.course-card__category:after{content:" • ";display:inline-block;padding:0 .5em}.course-card__category:last-child:after{display:none}.course-card__category-link{display:inline-block;letter-spacing:2px}.course-card__title{-webkit-box-flex:0;-ms-flex:0 1 12vh;flex:0 1 12vh;max-height:120px;margin:0;overflow:hidden;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #e5ebed;font-family:robotomedium,Helvetica,sans-serif;font-weight:400;font-size:1.625em;line-height:1.38}.course-card__title a:after{content:" "}.course-card__title .pill{margin-bottom:3px}.course-card__description{-webkit-box-flex:0;-ms-flex:0 1 18vh;flex:0 1 18vh;max-height:150px;overflow:hidden;margin:0 0 32px;line-height:1.63;color:#536171}.course-card__link-wrapper{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.course-card__link{display:inline-block;padding-bottom:.3em;border-bottom:1px solid #5c9fef;text-transform:uppercase;color:#5c9fef;font-size:.75em;line-height:2.17;letter-spacing:2px}.course-card__link:hover{color:#3c80cf;border-bottom-color:#3c80cf}.course__title{margin-bottom:32px}.course__overview{font-family:robotomedium,Helvetica,sans-serif}.course__overview-title{border-bottom:1px solid #eee;padding:16px 0;margin:0;line-height:1.31;font-weight:400;text-transform:uppercase;text-align:center}.course__overview-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:16px;border-bottom:1px solid #eee;line-height:1.54;font-size:.8em}.course__overview-icon{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:24px;height:24px;padding-right:16px}.course__overview-value{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.course__overview-cta-wrapper{padding:16px 0;text-align:center}.course__overview-cta{margin:0}.course__cta{margin-bottom:0}.module-copy img{display:block;max-width:100%;height:auto;margin:0 auto;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.module-copy--emphasized{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:24px 0;background-color:#8091a5;border-radius:4px;color:#c3cfd5}.module-copy--emphasized a{color:inherit}.module-copy--emphasized a:hover{color:#fff}.module-copy__first--emphasized{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:50vw;padding:0 32px}.module-copy__second--emphasized{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.module-copy__headline--emphasized{color:#fff;font-size:1.25em}.module-copy__copy--emphasized{font-size:.875em}.module-copy__cta--emphasized{background-color:#536171;color:#fff;margin-bottom:0}.module-hero-image__wrapper{position:relative;overflow:hidden;max-height:60vh;border-radius:4px}.module-hero-image__image{display:block;max-width:100%;height:auto;margin:0 auto}.module-hero-image__headline-wrapper{position:absolute;left:0;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.module-hero-image__headline{color:#fff;text-align:center;font-size:4.5vw;line-height:1;text-shadow:0 3px 0 #b2a98f,0 14px 10px rgba(0,0,0,.15),0 24px 2px rgba(0,0,0,.1),0 34px 30px rgba(0,0,0,.1)}.module-highlighted-course__wrapper{position:relative;overflow:hidden;height:50vh;min-height:250px;max-height:500px;border-radius:4px;background-size:cover;background-repeat:no-repeat;background-position:50%}.module-highlighted-course__overlay{z-index:1;position:absolute;left:0;right:0;top:0;bottom:0;opacity:.8;border-radius:4px;background-color:#3c3d41}.module-highlighted-course__content{z-index:2;position:absolute;left:0;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:32px 64px;color:#a9b9c0}.module-highlighted-course__categories{-webkit-box-flex:0;-ms-flex:0 0 1.5em;flex:0 0 1.5em}.module-highlighted-course__category{display:inline-block;margin-right:32px;font-size:.75em;letter-spacing:2px}.module-highlighted-course__title{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;margin:0 0 8px;color:#fff;font-size:2em;line-height:1.3;white-space:nowrap}.module-highlighted-course__description-wrapper{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:400px;line-height:1.3}.module-highlighted-course__description-wrapper p{margin:0}.module-highlighted-course__link-wrapper{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin-top:32px}.module-highlighted-course__link{display:inline-block;border-bottom:1px solid #fff;text-transform:uppercase;color:#fff;font-size:.75em;line-height:2.17;letter-spacing:2px}.module{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:980px;margin:0 auto 32px;padding:0 2vw}.module img{width:100%;height:auto}.module:last-child{margin-bottom:0}.modules-container{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.lesson__title{margin-bottom:32px}.lesson__cta{margin-bottom:0}.lesson-module{margin-bottom:32px}.lesson-module:last-child{margin-bottom:0}.lesson-module-copy img{display:block;max-width:100%;height:auto;margin:0 auto;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.lesson-module-copy a{color:#5c9fef}.lesson-module-code__header{white-space:nowrap;overflow:auto}.lesson-module-code__code-area{background:#f7f9fa}.lesson-module-code__trigger{display:inline-block;height:30px;padding:0 8px;margin-right:8px;background:#fff;border-top:3px solid transparent;line-height:30px;font-family:robotomedium,Helvetica,sans-serif;font-size:.875em;color:#8091a5;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.lesson-module-code__trigger:last-child{margin-right:0}.lesson-module-code__trigger:hover{color:#3c80cf}.lesson-module-code__trigger--active{background:#f7f9fa;color:#536171!important;cursor:default;border-color:#c3cfd5}.lesson-module-code__code{display:none}.lesson-module-code__code pre{margin:0}.lesson-module-code__code--active{display:block}.lesson-module-image__figure{margin:0}.lesson-module-image__image{display:block;max-width:100%;height:auto;margin:0 auto;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.lesson-module-image__caption{margin-top:16px;font-style:italic;text-align:center;line-height:1.63;color:#a9b9c0}@media (min-width:700px){.layout-no-sidebar{padding-left:276px}.layout-sidebar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;padding:0 16px}.layout-sidebar__sidebar{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:228px;border-radius:4px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1)}.layout-sidebar__content{-webkit-box-flex:0;-ms-flex:0 1 732px;flex:0 1 732px;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 0 0 32px;padding:0}.grid-list{margin:0 -16px}.grid-list,.grid-list__item{-webkit-box-flex:0;-ms-flex:0 0 calc(50% - 32px);flex:0 0 calc(50% - 32px)}.grid-list__item{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 16px 32px}.header{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.header__upper{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.header__upper-copy{margin:0 0 0 16px;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.header__upper-title{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin:0}.header__lower{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.header__logo{-webkit-box-flex:0;-ms-flex:0 0 200px;flex:0 0 200px;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin:0}.header__controls{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:distribute;justify-content:space-around}.header__controls,.header__controls_group{margin:0 16px 0 0}.footer__apps{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.footer__lower{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;padding:16px 16px 0}.footer__disclaimer-text{text-align:normal}.footer__social{padding:0 0 0 32px}.main-navigation ul{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.modal__wrapper{top:20vh;max-height:70vh;padding:64px 96px}.modal__title{margin-bottom:32px;font-size:1.25em}.modal__content{font-size:1em;line-height:1.5em}.modal__close-wrapper{top:32px;right:32px}.modal__close-button{width:24px;height:24px}.course__overview{float:right;border-radius:4px;-webkit-box-shadow:0 1px 3px 1px rgba(0,0,0,.1);box-shadow:0 1px 3px 1px rgba(0,0,0,.1);width:228px;margin:0 0 32px 32px}.module-copy--emphasized{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.module-copy__first--emphasized{padding-left:32px}.module-copy__second--emphasized{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:0 32px;width:20vw}.module-hero-image__headline{font-size:4em}.module-highlighted-course__title{font-size:3.25em}.module-highlighted-course__description-wrapper{font-size:1.25em}} \ No newline at end of file diff --git a/routes/landingPage.js b/routes/landingPage.js index bce1e2e..d0c8fca 100644 --- a/routes/landingPage.js +++ b/routes/landingPage.js @@ -31,6 +31,6 @@ module.exports.getLandingPage = async (request, response, next) => { if (shouldAttachEntryState(response)) { landingPage = await attachEntryState(landingPage) } - + console.log(landingPage.fields.contentModules[0].fields.course.fields.image) response.render('landingPage', { title: pathname, landingPage }) } diff --git a/routes/settings.js b/routes/settings.js index ebd01c8..e89fd30 100644 --- a/routes/settings.js +++ b/routes/settings.js @@ -59,7 +59,7 @@ module.exports.getSettings = async (request, response, next) => { module.exports.postSettings = async (request, response, next) => { const currentLocale = response.locals.currentLocale let errorList = [] - const { spaceId, deliveryToken, previewToken, editorialFeatures } = request.body + const { spaceId, deliveryToken, previewToken, editorialFeatures, qs } = request.body const settings = { spaceId, deliveryToken, @@ -165,11 +165,11 @@ module.exports.postSettings = async (request, response, next) => { ] } }, {}) - await renderSettings(response, { settings, errors, hasErrors: errorList.length > 0, - success: errorList.length === 0 + success: errorList.length === 0, + queryString: qs }) } diff --git a/test/e2e/specs/the-example-app-spec.js b/test/e2e/specs/the-example-app-spec.js index c38a928..ec548db 100644 --- a/test/e2e/specs/the-example-app-spec.js +++ b/test/e2e/specs/the-example-app-spec.js @@ -98,7 +98,7 @@ describe('The Example App', () => { context('Home', () => { it('renders home page', () => { cy.visit('/') - cy.get('main .module-higlighted-course').should('have.length.gte', 1, 'should have at least one highlighted course') + cy.get('main .module-highlighted-course').should('have.length.gte', 1, 'should have at least one highlighted course') }) }) diff --git a/views/error.pug b/views/error.pug index e5897df..31790cb 100644 --- a/views/error.pug +++ b/views/error.pug @@ -19,7 +19,7 @@ block content li #{translate('verifyCredentialsErrorLabel', currentLocale.code)} li #{translate('localeContentErrorLabel', currentLocale.code)} - if error.stack + if error.stack li #{translate('stackTraceErrorLabel', currentLocale.code)} if error.response h2 #{translate('errorLabel', currentLocale.code)} diff --git a/views/layout.pug b/views/layout.pug index 90ee474..98683d4 100644 --- a/views/layout.pug +++ b/views/layout.pug @@ -136,7 +136,7 @@ html | . p | #{translate('modalSpaceIntro', currentLocale.code)}  - a(href='https://github.com/contentful/content-models/tree/master/the-example-app' target='_blank' rel='noopener')=translate('modalSpaceLinkLabel', currentLocale.code) + a(href='https://github.com/contentful/content-models/blob/master/the-example-app/README.md ' target='_blank' rel='noopener')=translate('modalSpaceLinkLabel', currentLocale.code) | . .modal__cta-wrapper a(href='#').modal__cta.close #{translate('modalCTALabel', currentLocale.code)} diff --git a/views/mixins/_moduleHighlightedCourse.pug b/views/mixins/_moduleHighlightedCourse.pug index ca2b223..b404c24 100644 --- a/views/mixins/_moduleHighlightedCourse.pug +++ b/views/mixins/_moduleHighlightedCourse.pug @@ -1,17 +1,17 @@ include ./_courseCard mixin moduleHighlightedCourse(module, course) - .module.module-higlighted-course - .module-higlighted-course__wrapper(style=`background-image: url(${course.fields.image.fields.file.url});`) - .module-higlighted-course__overlay - .module-higlighted-course__content + .module.module-highlighted-course + .module-highlighted-course__wrapper(style=`background-image: url(${course.fields.image.fields.file.url});`) + .module-highlighted-course__overlay + .module-highlighted-course__content if(course.fields.categories) - .module-higlighted-course__categories + .module-highlighted-course__categories each category in course.fields.categories - a.module-higlighted-course__category(href=`/courses/categories/${category.fields.slug}${queryString}`) #{category.fields.title} - h2.module-higlighted-course__title + a.module-highlighted-course__category(href=`/courses/categories/${category.fields.slug}${queryString}`) #{category.fields.title} + h2.module-highlighted-course__title a(href=`/courses/${course.fields.slug}${queryString}`)= course.fields.title - .module-higlighted-course__description-wrapper + .module-highlighted-course__description-wrapper p !{helpers.markdown(course.fields.shortDescription)} - .module-higlighted-course__link-wrapper - a.module-higlighted-course__link(href=`/courses/${course.fields.slug}${queryString}`) #{translate('viewCourseLabel', currentLocale.code)} + .module-highlighted-course__link-wrapper + a.module-highlighted-course__link(href=`/courses/${course.fields.slug}${queryString}`) #{translate('viewCourseLabel', currentLocale.code)} diff --git a/views/settings.pug b/views/settings.pug index 7227485..9f713d6 100644 --- a/views/settings.pug +++ b/views/settings.pug @@ -39,6 +39,7 @@ block content form(action=`/settings` method="POST" class="form") .form-item + input(type="hidden" name="qs" value=queryString) label(for="input-space-id") #{translate('spaceIdLabel', currentLocale.code)} input(type="text" name="spaceId" id="input-space-id" value=settings.spaceId) if 'spaceId' in errors