diff --git a/README.md b/README.md
index aeca49d9b4df38e6e9d492ea7c4ad3ecd6d20184..de5cdb18fd1ca772c182f6ab407d6676280e994e 100755
--- a/README.md
+++ b/README.md
@@ -15,15 +15,3 @@ html_md.sh -w
 ```bash
 html_md.sh  -c
 ```
-
-~~**Export do pdf**~~ **zajišťuje rus016**
-
-```bash
-html_md.sh -e pdf
-```
-
-~~**Export  do epub**~~ **zajišťuje rus016**
-
-```bash
-html_md.sh -e epub
-```
diff --git a/it4i_theme/assets/images/favicon-e565ddfa3b.ico b/it4i_theme/assets/images/favicon-e565ddfa3b.ico
new file mode 100644
index 0000000000000000000000000000000000000000..e85006a3ce1c6fd81faa6d5a13095519c4a6fc96
Binary files /dev/null and b/it4i_theme/assets/images/favicon-e565ddfa3b.ico differ
diff --git a/it4i_theme/assets/images/favicon.ico b/it4i_theme/assets/images/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..e85006a3ce1c6fd81faa6d5a13095519c4a6fc96
Binary files /dev/null and b/it4i_theme/assets/images/favicon.ico differ
diff --git a/it4i_theme/assets/javascripts/application-997097ee0c.js b/it4i_theme/assets/javascripts/application-997097ee0c.js
new file mode 100644
index 0000000000000000000000000000000000000000..1199f2e1dc6c0bfde788472cfe1e8e3b6181de2d
--- /dev/null
+++ b/it4i_theme/assets/javascripts/application-997097ee0c.js
@@ -0,0 +1 @@
+function pegasus(t,e){return e=new XMLHttpRequest,e.open("GET",t),t=[],e.onreadystatechange=e.then=function(n,o,i,r){if(n&&n.call&&(t=[,n,o]),4==e.readyState&&(i=t[0|e.status/200])){try{r=JSON.parse(e.responseText)}catch(s){r=null}i(r,e)}},e.send(),e}if("document"in self&&("classList"in document.createElement("_")?!function(){"use strict";var t=document.createElement("_");if(t.classList.add("c1","c2"),!t.classList.contains("c2")){var e=function(t){var e=DOMTokenList.prototype[t];DOMTokenList.prototype[t]=function(t){var n,o=arguments.length;for(n=0;o>n;n++)t=arguments[n],e.call(this,t)}};e("add"),e("remove")}if(t.classList.toggle("c3",!1),t.classList.contains("c3")){var n=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:n.call(this,t)}}t=null}():!function(t){"use strict";if("Element"in t){var e="classList",n="prototype",o=t.Element[n],i=Object,r=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},s=Array[n].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},a=function(t,e){this.name=t,this.code=DOMException[t],this.message=e},c=function(t,e){if(""===e)throw new a("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(e))throw new a("INVALID_CHARACTER_ERR","String contains an invalid character");return s.call(t,e)},l=function(t){for(var e=r.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],o=0,i=n.length;i>o;o++)this.push(n[o]);this._updateClassName=function(){t.setAttribute("class",this.toString())}},u=l[n]=[],d=function(){return new l(this)};if(a[n]=Error[n],u.item=function(t){return this[t]||null},u.contains=function(t){return t+="",-1!==c(this,t)},u.add=function(){var t,e=arguments,n=0,o=e.length,i=!1;do t=e[n]+"",-1===c(this,t)&&(this.push(t),i=!0);while(++n<o);i&&this._updateClassName()},u.remove=function(){var t,e,n=arguments,o=0,i=n.length,r=!1;do for(t=n[o]+"",e=c(this,t);-1!==e;)this.splice(e,1),r=!0,e=c(this,t);while(++o<i);r&&this._updateClassName()},u.toggle=function(t,e){t+="";var n=this.contains(t),o=n?e!==!0&&"remove":e!==!1&&"add";return o&&this[o](t),e===!0||e===!1?e:!n},u.toString=function(){return this.join(" ")},i.defineProperty){var h={get:d,enumerable:!0,configurable:!0};try{i.defineProperty(o,e,h)}catch(f){-2146823252===f.number&&(h.enumerable=!1,i.defineProperty(o,e,h))}}else i[n].__defineGetter__&&o.__defineGetter__(e,d)}}(self)),function(){"use strict";function t(e,o){function i(t,e){return function(){return t.apply(e,arguments)}}var r;if(o=o||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=o.touchBoundary||10,this.layer=e,this.tapDelay=o.tapDelay||200,this.tapTimeout=o.tapTimeout||700,!t.notNeeded(e)){for(var s=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],a=this,c=0,l=s.length;l>c;c++)a[s[c]]=i(a[s[c]],a);n&&(e.addEventListener("mouseover",this.onMouse,!0),e.addEventListener("mousedown",this.onMouse,!0),e.addEventListener("mouseup",this.onMouse,!0)),e.addEventListener("click",this.onClick,!0),e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1),e.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(e.removeEventListener=function(t,n,o){var i=Node.prototype.removeEventListener;"click"===t?i.call(e,t,n.hijacked||n,o):i.call(e,t,n,o)},e.addEventListener=function(t,n,o){var i=Node.prototype.addEventListener;"click"===t?i.call(e,t,n.hijacked||(n.hijacked=function(t){t.propagationStopped||n(t)}),o):i.call(e,t,n,o)}),"function"==typeof e.onclick&&(r=e.onclick,e.addEventListener("click",function(t){r(t)},!1),e.onclick=null)}}var e=navigator.userAgent.indexOf("Windows Phone")>=0,n=navigator.userAgent.indexOf("Android")>0&&!e,o=/iP(ad|hone|od)/.test(navigator.userAgent)&&!e,i=o&&/OS 4_\d(_\d)?/.test(navigator.userAgent),r=o&&/OS [6-7]_\d/.test(navigator.userAgent),s=navigator.userAgent.indexOf("BB10")>0;t.prototype.needsClick=function(t){switch(t.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(t.disabled)return!0;break;case"input":if(o&&"file"===t.type||t.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(t.className)},t.prototype.needsFocus=function(t){switch(t.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!n;case"input":switch(t.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!t.disabled&&!t.readOnly;default:return/\bneedsfocus\b/.test(t.className)}},t.prototype.sendClick=function(t,e){var n,o;document.activeElement&&document.activeElement!==t&&document.activeElement.blur(),o=e.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(t),!0,!0,window,1,o.screenX,o.screenY,o.clientX,o.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,t.dispatchEvent(n)},t.prototype.determineEventType=function(t){return n&&"select"===t.tagName.toLowerCase()?"mousedown":"click"},t.prototype.focus=function(t){var e;o&&t.setSelectionRange&&0!==t.type.indexOf("date")&&"time"!==t.type&&"month"!==t.type?(e=t.value.length,t.setSelectionRange(e,e)):t.focus()},t.prototype.updateScrollParent=function(t){var e,n;if(e=t.fastClickScrollParent,!e||!e.contains(t)){n=t;do{if(n.scrollHeight>n.offsetHeight){e=n,t.fastClickScrollParent=n;break}n=n.parentElement}while(n)}e&&(e.fastClickLastScrollTop=e.scrollTop)},t.prototype.getTargetElementFromEventTarget=function(t){return t.nodeType===Node.TEXT_NODE?t.parentNode:t},t.prototype.onTouchStart=function(t){var e,n,r;if(t.targetTouches.length>1)return!0;if(e=this.getTargetElementFromEventTarget(t.target),n=t.targetTouches[0],o){if(r=window.getSelection(),r.rangeCount&&!r.isCollapsed)return!0;if(!i){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return t.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(e)}}return this.trackingClick=!0,this.trackingClickStart=t.timeStamp,this.targetElement=e,this.touchStartX=n.pageX,this.touchStartY=n.pageY,t.timeStamp-this.lastClickTime<this.tapDelay&&t.preventDefault(),!0},t.prototype.touchHasMoved=function(t){var e=t.changedTouches[0],n=this.touchBoundary;return Math.abs(e.pageX-this.touchStartX)>n||Math.abs(e.pageY-this.touchStartY)>n?!0:!1},t.prototype.onTouchMove=function(t){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(t.target)||this.touchHasMoved(t))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},t.prototype.findControl=function(t){return void 0!==t.control?t.control:t.htmlFor?document.getElementById(t.htmlFor):t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},t.prototype.onTouchEnd=function(t){var e,s,a,c,l,u=this.targetElement;if(!this.trackingClick)return!0;if(t.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(t.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=t.timeStamp,s=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,r&&(l=t.changedTouches[0],u=document.elementFromPoint(l.pageX-window.pageXOffset,l.pageY-window.pageYOffset)||u,u.fastClickScrollParent=this.targetElement.fastClickScrollParent),a=u.tagName.toLowerCase(),"label"===a){if(e=this.findControl(u)){if(this.focus(u),n)return!1;u=e}}else if(this.needsFocus(u))return t.timeStamp-s>100||o&&window.top!==window&&"input"===a?(this.targetElement=null,!1):(this.focus(u),this.sendClick(u,t),o&&"select"===a||(this.targetElement=null,t.preventDefault()),!1);return o&&!i&&(c=u.fastClickScrollParent,c&&c.fastClickLastScrollTop!==c.scrollTop)?!0:(this.needsClick(u)||(t.preventDefault(),this.sendClick(u,t)),!1)},t.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},t.prototype.onMouse=function(t){return this.targetElement?t.forwardedTouchEvent?!0:t.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(t.stopImmediatePropagation?t.stopImmediatePropagation():t.propagationStopped=!0,t.stopPropagation(),t.preventDefault(),!1):!0:!0},t.prototype.onClick=function(t){var e;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===t.target.type&&0===t.detail?!0:(e=this.onMouse(t),e||(this.targetElement=null),e)},t.prototype.destroy=function(){var t=this.layer;n&&(t.removeEventListener("mouseover",this.onMouse,!0),t.removeEventListener("mousedown",this.onMouse,!0),t.removeEventListener("mouseup",this.onMouse,!0)),t.removeEventListener("click",this.onClick,!0),t.removeEventListener("touchstart",this.onTouchStart,!1),t.removeEventListener("touchmove",this.onTouchMove,!1),t.removeEventListener("touchend",this.onTouchEnd,!1),t.removeEventListener("touchcancel",this.onTouchCancel,!1)},t.notNeeded=function(t){var e,o,i,r;if("undefined"==typeof window.ontouchstart)return!0;if(o=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!n)return!0;if(e=document.querySelector("meta[name=viewport]")){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(o>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(s&&(i=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),i[1]>=10&&i[2]>=3&&(e=document.querySelector("meta[name=viewport]")))){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===t.style.msTouchAction||"manipulation"===t.style.touchAction?!0:(r=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],r>=27&&(e=document.querySelector("meta[name=viewport]"),e&&(-1!==e.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))?!0:"none"===t.style.touchAction||"manipulation"===t.style.touchAction?!0:!1)},t.attach=function(e,n){return new t(e,n)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return t}):"undefined"!=typeof module&&module.exports?(module.exports=t.attach,module.exports.FastClick=t):window.FastClick=t}(),function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.6.0",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.utils.asString=function(t){return void 0===t||null===t?"":t.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(e){return arguments.length&&null!=e&&void 0!=e?Array.isArray(e)?e.map(function(e){return t.utils.asString(e).toLowerCase()}):e.toString().trim().toLowerCase().split(t.tokenizer.seperator):[]},t.tokenizer.seperator=/[\s\-]+/,t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var o=t.Pipeline.registeredFunctions[e];if(!o)throw new Error("Cannot load un-registered function: "+e);n.add(o)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var o=this._stack.indexOf(e);if(-1==o)throw new Error("Cannot find existingFn");o+=1,this._stack.splice(o,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var o=this._stack.indexOf(e);if(-1==o)throw new Error("Cannot find existingFn");this._stack.splice(o,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,o=this._stack.length,i=0;n>i;i++){for(var r=t[i],s=0;o>s&&(r=this._stack[s](r,i,t),void 0!==r&&""!==r);s++);void 0!==r&&""!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var o=this.list;if(!o)return this.list=new t.Vector.Node(e,n,o),this.length++;if(e<o.idx)return this.list=new t.Vector.Node(e,n,o),this.length++;for(var i=o,r=o.next;void 0!=r;){if(e<r.idx)return i.next=new t.Vector.Node(e,n,r),this.length++;i=r,r=r.next}return i.next=new t.Vector.Node(e,n,r),this.length++},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var t,e=this.list,n=0;e;)t=e.val,n+=t*t,e=e.next;return this._magnitude=Math.sqrt(n)},t.Vector.prototype.dot=function(t){for(var e=this.list,n=t.list,o=0;e&&n;)e.idx<n.idx?e=e.next:e.idx>n.idx?n=n.next:(o+=e.val*n.val,e=e.next,n=n.next);return o},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t<arguments.length;t++)e=arguments[t],~this.indexOf(e)||this.elements.splice(this.locationFor(e),0,e);this.length=this.elements.length},t.SortedSet.prototype.toArray=function(){return this.elements.slice()},t.SortedSet.prototype.map=function(t,e){return this.elements.map(t,e)},t.SortedSet.prototype.forEach=function(t,e){return this.elements.forEach(t,e)},t.SortedSet.prototype.indexOf=function(t){for(var e=0,n=this.elements.length,o=n-e,i=e+Math.floor(o/2),r=this.elements[i];o>1;){if(r===t)return i;t>r&&(e=i),r>t&&(n=i),o=n-e,i=e+Math.floor(o/2),r=this.elements[i]}return r===t?i:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,o=n-e,i=e+Math.floor(o/2),r=this.elements[i];o>1;)t>r&&(e=i),r>t&&(n=i),o=n-e,i=e+Math.floor(o/2),r=this.elements[i];return r>t?i:t>r?i+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,o=0,i=0,r=this.length,s=e.length,a=this.elements,c=e.elements;;){if(o>r-1||i>s-1)break;a[o]!==c[i]?a[o]<c[i]?o++:a[o]>c[i]&&i++:(n.add(a[o]),o++,i++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,o;return this.length>=t.length?(e=this,n=t):(e=t,n=this),o=e.clone(),o.add.apply(o,n.toArray()),o},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var o={},i=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));o[n.name]=r,t.SortedSet.prototype.add.apply(i,r)},this),this.documentStore.set(r,i),t.SortedSet.prototype.add.apply(this.corpusTokens,i.toArray());for(var s=0;s<i.length;s++){var a=i.elements[s],c=this._fields.reduce(function(t,e){var n=o[e.name].length;if(!n)return t;var i=o[e.name].filter(function(t){return t===a}).length;return t+i/n*e.boost},0);this.tokenStore.add(a,{ref:r,tf:c})}n&&this.eventEmitter.emit("add",e,this)},t.Index.prototype.remove=function(t,e){var n=t[this._ref],e=void 0===e?!0:e;if(this.documentStore.has(n)){var o=this.documentStore.get(n);this.documentStore.remove(n),o.forEach(function(t){this.tokenStore.remove(t,n)},this),e&&this.eventEmitter.emit("remove",t,this)}},t.Index.prototype.update=function(t,e){var e=void 0===e?!0:e;this.remove(t,!1),this.add(t,!1),e&&this.eventEmitter.emit("update",t,this)},t.Index.prototype.idf=function(t){var e="@"+t;if(Object.prototype.hasOwnProperty.call(this._idfCache,e))return this._idfCache[e];var n=this.tokenStore.count(t),o=1;return n>0&&(o=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=o},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),o=new t.Vector,i=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,c=this,l=this.tokenStore.expand(e).reduce(function(n,i){var r=c.corpusTokens.indexOf(i),s=c.idf(i),l=1,u=new t.SortedSet;if(i!==e){var d=Math.max(3,i.length-e.length);l=1/Math.log(d)}r>-1&&o.insert(r,a*s*l);for(var h=c.tokenStore.get(i),f=Object.keys(h),p=f.length,m=0;p>m;m++)u.add(h[f[m]].ref);return n.union(u)},new t.SortedSet);i.push(l)},this);var a=i.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:o.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),o=n.length,i=new t.Vector,r=0;o>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,c=this.idf(s);i.insert(this.corpusTokens.indexOf(s),a*c)}return i},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,o){return n[o]=t.SortedSet.load(e.store[o]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",o="[aeiouy]",i=n+"[^aeiouy]*",r=o+"[aeiou]*",s="^("+i+")?"+r+i,a="^("+i+")?"+r+i+"("+r+")?$",c="^("+i+")?"+r+i+r+i,l="^("+i+")?"+o,u=new RegExp(s),d=new RegExp(c),h=new RegExp(a),f=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,g=/^(.+?)(ed|ing)$/,y=/.$/,w=/(at|bl|iz)$/,S=new RegExp("([^aeiouylsz])\\1$"),k=new RegExp("^"+i+o+"[^aeiouwxy]$"),E=/^(.+?[^aeiou])y$/,x=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,b=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,T=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,C=/^(.+?)(s|t)(ion)$/,L=/^(.+?)e$/,_=/ll$/,A=new RegExp("^"+i+o+"[^aeiouwxy]$"),O=function(n){var o,i,r,s,a,c,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=g,s.test(n)){var O=s.exec(n);s=u,s.test(O[1])&&(s=y,n=n.replace(s,""))}else if(a.test(n)){var O=a.exec(n);o=O[1],a=f,a.test(o)&&(n=o,a=w,c=S,l=k,a.test(n)?n+="e":c.test(n)?(s=y,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=E,s.test(n)){var O=s.exec(n);o=O[1],n=o+"i"}if(s=x,s.test(n)){var O=s.exec(n);o=O[1],i=O[2],s=u,s.test(o)&&(n=o+t[i])}if(s=b,s.test(n)){var O=s.exec(n);o=O[1],i=O[2],s=u,s.test(o)&&(n=o+e[i])}if(s=T,a=C,s.test(n)){var O=s.exec(n);o=O[1],s=d,s.test(o)&&(n=o)}else if(a.test(n)){var O=a.exec(n);o=O[1]+O[2],a=d,a.test(o)&&(n=o)}if(s=L,s.test(n)){var O=s.exec(n);o=O[1],s=d,a=h,c=A,(s.test(o)||a.test(o)&&!c.test(o))&&(n=o)}return s=_,a=d,s.test(n)&&a.test(n)&&(s=y,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return O}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.generateStopWordFilter=function(t){var e=t.reduce(function(t,e){return t[e]=e,t},{});return function(t){return t&&e[t]!==t?t:void 0}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){return t.replace(/^\W+/,"").replace(/\W+$/,"")},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,o=t.charAt(0),i=t.slice(1);return o in n||(n[o]={docs:{}}),0===i.length?(n[o].docs[e.ref]=e,void(this.length+=1)):this.add(i,e,n[o])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n<t.length;n++){if(!e[t.charAt(n)])return!1;e=e[t.charAt(n)]}return!0},t.TokenStore.prototype.getNode=function(t){if(!t)return{};for(var e=this.root,n=0;n<t.length;n++){if(!e[t.charAt(n)])return{};e=e[t.charAt(n)]}return e},t.TokenStore.prototype.get=function(t,e){return this.getNode(t,e).docs||{}},t.TokenStore.prototype.count=function(t,e){return Object.keys(this.get(t,e)).length},t.TokenStore.prototype.remove=function(t,e){if(t){for(var n=this.root,o=0;o<t.length;o++){if(!(t.charAt(o)in n))return;n=n[t.charAt(o)]}delete n.docs[e]}},t.TokenStore.prototype.expand=function(t,e){var n=this.getNode(t),o=n.docs||{},e=e||[];return Object.keys(o).length&&e.push(t),Object.keys(n).forEach(function(n){"docs"!==n&&e.concat(this.expand(t+n,e))},this),e},t.TokenStore.prototype.toJSON=function(){return{root:this.root,length:this.length}},function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.lunr=e()}(this,function(){return t})}(),String.prototype.truncate=function(t){if(this.length>t){for(;" "!=this[t]&&--t>0;);return this.substring(0,t)+"&hellip;"}return this},HTMLElement.prototype.wrap=function(t){t.length||(t=[t]);for(var e=t.length-1;e>=0;e--){var n=e>0?this.cloneNode(!0):this,o=t[e],i=o.parentNode,r=o.nextSibling;n.appendChild(o),r?i.insertBefore(n,r):i.appendChild(n)}},document.addEventListener("DOMContentLoaded",function(){"use strict";Modernizr.addTest("ios",function(){return!!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)}),Modernizr.addTest("standalone",function(){return!!navigator.standalone}),FastClick.attach(document.body);var t=document.getElementById("toggle-search"),e=(document.getElementById("reset-search"),document.querySelector(".drawer")),n=document.querySelectorAll(".anchor"),o=document.querySelector(".search .field"),i=document.querySelector(".query"),r=document.querySelector(".results .meta");Array.prototype.forEach.call(n,function(t){t.querySelector("a").addEventListener("click",function(){document.getElementById("toggle-drawer").checked=!1,document.body.classList.remove("toggle-drawer")})});var s=window.pageYOffset,a=function(){var t=window.pageYOffset+window.innerHeight,n=Math.max(0,window.innerHeight-e.offsetHeight);t>document.body.clientHeight-(96-n)?"absolute"!=e.style.position&&(e.style.position="absolute",e.style.top=null,e.style.bottom=0):e.offsetHeight<window.innerHeight?"fixed"!=e.style.position&&(e.style.position="fixed",e.style.top=0,e.style.bottom=null):"fixed"!=e.style.position?t>e.offsetTop+e.offsetHeight?(e.style.position="fixed",e.style.top=null,e.style.bottom="-96px"):window.pageYOffset<e.offsetTop&&(e.style.position="fixed",e.style.top=0,e.style.bottom=null):window.pageYOffset>s?e.style.top&&(e.style.position="absolute",e.style.top=Math.max(0,s)+"px",e.style.bottom=null):e.style.bottom&&(e.style.position="absolute",e.style.top=t-e.offsetHeight+"px",e.style.bottom=null),s=Math.max(0,window.pageYOffset)},c=function(){var t=document.querySelector(".main");window.removeEventListener("scroll",a),matchMedia("only screen and (max-width: 959px)").matches?(e.style.position=null,e.style.top=null,e.style.bottom=null):e.offsetHeight+96<t.offsetHeight&&(window.addEventListener("scroll",a),a())};Modernizr.ios||(window.addEventListener("resize",c),c());var l=function(){pegasus(base_url+"/mkdocs/search_index.json").then(function(e,n){var o=lunr(function(){this.field("title",{boost:10}),this.field("text"),this.ref("location")}),s={};e.docs.map(function(t){t.location=base_url+t.location,s[t.location]=t,o.add(t)}),i.addEventListener("keyup",function(){for(var e=document.querySelector(".results .list");e.firstChild;)e.removeChild(e.firstChild);var n=document.querySelector(".bar.search");if(!i.value.length){for(;r.firstChild;)r.removeChild(r.firstChild);return void n.classList.remove("non-empty")}n.classList.add("non-empty");var a=o.search(i.value);a.map(function(n){var o=s[n.ref],i=document.createElement("article");i.classList.add("result");var r=document.createElement("h1");r.innerHTML=o.title,i.appendChild(r);var a=document.createElement("a");a.href=o.location,a.appendChild(i);var c=document.createElement("span");c.innerHTML=a.href.split("#")[0],i.appendChild(c);var l=a.href.split("#");l[0]==document.location.href.split("#")[0]&&a.addEventListener("click",function(e){if(document.body.classList.remove("toggle-search"),document.body.classList.remove("locked"),t.checked=!1,!matchMedia("only screen and (min-width: 960px)").matches&&(e.preventDefault(),e.stopPropagation(),1!=l.length)){var n=document.getElementById(l[1]);n&&setTimeout(function(){n.scrollIntoView&&n.scrollIntoView()||window.scrollTo(0,n.offsetTop)},100)}}),e.appendChild(a)});var c=document.createElement("strong");for(c.innerHTML=a.length+" search result"+(1!=a.length?"s":"");r.firstChild;)r.removeChild(r.firstChild);r.appendChild(c)})},function(t,e){console.error(t,e.status)}),t.removeEventListener("click",l)};t.addEventListener("click",l);var u=0;t.addEventListener("click",function(t){var e=document.body.classList,n=!matchMedia("only screen and (min-width: 960px)").matches;e.contains("locked")?(e.remove("locked"),n&&setTimeout(function(){window.scrollTo(0,u)},100)):(u=window.scrollY,n&&setTimeout(function(){window.scrollTo(0,0)},400),setTimeout(function(){this.checked&&(n&&e.add("locked"),setTimeout(function(){i.focus()},200))}.bind(this),450))}),o.addEventListener("touchstart",function(){i.focus()}),window.addEventListener("keyup",function(e){var n=e.keyCode||e.which;27==n&&(i.blur(),document.body.classList.remove("toggle-search"),document.body.classList.remove("locked"),t.checked=!1)});var d=document.getElementById("reset-search");d.addEventListener("click",function(){for(var t=document.querySelector(".results .list");t.firstChild;)t.removeChild(t.firstChild);var e=document.querySelector(".bar.search");e.classList.remove("non-empty"),r.innerHTML="",i.value="",i.focus()});var h=document.querySelectorAll("h2");h=Array.prototype.map.call(h,function(t){return t.offsetTop});var f=null;document.addEventListener("scroll",function(){for(var t=window.scrollY+window.innerHeight/3,e=h.length-1,o=0;e>o;o++)t<h[o+1]&&(e=o);e!=f&&(f=e,Array.prototype.forEach.call(n,function(t,e){var n=t.querySelector("a");(e!=f||n.classList.add("current"))&&n.classList.remove("current")}))});var p=document.querySelectorAll(".n + .p");Array.prototype.forEach.call(p,function(t){var e=t.innerText||t.textContent;e&&"("==e[0]&&t.previousSibling.classList.add("f")});var m=document.querySelectorAll("table");if(Array.prototype.forEach.call(m,function(t){var e=document.createElement("div");e.classList.add("data"),e.wrap(t)}),Modernizr.ios){var v=document.querySelectorAll(".scrollable, .standalone .article");Array.prototype.forEach.call(v,function(t){t.addEventListener("touchstart",function(){var t=this.scrollTop;0==t?this.scrollTop=1:t+this.offsetHeight==this.scrollHeight&&(this.scrollTop=t-1)})})}var g=document.querySelectorAll(".project, .overlay, .header");Array.prototype.forEach.call(g,function(t){t.addEventListener("touchmove",function(t){t.preventDefault()})});var y=document.querySelectorAll(".toggle");Array.prototype.forEach.call(y,function(t){t.addEventListener("click",function(){document.body.classList.toggle(this.id)})}),repo_id&&pegasus("https://api.github.com/repos/"+repo_id).then(function(t,e){var n=t.stargazers_count;n>1e4?n=(n/1e3).toFixed(0)+"k":n>1e3&&(n=(n/1e3).toFixed(1)+"k");var o=document.querySelector(".repo-stars .count");o.innerHTML=n},function(t,e){console.error(t,e.status)})}),"standalone"in window.navigator&&window.navigator.standalone){var node,remotes=!1;document.addEventListener("click",function(t){for(node=t.target;"A"!==node.nodeName&&"HTML"!==node.nodeName;)node=node.parentNode;"href"in node&&-1!==node.href.indexOf("http")&&(-1!==node.href.indexOf(document.location.host)||remotes)&&(t.preventDefault(),document.location.href=node.href)},!1)}
\ No newline at end of file
diff --git a/it4i_theme/assets/javascripts/application.js b/it4i_theme/assets/javascripts/application.js
index fdc458fb3fc8da1b5ebe2b93568b0597788141e3..1199f2e1dc6c0bfde788472cfe1e8e3b6181de2d 100644
--- a/it4i_theme/assets/javascripts/application.js
+++ b/it4i_theme/assets/javascripts/application.js
@@ -1,883 +1 @@
-function pegasus(t, e) {
-    return e = new XMLHttpRequest, e.open("GET", t), t = [], e.onreadystatechange = e.then = function(n, o, i, r) {
-        if (n && n.call && (t = [, n, o]), 4 == e.readyState && (i = t[0 | e.status / 200])) {
-            try {
-                r = JSON.parse(e.responseText)
-            } catch (s) {
-                r = null
-            }
-            i(r, e)
-        }
-    }, e.send(), e
-}
-if ("document" in self && ("classList" in document.createElement("_") ? ! function() {
-        "use strict";
-        var t = document.createElement("_");
-        if (t.classList.add("c1", "c2"), !t.classList.contains("c2")) {
-            var e = function(t) {
-                var e = DOMTokenList.prototype[t];
-                DOMTokenList.prototype[t] = function(t) {
-                    var n, o = arguments.length;
-                    for (n = 0; o > n; n++) t = arguments[n], e.call(this, t)
-                }
-            };
-            e("add"), e("remove")
-        }
-        if (t.classList.toggle("c3", !1), t.classList.contains("c3")) {
-            var n = DOMTokenList.prototype.toggle;
-            DOMTokenList.prototype.toggle = function(t, e) {
-                return 1 in arguments && !this.contains(t) == !e ? e : n.call(this, t)
-            }
-        }
-        t = null
-    }() : ! function(t) {
-        "use strict";
-        if ("Element" in t) {
-            var e = "classList",
-                n = "prototype",
-                o = t.Element[n],
-                i = Object,
-                r = String[n].trim || function() {
-                    return this.replace(/^\s+|\s+$/g, "")
-                },
-                s = Array[n].indexOf || function(t) {
-                    for (var e = 0, n = this.length; n > e; e++)
-                        if (e in this && this[e] === t) return e;
-                    return -1
-                },
-                a = function(t, e) {
-                    this.name = t, this.code = DOMException[t], this.message = e
-                },
-                c = function(t, e) {
-                    if ("" === e) throw new a("SYNTAX_ERR", "An invalid or illegal string was specified");
-                    if (/\s/.test(e)) throw new a("INVALID_CHARACTER_ERR", "String contains an invalid character");
-                    return s.call(t, e)
-                },
-                l = function(t) {
-                    for (var e = r.call(t.getAttribute("class") || ""), n = e ? e.split(/\s+/) : [], o = 0, i = n.length; i > o; o++) this.push(n[o]);
-                    this._updateClassName = function() {
-                        t.setAttribute("class", this.toString())
-                    }
-                },
-                u = l[n] = [],
-                d = function() {
-                    return new l(this)
-                };
-            if (a[n] = Error[n], u.item = function(t) {
-                    return this[t] || null
-                }, u.contains = function(t) {
-                    return t += "", -1 !== c(this, t)
-                }, u.add = function() {
-                    var t, e = arguments,
-                        n = 0,
-                        o = e.length,
-                        i = !1;
-                    do t = e[n] + "", -1 === c(this, t) && (this.push(t), i = !0); while (++n < o);
-                    i && this._updateClassName()
-                }, u.remove = function() {
-                    var t, e, n = arguments,
-                        o = 0,
-                        i = n.length,
-                        r = !1;
-                    do
-                        for (t = n[o] + "", e = c(this, t); - 1 !== e;) this.splice(e, 1), r = !0, e = c(this, t); while (++o < i);
-                    r && this._updateClassName()
-                }, u.toggle = function(t, e) {
-                    t += "";
-                    var n = this.contains(t),
-                        o = n ? e !== !0 && "remove" : e !== !1 && "add";
-                    return o && this[o](t), e === !0 || e === !1 ? e : !n
-                }, u.toString = function() {
-                    return this.join(" ")
-                }, i.defineProperty) {
-                var h = {
-                    get: d,
-                    enumerable: !0,
-                    configurable: !0
-                };
-                try {
-                    i.defineProperty(o, e, h)
-                } catch (f) {
-                    -2146823252 === f.number && (h.enumerable = !1, i.defineProperty(o, e, h))
-                }
-            } else i[n].__defineGetter__ && o.__defineGetter__(e, d)
-        }
-    }(self)), function() {
-        "use strict";
-
-        function t(e, o) {
-            function i(t, e) {
-                return function() {
-                    return t.apply(e, arguments)
-                }
-            }
-            var r;
-            if (o = o || {}, this.trackingClick = !1, this.trackingClickStart = 0, this.targetElement = null, this.touchStartX = 0, this.touchStartY = 0, this.lastTouchIdentifier = 0, this.touchBoundary = o.touchBoundary || 10, this.layer = e, this.tapDelay = o.tapDelay || 200, this.tapTimeout = o.tapTimeout || 700, !t.notNeeded(e)) {
-                for (var s = ["onMouse", "onClick", "onTouchStart", "onTouchMove", "onTouchEnd", "onTouchCancel"], a = this, c = 0, l = s.length; l > c; c++) a[s[c]] = i(a[s[c]], a);
-                n && (e.addEventListener("mouseover", this.onMouse, !0), e.addEventListener("mousedown", this.onMouse, !0), e.addEventListener("mouseup", this.onMouse, !0)), e.addEventListener("click", this.onClick, !0), e.addEventListener("touchstart", this.onTouchStart, !1), e.addEventListener("touchmove", this.onTouchMove, !1), e.addEventListener("touchend", this.onTouchEnd, !1), e.addEventListener("touchcancel", this.onTouchCancel, !1), Event.prototype.stopImmediatePropagation || (e.removeEventListener = function(t, n, o) {
-                    var i = Node.prototype.removeEventListener;
-                    "click" === t ? i.call(e, t, n.hijacked || n, o) : i.call(e, t, n, o)
-                }, e.addEventListener = function(t, n, o) {
-                    var i = Node.prototype.addEventListener;
-                    "click" === t ? i.call(e, t, n.hijacked || (n.hijacked = function(t) {
-                        t.propagationStopped || n(t)
-                    }), o) : i.call(e, t, n, o)
-                }), "function" == typeof e.onclick && (r = e.onclick, e.addEventListener("click", function(t) {
-                    r(t)
-                }, !1), e.onclick = null)
-            }
-        }
-        var e = navigator.userAgent.indexOf("Windows Phone") >= 0,
-            n = navigator.userAgent.indexOf("Android") > 0 && !e,
-            o = /iP(ad|hone|od)/.test(navigator.userAgent) && !e,
-            i = o && /OS 4_\d(_\d)?/.test(navigator.userAgent),
-            r = o && /OS [6-7]_\d/.test(navigator.userAgent),
-            s = navigator.userAgent.indexOf("BB10") > 0;
-        t.prototype.needsClick = function(t) {
-            switch (t.nodeName.toLowerCase()) {
-                case "button":
-                case "select":
-                case "textarea":
-                    if (t.disabled) return !0;
-                    break;
-                case "input":
-                    if (o && "file" === t.type || t.disabled) return !0;
-                    break;
-                case "label":
-                case "iframe":
-                case "video":
-                    return !0
-            }
-            return /\bneedsclick\b/.test(t.className)
-        }, t.prototype.needsFocus = function(t) {
-            switch (t.nodeName.toLowerCase()) {
-                case "textarea":
-                    return !0;
-                case "select":
-                    return !n;
-                case "input":
-                    switch (t.type) {
-                        case "button":
-                        case "checkbox":
-                        case "file":
-                        case "image":
-                        case "radio":
-                        case "submit":
-                            return !1
-                    }
-                    return !t.disabled && !t.readOnly;
-                default:
-                    return /\bneedsfocus\b/.test(t.className)
-            }
-        }, t.prototype.sendClick = function(t, e) {
-            var n, o;
-            document.activeElement && document.activeElement !== t && document.activeElement.blur(), o = e.changedTouches[0], n = document.createEvent("MouseEvents"), n.initMouseEvent(this.determineEventType(t), !0, !0, window, 1, o.screenX, o.screenY, o.clientX, o.clientY, !1, !1, !1, !1, 0, null), n.forwardedTouchEvent = !0, t.dispatchEvent(n)
-        }, t.prototype.determineEventType = function(t) {
-            return n && "select" === t.tagName.toLowerCase() ? "mousedown" : "click"
-        }, t.prototype.focus = function(t) {
-            var e;
-            o && t.setSelectionRange && 0 !== t.type.indexOf("date") && "time" !== t.type && "month" !== t.type ? (e = t.value.length, t.setSelectionRange(e, e)) : t.focus()
-        }, t.prototype.updateScrollParent = function(t) {
-            var e, n;
-            if (e = t.fastClickScrollParent, !e || !e.contains(t)) {
-                n = t;
-                do {
-                    if (n.scrollHeight > n.offsetHeight) {
-                        e = n, t.fastClickScrollParent = n;
-                        break
-                    }
-                    n = n.parentElement
-                } while (n)
-            }
-            e && (e.fastClickLastScrollTop = e.scrollTop)
-        }, t.prototype.getTargetElementFromEventTarget = function(t) {
-            return t.nodeType === Node.TEXT_NODE ? t.parentNode : t
-        }, t.prototype.onTouchStart = function(t) {
-            var e, n, r;
-            if (t.targetTouches.length > 1) return !0;
-            if (e = this.getTargetElementFromEventTarget(t.target), n = t.targetTouches[0], o) {
-                if (r = window.getSelection(), r.rangeCount && !r.isCollapsed) return !0;
-                if (!i) {
-                    if (n.identifier && n.identifier === this.lastTouchIdentifier) return t.preventDefault(), !1;
-                    this.lastTouchIdentifier = n.identifier, this.updateScrollParent(e)
-                }
-            }
-            return this.trackingClick = !0, this.trackingClickStart = t.timeStamp, this.targetElement = e, this.touchStartX = n.pageX, this.touchStartY = n.pageY, t.timeStamp - this.lastClickTime < this.tapDelay && t.preventDefault(), !0
-        }, t.prototype.touchHasMoved = function(t) {
-            var e = t.changedTouches[0],
-                n = this.touchBoundary;
-            return Math.abs(e.pageX - this.touchStartX) > n || Math.abs(e.pageY - this.touchStartY) > n ? !0 : !1
-        }, t.prototype.onTouchMove = function(t) {
-            return this.trackingClick ? ((this.targetElement !== this.getTargetElementFromEventTarget(t.target) || this.touchHasMoved(t)) && (this.trackingClick = !1, this.targetElement = null), !0) : !0
-        }, t.prototype.findControl = function(t) {
-            return void 0 !== t.control ? t.control : t.htmlFor ? document.getElementById(t.htmlFor) : t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")
-        }, t.prototype.onTouchEnd = function(t) {
-            var e, s, a, c, l, u = this.targetElement;
-            if (!this.trackingClick) return !0;
-            if (t.timeStamp - this.lastClickTime < this.tapDelay) return this.cancelNextClick = !0, !0;
-            if (t.timeStamp - this.trackingClickStart > this.tapTimeout) return !0;
-            if (this.cancelNextClick = !1, this.lastClickTime = t.timeStamp, s = this.trackingClickStart, this.trackingClick = !1, this.trackingClickStart = 0, r && (l = t.changedTouches[0], u = document.elementFromPoint(l.pageX - window.pageXOffset, l.pageY - window.pageYOffset) || u, u.fastClickScrollParent = this.targetElement.fastClickScrollParent), a = u.tagName.toLowerCase(), "label" === a) {
-                if (e = this.findControl(u)) {
-                    if (this.focus(u), n) return !1;
-                    u = e
-                }
-            } else if (this.needsFocus(u)) return t.timeStamp - s > 100 || o && window.top !== window && "input" === a ? (this.targetElement = null, !1) : (this.focus(u), this.sendClick(u, t), o && "select" === a || (this.targetElement = null, t.preventDefault()), !1);
-            return o && !i && (c = u.fastClickScrollParent, c && c.fastClickLastScrollTop !== c.scrollTop) ? !0 : (this.needsClick(u) || (t.preventDefault(), this.sendClick(u, t)), !1)
-        }, t.prototype.onTouchCancel = function() {
-            this.trackingClick = !1, this.targetElement = null
-        }, t.prototype.onMouse = function(t) {
-            return this.targetElement ? t.forwardedTouchEvent ? !0 : t.cancelable && (!this.needsClick(this.targetElement) || this.cancelNextClick) ? (t.stopImmediatePropagation ? t.stopImmediatePropagation() : t.propagationStopped = !0, t.stopPropagation(), t.preventDefault(), !1) : !0 : !0
-        }, t.prototype.onClick = function(t) {
-            var e;
-            return this.trackingClick ? (this.targetElement = null, this.trackingClick = !1, !0) : "submit" === t.target.type && 0 === t.detail ? !0 : (e = this.onMouse(t), e || (this.targetElement = null), e)
-        }, t.prototype.destroy = function() {
-            var t = this.layer;
-            n && (t.removeEventListener("mouseover", this.onMouse, !0), t.removeEventListener("mousedown", this.onMouse, !0), t.removeEventListener("mouseup", this.onMouse, !0)), t.removeEventListener("click", this.onClick, !0), t.removeEventListener("touchstart", this.onTouchStart, !1), t.removeEventListener("touchmove", this.onTouchMove, !1), t.removeEventListener("touchend", this.onTouchEnd, !1), t.removeEventListener("touchcancel", this.onTouchCancel, !1)
-        }, t.notNeeded = function(t) {
-            var e, o, i, r;
-            if ("undefined" == typeof window.ontouchstart) return !0;
-            if (o = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1]) {
-                if (!n) return !0;
-                if (e = document.querySelector("meta[name=viewport]")) {
-                    if (-1 !== e.content.indexOf("user-scalable=no")) return !0;
-                    if (o > 31 && document.documentElement.scrollWidth <= window.outerWidth) return !0
-                }
-            }
-            if (s && (i = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/), i[1] >= 10 && i[2] >= 3 && (e = document.querySelector("meta[name=viewport]")))) {
-                if (-1 !== e.content.indexOf("user-scalable=no")) return !0;
-                if (document.documentElement.scrollWidth <= window.outerWidth) return !0
-            }
-            return "none" === t.style.msTouchAction || "manipulation" === t.style.touchAction ? !0 : (r = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1], r >= 27 && (e = document.querySelector("meta[name=viewport]"), e && (-1 !== e.content.indexOf("user-scalable=no") || document.documentElement.scrollWidth <= window.outerWidth)) ? !0 : "none" === t.style.touchAction || "manipulation" === t.style.touchAction ? !0 : !1)
-        }, t.attach = function(e, n) {
-            return new t(e, n)
-        }, "function" == typeof define && "object" == typeof define.amd && define.amd ? define(function() {
-            return t
-        }) : "undefined" != typeof module && module.exports ? (module.exports = t.attach, module.exports.FastClick = t) : window.FastClick = t
-    }(), function() {
-        var t = function(e) {
-            var n = new t.Index;
-            return n.pipeline.add(t.trimmer, t.stopWordFilter, t.stemmer), e && e.call(n, n), n
-        };
-        t.version = "0.6.0", t.utils = {}, t.utils.warn = function(t) {
-                return function(e) {
-                    t.console && console.warn && console.warn(e)
-                }
-            }(this), t.utils.asString = function(t) {
-                return void 0 === t || null === t ? "" : t.toString()
-            }, t.EventEmitter = function() {
-                this.events = {}
-            }, t.EventEmitter.prototype.addListener = function() {
-                var t = Array.prototype.slice.call(arguments),
-                    e = t.pop(),
-                    n = t;
-                if ("function" != typeof e) throw new TypeError("last argument must be a function");
-                n.forEach(function(t) {
-                    this.hasHandler(t) || (this.events[t] = []), this.events[t].push(e)
-                }, this)
-            }, t.EventEmitter.prototype.removeListener = function(t, e) {
-                if (this.hasHandler(t)) {
-                    var n = this.events[t].indexOf(e);
-                    this.events[t].splice(n, 1), this.events[t].length || delete this.events[t]
-                }
-            }, t.EventEmitter.prototype.emit = function(t) {
-                if (this.hasHandler(t)) {
-                    var e = Array.prototype.slice.call(arguments, 1);
-                    this.events[t].forEach(function(t) {
-                        t.apply(void 0, e)
-                    })
-                }
-            }, t.EventEmitter.prototype.hasHandler = function(t) {
-                return t in this.events
-            }, t.tokenizer = function(e) {
-                return arguments.length && null != e && void 0 != e ? Array.isArray(e) ? e.map(function(e) {
-                    return t.utils.asString(e).toLowerCase()
-                }) : e.toString().trim().toLowerCase().split(t.tokenizer.seperator) : []
-            }, t.tokenizer.seperator = /[\s\-]+/, t.Pipeline = function() {
-                this._stack = []
-            }, t.Pipeline.registeredFunctions = {}, t.Pipeline.registerFunction = function(e, n) {
-                n in this.registeredFunctions && t.utils.warn("Overwriting existing registered function: " + n), e.label = n, t.Pipeline.registeredFunctions[e.label] = e
-            }, t.Pipeline.warnIfFunctionNotRegistered = function(e) {
-                var n = e.label && e.label in this.registeredFunctions;
-                n || t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n", e)
-            }, t.Pipeline.load = function(e) {
-                var n = new t.Pipeline;
-                return e.forEach(function(e) {
-                    var o = t.Pipeline.registeredFunctions[e];
-                    if (!o) throw new Error("Cannot load un-registered function: " + e);
-                    n.add(o)
-                }), n
-            }, t.Pipeline.prototype.add = function() {
-                var e = Array.prototype.slice.call(arguments);
-                e.forEach(function(e) {
-                    t.Pipeline.warnIfFunctionNotRegistered(e), this._stack.push(e)
-                }, this)
-            }, t.Pipeline.prototype.after = function(e, n) {
-                t.Pipeline.warnIfFunctionNotRegistered(n);
-                var o = this._stack.indexOf(e);
-                if (-1 == o) throw new Error("Cannot find existingFn");
-                o += 1, this._stack.splice(o, 0, n)
-            }, t.Pipeline.prototype.before = function(e, n) {
-                t.Pipeline.warnIfFunctionNotRegistered(n);
-                var o = this._stack.indexOf(e);
-                if (-1 == o) throw new Error("Cannot find existingFn");
-                this._stack.splice(o, 0, n)
-            }, t.Pipeline.prototype.remove = function(t) {
-                var e = this._stack.indexOf(t); - 1 != e && this._stack.splice(e, 1)
-            }, t.Pipeline.prototype.run = function(t) {
-                for (var e = [], n = t.length, o = this._stack.length, i = 0; n > i; i++) {
-                    for (var r = t[i], s = 0; o > s && (r = this._stack[s](r, i, t), void 0 !== r && "" !== r); s++);
-                    void 0 !== r && "" !== r && e.push(r)
-                }
-                return e
-            }, t.Pipeline.prototype.reset = function() {
-                this._stack = []
-            }, t.Pipeline.prototype.toJSON = function() {
-                return this._stack.map(function(e) {
-                    return t.Pipeline.warnIfFunctionNotRegistered(e), e.label
-                })
-            }, t.Vector = function() {
-                this._magnitude = null, this.list = void 0, this.length = 0
-            }, t.Vector.Node = function(t, e, n) {
-                this.idx = t, this.val = e, this.next = n
-            }, t.Vector.prototype.insert = function(e, n) {
-                this._magnitude = void 0;
-                var o = this.list;
-                if (!o) return this.list = new t.Vector.Node(e, n, o), this.length++;
-                if (e < o.idx) return this.list = new t.Vector.Node(e, n, o), this.length++;
-                for (var i = o, r = o.next; void 0 != r;) {
-                    if (e < r.idx) return i.next = new t.Vector.Node(e, n, r), this.length++;
-                    i = r, r = r.next
-                }
-                return i.next = new t.Vector.Node(e, n, r), this.length++
-            }, t.Vector.prototype.magnitude = function() {
-                if (this._magnitude) return this._magnitude;
-                for (var t, e = this.list, n = 0; e;) t = e.val, n += t * t, e = e.next;
-                return this._magnitude = Math.sqrt(n)
-            }, t.Vector.prototype.dot = function(t) {
-                for (var e = this.list, n = t.list, o = 0; e && n;) e.idx < n.idx ? e = e.next : e.idx > n.idx ? n = n.next : (o += e.val * n.val, e = e.next, n = n.next);
-                return o
-            }, t.Vector.prototype.similarity = function(t) {
-                return this.dot(t) / (this.magnitude() * t.magnitude())
-            }, t.SortedSet = function() {
-                this.length = 0, this.elements = []
-            }, t.SortedSet.load = function(t) {
-                var e = new this;
-                return e.elements = t, e.length = t.length, e
-            }, t.SortedSet.prototype.add = function() {
-                var t, e;
-                for (t = 0; t < arguments.length; t++) e = arguments[t], ~this.indexOf(e) || this.elements.splice(this.locationFor(e), 0, e);
-                this.length = this.elements.length
-            }, t.SortedSet.prototype.toArray = function() {
-                return this.elements.slice()
-            }, t.SortedSet.prototype.map = function(t, e) {
-                return this.elements.map(t, e)
-            }, t.SortedSet.prototype.forEach = function(t, e) {
-                return this.elements.forEach(t, e)
-            }, t.SortedSet.prototype.indexOf = function(t) {
-                for (var e = 0, n = this.elements.length, o = n - e, i = e + Math.floor(o / 2), r = this.elements[i]; o > 1;) {
-                    if (r === t) return i;
-                    t > r && (e = i), r > t && (n = i), o = n - e, i = e + Math.floor(o / 2), r = this.elements[i]
-                }
-                return r === t ? i : -1
-            }, t.SortedSet.prototype.locationFor = function(t) {
-                for (var e = 0, n = this.elements.length, o = n - e, i = e + Math.floor(o / 2), r = this.elements[i]; o > 1;) t > r && (e = i), r > t && (n = i), o = n - e, i = e + Math.floor(o / 2), r = this.elements[i];
-                return r > t ? i : t > r ? i + 1 : void 0
-            }, t.SortedSet.prototype.intersect = function(e) {
-                for (var n = new t.SortedSet, o = 0, i = 0, r = this.length, s = e.length, a = this.elements, c = e.elements;;) {
-                    if (o > r - 1 || i > s - 1) break;
-                    a[o] !== c[i] ? a[o] < c[i] ? o++ : a[o] > c[i] && i++ : (n.add(a[o]), o++, i++)
-                }
-                return n
-            }, t.SortedSet.prototype.clone = function() {
-                var e = new t.SortedSet;
-                return e.elements = this.toArray(), e.length = e.elements.length, e
-            }, t.SortedSet.prototype.union = function(t) {
-                var e, n, o;
-                return this.length >= t.length ? (e = this, n = t) : (e = t, n = this), o = e.clone(), o.add.apply(o, n.toArray()), o
-            }, t.SortedSet.prototype.toJSON = function() {
-                return this.toArray()
-            }, t.Index = function() {
-                this._fields = [], this._ref = "id", this.pipeline = new t.Pipeline, this.documentStore = new t.Store, this.tokenStore = new t.TokenStore, this.corpusTokens = new t.SortedSet, this.eventEmitter = new t.EventEmitter, this._idfCache = {}, this.on("add", "remove", "update", function() {
-                    this._idfCache = {}
-                }.bind(this))
-            }, t.Index.prototype.on = function() {
-                var t = Array.prototype.slice.call(arguments);
-                return this.eventEmitter.addListener.apply(this.eventEmitter, t)
-            }, t.Index.prototype.off = function(t, e) {
-                return this.eventEmitter.removeListener(t, e)
-            }, t.Index.load = function(e) {
-                e.version !== t.version && t.utils.warn("version mismatch: current " + t.version + " importing " + e.version);
-                var n = new this;
-                return n._fields = e.fields, n._ref = e.ref, n.documentStore = t.Store.load(e.documentStore), n.tokenStore = t.TokenStore.load(e.tokenStore), n.corpusTokens = t.SortedSet.load(e.corpusTokens), n.pipeline = t.Pipeline.load(e.pipeline), n
-            }, t.Index.prototype.field = function(t, e) {
-                var e = e || {},
-                    n = {
-                        name: t,
-                        boost: e.boost || 1
-                    };
-                return this._fields.push(n), this
-            }, t.Index.prototype.ref = function(t) {
-                return this._ref = t, this
-            }, t.Index.prototype.add = function(e, n) {
-                var o = {},
-                    i = new t.SortedSet,
-                    r = e[this._ref],
-                    n = void 0 === n ? !0 : n;
-                this._fields.forEach(function(n) {
-                    var r = this.pipeline.run(t.tokenizer(e[n.name]));
-                    o[n.name] = r, t.SortedSet.prototype.add.apply(i, r)
-                }, this), this.documentStore.set(r, i), t.SortedSet.prototype.add.apply(this.corpusTokens, i.toArray());
-                for (var s = 0; s < i.length; s++) {
-                    var a = i.elements[s],
-                        c = this._fields.reduce(function(t, e) {
-                            var n = o[e.name].length;
-                            if (!n) return t;
-                            var i = o[e.name].filter(function(t) {
-                                return t === a
-                            }).length;
-                            return t + i / n * e.boost
-                        }, 0);
-                    this.tokenStore.add(a, {
-                        ref: r,
-                        tf: c
-                    })
-                }
-                n && this.eventEmitter.emit("add", e, this)
-            }, t.Index.prototype.remove = function(t, e) {
-                var n = t[this._ref],
-                    e = void 0 === e ? !0 : e;
-                if (this.documentStore.has(n)) {
-                    var o = this.documentStore.get(n);
-                    this.documentStore.remove(n), o.forEach(function(t) {
-                        this.tokenStore.remove(t, n)
-                    }, this), e && this.eventEmitter.emit("remove", t, this)
-                }
-            }, t.Index.prototype.update = function(t, e) {
-                var e = void 0 === e ? !0 : e;
-                this.remove(t, !1), this.add(t, !1), e && this.eventEmitter.emit("update", t, this)
-            }, t.Index.prototype.idf = function(t) {
-                var e = "@" + t;
-                if (Object.prototype.hasOwnProperty.call(this._idfCache, e)) return this._idfCache[e];
-                var n = this.tokenStore.count(t),
-                    o = 1;
-                return n > 0 && (o = 1 + Math.log(this.documentStore.length / n)), this._idfCache[e] = o
-            }, t.Index.prototype.search = function(e) {
-                var n = this.pipeline.run(t.tokenizer(e)),
-                    o = new t.Vector,
-                    i = [],
-                    r = this._fields.reduce(function(t, e) {
-                        return t + e.boost
-                    }, 0),
-                    s = n.some(function(t) {
-                        return this.tokenStore.has(t)
-                    }, this);
-                if (!s) return [];
-                n.forEach(function(e, n, s) {
-                    var a = 1 / s.length * this._fields.length * r,
-                        c = this,
-                        l = this.tokenStore.expand(e).reduce(function(n, i) {
-                            var r = c.corpusTokens.indexOf(i),
-                                s = c.idf(i),
-                                l = 1,
-                                u = new t.SortedSet;
-                            if (i !== e) {
-                                var d = Math.max(3, i.length - e.length);
-                                l = 1 / Math.log(d)
-                            }
-                            r > -1 && o.insert(r, a * s * l);
-                            for (var h = c.tokenStore.get(i), f = Object.keys(h), p = f.length, m = 0; p > m; m++) u.add(h[f[m]].ref);
-                            return n.union(u)
-                        }, new t.SortedSet);
-                    i.push(l)
-                }, this);
-                var a = i.reduce(function(t, e) {
-                    return t.intersect(e)
-                });
-                return a.map(function(t) {
-                    return {
-                        ref: t,
-                        score: o.similarity(this.documentVector(t))
-                    }
-                }, this).sort(function(t, e) {
-                    return e.score - t.score
-                })
-            }, t.Index.prototype.documentVector = function(e) {
-                for (var n = this.documentStore.get(e), o = n.length, i = new t.Vector, r = 0; o > r; r++) {
-                    var s = n.elements[r],
-                        a = this.tokenStore.get(s)[e].tf,
-                        c = this.idf(s);
-                    i.insert(this.corpusTokens.indexOf(s), a * c)
-                }
-                return i
-            }, t.Index.prototype.toJSON = function() {
-                return {
-                    version: t.version,
-                    fields: this._fields,
-                    ref: this._ref,
-                    documentStore: this.documentStore.toJSON(),
-                    tokenStore: this.tokenStore.toJSON(),
-                    corpusTokens: this.corpusTokens.toJSON(),
-                    pipeline: this.pipeline.toJSON()
-                }
-            }, t.Index.prototype.use = function(t) {
-                var e = Array.prototype.slice.call(arguments, 1);
-                e.unshift(this), t.apply(this, e)
-            }, t.Store = function() {
-                this.store = {}, this.length = 0
-            }, t.Store.load = function(e) {
-                var n = new this;
-                return n.length = e.length, n.store = Object.keys(e.store).reduce(function(n, o) {
-                    return n[o] = t.SortedSet.load(e.store[o]), n
-                }, {}), n
-            }, t.Store.prototype.set = function(t, e) {
-                this.has(t) || this.length++, this.store[t] = e
-            }, t.Store.prototype.get = function(t) {
-                return this.store[t]
-            }, t.Store.prototype.has = function(t) {
-                return t in this.store
-            }, t.Store.prototype.remove = function(t) {
-                this.has(t) && (delete this.store[t], this.length--)
-            }, t.Store.prototype.toJSON = function() {
-                return {
-                    store: this.store,
-                    length: this.length
-                }
-            }, t.stemmer = function() {
-                var t = {
-                        ational: "ate",
-                        tional: "tion",
-                        enci: "ence",
-                        anci: "ance",
-                        izer: "ize",
-                        bli: "ble",
-                        alli: "al",
-                        entli: "ent",
-                        eli: "e",
-                        ousli: "ous",
-                        ization: "ize",
-                        ation: "ate",
-                        ator: "ate",
-                        alism: "al",
-                        iveness: "ive",
-                        fulness: "ful",
-                        ousness: "ous",
-                        aliti: "al",
-                        iviti: "ive",
-                        biliti: "ble",
-                        logi: "log"
-                    },
-                    e = {
-                        icate: "ic",
-                        ative: "",
-                        alize: "al",
-                        iciti: "ic",
-                        ical: "ic",
-                        ful: "",
-                        ness: ""
-                    },
-                    n = "[^aeiou]",
-                    o = "[aeiouy]",
-                    i = n + "[^aeiouy]*",
-                    r = o + "[aeiou]*",
-                    s = "^(" + i + ")?" + r + i,
-                    a = "^(" + i + ")?" + r + i + "(" + r + ")?$",
-                    c = "^(" + i + ")?" + r + i + r + i,
-                    l = "^(" + i + ")?" + o,
-                    u = new RegExp(s),
-                    d = new RegExp(c),
-                    h = new RegExp(a),
-                    f = new RegExp(l),
-                    p = /^(.+?)(ss|i)es$/,
-                    m = /^(.+?)([^s])s$/,
-                    v = /^(.+?)eed$/,
-                    g = /^(.+?)(ed|ing)$/,
-                    y = /.$/,
-                    w = /(at|bl|iz)$/,
-                    S = new RegExp("([^aeiouylsz])\\1$"),
-                    k = new RegExp("^" + i + o + "[^aeiouwxy]$"),
-                    E = /^(.+?[^aeiou])y$/,
-                    x = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,
-                    b = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,
-                    T = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,
-                    C = /^(.+?)(s|t)(ion)$/,
-                    L = /^(.+?)e$/,
-                    _ = /ll$/,
-                    A = new RegExp("^" + i + o + "[^aeiouwxy]$"),
-                    O = function(n) {
-                        var o, i, r, s, a, c, l;
-                        if (n.length < 3) return n;
-                        if (r = n.substr(0, 1), "y" == r && (n = r.toUpperCase() + n.substr(1)), s = p, a = m, s.test(n) ? n = n.replace(s, "$1$2") : a.test(n) && (n = n.replace(a, "$1$2")), s = v, a = g, s.test(n)) {
-                            var O = s.exec(n);
-                            s = u, s.test(O[1]) && (s = y, n = n.replace(s, ""))
-                        } else if (a.test(n)) {
-                            var O = a.exec(n);
-                            o = O[1], a = f, a.test(o) && (n = o, a = w, c = S, l = k, a.test(n) ? n += "e" : c.test(n) ? (s = y, n = n.replace(s, "")) : l.test(n) && (n += "e"))
-                        }
-                        if (s = E, s.test(n)) {
-                            var O = s.exec(n);
-                            o = O[1], n = o + "i"
-                        }
-                        if (s = x, s.test(n)) {
-                            var O = s.exec(n);
-                            o = O[1], i = O[2], s = u, s.test(o) && (n = o + t[i])
-                        }
-                        if (s = b, s.test(n)) {
-                            var O = s.exec(n);
-                            o = O[1], i = O[2], s = u, s.test(o) && (n = o + e[i])
-                        }
-                        if (s = T, a = C, s.test(n)) {
-                            var O = s.exec(n);
-                            o = O[1], s = d, s.test(o) && (n = o)
-                        } else if (a.test(n)) {
-                            var O = a.exec(n);
-                            o = O[1] + O[2], a = d, a.test(o) && (n = o)
-                        }
-                        if (s = L, s.test(n)) {
-                            var O = s.exec(n);
-                            o = O[1], s = d, a = h, c = A, (s.test(o) || a.test(o) && !c.test(o)) && (n = o)
-                        }
-                        return s = _, a = d, s.test(n) && a.test(n) && (s = y, n = n.replace(s, "")), "y" == r && (n = r.toLowerCase() + n.substr(1)), n
-                    };
-                return O
-            }(), t.Pipeline.registerFunction(t.stemmer, "stemmer"), t.generateStopWordFilter = function(t) {
-                var e = t.reduce(function(t, e) {
-                    return t[e] = e, t
-                }, {});
-                return function(t) {
-                    return t && e[t] !== t ? t : void 0
-                }
-            }, t.stopWordFilter = t.generateStopWordFilter(["a", "able", "about", "across", "after", "all", "almost", "also", "am", "among", "an", "and", "any", "are", "as", "at", "be", "because", "been", "but", "by", "can", "cannot", "could", "dear", "did", "do", "does", "either", "else", "ever", "every", "for", "from", "get", "got", "had", "has", "have", "he", "her", "hers", "him", "his", "how", "however", "i", "if", "in", "into", "is", "it", "its", "just", "least", "let", "like", "likely", "may", "me", "might", "most", "must", "my", "neither", "no", "nor", "not", "of", "off", "often", "on", "only", "or", "other", "our", "own", "rather", "said", "say", "says", "she", "should", "since", "so", "some", "than", "that", "the", "their", "them", "then", "there", "these", "they", "this", "tis", "to", "too", "twas", "us", "wants", "was", "we", "were", "what", "when", "where", "which", "while", "who", "whom", "why", "will", "with", "would", "yet", "you", "your"]), t.Pipeline.registerFunction(t.stopWordFilter, "stopWordFilter"), t.trimmer = function(t) {
-                return t.replace(/^\W+/, "").replace(/\W+$/, "")
-            }, t.Pipeline.registerFunction(t.trimmer, "trimmer"), t.TokenStore = function() {
-                this.root = {
-                    docs: {}
-                }, this.length = 0
-            }, t.TokenStore.load = function(t) {
-                var e = new this;
-                return e.root = t.root, e.length = t.length, e
-            }, t.TokenStore.prototype.add = function(t, e, n) {
-                var n = n || this.root,
-                    o = t.charAt(0),
-                    i = t.slice(1);
-                return o in n || (n[o] = {
-                    docs: {}
-                }), 0 === i.length ? (n[o].docs[e.ref] = e, void(this.length += 1)) : this.add(i, e, n[o])
-            }, t.TokenStore.prototype.has = function(t) {
-                if (!t) return !1;
-                for (var e = this.root, n = 0; n < t.length; n++) {
-                    if (!e[t.charAt(n)]) return !1;
-                    e = e[t.charAt(n)]
-                }
-                return !0
-            }, t.TokenStore.prototype.getNode = function(t) {
-                if (!t) return {};
-                for (var e = this.root, n = 0; n < t.length; n++) {
-                    if (!e[t.charAt(n)]) return {};
-                    e = e[t.charAt(n)]
-                }
-                return e
-            }, t.TokenStore.prototype.get = function(t, e) {
-                return this.getNode(t, e).docs || {}
-            }, t.TokenStore.prototype.count = function(t, e) {
-                return Object.keys(this.get(t, e)).length
-            }, t.TokenStore.prototype.remove = function(t, e) {
-                if (t) {
-                    for (var n = this.root, o = 0; o < t.length; o++) {
-                        if (!(t.charAt(o) in n)) return;
-                        n = n[t.charAt(o)]
-                    }
-                    delete n.docs[e]
-                }
-            }, t.TokenStore.prototype.expand = function(t, e) {
-                var n = this.getNode(t),
-                    o = n.docs || {},
-                    e = e || [];
-                return Object.keys(o).length && e.push(t), Object.keys(n).forEach(function(n) {
-                    "docs" !== n && e.concat(this.expand(t + n, e))
-                }, this), e
-            }, t.TokenStore.prototype.toJSON = function() {
-                return {
-                    root: this.root,
-                    length: this.length
-                }
-            },
-            function(t, e) {
-                "function" == typeof define && define.amd ? define(e) : "object" == typeof exports ? module.exports = e() : t.lunr = e()
-            }(this, function() {
-                return t
-            })
-    }(), String.prototype.truncate = function(t) {
-        if (this.length > t) {
-            for (;
-                " " != this[t] && --t > 0;);
-            return this.substring(0, t) + "&hellip;"
-        }
-        return this
-    }, HTMLElement.prototype.wrap = function(t) {
-        t.length || (t = [t]);
-        for (var e = t.length - 1; e >= 0; e--) {
-            var n = e > 0 ? this.cloneNode(!0) : this,
-                o = t[e],
-                i = o.parentNode,
-                r = o.nextSibling;
-            n.appendChild(o), r ? i.insertBefore(n, r) : i.appendChild(n)
-        }
-    }, document.addEventListener("DOMContentLoaded", function() {
-        "use strict";
-        Modernizr.addTest("ios", function() {
-            return !!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)
-        }), Modernizr.addTest("standalone", function() {
-            return !!navigator.standalone
-        }), FastClick.attach(document.body);
-        var t = document.getElementById("toggle-search"),
-            e = (document.getElementById("reset-search"), document.querySelector(".drawer")),
-            n = document.querySelectorAll(".anchor"),
-            o = document.querySelector(".search .field"),
-            i = document.querySelector(".query"),
-            r = document.querySelector(".results .meta");
-        Array.prototype.forEach.call(n, function(t) {
-            t.querySelector("a").addEventListener("click", function() {
-                document.getElementById("toggle-drawer").checked = !1, document.body.classList.remove("toggle-drawer")
-            })
-        });
-        var s = window.pageYOffset,
-            a = function() {
-                var t = window.pageYOffset + window.innerHeight,
-                    n = Math.max(0, window.innerHeight - e.offsetHeight);
-                t > document.body.clientHeight - (96 - n) ? "absolute" != e.style.position && (e.style.position = "absolute", e.style.top = null, e.style.bottom = 0) : e.offsetHeight < window.innerHeight ? "fixed" != e.style.position && (e.style.position = "fixed", e.style.top = 0, e.style.bottom = null) : "fixed" != e.style.position ? t > e.offsetTop + e.offsetHeight ? (e.style.position = "fixed", e.style.top = null, e.style.bottom = "-96px") : window.pageYOffset < e.offsetTop && (e.style.position = "fixed", e.style.top = 0, e.style.bottom = null) : window.pageYOffset > s ? e.style.top && (e.style.position = "absolute", e.style.top = Math.max(0, s) + "px", e.style.bottom = null) : e.style.bottom && (e.style.position = "absolute", e.style.top = t - e.offsetHeight + "px", e.style.bottom = null), s = Math.max(0, window.pageYOffset)
-            },
-            c = function() {
-                var t = document.querySelector(".main");
-                window.removeEventListener("scroll", a), matchMedia("only screen and (max-width: 959px)").matches ? (e.style.position = null, e.style.top = null, e.style.bottom = null) : e.offsetHeight + 96 < t.offsetHeight && (window.addEventListener("scroll", a), a())
-            };
-        Modernizr.ios || (window.addEventListener("resize", c), c());
-        var l = function() {
-            pegasus(base_url + "/mkdocs/search_index.json").then(function(e, n) {
-                var o = lunr(function() {
-                        this.field("title", {
-                            boost: 10
-                        }), this.field("text"), this.ref("location")
-                    }),
-                    s = {};
-                e.docs.map(function(t) {
-                    t.location = base_url + t.location, s[t.location] = t, o.add(t)
-                }), i.addEventListener("keyup", function() {
-                    for (var e = document.querySelector(".results .list"); e.firstChild;) e.removeChild(e.firstChild);
-                    var n = document.querySelector(".bar.search");
-                    if (!i.value.length) {
-                        for (; r.firstChild;) r.removeChild(r.firstChild);
-                        return void n.classList.remove("non-empty")
-                    }
-                    n.classList.add("non-empty");
-                    var a = o.search(i.value);
-                    a.map(function(n) {
-                        var o = s[n.ref],
-                            i = document.createElement("article");
-                        i.classList.add("result");
-                        var r = document.createElement("h1");
-                        r.innerHTML = o.title, i.appendChild(r);
-                        var a = document.createElement("a");
-                        a.href = o.location, a.appendChild(i);
-                        var c = document.createElement("span");
-                        c.innerHTML = a.href.split("#")[0], i.appendChild(c);
-                        var l = a.href.split("#");
-                        l[0] == document.location.href.split("#")[0] && a.addEventListener("click", function(e) {
-                            if (document.body.classList.remove("toggle-search"), document.body.classList.remove("locked"), t.checked = !1, !matchMedia("only screen and (min-width: 960px)").matches && (e.preventDefault(), e.stopPropagation(), 1 != l.length)) {
-                                var n = document.getElementById(l[1]);
-                                n && setTimeout(function() {
-                                    n.scrollIntoView && n.scrollIntoView() || window.scrollTo(0, n.offsetTop)
-                                }, 100)
-                            }
-                        }), e.appendChild(a)
-                    });
-                    var c = document.createElement("strong");
-                    for (c.innerHTML = a.length + " search result" + (1 != a.length ? "s" : ""); r.firstChild;) r.removeChild(r.firstChild);
-                    r.appendChild(c)
-                })
-            }, function(t, e) {
-                console.error(t, e.status)
-            }), t.removeEventListener("click", l)
-        };
-        t.addEventListener("click", l);
-        var u = 0;
-        t.addEventListener("click", function(t) {
-            var e = document.body.classList,
-                n = !matchMedia("only screen and (min-width: 960px)").matches;
-            e.contains("locked") ? (e.remove("locked"), n && setTimeout(function() {
-                window.scrollTo(0, u)
-            }, 100)) : (u = window.scrollY, n && setTimeout(function() {
-                window.scrollTo(0, 0)
-            }, 400), setTimeout(function() {
-                this.checked && (n && e.add("locked"), setTimeout(function() {
-                    i.focus()
-                }, 200))
-            }.bind(this), 450))
-        }), o.addEventListener("touchstart", function() {
-            i.focus()
-        }), window.addEventListener("keyup", function(e) {
-            var n = e.keyCode || e.which;
-            27 == n && (i.blur(), document.body.classList.remove("toggle-search"), document.body.classList.remove("locked"), t.checked = !1)
-        });
-        var d = document.getElementById("reset-search");
-        d.addEventListener("click", function() {
-            for (var t = document.querySelector(".results .list"); t.firstChild;) t.removeChild(t.firstChild);
-            var e = document.querySelector(".bar.search");
-            e.classList.remove("non-empty"), r.innerHTML = "", i.value = "", i.focus()
-        });
-        var h = document.querySelectorAll("h2");
-        h = Array.prototype.map.call(h, function(t) {
-            return t.offsetTop
-        });
-        var f = null;
-        document.addEventListener("scroll", function() {
-            for (var t = window.scrollY + window.innerHeight / 3, e = h.length - 1, o = 0; e > o; o++) t < h[o + 1] && (e = o);
-            e != f && (f = e, Array.prototype.forEach.call(n, function(t, e) {
-                var n = t.querySelector("a");
-                (e != f || n.classList.add("current")) && n.classList.remove("current")
-            }))
-        });
-        var p = document.querySelectorAll(".n + .p");
-        Array.prototype.forEach.call(p, function(t) {
-            var e = t.innerText || t.textContent;
-            e && "(" == e[0] && t.previousSibling.classList.add("f")
-        });
-        var m = document.querySelectorAll("table");
-        if (Array.prototype.forEach.call(m, function(t) {
-                var e = document.createElement("div");
-                e.classList.add("data"), e.wrap(t)
-            }), Modernizr.ios) {
-            var v = document.querySelectorAll(".scrollable, .standalone .article");
-            Array.prototype.forEach.call(v, function(t) {
-                t.addEventListener("touchstart", function() {
-                    var t = this.scrollTop;
-                    0 == t ? this.scrollTop = 1 : t + this.offsetHeight == this.scrollHeight && (this.scrollTop = t - 1)
-                })
-            })
-        }
-        var g = document.querySelectorAll(".project, .overlay, .header");
-        Array.prototype.forEach.call(g, function(t) {
-            t.addEventListener("touchmove", function(t) {
-                t.preventDefault()
-            })
-        });
-        var y = document.querySelectorAll(".toggle");
-        Array.prototype.forEach.call(y, function(t) {
-            t.addEventListener("click", function() {
-                document.body.classList.toggle(this.id)
-            })
-        }), repo_id && pegasus("https://api.github.com/repos/" + repo_id).then(function(t, e) {
-            var n = t.stargazers_count;
-            n > 1e4 ? n = (n / 1e3).toFixed(0) + "k" : n > 1e3 && (n = (n / 1e3).toFixed(1) + "k");
-            var o = document.querySelector(".repo-stars .count");
-            o.innerHTML = n
-        }, function(t, e) {
-            console.error(t, e.status)
-        })
-    }), "standalone" in window.navigator && window.navigator.standalone) {
-    var node, remotes = !1;
-    document.addEventListener("click", function(t) {
-        for (node = t.target;
-            "A" !== node.nodeName && "HTML" !== node.nodeName;) node = node.parentNode;
-        "href" in node && -1 !== node.href.indexOf("http") && (-1 !== node.href.indexOf(document.location.host) || remotes) && (t.preventDefault(), document.location.href = node.href)
-    }, !1)
-}
+function pegasus(t,e){return e=new XMLHttpRequest,e.open("GET",t),t=[],e.onreadystatechange=e.then=function(n,o,i,r){if(n&&n.call&&(t=[,n,o]),4==e.readyState&&(i=t[0|e.status/200])){try{r=JSON.parse(e.responseText)}catch(s){r=null}i(r,e)}},e.send(),e}if("document"in self&&("classList"in document.createElement("_")?!function(){"use strict";var t=document.createElement("_");if(t.classList.add("c1","c2"),!t.classList.contains("c2")){var e=function(t){var e=DOMTokenList.prototype[t];DOMTokenList.prototype[t]=function(t){var n,o=arguments.length;for(n=0;o>n;n++)t=arguments[n],e.call(this,t)}};e("add"),e("remove")}if(t.classList.toggle("c3",!1),t.classList.contains("c3")){var n=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return 1 in arguments&&!this.contains(t)==!e?e:n.call(this,t)}}t=null}():!function(t){"use strict";if("Element"in t){var e="classList",n="prototype",o=t.Element[n],i=Object,r=String[n].trim||function(){return this.replace(/^\s+|\s+$/g,"")},s=Array[n].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},a=function(t,e){this.name=t,this.code=DOMException[t],this.message=e},c=function(t,e){if(""===e)throw new a("SYNTAX_ERR","An invalid or illegal string was specified");if(/\s/.test(e))throw new a("INVALID_CHARACTER_ERR","String contains an invalid character");return s.call(t,e)},l=function(t){for(var e=r.call(t.getAttribute("class")||""),n=e?e.split(/\s+/):[],o=0,i=n.length;i>o;o++)this.push(n[o]);this._updateClassName=function(){t.setAttribute("class",this.toString())}},u=l[n]=[],d=function(){return new l(this)};if(a[n]=Error[n],u.item=function(t){return this[t]||null},u.contains=function(t){return t+="",-1!==c(this,t)},u.add=function(){var t,e=arguments,n=0,o=e.length,i=!1;do t=e[n]+"",-1===c(this,t)&&(this.push(t),i=!0);while(++n<o);i&&this._updateClassName()},u.remove=function(){var t,e,n=arguments,o=0,i=n.length,r=!1;do for(t=n[o]+"",e=c(this,t);-1!==e;)this.splice(e,1),r=!0,e=c(this,t);while(++o<i);r&&this._updateClassName()},u.toggle=function(t,e){t+="";var n=this.contains(t),o=n?e!==!0&&"remove":e!==!1&&"add";return o&&this[o](t),e===!0||e===!1?e:!n},u.toString=function(){return this.join(" ")},i.defineProperty){var h={get:d,enumerable:!0,configurable:!0};try{i.defineProperty(o,e,h)}catch(f){-2146823252===f.number&&(h.enumerable=!1,i.defineProperty(o,e,h))}}else i[n].__defineGetter__&&o.__defineGetter__(e,d)}}(self)),function(){"use strict";function t(e,o){function i(t,e){return function(){return t.apply(e,arguments)}}var r;if(o=o||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=o.touchBoundary||10,this.layer=e,this.tapDelay=o.tapDelay||200,this.tapTimeout=o.tapTimeout||700,!t.notNeeded(e)){for(var s=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],a=this,c=0,l=s.length;l>c;c++)a[s[c]]=i(a[s[c]],a);n&&(e.addEventListener("mouseover",this.onMouse,!0),e.addEventListener("mousedown",this.onMouse,!0),e.addEventListener("mouseup",this.onMouse,!0)),e.addEventListener("click",this.onClick,!0),e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1),e.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(e.removeEventListener=function(t,n,o){var i=Node.prototype.removeEventListener;"click"===t?i.call(e,t,n.hijacked||n,o):i.call(e,t,n,o)},e.addEventListener=function(t,n,o){var i=Node.prototype.addEventListener;"click"===t?i.call(e,t,n.hijacked||(n.hijacked=function(t){t.propagationStopped||n(t)}),o):i.call(e,t,n,o)}),"function"==typeof e.onclick&&(r=e.onclick,e.addEventListener("click",function(t){r(t)},!1),e.onclick=null)}}var e=navigator.userAgent.indexOf("Windows Phone")>=0,n=navigator.userAgent.indexOf("Android")>0&&!e,o=/iP(ad|hone|od)/.test(navigator.userAgent)&&!e,i=o&&/OS 4_\d(_\d)?/.test(navigator.userAgent),r=o&&/OS [6-7]_\d/.test(navigator.userAgent),s=navigator.userAgent.indexOf("BB10")>0;t.prototype.needsClick=function(t){switch(t.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(t.disabled)return!0;break;case"input":if(o&&"file"===t.type||t.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(t.className)},t.prototype.needsFocus=function(t){switch(t.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!n;case"input":switch(t.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!t.disabled&&!t.readOnly;default:return/\bneedsfocus\b/.test(t.className)}},t.prototype.sendClick=function(t,e){var n,o;document.activeElement&&document.activeElement!==t&&document.activeElement.blur(),o=e.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(t),!0,!0,window,1,o.screenX,o.screenY,o.clientX,o.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,t.dispatchEvent(n)},t.prototype.determineEventType=function(t){return n&&"select"===t.tagName.toLowerCase()?"mousedown":"click"},t.prototype.focus=function(t){var e;o&&t.setSelectionRange&&0!==t.type.indexOf("date")&&"time"!==t.type&&"month"!==t.type?(e=t.value.length,t.setSelectionRange(e,e)):t.focus()},t.prototype.updateScrollParent=function(t){var e,n;if(e=t.fastClickScrollParent,!e||!e.contains(t)){n=t;do{if(n.scrollHeight>n.offsetHeight){e=n,t.fastClickScrollParent=n;break}n=n.parentElement}while(n)}e&&(e.fastClickLastScrollTop=e.scrollTop)},t.prototype.getTargetElementFromEventTarget=function(t){return t.nodeType===Node.TEXT_NODE?t.parentNode:t},t.prototype.onTouchStart=function(t){var e,n,r;if(t.targetTouches.length>1)return!0;if(e=this.getTargetElementFromEventTarget(t.target),n=t.targetTouches[0],o){if(r=window.getSelection(),r.rangeCount&&!r.isCollapsed)return!0;if(!i){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return t.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(e)}}return this.trackingClick=!0,this.trackingClickStart=t.timeStamp,this.targetElement=e,this.touchStartX=n.pageX,this.touchStartY=n.pageY,t.timeStamp-this.lastClickTime<this.tapDelay&&t.preventDefault(),!0},t.prototype.touchHasMoved=function(t){var e=t.changedTouches[0],n=this.touchBoundary;return Math.abs(e.pageX-this.touchStartX)>n||Math.abs(e.pageY-this.touchStartY)>n?!0:!1},t.prototype.onTouchMove=function(t){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(t.target)||this.touchHasMoved(t))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},t.prototype.findControl=function(t){return void 0!==t.control?t.control:t.htmlFor?document.getElementById(t.htmlFor):t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},t.prototype.onTouchEnd=function(t){var e,s,a,c,l,u=this.targetElement;if(!this.trackingClick)return!0;if(t.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(t.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=t.timeStamp,s=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,r&&(l=t.changedTouches[0],u=document.elementFromPoint(l.pageX-window.pageXOffset,l.pageY-window.pageYOffset)||u,u.fastClickScrollParent=this.targetElement.fastClickScrollParent),a=u.tagName.toLowerCase(),"label"===a){if(e=this.findControl(u)){if(this.focus(u),n)return!1;u=e}}else if(this.needsFocus(u))return t.timeStamp-s>100||o&&window.top!==window&&"input"===a?(this.targetElement=null,!1):(this.focus(u),this.sendClick(u,t),o&&"select"===a||(this.targetElement=null,t.preventDefault()),!1);return o&&!i&&(c=u.fastClickScrollParent,c&&c.fastClickLastScrollTop!==c.scrollTop)?!0:(this.needsClick(u)||(t.preventDefault(),this.sendClick(u,t)),!1)},t.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},t.prototype.onMouse=function(t){return this.targetElement?t.forwardedTouchEvent?!0:t.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(t.stopImmediatePropagation?t.stopImmediatePropagation():t.propagationStopped=!0,t.stopPropagation(),t.preventDefault(),!1):!0:!0},t.prototype.onClick=function(t){var e;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===t.target.type&&0===t.detail?!0:(e=this.onMouse(t),e||(this.targetElement=null),e)},t.prototype.destroy=function(){var t=this.layer;n&&(t.removeEventListener("mouseover",this.onMouse,!0),t.removeEventListener("mousedown",this.onMouse,!0),t.removeEventListener("mouseup",this.onMouse,!0)),t.removeEventListener("click",this.onClick,!0),t.removeEventListener("touchstart",this.onTouchStart,!1),t.removeEventListener("touchmove",this.onTouchMove,!1),t.removeEventListener("touchend",this.onTouchEnd,!1),t.removeEventListener("touchcancel",this.onTouchCancel,!1)},t.notNeeded=function(t){var e,o,i,r;if("undefined"==typeof window.ontouchstart)return!0;if(o=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!n)return!0;if(e=document.querySelector("meta[name=viewport]")){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(o>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(s&&(i=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),i[1]>=10&&i[2]>=3&&(e=document.querySelector("meta[name=viewport]")))){if(-1!==e.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===t.style.msTouchAction||"manipulation"===t.style.touchAction?!0:(r=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],r>=27&&(e=document.querySelector("meta[name=viewport]"),e&&(-1!==e.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))?!0:"none"===t.style.touchAction||"manipulation"===t.style.touchAction?!0:!1)},t.attach=function(e,n){return new t(e,n)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return t}):"undefined"!=typeof module&&module.exports?(module.exports=t.attach,module.exports.FastClick=t):window.FastClick=t}(),function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.6.0",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.utils.asString=function(t){return void 0===t||null===t?"":t.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(e){return arguments.length&&null!=e&&void 0!=e?Array.isArray(e)?e.map(function(e){return t.utils.asString(e).toLowerCase()}):e.toString().trim().toLowerCase().split(t.tokenizer.seperator):[]},t.tokenizer.seperator=/[\s\-]+/,t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var o=t.Pipeline.registeredFunctions[e];if(!o)throw new Error("Cannot load un-registered function: "+e);n.add(o)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var o=this._stack.indexOf(e);if(-1==o)throw new Error("Cannot find existingFn");o+=1,this._stack.splice(o,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var o=this._stack.indexOf(e);if(-1==o)throw new Error("Cannot find existingFn");this._stack.splice(o,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,o=this._stack.length,i=0;n>i;i++){for(var r=t[i],s=0;o>s&&(r=this._stack[s](r,i,t),void 0!==r&&""!==r);s++);void 0!==r&&""!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var o=this.list;if(!o)return this.list=new t.Vector.Node(e,n,o),this.length++;if(e<o.idx)return this.list=new t.Vector.Node(e,n,o),this.length++;for(var i=o,r=o.next;void 0!=r;){if(e<r.idx)return i.next=new t.Vector.Node(e,n,r),this.length++;i=r,r=r.next}return i.next=new t.Vector.Node(e,n,r),this.length++},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var t,e=this.list,n=0;e;)t=e.val,n+=t*t,e=e.next;return this._magnitude=Math.sqrt(n)},t.Vector.prototype.dot=function(t){for(var e=this.list,n=t.list,o=0;e&&n;)e.idx<n.idx?e=e.next:e.idx>n.idx?n=n.next:(o+=e.val*n.val,e=e.next,n=n.next);return o},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t<arguments.length;t++)e=arguments[t],~this.indexOf(e)||this.elements.splice(this.locationFor(e),0,e);this.length=this.elements.length},t.SortedSet.prototype.toArray=function(){return this.elements.slice()},t.SortedSet.prototype.map=function(t,e){return this.elements.map(t,e)},t.SortedSet.prototype.forEach=function(t,e){return this.elements.forEach(t,e)},t.SortedSet.prototype.indexOf=function(t){for(var e=0,n=this.elements.length,o=n-e,i=e+Math.floor(o/2),r=this.elements[i];o>1;){if(r===t)return i;t>r&&(e=i),r>t&&(n=i),o=n-e,i=e+Math.floor(o/2),r=this.elements[i]}return r===t?i:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,o=n-e,i=e+Math.floor(o/2),r=this.elements[i];o>1;)t>r&&(e=i),r>t&&(n=i),o=n-e,i=e+Math.floor(o/2),r=this.elements[i];return r>t?i:t>r?i+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,o=0,i=0,r=this.length,s=e.length,a=this.elements,c=e.elements;;){if(o>r-1||i>s-1)break;a[o]!==c[i]?a[o]<c[i]?o++:a[o]>c[i]&&i++:(n.add(a[o]),o++,i++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,o;return this.length>=t.length?(e=this,n=t):(e=t,n=this),o=e.clone(),o.add.apply(o,n.toArray()),o},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var o={},i=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));o[n.name]=r,t.SortedSet.prototype.add.apply(i,r)},this),this.documentStore.set(r,i),t.SortedSet.prototype.add.apply(this.corpusTokens,i.toArray());for(var s=0;s<i.length;s++){var a=i.elements[s],c=this._fields.reduce(function(t,e){var n=o[e.name].length;if(!n)return t;var i=o[e.name].filter(function(t){return t===a}).length;return t+i/n*e.boost},0);this.tokenStore.add(a,{ref:r,tf:c})}n&&this.eventEmitter.emit("add",e,this)},t.Index.prototype.remove=function(t,e){var n=t[this._ref],e=void 0===e?!0:e;if(this.documentStore.has(n)){var o=this.documentStore.get(n);this.documentStore.remove(n),o.forEach(function(t){this.tokenStore.remove(t,n)},this),e&&this.eventEmitter.emit("remove",t,this)}},t.Index.prototype.update=function(t,e){var e=void 0===e?!0:e;this.remove(t,!1),this.add(t,!1),e&&this.eventEmitter.emit("update",t,this)},t.Index.prototype.idf=function(t){var e="@"+t;if(Object.prototype.hasOwnProperty.call(this._idfCache,e))return this._idfCache[e];var n=this.tokenStore.count(t),o=1;return n>0&&(o=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=o},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),o=new t.Vector,i=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,c=this,l=this.tokenStore.expand(e).reduce(function(n,i){var r=c.corpusTokens.indexOf(i),s=c.idf(i),l=1,u=new t.SortedSet;if(i!==e){var d=Math.max(3,i.length-e.length);l=1/Math.log(d)}r>-1&&o.insert(r,a*s*l);for(var h=c.tokenStore.get(i),f=Object.keys(h),p=f.length,m=0;p>m;m++)u.add(h[f[m]].ref);return n.union(u)},new t.SortedSet);i.push(l)},this);var a=i.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:o.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),o=n.length,i=new t.Vector,r=0;o>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,c=this.idf(s);i.insert(this.corpusTokens.indexOf(s),a*c)}return i},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,o){return n[o]=t.SortedSet.load(e.store[o]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",o="[aeiouy]",i=n+"[^aeiouy]*",r=o+"[aeiou]*",s="^("+i+")?"+r+i,a="^("+i+")?"+r+i+"("+r+")?$",c="^("+i+")?"+r+i+r+i,l="^("+i+")?"+o,u=new RegExp(s),d=new RegExp(c),h=new RegExp(a),f=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,g=/^(.+?)(ed|ing)$/,y=/.$/,w=/(at|bl|iz)$/,S=new RegExp("([^aeiouylsz])\\1$"),k=new RegExp("^"+i+o+"[^aeiouwxy]$"),E=/^(.+?[^aeiou])y$/,x=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,b=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,T=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,C=/^(.+?)(s|t)(ion)$/,L=/^(.+?)e$/,_=/ll$/,A=new RegExp("^"+i+o+"[^aeiouwxy]$"),O=function(n){var o,i,r,s,a,c,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=g,s.test(n)){var O=s.exec(n);s=u,s.test(O[1])&&(s=y,n=n.replace(s,""))}else if(a.test(n)){var O=a.exec(n);o=O[1],a=f,a.test(o)&&(n=o,a=w,c=S,l=k,a.test(n)?n+="e":c.test(n)?(s=y,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=E,s.test(n)){var O=s.exec(n);o=O[1],n=o+"i"}if(s=x,s.test(n)){var O=s.exec(n);o=O[1],i=O[2],s=u,s.test(o)&&(n=o+t[i])}if(s=b,s.test(n)){var O=s.exec(n);o=O[1],i=O[2],s=u,s.test(o)&&(n=o+e[i])}if(s=T,a=C,s.test(n)){var O=s.exec(n);o=O[1],s=d,s.test(o)&&(n=o)}else if(a.test(n)){var O=a.exec(n);o=O[1]+O[2],a=d,a.test(o)&&(n=o)}if(s=L,s.test(n)){var O=s.exec(n);o=O[1],s=d,a=h,c=A,(s.test(o)||a.test(o)&&!c.test(o))&&(n=o)}return s=_,a=d,s.test(n)&&a.test(n)&&(s=y,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return O}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.generateStopWordFilter=function(t){var e=t.reduce(function(t,e){return t[e]=e,t},{});return function(t){return t&&e[t]!==t?t:void 0}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){return t.replace(/^\W+/,"").replace(/\W+$/,"")},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,o=t.charAt(0),i=t.slice(1);return o in n||(n[o]={docs:{}}),0===i.length?(n[o].docs[e.ref]=e,void(this.length+=1)):this.add(i,e,n[o])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n<t.length;n++){if(!e[t.charAt(n)])return!1;e=e[t.charAt(n)]}return!0},t.TokenStore.prototype.getNode=function(t){if(!t)return{};for(var e=this.root,n=0;n<t.length;n++){if(!e[t.charAt(n)])return{};e=e[t.charAt(n)]}return e},t.TokenStore.prototype.get=function(t,e){return this.getNode(t,e).docs||{}},t.TokenStore.prototype.count=function(t,e){return Object.keys(this.get(t,e)).length},t.TokenStore.prototype.remove=function(t,e){if(t){for(var n=this.root,o=0;o<t.length;o++){if(!(t.charAt(o)in n))return;n=n[t.charAt(o)]}delete n.docs[e]}},t.TokenStore.prototype.expand=function(t,e){var n=this.getNode(t),o=n.docs||{},e=e||[];return Object.keys(o).length&&e.push(t),Object.keys(n).forEach(function(n){"docs"!==n&&e.concat(this.expand(t+n,e))},this),e},t.TokenStore.prototype.toJSON=function(){return{root:this.root,length:this.length}},function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.lunr=e()}(this,function(){return t})}(),String.prototype.truncate=function(t){if(this.length>t){for(;" "!=this[t]&&--t>0;);return this.substring(0,t)+"&hellip;"}return this},HTMLElement.prototype.wrap=function(t){t.length||(t=[t]);for(var e=t.length-1;e>=0;e--){var n=e>0?this.cloneNode(!0):this,o=t[e],i=o.parentNode,r=o.nextSibling;n.appendChild(o),r?i.insertBefore(n,r):i.appendChild(n)}},document.addEventListener("DOMContentLoaded",function(){"use strict";Modernizr.addTest("ios",function(){return!!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)}),Modernizr.addTest("standalone",function(){return!!navigator.standalone}),FastClick.attach(document.body);var t=document.getElementById("toggle-search"),e=(document.getElementById("reset-search"),document.querySelector(".drawer")),n=document.querySelectorAll(".anchor"),o=document.querySelector(".search .field"),i=document.querySelector(".query"),r=document.querySelector(".results .meta");Array.prototype.forEach.call(n,function(t){t.querySelector("a").addEventListener("click",function(){document.getElementById("toggle-drawer").checked=!1,document.body.classList.remove("toggle-drawer")})});var s=window.pageYOffset,a=function(){var t=window.pageYOffset+window.innerHeight,n=Math.max(0,window.innerHeight-e.offsetHeight);t>document.body.clientHeight-(96-n)?"absolute"!=e.style.position&&(e.style.position="absolute",e.style.top=null,e.style.bottom=0):e.offsetHeight<window.innerHeight?"fixed"!=e.style.position&&(e.style.position="fixed",e.style.top=0,e.style.bottom=null):"fixed"!=e.style.position?t>e.offsetTop+e.offsetHeight?(e.style.position="fixed",e.style.top=null,e.style.bottom="-96px"):window.pageYOffset<e.offsetTop&&(e.style.position="fixed",e.style.top=0,e.style.bottom=null):window.pageYOffset>s?e.style.top&&(e.style.position="absolute",e.style.top=Math.max(0,s)+"px",e.style.bottom=null):e.style.bottom&&(e.style.position="absolute",e.style.top=t-e.offsetHeight+"px",e.style.bottom=null),s=Math.max(0,window.pageYOffset)},c=function(){var t=document.querySelector(".main");window.removeEventListener("scroll",a),matchMedia("only screen and (max-width: 959px)").matches?(e.style.position=null,e.style.top=null,e.style.bottom=null):e.offsetHeight+96<t.offsetHeight&&(window.addEventListener("scroll",a),a())};Modernizr.ios||(window.addEventListener("resize",c),c());var l=function(){pegasus(base_url+"/mkdocs/search_index.json").then(function(e,n){var o=lunr(function(){this.field("title",{boost:10}),this.field("text"),this.ref("location")}),s={};e.docs.map(function(t){t.location=base_url+t.location,s[t.location]=t,o.add(t)}),i.addEventListener("keyup",function(){for(var e=document.querySelector(".results .list");e.firstChild;)e.removeChild(e.firstChild);var n=document.querySelector(".bar.search");if(!i.value.length){for(;r.firstChild;)r.removeChild(r.firstChild);return void n.classList.remove("non-empty")}n.classList.add("non-empty");var a=o.search(i.value);a.map(function(n){var o=s[n.ref],i=document.createElement("article");i.classList.add("result");var r=document.createElement("h1");r.innerHTML=o.title,i.appendChild(r);var a=document.createElement("a");a.href=o.location,a.appendChild(i);var c=document.createElement("span");c.innerHTML=a.href.split("#")[0],i.appendChild(c);var l=a.href.split("#");l[0]==document.location.href.split("#")[0]&&a.addEventListener("click",function(e){if(document.body.classList.remove("toggle-search"),document.body.classList.remove("locked"),t.checked=!1,!matchMedia("only screen and (min-width: 960px)").matches&&(e.preventDefault(),e.stopPropagation(),1!=l.length)){var n=document.getElementById(l[1]);n&&setTimeout(function(){n.scrollIntoView&&n.scrollIntoView()||window.scrollTo(0,n.offsetTop)},100)}}),e.appendChild(a)});var c=document.createElement("strong");for(c.innerHTML=a.length+" search result"+(1!=a.length?"s":"");r.firstChild;)r.removeChild(r.firstChild);r.appendChild(c)})},function(t,e){console.error(t,e.status)}),t.removeEventListener("click",l)};t.addEventListener("click",l);var u=0;t.addEventListener("click",function(t){var e=document.body.classList,n=!matchMedia("only screen and (min-width: 960px)").matches;e.contains("locked")?(e.remove("locked"),n&&setTimeout(function(){window.scrollTo(0,u)},100)):(u=window.scrollY,n&&setTimeout(function(){window.scrollTo(0,0)},400),setTimeout(function(){this.checked&&(n&&e.add("locked"),setTimeout(function(){i.focus()},200))}.bind(this),450))}),o.addEventListener("touchstart",function(){i.focus()}),window.addEventListener("keyup",function(e){var n=e.keyCode||e.which;27==n&&(i.blur(),document.body.classList.remove("toggle-search"),document.body.classList.remove("locked"),t.checked=!1)});var d=document.getElementById("reset-search");d.addEventListener("click",function(){for(var t=document.querySelector(".results .list");t.firstChild;)t.removeChild(t.firstChild);var e=document.querySelector(".bar.search");e.classList.remove("non-empty"),r.innerHTML="",i.value="",i.focus()});var h=document.querySelectorAll("h2");h=Array.prototype.map.call(h,function(t){return t.offsetTop});var f=null;document.addEventListener("scroll",function(){for(var t=window.scrollY+window.innerHeight/3,e=h.length-1,o=0;e>o;o++)t<h[o+1]&&(e=o);e!=f&&(f=e,Array.prototype.forEach.call(n,function(t,e){var n=t.querySelector("a");(e!=f||n.classList.add("current"))&&n.classList.remove("current")}))});var p=document.querySelectorAll(".n + .p");Array.prototype.forEach.call(p,function(t){var e=t.innerText||t.textContent;e&&"("==e[0]&&t.previousSibling.classList.add("f")});var m=document.querySelectorAll("table");if(Array.prototype.forEach.call(m,function(t){var e=document.createElement("div");e.classList.add("data"),e.wrap(t)}),Modernizr.ios){var v=document.querySelectorAll(".scrollable, .standalone .article");Array.prototype.forEach.call(v,function(t){t.addEventListener("touchstart",function(){var t=this.scrollTop;0==t?this.scrollTop=1:t+this.offsetHeight==this.scrollHeight&&(this.scrollTop=t-1)})})}var g=document.querySelectorAll(".project, .overlay, .header");Array.prototype.forEach.call(g,function(t){t.addEventListener("touchmove",function(t){t.preventDefault()})});var y=document.querySelectorAll(".toggle");Array.prototype.forEach.call(y,function(t){t.addEventListener("click",function(){document.body.classList.toggle(this.id)})}),repo_id&&pegasus("https://api.github.com/repos/"+repo_id).then(function(t,e){var n=t.stargazers_count;n>1e4?n=(n/1e3).toFixed(0)+"k":n>1e3&&(n=(n/1e3).toFixed(1)+"k");var o=document.querySelector(".repo-stars .count");o.innerHTML=n},function(t,e){console.error(t,e.status)})}),"standalone"in window.navigator&&window.navigator.standalone){var node,remotes=!1;document.addEventListener("click",function(t){for(node=t.target;"A"!==node.nodeName&&"HTML"!==node.nodeName;)node=node.parentNode;"href"in node&&-1!==node.href.indexOf("http")&&(-1!==node.href.indexOf(document.location.host)||remotes)&&(t.preventDefault(),document.location.href=node.href)},!1)}
\ No newline at end of file
diff --git a/it4i_theme/assets/javascripts/modernizr-4ab42b99fd.js b/it4i_theme/assets/javascripts/modernizr-4ab42b99fd.js
new file mode 100644
index 0000000000000000000000000000000000000000..e82c90988584779ec7a01eac66ea33341c682a51
--- /dev/null
+++ b/it4i_theme/assets/javascripts/modernizr-4ab42b99fd.js
@@ -0,0 +1 @@
+!function(e,t,n){function r(e,t){return typeof e===t}function i(){var e,t,n,i,o,a,s;for(var l in x)if(x.hasOwnProperty(l)){if(e=[],t=x[l],t.name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;n<t.options.aliases.length;n++)e.push(t.options.aliases[n].toLowerCase());for(i=r(t.fn,"function")?t.fn():t.fn,o=0;o<e.length;o++)a=e[o],s=a.split("."),1===s.length?S[s[0]]=i:(!S[s[0]]||S[s[0]]instanceof Boolean||(S[s[0]]=new Boolean(S[s[0]])),S[s[0]][s[1]]=i),w.push((i?"":"no-")+s.join("-"))}}function o(e){var t=C.className,n=S._config.classPrefix||"";if(T&&(t=t.baseVal),S._config.enableJSClass){var r=new RegExp("(^|\\s)"+n+"no-js(\\s|$)");t=t.replace(r,"$1"+n+"js$2")}S._config.enableClasses&&(t+=" "+n+e.join(" "+n),T?C.className.baseVal=t:C.className=t)}function a(e,t){if("object"==typeof e)for(var n in e)b(e,n)&&a(n,e[n]);else{e=e.toLowerCase();var r=e.split("."),i=S[r[0]];if(2==r.length&&(i=i[r[1]]),"undefined"!=typeof i)return S;t="function"==typeof t?t():t,1==r.length?S[r[0]]=t:(!S[r[0]]||S[r[0]]instanceof Boolean||(S[r[0]]=new Boolean(S[r[0]])),S[r[0]][r[1]]=t),o([(t&&0!=t?"":"no-")+r.join("-")]),S._trigger(e,t)}return S}function s(e,t){return function(){return e.apply(t,arguments)}}function l(e,t){return!!~(""+e).indexOf(t)}function u(){return"function"!=typeof t.createElement?t.createElement(arguments[0]):T?t.createElementNS.call(t,"http://www.w3.org/2000/svg",arguments[0]):t.createElement.apply(t,arguments)}function c(){var e=t.body;return e||(e=u(T?"svg":"body"),e.fake=!0),e}function f(e,n,r,i){var o,a,s,l,f="modernizr",d=u("div"),p=c();if(parseInt(r,10))for(;r--;)s=u("div"),s.id=i?i[r]:f+(r+1),d.appendChild(s);return o=u("style"),o.type="text/css",o.id="s"+f,(p.fake?p:d).appendChild(o),p.appendChild(d),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(t.createTextNode(e)),d.id=f,p.fake&&(p.style.background="",p.style.overflow="hidden",l=C.style.overflow,C.style.overflow="hidden",C.appendChild(p)),a=n(d,e),p.fake?(p.parentNode.removeChild(p),C.style.overflow=l,C.offsetHeight):d.parentNode.removeChild(d),!!a}function d(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function p(t,r){var i=t.length;if("CSS"in e&&"supports"in e.CSS){for(;i--;)if(e.CSS.supports(d(t[i]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var o=[];i--;)o.push("("+d(t[i])+":"+r+")");return o=o.join(" or "),f("@supports ("+o+") { #modernizr { position: absolute; } }",function(e){return"absolute"==getComputedStyle(e,null).position})}return n}function m(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function h(e,t,i,o){function a(){c&&(delete _.style,delete _.modElem)}if(o=r(o,"undefined")?!1:o,!r(i,"undefined")){var s=p(e,i);if(!r(s,"undefined"))return s}for(var c,f,d,h,g,v=["modernizr","tspan"];!_.style;)c=!0,_.modElem=u(v.shift()),_.style=_.modElem.style;for(d=e.length,f=0;d>f;f++)if(h=e[f],g=_.style[h],l(h,"-")&&(h=m(h)),_.style[h]!==n){if(o||r(i,"undefined"))return a(),"pfx"==t?h:!0;try{_.style[h]=i}catch(y){}if(_.style[h]!=g)return a(),"pfx"==t?h:!0}return a(),!1}function g(e,t,n){var i;for(var o in e)if(e[o]in t)return n===!1?e[o]:(i=t[e[o]],r(i,"function")?s(i,n||t):i);return!1}function v(e,t,n,i,o){var a=e.charAt(0).toUpperCase()+e.slice(1),s=(e+" "+P.join(a+" ")+a).split(" ");return r(t,"string")||r(t,"undefined")?h(s,t,i,o):(s=(e+" "+A.join(a+" ")+a).split(" "),g(s,t,n))}function y(e,t,r){return v(e,n,n,t,r)}var x=[],E={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){x.push({name:e,fn:t,options:n})},addAsyncTest:function(e){x.push({name:null,fn:e})}},S=function(){};S.prototype=E,S=new S;var b,w=[],C=t.documentElement,T="svg"===C.nodeName.toLowerCase();!function(){var e={}.hasOwnProperty;b=r(e,"undefined")||r(e.call,"undefined")?function(e,t){return t in e&&r(e.constructor.prototype[t],"undefined")}:function(t,n){return e.call(t,n)}}(),E._l={},E.on=function(e,t){this._l[e]||(this._l[e]=[]),this._l[e].push(t),S.hasOwnProperty(e)&&setTimeout(function(){S._trigger(e,S[e])},0)},E._trigger=function(e,t){if(this._l[e]){var n=this._l[e];setTimeout(function(){var e,r;for(e=0;e<n.length;e++)(r=n[e])(t)},0),delete this._l[e]}},S._q.push(function(){E.addTest=a});T||!function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=C.elements;return"string"==typeof e?e.split(" "):e}function i(e,t){var n=C.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof e&&(e=e.join(" ")),C.elements=n+" "+e,u(t)}function o(e){var t=w[e[S]];return t||(t={},b++,e[S]=b,w[b]=t),t}function a(e,n,r){if(n||(n=t),g)return n.createElement(e);r||(r=o(n));var i;return i=r.cache[e]?r.cache[e].cloneNode():E.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!i.canHaveChildren||x.test(e)||i.tagUrn?i:r.frag.appendChild(i)}function s(e,n){if(e||(e=t),g)return e.createDocumentFragment();n=n||o(e);for(var i=n.frag.cloneNode(),a=0,s=r(),l=s.length;l>a;a++)i.createElement(s[a]);return i}function l(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return C.shivMethods?a(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-:]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(C,t.frag)}function u(e){e||(e=t);var r=o(e);return!C.shivCSS||h||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),g||l(e,r),e}function c(e){for(var t,n=e.getElementsByTagName("*"),i=n.length,o=RegExp("^(?:"+r().join("|")+")$","i"),a=[];i--;)t=n[i],o.test(t.nodeName)&&a.push(t.applyElement(f(t)));return a}function f(e){for(var t,n=e.attributes,r=n.length,i=e.ownerDocument.createElement(N+":"+e.nodeName);r--;)t=n[r],t.specified&&i.setAttribute(t.nodeName,t.nodeValue);return i.style.cssText=e.style.cssText,i}function d(e){for(var t,n=e.split("{"),i=n.length,o=RegExp("(^|[\\s,>+~])("+r().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),a="$1"+N+"\\:$2";i--;)t=n[i]=n[i].split("}"),t[t.length-1]=t[t.length-1].replace(o,a),n[i]=t.join("}");return n.join("{")}function p(e){for(var t=e.length;t--;)e[t].removeNode()}function m(e){function t(){clearTimeout(a._removeSheetTimer),r&&r.removeNode(!0),r=null}var r,i,a=o(e),s=e.namespaces,l=e.parentWindow;return!_||e.printShived?e:("undefined"==typeof s[N]&&s.add(N),l.attachEvent("onbeforeprint",function(){t();for(var o,a,s,l=e.styleSheets,u=[],f=l.length,p=Array(f);f--;)p[f]=l[f];for(;s=p.pop();)if(!s.disabled&&T.test(s.media)){try{o=s.imports,a=o.length}catch(m){a=0}for(f=0;a>f;f++)p.push(o[f]);try{u.push(s.cssText)}catch(m){}}u=d(u.reverse().join("")),i=c(e),r=n(e,u)}),l.attachEvent("onafterprint",function(){p(i),clearTimeout(a._removeSheetTimer),a._removeSheetTimer=setTimeout(t,500)}),e.printShived=!0,e)}var h,g,v="3.7.3",y=e.html5||{},x=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,E=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,S="_html5shiv",b=0,w={};!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",h="hidden"in e,g=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){h=!0,g=!0}}();var C={elements:y.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:v,shivCSS:y.shivCSS!==!1,supportsUnknownElements:g,shivMethods:y.shivMethods!==!1,type:"default",shivDocument:u,createElement:a,createDocumentFragment:s,addElements:i};e.html5=C,u(t);var T=/^$|\b(?:all|print)\b/,N="html5shiv",_=!g&&function(){var n=t.documentElement;return!("undefined"==typeof t.namespaces||"undefined"==typeof t.parentWindow||"undefined"==typeof n.applyElement||"undefined"==typeof n.removeNode||"undefined"==typeof e.attachEvent)}();C.type+=" print",C.shivPrint=m,m(t),"object"==typeof module&&module.exports&&(module.exports=C)}("undefined"!=typeof e?e:this,t);var N={elem:u("modernizr")};S._q.push(function(){delete N.elem});var _={style:N.elem.style};S._q.unshift(function(){delete _.style});var z=(E.testProp=function(e,t,r){return h([e],n,t,r)},function(){function e(e,t){var i;return e?(t&&"string"!=typeof t||(t=u(t||"div")),e="on"+e,i=e in t,!i&&r&&(t.setAttribute||(t=u("div")),t.setAttribute(e,""),i="function"==typeof t[e],t[e]!==n&&(t[e]=n),t.removeAttribute(e)),i):!1}var r=!("onblur"in t.documentElement);return e}());E.hasEvent=z,S.addTest("inputsearchevent",z("search"));var k=E.testStyles=f,$=function(){var e=navigator.userAgent,t=e.match(/applewebkit\/([0-9]+)/gi)&&parseFloat(RegExp.$1),n=e.match(/w(eb)?osbrowser/gi),r=e.match(/windows phone/gi)&&e.match(/iemobile\/([0-9])+/gi)&&parseFloat(RegExp.$1)>=9,i=533>t&&e.match(/android/gi);return n||i||r}();$?S.addTest("fontface",!1):k('@font-face {font-family:"font";src:url("https://")}',function(e,n){var r=t.getElementById("smodernizr"),i=r.sheet||r.styleSheet,o=i?i.cssRules&&i.cssRules[0]?i.cssRules[0].cssText:i.cssText||"":"",a=/src/i.test(o)&&0===o.indexOf(n.split(" ")[0]);S.addTest("fontface",a)});var j="Moz O ms Webkit",P=E._config.usePrefixes?j.split(" "):[];E._cssomPrefixes=P;var A=E._config.usePrefixes?j.toLowerCase().split(" "):[];E._domPrefixes=A,E.testAllProps=v,E.testAllProps=y;var R="CSS"in e&&"supports"in e.CSS,F="supportsCSS"in e;S.addTest("supports",R||F),S.addTest("csstransforms3d",function(){var e=!!y("perspective","1px",!0),t=S._config.usePrefixes;if(e&&(!t||"webkitPerspective"in C.style)){var n,r="#modernizr{width:0;height:0}";S.supports?n="@supports (perspective: 1px)":(n="@media (transform-3d)",t&&(n+=",(-webkit-transform-3d)")),n+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}",k(r+n,function(t){e=7===t.offsetWidth&&18===t.offsetHeight})}return e}),S.addTest("json","JSON"in e&&"parse"in JSON&&"stringify"in JSON),S.addTest("checked",function(){return k("#modernizr {position:absolute} #modernizr input {margin-left:10px} #modernizr :checked {margin-left:20px;display:block}",function(e){var t=u("input");return t.setAttribute("type","checkbox"),t.setAttribute("checked","checked"),e.appendChild(t),20===t.offsetLeft})}),S.addTest("target",function(){var t=e.document;if(!("querySelectorAll"in t))return!1;try{return t.querySelectorAll(":target"),!0}catch(n){return!1}}),S.addTest("contains",r(String.prototype.contains,"function")),i(),o(w),delete E.addTest,delete E.addAsyncTest;for(var M=0;M<S._q.length;M++)S._q[M]();e.Modernizr=S}(window,document),function(e){"use strict";e.matchMedia=e.matchMedia||function(e,t){var n,r=e.documentElement,i=r.firstElementChild||r.firstChild,o=e.createElement("body"),a=e.createElement("div");return a.id="mq-test-1",a.style.cssText="position:absolute;top:-100em",o.style.background="none",o.appendChild(a),function(e){return a.innerHTML='&shy;<style media="'+e+'"> #mq-test-1 { width: 42px; }</style>',r.insertBefore(o,i),n=42===a.offsetWidth,r.removeChild(o),{matches:n,media:e}}}(e.document)}(this),function(e){"use strict";function t(){E(!0)}var n={};e.respond=n,n.update=function(){};var r=[],i=function(){var t=!1;try{t=new e.XMLHttpRequest}catch(n){t=new e.ActiveXObject("Microsoft.XMLHTTP")}return function(){return t}}(),o=function(e,t){var n=i();n&&(n.open("GET",e,!0),n.onreadystatechange=function(){4!==n.readyState||200!==n.status&&304!==n.status||t(n.responseText)},4!==n.readyState&&n.send(null))};if(n.ajax=o,n.queue=r,n.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},n.mediaQueriesSupported=e.matchMedia&&null!==e.matchMedia("only all")&&e.matchMedia("only all").matches,!n.mediaQueriesSupported){var a,s,l,u=e.document,c=u.documentElement,f=[],d=[],p=[],m={},h=30,g=u.getElementsByTagName("head")[0]||c,v=u.getElementsByTagName("base")[0],y=g.getElementsByTagName("link"),x=function(){var e,t=u.createElement("div"),n=u.body,r=c.style.fontSize,i=n&&n.style.fontSize,o=!1;return t.style.cssText="position:absolute;font-size:1em;width:1em",n||(n=o=u.createElement("body"),n.style.background="none"),c.style.fontSize="100%",n.style.fontSize="100%",n.appendChild(t),o&&c.insertBefore(n,c.firstChild),e=t.offsetWidth,o?c.removeChild(n):n.removeChild(t),c.style.fontSize=r,i&&(n.style.fontSize=i),e=l=parseFloat(e)},E=function(t){var n="clientWidth",r=c[n],i="CSS1Compat"===u.compatMode&&r||u.body[n]||r,o={},m=y[y.length-1],v=(new Date).getTime();if(t&&a&&h>v-a)return e.clearTimeout(s),void(s=e.setTimeout(E,h));a=v;for(var S in f)if(f.hasOwnProperty(S)){var b=f[S],w=b.minw,C=b.maxw,T=null===w,N=null===C,_="em";w&&(w=parseFloat(w)*(w.indexOf(_)>-1?l||x():1)),C&&(C=parseFloat(C)*(C.indexOf(_)>-1?l||x():1)),b.hasquery&&(T&&N||!(T||i>=w)||!(N||C>=i))||(o[b.media]||(o[b.media]=[]),o[b.media].push(d[b.rules]))}for(var z in p)p.hasOwnProperty(z)&&p[z]&&p[z].parentNode===g&&g.removeChild(p[z]);p.length=0;for(var k in o)if(o.hasOwnProperty(k)){var $=u.createElement("style"),j=o[k].join("\n");$.type="text/css",$.media=k,g.insertBefore($,m.nextSibling),$.styleSheet?$.styleSheet.cssText=j:$.appendChild(u.createTextNode(j)),p.push($)}},S=function(e,t,r){var i=e.replace(n.regex.keyframes,"").match(n.regex.media),o=i&&i.length||0;t=t.substring(0,t.lastIndexOf("/"));var a=function(e){return e.replace(n.regex.urls,"$1"+t+"$2$3")},s=!o&&r;t.length&&(t+="/"),s&&(o=1);for(var l=0;o>l;l++){var u,c,p,m;s?(u=r,d.push(a(e))):(u=i[l].match(n.regex.findStyles)&&RegExp.$1,d.push(RegExp.$2&&a(RegExp.$2))),p=u.split(","),m=p.length;for(var h=0;m>h;h++)c=p[h],f.push({media:c.split("(")[0].match(n.regex.only)&&RegExp.$2||"all",rules:d.length-1,hasquery:c.indexOf("(")>-1,minw:c.match(n.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:c.match(n.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}E()},b=function(){if(r.length){var t=r.shift();o(t.href,function(n){S(n,t.href,t.media),m[t.href]=!0,e.setTimeout(function(){b()},0)})}},w=function(){for(var t=0;t<y.length;t++){var n=y[t],i=n.href,o=n.media,a=n.rel&&"stylesheet"===n.rel.toLowerCase();i&&a&&!m[i]&&(n.styleSheet&&n.styleSheet.rawCssText?(S(n.styleSheet.rawCssText,i,o),m[i]=!0):(!/^([a-zA-Z:]*\/\/)/.test(i)&&!v||i.replace(RegExp.$1,"").split("/")[0]===e.location.host)&&("//"===i.substring(0,2)&&(i=e.location.protocol+i),r.push({href:i,media:o})))}b()};w(),n.update=w,n.getEmValue=x,e.addEventListener?e.addEventListener("resize",t,!1):e.attachEvent&&e.attachEvent("onresize",t)}}(this);
\ No newline at end of file
diff --git a/it4i_theme/assets/javascripts/modernizr.js b/it4i_theme/assets/javascripts/modernizr.js
index 6b5fe786cc34155f1596f5c31f2d6e1826c4cc6c..e82c90988584779ec7a01eac66ea33341c682a51 100644
--- a/it4i_theme/assets/javascripts/modernizr.js
+++ b/it4i_theme/assets/javascripts/modernizr.js
@@ -1,541 +1 @@
-! function(e, t, n) {
-    function r(e, t) {
-        return typeof e === t
-    }
-
-    function i() {
-        var e, t, n, i, o, a, s;
-        for (var l in x)
-            if (x.hasOwnProperty(l)) {
-                if (e = [], t = x[l], t.name && (e.push(t.name.toLowerCase()), t.options && t.options.aliases && t.options.aliases.length))
-                    for (n = 0; n < t.options.aliases.length; n++) e.push(t.options.aliases[n].toLowerCase());
-                for (i = r(t.fn, "function") ? t.fn() : t.fn, o = 0; o < e.length; o++) a = e[o], s = a.split("."), 1 === s.length ? S[s[0]] = i : (!S[s[0]] || S[s[0]] instanceof Boolean || (S[s[0]] = new Boolean(S[s[0]])), S[s[0]][s[1]] = i), w.push((i ? "" : "no-") + s.join("-"))
-            }
-    }
-
-    function o(e) {
-        var t = C.className,
-            n = S._config.classPrefix || "";
-        if (T && (t = t.baseVal), S._config.enableJSClass) {
-            var r = new RegExp("(^|\\s)" + n + "no-js(\\s|$)");
-            t = t.replace(r, "$1" + n + "js$2")
-        }
-        S._config.enableClasses && (t += " " + n + e.join(" " + n), T ? C.className.baseVal = t : C.className = t)
-    }
-
-    function a(e, t) {
-        if ("object" == typeof e)
-            for (var n in e) b(e, n) && a(n, e[n]);
-        else {
-            e = e.toLowerCase();
-            var r = e.split("."),
-                i = S[r[0]];
-            if (2 == r.length && (i = i[r[1]]), "undefined" != typeof i) return S;
-            t = "function" == typeof t ? t() : t, 1 == r.length ? S[r[0]] = t : (!S[r[0]] || S[r[0]] instanceof Boolean || (S[r[0]] = new Boolean(S[r[0]])), S[r[0]][r[1]] = t), o([(t && 0 != t ? "" : "no-") + r.join("-")]), S._trigger(e, t)
-        }
-        return S
-    }
-
-    function s(e, t) {
-        return function() {
-            return e.apply(t, arguments)
-        }
-    }
-
-    function l(e, t) {
-        return !!~("" + e).indexOf(t)
-    }
-
-    function u() {
-        return "function" != typeof t.createElement ? t.createElement(arguments[0]) : T ? t.createElementNS.call(t, "http://www.w3.org/2000/svg", arguments[0]) : t.createElement.apply(t, arguments)
-    }
-
-    function c() {
-        var e = t.body;
-        return e || (e = u(T ? "svg" : "body"), e.fake = !0), e
-    }
-
-    function f(e, n, r, i) {
-        var o, a, s, l, f = "modernizr",
-            d = u("div"),
-            p = c();
-        if (parseInt(r, 10))
-            for (; r--;) s = u("div"), s.id = i ? i[r] : f + (r + 1), d.appendChild(s);
-        return o = u("style"), o.type = "text/css", o.id = "s" + f, (p.fake ? p : d).appendChild(o), p.appendChild(d), o.styleSheet ? o.styleSheet.cssText = e : o.appendChild(t.createTextNode(e)), d.id = f, p.fake && (p.style.background = "", p.style.overflow = "hidden", l = C.style.overflow, C.style.overflow = "hidden", C.appendChild(p)), a = n(d, e), p.fake ? (p.parentNode.removeChild(p), C.style.overflow = l, C.offsetHeight) : d.parentNode.removeChild(d), !!a
-    }
-
-    function d(e) {
-        return e.replace(/([A-Z])/g, function(e, t) {
-            return "-" + t.toLowerCase()
-        }).replace(/^ms-/, "-ms-")
-    }
-
-    function p(t, r) {
-        var i = t.length;
-        if ("CSS" in e && "supports" in e.CSS) {
-            for (; i--;)
-                if (e.CSS.supports(d(t[i]), r)) return !0;
-            return !1
-        }
-        if ("CSSSupportsRule" in e) {
-            for (var o = []; i--;) o.push("(" + d(t[i]) + ":" + r + ")");
-            return o = o.join(" or "), f("@supports (" + o + ") { #modernizr { position: absolute; } }", function(e) {
-                return "absolute" == getComputedStyle(e, null).position
-            })
-        }
-        return n
-    }
-
-    function m(e) {
-        return e.replace(/([a-z])-([a-z])/g, function(e, t, n) {
-            return t + n.toUpperCase()
-        }).replace(/^-/, "")
-    }
-
-    function h(e, t, i, o) {
-        function a() {
-            c && (delete _.style, delete _.modElem)
-        }
-        if (o = r(o, "undefined") ? !1 : o, !r(i, "undefined")) {
-            var s = p(e, i);
-            if (!r(s, "undefined")) return s
-        }
-        for (var c, f, d, h, g, v = ["modernizr", "tspan"]; !_.style;) c = !0, _.modElem = u(v.shift()), _.style = _.modElem.style;
-        for (d = e.length, f = 0; d > f; f++)
-            if (h = e[f], g = _.style[h], l(h, "-") && (h = m(h)), _.style[h] !== n) {
-                if (o || r(i, "undefined")) return a(), "pfx" == t ? h : !0;
-                try {
-                    _.style[h] = i
-                } catch (y) {}
-                if (_.style[h] != g) return a(), "pfx" == t ? h : !0
-            }
-        return a(), !1
-    }
-
-    function g(e, t, n) {
-        var i;
-        for (var o in e)
-            if (e[o] in t) return n === !1 ? e[o] : (i = t[e[o]], r(i, "function") ? s(i, n || t) : i);
-        return !1
-    }
-
-    function v(e, t, n, i, o) {
-        var a = e.charAt(0).toUpperCase() + e.slice(1),
-            s = (e + " " + P.join(a + " ") + a).split(" ");
-        return r(t, "string") || r(t, "undefined") ? h(s, t, i, o) : (s = (e + " " + A.join(a + " ") + a).split(" "), g(s, t, n))
-    }
-
-    function y(e, t, r) {
-        return v(e, n, n, t, r)
-    }
-    var x = [],
-        E = {
-            _version: "3.3.1",
-            _config: {
-                classPrefix: "",
-                enableClasses: !0,
-                enableJSClass: !0,
-                usePrefixes: !0
-            },
-            _q: [],
-            on: function(e, t) {
-                var n = this;
-                setTimeout(function() {
-                    t(n[e])
-                }, 0)
-            },
-            addTest: function(e, t, n) {
-                x.push({
-                    name: e,
-                    fn: t,
-                    options: n
-                })
-            },
-            addAsyncTest: function(e) {
-                x.push({
-                    name: null,
-                    fn: e
-                })
-            }
-        },
-        S = function() {};
-    S.prototype = E, S = new S;
-    var b, w = [],
-        C = t.documentElement,
-        T = "svg" === C.nodeName.toLowerCase();
-    ! function() {
-        var e = {}.hasOwnProperty;
-        b = r(e, "undefined") || r(e.call, "undefined") ? function(e, t) {
-            return t in e && r(e.constructor.prototype[t], "undefined")
-        } : function(t, n) {
-            return e.call(t, n)
-        }
-    }(), E._l = {}, E.on = function(e, t) {
-        this._l[e] || (this._l[e] = []), this._l[e].push(t), S.hasOwnProperty(e) && setTimeout(function() {
-            S._trigger(e, S[e])
-        }, 0)
-    }, E._trigger = function(e, t) {
-        if (this._l[e]) {
-            var n = this._l[e];
-            setTimeout(function() {
-                var e, r;
-                for (e = 0; e < n.length; e++)(r = n[e])(t)
-            }, 0), delete this._l[e]
-        }
-    }, S._q.push(function() {
-        E.addTest = a
-    });
-    T || ! function(e, t) {
-        function n(e, t) {
-            var n = e.createElement("p"),
-                r = e.getElementsByTagName("head")[0] || e.documentElement;
-            return n.innerHTML = "x<style>" + t + "</style>", r.insertBefore(n.lastChild, r.firstChild)
-        }
-
-        function r() {
-            var e = C.elements;
-            return "string" == typeof e ? e.split(" ") : e
-        }
-
-        function i(e, t) {
-            var n = C.elements;
-            "string" != typeof n && (n = n.join(" ")), "string" != typeof e && (e = e.join(" ")), C.elements = n + " " + e, u(t)
-        }
-
-        function o(e) {
-            var t = w[e[S]];
-            return t || (t = {}, b++, e[S] = b, w[b] = t), t
-        }
-
-        function a(e, n, r) {
-            if (n || (n = t), g) return n.createElement(e);
-            r || (r = o(n));
-            var i;
-            return i = r.cache[e] ? r.cache[e].cloneNode() : E.test(e) ? (r.cache[e] = r.createElem(e)).cloneNode() : r.createElem(e), !i.canHaveChildren || x.test(e) || i.tagUrn ? i : r.frag.appendChild(i)
-        }
-
-        function s(e, n) {
-            if (e || (e = t), g) return e.createDocumentFragment();
-            n = n || o(e);
-            for (var i = n.frag.cloneNode(), a = 0, s = r(), l = s.length; l > a; a++) i.createElement(s[a]);
-            return i
-        }
-
-        function l(e, t) {
-            t.cache || (t.cache = {}, t.createElem = e.createElement, t.createFrag = e.createDocumentFragment, t.frag = t.createFrag()), e.createElement = function(n) {
-                return C.shivMethods ? a(n, e, t) : t.createElem(n)
-            }, e.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + r().join().replace(/[\w\-:]+/g, function(e) {
-                return t.createElem(e), t.frag.createElement(e), 'c("' + e + '")'
-            }) + ");return n}")(C, t.frag)
-        }
-
-        function u(e) {
-            e || (e = t);
-            var r = o(e);
-            return !C.shivCSS || h || r.hasCSS || (r.hasCSS = !!n(e, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")), g || l(e, r), e
-        }
-
-        function c(e) {
-            for (var t, n = e.getElementsByTagName("*"), i = n.length, o = RegExp("^(?:" + r().join("|") + ")$", "i"), a = []; i--;) t = n[i], o.test(t.nodeName) && a.push(t.applyElement(f(t)));
-            return a
-        }
-
-        function f(e) {
-            for (var t, n = e.attributes, r = n.length, i = e.ownerDocument.createElement(N + ":" + e.nodeName); r--;) t = n[r], t.specified && i.setAttribute(t.nodeName, t.nodeValue);
-            return i.style.cssText = e.style.cssText, i
-        }
-
-        function d(e) {
-            for (var t, n = e.split("{"), i = n.length, o = RegExp("(^|[\\s,>+~])(" + r().join("|") + ")(?=[[\\s,>+~#.:]|$)", "gi"), a = "$1" + N + "\\:$2"; i--;) t = n[i] = n[i].split("}"), t[t.length - 1] = t[t.length - 1].replace(o, a), n[i] = t.join("}");
-            return n.join("{")
-        }
-
-        function p(e) {
-            for (var t = e.length; t--;) e[t].removeNode()
-        }
-
-        function m(e) {
-            function t() {
-                clearTimeout(a._removeSheetTimer), r && r.removeNode(!0), r = null
-            }
-            var r, i, a = o(e),
-                s = e.namespaces,
-                l = e.parentWindow;
-            return !_ || e.printShived ? e : ("undefined" == typeof s[N] && s.add(N), l.attachEvent("onbeforeprint", function() {
-                t();
-                for (var o, a, s, l = e.styleSheets, u = [], f = l.length, p = Array(f); f--;) p[f] = l[f];
-                for (; s = p.pop();)
-                    if (!s.disabled && T.test(s.media)) {
-                        try {
-                            o = s.imports, a = o.length
-                        } catch (m) {
-                            a = 0
-                        }
-                        for (f = 0; a > f; f++) p.push(o[f]);
-                        try {
-                            u.push(s.cssText)
-                        } catch (m) {}
-                    }
-                u = d(u.reverse().join("")), i = c(e), r = n(e, u)
-            }), l.attachEvent("onafterprint", function() {
-                p(i), clearTimeout(a._removeSheetTimer), a._removeSheetTimer = setTimeout(t, 500)
-            }), e.printShived = !0, e)
-        }
-        var h, g, v = "3.7.3",
-            y = e.html5 || {},
-            x = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
-            E = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,
-            S = "_html5shiv",
-            b = 0,
-            w = {};
-        ! function() {
-            try {
-                var e = t.createElement("a");
-                e.innerHTML = "<xyz></xyz>", h = "hidden" in e, g = 1 == e.childNodes.length || function() {
-                    t.createElement("a");
-                    var e = t.createDocumentFragment();
-                    return "undefined" == typeof e.cloneNode || "undefined" == typeof e.createDocumentFragment || "undefined" == typeof e.createElement
-                }()
-            } catch (n) {
-                h = !0, g = !0
-            }
-        }();
-        var C = {
-            elements: y.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",
-            version: v,
-            shivCSS: y.shivCSS !== !1,
-            supportsUnknownElements: g,
-            shivMethods: y.shivMethods !== !1,
-            type: "default",
-            shivDocument: u,
-            createElement: a,
-            createDocumentFragment: s,
-            addElements: i
-        };
-        e.html5 = C, u(t);
-        var T = /^$|\b(?:all|print)\b/,
-            N = "html5shiv",
-            _ = !g && function() {
-                var n = t.documentElement;
-                return !("undefined" == typeof t.namespaces || "undefined" == typeof t.parentWindow || "undefined" == typeof n.applyElement || "undefined" == typeof n.removeNode || "undefined" == typeof e.attachEvent)
-            }();
-        C.type += " print", C.shivPrint = m, m(t), "object" == typeof module && module.exports && (module.exports = C)
-    }("undefined" != typeof e ? e : this, t);
-    var N = {
-        elem: u("modernizr")
-    };
-    S._q.push(function() {
-        delete N.elem
-    });
-    var _ = {
-        style: N.elem.style
-    };
-    S._q.unshift(function() {
-        delete _.style
-    });
-    var z = (E.testProp = function(e, t, r) {
-        return h([e], n, t, r)
-    }, function() {
-        function e(e, t) {
-            var i;
-            return e ? (t && "string" != typeof t || (t = u(t || "div")), e = "on" + e, i = e in t, !i && r && (t.setAttribute || (t = u("div")), t.setAttribute(e, ""), i = "function" == typeof t[e], t[e] !== n && (t[e] = n), t.removeAttribute(e)), i) : !1
-        }
-        var r = !("onblur" in t.documentElement);
-        return e
-    }());
-    E.hasEvent = z, S.addTest("inputsearchevent", z("search"));
-    var k = E.testStyles = f,
-        $ = function() {
-            var e = navigator.userAgent,
-                t = e.match(/applewebkit\/([0-9]+)/gi) && parseFloat(RegExp.$1),
-                n = e.match(/w(eb)?osbrowser/gi),
-                r = e.match(/windows phone/gi) && e.match(/iemobile\/([0-9])+/gi) && parseFloat(RegExp.$1) >= 9,
-                i = 533 > t && e.match(/android/gi);
-            return n || i || r
-        }();
-    $ ? S.addTest("fontface", !1) : k('@font-face {font-family:"font";src:url("https://")}', function(e, n) {
-        var r = t.getElementById("smodernizr"),
-            i = r.sheet || r.styleSheet,
-            o = i ? i.cssRules && i.cssRules[0] ? i.cssRules[0].cssText : i.cssText || "" : "",
-            a = /src/i.test(o) && 0 === o.indexOf(n.split(" ")[0]);
-        S.addTest("fontface", a)
-    });
-    var j = "Moz O ms Webkit",
-        P = E._config.usePrefixes ? j.split(" ") : [];
-    E._cssomPrefixes = P;
-    var A = E._config.usePrefixes ? j.toLowerCase().split(" ") : [];
-    E._domPrefixes = A, E.testAllProps = v, E.testAllProps = y;
-    var R = "CSS" in e && "supports" in e.CSS,
-        F = "supportsCSS" in e;
-    S.addTest("supports", R || F), S.addTest("csstransforms3d", function() {
-        var e = !!y("perspective", "1px", !0),
-            t = S._config.usePrefixes;
-        if (e && (!t || "webkitPerspective" in C.style)) {
-            var n, r = "#modernizr{width:0;height:0}";
-            S.supports ? n = "@supports (perspective: 1px)" : (n = "@media (transform-3d)", t && (n += ",(-webkit-transform-3d)")), n += "{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}", k(r + n, function(t) {
-                e = 7 === t.offsetWidth && 18 === t.offsetHeight
-            })
-        }
-        return e
-    }), S.addTest("json", "JSON" in e && "parse" in JSON && "stringify" in JSON), S.addTest("checked", function() {
-        return k("#modernizr {position:absolute} #modernizr input {margin-left:10px} #modernizr :checked {margin-left:20px;display:block}", function(e) {
-            var t = u("input");
-            return t.setAttribute("type", "checkbox"), t.setAttribute("checked", "checked"), e.appendChild(t), 20 === t.offsetLeft
-        })
-    }), S.addTest("target", function() {
-        var t = e.document;
-        if (!("querySelectorAll" in t)) return !1;
-        try {
-            return t.querySelectorAll(":target"), !0
-        } catch (n) {
-            return !1
-        }
-    }), S.addTest("contains", r(String.prototype.contains, "function")), i(), o(w), delete E.addTest, delete E.addAsyncTest;
-    for (var M = 0; M < S._q.length; M++) S._q[M]();
-    e.Modernizr = S
-}(window, document),
-function(e) {
-    "use strict";
-    e.matchMedia = e.matchMedia || function(e, t) {
-        var n, r = e.documentElement,
-            i = r.firstElementChild || r.firstChild,
-            o = e.createElement("body"),
-            a = e.createElement("div");
-        return a.id = "mq-test-1", a.style.cssText = "position:absolute;top:-100em", o.style.background = "none", o.appendChild(a),
-            function(e) {
-                return a.innerHTML = '&shy;<style media="' + e + '"> #mq-test-1 { width: 42px; }</style>', r.insertBefore(o, i), n = 42 === a.offsetWidth, r.removeChild(o), {
-                    matches: n,
-                    media: e
-                }
-            }
-    }(e.document)
-}(this),
-function(e) {
-    "use strict";
-
-    function t() {
-        E(!0)
-    }
-    var n = {};
-    e.respond = n, n.update = function() {};
-    var r = [],
-        i = function() {
-            var t = !1;
-            try {
-                t = new e.XMLHttpRequest
-            } catch (n) {
-                t = new e.ActiveXObject("Microsoft.XMLHTTP")
-            }
-            return function() {
-                return t
-            }
-        }(),
-        o = function(e, t) {
-            var n = i();
-            n && (n.open("GET", e, !0), n.onreadystatechange = function() {
-                4 !== n.readyState || 200 !== n.status && 304 !== n.status || t(n.responseText)
-            }, 4 !== n.readyState && n.send(null))
-        };
-    if (n.ajax = o, n.queue = r, n.regex = {
-            media: /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,
-            keyframes: /@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,
-            urls: /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,
-            findStyles: /@media *([^\{]+)\{([\S\s]+?)$/,
-            only: /(only\s+)?([a-zA-Z]+)\s?/,
-            minw: /\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,
-            maxw: /\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/
-        }, n.mediaQueriesSupported = e.matchMedia && null !== e.matchMedia("only all") && e.matchMedia("only all").matches, !n.mediaQueriesSupported) {
-        var a, s, l, u = e.document,
-            c = u.documentElement,
-            f = [],
-            d = [],
-            p = [],
-            m = {},
-            h = 30,
-            g = u.getElementsByTagName("head")[0] || c,
-            v = u.getElementsByTagName("base")[0],
-            y = g.getElementsByTagName("link"),
-            x = function() {
-                var e, t = u.createElement("div"),
-                    n = u.body,
-                    r = c.style.fontSize,
-                    i = n && n.style.fontSize,
-                    o = !1;
-                return t.style.cssText = "position:absolute;font-size:1em;width:1em", n || (n = o = u.createElement("body"), n.style.background = "none"), c.style.fontSize = "100%", n.style.fontSize = "100%", n.appendChild(t), o && c.insertBefore(n, c.firstChild), e = t.offsetWidth, o ? c.removeChild(n) : n.removeChild(t), c.style.fontSize = r, i && (n.style.fontSize = i), e = l = parseFloat(e)
-            },
-            E = function(t) {
-                var n = "clientWidth",
-                    r = c[n],
-                    i = "CSS1Compat" === u.compatMode && r || u.body[n] || r,
-                    o = {},
-                    m = y[y.length - 1],
-                    v = (new Date).getTime();
-                if (t && a && h > v - a) return e.clearTimeout(s), void(s = e.setTimeout(E, h));
-                a = v;
-                for (var S in f)
-                    if (f.hasOwnProperty(S)) {
-                        var b = f[S],
-                            w = b.minw,
-                            C = b.maxw,
-                            T = null === w,
-                            N = null === C,
-                            _ = "em";
-                        w && (w = parseFloat(w) * (w.indexOf(_) > -1 ? l || x() : 1)), C && (C = parseFloat(C) * (C.indexOf(_) > -1 ? l || x() : 1)), b.hasquery && (T && N || !(T || i >= w) || !(N || C >= i)) || (o[b.media] || (o[b.media] = []), o[b.media].push(d[b.rules]))
-                    }
-                for (var z in p) p.hasOwnProperty(z) && p[z] && p[z].parentNode === g && g.removeChild(p[z]);
-                p.length = 0;
-                for (var k in o)
-                    if (o.hasOwnProperty(k)) {
-                        var $ = u.createElement("style"),
-                            j = o[k].join("\n");
-                        $.type = "text/css", $.media = k, g.insertBefore($, m.nextSibling), $.styleSheet ? $.styleSheet.cssText = j : $.appendChild(u.createTextNode(j)), p.push($)
-                    }
-            },
-            S = function(e, t, r) {
-                var i = e.replace(n.regex.keyframes, "").match(n.regex.media),
-                    o = i && i.length || 0;
-                t = t.substring(0, t.lastIndexOf("/"));
-                var a = function(e) {
-                        return e.replace(n.regex.urls, "$1" + t + "$2$3")
-                    },
-                    s = !o && r;
-                t.length && (t += "/"), s && (o = 1);
-                for (var l = 0; o > l; l++) {
-                    var u, c, p, m;
-                    s ? (u = r, d.push(a(e))) : (u = i[l].match(n.regex.findStyles) && RegExp.$1, d.push(RegExp.$2 && a(RegExp.$2))), p = u.split(","), m = p.length;
-                    for (var h = 0; m > h; h++) c = p[h], f.push({
-                        media: c.split("(")[0].match(n.regex.only) && RegExp.$2 || "all",
-                        rules: d.length - 1,
-                        hasquery: c.indexOf("(") > -1,
-                        minw: c.match(n.regex.minw) && parseFloat(RegExp.$1) + (RegExp.$2 || ""),
-                        maxw: c.match(n.regex.maxw) && parseFloat(RegExp.$1) + (RegExp.$2 || "")
-                    })
-                }
-                E()
-            },
-            b = function() {
-                if (r.length) {
-                    var t = r.shift();
-                    o(t.href, function(n) {
-                        S(n, t.href, t.media), m[t.href] = !0, e.setTimeout(function() {
-                            b()
-                        }, 0)
-                    })
-                }
-            },
-            w = function() {
-                for (var t = 0; t < y.length; t++) {
-                    var n = y[t],
-                        i = n.href,
-                        o = n.media,
-                        a = n.rel && "stylesheet" === n.rel.toLowerCase();
-                    i && a && !m[i] && (n.styleSheet && n.styleSheet.rawCssText ? (S(n.styleSheet.rawCssText, i, o), m[i] = !0) : (!/^([a-zA-Z:]*\/\/)/.test(i) && !v || i.replace(RegExp.$1, "").split("/")[0] === e.location.host) && ("//" === i.substring(0, 2) && (i = e.location.protocol + i), r.push({
-                        href: i,
-                        media: o
-                    })))
-                }
-                b()
-            };
-        w(), n.update = w, n.getEmValue = x, e.addEventListener ? e.addEventListener("resize", t, !1) : e.attachEvent && e.attachEvent("onresize", t)
-    }
-}(this);
+!function(e,t,n){function r(e,t){return typeof e===t}function i(){var e,t,n,i,o,a,s;for(var l in x)if(x.hasOwnProperty(l)){if(e=[],t=x[l],t.name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;n<t.options.aliases.length;n++)e.push(t.options.aliases[n].toLowerCase());for(i=r(t.fn,"function")?t.fn():t.fn,o=0;o<e.length;o++)a=e[o],s=a.split("."),1===s.length?S[s[0]]=i:(!S[s[0]]||S[s[0]]instanceof Boolean||(S[s[0]]=new Boolean(S[s[0]])),S[s[0]][s[1]]=i),w.push((i?"":"no-")+s.join("-"))}}function o(e){var t=C.className,n=S._config.classPrefix||"";if(T&&(t=t.baseVal),S._config.enableJSClass){var r=new RegExp("(^|\\s)"+n+"no-js(\\s|$)");t=t.replace(r,"$1"+n+"js$2")}S._config.enableClasses&&(t+=" "+n+e.join(" "+n),T?C.className.baseVal=t:C.className=t)}function a(e,t){if("object"==typeof e)for(var n in e)b(e,n)&&a(n,e[n]);else{e=e.toLowerCase();var r=e.split("."),i=S[r[0]];if(2==r.length&&(i=i[r[1]]),"undefined"!=typeof i)return S;t="function"==typeof t?t():t,1==r.length?S[r[0]]=t:(!S[r[0]]||S[r[0]]instanceof Boolean||(S[r[0]]=new Boolean(S[r[0]])),S[r[0]][r[1]]=t),o([(t&&0!=t?"":"no-")+r.join("-")]),S._trigger(e,t)}return S}function s(e,t){return function(){return e.apply(t,arguments)}}function l(e,t){return!!~(""+e).indexOf(t)}function u(){return"function"!=typeof t.createElement?t.createElement(arguments[0]):T?t.createElementNS.call(t,"http://www.w3.org/2000/svg",arguments[0]):t.createElement.apply(t,arguments)}function c(){var e=t.body;return e||(e=u(T?"svg":"body"),e.fake=!0),e}function f(e,n,r,i){var o,a,s,l,f="modernizr",d=u("div"),p=c();if(parseInt(r,10))for(;r--;)s=u("div"),s.id=i?i[r]:f+(r+1),d.appendChild(s);return o=u("style"),o.type="text/css",o.id="s"+f,(p.fake?p:d).appendChild(o),p.appendChild(d),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(t.createTextNode(e)),d.id=f,p.fake&&(p.style.background="",p.style.overflow="hidden",l=C.style.overflow,C.style.overflow="hidden",C.appendChild(p)),a=n(d,e),p.fake?(p.parentNode.removeChild(p),C.style.overflow=l,C.offsetHeight):d.parentNode.removeChild(d),!!a}function d(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function p(t,r){var i=t.length;if("CSS"in e&&"supports"in e.CSS){for(;i--;)if(e.CSS.supports(d(t[i]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var o=[];i--;)o.push("("+d(t[i])+":"+r+")");return o=o.join(" or "),f("@supports ("+o+") { #modernizr { position: absolute; } }",function(e){return"absolute"==getComputedStyle(e,null).position})}return n}function m(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function h(e,t,i,o){function a(){c&&(delete _.style,delete _.modElem)}if(o=r(o,"undefined")?!1:o,!r(i,"undefined")){var s=p(e,i);if(!r(s,"undefined"))return s}for(var c,f,d,h,g,v=["modernizr","tspan"];!_.style;)c=!0,_.modElem=u(v.shift()),_.style=_.modElem.style;for(d=e.length,f=0;d>f;f++)if(h=e[f],g=_.style[h],l(h,"-")&&(h=m(h)),_.style[h]!==n){if(o||r(i,"undefined"))return a(),"pfx"==t?h:!0;try{_.style[h]=i}catch(y){}if(_.style[h]!=g)return a(),"pfx"==t?h:!0}return a(),!1}function g(e,t,n){var i;for(var o in e)if(e[o]in t)return n===!1?e[o]:(i=t[e[o]],r(i,"function")?s(i,n||t):i);return!1}function v(e,t,n,i,o){var a=e.charAt(0).toUpperCase()+e.slice(1),s=(e+" "+P.join(a+" ")+a).split(" ");return r(t,"string")||r(t,"undefined")?h(s,t,i,o):(s=(e+" "+A.join(a+" ")+a).split(" "),g(s,t,n))}function y(e,t,r){return v(e,n,n,t,r)}var x=[],E={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){x.push({name:e,fn:t,options:n})},addAsyncTest:function(e){x.push({name:null,fn:e})}},S=function(){};S.prototype=E,S=new S;var b,w=[],C=t.documentElement,T="svg"===C.nodeName.toLowerCase();!function(){var e={}.hasOwnProperty;b=r(e,"undefined")||r(e.call,"undefined")?function(e,t){return t in e&&r(e.constructor.prototype[t],"undefined")}:function(t,n){return e.call(t,n)}}(),E._l={},E.on=function(e,t){this._l[e]||(this._l[e]=[]),this._l[e].push(t),S.hasOwnProperty(e)&&setTimeout(function(){S._trigger(e,S[e])},0)},E._trigger=function(e,t){if(this._l[e]){var n=this._l[e];setTimeout(function(){var e,r;for(e=0;e<n.length;e++)(r=n[e])(t)},0),delete this._l[e]}},S._q.push(function(){E.addTest=a});T||!function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=C.elements;return"string"==typeof e?e.split(" "):e}function i(e,t){var n=C.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof e&&(e=e.join(" ")),C.elements=n+" "+e,u(t)}function o(e){var t=w[e[S]];return t||(t={},b++,e[S]=b,w[b]=t),t}function a(e,n,r){if(n||(n=t),g)return n.createElement(e);r||(r=o(n));var i;return i=r.cache[e]?r.cache[e].cloneNode():E.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!i.canHaveChildren||x.test(e)||i.tagUrn?i:r.frag.appendChild(i)}function s(e,n){if(e||(e=t),g)return e.createDocumentFragment();n=n||o(e);for(var i=n.frag.cloneNode(),a=0,s=r(),l=s.length;l>a;a++)i.createElement(s[a]);return i}function l(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return C.shivMethods?a(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-:]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(C,t.frag)}function u(e){e||(e=t);var r=o(e);return!C.shivCSS||h||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),g||l(e,r),e}function c(e){for(var t,n=e.getElementsByTagName("*"),i=n.length,o=RegExp("^(?:"+r().join("|")+")$","i"),a=[];i--;)t=n[i],o.test(t.nodeName)&&a.push(t.applyElement(f(t)));return a}function f(e){for(var t,n=e.attributes,r=n.length,i=e.ownerDocument.createElement(N+":"+e.nodeName);r--;)t=n[r],t.specified&&i.setAttribute(t.nodeName,t.nodeValue);return i.style.cssText=e.style.cssText,i}function d(e){for(var t,n=e.split("{"),i=n.length,o=RegExp("(^|[\\s,>+~])("+r().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),a="$1"+N+"\\:$2";i--;)t=n[i]=n[i].split("}"),t[t.length-1]=t[t.length-1].replace(o,a),n[i]=t.join("}");return n.join("{")}function p(e){for(var t=e.length;t--;)e[t].removeNode()}function m(e){function t(){clearTimeout(a._removeSheetTimer),r&&r.removeNode(!0),r=null}var r,i,a=o(e),s=e.namespaces,l=e.parentWindow;return!_||e.printShived?e:("undefined"==typeof s[N]&&s.add(N),l.attachEvent("onbeforeprint",function(){t();for(var o,a,s,l=e.styleSheets,u=[],f=l.length,p=Array(f);f--;)p[f]=l[f];for(;s=p.pop();)if(!s.disabled&&T.test(s.media)){try{o=s.imports,a=o.length}catch(m){a=0}for(f=0;a>f;f++)p.push(o[f]);try{u.push(s.cssText)}catch(m){}}u=d(u.reverse().join("")),i=c(e),r=n(e,u)}),l.attachEvent("onafterprint",function(){p(i),clearTimeout(a._removeSheetTimer),a._removeSheetTimer=setTimeout(t,500)}),e.printShived=!0,e)}var h,g,v="3.7.3",y=e.html5||{},x=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,E=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,S="_html5shiv",b=0,w={};!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",h="hidden"in e,g=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){h=!0,g=!0}}();var C={elements:y.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:v,shivCSS:y.shivCSS!==!1,supportsUnknownElements:g,shivMethods:y.shivMethods!==!1,type:"default",shivDocument:u,createElement:a,createDocumentFragment:s,addElements:i};e.html5=C,u(t);var T=/^$|\b(?:all|print)\b/,N="html5shiv",_=!g&&function(){var n=t.documentElement;return!("undefined"==typeof t.namespaces||"undefined"==typeof t.parentWindow||"undefined"==typeof n.applyElement||"undefined"==typeof n.removeNode||"undefined"==typeof e.attachEvent)}();C.type+=" print",C.shivPrint=m,m(t),"object"==typeof module&&module.exports&&(module.exports=C)}("undefined"!=typeof e?e:this,t);var N={elem:u("modernizr")};S._q.push(function(){delete N.elem});var _={style:N.elem.style};S._q.unshift(function(){delete _.style});var z=(E.testProp=function(e,t,r){return h([e],n,t,r)},function(){function e(e,t){var i;return e?(t&&"string"!=typeof t||(t=u(t||"div")),e="on"+e,i=e in t,!i&&r&&(t.setAttribute||(t=u("div")),t.setAttribute(e,""),i="function"==typeof t[e],t[e]!==n&&(t[e]=n),t.removeAttribute(e)),i):!1}var r=!("onblur"in t.documentElement);return e}());E.hasEvent=z,S.addTest("inputsearchevent",z("search"));var k=E.testStyles=f,$=function(){var e=navigator.userAgent,t=e.match(/applewebkit\/([0-9]+)/gi)&&parseFloat(RegExp.$1),n=e.match(/w(eb)?osbrowser/gi),r=e.match(/windows phone/gi)&&e.match(/iemobile\/([0-9])+/gi)&&parseFloat(RegExp.$1)>=9,i=533>t&&e.match(/android/gi);return n||i||r}();$?S.addTest("fontface",!1):k('@font-face {font-family:"font";src:url("https://")}',function(e,n){var r=t.getElementById("smodernizr"),i=r.sheet||r.styleSheet,o=i?i.cssRules&&i.cssRules[0]?i.cssRules[0].cssText:i.cssText||"":"",a=/src/i.test(o)&&0===o.indexOf(n.split(" ")[0]);S.addTest("fontface",a)});var j="Moz O ms Webkit",P=E._config.usePrefixes?j.split(" "):[];E._cssomPrefixes=P;var A=E._config.usePrefixes?j.toLowerCase().split(" "):[];E._domPrefixes=A,E.testAllProps=v,E.testAllProps=y;var R="CSS"in e&&"supports"in e.CSS,F="supportsCSS"in e;S.addTest("supports",R||F),S.addTest("csstransforms3d",function(){var e=!!y("perspective","1px",!0),t=S._config.usePrefixes;if(e&&(!t||"webkitPerspective"in C.style)){var n,r="#modernizr{width:0;height:0}";S.supports?n="@supports (perspective: 1px)":(n="@media (transform-3d)",t&&(n+=",(-webkit-transform-3d)")),n+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}",k(r+n,function(t){e=7===t.offsetWidth&&18===t.offsetHeight})}return e}),S.addTest("json","JSON"in e&&"parse"in JSON&&"stringify"in JSON),S.addTest("checked",function(){return k("#modernizr {position:absolute} #modernizr input {margin-left:10px} #modernizr :checked {margin-left:20px;display:block}",function(e){var t=u("input");return t.setAttribute("type","checkbox"),t.setAttribute("checked","checked"),e.appendChild(t),20===t.offsetLeft})}),S.addTest("target",function(){var t=e.document;if(!("querySelectorAll"in t))return!1;try{return t.querySelectorAll(":target"),!0}catch(n){return!1}}),S.addTest("contains",r(String.prototype.contains,"function")),i(),o(w),delete E.addTest,delete E.addAsyncTest;for(var M=0;M<S._q.length;M++)S._q[M]();e.Modernizr=S}(window,document),function(e){"use strict";e.matchMedia=e.matchMedia||function(e,t){var n,r=e.documentElement,i=r.firstElementChild||r.firstChild,o=e.createElement("body"),a=e.createElement("div");return a.id="mq-test-1",a.style.cssText="position:absolute;top:-100em",o.style.background="none",o.appendChild(a),function(e){return a.innerHTML='&shy;<style media="'+e+'"> #mq-test-1 { width: 42px; }</style>',r.insertBefore(o,i),n=42===a.offsetWidth,r.removeChild(o),{matches:n,media:e}}}(e.document)}(this),function(e){"use strict";function t(){E(!0)}var n={};e.respond=n,n.update=function(){};var r=[],i=function(){var t=!1;try{t=new e.XMLHttpRequest}catch(n){t=new e.ActiveXObject("Microsoft.XMLHTTP")}return function(){return t}}(),o=function(e,t){var n=i();n&&(n.open("GET",e,!0),n.onreadystatechange=function(){4!==n.readyState||200!==n.status&&304!==n.status||t(n.responseText)},4!==n.readyState&&n.send(null))};if(n.ajax=o,n.queue=r,n.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},n.mediaQueriesSupported=e.matchMedia&&null!==e.matchMedia("only all")&&e.matchMedia("only all").matches,!n.mediaQueriesSupported){var a,s,l,u=e.document,c=u.documentElement,f=[],d=[],p=[],m={},h=30,g=u.getElementsByTagName("head")[0]||c,v=u.getElementsByTagName("base")[0],y=g.getElementsByTagName("link"),x=function(){var e,t=u.createElement("div"),n=u.body,r=c.style.fontSize,i=n&&n.style.fontSize,o=!1;return t.style.cssText="position:absolute;font-size:1em;width:1em",n||(n=o=u.createElement("body"),n.style.background="none"),c.style.fontSize="100%",n.style.fontSize="100%",n.appendChild(t),o&&c.insertBefore(n,c.firstChild),e=t.offsetWidth,o?c.removeChild(n):n.removeChild(t),c.style.fontSize=r,i&&(n.style.fontSize=i),e=l=parseFloat(e)},E=function(t){var n="clientWidth",r=c[n],i="CSS1Compat"===u.compatMode&&r||u.body[n]||r,o={},m=y[y.length-1],v=(new Date).getTime();if(t&&a&&h>v-a)return e.clearTimeout(s),void(s=e.setTimeout(E,h));a=v;for(var S in f)if(f.hasOwnProperty(S)){var b=f[S],w=b.minw,C=b.maxw,T=null===w,N=null===C,_="em";w&&(w=parseFloat(w)*(w.indexOf(_)>-1?l||x():1)),C&&(C=parseFloat(C)*(C.indexOf(_)>-1?l||x():1)),b.hasquery&&(T&&N||!(T||i>=w)||!(N||C>=i))||(o[b.media]||(o[b.media]=[]),o[b.media].push(d[b.rules]))}for(var z in p)p.hasOwnProperty(z)&&p[z]&&p[z].parentNode===g&&g.removeChild(p[z]);p.length=0;for(var k in o)if(o.hasOwnProperty(k)){var $=u.createElement("style"),j=o[k].join("\n");$.type="text/css",$.media=k,g.insertBefore($,m.nextSibling),$.styleSheet?$.styleSheet.cssText=j:$.appendChild(u.createTextNode(j)),p.push($)}},S=function(e,t,r){var i=e.replace(n.regex.keyframes,"").match(n.regex.media),o=i&&i.length||0;t=t.substring(0,t.lastIndexOf("/"));var a=function(e){return e.replace(n.regex.urls,"$1"+t+"$2$3")},s=!o&&r;t.length&&(t+="/"),s&&(o=1);for(var l=0;o>l;l++){var u,c,p,m;s?(u=r,d.push(a(e))):(u=i[l].match(n.regex.findStyles)&&RegExp.$1,d.push(RegExp.$2&&a(RegExp.$2))),p=u.split(","),m=p.length;for(var h=0;m>h;h++)c=p[h],f.push({media:c.split("(")[0].match(n.regex.only)&&RegExp.$2||"all",rules:d.length-1,hasquery:c.indexOf("(")>-1,minw:c.match(n.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:c.match(n.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}E()},b=function(){if(r.length){var t=r.shift();o(t.href,function(n){S(n,t.href,t.media),m[t.href]=!0,e.setTimeout(function(){b()},0)})}},w=function(){for(var t=0;t<y.length;t++){var n=y[t],i=n.href,o=n.media,a=n.rel&&"stylesheet"===n.rel.toLowerCase();i&&a&&!m[i]&&(n.styleSheet&&n.styleSheet.rawCssText?(S(n.styleSheet.rawCssText,i,o),m[i]=!0):(!/^([a-zA-Z:]*\/\/)/.test(i)&&!v||i.replace(RegExp.$1,"").split("/")[0]===e.location.host)&&("//"===i.substring(0,2)&&(i=e.location.protocol+i),r.push({href:i,media:o})))}b()};w(),n.update=w,n.getEmValue=x,e.addEventListener?e.addEventListener("resize",t,!1):e.attachEvent&&e.attachEvent("onresize",t)}}(this);
\ No newline at end of file
diff --git a/it4i_theme/assets/stylesheets/application-a422ff04cc.css b/it4i_theme/assets/stylesheets/application-a422ff04cc.css
new file mode 100644
index 0000000000000000000000000000000000000000..965bbb3c87b89b2f4112895ac794896fc1a6fa35
--- /dev/null
+++ b/it4i_theme/assets/stylesheets/application-a422ff04cc.css
@@ -0,0 +1 @@
+html{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}*,:after,:before{box-sizing:inherit;-moz-box-sizing:inherit;-webkit-box-sizing:inherit}html{font-size:62.5%;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,main,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0}main{display:block}ul{list-style:none}table{border-collapse:collapse;border-spacing:0}td{text-align:left;font-weight:400;vertical-align:middle}button{outline:0;padding:0;background:transparent;border:none;font-size:inherit}input{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;appearance:none;outline:none;border:none}a{text-decoration:none;color:inherit}a,button,input,label{-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{font-weight:inherit}pre{background:rgba(0,0,0,.05)}pre,pre code{color:rgba(0,0,0,.87)}.c,.c1,.cm,.o{color:rgba(0,0,0,.54)}.k,.kn{color:#a71d5d}.kd,.kt{color:#0086b3}.n.f,.nf{color:#795da3}.nx{color:#0086b3}.s,.s1{color:#183691}.bp,.mi{color:#9575cd}.icon{font-family:Icon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-search:before{content:"\e600"}.icon-back:before{content:"\e601"}.icon-link:before{content:"\e602"}.icon-close:before{content:"\e603"}.icon-menu:before{content:"\e604"}.icon-forward:before{content:"\e605"}.icon-twitter:before{content:"\e606"}.icon-github:before{content:"\e607"}.icon-download:before{content:"\e608"}.icon-star:before{content:"\e609"}.icon-warning:before{content:"\e610"}.icon-note:before{content:"\e611"}a{-webkit-transition:color .25s;transition:color .25s}.overlay{-webkit-transition:opacity .25s,width 0s .25s,height 0s .25s;transition:opacity .25s,width 0s .25s,height 0s .25s}#toggle-drawer:checked~.overlay,.toggle-drawer .overlay{-webkit-transition:opacity .25s,width 0s,height 0s;transition:opacity .25s,width 0s,height 0s}.js .header{-webkit-transition:background .6s,color .6s;transition:background .6s,color .6s}.js .header:before{-webkit-transition:background .6s;transition:background .6s}.button .icon{-webkit-transition:background .25s;transition:background .25s}body{color:rgba(0,0,0,.87)}@supports (-webkit-appearance:none){body{background:#e84e40}}.ios body{background:#fff}hr{border:0;border-top:1px solid rgba(0,0,0,.12)}.toggle-button{cursor:pointer;color:inherit}.backdrop,.backdrop-paper:after{background:#fff}.overlay{background:rgba(0,0,0,.54);opacity:0}#toggle-drawer:checked~.overlay,.toggle-drawer .overlay{opacity:1}.header{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05);background:#e84e40;color:#fff}.ios.standalone .header:before{background:rgba(0,0,0,.12)}.bar .path{color:hsla(0,0%,100%,.7)}.button .icon{border-radius:100%}.button .icon:active{background:hsla(0,0%,100%,.12)}html{height:100%}body{position:relative;min-height:100%}hr{display:block;height:1px;padding:0;margin:0}.locked{height:100%;overflow:hidden}.scrollable{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch}.scrollable .wrapper{height:100%}.ios .scrollable .wrapper{margin-bottom:2px}.toggle{display:none}.toggle-button{display:block}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.backdrop-paper{max-width:1200px;height:100%;margin-left:auto;margin-right:auto}.backdrop-paper:after{content:" ";display:block;height:100%;margin-left:262px}.overlay{width:0;height:0;z-index:3}.header,.overlay{position:fixed;top:0}.header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;left:0;z-index:2;height:56px;padding:4px;overflow:hidden}.ios.standalone .header{position:absolute}.bar{display:table;max-width:1184px;margin-left:auto;margin-right:auto}.bar a{display:block}.no-js .bar .button-search{display:none}.bar .path .icon:before{vertical-align:-1.5px}.button{display:table-cell;vertical-align:top;width:1%}.button button{margin:0;padding:0}.button button:active:before{position:relative;top:0;left:0}.button .icon{display:inline-block;font-size:24px;padding:8px;margin:4px}.stretch{display:table;table-layout:fixed;width:100%}.header .stretch{padding:0 20px}.stretch .title{display:table-cell;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.header .stretch .title{font-size:18px;padding:13px 0}.main{max-width:1200px;margin-left:auto;margin-right:auto}body,input{font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.no-fontface body,.no-fontface input,body,input{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.no-fontface code,.no-fontface kbd,.no-fontface pre,code,kbd,pre{font-family:Courier New,Courier,monospace}#toggle-drawer:checked~.main .drawer,.toggle-drawer .drawer{-webkit-transform:translateZ(0);transform:translateZ(0)}.no-csstransforms3d #toggle-drawer:checked~.main .drawer,.no-csstransforms3d .toggle-drawer .drawer{display:block}.project{-webkit-transition:none;transition:none}.project .logo img{-webkit-transition:box-shadow .4s;transition:box-shadow .4s}.repo a{-webkit-transition:box-shadow .4s,opacity .4s;transition:box-shadow .4s,opacity .4s}.drawer .toc a.current,.drawer .toc a:focus,.drawer .toc a:hover{color:#e84e40}.drawer .anchor a{border-left:2px solid #e84e40}.drawer .section{color:rgba(0,0,0,.54)}.ios.standalone .project:before{background:rgba(0,0,0,.12)}.project .logo img{background:#fff;border-radius:100%}.project:focus .logo img,.project:hover .logo img{box-shadow:0 4px 7px rgba(0,0,0,.23),0 8px 25px rgba(0,0,0,.05)}.repo a{background:#00bfa5;color:#fff;border-radius:3px}.repo a:focus,.repo a:hover{box-shadow:0 4px 7px rgba(0,0,0,.23),0 8px 25px rgba(0,0,0,.05);opacity:.8}.repo a .count{background:rgba(0,0,0,.26);color:#fff;border-radius:0 3px 3px 0}.repo a .count:before{border-width:15px 5px 15px 0;border-color:transparent rgba(0,0,0,.26);border-style:solid}.drawer{width:262px;font-size:13px;line-height:1em}.ios .drawer{overflow:scroll;-webkit-overflow-scrolling:touch}.drawer .toc li a{display:block;padding:14.5px 24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .toc li.anchor a{margin-left:12px;padding:10px 24px 10px 12px}.drawer .toc li ul{margin-left:12px}.drawer .current+ul{margin-bottom:9px}.drawer .section{display:block;padding:14.5px 24px}.drawer .scrollable{top:104px;z-index:-1}.drawer .scrollable .wrapper{height:auto;min-height:100%}.drawer .scrollable .wrapper hr{margin:12px 0;margin-right:auto}.drawer .scrollable .wrapper .toc{margin:12px 0}.project{display:block}.project .banner{display:table;width:100%;height:104px;padding:20px}.project .logo{display:table-cell;width:64px;padding-right:12px}.project .logo img{display:block;width:64px;height:64px}.project .name{display:table-cell;padding-left:4px;font-size:14px;line-height:1.25em;vertical-align:middle}.project .logo+.name{font-size:12px}.repo{margin:24px 0;text-align:center}.repo li{display:inline-block;padding-right:12px;white-space:nowrap}.repo li:last-child{padding-right:0}.repo a{display:inline-block;padding:0 10px 0 6px;font-size:12px;line-height:30px;height:30px}.repo a .icon{font-size:18px;vertical-align:-3px}.repo a .count{display:inline-block;position:relative;padding:0 8px 0 4px;margin:0 -10px 0 8px;font-size:12px}.repo a .count:before{content:" ";display:block;position:absolute;top:0;left:-5px}.no-js .repo a .count{display:none}.drawer .toc li a{font-weight:700}.drawer .toc li.anchor a{font-weight:400}.drawer .section,.repo a{font-weight:700}.repo a{text-transform:uppercase}.repo a .count{text-transform:none;font-weight:700}pre span{-webkit-transition:color .25s;transition:color .25s}.copyright a{-webkit-transition:color .25s;transition:color .25s}.ios.standalone .article{background:-webkit-linear-gradient(top,#fff 50%,#e84e40 0);background:linear-gradient(180deg,#fff 50%,#e84e40 0)}.ios.standalone .article .wrapper{background:-webkit-linear-gradient(top,#fff 50%,#fff 0);background:linear-gradient(180deg,#fff 50%,#fff 0)}.article a,.article h1,.article h2{color:#e84e40}.article code{background:#eee}.article kbd{color:#555;background-color:#fcfcfc;border:1px solid #ccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.article h1{border-bottom:1px solid rgba(0,0,0,.12)}.article a{border-bottom:1px dotted}.article a:focus,.article a:hover{color:#00bfa5}.article .headerlink{color:rgba(0,0,0,.26);border:none}.article table{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05);border-radius:3px}.article table th{background:#ee7a70;color:#fff}.article table td{border-top:1px solid rgba(0,0,0,.05)}.article blockquote{border-left:2px solid rgba(0,0,0,.54);color:rgba(0,0,0,.54)}.footer{background:#e84e40;color:#fff}.footer a{border:none}.copyright{color:rgba(0,0,0,.54)}.pagination a .button,.pagination a .title{color:#fff}.pagination .direction{color:hsla(0,0%,100%,.7)}.admonition{background:#29b6f6;color:#fff}.admonition pre{background:hsla(0,0%,100%,.3)}.admonition.warning{background:#e84e40}.admonition a,.admonition a:hover{color:#fff}.article{font-size:14px;line-height:1.7em}.article:after{content:" ";display:block;clear:both}.article .wrapper{padding:116px 16px 92px}.ios.standalone .article{position:absolute;top:56px;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch}.ios.standalone .article .wrapper{position:relative;min-height:100%;padding-top:60px;margin-bottom:2px}.article h1{font-size:24px;line-height:1.333334em;padding:20px 0 42px}.article h2{font-size:20px;line-height:1.4em;padding-top:92px;margin-top:-56px}.ios.standalone .article h2{padding-top:36px;margin:0}.article h3,.article h4{font-size:14px;padding-top:76px;margin-top:-56px}.ios.standalone .article h3,.ios.standalone .article h4{padding-top:20px;margin-top:0}.article .headerlink{float:right;margin-left:20px;font-size:14px}h1 .article .headerlink{display:none}.article ol,.article p,.article ul{margin-top:1.5em}.article li,.article li ol,.article li ul{margin-top:.75em}.article li{margin-left:18px}.article li p{display:inline}.article ul>li:before{content:"\e602";display:block;float:left;font-family:Icon;font-size:16px;width:1.2em;margin-left:-1.2em;vertical-align:-.1em}.article p>code{white-space:nowrap;padding:2px 4px}.article kbd{display:inline-block;padding:3px 5px;line-height:10px}.article hr{margin-top:1.5em}.article img{max-width:100%}.article pre{padding:16px;margin:1.5em -16px 0;line-height:1.5em;overflow:auto;-webkit-overflow-scrolling:touch}.article table{margin:3em 0 1.5em;font-size:13px;overflow:hidden}.no-js .article table{display:inline-block;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.article table th{min-width:100px;font-size:12px;text-align:left}.article table td,.article table th{padding:12px 16px;vertical-align:top}.article blockquote{padding-left:16px}.article .data{margin:1.5em -16px;padding:1.5em 0;overflow:auto;-webkit-overflow-scrolling:touch;text-align:center}.article .data table{display:inline-block;margin:0 16px;text-align:left}.footer{position:absolute;bottom:0;left:0;right:0;padding:0 4px}.copyright{margin:1.5em 0}.pagination{max-width:1184px;height:92px;padding:4px 0;margin-left:auto;margin-right:auto;overflow:hidden}.pagination a{display:block;height:100%}.pagination .next,.pagination .previous{position:relative;float:left;height:100%}.pagination .previous{width:25%}.pagination .previous .direction,.pagination .previous .stretch{display:none}.pagination .next{width:75%;text-align:right}.pagination .page{display:table;position:absolute;bottom:4px}.pagination .direction{display:block;position:absolute;bottom:40px;width:100%;font-size:15px;line-height:20px;padding:0 52px}.pagination .stretch{padding:0 4px}.pagination .stretch .title{font-size:18px;padding:11px 0 13px}.admonition{margin:20px -16px 0;padding:20px 16px}.admonition>:first-child{margin-top:0}.admonition .admonition-title{font-size:20px}.admonition .admonition-title:before{content:"\e611";display:block;float:left;font-family:Icon;font-size:24px;vertical-align:-.1em;margin-right:5px}.admonition.warning .admonition-title:before{content:"\e610"}.article h3{font-weight:700}.article h4{font-weight:400;font-style:italic}.article h2 a,.article h3 a,.article h4 a,.article h5 a,.article h6 a{font-weight:400;font-style:normal}.bar{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition:opacity .2s cubic-bezier(.75,0,.25,1),-webkit-transform .4s cubic-bezier(.75,0,.25,1);transition:opacity .2s cubic-bezier(.75,0,.25,1),-webkit-transform .4s cubic-bezier(.75,0,.25,1);transition:opacity .2s cubic-bezier(.75,0,.25,1),transform .4s cubic-bezier(.75,0,.25,1);transition:opacity .2s cubic-bezier(.75,0,.25,1),transform .4s cubic-bezier(.75,0,.25,1),-webkit-transform .4s cubic-bezier(.75,0,.25,1)}#toggle-search:checked~.header .bar,.toggle-search .bar{-webkit-transform:translate3d(0,-56px,0);transform:translate3d(0,-56px,0)}.bar.search .button-reset{-webkit-transform:scale(.5);transform:scale(.5);-webkit-transition:opacity .4s cubic-bezier(.1,.7,.1,1),-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .4s cubic-bezier(.1,.7,.1,1),-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .4s cubic-bezier(.1,.7,.1,1),transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .4s cubic-bezier(.1,.7,.1,1),transform .4s cubic-bezier(.1,.7,.1,1),-webkit-transform .4s cubic-bezier(.1,.7,.1,1);opacity:0}.bar.search.non-empty .button-reset{-webkit-transform:scale(1);transform:scale(1);opacity:1}.results{-webkit-transition:opacity .3s .1s,width 0s .4s,height 0s .4s;transition:opacity .3s .1s,width 0s .4s,height 0s .4s}#toggle-search:checked~.main .results,.toggle-search .results{-webkit-transition:opacity .4s,width 0s,height 0s;transition:opacity .4s,width 0s,height 0s}.results .list a{-webkit-transition:background .25s;transition:background .25s}.no-csstransforms3d .bar.default{display:table}.no-csstransforms3d .bar.search{display:none;margin-top:0}.no-csstransforms3d #toggle-search:checked~.header .bar.default,.no-csstransforms3d .toggle-search .bar.default{display:none}.no-csstransforms3d #toggle-search:checked~.header .bar.search,.no-csstransforms3d .toggle-search .bar.search{display:table}.bar.search{opacity:0}.bar.search .query{background:transparent;color:rgba(0,0,0,.87)}.bar.search .query::-webkit-input-placeholder{color:rgba(0,0,0,.26)}.bar.search .query:-moz-placeholder,.bar.search .query::-moz-placeholder{color:rgba(0,0,0,.26)}.bar.search .query:-ms-input-placeholder{color:rgba(0,0,0,.26)}.bar.search .button .icon:active{background:rgba(0,0,0,.12)}.results{box-shadow:0 4px 7px rgba(0,0,0,.23),0 8px 25px rgba(0,0,0,.05);background:#fff;color:rgba(0,0,0,.87);opacity:0}#toggle-search:checked~.main .results,.toggle-search .results{opacity:1}.results .meta{background:#e84e40;color:#fff}.results .list a{border-bottom:1px solid rgba(0,0,0,.12)}.results .list a:last-child{border-bottom:none}.results .list a:active{background:rgba(0,0,0,.12)}.result span{color:rgba(0,0,0,.54)}#toggle-search:checked~.header,.toggle-search .header{background:#fff;color:rgba(0,0,0,.54)}#toggle-search:checked~.header:before,.toggle-search .header:before{background:rgba(0,0,0,.54)}#toggle-search:checked~.header .bar.default,.toggle-search .header .bar.default{opacity:0}#toggle-search:checked~.header .bar.search,.toggle-search .header .bar.search{opacity:1}.bar.search{margin-top:8px}.bar.search .query{font-size:18px;padding:13px 0;margin:0;width:100%;height:48px}.bar.search .query::-ms-clear{display:none}.results{position:fixed;top:0;left:0;width:0;height:100%;z-index:1;overflow-y:scroll;-webkit-overflow-scrolling:touch}.results .scrollable{top:56px}#toggle-search:checked~.main .results,.toggle-search .results{width:100%;overflow-y:visible}.results .meta{font-weight:700}.results .meta strong{display:block;font-size:11px;max-width:1200px;margin-left:auto;margin-right:auto;padding:16px}.results .list a{display:block}.result{max-width:1200px;margin-left:auto;margin-right:auto;padding:12px 16px 16px}.result h1{line-height:24px}.result h1,.result span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.result span{font-size:12px}.no-csstransforms3d .results{display:none}.no-csstransforms3d #toggle-search:checked~.main .results,.no-csstransforms3d .toggle-search .results{display:block;overflow:auto}.meta{text-transform:uppercase;font-weight:700}@media only screen and (min-width:960px){.backdrop{background:#f2f2f2}.backdrop-paper:after{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05)}.button-menu{display:none}.drawer{float:left;height:auto;margin-bottom:96px;padding-top:80px}.drawer,.drawer .scrollable{position:static}.article{margin-left:262px}.footer{z-index:4}.copyright{margin-bottom:64px}.results{height:auto;top:64px}.results .scrollable{position:static;max-height:413px}}@media only screen and (max-width:959px){#toggle-drawer:checked~.overlay,.toggle-drawer .overlay{width:100%;height:100%}.drawer{-webkit-transform:translate3d(-262px,0,0);transform:translate3d(-262px,0,0);-webkit-transition:-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),-webkit-transform .25s cubic-bezier(.4,0,.2,1)}.no-csstransforms3d .drawer{display:none}.drawer{background:#fff}.project{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05);background:#e84e40;color:#fff}.drawer{position:fixed;z-index:4}#toggle-search:checked~.main .results,.drawer,.toggle-search .results{height:100%}}@media only screen and (min-width:720px){.header{height:64px;padding:8px}.header .stretch{padding:0 16px}.header .stretch .title{font-size:20px;padding:12px 0}.project .name{margin:26px 0 0 5px}.article .wrapper{padding:128px 24px 96px}.article .data{margin:1.5em -24px}.article .data table{margin:0 24px}.article h2{padding-top:100px;margin-top:-64px}.ios.standalone .article h2{padding-top:28px;margin-top:8px}.article h3,.article h4{padding-top:84px;margin-top:-64px}.ios.standalone .article h3,.ios.standalone .article h4{padding-top:20px;margin-top:0}.article pre{padding:1.5em 24px;margin:1.5em -24px 0}.footer{padding:0 8px}.pagination{height:96px;padding:8px 0}.pagination .direction{padding:0 56px;bottom:40px}.pagination .stretch{padding:0 8px}.admonition{margin:20px -24px 0;padding:20px 24px}.bar.search .query{font-size:20px;padding:12px 0}.results .scrollable{top:64px}.results .meta strong{padding:16px 24px}.result{padding:16px 24px 20px}}@media only screen and (min-width:1200px){.header{width:100%}.drawer .scrollable .wrapper hr{width:48px}}@media only screen and (orientation:portrait){.ios.standalone .header{height:76px;padding-top:24px}.ios.standalone .header:before{content:" ";position:absolute;top:0;left:0;z-index:3;width:100%;height:20px}.ios.standalone .drawer .scrollable{top:124px}.ios.standalone .project{padding-top:20px}.ios.standalone .project:before{content:" ";position:absolute;top:0;left:0;z-index:3;width:100%;height:20px}.ios.standalone .article{position:absolute;top:76px;right:0;bottom:0;left:0}.ios.standalone .results .scrollable{top:76px}}@media only screen and (orientation:portrait) and (min-width:720px){.ios.standalone .header{height:84px;padding-top:28px}.ios.standalone .results .scrollable{top:84px}}@media only screen and (max-width:719px){.bar .path{display:none}}@media only screen and (max-width:479px){.button-github,.button-twitter{display:none}}@media only screen and (min-width:720px) and (max-width:959px){.header .stretch{padding:0 24px}}@media only screen and (min-width:480px){.pagination .next,.pagination .previous{width:50%}.pagination .previous .direction{display:block}.pagination .previous .stretch{display:table}}@media print{.drawer,.footer,.header,.headerlink{display:none}.article .wrapper{padding-top:0}.article pre,.article pre *{color:rgba(0,0,0,.87)!important}.article pre{border:1px solid rgba(0,0,0,.12)}.article table{border-radius:none;box-shadow:none}.article table th{color:#e84e40}}
\ No newline at end of file
diff --git a/it4i_theme/assets/stylesheets/application.css b/it4i_theme/assets/stylesheets/application.css
index 234fb8b322428bba041f82cd45de8098bb8ff5b6..965bbb3c87b89b2f4112895ac794896fc1a6fa35 100644
--- a/it4i_theme/assets/stylesheets/application.css
+++ b/it4i_theme/assets/stylesheets/application.css
@@ -1,1259 +1 @@
-html {
-    box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -webkit-box-sizing: border-box;
-}
-*, :after, :before {
-    box-sizing: inherit;
-    -moz-box-sizing: inherit;
-    -webkit-box-sizing: inherit;
-}
-html {
-    font-size: 62.5%;
-    -webkit-text-size-adjust: none;
-    -ms-text-size-adjust: none;
-    text-size-adjust: none;
-}
-a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, main, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
-    margin: 0;
-    padding: 0;
-    border: 0;
-}
-main {
-    display: block;
-}
-ul {
-    list-style: none;
-}
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
-td {
-    text-align: left;
-    font-weight: 400;
-    vertical-align: middle;
-}
-button {
-    outline: 0;
-    padding: 0;
-    background: transparent;
-    border: none;
-    font-size: inherit;
-}
-input {
-    -webkit-appearance: none;
-    -moz-appearance: none;
-    -ms-appearance: none;
-    -o-appearance: none;
-    appearance: none;
-    outline: none;
-    border: none;
-}
-a {
-    text-decoration: none;
-    color: inherit;
-}
-a, button, input, label {
-    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-    -webkit-tap-highlight-color: transparent;
-}
-h1, h2, h3, h4, h5, h6 {
-    font-weight: inherit;
-}
-pre {
-    background: rgba(0, 0, 0, .05);
-}
-pre, pre code {
-    color: rgba(0, 0, 0, .87);
-}
-.c, .c1, .cm, .o {
-    color: rgba(0, 0, 0, .54);
-}
-.k, .kn {
-    color: #a71d5d;
-}
-.kd, .kt {
-    color: #0086b3;
-}
-.n.f, .nf {
-    color: #795da3;
-}
-.nx {
-    color: #0086b3;
-}
-.s, .s1 {
-    color: #183691;
-}
-.bp, .mi {
-    color: #9575cd;
-}
-.icon {
-    font-family: Icon;
-    speak: none;
-    font-style: normal;
-    font-weight: 400;
-    font-variant: normal;
-    text-transform: none;
-    line-height: 1;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-}
-.icon-search:before {
-    content: "\e600"}
-.icon-back:before {
-    content: "\e601"}
-.icon-link:before {
-    content: "\e602"}
-.icon-close:before {
-    content: "\e603"}
-.icon-menu:before {
-    content: "\e604"}
-.icon-forward:before {
-    content: "\e605"}
-.icon-twitter:before {
-    content: "\e606"}
-.icon-github:before {
-    content: "\e607"}
-.icon-download:before {
-    content: "\e608"}
-.icon-star:before {
-    content: "\e609"}
-.icon-warning:before {
-    content: "\e610"}
-.icon-note:before {
-    content: "\e611"}
-a {
-    -webkit-transition: color .25s;
-    transition: color .25s;
-}
-.overlay {
-    -webkit-transition: opacity .25s, width 0s .25s, height 0s .25s;
-    transition: opacity .25s, width 0s .25s, height 0s .25s;
-}
-#toggle-drawer:checked~.overlay, .toggle-drawer .overlay {
-    -webkit-transition: opacity .25s, width 0s, height 0s;
-    transition: opacity .25s, width 0s, height 0s;
-}
-.js .header {
-    -webkit-transition: background .6s, color .6s;
-    transition: background .6s, color .6s;
-}
-.js .header:before {
-    -webkit-transition: background .6s;
-    transition: background .6s;
-}
-.button .icon {
-    -webkit-transition: background .25s;
-    transition: background .25s;
-}
-body {
-    color: rgba(0, 0, 0, .87);
-}
-@supports (-webkit-appearance:none) {
-    body {
-    background: #fff0e6;
-}
-}.ios body {
-    background: #fff;
-}
-hr {
-    border: 0;
-    border-top: 1px solid rgba(0, 0, 0, .12);
-}
-.toggle-button {
-    cursor: pointer;
-    color: inherit;
-}
-.backdrop, .backdrop-paper:after {
-    background: #fff;
-}
-.overlay {
-    background: rgba(0, 0, 0, .54);
-    opacity: 0;
-}
-#toggle-drawer:checked~.overlay, .toggle-drawer .overlay {
-    opacity: 1;
-}
-.header {
-    box-shadow: 0 1.5px 3px rgba(0, 0, 0, .24), 0 3px 8px rgba(0, 0, 0, .05);
-    background: #fff0e6;
-    color: #fff;
-}
-.ios.standalone .header:before {
-    background: rgba(0, 0, 0, .12);
-}
-.bar .path {
-    color: hsla(0, 0%, 100%, .7);
-}
-.button .icon {
-    border-radius: 100%}
-.button .icon:active {
-    background: hsla(0, 0%, 100%, .12);
-}
-html {
-    height: 100%}
-body {
-    position: relative;
-    min-height: 100%}
-hr {
-    display: block;
-    height: 1px;
-    padding: 0;
-    margin: 0;
-}
-.locked {
-    height: 100%;
-    overflow: hidden;
-}
-.scrollable {
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    overflow: auto;
-    -webkit-overflow-scrolling: touch;
-}
-.scrollable .wrapper {
-    height: 100%}
-.ios .scrollable .wrapper {
-    margin-bottom: 2px;
-}
-.toggle {
-    display: none;
-}
-.toggle-button {
-    display: block;
-}
-.backdrop {
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    z-index: -1;
-}
-.backdrop-paper {
-    max-width: 1200px;
-    height: 100%;
-    margin-left: auto;
-    margin-right: auto;
-}
-.backdrop-paper:after {
-    content: " ";
-    display: block;
-    height: 100%;
-    margin-left: 262px;
-}
-.overlay {
-    width: 0;
-    height: 0;
-    z-index: 3;
-}
-.header, .overlay {
-    position: fixed;
-    top: 0;
-}
-.header {
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-    left: 0;
-    z-index: 2;
-    height: 56px;
-    padding: 4px;
-    overflow: hidden;
-}
-.ios.standalone .header {
-    position: absolute;
-}
-.bar {
-    display: table;
-    max-width: 1184px;
-    margin-left: auto;
-    margin-right: auto;
-}
-.bar a {
-    display: block;
-}
-.no-js .bar .button-search {
-    display: none;
-}
-.bar .path .icon:before {
-    vertical-align: -1.5px;
-}
-.button {
-    display: table-cell;
-    vertical-align: top;
-    width: 1%}
-.button button {
-    margin: 0;
-    padding: 0;
-}
-.button button:active:before {
-    position: relative;
-    top: 0;
-    left: 0;
-}
-.button .icon {
-    display: inline-block;
-    font-size: 24px;
-    margin: 4px;
-}
-.stretch {
-    display: table;
-    table-layout: fixed;
-    width: 100%}
-.header .stretch {
-    padding: 0 20px;
-}
-.stretch .title {
-    display: table-cell;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-}
-.header .stretch .title {
-    font-size: 18px;
-    padding: 13px 0;
-}
-.main {
-    max-width: 1200px;
-    margin-left: auto;
-    margin-right: auto;
-}
-body, input {
-    font-weight: 400;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-}
-.no-fontface body, .no-fontface input, body, input {
-    font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
-}
-.no-fontface code, .no-fontface kbd, .no-fontface pre, code, kbd, pre {
-    font-family: Courier New, Courier, monospace;
-}
-#toggle-drawer:checked~.main .drawer, .toggle-drawer .drawer {
-    -webkit-transform: translateZ(0);
-    transform: translateZ(0);
-}
-.no-csstransforms3d #toggle-drawer:checked~.main .drawer, .no-csstransforms3d .toggle-drawer .drawer {
-    display: block;
-}
-.project {
-    -webkit-transition: none;
-    transition: none;
-}
-.project .logo img {
-    -webkit-transition: box-shadow .4s;
-    transition: box-shadow .4s;
-}
-.repo a {
-    -webkit-transition: box-shadow .4s, opacity .4s;
-    transition: box-shadow .4s, opacity .4s;
-}
-.drawer .toc a.current, .drawer .toc a:focus, .drawer .toc a:hover {
-    color: #fff0e6;
-}
-.drawer .anchor a {
-    border-left: 2px solid #fff0e6;
-}
-.drawer .section {
-    color: rgba(0, 0, 0, .54);
-}
-.ios.standalone .project:before {
-    background: rgba(0, 0, 0, .12);
-}
-.project:focus .logo img, .project:hover .logo img {
-    box-shadow: 0 4px 7px rgba(0, 0, 0, .23), 0 8px 25px rgba(0, 0, 0, .05);
-}
-.repo a {
-    background: #00bfa5;
-    color: #fff;
-    border-radius: 3px;
-}
-.repo a:focus, .repo a:hover {
-    box-shadow: 0 4px 7px rgba(0, 0, 0, .23), 0 8px 25px rgba(0, 0, 0, .05);
-    opacity: .8;
-}
-.repo a .count {
-    background: rgba(0, 0, 0, .26);
-    color: #fff;
-    border-radius: 0 3px 3px 0;
-}
-.repo a .count:before {
-    border-width: 15px 5px 15px 0;
-    border-color: transparent rgba(0, 0, 0, .26);
-    border-style: solid;
-}
-.drawer {
-    width: 262px;
-    font-size: 13px;
-    line-height: 1em;
-}
-.ios .drawer {
-    overflow: scroll;
-    -webkit-overflow-scrolling: touch;
-}
-.drawer .toc li a {
-    display: block;
-    padding: 14.5px 24px;
-    white-space: nowrap;
-    overflow: hidden;
-    text-overflow: ellipsis;
-}
-.drawer .toc li.anchor a {
-    margin-left: 12px;
-    padding: 10px 24px 10px 12px;
-}
-.drawer .toc li ul {
-    margin-left: 12px;
-}
-.drawer .current+ul {
-    margin-bottom: 9px;
-}
-.drawer .section {
-    display: block;
-    padding: 14.5px 24px;
-}
-.drawer .scrollable {
-    top: 104px;
-    z-index: -1;
-}
-.drawer .scrollable .wrapper {
-    height: auto;
-    min-height: 100%}
-.drawer .scrollable .wrapper hr {
-    margin: 12px 0;
-    margin-right: auto;
-}
-.drawer .scrollable .wrapper .toc {
-    margin: 12px 0;
-}
-.project {
-    display: block;
-}
-.project .banner {
-    display: table;
-    width: 100%;
-    height: 104px;
-    padding: 20px;
-}
-.project .logo {
-    display: table-cell;
-    width: 64px;
-    padding-right: 12px;
-}
-.project .logo img {
-    display: block;
-    height: 64px;
-}
-.project .name {
-    display: table-cell;
-    padding-left: 4px;
-    font-size: 14px;
-    line-height: 1.25em;
-    vertical-align: middle;
-}
-.project .logo+.name {
-    font-size: 20px;
-}
-.repo {
-    margin: 24px 0;
-    text-align: center;
-}
-.repo li {
-    display: inline-block;
-    padding-right: 12px;
-    white-space: nowrap;
-}
-.repo li:last-child {
-    padding-right: 0;
-}
-.repo a {
-    display: inline-block;
-    padding: 0 10px 0 6px;
-    font-size: 12px;
-    line-height: 30px;
-    height: 30px;
-}
-.repo a .icon {
-    font-size: 18px;
-    vertical-align: -3px;
-}
-.repo a .count {
-    display: inline-block;
-    position: relative;
-    padding: 0 8px 0 4px;
-    margin: 0 -10px 0 8px;
-    font-size: 12px;
-}
-.repo a .count:before {
-    content: " ";
-    display: block;
-    position: absolute;
-    top: 0;
-    left: -5px;
-}
-.no-js .repo a .count {
-    display: none;
-}
-.drawer .toc li a {
-    font-weight: 700;
-}
-.drawer .toc li.anchor a {
-    font-weight: 400;
-}
-.drawer .section, .repo a {
-    font-weight: 700;
-}
-.repo a {
-    text-transform: uppercase;
-}
-.repo a .count {
-    text-transform: none;
-    font-weight: 700;
-}
-pre span {
-    -webkit-transition: color .25s;
-    transition: color .25s;
-}
-.copyright a {
-    -webkit-transition: color .25s;
-    transition: color .25s;
-}
-.ios.standalone .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #fff0e6 0);
-    background: linear-gradient(180deg, #fff 50%, #fff0e6 0);
-}
-.ios.standalone .article .wrapper {
-    background: -webkit-linear-gradient(top, #fff 50%, #fff 0);
-    background: linear-gradient(180deg, #fff 50%, #fff 0);
-}
-.article a, .article h1, .article h2 {
-    color: #fff0e6;
-}
-.article kbd {
-    color: #555;
-    background-color: #fcfcfc;
-    border: 1px solid #ccc;
-    border-bottom-color: #bbb;
-    border-radius: 3px;
-    box-shadow: inset 0 -1px 0 #bbb;
-}
-.article h1 {
-    border-bottom: 1px solid rgba(0, 0, 0, .12);
-}
-.article a {
-    border-bottom: 1px dotted;
-}
-.article a:focus, .article a:hover {
-    color: #00bfa5;
-}
-.article .headerlink {
-    color: rgba(0, 0, 0, .26);
-    border: none;
-}
-.article table {
-    box-shadow: 0 1.5px 3px rgba(0, 0, 0, .24), 0 3px 8px rgba(0, 0, 0, .05);
-    border-radius: 3px;
-}
-.article table th {
-    background: #ee7a70;
-    color: #fff;
-}
-.article table td {
-    border-top: 1px solid rgba(0, 0, 0, .05);
-}
-.article blockquote {
-    border-left: 2px solid rgba(0, 0, 0, .54);
-    color: rgba(0, 0, 0, .54);
-}
-.footer {
-    background: #fff0e6;
-    color: #fff;
-}
-.footer a {
-    border: none;
-}
-.copyright {
-    color: rgba(0, 0, 0, .54);
-}
-.pagination a .button, .pagination a .title {
-    color: #fff;
-}
-.pagination .direction {
-    color: hsla(0, 0%, 100%, .7);
-}
-.admonition {
-    background: #e6f2ff;
-}
-.admonition pre {
-    background: hsla(0, 0%, 100%, .3);
-}
-.admonition.warning {
-    background: #fff0e6;
-}
-.admonition a, .admonition a:hover {
-    color: #fff;
-}
-.article {
-    font-size: 14px;
-    line-height: 1.7em;
-}
-.article:after {
-    content: " ";
-    display: block;
-    clear: both;
-}
-.article .wrapper {
-    padding: 116px 16px 92px;
-}
-.ios.standalone .article {
-    position: absolute;
-    top: 56px;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    overflow: auto;
-    -webkit-overflow-scrolling: touch;
-}
-.ios.standalone .article .wrapper {
-    position: relative;
-    min-height: 100%;
-    padding-top: 60px;
-    margin-bottom: 2px;
-}
-.article h1 {
-    font-size: 24px;
-    line-height: 1.333334em;
-    padding: 20px 0 42px;
-}
-.article h2 {
-    font-size: 20px;
-    line-height: 1.4em;
-    padding-top: 92px;
-    margin-top: -56px;
-}
-.ios.standalone .article h2 {
-    padding-top: 36px;
-    margin: 0;
-}
-.article h3, .article h4 {
-    font-size: 14px;
-    padding-top: 76px;
-    margin-top: -56px;
-}
-.ios.standalone .article h3, .ios.standalone .article h4 {
-    padding-top: 20px;
-    margin-top: 0;
-}
-.article .headerlink {
-    float: right;
-    margin-left: 20px;
-    font-size: 14px;
-}
-h1 .article .headerlink {
-    display: none;
-}
-.article ol, .article p, .article ul {
-    margin-top: 1.5em;
-}
-.article li, .article li ol, .article li ul {
-    margin-top: .75em;
-}
-.article li {
-    margin-left: 18px;
-}
-.article li p {
-    display: inline;
-}
-.article ul>li:before {
-    content: "\e602";
-    display: block;
-    float: left;
-    font-family: Icon;
-    font-size: 16px;
-    width: 1.2em;
-    margin-left: -1.2em;
-    vertical-align: -.1em;
-}
-.article p>code {
-    white-space: nowrap;
-    padding: 2px 4px;
-}
-.article kbd {
-    display: inline-block;
-    padding: 3px 5px;
-    line-height: 10px;
-}
-.article hr {
-    margin-top: 1.5em;
-}
-.article img {
-    max-width: 100%}
-.article pre {
-    padding: 16px;
-    margin: 1.5em -16px 0;
-    line-height: 1.5em;
-    overflow: auto;
-    -webkit-overflow-scrolling: touch;
-}
-.article table {
-    margin: 3em 0 1.5em;
-    font-size: 13px;
-    overflow: hidden;
-}
-.no-js .article table {
-    display: inline-block;
-    max-width: 100%;
-    overflow: auto;
-    -webkit-overflow-scrolling: touch;
-}
-.article table th {
-    min-width: 100px;
-    font-size: 12px;
-    text-align: left;
-}
-.article table td, .article table th {
-    padding: 12px 16px;
-    vertical-align: top;
-}
-.article blockquote {
-    padding-left: 16px;
-}
-.article .data {
-    margin: 1.5em -16px;
-    padding: 1.5em 0;
-    overflow: auto;
-    -webkit-overflow-scrolling: touch;
-    text-align: center;
-}
-.article .data table {
-    display: inline-block;
-    margin: 0 16px;
-    text-align: left;
-}
-.footer {
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    padding: 0 4px;
-}
-.copyright {
-    margin: 1.5em 0;
-}
-.pagination {
-    max-width: 1184px;
-    height: 92px;
-    padding: 4px 0;
-    margin-left: auto;
-    margin-right: auto;
-    overflow: hidden;
-}
-.pagination a {
-    display: block;
-    height: 100%}
-.pagination .next, .pagination .previous {
-    position: relative;
-    float: left;
-    height: 100%}
-.pagination .previous {
-    width: 25%}
-.pagination .previous .direction, .pagination .previous .stretch {
-    display: none;
-}
-.pagination .next {
-    width: 75%;
-    text-align: right;
-}
-.pagination .page {
-    display: table;
-    position: absolute;
-    bottom: 4px;
-}
-.pagination .direction {
-    display: block;
-    position: absolute;
-    bottom: 40px;
-    width: 100%;
-    font-size: 15px;
-    line-height: 20px;
-    padding: 0 52px;
-}
-.pagination .stretch {
-    padding: 0 4px;
-}
-.pagination .stretch .title {
-    font-size: 18px;
-    padding: 11px 0 13px;
-}
-.admonition {
-    margin: 20px -16px 0;
-    padding: 20px 16px;
-}
-.admonition>:first-child {
-    margin-top: 0;
-}
-.admonition .admonition-title {
-    font-size: 20px;
-}
-.admonition .admonition-title:before {
-    content: "\e611";
-    display: block;
-    float: left;
-    font-family: Icon;
-    font-size: 24px;
-    vertical-align: -.1em;
-    margin-right: 5px;
-}
-.admonition.warning .admonition-title:before {
-    content: "\e610"}
-.article h3 {
-    font-weight: 700;
-}
-.article h4 {
-    font-weight: 400;
-    font-style: italic;
-}
-.article h2 a, .article h3 a, .article h4 a, .article h5 a, .article h6 a {
-    font-weight: 400;
-    font-style: normal;
-}
-.bar {
-    -webkit-transform: translateZ(0);
-    transform: translateZ(0);
-    -webkit-transition: opacity .2s cubic-bezier(.75, 0, .25, 1), -webkit-transform .4s cubic-bezier(.75, 0, .25, 1);
-    transition: opacity .2s cubic-bezier(.75, 0, .25, 1), -webkit-transform .4s cubic-bezier(.75, 0, .25, 1);
-    transition: opacity .2s cubic-bezier(.75, 0, .25, 1), transform .4s cubic-bezier(.75, 0, .25, 1);
-    transition: opacity .2s cubic-bezier(.75, 0, .25, 1), transform .4s cubic-bezier(.75, 0, .25, 1), -webkit-transform .4s cubic-bezier(.75, 0, .25, 1);
-}
-#toggle-search:checked~.header .bar, .toggle-search .bar {
-    -webkit-transform: translate3d(0, -56px, 0);
-    transform: translate3d(0, -56px, 0);
-}
-.bar.search .button-reset {
-    -webkit-transform: scale(.5);
-    transform: scale(.5);
-    -webkit-transition: opacity .4s cubic-bezier(.1, .7, .1, 1), -webkit-transform .4s cubic-bezier(.1, .7, .1, 1);
-    transition: opacity .4s cubic-bezier(.1, .7, .1, 1), -webkit-transform .4s cubic-bezier(.1, .7, .1, 1);
-    transition: opacity .4s cubic-bezier(.1, .7, .1, 1), transform .4s cubic-bezier(.1, .7, .1, 1);
-    transition: opacity .4s cubic-bezier(.1, .7, .1, 1), transform .4s cubic-bezier(.1, .7, .1, 1), -webkit-transform .4s cubic-bezier(.1, .7, .1, 1);
-    opacity: 0;
-}
-.bar.search.non-empty .button-reset {
-    -webkit-transform: scale(1);
-    transform: scale(1);
-    opacity: 1;
-}
-.results {
-    -webkit-transition: opacity .3s .1s, width 0s .4s, height 0s .4s;
-    transition: opacity .3s .1s, width 0s .4s, height 0s .4s;
-}
-#toggle-search:checked~.main .results, .toggle-search .results {
-    -webkit-transition: opacity .4s, width 0s, height 0s;
-    transition: opacity .4s, width 0s, height 0s;
-}
-.results .list a {
-    -webkit-transition: background .25s;
-    transition: background .25s;
-}
-.no-csstransforms3d .bar.default {
-    display: table;
-}
-.no-csstransforms3d .bar.search {
-    display: none;
-    margin-top: 0;
-}
-.no-csstransforms3d #toggle-search:checked~.header .bar.default, .no-csstransforms3d .toggle-search .bar.default {
-    display: none;
-}
-.no-csstransforms3d #toggle-search:checked~.header .bar.search, .no-csstransforms3d .toggle-search .bar.search {
-    display: table;
-}
-.bar.search {
-    opacity: 0;
-}
-.bar.search .query {
-    background: transparent;
-    color: rgba(0, 0, 0, .87);
-}
-.bar.search .query::-webkit-input-placeholder {
-    color: rgba(0, 0, 0, .26);
-}
-.bar.search .query:-moz-placeholder, .bar.search .query::-moz-placeholder {
-    color: rgba(0, 0, 0, .26);
-}
-.bar.search .query:-ms-input-placeholder {
-    color: rgba(0, 0, 0, .26);
-}
-.bar.search .button .icon:active {
-    background: rgba(0, 0, 0, .12);
-}
-.results {
-    box-shadow: 0 4px 7px rgba(0, 0, 0, .23), 0 8px 25px rgba(0, 0, 0, .05);
-    background: #fff;
-    color: rgba(0, 0, 0, .87);
-    opacity: 0;
-}
-#toggle-search:checked~.main .results, .toggle-search .results {
-    opacity: 1;
-}
-.results .meta {
-    background: #fff0e6;
-    color: #fff;
-}
-.results .list a {
-    border-bottom: 1px solid rgba(0, 0, 0, .12);
-}
-.results .list a:last-child {
-    border-bottom: none;
-}
-.results .list a:active {
-    background: rgba(0, 0, 0, .12);
-}
-.result span {
-    color: rgba(0, 0, 0, .54);
-}
-#toggle-search:checked~.header, .toggle-search .header {
-    background: #fff;
-    color: rgba(0, 0, 0, .54);
-}
-#toggle-search:checked~.header:before, .toggle-search .header:before {
-    background: rgba(0, 0, 0, .54);
-}
-#toggle-search:checked~.header .bar.default, .toggle-search .header .bar.default {
-    opacity: 0;
-}
-#toggle-search:checked~.header .bar.search, .toggle-search .header .bar.search {
-    opacity: 1;
-}
-.bar.search {
-    margin-top: 8px;
-}
-.bar.search .query {
-    font-size: 18px;
-    padding: 13px 0;
-    margin: 0;
-    width: 100%;
-    height: 48px;
-}
-.bar.search .query::-ms-clear {
-    display: none;
-}
-.results {
-    position: fixed;
-    top: 0;
-    left: 0;
-    width: 0;
-    height: 100%;
-    z-index: 1;
-    overflow-y: scroll;
-    -webkit-overflow-scrolling: touch;
-}
-.results .scrollable {
-    top: 56px;
-}
-#toggle-search:checked~.main .results, .toggle-search .results {
-    width: 100%;
-    overflow-y: visible;
-}
-.results .meta {
-    font-weight: 700;
-}
-.results .meta strong {
-    display: block;
-    font-size: 11px;
-    max-width: 1200px;
-    margin-left: auto;
-    margin-right: auto;
-    padding: 16px;
-}
-.results .list a {
-    display: block;
-}
-.result {
-    max-width: 1200px;
-    margin-left: auto;
-    margin-right: auto;
-    padding: 12px 16px 16px;
-}
-.result h1 {
-    line-height: 24px;
-}
-.result h1, .result span {
-    text-overflow: ellipsis;
-    white-space: nowrap;
-    overflow: hidden;
-}
-.result span {
-    font-size: 12px;
-}
-.no-csstransforms3d .results {
-    display: none;
-}
-.no-csstransforms3d #toggle-search:checked~.main .results, .no-csstransforms3d .toggle-search .results {
-    display: block;
-    overflow: auto;
-}
-.meta {
-    text-transform: uppercase;
-    font-weight: 700;
-}
-@media only screen and (min-width:960px) {
-    .backdrop {
-    background: #f2f2f2;
-}
-.backdrop-paper:after {
-    box-shadow: 0 1.5px 3px rgba(0, 0, 0, .24), 0 3px 8px rgba(0, 0, 0, .05);
-}
-.button-menu {
-    display: none;
-}
-.drawer {
-    float: left;
-    height: auto;
-    margin-bottom: 96px;
-    padding-top: 80px;
-}
-.drawer, .drawer .scrollable {
-    position: static;
-}
-.article {
-    margin-left: 262px;
-}
-.footer {
-    z-index: 4;
-}
-.copyright {
-    margin-bottom: 64px;
-}
-.results {
-    height: auto;
-    top: 64px;
-}
-.results .scrollable {
-    position: static;
-    max-height: 413px;
-}
-}@media only screen and (max-width:959px) {
-    #toggle-drawer: checked~.overlay, .toggle-drawer .overlay {
-    width: 100%;
-    height: 100%}
-.drawer {
-    -webkit-transform: translate3d(-262px, 0, 0);
-    transform: translate3d(-262px, 0, 0);
-    -webkit-transition: -webkit-transform .25s cubic-bezier(.4, 0, .2, 1);
-    transition: -webkit-transform .25s cubic-bezier(.4, 0, .2, 1);
-    transition: transform .25s cubic-bezier(.4, 0, .2, 1);
-    transition: transform .25s cubic-bezier(.4, 0, .2, 1), -webkit-transform .25s cubic-bezier(.4, 0, .2, 1);
-}
-.no-csstransforms3d .drawer {
-    display: none;
-}
-.drawer {
-    background: #fff;
-}
-.project {
-    box-shadow: 0 1.5px 3px rgba(0, 0, 0, .24), 0 3px 8px rgba(0, 0, 0, .05);
-    background: #fff0e6;
-    color: #fff;
-}
-.drawer {
-    position: fixed;
-    z-index: 4;
-}
-#toggle-search:checked~.main .results, .drawer, .toggle-search .results {
-    height: 100%}
-}@media only screen and (min-width:720px) {
-    .header {
-    height: 64px;
-    padding: 8px;
-}
-.header .stretch {
-    padding: 0 16px;
-}
-.header .stretch .title {
-    font-size: 20px;
-    padding: 12px 0;
-}
-.project .name {
-    margin: 26px 0 0 5px;
-}
-.article .wrapper {
-    padding: 128px 24px 96px;
-}
-.article .data {
-    margin: 1.5em -24px;
-}
-.article .data table {
-    margin: 0 24px;
-}
-.article h2 {
-    padding-top: 100px;
-    margin-top: -64px;
-}
-.ios.standalone .article h2 {
-    padding-top: 28px;
-    margin-top: 8px;
-}
-.article h3, .article h4 {
-    padding-top: 84px;
-    margin-top: -64px;
-}
-.ios.standalone .article h3, .ios.standalone .article h4 {
-    padding-top: 20px;
-    margin-top: 0;
-}
-.article pre {
-    padding: 1.5em 24px;
-    margin: 1.5em -24px 0;
-}
-.footer {
-    padding: 0 8px;
-}
-.pagination {
-    height: 96px;
-    padding: 8px 0;
-}
-.pagination .direction {
-    padding: 0 56px;
-    bottom: 40px;
-}
-.pagination .stretch {
-    padding: 0 8px;
-}
-.admonition {
-    margin: 20px -24px 0;
-    padding: 20px 24px;
-}
-.bar.search .query {
-    font-size: 20px;
-    padding: 12px 0;
-}
-.results .scrollable {
-    top: 64px;
-}
-.results .meta strong {
-    padding: 16px 24px;
-}
-.result {
-    padding: 16px 24px 20px;
-}
-}@media only screen and (min-width:1200px) {
-    .header {
-    width: 100%}
-.drawer .scrollable .wrapper hr {
-    width: 48px;
-}
-}@media only screen and (orientation:portrait) {
-    .ios.standalone .header {
-    height: 76px;
-    padding-top: 24px;
-}
-.ios.standalone .header:before {
-    content: " ";
-    position: absolute;
-    top: 0;
-    left: 0;
-    z-index: 3;
-    width: 100%;
-    height: 20px;
-}
-.ios.standalone .drawer .scrollable {
-    top: 124px;
-}
-.ios.standalone .project {
-    padding-top: 20px;
-}
-.ios.standalone .project:before {
-    content: " ";
-    position: absolute;
-    top: 0;
-    left: 0;
-    z-index: 3;
-    width: 100%;
-    height: 20px;
-}
-.ios.standalone .article {
-    position: absolute;
-    top: 76px;
-    right: 0;
-    bottom: 0;
-    left: 0;
-}
-.ios.standalone .results .scrollable {
-    top: 76px;
-}
-}@media only screen and (orientation:portrait) and (min-width:720px) {
-    .ios.standalone .header {
-    height: 84px;
-    padding-top: 28px;
-}
-.ios.standalone .results .scrollable {
-    top: 84px;
-}
-}@media only screen and (max-width:719px) {
-    .bar .path {
-    display: none;
-}
-}@media only screen and (max-width:479px) {
-    .button-github, .button-twitter {
-    display: none;
-}
-}@media only screen and (min-width:720px) and (max-width:959px) {
-    .header .stretch {
-    padding: 0 24px;
-}
-}@media only screen and (min-width:480px) {
-    .pagination .next, .pagination .previous {
-    width: 50%}
-.pagination .previous .direction {
-    display: block;
-}
-.pagination .previous .stretch {
-    display: table;
-}
-}@media print {
-    .drawer, .footer, .header, .headerlink {
-    display: none;
-}
-.article .wrapper {
-    padding-top: 0;
-}
-.article pre, .article pre * {
-    color: rgba(0, 0, 0, .87)!important;
-}
-.article pre {
-    border: 1px solid rgba(0, 0, 0, .12);
-}
-.article table {
-    border-radius: none;
-    box-shadow: none;
-}
-.article table th {
-    color: #fff0e6;
-}
-} .toc  {
-    max-height: 600px;
-    overflow:  auto;
-}
-a:not([href*="//"]) {
-    /* CSS for internal links */
-}
-
-a[href*="//"]:not([href*="https://gitlab.it4i.cz/kru0052/docs.it4i"]) {
-    /*CSS for external links */
-    background: transparent url("/img/external.png") no-repeat right 0px top 1px;
-    background-size: 12px;
-    padding: 1px 16px 1px 0px;    
-}
-
-#page-wrap {
-     width: 800px;
-     margin: 0 auto;
-}
-
+html{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}*,:after,:before{box-sizing:inherit;-moz-box-sizing:inherit;-webkit-box-sizing:inherit}html{font-size:62.5%;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,main,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0}main{display:block}ul{list-style:none}table{border-collapse:collapse;border-spacing:0}td{text-align:left;font-weight:400;vertical-align:middle}button{outline:0;padding:0;background:transparent;border:none;font-size:inherit}input{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;appearance:none;outline:none;border:none}a{text-decoration:none;color:inherit}a,button,input,label{-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{font-weight:inherit}pre{background:rgba(0,0,0,.05)}pre,pre code{color:rgba(0,0,0,.87)}.c,.c1,.cm,.o{color:rgba(0,0,0,.54)}.k,.kn{color:#a71d5d}.kd,.kt{color:#0086b3}.n.f,.nf{color:#795da3}.nx{color:#0086b3}.s,.s1{color:#183691}.bp,.mi{color:#9575cd}.icon{font-family:Icon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-search:before{content:"\e600"}.icon-back:before{content:"\e601"}.icon-link:before{content:"\e602"}.icon-close:before{content:"\e603"}.icon-menu:before{content:"\e604"}.icon-forward:before{content:"\e605"}.icon-twitter:before{content:"\e606"}.icon-github:before{content:"\e607"}.icon-download:before{content:"\e608"}.icon-star:before{content:"\e609"}.icon-warning:before{content:"\e610"}.icon-note:before{content:"\e611"}a{-webkit-transition:color .25s;transition:color .25s}.overlay{-webkit-transition:opacity .25s,width 0s .25s,height 0s .25s;transition:opacity .25s,width 0s .25s,height 0s .25s}#toggle-drawer:checked~.overlay,.toggle-drawer .overlay{-webkit-transition:opacity .25s,width 0s,height 0s;transition:opacity .25s,width 0s,height 0s}.js .header{-webkit-transition:background .6s,color .6s;transition:background .6s,color .6s}.js .header:before{-webkit-transition:background .6s;transition:background .6s}.button .icon{-webkit-transition:background .25s;transition:background .25s}body{color:rgba(0,0,0,.87)}@supports (-webkit-appearance:none){body{background:#e84e40}}.ios body{background:#fff}hr{border:0;border-top:1px solid rgba(0,0,0,.12)}.toggle-button{cursor:pointer;color:inherit}.backdrop,.backdrop-paper:after{background:#fff}.overlay{background:rgba(0,0,0,.54);opacity:0}#toggle-drawer:checked~.overlay,.toggle-drawer .overlay{opacity:1}.header{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05);background:#e84e40;color:#fff}.ios.standalone .header:before{background:rgba(0,0,0,.12)}.bar .path{color:hsla(0,0%,100%,.7)}.button .icon{border-radius:100%}.button .icon:active{background:hsla(0,0%,100%,.12)}html{height:100%}body{position:relative;min-height:100%}hr{display:block;height:1px;padding:0;margin:0}.locked{height:100%;overflow:hidden}.scrollable{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch}.scrollable .wrapper{height:100%}.ios .scrollable .wrapper{margin-bottom:2px}.toggle{display:none}.toggle-button{display:block}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.backdrop-paper{max-width:1200px;height:100%;margin-left:auto;margin-right:auto}.backdrop-paper:after{content:" ";display:block;height:100%;margin-left:262px}.overlay{width:0;height:0;z-index:3}.header,.overlay{position:fixed;top:0}.header{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;left:0;z-index:2;height:56px;padding:4px;overflow:hidden}.ios.standalone .header{position:absolute}.bar{display:table;max-width:1184px;margin-left:auto;margin-right:auto}.bar a{display:block}.no-js .bar .button-search{display:none}.bar .path .icon:before{vertical-align:-1.5px}.button{display:table-cell;vertical-align:top;width:1%}.button button{margin:0;padding:0}.button button:active:before{position:relative;top:0;left:0}.button .icon{display:inline-block;font-size:24px;padding:8px;margin:4px}.stretch{display:table;table-layout:fixed;width:100%}.header .stretch{padding:0 20px}.stretch .title{display:table-cell;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.header .stretch .title{font-size:18px;padding:13px 0}.main{max-width:1200px;margin-left:auto;margin-right:auto}body,input{font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.no-fontface body,.no-fontface input,body,input{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.no-fontface code,.no-fontface kbd,.no-fontface pre,code,kbd,pre{font-family:Courier New,Courier,monospace}#toggle-drawer:checked~.main .drawer,.toggle-drawer .drawer{-webkit-transform:translateZ(0);transform:translateZ(0)}.no-csstransforms3d #toggle-drawer:checked~.main .drawer,.no-csstransforms3d .toggle-drawer .drawer{display:block}.project{-webkit-transition:none;transition:none}.project .logo img{-webkit-transition:box-shadow .4s;transition:box-shadow .4s}.repo a{-webkit-transition:box-shadow .4s,opacity .4s;transition:box-shadow .4s,opacity .4s}.drawer .toc a.current,.drawer .toc a:focus,.drawer .toc a:hover{color:#e84e40}.drawer .anchor a{border-left:2px solid #e84e40}.drawer .section{color:rgba(0,0,0,.54)}.ios.standalone .project:before{background:rgba(0,0,0,.12)}.project .logo img{background:#fff;border-radius:100%}.project:focus .logo img,.project:hover .logo img{box-shadow:0 4px 7px rgba(0,0,0,.23),0 8px 25px rgba(0,0,0,.05)}.repo a{background:#00bfa5;color:#fff;border-radius:3px}.repo a:focus,.repo a:hover{box-shadow:0 4px 7px rgba(0,0,0,.23),0 8px 25px rgba(0,0,0,.05);opacity:.8}.repo a .count{background:rgba(0,0,0,.26);color:#fff;border-radius:0 3px 3px 0}.repo a .count:before{border-width:15px 5px 15px 0;border-color:transparent rgba(0,0,0,.26);border-style:solid}.drawer{width:262px;font-size:13px;line-height:1em}.ios .drawer{overflow:scroll;-webkit-overflow-scrolling:touch}.drawer .toc li a{display:block;padding:14.5px 24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .toc li.anchor a{margin-left:12px;padding:10px 24px 10px 12px}.drawer .toc li ul{margin-left:12px}.drawer .current+ul{margin-bottom:9px}.drawer .section{display:block;padding:14.5px 24px}.drawer .scrollable{top:104px;z-index:-1}.drawer .scrollable .wrapper{height:auto;min-height:100%}.drawer .scrollable .wrapper hr{margin:12px 0;margin-right:auto}.drawer .scrollable .wrapper .toc{margin:12px 0}.project{display:block}.project .banner{display:table;width:100%;height:104px;padding:20px}.project .logo{display:table-cell;width:64px;padding-right:12px}.project .logo img{display:block;width:64px;height:64px}.project .name{display:table-cell;padding-left:4px;font-size:14px;line-height:1.25em;vertical-align:middle}.project .logo+.name{font-size:12px}.repo{margin:24px 0;text-align:center}.repo li{display:inline-block;padding-right:12px;white-space:nowrap}.repo li:last-child{padding-right:0}.repo a{display:inline-block;padding:0 10px 0 6px;font-size:12px;line-height:30px;height:30px}.repo a .icon{font-size:18px;vertical-align:-3px}.repo a .count{display:inline-block;position:relative;padding:0 8px 0 4px;margin:0 -10px 0 8px;font-size:12px}.repo a .count:before{content:" ";display:block;position:absolute;top:0;left:-5px}.no-js .repo a .count{display:none}.drawer .toc li a{font-weight:700}.drawer .toc li.anchor a{font-weight:400}.drawer .section,.repo a{font-weight:700}.repo a{text-transform:uppercase}.repo a .count{text-transform:none;font-weight:700}pre span{-webkit-transition:color .25s;transition:color .25s}.copyright a{-webkit-transition:color .25s;transition:color .25s}.ios.standalone .article{background:-webkit-linear-gradient(top,#fff 50%,#e84e40 0);background:linear-gradient(180deg,#fff 50%,#e84e40 0)}.ios.standalone .article .wrapper{background:-webkit-linear-gradient(top,#fff 50%,#fff 0);background:linear-gradient(180deg,#fff 50%,#fff 0)}.article a,.article h1,.article h2{color:#e84e40}.article code{background:#eee}.article kbd{color:#555;background-color:#fcfcfc;border:1px solid #ccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.article h1{border-bottom:1px solid rgba(0,0,0,.12)}.article a{border-bottom:1px dotted}.article a:focus,.article a:hover{color:#00bfa5}.article .headerlink{color:rgba(0,0,0,.26);border:none}.article table{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05);border-radius:3px}.article table th{background:#ee7a70;color:#fff}.article table td{border-top:1px solid rgba(0,0,0,.05)}.article blockquote{border-left:2px solid rgba(0,0,0,.54);color:rgba(0,0,0,.54)}.footer{background:#e84e40;color:#fff}.footer a{border:none}.copyright{color:rgba(0,0,0,.54)}.pagination a .button,.pagination a .title{color:#fff}.pagination .direction{color:hsla(0,0%,100%,.7)}.admonition{background:#29b6f6;color:#fff}.admonition pre{background:hsla(0,0%,100%,.3)}.admonition.warning{background:#e84e40}.admonition a,.admonition a:hover{color:#fff}.article{font-size:14px;line-height:1.7em}.article:after{content:" ";display:block;clear:both}.article .wrapper{padding:116px 16px 92px}.ios.standalone .article{position:absolute;top:56px;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch}.ios.standalone .article .wrapper{position:relative;min-height:100%;padding-top:60px;margin-bottom:2px}.article h1{font-size:24px;line-height:1.333334em;padding:20px 0 42px}.article h2{font-size:20px;line-height:1.4em;padding-top:92px;margin-top:-56px}.ios.standalone .article h2{padding-top:36px;margin:0}.article h3,.article h4{font-size:14px;padding-top:76px;margin-top:-56px}.ios.standalone .article h3,.ios.standalone .article h4{padding-top:20px;margin-top:0}.article .headerlink{float:right;margin-left:20px;font-size:14px}h1 .article .headerlink{display:none}.article ol,.article p,.article ul{margin-top:1.5em}.article li,.article li ol,.article li ul{margin-top:.75em}.article li{margin-left:18px}.article li p{display:inline}.article ul>li:before{content:"\e602";display:block;float:left;font-family:Icon;font-size:16px;width:1.2em;margin-left:-1.2em;vertical-align:-.1em}.article p>code{white-space:nowrap;padding:2px 4px}.article kbd{display:inline-block;padding:3px 5px;line-height:10px}.article hr{margin-top:1.5em}.article img{max-width:100%}.article pre{padding:16px;margin:1.5em -16px 0;line-height:1.5em;overflow:auto;-webkit-overflow-scrolling:touch}.article table{margin:3em 0 1.5em;font-size:13px;overflow:hidden}.no-js .article table{display:inline-block;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.article table th{min-width:100px;font-size:12px;text-align:left}.article table td,.article table th{padding:12px 16px;vertical-align:top}.article blockquote{padding-left:16px}.article .data{margin:1.5em -16px;padding:1.5em 0;overflow:auto;-webkit-overflow-scrolling:touch;text-align:center}.article .data table{display:inline-block;margin:0 16px;text-align:left}.footer{position:absolute;bottom:0;left:0;right:0;padding:0 4px}.copyright{margin:1.5em 0}.pagination{max-width:1184px;height:92px;padding:4px 0;margin-left:auto;margin-right:auto;overflow:hidden}.pagination a{display:block;height:100%}.pagination .next,.pagination .previous{position:relative;float:left;height:100%}.pagination .previous{width:25%}.pagination .previous .direction,.pagination .previous .stretch{display:none}.pagination .next{width:75%;text-align:right}.pagination .page{display:table;position:absolute;bottom:4px}.pagination .direction{display:block;position:absolute;bottom:40px;width:100%;font-size:15px;line-height:20px;padding:0 52px}.pagination .stretch{padding:0 4px}.pagination .stretch .title{font-size:18px;padding:11px 0 13px}.admonition{margin:20px -16px 0;padding:20px 16px}.admonition>:first-child{margin-top:0}.admonition .admonition-title{font-size:20px}.admonition .admonition-title:before{content:"\e611";display:block;float:left;font-family:Icon;font-size:24px;vertical-align:-.1em;margin-right:5px}.admonition.warning .admonition-title:before{content:"\e610"}.article h3{font-weight:700}.article h4{font-weight:400;font-style:italic}.article h2 a,.article h3 a,.article h4 a,.article h5 a,.article h6 a{font-weight:400;font-style:normal}.bar{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-transition:opacity .2s cubic-bezier(.75,0,.25,1),-webkit-transform .4s cubic-bezier(.75,0,.25,1);transition:opacity .2s cubic-bezier(.75,0,.25,1),-webkit-transform .4s cubic-bezier(.75,0,.25,1);transition:opacity .2s cubic-bezier(.75,0,.25,1),transform .4s cubic-bezier(.75,0,.25,1);transition:opacity .2s cubic-bezier(.75,0,.25,1),transform .4s cubic-bezier(.75,0,.25,1),-webkit-transform .4s cubic-bezier(.75,0,.25,1)}#toggle-search:checked~.header .bar,.toggle-search .bar{-webkit-transform:translate3d(0,-56px,0);transform:translate3d(0,-56px,0)}.bar.search .button-reset{-webkit-transform:scale(.5);transform:scale(.5);-webkit-transition:opacity .4s cubic-bezier(.1,.7,.1,1),-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .4s cubic-bezier(.1,.7,.1,1),-webkit-transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .4s cubic-bezier(.1,.7,.1,1),transform .4s cubic-bezier(.1,.7,.1,1);transition:opacity .4s cubic-bezier(.1,.7,.1,1),transform .4s cubic-bezier(.1,.7,.1,1),-webkit-transform .4s cubic-bezier(.1,.7,.1,1);opacity:0}.bar.search.non-empty .button-reset{-webkit-transform:scale(1);transform:scale(1);opacity:1}.results{-webkit-transition:opacity .3s .1s,width 0s .4s,height 0s .4s;transition:opacity .3s .1s,width 0s .4s,height 0s .4s}#toggle-search:checked~.main .results,.toggle-search .results{-webkit-transition:opacity .4s,width 0s,height 0s;transition:opacity .4s,width 0s,height 0s}.results .list a{-webkit-transition:background .25s;transition:background .25s}.no-csstransforms3d .bar.default{display:table}.no-csstransforms3d .bar.search{display:none;margin-top:0}.no-csstransforms3d #toggle-search:checked~.header .bar.default,.no-csstransforms3d .toggle-search .bar.default{display:none}.no-csstransforms3d #toggle-search:checked~.header .bar.search,.no-csstransforms3d .toggle-search .bar.search{display:table}.bar.search{opacity:0}.bar.search .query{background:transparent;color:rgba(0,0,0,.87)}.bar.search .query::-webkit-input-placeholder{color:rgba(0,0,0,.26)}.bar.search .query:-moz-placeholder,.bar.search .query::-moz-placeholder{color:rgba(0,0,0,.26)}.bar.search .query:-ms-input-placeholder{color:rgba(0,0,0,.26)}.bar.search .button .icon:active{background:rgba(0,0,0,.12)}.results{box-shadow:0 4px 7px rgba(0,0,0,.23),0 8px 25px rgba(0,0,0,.05);background:#fff;color:rgba(0,0,0,.87);opacity:0}#toggle-search:checked~.main .results,.toggle-search .results{opacity:1}.results .meta{background:#e84e40;color:#fff}.results .list a{border-bottom:1px solid rgba(0,0,0,.12)}.results .list a:last-child{border-bottom:none}.results .list a:active{background:rgba(0,0,0,.12)}.result span{color:rgba(0,0,0,.54)}#toggle-search:checked~.header,.toggle-search .header{background:#fff;color:rgba(0,0,0,.54)}#toggle-search:checked~.header:before,.toggle-search .header:before{background:rgba(0,0,0,.54)}#toggle-search:checked~.header .bar.default,.toggle-search .header .bar.default{opacity:0}#toggle-search:checked~.header .bar.search,.toggle-search .header .bar.search{opacity:1}.bar.search{margin-top:8px}.bar.search .query{font-size:18px;padding:13px 0;margin:0;width:100%;height:48px}.bar.search .query::-ms-clear{display:none}.results{position:fixed;top:0;left:0;width:0;height:100%;z-index:1;overflow-y:scroll;-webkit-overflow-scrolling:touch}.results .scrollable{top:56px}#toggle-search:checked~.main .results,.toggle-search .results{width:100%;overflow-y:visible}.results .meta{font-weight:700}.results .meta strong{display:block;font-size:11px;max-width:1200px;margin-left:auto;margin-right:auto;padding:16px}.results .list a{display:block}.result{max-width:1200px;margin-left:auto;margin-right:auto;padding:12px 16px 16px}.result h1{line-height:24px}.result h1,.result span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.result span{font-size:12px}.no-csstransforms3d .results{display:none}.no-csstransforms3d #toggle-search:checked~.main .results,.no-csstransforms3d .toggle-search .results{display:block;overflow:auto}.meta{text-transform:uppercase;font-weight:700}@media only screen and (min-width:960px){.backdrop{background:#f2f2f2}.backdrop-paper:after{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05)}.button-menu{display:none}.drawer{float:left;height:auto;margin-bottom:96px;padding-top:80px}.drawer,.drawer .scrollable{position:static}.article{margin-left:262px}.footer{z-index:4}.copyright{margin-bottom:64px}.results{height:auto;top:64px}.results .scrollable{position:static;max-height:413px}}@media only screen and (max-width:959px){#toggle-drawer:checked~.overlay,.toggle-drawer .overlay{width:100%;height:100%}.drawer{-webkit-transform:translate3d(-262px,0,0);transform:translate3d(-262px,0,0);-webkit-transition:-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),-webkit-transform .25s cubic-bezier(.4,0,.2,1)}.no-csstransforms3d .drawer{display:none}.drawer{background:#fff}.project{box-shadow:0 1.5px 3px rgba(0,0,0,.24),0 3px 8px rgba(0,0,0,.05);background:#e84e40;color:#fff}.drawer{position:fixed;z-index:4}#toggle-search:checked~.main .results,.drawer,.toggle-search .results{height:100%}}@media only screen and (min-width:720px){.header{height:64px;padding:8px}.header .stretch{padding:0 16px}.header .stretch .title{font-size:20px;padding:12px 0}.project .name{margin:26px 0 0 5px}.article .wrapper{padding:128px 24px 96px}.article .data{margin:1.5em -24px}.article .data table{margin:0 24px}.article h2{padding-top:100px;margin-top:-64px}.ios.standalone .article h2{padding-top:28px;margin-top:8px}.article h3,.article h4{padding-top:84px;margin-top:-64px}.ios.standalone .article h3,.ios.standalone .article h4{padding-top:20px;margin-top:0}.article pre{padding:1.5em 24px;margin:1.5em -24px 0}.footer{padding:0 8px}.pagination{height:96px;padding:8px 0}.pagination .direction{padding:0 56px;bottom:40px}.pagination .stretch{padding:0 8px}.admonition{margin:20px -24px 0;padding:20px 24px}.bar.search .query{font-size:20px;padding:12px 0}.results .scrollable{top:64px}.results .meta strong{padding:16px 24px}.result{padding:16px 24px 20px}}@media only screen and (min-width:1200px){.header{width:100%}.drawer .scrollable .wrapper hr{width:48px}}@media only screen and (orientation:portrait){.ios.standalone .header{height:76px;padding-top:24px}.ios.standalone .header:before{content:" ";position:absolute;top:0;left:0;z-index:3;width:100%;height:20px}.ios.standalone .drawer .scrollable{top:124px}.ios.standalone .project{padding-top:20px}.ios.standalone .project:before{content:" ";position:absolute;top:0;left:0;z-index:3;width:100%;height:20px}.ios.standalone .article{position:absolute;top:76px;right:0;bottom:0;left:0}.ios.standalone .results .scrollable{top:76px}}@media only screen and (orientation:portrait) and (min-width:720px){.ios.standalone .header{height:84px;padding-top:28px}.ios.standalone .results .scrollable{top:84px}}@media only screen and (max-width:719px){.bar .path{display:none}}@media only screen and (max-width:479px){.button-github,.button-twitter{display:none}}@media only screen and (min-width:720px) and (max-width:959px){.header .stretch{padding:0 24px}}@media only screen and (min-width:480px){.pagination .next,.pagination .previous{width:50%}.pagination .previous .direction{display:block}.pagination .previous .stretch{display:table}}@media print{.drawer,.footer,.header,.headerlink{display:none}.article .wrapper{padding-top:0}.article pre,.article pre *{color:rgba(0,0,0,.87)!important}.article pre{border:1px solid rgba(0,0,0,.12)}.article table{border-radius:none;box-shadow:none}.article table th{color:#e84e40}}
\ No newline at end of file
diff --git a/it4i_theme/assets/stylesheets/palettes-05ab2406df.css b/it4i_theme/assets/stylesheets/palettes-05ab2406df.css
new file mode 100644
index 0000000000000000000000000000000000000000..ead0d849bf5c31d986114d6b045bc4afd7fe522c
--- /dev/null
+++ b/it4i_theme/assets/stylesheets/palettes-05ab2406df.css
@@ -0,0 +1 @@
+@supports (-webkit-appearance:none){.palette-primary-red{background:#e84e40}}.palette-primary-red .footer,.palette-primary-red .header{background:#e84e40}.palette-primary-red .drawer .toc a.current,.palette-primary-red .drawer .toc a:focus,.palette-primary-red .drawer .toc a:hover{color:#e84e40}.palette-primary-red .drawer .anchor a{border-left:2px solid #e84e40}.ios.standalone .palette-primary-red .article{background:-webkit-linear-gradient(top,#fff 50%,#e84e40 0);background:linear-gradient(180deg,#fff 50%,#e84e40 0)}.palette-primary-red .article a,.palette-primary-red .article code,.palette-primary-red .article h1,.palette-primary-red .article h2{color:#e84e40}.palette-primary-red .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-red .article table th{background:#ee7a70}.palette-primary-red .results .meta{background:#e84e40}@supports (-webkit-appearance:none){.palette-primary-pink{background:#e91e63}}.palette-primary-pink .footer,.palette-primary-pink .header{background:#e91e63}.palette-primary-pink .drawer .toc a.current,.palette-primary-pink .drawer .toc a:focus,.palette-primary-pink .drawer .toc a:hover{color:#e91e63}.palette-primary-pink .drawer .anchor a{border-left:2px solid #e91e63}.ios.standalone .palette-primary-pink .article{background:-webkit-linear-gradient(top,#fff 50%,#e91e63 0);background:linear-gradient(180deg,#fff 50%,#e91e63 0)}.palette-primary-pink .article a,.palette-primary-pink .article code,.palette-primary-pink .article h1,.palette-primary-pink .article h2{color:#e91e63}.palette-primary-pink .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-pink .article table th{background:#ef568a}.palette-primary-pink .results .meta{background:#e91e63}@supports (-webkit-appearance:none){.palette-primary-purple{background:#ab47bc}}.palette-primary-purple .footer,.palette-primary-purple .header{background:#ab47bc}.palette-primary-purple .drawer .toc a.current,.palette-primary-purple .drawer .toc a:focus,.palette-primary-purple .drawer .toc a:hover{color:#ab47bc}.palette-primary-purple .drawer .anchor a{border-left:2px solid #ab47bc}.ios.standalone .palette-primary-purple .article{background:-webkit-linear-gradient(top,#fff 50%,#ab47bc 0);background:linear-gradient(180deg,#fff 50%,#ab47bc 0)}.palette-primary-purple .article a,.palette-primary-purple .article code,.palette-primary-purple .article h1,.palette-primary-purple .article h2{color:#ab47bc}.palette-primary-purple .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-purple .article table th{background:#c075cd}.palette-primary-purple .results .meta{background:#ab47bc}@supports (-webkit-appearance:none){.palette-primary-deep-purple{background:#7e57c2}}.palette-primary-deep-purple .footer,.palette-primary-deep-purple .header{background:#7e57c2}.palette-primary-deep-purple .drawer .toc a.current,.palette-primary-deep-purple .drawer .toc a:focus,.palette-primary-deep-purple .drawer .toc a:hover{color:#7e57c2}.palette-primary-deep-purple .drawer .anchor a{border-left:2px solid #7e57c2}.ios.standalone .palette-primary-deep-purple .article{background:-webkit-linear-gradient(top,#fff 50%,#7e57c2 0);background:linear-gradient(180deg,#fff 50%,#7e57c2 0)}.palette-primary-deep-purple .article a,.palette-primary-deep-purple .article code,.palette-primary-deep-purple .article h1,.palette-primary-deep-purple .article h2{color:#7e57c2}.palette-primary-deep-purple .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-deep-purple .article table th{background:#9e81d1}.palette-primary-deep-purple .results .meta{background:#7e57c2}@supports (-webkit-appearance:none){.palette-primary-indigo{background:#3f51b5}}.palette-primary-indigo .footer,.palette-primary-indigo .header{background:#3f51b5}.palette-primary-indigo .drawer .toc a.current,.palette-primary-indigo .drawer .toc a:focus,.palette-primary-indigo .drawer .toc a:hover{color:#3f51b5}.palette-primary-indigo .drawer .anchor a{border-left:2px solid #3f51b5}.ios.standalone .palette-primary-indigo .article{background:-webkit-linear-gradient(top,#fff 50%,#3f51b5 0);background:linear-gradient(180deg,#fff 50%,#3f51b5 0)}.palette-primary-indigo .article a,.palette-primary-indigo .article code,.palette-primary-indigo .article h1,.palette-primary-indigo .article h2{color:#3f51b5}.palette-primary-indigo .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-indigo .article table th{background:#6f7dc8}.palette-primary-indigo .results .meta{background:#3f51b5}@supports (-webkit-appearance:none){.palette-primary-blue{background:#5677fc}}.palette-primary-blue .footer,.palette-primary-blue .header{background:#5677fc}.palette-primary-blue .drawer .toc a.current,.palette-primary-blue .drawer .toc a:focus,.palette-primary-blue .drawer .toc a:hover{color:#5677fc}.palette-primary-blue .drawer .anchor a{border-left:2px solid #5677fc}.ios.standalone .palette-primary-blue .article{background:-webkit-linear-gradient(top,#fff 50%,#5677fc 0);background:linear-gradient(180deg,#fff 50%,#5677fc 0)}.palette-primary-blue .article a,.palette-primary-blue .article code,.palette-primary-blue .article h1,.palette-primary-blue .article h2{color:#5677fc}.palette-primary-blue .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-blue .article table th{background:#8099fd}.palette-primary-blue .results .meta{background:#5677fc}@supports (-webkit-appearance:none){.palette-primary-light-blue{background:#03a9f4}}.palette-primary-light-blue .footer,.palette-primary-light-blue .header{background:#03a9f4}.palette-primary-light-blue .drawer .toc a.current,.palette-primary-light-blue .drawer .toc a:focus,.palette-primary-light-blue .drawer .toc a:hover{color:#03a9f4}.palette-primary-light-blue .drawer .anchor a{border-left:2px solid #03a9f4}.ios.standalone .palette-primary-light-blue .article{background:-webkit-linear-gradient(top,#fff 50%,#03a9f4 0);background:linear-gradient(180deg,#fff 50%,#03a9f4 0)}.palette-primary-light-blue .article a,.palette-primary-light-blue .article code,.palette-primary-light-blue .article h1,.palette-primary-light-blue .article h2{color:#03a9f4}.palette-primary-light-blue .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-light-blue .article table th{background:#42bff7}.palette-primary-light-blue .results .meta{background:#03a9f4}@supports (-webkit-appearance:none){.palette-primary-cyan{background:#00bcd4}}.palette-primary-cyan .footer,.palette-primary-cyan .header{background:#00bcd4}.palette-primary-cyan .drawer .toc a.current,.palette-primary-cyan .drawer .toc a:focus,.palette-primary-cyan .drawer .toc a:hover{color:#00bcd4}.palette-primary-cyan .drawer .anchor a{border-left:2px solid #00bcd4}.ios.standalone .palette-primary-cyan .article{background:-webkit-linear-gradient(top,#fff 50%,#00bcd4 0);background:linear-gradient(180deg,#fff 50%,#00bcd4 0)}.palette-primary-cyan .article a,.palette-primary-cyan .article code,.palette-primary-cyan .article h1,.palette-primary-cyan .article h2{color:#00bcd4}.palette-primary-cyan .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-cyan .article table th{background:#40cddf}.palette-primary-cyan .results .meta{background:#00bcd4}@supports (-webkit-appearance:none){.palette-primary-teal{background:#009688}}.palette-primary-teal .footer,.palette-primary-teal .header{background:#009688}.palette-primary-teal .drawer .toc a.current,.palette-primary-teal .drawer .toc a:focus,.palette-primary-teal .drawer .toc a:hover{color:#009688}.palette-primary-teal .drawer .anchor a{border-left:2px solid #009688}.ios.standalone .palette-primary-teal .article{background:-webkit-linear-gradient(top,#fff 50%,#009688 0);background:linear-gradient(180deg,#fff 50%,#009688 0)}.palette-primary-teal .article a,.palette-primary-teal .article code,.palette-primary-teal .article h1,.palette-primary-teal .article h2{color:#009688}.palette-primary-teal .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-teal .article table th{background:#40b0a6}.palette-primary-teal .results .meta{background:#009688}@supports (-webkit-appearance:none){.palette-primary-green{background:#259b24}}.palette-primary-green .footer,.palette-primary-green .header{background:#259b24}.palette-primary-green .drawer .toc a.current,.palette-primary-green .drawer .toc a:focus,.palette-primary-green .drawer .toc a:hover{color:#259b24}.palette-primary-green .drawer .anchor a{border-left:2px solid #259b24}.ios.standalone .palette-primary-green .article{background:-webkit-linear-gradient(top,#fff 50%,#259b24 0);background:linear-gradient(180deg,#fff 50%,#259b24 0)}.palette-primary-green .article a,.palette-primary-green .article code,.palette-primary-green .article h1,.palette-primary-green .article h2{color:#259b24}.palette-primary-green .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-green .article table th{background:#5cb45b}.palette-primary-green .results .meta{background:#259b24}@supports (-webkit-appearance:none){.palette-primary-light-green{background:#7cb342}}.palette-primary-light-green .footer,.palette-primary-light-green .header{background:#7cb342}.palette-primary-light-green .drawer .toc a.current,.palette-primary-light-green .drawer .toc a:focus,.palette-primary-light-green .drawer .toc a:hover{color:#7cb342}.palette-primary-light-green .drawer .anchor a{border-left:2px solid #7cb342}.ios.standalone .palette-primary-light-green .article{background:-webkit-linear-gradient(top,#fff 50%,#7cb342 0);background:linear-gradient(180deg,#fff 50%,#7cb342 0)}.palette-primary-light-green .article a,.palette-primary-light-green .article code,.palette-primary-light-green .article h1,.palette-primary-light-green .article h2{color:#7cb342}.palette-primary-light-green .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-light-green .article table th{background:#9dc671}.palette-primary-light-green .results .meta{background:#7cb342}@supports (-webkit-appearance:none){.palette-primary-lime{background:#c0ca33}}.palette-primary-lime .footer,.palette-primary-lime .header{background:#c0ca33}.palette-primary-lime .drawer .toc a.current,.palette-primary-lime .drawer .toc a:focus,.palette-primary-lime .drawer .toc a:hover{color:#c0ca33}.palette-primary-lime .drawer .anchor a{border-left:2px solid #c0ca33}.ios.standalone .palette-primary-lime .article{background:-webkit-linear-gradient(top,#fff 50%,#c0ca33 0);background:linear-gradient(180deg,#fff 50%,#c0ca33 0)}.palette-primary-lime .article a,.palette-primary-lime .article code,.palette-primary-lime .article h1,.palette-primary-lime .article h2{color:#c0ca33}.palette-primary-lime .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-lime .article table th{background:#d0d766}.palette-primary-lime .results .meta{background:#c0ca33}@supports (-webkit-appearance:none){.palette-primary-yellow{background:#f9a825}}.palette-primary-yellow .footer,.palette-primary-yellow .header{background:#f9a825}.palette-primary-yellow .drawer .toc a.current,.palette-primary-yellow .drawer .toc a:focus,.palette-primary-yellow .drawer .toc a:hover{color:#f9a825}.palette-primary-yellow .drawer .anchor a{border-left:2px solid #f9a825}.ios.standalone .palette-primary-yellow .article{background:-webkit-linear-gradient(top,#fff 50%,#f9a825 0);background:linear-gradient(180deg,#fff 50%,#f9a825 0)}.palette-primary-yellow .article a,.palette-primary-yellow .article code,.palette-primary-yellow .article h1,.palette-primary-yellow .article h2{color:#f9a825}.palette-primary-yellow .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-yellow .article table th{background:#fbbe5c}.palette-primary-yellow .results .meta{background:#f9a825}@supports (-webkit-appearance:none){.palette-primary-amber{background:#ffb300}}.palette-primary-amber .footer,.palette-primary-amber .header{background:#ffb300}.palette-primary-amber .drawer .toc a.current,.palette-primary-amber .drawer .toc a:focus,.palette-primary-amber .drawer .toc a:hover{color:#ffb300}.palette-primary-amber .drawer .anchor a{border-left:2px solid #ffb300}.ios.standalone .palette-primary-amber .article{background:-webkit-linear-gradient(top,#fff 50%,#ffb300 0);background:linear-gradient(180deg,#fff 50%,#ffb300 0)}.palette-primary-amber .article a,.palette-primary-amber .article code,.palette-primary-amber .article h1,.palette-primary-amber .article h2{color:#ffb300}.palette-primary-amber .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-amber .article table th{background:#ffc640}.palette-primary-amber .results .meta{background:#ffb300}@supports (-webkit-appearance:none){.palette-primary-orange{background:#fb8c00}}.palette-primary-orange .footer,.palette-primary-orange .header{background:#fb8c00}.palette-primary-orange .drawer .toc a.current,.palette-primary-orange .drawer .toc a:focus,.palette-primary-orange .drawer .toc a:hover{color:#fb8c00}.palette-primary-orange .drawer .anchor a{border-left:2px solid #fb8c00}.ios.standalone .palette-primary-orange .article{background:-webkit-linear-gradient(top,#fff 50%,#fb8c00 0);background:linear-gradient(180deg,#fff 50%,#fb8c00 0)}.palette-primary-orange .article a,.palette-primary-orange .article code,.palette-primary-orange .article h1,.palette-primary-orange .article h2{color:#fb8c00}.palette-primary-orange .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-orange .article table th{background:#fca940}.palette-primary-orange .results .meta{background:#fb8c00}@supports (-webkit-appearance:none){.palette-primary-deep-orange{background:#ff7043}}.palette-primary-deep-orange .footer,.palette-primary-deep-orange .header{background:#ff7043}.palette-primary-deep-orange .drawer .toc a.current,.palette-primary-deep-orange .drawer .toc a:focus,.palette-primary-deep-orange .drawer .toc a:hover{color:#ff7043}.palette-primary-deep-orange .drawer .anchor a{border-left:2px solid #ff7043}.ios.standalone .palette-primary-deep-orange .article{background:-webkit-linear-gradient(top,#fff 50%,#ff7043 0);background:linear-gradient(180deg,#fff 50%,#ff7043 0)}.palette-primary-deep-orange .article a,.palette-primary-deep-orange .article code,.palette-primary-deep-orange .article h1,.palette-primary-deep-orange .article h2{color:#ff7043}.palette-primary-deep-orange .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-deep-orange .article table th{background:#ff9472}.palette-primary-deep-orange .results .meta{background:#ff7043}@supports (-webkit-appearance:none){.palette-primary-brown{background:#795548}}.palette-primary-brown .footer,.palette-primary-brown .header{background:#795548}.palette-primary-brown .drawer .toc a.current,.palette-primary-brown .drawer .toc a:focus,.palette-primary-brown .drawer .toc a:hover{color:#795548}.palette-primary-brown .drawer .anchor a{border-left:2px solid #795548}.ios.standalone .palette-primary-brown .article{background:-webkit-linear-gradient(top,#fff 50%,#795548 0);background:linear-gradient(180deg,#fff 50%,#795548 0)}.palette-primary-brown .article a,.palette-primary-brown .article code,.palette-primary-brown .article h1,.palette-primary-brown .article h2{color:#795548}.palette-primary-brown .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-brown .article table th{background:#9b8076}.palette-primary-brown .results .meta{background:#795548}@supports (-webkit-appearance:none){.palette-primary-grey{background:#757575}}.palette-primary-grey .footer,.palette-primary-grey .header{background:#757575}.palette-primary-grey .drawer .toc a.current,.palette-primary-grey .drawer .toc a:focus,.palette-primary-grey .drawer .toc a:hover{color:#757575}.palette-primary-grey .drawer .anchor a{border-left:2px solid #757575}.ios.standalone .palette-primary-grey .article{background:-webkit-linear-gradient(top,#fff 50%,#757575 0);background:linear-gradient(180deg,#fff 50%,#757575 0)}.palette-primary-grey .article a,.palette-primary-grey .article code,.palette-primary-grey .article h1,.palette-primary-grey .article h2{color:#757575}.palette-primary-grey .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-grey .article table th{background:#989898}.palette-primary-grey .results .meta{background:#757575}@supports (-webkit-appearance:none){.palette-primary-blue-grey{background:#546e7a}}.palette-primary-blue-grey .footer,.palette-primary-blue-grey .header{background:#546e7a}.palette-primary-blue-grey .drawer .toc a.current,.palette-primary-blue-grey .drawer .toc a:focus,.palette-primary-blue-grey .drawer .toc a:hover{color:#546e7a}.palette-primary-blue-grey .drawer .anchor a{border-left:2px solid #546e7a}.ios.standalone .palette-primary-blue-grey .article{background:-webkit-linear-gradient(top,#fff 50%,#546e7a 0);background:linear-gradient(180deg,#fff 50%,#546e7a 0)}.palette-primary-blue-grey .article a,.palette-primary-blue-grey .article code,.palette-primary-blue-grey .article h1,.palette-primary-blue-grey .article h2{color:#546e7a}.palette-primary-blue-grey .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-blue-grey .article table th{background:#7f929b}.palette-primary-blue-grey .results .meta{background:#546e7a}.palette-accent-red .article a:focus,.palette-accent-red .article a:hover{color:#ff2d6f}.palette-accent-red .repo a{background:#ff2d6f}.palette-accent-pink .article a:focus,.palette-accent-pink .article a:hover{color:#f50057}.palette-accent-pink .repo a{background:#f50057}.palette-accent-purple .article a:focus,.palette-accent-purple .article a:hover{color:#e040fb}.palette-accent-purple .repo a{background:#e040fb}.palette-accent-deep-purple .article a:focus,.palette-accent-deep-purple .article a:hover{color:#7c4dff}.palette-accent-deep-purple .repo a{background:#7c4dff}.palette-accent-indigo .article a:focus,.palette-accent-indigo .article a:hover{color:#536dfe}.palette-accent-indigo .repo a{background:#536dfe}.palette-accent-blue .article a:focus,.palette-accent-blue .article a:hover{color:#6889ff}.palette-accent-blue .repo a{background:#6889ff}.palette-accent-light-blue .article a:focus,.palette-accent-light-blue .article a:hover{color:#0091ea}.palette-accent-light-blue .repo a{background:#0091ea}.palette-accent-cyan .article a:focus,.palette-accent-cyan .article a:hover{color:#00b8d4}.palette-accent-cyan .repo a{background:#00b8d4}.palette-accent-teal .article a:focus,.palette-accent-teal .article a:hover{color:#00bfa5}.palette-accent-teal .repo a{background:#00bfa5}.palette-accent-green .article a:focus,.palette-accent-green .article a:hover{color:#12c700}.palette-accent-green .repo a{background:#12c700}.palette-accent-light-green .article a:focus,.palette-accent-light-green .article a:hover{color:#64dd17}.palette-accent-light-green .repo a{background:#64dd17}.palette-accent-lime .article a:focus,.palette-accent-lime .article a:hover{color:#aeea00}.palette-accent-lime .repo a{background:#aeea00}.palette-accent-yellow .article a:focus,.palette-accent-yellow .article a:hover{color:#ffd600}.palette-accent-yellow .repo a{background:#ffd600}.palette-accent-amber .article a:focus,.palette-accent-amber .article a:hover{color:#ffab00}.palette-accent-amber .repo a{background:#ffab00}.palette-accent-orange .article a:focus,.palette-accent-orange .article a:hover{color:#ff9100}.palette-accent-orange .repo a{background:#ff9100}.palette-accent-deep-orange .article a:focus,.palette-accent-deep-orange .article a:hover{color:#ff6e40}.palette-accent-deep-orange .repo a{background:#ff6e40}@media only screen and (max-width:959px){.palette-primary-red .project{background:#e84e40}.palette-primary-pink .project{background:#e91e63}.palette-primary-purple .project{background:#ab47bc}.palette-primary-deep-purple .project{background:#7e57c2}.palette-primary-indigo .project{background:#3f51b5}.palette-primary-blue .project{background:#5677fc}.palette-primary-light-blue .project{background:#03a9f4}.palette-primary-cyan .project{background:#00bcd4}.palette-primary-teal .project{background:#009688}.palette-primary-green .project{background:#259b24}.palette-primary-light-green .project{background:#7cb342}.palette-primary-lime .project{background:#c0ca33}.palette-primary-yellow .project{background:#f9a825}.palette-primary-amber .project{background:#ffb300}.palette-primary-orange .project{background:#fb8c00}.palette-primary-deep-orange .project{background:#ff7043}.palette-primary-brown .project{background:#795548}.palette-primary-grey .project{background:#757575}.palette-primary-blue-grey .project{background:#546e7a}}
\ No newline at end of file
diff --git a/it4i_theme/assets/stylesheets/palettes.css b/it4i_theme/assets/stylesheets/palettes.css
index c2c0f8c400291754da6858b111bc1be13d20e96c..ead0d849bf5c31d986114d6b045bc4afd7fe522c 100644
--- a/it4i_theme/assets/stylesheets/palettes.css
+++ b/it4i_theme/assets/stylesheets/palettes.css
@@ -1,706 +1 @@
-@supports (-webkit-appearance:none) {
-    .palette-primary-red {
-    background: #e84e40;
-}
-}.palette-primary-red .footer, .palette-primary-red .header {
-    background: #e84e40;
-}
-.palette-primary-red .drawer .toc a.current, .palette-primary-red .drawer .toc a:focus, .palette-primary-red .drawer .toc a:hover {
-    color: #e84e40;
-}
-.palette-primary-red .drawer .anchor a {
-    border-left: 2px solid #e84e40;
-}
-.ios.standalone .palette-primary-red .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #e84e40 0);
-    background: linear-gradient(180deg, #fff 50%, #e84e40 0);
-}
-.palette-primary-red .article a, .palette-primary-red .article code, .palette-primary-red .article h1, .palette-primary-red .article h2 {
-    color: #e84e40;
-}
-.palette-primary-red .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-red .article table th {
-    background: #ee7a70;
-}
-.palette-primary-red .results .meta {
-    background: #e84e40;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-pink {
-    background: #e91e63;
-}
-}.palette-primary-pink .footer, .palette-primary-pink .header {
-    background: #e91e63;
-}
-.palette-primary-pink .drawer .toc a.current, .palette-primary-pink .drawer .toc a:focus, .palette-primary-pink .drawer .toc a:hover {
-    color: #e91e63;
-}
-.palette-primary-pink .drawer .anchor a {
-    border-left: 2px solid #e91e63;
-}
-.ios.standalone .palette-primary-pink .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #e91e63 0);
-    background: linear-gradient(180deg, #fff 50%, #e91e63 0);
-}
-.palette-primary-pink .article a, .palette-primary-pink .article code, .palette-primary-pink .article h1, .palette-primary-pink .article h2 {
-    color: #e91e63;
-}
-.palette-primary-pink .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-pink .article table th {
-    background: #ef568a;
-}
-.palette-primary-pink .results .meta {
-    background: #e91e63;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-purple {
-    background: #ab47bc;
-}
-}.palette-primary-purple .footer, .palette-primary-purple .header {
-    background: #ab47bc;
-}
-.palette-primary-purple .drawer .toc a.current, .palette-primary-purple .drawer .toc a:focus, .palette-primary-purple .drawer .toc a:hover {
-    color: #ab47bc;
-}
-.palette-primary-purple .drawer .anchor a {
-    border-left: 2px solid #ab47bc;
-}
-.ios.standalone .palette-primary-purple .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #ab47bc 0);
-    background: linear-gradient(180deg, #fff 50%, #ab47bc 0);
-}
-.palette-primary-purple .article a, .palette-primary-purple .article code, .palette-primary-purple .article h1, .palette-primary-purple .article h2 {
-    color: #ab47bc;
-}
-.palette-primary-purple .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-purple .article table th {
-    background: #c075cd;
-}
-.palette-primary-purple .results .meta {
-    background: #ab47bc;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-deep-purple {
-    background: #7e57c2;
-}
-}.palette-primary-deep-purple .footer, .palette-primary-deep-purple .header {
-    background: #7e57c2;
-}
-.palette-primary-deep-purple .drawer .toc a.current, .palette-primary-deep-purple .drawer .toc a:focus, .palette-primary-deep-purple .drawer .toc a:hover {
-    color: #7e57c2;
-}
-.palette-primary-deep-purple .drawer .anchor a {
-    border-left: 2px solid #7e57c2;
-}
-.ios.standalone .palette-primary-deep-purple .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #7e57c2 0);
-    background: linear-gradient(180deg, #fff 50%, #7e57c2 0);
-}
-.palette-primary-deep-purple .article a, .palette-primary-deep-purple .article code, .palette-primary-deep-purple .article h1, .palette-primary-deep-purple .article h2 {
-    color: #7e57c2;
-}
-.palette-primary-deep-purple .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-deep-purple .article table th {
-    background: #9e81d1;
-}
-.palette-primary-deep-purple .results .meta {
-    background: #7e57c2;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-indigo {
-    background: #11134f;
-}
-}.palette-primary-indigo .footer, .palette-primary-indigo .header {
-    background: #11134f;
-}
-.palette-primary-indigo .drawer .toc a.current, .palette-primary-indigo .drawer .toc a:focus, .palette-primary-indigo .drawer .toc a:hover {
-    color: #11134f;
-}
-.palette-primary-indigo .drawer .anchor a {
-    border-left: 2px solid #11134f;
-}
-.ios.standalone .palette-primary-indigo .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #11134f 0);
-    background: linear-gradient(180deg, #fff 50%, #11134f 0);
-}
-.palette-primary-indigo .article a, .palette-primary-indigo .article code, .palette-primary-indigo .article h1, .palette-primary-indigo .article h2 {
-    color: #11134f;
-}
-.palette-primary-indigo .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-indigo .article table th {
-    background: #00a0ee;
-}
-.palette-primary-indigo .results .meta {
-    background: #11134f;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-blue {
-    background: #5677fc;
-}
-}.palette-primary-blue .footer, .palette-primary-blue .header {
-    background: #5677fc;
-}
-.palette-primary-blue .drawer .toc a.current, .palette-primary-blue .drawer .toc a:focus, .palette-primary-blue .drawer .toc a:hover {
-    color: #5677fc;
-}
-.palette-primary-blue .drawer .anchor a {
-    border-left: 2px solid #5677fc;
-}
-.ios.standalone .palette-primary-blue .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #5677fc 0);
-    background: linear-gradient(180deg, #fff 50%, #5677fc 0);
-}
-.palette-primary-blue .article a, .palette-primary-blue .article code, .palette-primary-blue .article h1, .palette-primary-blue .article h2 {
-    color: #5677fc;
-}
-.palette-primary-blue .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-blue .article table th {
-    background: #8099fd;
-}
-.palette-primary-blue .results .meta {
-    background: #5677fc;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-light-blue {
-    background: #03a9f4;
-}
-}.palette-primary-light-blue .footer, .palette-primary-light-blue .header {
-    background: #03a9f4;
-}
-.palette-primary-light-blue .drawer .toc a.current, .palette-primary-light-blue .drawer .toc a:focus, .palette-primary-light-blue .drawer .toc a:hover {
-    color: #03a9f4;
-}
-.palette-primary-light-blue .drawer .anchor a {
-    border-left: 2px solid #03a9f4;
-}
-.ios.standalone .palette-primary-light-blue .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #03a9f4 0);
-    background: linear-gradient(180deg, #fff 50%, #03a9f4 0);
-}
-.palette-primary-light-blue .article a, .palette-primary-light-blue .article code, .palette-primary-light-blue .article h1, .palette-primary-light-blue .article h2 {
-    color: #03a9f4;
-}
-.palette-primary-light-blue .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-light-blue .article table th {
-    background: #42bff7;
-}
-.palette-primary-light-blue .results .meta {
-    background: #03a9f4;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-cyan {
-    background: #00bcd4;
-}
-}.palette-primary-cyan .footer, .palette-primary-cyan .header {
-    background: #00bcd4;
-}
-.palette-primary-cyan .drawer .toc a.current, .palette-primary-cyan .drawer .toc a:focus, .palette-primary-cyan .drawer .toc a:hover {
-    color: #00bcd4;
-}
-.palette-primary-cyan .drawer .anchor a {
-    border-left: 2px solid #00bcd4;
-}
-.ios.standalone .palette-primary-cyan .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #00bcd4 0);
-    background: linear-gradient(180deg, #fff 50%, #00bcd4 0);
-}
-.palette-primary-cyan .article a, .palette-primary-cyan .article code, .palette-primary-cyan .article h1, .palette-primary-cyan .article h2 {
-    color: #00bcd4;
-}
-.palette-primary-cyan .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-cyan .article table th {
-    background: #40cddf;
-}
-.palette-primary-cyan .results .meta {
-    background: #00bcd4;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-teal {
-    background: #009688;
-}
-}.palette-primary-teal .footer, .palette-primary-teal .header {
-    background: #009688;
-}
-.palette-primary-teal .drawer .toc a.current, .palette-primary-teal .drawer .toc a:focus, .palette-primary-teal .drawer .toc a:hover {
-    color: #009688;
-}
-.palette-primary-teal .drawer .anchor a {
-    border-left: 2px solid #009688;
-}
-.ios.standalone .palette-primary-teal .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #009688 0);
-    background: linear-gradient(180deg, #fff 50%, #009688 0);
-}
-.palette-primary-teal .article a, .palette-primary-teal .article code, .palette-primary-teal .article h1, .palette-primary-teal .article h2 {
-    color: #009688;
-}
-.palette-primary-teal .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-teal .article table th {
-    background: #40b0a6;
-}
-.palette-primary-teal .results .meta {
-    background: #009688;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-green {
-    background: #259b24;
-}
-}.palette-primary-green .footer, .palette-primary-green .header {
-    background: #259b24;
-}
-.palette-primary-green .drawer .toc a.current, .palette-primary-green .drawer .toc a:focus, .palette-primary-green .drawer .toc a:hover {
-    color: #259b24;
-}
-.palette-primary-green .drawer .anchor a {
-    border-left: 2px solid #259b24;
-}
-.ios.standalone .palette-primary-green .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #259b24 0);
-    background: linear-gradient(180deg, #fff 50%, #259b24 0);
-}
-.palette-primary-green .article a, .palette-primary-green .article code, .palette-primary-green .article h1, .palette-primary-green .article h2 {
-    color: #259b24;
-}
-.palette-primary-green .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-green .article table th {
-    background: #5cb45b;
-}
-.palette-primary-green .results .meta {
-    background: #259b24;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-light-green {
-    background: #7cb342;
-}
-}.palette-primary-light-green .footer, .palette-primary-light-green .header {
-    background: #7cb342;
-}
-.palette-primary-light-green .drawer .toc a.current, .palette-primary-light-green .drawer .toc a:focus, .palette-primary-light-green .drawer .toc a:hover {
-    color: #7cb342;
-}
-.palette-primary-light-green .drawer .anchor a {
-    border-left: 2px solid #7cb342;
-}
-.ios.standalone .palette-primary-light-green .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #7cb342 0);
-    background: linear-gradient(180deg, #fff 50%, #7cb342 0);
-}
-.palette-primary-light-green .article a, .palette-primary-light-green .article code, .palette-primary-light-green .article h1, .palette-primary-light-green .article h2 {
-    color: #7cb342;
-}
-.palette-primary-light-green .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-light-green .article table th {
-    background: #9dc671;
-}
-.palette-primary-light-green .results .meta {
-    background: #7cb342;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-lime {
-    background: #c0ca33;
-}
-}.palette-primary-lime .footer, .palette-primary-lime .header {
-    background: #c0ca33;
-}
-.palette-primary-lime .drawer .toc a.current, .palette-primary-lime .drawer .toc a:focus, .palette-primary-lime .drawer .toc a:hover {
-    color: #c0ca33;
-}
-.palette-primary-lime .drawer .anchor a {
-    border-left: 2px solid #c0ca33;
-}
-.ios.standalone .palette-primary-lime .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #c0ca33 0);
-    background: linear-gradient(180deg, #fff 50%, #c0ca33 0);
-}
-.palette-primary-lime .article a, .palette-primary-lime .article code, .palette-primary-lime .article h1, .palette-primary-lime .article h2 {
-    color: #c0ca33;
-}
-.palette-primary-lime .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-lime .article table th {
-    background: #d0d766;
-}
-.palette-primary-lime .results .meta {
-    background: #c0ca33;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-yellow {
-    background: #f9a825;
-}
-}.palette-primary-yellow .footer, .palette-primary-yellow .header {
-    background: #f9a825;
-}
-.palette-primary-yellow .drawer .toc a.current, .palette-primary-yellow .drawer .toc a:focus, .palette-primary-yellow .drawer .toc a:hover {
-    color: #f9a825;
-}
-.palette-primary-yellow .drawer .anchor a {
-    border-left: 2px solid #f9a825;
-}
-.ios.standalone .palette-primary-yellow .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #f9a825 0);
-    background: linear-gradient(180deg, #fff 50%, #f9a825 0);
-}
-.palette-primary-yellow .article a, .palette-primary-yellow .article code, .palette-primary-yellow .article h1, .palette-primary-yellow .article h2 {
-    color: #f9a825;
-}
-.palette-primary-yellow .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-yellow .article table th {
-    background: #fbbe5c;
-}
-.palette-primary-yellow .results .meta {
-    background: #f9a825;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-amber {
-    background: #ffb300;
-}
-}.palette-primary-amber .footer, .palette-primary-amber .header {
-    background: #ffb300;
-}
-.palette-primary-amber .drawer .toc a.current, .palette-primary-amber .drawer .toc a:focus, .palette-primary-amber .drawer .toc a:hover {
-    color: #ffb300;
-}
-.palette-primary-amber .drawer .anchor a {
-    border-left: 2px solid #ffb300;
-}
-.ios.standalone .palette-primary-amber .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #ffb300 0);
-    background: linear-gradient(180deg, #fff 50%, #ffb300 0);
-}
-.palette-primary-amber .article a, .palette-primary-amber .article code, .palette-primary-amber .article h1, .palette-primary-amber .article h2 {
-    color: #ffb300;
-}
-.palette-primary-amber .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-amber .article table th {
-    background: #ffc640;
-}
-.palette-primary-amber .results .meta {
-    background: #ffb300;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-orange {
-    background: #fb8c00;
-}
-}.palette-primary-orange .footer, .palette-primary-orange .header {
-    background: #fb8c00;
-}
-.palette-primary-orange .drawer .toc a.current, .palette-primary-orange .drawer .toc a:focus, .palette-primary-orange .drawer .toc a:hover {
-    color: #fb8c00;
-}
-.palette-primary-orange .drawer .anchor a {
-    border-left: 2px solid #fb8c00;
-}
-.ios.standalone .palette-primary-orange .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #fb8c00 0);
-    background: linear-gradient(180deg, #fff 50%, #fb8c00 0);
-}
-.palette-primary-orange .article a, .palette-primary-orange .article code, .palette-primary-orange .article h1, .palette-primary-orange .article h2 {
-    color: #fb8c00;
-}
-.palette-primary-orange .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-orange .article table th {
-    background: #fca940;
-}
-.palette-primary-orange .results .meta {
-    background: #fb8c00;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-deep-orange {
-    background: #ff7043;
-}
-}.palette-primary-deep-orange .footer, .palette-primary-deep-orange .header {
-    background: #ff7043;
-}
-.palette-primary-deep-orange .drawer .toc a.current, .palette-primary-deep-orange .drawer .toc a:focus, .palette-primary-deep-orange .drawer .toc a:hover {
-    color: #ff7043;
-}
-.palette-primary-deep-orange .drawer .anchor a {
-    border-left: 2px solid #ff7043;
-}
-.ios.standalone .palette-primary-deep-orange .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #ff7043 0);
-    background: linear-gradient(180deg, #fff 50%, #ff7043 0);
-}
-.palette-primary-deep-orange .article a, .palette-primary-deep-orange .article code, .palette-primary-deep-orange .article h1, .palette-primary-deep-orange .article h2 {
-    color: #ff7043;
-}
-.palette-primary-deep-orange .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-deep-orange .article table th {
-    background: #ff9472;
-}
-.palette-primary-deep-orange .results .meta {
-    background: #ff7043;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-brown {
-    background: #795548;
-}
-}.palette-primary-brown .footer, .palette-primary-brown .header {
-    background: #795548;
-}
-.palette-primary-brown .drawer .toc a.current, .palette-primary-brown .drawer .toc a:focus, .palette-primary-brown .drawer .toc a:hover {
-    color: #795548;
-}
-.palette-primary-brown .drawer .anchor a {
-    border-left: 2px solid #795548;
-}
-.ios.standalone .palette-primary-brown .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #795548 0);
-    background: linear-gradient(180deg, #fff 50%, #795548 0);
-}
-.palette-primary-brown .article a, .palette-primary-brown .article code, .palette-primary-brown .article h1, .palette-primary-brown .article h2 {
-    color: #795548;
-}
-.palette-primary-brown .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-brown .article table th {
-    background: #9b8076;
-}
-.palette-primary-brown .results .meta {
-    background: #795548;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-grey {
-    background: #757575;
-}
-}.palette-primary-grey .footer, .palette-primary-grey .header {
-    background: #757575;
-}
-.palette-primary-grey .drawer .toc a.current, .palette-primary-grey .drawer .toc a:focus, .palette-primary-grey .drawer .toc a:hover {
-    color: #757575;
-}
-.palette-primary-grey .drawer .anchor a {
-    border-left: 2px solid #757575;
-}
-.ios.standalone .palette-primary-grey .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #757575 0);
-    background: linear-gradient(180deg, #fff 50%, #757575 0);
-}
-.palette-primary-grey .article a, .palette-primary-grey .article code, .palette-primary-grey .article h1, .palette-primary-grey .article h2 {
-    color: #757575;
-}
-.palette-primary-grey .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-grey .article table th {
-    background: #989898;
-}
-.palette-primary-grey .results .meta {
-    background: #757575;
-}
-@supports (-webkit-appearance:none) {
-    .palette-primary-blue-grey {
-    background: #546e7a;
-}
-}.palette-primary-blue-grey .footer, .palette-primary-blue-grey .header {
-    background: #546e7a;
-}
-.palette-primary-blue-grey .drawer .toc a.current, .palette-primary-blue-grey .drawer .toc a:focus, .palette-primary-blue-grey .drawer .toc a:hover {
-    color: #546e7a;
-}
-.palette-primary-blue-grey .drawer .anchor a {
-    border-left: 2px solid #546e7a;
-}
-.ios.standalone .palette-primary-blue-grey .article {
-    background: -webkit-linear-gradient(top, #fff 50%, #546e7a 0);
-    background: linear-gradient(180deg, #fff 50%, #546e7a 0);
-}
-.palette-primary-blue-grey .article a, .palette-primary-blue-grey .article code, .palette-primary-blue-grey .article h1, .palette-primary-blue-grey .article h2 {
-    color: #546e7a;
-}
-.palette-primary-blue-grey .article .headerlink {
-    color: rgba(0, 0, 0, .26);
-}
-.palette-primary-blue-grey .article table th {
-    background: #7f929b;
-}
-.palette-primary-blue-grey .results .meta {
-    background: #546e7a;
-}
-.palette-accent-red .article a:focus, .palette-accent-red .article a:hover {
-    color: #ff2d6f;
-}
-.palette-accent-red .repo a {
-    background: #ff2d6f;
-}
-.palette-accent-pink .article a:focus, .palette-accent-pink .article a:hover {
-    color: #f50057;
-}
-.palette-accent-pink .repo a {
-    background: #f50057;
-}
-.palette-accent-purple .article a:focus, .palette-accent-purple .article a:hover {
-    color: #e040fb;
-}
-.palette-accent-purple .repo a {
-    background: #e040fb;
-}
-.palette-accent-deep-purple .article a:focus, .palette-accent-deep-purple .article a:hover {
-    color: #7c4dff;
-}
-.palette-accent-deep-purple .repo a {
-    background: #7c4dff;
-}
-.palette-accent-indigo .article a:focus, .palette-accent-indigo .article a:hover {
-    color: #536dfe;
-}
-.palette-accent-indigo .repo a {
-    background: #536dfe;
-}
-.palette-accent-blue .article a:focus, .palette-accent-blue .article a:hover {
-    color: #6889ff;
-}
-.palette-accent-blue .repo a {
-    background: #6889ff;
-}
-.palette-accent-light-blue .article a:focus, .palette-accent-light-blue .article a:hover {
-    color: #0091ea;
-}
-.palette-accent-light-blue .repo a {
-    background: #0091ea;
-}
-.palette-accent-cyan .article a:focus, .palette-accent-cyan .article a:hover {
-    color: #00b8d4;
-}
-.palette-accent-cyan .repo a {
-    background: #00b8d4;
-}
-.palette-accent-teal .article a:focus, .palette-accent-teal .article a:hover {
-    color: #00bfa5;
-}
-.palette-accent-teal .repo a {
-    background: #00bfa5;
-}
-.palette-accent-green .article a:focus, .palette-accent-green .article a:hover {
-    color: #12c700;
-}
-.palette-accent-green .repo a {
-    background: #12c700;
-}
-.palette-accent-light-green .article a:focus, .palette-accent-light-green .article a:hover {
-    color: #64dd17;
-}
-.palette-accent-light-green .repo a {
-    background: #64dd17;
-}
-.palette-accent-lime .article a:focus, .palette-accent-lime .article a:hover {
-    color: #aeea00;
-}
-.palette-accent-lime .repo a {
-    background: #aeea00;
-}
-.palette-accent-yellow .article a:focus, .palette-accent-yellow .article a:hover {
-    color: #ffd600;
-}
-.palette-accent-yellow .repo a {
-    background: #ffd600;
-}
-.palette-accent-amber .article a:focus, .palette-accent-amber .article a:hover {
-    color: #ffab00;
-}
-.palette-accent-amber .repo a {
-    background: #ffab00;
-}
-.palette-accent-orange .article a:focus, .palette-accent-orange .article a:hover {
-    color: #ff9100;
-}
-.palette-accent-orange .repo a {
-    background: #ff9100;
-}
-.palette-accent-deep-orange .article a:focus, .palette-accent-deep-orange .article a:hover {
-    color: #ff6e40;
-}
-.palette-accent-deep-orange .repo a {
-    background: #ff6e40;
-}
-@media only screen and (max-width:959px) {
-    .palette-primary-red .project {
-    background: #e84e40;
-}
-.palette-primary-pink .project {
-    background: #e91e63;
-}
-.palette-primary-purple .project {
-    background: #ab47bc;
-}
-.palette-primary-deep-purple .project {
-    background: #7e57c2;
-}
-.palette-primary-indigo .project {
-    background: #11134f;
-}
-.palette-primary-blue .project {
-    background: #5677fc;
-}
-.palette-primary-light-blue .project {
-    background: #03a9f4;
-}
-.palette-primary-cyan .project {
-    background: #00bcd4;
-}
-.palette-primary-teal .project {
-    background: #009688;
-}
-.palette-primary-green .project {
-    background: #259b24;
-}
-.palette-primary-light-green .project {
-    background: #7cb342;
-}
-.palette-primary-lime .project {
-    background: #c0ca33;
-}
-.palette-primary-yellow .project {
-    background: #f9a825;
-}
-.palette-primary-amber .project {
-    background: #ffb300;
-}
-.palette-primary-orange .project {
-    background: #fb8c00;
-}
-.palette-primary-deep-orange .project {
-    background: #ff7043;
-}
-.palette-primary-brown .project {
-    background: #795548;
-}
-.palette-primary-grey .project {
-    background: #757575;
-}
-.palette-primary-blue-grey .project {
-    background: #546e7a;
-}
-}
+@supports (-webkit-appearance:none){.palette-primary-red{background:#e84e40}}.palette-primary-red .footer,.palette-primary-red .header{background:#e84e40}.palette-primary-red .drawer .toc a.current,.palette-primary-red .drawer .toc a:focus,.palette-primary-red .drawer .toc a:hover{color:#e84e40}.palette-primary-red .drawer .anchor a{border-left:2px solid #e84e40}.ios.standalone .palette-primary-red .article{background:-webkit-linear-gradient(top,#fff 50%,#e84e40 0);background:linear-gradient(180deg,#fff 50%,#e84e40 0)}.palette-primary-red .article a,.palette-primary-red .article code,.palette-primary-red .article h1,.palette-primary-red .article h2{color:#e84e40}.palette-primary-red .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-red .article table th{background:#ee7a70}.palette-primary-red .results .meta{background:#e84e40}@supports (-webkit-appearance:none){.palette-primary-pink{background:#e91e63}}.palette-primary-pink .footer,.palette-primary-pink .header{background:#e91e63}.palette-primary-pink .drawer .toc a.current,.palette-primary-pink .drawer .toc a:focus,.palette-primary-pink .drawer .toc a:hover{color:#e91e63}.palette-primary-pink .drawer .anchor a{border-left:2px solid #e91e63}.ios.standalone .palette-primary-pink .article{background:-webkit-linear-gradient(top,#fff 50%,#e91e63 0);background:linear-gradient(180deg,#fff 50%,#e91e63 0)}.palette-primary-pink .article a,.palette-primary-pink .article code,.palette-primary-pink .article h1,.palette-primary-pink .article h2{color:#e91e63}.palette-primary-pink .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-pink .article table th{background:#ef568a}.palette-primary-pink .results .meta{background:#e91e63}@supports (-webkit-appearance:none){.palette-primary-purple{background:#ab47bc}}.palette-primary-purple .footer,.palette-primary-purple .header{background:#ab47bc}.palette-primary-purple .drawer .toc a.current,.palette-primary-purple .drawer .toc a:focus,.palette-primary-purple .drawer .toc a:hover{color:#ab47bc}.palette-primary-purple .drawer .anchor a{border-left:2px solid #ab47bc}.ios.standalone .palette-primary-purple .article{background:-webkit-linear-gradient(top,#fff 50%,#ab47bc 0);background:linear-gradient(180deg,#fff 50%,#ab47bc 0)}.palette-primary-purple .article a,.palette-primary-purple .article code,.palette-primary-purple .article h1,.palette-primary-purple .article h2{color:#ab47bc}.palette-primary-purple .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-purple .article table th{background:#c075cd}.palette-primary-purple .results .meta{background:#ab47bc}@supports (-webkit-appearance:none){.palette-primary-deep-purple{background:#7e57c2}}.palette-primary-deep-purple .footer,.palette-primary-deep-purple .header{background:#7e57c2}.palette-primary-deep-purple .drawer .toc a.current,.palette-primary-deep-purple .drawer .toc a:focus,.palette-primary-deep-purple .drawer .toc a:hover{color:#7e57c2}.palette-primary-deep-purple .drawer .anchor a{border-left:2px solid #7e57c2}.ios.standalone .palette-primary-deep-purple .article{background:-webkit-linear-gradient(top,#fff 50%,#7e57c2 0);background:linear-gradient(180deg,#fff 50%,#7e57c2 0)}.palette-primary-deep-purple .article a,.palette-primary-deep-purple .article code,.palette-primary-deep-purple .article h1,.palette-primary-deep-purple .article h2{color:#7e57c2}.palette-primary-deep-purple .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-deep-purple .article table th{background:#9e81d1}.palette-primary-deep-purple .results .meta{background:#7e57c2}@supports (-webkit-appearance:none){.palette-primary-indigo{background:#3f51b5}}.palette-primary-indigo .footer,.palette-primary-indigo .header{background:#3f51b5}.palette-primary-indigo .drawer .toc a.current,.palette-primary-indigo .drawer .toc a:focus,.palette-primary-indigo .drawer .toc a:hover{color:#3f51b5}.palette-primary-indigo .drawer .anchor a{border-left:2px solid #3f51b5}.ios.standalone .palette-primary-indigo .article{background:-webkit-linear-gradient(top,#fff 50%,#3f51b5 0);background:linear-gradient(180deg,#fff 50%,#3f51b5 0)}.palette-primary-indigo .article a,.palette-primary-indigo .article code,.palette-primary-indigo .article h1,.palette-primary-indigo .article h2{color:#3f51b5}.palette-primary-indigo .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-indigo .article table th{background:#6f7dc8}.palette-primary-indigo .results .meta{background:#3f51b5}@supports (-webkit-appearance:none){.palette-primary-blue{background:#5677fc}}.palette-primary-blue .footer,.palette-primary-blue .header{background:#5677fc}.palette-primary-blue .drawer .toc a.current,.palette-primary-blue .drawer .toc a:focus,.palette-primary-blue .drawer .toc a:hover{color:#5677fc}.palette-primary-blue .drawer .anchor a{border-left:2px solid #5677fc}.ios.standalone .palette-primary-blue .article{background:-webkit-linear-gradient(top,#fff 50%,#5677fc 0);background:linear-gradient(180deg,#fff 50%,#5677fc 0)}.palette-primary-blue .article a,.palette-primary-blue .article code,.palette-primary-blue .article h1,.palette-primary-blue .article h2{color:#5677fc}.palette-primary-blue .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-blue .article table th{background:#8099fd}.palette-primary-blue .results .meta{background:#5677fc}@supports (-webkit-appearance:none){.palette-primary-light-blue{background:#03a9f4}}.palette-primary-light-blue .footer,.palette-primary-light-blue .header{background:#03a9f4}.palette-primary-light-blue .drawer .toc a.current,.palette-primary-light-blue .drawer .toc a:focus,.palette-primary-light-blue .drawer .toc a:hover{color:#03a9f4}.palette-primary-light-blue .drawer .anchor a{border-left:2px solid #03a9f4}.ios.standalone .palette-primary-light-blue .article{background:-webkit-linear-gradient(top,#fff 50%,#03a9f4 0);background:linear-gradient(180deg,#fff 50%,#03a9f4 0)}.palette-primary-light-blue .article a,.palette-primary-light-blue .article code,.palette-primary-light-blue .article h1,.palette-primary-light-blue .article h2{color:#03a9f4}.palette-primary-light-blue .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-light-blue .article table th{background:#42bff7}.palette-primary-light-blue .results .meta{background:#03a9f4}@supports (-webkit-appearance:none){.palette-primary-cyan{background:#00bcd4}}.palette-primary-cyan .footer,.palette-primary-cyan .header{background:#00bcd4}.palette-primary-cyan .drawer .toc a.current,.palette-primary-cyan .drawer .toc a:focus,.palette-primary-cyan .drawer .toc a:hover{color:#00bcd4}.palette-primary-cyan .drawer .anchor a{border-left:2px solid #00bcd4}.ios.standalone .palette-primary-cyan .article{background:-webkit-linear-gradient(top,#fff 50%,#00bcd4 0);background:linear-gradient(180deg,#fff 50%,#00bcd4 0)}.palette-primary-cyan .article a,.palette-primary-cyan .article code,.palette-primary-cyan .article h1,.palette-primary-cyan .article h2{color:#00bcd4}.palette-primary-cyan .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-cyan .article table th{background:#40cddf}.palette-primary-cyan .results .meta{background:#00bcd4}@supports (-webkit-appearance:none){.palette-primary-teal{background:#009688}}.palette-primary-teal .footer,.palette-primary-teal .header{background:#009688}.palette-primary-teal .drawer .toc a.current,.palette-primary-teal .drawer .toc a:focus,.palette-primary-teal .drawer .toc a:hover{color:#009688}.palette-primary-teal .drawer .anchor a{border-left:2px solid #009688}.ios.standalone .palette-primary-teal .article{background:-webkit-linear-gradient(top,#fff 50%,#009688 0);background:linear-gradient(180deg,#fff 50%,#009688 0)}.palette-primary-teal .article a,.palette-primary-teal .article code,.palette-primary-teal .article h1,.palette-primary-teal .article h2{color:#009688}.palette-primary-teal .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-teal .article table th{background:#40b0a6}.palette-primary-teal .results .meta{background:#009688}@supports (-webkit-appearance:none){.palette-primary-green{background:#259b24}}.palette-primary-green .footer,.palette-primary-green .header{background:#259b24}.palette-primary-green .drawer .toc a.current,.palette-primary-green .drawer .toc a:focus,.palette-primary-green .drawer .toc a:hover{color:#259b24}.palette-primary-green .drawer .anchor a{border-left:2px solid #259b24}.ios.standalone .palette-primary-green .article{background:-webkit-linear-gradient(top,#fff 50%,#259b24 0);background:linear-gradient(180deg,#fff 50%,#259b24 0)}.palette-primary-green .article a,.palette-primary-green .article code,.palette-primary-green .article h1,.palette-primary-green .article h2{color:#259b24}.palette-primary-green .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-green .article table th{background:#5cb45b}.palette-primary-green .results .meta{background:#259b24}@supports (-webkit-appearance:none){.palette-primary-light-green{background:#7cb342}}.palette-primary-light-green .footer,.palette-primary-light-green .header{background:#7cb342}.palette-primary-light-green .drawer .toc a.current,.palette-primary-light-green .drawer .toc a:focus,.palette-primary-light-green .drawer .toc a:hover{color:#7cb342}.palette-primary-light-green .drawer .anchor a{border-left:2px solid #7cb342}.ios.standalone .palette-primary-light-green .article{background:-webkit-linear-gradient(top,#fff 50%,#7cb342 0);background:linear-gradient(180deg,#fff 50%,#7cb342 0)}.palette-primary-light-green .article a,.palette-primary-light-green .article code,.palette-primary-light-green .article h1,.palette-primary-light-green .article h2{color:#7cb342}.palette-primary-light-green .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-light-green .article table th{background:#9dc671}.palette-primary-light-green .results .meta{background:#7cb342}@supports (-webkit-appearance:none){.palette-primary-lime{background:#c0ca33}}.palette-primary-lime .footer,.palette-primary-lime .header{background:#c0ca33}.palette-primary-lime .drawer .toc a.current,.palette-primary-lime .drawer .toc a:focus,.palette-primary-lime .drawer .toc a:hover{color:#c0ca33}.palette-primary-lime .drawer .anchor a{border-left:2px solid #c0ca33}.ios.standalone .palette-primary-lime .article{background:-webkit-linear-gradient(top,#fff 50%,#c0ca33 0);background:linear-gradient(180deg,#fff 50%,#c0ca33 0)}.palette-primary-lime .article a,.palette-primary-lime .article code,.palette-primary-lime .article h1,.palette-primary-lime .article h2{color:#c0ca33}.palette-primary-lime .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-lime .article table th{background:#d0d766}.palette-primary-lime .results .meta{background:#c0ca33}@supports (-webkit-appearance:none){.palette-primary-yellow{background:#f9a825}}.palette-primary-yellow .footer,.palette-primary-yellow .header{background:#f9a825}.palette-primary-yellow .drawer .toc a.current,.palette-primary-yellow .drawer .toc a:focus,.palette-primary-yellow .drawer .toc a:hover{color:#f9a825}.palette-primary-yellow .drawer .anchor a{border-left:2px solid #f9a825}.ios.standalone .palette-primary-yellow .article{background:-webkit-linear-gradient(top,#fff 50%,#f9a825 0);background:linear-gradient(180deg,#fff 50%,#f9a825 0)}.palette-primary-yellow .article a,.palette-primary-yellow .article code,.palette-primary-yellow .article h1,.palette-primary-yellow .article h2{color:#f9a825}.palette-primary-yellow .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-yellow .article table th{background:#fbbe5c}.palette-primary-yellow .results .meta{background:#f9a825}@supports (-webkit-appearance:none){.palette-primary-amber{background:#ffb300}}.palette-primary-amber .footer,.palette-primary-amber .header{background:#ffb300}.palette-primary-amber .drawer .toc a.current,.palette-primary-amber .drawer .toc a:focus,.palette-primary-amber .drawer .toc a:hover{color:#ffb300}.palette-primary-amber .drawer .anchor a{border-left:2px solid #ffb300}.ios.standalone .palette-primary-amber .article{background:-webkit-linear-gradient(top,#fff 50%,#ffb300 0);background:linear-gradient(180deg,#fff 50%,#ffb300 0)}.palette-primary-amber .article a,.palette-primary-amber .article code,.palette-primary-amber .article h1,.palette-primary-amber .article h2{color:#ffb300}.palette-primary-amber .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-amber .article table th{background:#ffc640}.palette-primary-amber .results .meta{background:#ffb300}@supports (-webkit-appearance:none){.palette-primary-orange{background:#fb8c00}}.palette-primary-orange .footer,.palette-primary-orange .header{background:#fb8c00}.palette-primary-orange .drawer .toc a.current,.palette-primary-orange .drawer .toc a:focus,.palette-primary-orange .drawer .toc a:hover{color:#fb8c00}.palette-primary-orange .drawer .anchor a{border-left:2px solid #fb8c00}.ios.standalone .palette-primary-orange .article{background:-webkit-linear-gradient(top,#fff 50%,#fb8c00 0);background:linear-gradient(180deg,#fff 50%,#fb8c00 0)}.palette-primary-orange .article a,.palette-primary-orange .article code,.palette-primary-orange .article h1,.palette-primary-orange .article h2{color:#fb8c00}.palette-primary-orange .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-orange .article table th{background:#fca940}.palette-primary-orange .results .meta{background:#fb8c00}@supports (-webkit-appearance:none){.palette-primary-deep-orange{background:#ff7043}}.palette-primary-deep-orange .footer,.palette-primary-deep-orange .header{background:#ff7043}.palette-primary-deep-orange .drawer .toc a.current,.palette-primary-deep-orange .drawer .toc a:focus,.palette-primary-deep-orange .drawer .toc a:hover{color:#ff7043}.palette-primary-deep-orange .drawer .anchor a{border-left:2px solid #ff7043}.ios.standalone .palette-primary-deep-orange .article{background:-webkit-linear-gradient(top,#fff 50%,#ff7043 0);background:linear-gradient(180deg,#fff 50%,#ff7043 0)}.palette-primary-deep-orange .article a,.palette-primary-deep-orange .article code,.palette-primary-deep-orange .article h1,.palette-primary-deep-orange .article h2{color:#ff7043}.palette-primary-deep-orange .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-deep-orange .article table th{background:#ff9472}.palette-primary-deep-orange .results .meta{background:#ff7043}@supports (-webkit-appearance:none){.palette-primary-brown{background:#795548}}.palette-primary-brown .footer,.palette-primary-brown .header{background:#795548}.palette-primary-brown .drawer .toc a.current,.palette-primary-brown .drawer .toc a:focus,.palette-primary-brown .drawer .toc a:hover{color:#795548}.palette-primary-brown .drawer .anchor a{border-left:2px solid #795548}.ios.standalone .palette-primary-brown .article{background:-webkit-linear-gradient(top,#fff 50%,#795548 0);background:linear-gradient(180deg,#fff 50%,#795548 0)}.palette-primary-brown .article a,.palette-primary-brown .article code,.palette-primary-brown .article h1,.palette-primary-brown .article h2{color:#795548}.palette-primary-brown .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-brown .article table th{background:#9b8076}.palette-primary-brown .results .meta{background:#795548}@supports (-webkit-appearance:none){.palette-primary-grey{background:#757575}}.palette-primary-grey .footer,.palette-primary-grey .header{background:#757575}.palette-primary-grey .drawer .toc a.current,.palette-primary-grey .drawer .toc a:focus,.palette-primary-grey .drawer .toc a:hover{color:#757575}.palette-primary-grey .drawer .anchor a{border-left:2px solid #757575}.ios.standalone .palette-primary-grey .article{background:-webkit-linear-gradient(top,#fff 50%,#757575 0);background:linear-gradient(180deg,#fff 50%,#757575 0)}.palette-primary-grey .article a,.palette-primary-grey .article code,.palette-primary-grey .article h1,.palette-primary-grey .article h2{color:#757575}.palette-primary-grey .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-grey .article table th{background:#989898}.palette-primary-grey .results .meta{background:#757575}@supports (-webkit-appearance:none){.palette-primary-blue-grey{background:#546e7a}}.palette-primary-blue-grey .footer,.palette-primary-blue-grey .header{background:#546e7a}.palette-primary-blue-grey .drawer .toc a.current,.palette-primary-blue-grey .drawer .toc a:focus,.palette-primary-blue-grey .drawer .toc a:hover{color:#546e7a}.palette-primary-blue-grey .drawer .anchor a{border-left:2px solid #546e7a}.ios.standalone .palette-primary-blue-grey .article{background:-webkit-linear-gradient(top,#fff 50%,#546e7a 0);background:linear-gradient(180deg,#fff 50%,#546e7a 0)}.palette-primary-blue-grey .article a,.palette-primary-blue-grey .article code,.palette-primary-blue-grey .article h1,.palette-primary-blue-grey .article h2{color:#546e7a}.palette-primary-blue-grey .article .headerlink{color:rgba(0,0,0,.26)}.palette-primary-blue-grey .article table th{background:#7f929b}.palette-primary-blue-grey .results .meta{background:#546e7a}.palette-accent-red .article a:focus,.palette-accent-red .article a:hover{color:#ff2d6f}.palette-accent-red .repo a{background:#ff2d6f}.palette-accent-pink .article a:focus,.palette-accent-pink .article a:hover{color:#f50057}.palette-accent-pink .repo a{background:#f50057}.palette-accent-purple .article a:focus,.palette-accent-purple .article a:hover{color:#e040fb}.palette-accent-purple .repo a{background:#e040fb}.palette-accent-deep-purple .article a:focus,.palette-accent-deep-purple .article a:hover{color:#7c4dff}.palette-accent-deep-purple .repo a{background:#7c4dff}.palette-accent-indigo .article a:focus,.palette-accent-indigo .article a:hover{color:#536dfe}.palette-accent-indigo .repo a{background:#536dfe}.palette-accent-blue .article a:focus,.palette-accent-blue .article a:hover{color:#6889ff}.palette-accent-blue .repo a{background:#6889ff}.palette-accent-light-blue .article a:focus,.palette-accent-light-blue .article a:hover{color:#0091ea}.palette-accent-light-blue .repo a{background:#0091ea}.palette-accent-cyan .article a:focus,.palette-accent-cyan .article a:hover{color:#00b8d4}.palette-accent-cyan .repo a{background:#00b8d4}.palette-accent-teal .article a:focus,.palette-accent-teal .article a:hover{color:#00bfa5}.palette-accent-teal .repo a{background:#00bfa5}.palette-accent-green .article a:focus,.palette-accent-green .article a:hover{color:#12c700}.palette-accent-green .repo a{background:#12c700}.palette-accent-light-green .article a:focus,.palette-accent-light-green .article a:hover{color:#64dd17}.palette-accent-light-green .repo a{background:#64dd17}.palette-accent-lime .article a:focus,.palette-accent-lime .article a:hover{color:#aeea00}.palette-accent-lime .repo a{background:#aeea00}.palette-accent-yellow .article a:focus,.palette-accent-yellow .article a:hover{color:#ffd600}.palette-accent-yellow .repo a{background:#ffd600}.palette-accent-amber .article a:focus,.palette-accent-amber .article a:hover{color:#ffab00}.palette-accent-amber .repo a{background:#ffab00}.palette-accent-orange .article a:focus,.palette-accent-orange .article a:hover{color:#ff9100}.palette-accent-orange .repo a{background:#ff9100}.palette-accent-deep-orange .article a:focus,.palette-accent-deep-orange .article a:hover{color:#ff6e40}.palette-accent-deep-orange .repo a{background:#ff6e40}@media only screen and (max-width:959px){.palette-primary-red .project{background:#e84e40}.palette-primary-pink .project{background:#e91e63}.palette-primary-purple .project{background:#ab47bc}.palette-primary-deep-purple .project{background:#7e57c2}.palette-primary-indigo .project{background:#3f51b5}.palette-primary-blue .project{background:#5677fc}.palette-primary-light-blue .project{background:#03a9f4}.palette-primary-cyan .project{background:#00bcd4}.palette-primary-teal .project{background:#009688}.palette-primary-green .project{background:#259b24}.palette-primary-light-green .project{background:#7cb342}.palette-primary-lime .project{background:#c0ca33}.palette-primary-yellow .project{background:#f9a825}.palette-primary-amber .project{background:#ffb300}.palette-primary-orange .project{background:#fb8c00}.palette-primary-deep-orange .project{background:#ff7043}.palette-primary-brown .project{background:#795548}.palette-primary-grey .project{background:#757575}.palette-primary-blue-grey .project{background:#546e7a}}
\ No newline at end of file
diff --git a/it4i_theme/base.html b/it4i_theme/base.html
index c49699ad3a7212c99f275275b76ea88753340977..f893ce18a0ef1d7c86200e297eb392aa07e4ccf4 100644
--- a/it4i_theme/base.html
+++ b/it4i_theme/base.html
@@ -34,7 +34,7 @@
     {% if config.extra.logo %}
       <link rel="apple-touch-icon" href="{{ base_url }}/{{ config.extra.logo }}">
     {% endif %}
-    {% set favicon = favicon | default("img/favicon.ico", true) %}
+    {% set favicon = favicon | default("assets/images/favicon-e565ddfa3b.ico", true) %}
     <link rel="shortcut icon" type="image/x-icon" href="{{ base_url }}/{{ favicon }}">
     <link rel="icon" type="image/x-icon" href="{{ base_url }}/{{ favicon }}">
     <style>
@@ -53,14 +53,15 @@
       	font-style: normal;
       }
     </style>
-    <link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/application.css">
+    <link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/application-a422ff04cc.css">
     {% if config.extra.palette %}
-      <link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/palettes.css">
+      <link rel="stylesheet" href="{{ base_url }}/assets/stylesheets/palettes-05ab2406df.css">
     {% endif %}
     {% if config.extra.font != "none" %}
       {% set text = config.extra.get("font", {}).text | default("Ubuntu") %}
       {% set code = config.extra.get("font", {}).code | default("Ubuntu Mono") %}
       {% set font = text + ':400,700|' + code | replace(' ', '+') %}
+      <link rel="stylesheet" href="https://fonts.googleapis.com/css?family={{ font }}">
       <style>
         body, input {
           font-family: '{{ text }}', Helvetica, Arial, sans-serif;
@@ -73,7 +74,7 @@
     {% for path in extra_css %}
       <link rel="stylesheet" href="{{ path }}">
     {% endfor %}
-    <script src="{{ base_url }}/assets/javascripts/modernizr.js"></script>
+    <script src="{{ base_url }}/assets/javascripts/modernizr-4ab42b99fd.js"></script>
     {% block extrahead %}{% endblock %}
   </head>
   {% set palette = config.extra.get("palette", {}) %}
@@ -138,7 +139,8 @@
       var base_url = '{{ base_url }}';
       var repo_id  = '{{ repo_id }}';
     </script>
-    <script src="{{ base_url }}/assets/javascripts/application.js"></script>
+    <script src="{{ base_url }}/assets/javascripts/application-997097ee0c.js"></script>
+   <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
     {% for path in extra_javascript %}
       <script src="{{ path }}"></script>
     {% endfor %}
diff --git a/it4i_theme/drawer.html b/it4i_theme/drawer.html
index 42ed49eca1e865dbe2c731e37823699666d5165d..c13075d4843678a659a57c01fdb38827acedc4b5 100644
--- a/it4i_theme/drawer.html
+++ b/it4i_theme/drawer.html
@@ -1,5 +1,5 @@
 <nav aria-label="Navigation">
-{% set home = repo_url | default("/", true) %}
+  {% set home = repo_url | default("/", true) %}
   <a href="{{ home }}" class="project">
     <div class="banner">
       {% if config.extra.logo %}
@@ -7,18 +7,68 @@
           <img src="{{ base_url }}/{{ config.extra.logo }}">
         </div>
       {% endif %}
+      <div class="name">
+        <strong>
+          {{ site_name }}
+          <span class="version">
+            {{ config.extra.version }}
+          </span>
+        </strong>
+        {% if repo_id %}
+          <br>
+          {{ repo_id }}
+        {% endif %}
+      </div>
     </div>
   </a>
-  <div class="scrollable"> 
+  <div class="scrollable">
     <div class="wrapper">
+      {% if repo_name == "GitHub" and repo_url %}
+        <ul class="repo">
+          <li class="repo-download">
+            {% set version = config.extra.version | default("master") %}
+            <a href="{{ repo_url }}/archive/{{ version }}.zip" target="_blank" title="Download" data-action="download">
+              <i class="icon icon-download"></i> Download
+            </a>
+          </li>
+          <li class="repo-stars">
+            <a href="{{ repo_url }}/stargazers" target="_blank" title="Stargazers" data-action="star">
+              <i class="icon icon-star"></i> Stars
+              <span class="count">&ndash;</span>
+            </a>
+          </li>
+        </ul>
         <hr>
+      {% endif %}
       <div class="toc">
         <ul>
           {% for nav_item in nav %}
             {% include "nav.html" %}
           {% endfor %}
         </ul>
+        {% if config.extra.author %}
+          <hr>
+          <span class="section">The author</span>
+          <ul>
+            {% if config.extra.author.twitter %}
+              {% set author = config.extra.author.twitter %}
+              <li>
+                <a href="https://twitter.com/{{ author }}" target="_blank" title="@{{ author }} on Twitter">
+                  @{{ author }} on Twitter
+                </a>
+              </li>
+            {% endif %}
+            {% if config.extra.author.github %}
+              {% set author = config.extra.author.github %}
+              <li>
+                <a href="https://github.com/{{ author }}" target="_blank" title="@{{ author }} on GitHub">
+                  @{{ author }} on GitHub
+                </a>
+              </li>
+            {% endif %}
+          </ul>
+        {% endif %}
       </div>
     </div>
   </div>
-</nav>
+</nav>
\ No newline at end of file
diff --git a/it4i_theme/footer.html b/it4i_theme/footer.html
index a8fb48b9f392201b2e83d93fa514abf3c3a177b9..660b28f675bed601c659042ae28edc4e8001cbf5 100644
--- a/it4i_theme/footer.html
+++ b/it4i_theme/footer.html
@@ -39,4 +39,4 @@
       {% endif %}
     </div>
   </nav>
-{% endif %}
+{% endif %}
\ No newline at end of file
diff --git a/it4i_theme/header.html b/it4i_theme/header.html
index 6cc7aee1b9aaec4205624fc4cded26ede1555344..f910b5b8d1bc937098b0201a91385178d60d793e 100644
--- a/it4i_theme/header.html
+++ b/it4i_theme/header.html
@@ -22,12 +22,18 @@
         {{ page_title | default(site_name, true) }}
       </div>
     </div>
-      <div class="button button-github" role="button" aria-label="GitHub">
-        <a href="https://gitlab.it4i.cz/kru0052/docs.it4i" title="on GitLab" target="_blank" ><img src="/img/git.png" width="30" height="30"></a>
-      </div>
+    {% if config.extra.get("author", {}).twitter %}
+      {% set author = config.extra.author.twitter %}
       <div class="button button-twitter" role="button" aria-label="Twitter">
-        <a href="/all.pdf" title="DOWNLOAD PDF VERSION" target="_blank"><img src="/img/download.png" width="30" height="30"></a>
+        <a href="https://twitter.com/{{ author }}" title="@{{ author }} on Twitter" target="_blank" class="toggle-button icon icon-twitter"></a>
+      </div>
+    {% endif %}
+    {% if config.extra.get("author", {}).github %}
+      {% set author = config.extra.author.github %}
+      <div class="button button-github" role="button" aria-label="GitHub">
+        <a href="https://github.com/{{ author }}" title="@{{ author }} on GitHub" target="_blank" class="toggle-button icon icon-github"></a>
       </div>
+    {% endif %}
     <div class="button button-search" role="button" aria-label="Search">
       <label class="toggle-button icon icon-search" title="Search" for="toggle-search"></label>
     </div>
@@ -45,4 +51,4 @@
       <button class="toggle-button icon icon-close" id="reset-search"></button>
     </div>
   </div>
-</nav>
+</nav>
\ No newline at end of file
diff --git a/scripts/anselm_modules.txt b/scripts/anselm_modules.txt
deleted file mode 100644
index a9fa6c575e3b9a9bae6257f6eec0a10bcc2b9366..0000000000000000000000000000000000000000
--- a/scripts/anselm_modules.txt
+++ /dev/null
@@ -1,141 +0,0 @@
-APR|1.5.2-foss-2015g;1.5.2
-APR-util|1.5.4;1.5.4-foss-2015g
-ATLAS|3.10.1-GCC-4.9.3-2.25-LAPACK-3.4.2
-Autoconf|2.69;2.69-GNU-4.9.3-2.25;2.69-intel-2015b
-Automake|1.15-GNU-4.9.3-2.25;1.15-intel-2015b;1.15
-Autotools|20150215-GNU-4.9.3-2.25;20150215-intel-2015b;20150215
-Bash|4.3
-binutils|2.25;2.26;2.25-GCC-5.1.0-binutils-2.25;2.25-GCCcore-4.9.3;2.26-GCCcore-5.3.0;2.25-GCC-4.9.3;2.25-GCC-4.9.3-binutils-2.25
-Bison|3.0.4-GCC-4.9.3;3.0.4;3.0.2;2.7;3.0.4-intel-2015b;3.0.4-GCC-4.9.3-binutils-2.25;3.0.4-GCC-5.1.0-binutils-2.25;3.0.4-GCCcore-4.9.3;3.0.4-GCCcore-5.3.0
-Boost|1.58.0-foss-2015g-Python-2.7.9;1.60.0-intel-2016a;1.59.0-intel-2015b
-bullxde|2.0
-bullxmpi|bullxmpi-1.2.4.3
-byacc|20150711-intel-2015b;20120526
-bzip2|1.0.6-intel-2016.01;1.0.6;1.0.6-intel-2016a;1.0.6-intel-2015b;1.0.6-foss-2015g
-cairo|1.12.18
-CMake|3.5.2-intel-2016a;3.3.1-GCC-4.9.3-2.25;3.4.1-intel-2015b;3.5.2
-CUDA|7.5.18
-cURL|7.37.1-foss-2015g;7.37.1
-Doxygen|1.8.11
-EasyBuild|2.6.0;2.8.1;2.7.0;2.8.0
-expat|2.1.0-foss-2015g;2.1.0
-ffmpeg|2.4
-FFTW|3.3.4-gompi-2016.04;3.3.4-gompi-2015g
-fixesproto|5.0
-flex|2.5.39-GCC-5.1.0-binutils-2.25;2.6.0;2.5.39-GCC-4.9.3-binutils-2.25;2.5.39-GCC-4.9.3;2.6.0-GCCcore-5.3.0;2.5.39;2.5.39-GCCcore-4.9.3;2.5.39-intel-2015b
-FLTK|1.3.2
-fontconfig|2.11.1
-fontsproto|2.1.3
-Forge|6.0.6;5.7;6.0.5;5.1-43967
-foss|2016.04;2015g
-freetype|2.5.3
-GCC|4.9.3-binutils-2.25;5.1.0-binutils-2.25;5.3.0-2.26;4.9.3;4.9.3-2.25;5.3.0-binutils-2.25
-GCCcore|5.3.0;4.9.3
-GDAL|2.1.0-foss-2015g;1.9.2-foss-2015g
-gettext|0.19.2;0.19.2-foss-2015g
-gimkl|2.11.5
-gimpi|2.11.5
-git|2.8.0-GNU-4.9.3-2.25
-.git|HEAD;ORIG_HEAD;FETCH_HEAD;description;COMMIT_EDITMSG;config;index
-GLib|2.40.0
-GMP|6.1.0-intel-2015b;5.0.5;6.0.0a;6.0.0a-intel-2015b
-GNU|4.9.3-2.25;5.1.0-2.25
-gompi|2016.04;2015g
-GROMACS|5.1.2-intel-2015b-hybrid-single-cuda;5.1.2-intel-2016a-hybrid;5.1.2-intel-2015b-hybrid-single-CUDA-7.5-PLUMED-2.2.1
-GSL|2.1-intel-2015b;1.16-intel-2015b;1.16-intel-2016.01
-guile|1.8.8;1.8.8-intel-2015b
-gzip|1.6-foss-2015g;1.6
-HDF5|1.8.16-intel-2016.01;1.8.16-intel-2015b
-hwloc|1.11.0;1.11.3-GCC-5.3.0-2.26;1.11.0-GNU-4.9.3-2.25
-icc|2015.3.187-GNU-5.1.0-2.25;2016.1.150-GCC-4.9.3-2.25
-iccifort|2015.3.187-GNU-5.1.0-2.25;2016.1.150-GCC-4.9.3-2.25
-ifort|2015.3.187-GNU-5.1.0-2.25;2016.1.150-GCC-4.9.3-2.25
-iimpi|8.1.5-GCC-4.9.3-2.25;7.3.5-GNU-5.1.0-2.25;2016.01-GCC-4.9.3-2.25
-imkl|11.2.3.187-gimpi-2.11.5;11.3.1.150-iimpi-2016.01-GCC-4.9.3-2.25;11.2.3.187-iimpi-7.3.5-GNU-5.1.0-2.25;11.3.1.150-iimpi-8.1.5-GCC-4.9.3-2.25
-impi|5.1.2.150-iccifort-2016.1.150-GCC-4.9.3-2.25;5.0.3.048-iccifort-2015.3.187-GNU-5.1.0-2.25;5.0.3.048-GCC-4.9.3
-inputproto|2.3
-intel|2015b;2016.01;2016a
-ISL|0.15
-Java|1.8.0_51
-JOE|4.2
-kbproto|1.0.6
-libdrm|2.4.27
-libffi|3.0.13;3.1-intel-2015b;3.0.13-intel-2015b;3.1-intel-2016.01
-libfontenc|1.1.3
-libgdiplus|3.12
-libICE|1.0.9
-libjpeg-turbo|1.4.0
-libmatheval|1.1.8;1.1.11-intel-2015b
-libpciaccess|0.13.1
-libpng|1.6.12
-libpthread-stubs|0.3
-libreadline|6.3-intel-2016.01;6.3-foss-2015g;6.3-gimkl-2.11.5;6.3-intel-2015b;6.3
-libSM|1.2.2
-LibTIFF|4.0.3
-libtool|2.4.2;2.4.6-intel-2015b;2.4.6-GNU-5.1.0-2.25;2.4.6;2.4.6-GNU-4.9.3-2.25
-libunistring|0.9.3;0.9.3-intel-2015b
-libX11|1.6.2-Python-2.7.9
-libXau|1.0.8
-libxcb|1.11-Python-2.7.9
-libXdmcp|1.1.2
-libXext|1.3.3
-libXfixes|5.0.1
-libXfont|1.5.1-Python-2.7.9
-libxml2|2.9.3-intel-2016a;2.9.2-intel-2015b
-libXt|1.1.4-libX11-1.6.2
-M4|1.4.17;1.4.17-GCCcore-5.3.0;1.4.17-GCC-4.9.3;1.4.17-GCC-4.9.3-binutils-2.25;1.4.17-GNU-4.9.3-2.25;1.4.17-GCCcore-4.9.3;1.4.17-GNU-5.1.0-2.25;1.4.17-intel-2015b;1.4.17-GCC-5.1.0-binutils-2.25
-make|3.82
-makedepend|1.0.4
-MATLAB|2015b-EDU;2015b-COM
-Mercurial|3.7.3-foss-2015g-Python-2.7.9
-MLD2P4|2.0-rc4-GCC-4.9.3-2.25
-#Modules
-MPICH|3.2-GCC-4.9.3-2.25
-NASM|2.11.05
-ncurses|5.9-intel-2016.01;5.9-intel-2015b;5.9-gimkl-2.11.5;5.9-foss-2015g;5.9;5.9-GCC-4.9.3-2.25;6.0-intel-2016a;6.0;5.9-GNU-4.9.3-2.25
-numactl|2.0.11-GCC-5.3.0-2.26;2.0.11;2.0.10-GNU-4.9.3-2.25;2.0.10
-numpy|1.8.2-intel-2015b-Python-2.7.9;1.8.2-intel-2015b-Python-2.7.11;1.8.2-intel-2016.01-Python-2.7.9
-Octave|3.8.2-gimkl-2.11.5;4.0.0-foss-2015g;4.0.1-gimkl-2.11.5
-OPARI2|2.0
-OpenBLAS|0.2.14-GNU-4.9.3-2.25-LAPACK-3.5.0;0.2.18-GCC-5.3.0-2.26-LAPACK-3.6.0
-OpenMPI|1.10.2-GCC-5.3.0-2.26;1.8.8-GNU-4.9.3-2.25
-oscar-modules|.version;1.0.3
-OTF2|2.0
-PAPI|5.4.3
-PCRE|8.37;8.37-intel-2016.01;8.37-gimkl-2.11.5;8.37-foss-2015g
-PerformanceReports|6.0.6
-Perl|5.20.2-GNU-4.9.3-2.25-bare
-pixman|0.32.6
-pkg-config|0.27.1;0.27.1-intel-2015b
-PLUMED|2.2.1-intel-2015b
-prace|globus;prace
-PSBLAS|3.3.4-3-GCC-4.9.3-2.25
-PSBLAS-ext|1.0-4-GCC-4.9.3-2.25
-Python|2.7.9-intel-2015b;2.7.9-foss-2015g;2.7.9-intel-2016.01;2.7.11-intel-2015b;2.7.9
-Qt|4.8.6
-renderproto|0.11
-Ruby|2.3.1
-ScaLAPACK|2.0.2-gompi-2015g-OpenBLAS-0.2.14-LAPACK-3.5.0;2.0.2-gompi-2016.04-OpenBLAS-0.2.18-LAPACK-3.6.0
-ScientificPython|2.9.4-intel-2016.01-Python-2.7.9;2.9.4-intel-2015b-Python-2.7.9;2.9.4-intel-2015b-Python-2.7.11
-SCons|2.3.6-foss-2015g-Python-2.7.9
-Serf|1.3.8-foss-2015g
-SIONlib|1.6.1-tools
-spGPU|master-GCC-4.9.3-2.25
-SQLite|3.8.8.1-intel-2015b;3.8.8.1-foss-2015g;3.8.8.1;3.9.2-intel-2015b;3.8.8.1-intel-2016.01
-Subversion|1.8.16-foss-2015g
-Szip|2.1-intel-2015b;2.1-intel-2016.01;2.1
-Tcl|8.6.4;8.6.3-intel-2016.01;8.6.3-intel-2015b;8.6.4-intel-2015b;8.6.3;8.6.3-foss-2015g;8.5.12
-tcsh|6.19.00
-Tk|8.6.4-intel-2015b-no-X11;8.6.4-no-X11;8.5.12
-tools|use.own
-util-linux|2.26.1
-Vampir|8.5.0
-VTune|2016_update1
-xbitmaps|1.1.1
-xcb-proto|1.11-Python-2.7.9
-xextproto|7.3.0
-xineramaproto|1.2.1
-xorg-macros|1.17
-xproto|7.0.26
-xtrans|1.3.5;1.3.4
-zlib|1.2.8-intel-2015b;1.2.8-GCC-5.1.0-binutils-2.25;1.2.8-GCC-4.9.3-binutils-2.25;1.2.8-GCCcore-4.9.3;1.2.8-foss-2015g;1.2.8;1.2.8-intel-2016a;1.2.8-intel-2016.01;1.2.8-GCC-4.9.3;1.2.8-GCCcore-5.3.0
diff --git a/scripts/downtimes_history.md b/scripts/downtimes_history.md
deleted file mode 100644
index a4e77cff5a735a3d0ca45a27f72940fe4b88e82a..0000000000000000000000000000000000000000
--- a/scripts/downtimes_history.md
+++ /dev/null
@@ -1,53 +0,0 @@
-History of Downtimes
-====================
-
-Full history of important announcements related to IT4I infrastructure, planned downtimes, outages etc.
-
- |Date and time |Title and description |
- | --- | --- |
-|2016-09-26|**Salomon Maintenance** The Salomon supercomputer will be down for the updates from 2016-10-11 08:00 CEST to 2016-10-12 17:00 CEST.|
- |2016-08-29 00:00:00 |**Salomon Maintenance** The Salomon supercomputer will be down for the updates from 2016-09-19 11:00 CEST to 2016-09-21 11:00 CEST. |
- |2016-07-29 00:00:00 |**Anselm outage** There was an unplanned outage of Anselm cluster due to network problems. Anselm is now back in production. |
- |2016-07-27 13:28:51 |**Back in Production** The Salomon and Anselm supercomputers are online! The flooding in the computer room caused by the failed coolant water pipe is now cleared, damage to infrastructure is virtually none.The 8th Open Access Call deadline is extended till Friday 2016-07-29 to compensate the inaccessibility of the extranet.it4i.cz portal. |
- |2016-07-20 08:45:00 |**Anselm planned downtime** There's a planned maintenance window from 2016-08-16 07:00 till 2016-08-18 16:00 CEST. |
- |2016-06-29 13:50:00 |**Salomon cluster maintenance outage prolonged** Important! Salomon cluster maintenance outage will be prolonged till 2016-06-29 20:00 CEST. |
- |2016-06-16 00:00:00 |**Salomon planned downtime** There's a planned maintenance window from 2016-06-28 09:00 till 2016-06-29 20:00 CEST.Thank you for understanding,the IT4Innovations team |
- |2016-05-26 10:31:44 |**Salomon planned downtime** There's a planned maintenance window from 2016-06-08 09:00 till 2016-06-09 09:00 CEST.Thank you for understanding,the IT4Innovations team |
- |2016-04-27 15:57:28 |**Salomon cluster maintenance outage prolonged** Important! Salomon cluster maintenance outage will be prolonged till 2016-04-28 14:00 CEST |
- |2016-03-31 19:03:25 |**Failure on Salomon Cooling System** We have very serious issue with Salomon cooling system since 2016-03-31 10:00. We are working to resolve the issue. |
- |2016-03-31 18:59:04 |**Salomon Back in Production** As of 2016-03-31 19:30 CET, the Salomon is back in production. The outage was caused by an issue in cooling system. |
- |2016-03-30 15:57:57 |**PBS malfunction** We've had several issues with PBS scheduler since 2016-03-30 13:00 CEST. We are still working on it. |
- |2016-03-26 09:52:41 |**Salomon back to production** We have recovered all the issues with the Salomon cluster. |
- |2016-03-26 09:51:16 |**Failure on Salomon Cooling Infrastructure** We had an issue with the cooling infra of Salomon. This issue led to InfiniBand and storage outage. We are working to resolve the issue. |
- |2016-03-14 14:57:51 |**Infrastructure Maintenance** The Salomon supercomputer will be down for the maintenance from 2016-03-22 10:00 CEST to 2016-03-22 17:00 CEST. |
- |2016-02-24 12:30:00 |**Anselm Upgrade** The Anselm supercomputer will be down for the updates from 2016-02-01 to 2016-02-29. |
- |2016-02-23 08:45:45 |**Anselm Upgrade** The Anselm supercomputer will be down for the updates from 2016-02-01 to 2016-02-29. |
- |2016-02-14 08:07:46 |**Failure on Salomon Infiniband Network** We have very serious issue with Salomon Infiniband network since 2016-02-11 10:18. We are working to resolve the issue as quickly as possible and apologize for any inconvenience. |
- |2016-02-04 11:53:30 |**Short network outage** We need to apply some changes in network devices settings which may cause short network outage for Anselm Login nodes. This work will start around 6 am 2016-01-26.Thanks for your understanding. |
- |2016-02-04 11:52:37 |**Salomon Upgrade** The Salomon supercomputer will be down for the updates from 2016-02-16 09:00 CEST to 2016-02-16 13:00 CEST. |
- |2016-02-04 11:52:25 |**Salomon Upgrade** The Salomon supercomputer will be down for the updates from 2016-02-16 09:00 CEST to 2016-02-16 13:00 CEST. |
- |2015-11-26 08:11:25 |**/home downtime** Dear HPC usersThere's a /home downtime on the Salomon supercomputer planned for 25th November. The reason is a maintenance of the underlying CXFS filesystem. Your jobs will be scheduled with respect to this maintenance window.Thank you for understanding,the IT4I team |
- |2015-11-24 09:10:15 |**The /home filesystem was down** On 23.11.2015, 13:55 - 14:55, the /home filesystem was down due to acute technical problems.>We apologize for inconvenience. |
- |2015-09-04 16:14:12 |**SCRATCH downtime** Dear IT4I usersSalomon's SCRATCH will *not* be accessible on Thursday (10th September 2015) from 13:00 till 18:00 CEST.Thank you for understanding,the IT4Innovations team |
- |2015-08-27 00:00:00 |**Today's SCRATCH downtime** Dear IT4I usersWe are sorry for today's (27th August) inaccessibility of SCRATCH filesystem due to a broken service which normally provides mapping for user/group IDs (UIDs/GIDs). The issue has been fixed. No data were lost.Thank you for understanding,the IT4Innovations team |
- |2015-08-12 00:00:00 |**Unplanned downtime** Dear Salomon users,there was an unplanned downtime of the non-accelerated nodes. At this moment, systems are booting and we are revising consequences. Temporarily inaccessible SCRATCH filesystem is one of them.We're sorry for the inconvenience,the IT4I team |
- |2015-08-06 00:00:00 |**SCRATCH downtime** Dear IT4I usersSalomon's SCRATCH will not be accessible tomorrow (7th August 2015) from 08:30 till 11:00 CEST.Thank you for understanding,the IT4Innovations team |
- |2014-11-14 10:27:51 |**Unplanned PBS Downtime** Dear Anselm users,we apologize for the unavailability of our PBS scheduler during the last weekend. However, running jobs shouldn't have been affected at that time.Thank you for understanding,Anselm Admins |
- |2014-11-14 10:27:50 |**Login1 troubles** Login1 had a short unplanned downtime. Sorry for the troubles. |
- |2014-10-14 20:30:00 |**Unexpected power failure** Dear Anselm users,>>on Tuesday 14th approximately at 17:20 CEST we encountered power failure during service operation on backup diesel generator. The system shut down. Additional checks after the shutdown took more time than what would expect. The system was back on-line with all services approximately at 21:00 CEST. We are very sorry for any troubles, this matter may caused you.  If some of your jobs ended in incorrect state, please feel free to reclaim your core hours.>>Thank you for understanding, Anselm Administrators |
- |2014-07-17 13:50:00 |**Login2(!) downtime** Dear Anselm users,there's an upgrade planned on Friday, 18th July from 13:00 till 16:00 CEST. Please, take in mind that login2.anselm.it4i.cz will be unavailable at the given time-frame. We are sorry for the inconvenience.Thank you for understanding,Anselm Admins |
- |2014-07-16 13:11:34 |**Login1 downtime** Dear Anselm users,there's an upgrade planned on Thursday, 17th July from 13:00 till 16:00 CEST. Please, take in mind that login1.anselm.it4i.cz will be unavailable at the given time-frame. We are sorry for the inconvenience.Thank you for understanding,Anselm Admins |
- |2014-06-18 10:51:56 |**Login2 downtime** Dear Anselm users,there's an upgrade planned on Wednesday, 18th June from 11:20 till 14:20 CEST. Please, take in mind that login2.anselm.it4i.cz will be unavailable at the given time-frame. We are sorry for the inconvenience.Thank you for understanding,Anselm Admins |
- |2014-05-22 00:00:00 |**Outage** Dear Anselm users.As of today (20140523 10:45) we had an unmanaged outage of a few nodes. Affected nodes were cn[117-126,193-195].Sorry for the inconveniences,Anselm admins |
- |2014-04-11 11:30:00 |**Heartbleed bug** Dear users of the Anselm cluster,A serious bug in the OpenSSL library, known as the &quot;Heartbleed bug&quot; has been recently discovered. >We would like to ensure you that IT4I has taken all necessary steps to fix the OpenSSL library on all the systems.The bug in OpenSSL library affected many sites worldwide for nearly two years. At this moment, there is no evidence that any abuse of data took place at IT4I.In order to ensure the security and integrity of IT4I systems, all users will be issued new login credentials, including password and ssh keys. For more informations about the Heartbleed bug, please see: [https://docs.it4i.cz/heartbleed-bug](https://docs.it4i.cz/heartbleed-bug) Thank you for your understanding.IT4Innovations team |
- |2014-04-02 13:05:00 |**Scheduler is Down** We are sorry for the current scheduler issues which are caused by an inconsistency of the internal PBS database. Thus it's not possible to interact with the scheduler now. In addition, some jobs may be affected and some job outputs may not be retrieved at this moment. |
- |2014-03-26 15:50:00 |**Temporary Scratch Mount on Login1** Because of the Lustre issues (mentioned in previous announcements) there's a temporary mount point for Scratch filesystem on login1 node. Please, follow this path to access your data:/scratch_nfs/ |
- |2014-03-26 13:10:00 |**Both Login Nodes Inaccessible** We are sorry for the inaccessibility of both login nodes. We are co-operating with our supplier and trying hard to solve this problem as soon as possible.Thank you for understanding. |
- |2014-03-25 22:05:00 |**Login1(!) Not Responding** Currently, if you're having trouble while accessing Anselm, please use address login2.anselm.it4i.cz instead of anselm.it4i.cz. There's a Lustre issue with the login1 node, which causes it to not respond.We'll let you know by MOTD when login1 comes back online. |
- |2013-12-03 00:00:00 |**Planned Downtime** On 17th December 08:00 to 18:00 CET Anselm will be down for maintenance. Power supply upgrade will take place, as well as system maintenance and software updates.Prior to the period:- Jobs will be scheduled for running with a respect to the downtime.During the period:- No Anselm HPC service will be available.- Following web applications will not be accessible: Request Tracker, Anselm cluster documentation, Anselm Allocation.- Submitting tickets through the e-mail address will be delayed.After the period:- All service will be brought back to normal.- Jobs in a 'Q' state will be scheduled for running.We are sorry for the inconvenience. |
- |2013-10-14 00:00:00 |**Cooling system unstable** Dear Anselm users,there was an unplanned downtime due to severe issues with the cold doors today. We are trying hard to bring all services up. We assume that we will finish the maintenance at about 13:30 CEST.Thank you for understanding.Sincerely yours,Anselm admins |
- |2013-09-17 15:50:00 |**A Fair Amount of Nodes Down** Dear Anselm users,We had an outage on the Anselm Cluster. A fair amount of the nodes was unavailable to production.Consider terminated job resubmission.We are sorry for the troubles,Anselm admins |
- |2013-08-23 15:25:00 |**Infiniband Maintenance Window** Dear Anselm users,We would like to inform you about a planned Infiniband maintenance window, on Wednesday, 28th August from 09:00 till 16:30 CEST.No Anselm service will be available during this outage.New batch jobs will not be scheduled for running during this time. Consider altering the job walltime, to achieve job execution prior to the downtime (See Job Submission in the Anselm Documentation).Sincerely yours,Anselm Admins |
- |2013-08-14 17:10:00 |**Planned Upgrade / Scheduler Downtime** Dear Anselm users,there's an upgrade planned on Thursday, 15th August from 18:00 till 22:00 CEST. Please, take in mind that PBS scheduler won't accept your jobs at the given timeframe. We are sorry for the inconvenience.Thank you for understanding,Anselm Admins |
- |2013-07-16 13:45:00 |**Anselm Cluster Upgrade - July 23rd** Dear Anselm users.We would like to inform you that Anselm cluster will be unavailable due to upgrades on Tuesday, July 23rd from 07:00 to 20:00 CEST.Sorry for the inconvenience,Anselm admins--Anselm cluster documentation can be found at:[http://support.it4i.cz/docs/anselm-cluster-documentation/"](http://support.it4i.cz/docs/anselm-cluster-documentation/) |
- |2013-06-27 09:35:00 |**SSH Password Authentication** Dear Anselm users.If you are experiencing some troubles when using SSH PasswordAuthentication on the client side, please switch to PubkeyAuthentication instead.We are trying hard to resolve this issue.Sincerely yours,Anselm admins |
diff --git a/scripts/generated b/scripts/generated
deleted file mode 100644
index 8433dcac6193206ece4be6f9164eab0850871c00..0000000000000000000000000000000000000000
--- a/scripts/generated
+++ /dev/null
@@ -1,10 +0,0 @@
-# datum a cas posledniho commitu
-git log -1 --format=%cd --date=format:'%d.%m.%Y %H:%M'
-
-# komentar posledniho commitu
-git log -n 1 --pretty=format:'%s'
-
-a=$(git log -1 --format=%cd --date=format:'%d.%m.%Y %H:%M')
-b=$(git log -n 1 --pretty=format:'%s')
-sed -i 's/|---|---|/|---|---|\n|'"$a"'|'"$b"'|/' new.md
-
diff --git a/scripts/html_md.sh b/scripts/html_md.sh
index e627da04740e054ccc40ee4d254bb6968ff35e03..ddb7380e8d2588cfbaeaf46b993543927f75e98a 100755
--- a/scripts/html_md.sh
+++ b/scripts/html_md.sh
@@ -2,24 +2,9 @@
 
 ### DOWNLOAD AND CONVERT DOCUMENTATION
 # autor: kru0052
-# version: 0.89
-# change: formatting, ALFA TESTS
-# bugs: bad internal links
+# version: 1.00 
 ###
 
-if [ "$1" = "-t" ]; then
-	test="pdfunite"
- 	while read a ; do 
-			test+=" $a"
-	done < seznam.txt
-	test+=" test.pdf"
-	$test
-
-	while read a ; do 
-			rm "$i"
-	done < seznam.txt
-		
-fi
 if [ "$1" = "-d" ]; then
 	# remove pdf, md and epub files
    STARTTIME=$(date +%s)
@@ -59,93 +44,6 @@ if [ "$1" = "-d" ]; then
    ENDTIME=$(date +%s)
 	echo "It takes $(($ENDTIME - $STARTTIME)) seconds to complete this task..."
 fi
-if [ "$1" = "-e" ]; then
-	# export to pdf/epub
-   STARTTIME=$(date +%s)
-	counter=1
-	count=$(find ./docs.it4i -name "*.md" -type f | wc -l)
-	if [ "$2" = "epub" ]; then
-		if [ -d ./epub ]; then
-			rm -rf ./epub
-		fi
-		find ./docs.it4i -name -name "*.md" | 
-		while read i; 
-		do 
-			a=$(basename "$i")
-			b=$(dirname "$i")
-			c=$(pwd)
-		
-			echo "$(tput setaf 12)($counter/$count)$(tput setaf 11)$a => $(tput setaf 13)${a%.*}.epub$(tput setaf 15)"
-			counter=$((counter+1))
-			cd "$b"
-				# export to epub
-				pandoc ${a%.*}.md -o ${a%.*}.epub
-			cd "$c"
-		done
-		
-		# new folder for epub files
-		mkdir epub;
-		(while read i; 
-		do		
-			mkdir "./epub/$i";
-		done) < ./source/list_folder
-	
-		# move epub files to folder epub
-		echo "$(tput setaf 11)moved epub files$(tput setaf 15)"; 
-		while read a ; do 
-			mv "./converted/${a%.*}.epub" "./epub/${a%.*}.epub";
-		done < ./source/list_md_mv
-	fi
-	if [ "$2" = "pdf" ]; then
-		if [ -d ./pdf ]; then
-			rm -rf ./pdf
-		fi
-		find ./docs.it4i -name "*.md" | 
-		while read i; 
-		do 
-			a=$(basename "$i")
-			b=$(dirname "$i")
-			c=$(pwd)
-		
-			echo "$(tput setaf 12)($counter/$count)$(tput setaf 11)$a => $(tput setaf 13)${a%.*}.pdf$(tput setaf 15)"
-			#echo "$b"
-			counter=$((counter+1))
-			cd "$b"
-				#!double subscripts problem !!!!!!
-				#ansys-fluent.md
-				#capacity-computing.md
-				#job-submission-and-execution.md
-				if [ $a = "job-submission-and-execution.md" ]; then
-					pandoc ${a%.*}.md -o ${a%.*}.epub
-					pandoc ${a%.*}.epub -V "geometry:paperwidth=8.26387in" -V "geometry:paperheight=29.7cm" -V "geometry:vmargin=1.4cm" -V "geometry:hmargin=1.6cm" -V "fontsize:12pt" -t latex --latex-engine=xelatex --mathml -o ${a%.*}.pdf
-					rm "${a%.*}.epub"
-				elif [ $a = "ansys-fluent.md" ]; then
-					pandoc ${a%.*}.md -o ${a%.*}.epub
-					pandoc ${a%.*}.epub -V "geometry:paperwidth=8.26387in" -V "geometry:paperheight=29.7cm" -V "geometry:vmargin=1.4cm" -V "geometry:hmargin=1.6cm" -V "fontsize:12pt" -t latex --latex-engine=xelatex --mathml -o ${a%.*}.pdf
-					rm "${a%.*}.epub"
-				elif [ $a = "capacity-computing.md" ]; then
-					pandoc ${a%.*}.md -o ${a%.*}.epub
-					pandoc ${a%.*}.epub -V "geometry:paperwidth=8.26387in" -V "geometry:paperheight=29.7cm" -V "geometry:vmargin=1.4cm" -V "geometry:hmargin=1.6cm" -V "fontsize:12pt" -t latex --latex-engine=xelatex --mathml -o ${a%.*}.pdf
-					rm "${a%.*}.epub"
-				elif [ $a = "list_of_modules.md" ]; then
-					echo "big files..."
-				else
-					#pandoc ${a%.*}.md  -t latex --latex-engine=xelatex --mathml -o ${a%.*}.pdf
-					pandoc -V "geometry:paperwidth=8.26387in" -V "geometry:paperheight=29.7cm" -V "geometry:vmargin=1.4cm" -V "geometry:hmargin=1.6cm" -V "fontsize:12pt" -t latex --latex-engine=xelatex --mathml -o ${a%.*}.pdf ${a%.*}.md
-				fi
-			cd "$c"
-		done
-		
-		find ./docs.it4i -name "*.pdf" | 
-		while read i; 
-		do 
-			echo "$i" >> seznam.txt
-			rm "$i"
-		done
-	fi
-   ENDTIME=$(date +%s)
-	echo "It takes $(($ENDTIME - $STARTTIME)) seconds to complete this task..."
-fi
 if [ "$1" = "-w" ]; then
 	# download html pages 
    STARTTIME=$(date +%s)
@@ -238,36 +136,6 @@ if [ "$1" = "-c" ]; then
 			cat -s "${i%.*}TMP.TEST.md" > "${i%.*}TMP.md";
 		done < ./source/formatting 
 		
-		# repair image...
-		printf "\t\tFix of links pictures...\n"
-		while read x ; do 
-			arg1=`echo "$x" | cut -d"&" -f1 | sed 's:[]\[\^\$\.\*\/\"]:\\\\&:g'`;	
-			arg2=`echo "$x" | cut -d"&" -f2 | sed 's:[]\[\^\$\.\*\/\"]:\\\\&:g'`;
-	
-			sed -e 's/'"$arg1"'/'"$arg2"'/' "${i%.*}TMP.md" > "${i%.*}.md";
-			cat -s "${i%.*}.md" > "${i%.*}TMP.md";
-		done < ./source/repairIMG
-		
-		# repair tables
-		printf "\t\tFix formatting tables...\n"
-		while read x ; do 
-			arg1=`echo "$x" | cut -d"&" -f1 | sed 's:[]\[\^\$\.\*\/\"]:\\\\&:g'`;	
-			arg2=`echo "$x" | cut -d"&" -f2 | sed 's:[]\[\^\$\.\*\/\"]:\\\\&:g'`;
-	
-			sed -e 's/'"$arg1"'/'"$arg2"'/' "${i%.*}TMP.md" > "${i%.*}.md";		
-			sed -e :a -e '/\\$/N; s/\\\n//; ta' "${i%.*}.md" > "${i%.*}TMP.md";
-		done < ./source/tab
-		
-		# replace tables
-		printf "\t\tReplacement table...\n"
-		while read x ; do 
-			arg1=`echo "$x" | cut -d"&" -f1 | sed 's:[]\[\^\$\.\*\/\"]:\\\\&:g'`;	
-			arg2=`echo "$x" | cut -d"&" -f2 | sed 's:[]\[\^\$\.\*\/\"]:\\\\&:g'`;
-	
-			sed -e 's/'"$arg1"'/'"$arg2"'/' "${i%.*}TMP.md" | sed -e 's/^>//' > "${i%.*}.md";		
-			cat -s "${i%.*}.md" > "${i%.*}TMP.md";
-		done < ./source/tabREPLACE
-		
 		# last repair formatting...
 		printf "\t\tLatest fix formatting text...\n"
 		while read x ; do 
@@ -304,6 +172,9 @@ if [ "$1" = "-c" ]; then
 	find ./docs.it4i.cz -type d | sort > ./info/list_folder;
 	
 	count=$(find ./docs.it4i.cz -name "*.md" -type f | wc -l)
+	
+	echo "$count"
+	
 	if [ $count -eq 150 ]; then
 		mkdir docs.it4i;
 		(while read i; 
diff --git a/scripts/modules.md b/scripts/modules.md
deleted file mode 100644
index 641ce3dc4050490fbeb1266d2f1a55c50b87abac..0000000000000000000000000000000000000000
--- a/scripts/modules.md
+++ /dev/null
@@ -1,357 +0,0 @@
-#Modules
-
-###Base
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[EasyBuild](http://hpcugent.github.com/easybuild/)**|EasyBuild is a software build and installation framework written in Python that allows you to install software in a structured, repeatable and robust way.|<nobr>2.1.1</br>2.2.0</br>2.3.0</nobr>|
-|**[Python](http://python.org/)**|Python is a programming language that lets you work more quickly and integrate your systems more effectively.|<nobr>3.4.3-intel-2015b</nobr>|
-
-###Bio
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[almost](http://www-almost.ch.cam.ac.uk/site)**|all atom molecular simulation toolkit - is a fast and flexible molecular modeling environment that provides powerful and efficient algorithms for molecular simulation, homology modeling, de novo design and ab-initio calculations.|<nobr>2.1.0-intel-2015b</br>2.1.0-foss-2015b</br>2.1.0-foss-2015g</nobr>|
-|**[Amber](http://ambermd.org)**|A set of molecular mechanical force fields for the simulation of biomolecules|<nobr>14</nobr>|
-|**[BCFtools](http://www.htslib.org/)**|Samtools is a suite of programs for interacting with high-throughput sequencing data. BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence variants|<nobr>1.3-foss-2015g</nobr>|
-|**[BWA](http://bio-bwa.sourceforge.net/)**|Burrows-Wheeler Aligner (BWA) is an efficient program that aligns relatively short nucleotide sequences against a long reference sequence such as the human genome.|<nobr>0.7.5a-foss-2015g</nobr>|
-|**[FastQC](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/)**|FastQC is a quality control application for high throughput sequence data. It reads in sequence data in a variety of formats and can either provide an interactive application to review the results of several different QC checks, or create an HTML based report which can be integrated into a pipeline.|<nobr>0.11.3</nobr>|
-|**[GATK](http://www.broadinstitute.org/gatk/)**|The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, with a primary focus on variant discovery and genotyping as well as strong emphasis on data quality assurance. Its robust architecture, powerful processing engine and high-performance computing features make it capable of taking on projects of any size.|<nobr>2.6-5-Java-1.7.0_79</br>3.5-Java-1.7.0_79</nobr>|
-|**[GROMACS](http://www.gromacs.org)**|GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.|<nobr>5.0.4-ictce-7.3.5-hybrid-single</br>5.0.4-foss-2015e-hybrid-single-PLUMED</br>5.0.4-foss-2015g-hybrid-single-PLUMED</br>5.0.4-foss-2015g-hybrid-single</br>4.6.7-foss-2015g-hybrid-single-PLUMED</nobr>|
-|**[HTSlib](http://www.htslib.org/)**|A C library for reading/writing high-throughput sequencing data. This package includes the utilities bgzip and tabix|<nobr>1.3-foss-2015g</nobr>|
-|**[picard](http://sourceforge.net/projects/picard)**|A set of tools (in Java) for working with next generation sequencing data in the BAM format.|<nobr>1.119</br>2.1.0</nobr>|
-|**[PLUMED](http://www.plumed-code.org)**|PLUMED is an open source library for free energy calculations in molecular systems which works together with some of the most popular molecular dynamics engines. Free energy calculations can be performed as a function of many order parameters with a particular focus on biological problems, using state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD. The software, written in C++, can be easily interfaced with both fortran and C/C++ codes.|<nobr>2.1.3-foss-2015g</nobr>|
-|**[RELION](http://www2.mrc-lmb.cam.ac.uk/relion/index.php/Main_Page)**|RELION (for REgularised LIkelihood OptimisatioN, pronounce rely-on) is a stand-alone computer program that employs an empirical Bayesian approach to refinement of (multiple) 3D reconstructions or 2D class averages in electron cryo-microscopy (cryo-EM).|<nobr>1.3-intel-2015b</nobr>|
-|**[SAMtools](http://www.htslib.org/)**|SAM Tools provide various utilities for manipulating alignments in the SAM format, including sorting, merging, indexing and generating alignments in a per-position format.|<nobr>1.3-foss-2015g</nobr>|
-|**[SnpEff](http://snpeff.sourceforge.net/)**|Genetic variant annotation and effect prediction toolbox.|<nobr>4.1_G</nobr>|
-|**[Trimmomatic](http://www.usadellab.org/cms/?page=trimmomatic)**|Trimmomatic performs a variety of useful trimming tasks for illumina paired-end and single ended data.The selection of trimming steps and their associated parameters are supplied on the command line.|<nobr>0.35-Java-1.7.0_79</nobr>|
-
-###Cae
-
-|Module|Description|Available versions|
-|--|--|--|
-|**Adams**|&nbsp;|<nobr>2013.2</nobr>|
-|**ANSYS**|&nbsp;|<nobr>16.1</br>17.0</nobr>|
-|**COMSOL**|&nbsp;|<nobr>51-COM</br>51-EDU</nobr>|
-|**Digimat**|&nbsp;|<nobr>5.0.1-COM</br>5.0.1-EDU</nobr>|
-|**[FreeFem++](http://www.freefem.org)**|FreeFem++ is a partial differential equation solver. It has its own language. freefem scripts can solve multiphysics non linear systems in 2D and 3D. Problems involving PDE (2d, 3d) from several branches of physics such as fluid-structure interactions require interpolations of data on several meshes and their manipulation within one program. FreeFem++ includes a fast 2^d-tree-based interpolation algorithm and a language for the manipulation of data on multiple meshes (as a follow up of bamg (now a part of FreeFem++ ). FreeFem++ is written in C++ and the FreeFem++ language is a C++ idiom. It runs on Macs, Windows, Unix machines. FreeFem++ replaces the older freefem and freefem+.|<nobr>3.45-intel-2015b</nobr>|
-|**HyperWorks**|&nbsp;|<nobr>13.0</nobr>|
-|**Marc**|&nbsp;|<nobr>2013.1.0</nobr>|
-|**[OpenFOAM](http://www.openfoam.com/)**|OpenFOAM is a free, open source CFD software package. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics and electromagnetics.|<nobr>2.3.0-intel-2015b</br>2.2.2-intel-2015b</br>3.0.0-intel-2016.01</nobr>|
-
-###Chem
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[ABINIT](http://www.abinit.org/)**|Abinit is a plane wave pseudopotential code for doing condensed phase electronic structure calculations using DFT.|<nobr>7.10.1-foss-2015b</br>7.10.1-intel-2015b</nobr>|
-|**[CP2K](http://www.cp2k.org/)**|CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and classical pair and many-body potentials.|<nobr>2.6.0-intel-2015b</nobr>|
-|**[LAMMPS](http://lammps.sandia.gov)**|LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator. Has potentials for solid-state materials (metals, semiconductors) and soft matter (biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be used to model atoms or, more generically, as a parallel particle simulator at the atomic, meso, or continuum scale.|<nobr>28Jun14-intel-2015b</nobr>|
-|**[libctl](http://ab-initio.mit.edu/libctl)**|libctl is a free Guile-based library implementing flexible control files for scientific simulations.|<nobr>3.2.2-intel-2015b</nobr>|
-|**[Libint](https://sourceforge.net/p/libint/)**|Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.|<nobr>1.1.4-gompi-2015b</br>1.1.4-foss-2015b</br>1.1.4-intel-2015b</nobr>|
-|**[libxc](http://www.tddft.org/programs/octopus/wiki/index.php/Libxc)**|Libxc is a library of exchange-correlation functionals for density-functional theory. The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.|<nobr>2.2.0-gompi-2015b</br>2.2.0-foss-2015b</br>2.2.1-intel-2015b</nobr>|
-|**Molpro**|&nbsp;|<nobr>2010.1-patch-57-intel2015b</nobr>|
-|**[NAMD](http://www.ks.uiuc.edu/Research/namd/)**|NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.|<nobr>2.9-mpi</nobr>|
-|**[NWChem](http://www.nwchem-sw.org)**|NWChem aims to provide its users with computational chemistry tools that are scalable both in their ability to treat large scientific computational chemistry problems efficiently, and in their use of available parallel computing resources from high-performance parallel supercomputers to conventional workstation clusters. NWChem software can handle: biomolecules, nanostructures, and solid-state; from quantum to classical, and all combinations; Gaussian basis functions or plane-waves; scaling from one to thousands of processors; properties and relativity.|<nobr>6.3.revision2-2013-10-17-Python-2.7.8</br>6.5.revision26243-intel-2015b-2014-09-10-Python-2.7.8</nobr>|
-|**[S4MPLE](http://infochim.u-strasbg.fr/spip.php?rubrique152)**|S4MPLE (Sampler For Multiple Protein-Ligand Entities) is a flexible molecular modeling tool, supporting empirical force field-driven conformational sampling and geometry optimization heuristics using a hybrid genetic algorithm (GA).|<nobr>1.0.0</nobr>|
-
-###Compiler
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[BerkeleyUPC](http://upc.lbl.gov)**|The goal of the Berkeley UPC compiler group is to develop a portable, high performance implementation of UPC for large-scale multiprocessors, PC clusters, and clusters of shared memory multiprocessors.|<nobr>2.16.2-gompi-2015b</nobr>|
-|**[Clang](http://clang.llvm.org/)**|C, C++, Objective-C compiler, based on LLVM. Does not include C++ standard library -- use libstdc++ from GCC.|<nobr>3.7.0-GNU-5.1.0-2.25</nobr>|
-|**[GCC](http://gcc.gnu.org/)**|The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).|<nobr>4.9.2-binutils-2.25</br>4.8.3</br>5.1.0-binutils-2.25</br>4.4.7-system</br>4.9.3-binutils-2.25</br>4.7.4</br>5.2.0</br>4.9.3</br>5.3.0-binutils-2.25</br>5.3.0-2.25</br>5.3.1-snapshot-20160419-2.25</br>4.9.3-2.25</br>5.3.0-2.26</nobr>|
-|**[GCCcore](http://gcc.gnu.org/)**|The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj,...).|<nobr>4.9.3</br>5.3.0</br>5.3.1-snapshot-20160419</nobr>|
-|**[icc](http://software.intel.com/en-us/intel-compilers/)**|C and C++ compiler from Intel|<nobr>2013.5.192</br>2013.5.192-GCC-4.8.3</br>2015.3.187</br>2015.3.187-GNU-5.1.0-2.25</br>2016.0.109-GCC-4.9.3</br>2016.1.150-GCC-4.9.3</br>2016.1.150</br>2016.3.210-GCC-5.3.0-2.26</br>2015.3.187-GNU-4.9.3-2.25</br>2016.1.150-GCC-4.9.3-2.25</nobr>|
-|**[ifort](http://software.intel.com/en-us/intel-compilers/)**|Fortran compiler from Intel|<nobr>2013.5.192</br>2013.5.192-GCC-4.8.3</br>2015.3.187</br>2015.3.187-GNU-5.1.0-2.25</br>2016.0.109-GCC-4.9.3</br>2016.1.150-GCC-4.9.3</br>2016.1.150-GCC-4.9.3-2.25</br>2016.1.150</br>2016.3.210-GCC-5.3.0-2.26</br>2015.3.187-GNU-4.9.3-2.25</nobr>|
-|**[LLVM](http://llvm.org/)**|The LLVM Core libraries provide a modern source- and target-independent optimizer, along with code generation support for many popular CPUs (as well as some less common ones!) These libraries are built around a well specified code representation known as the LLVM intermediate representation ("LLVM IR"). The LLVM Core libraries are well documented, and it is particularly easy to invent your own language (or port an existing compiler) to use LLVM as an optimizer and code generator.|<nobr>3.7.1-foss-2015g</nobr>|
-|**[OpenCoarrays](http://www.opencoarrays.org/)**|A transport layer for coarray Fortran compilers.|<nobr>1.4.0-GCC-5.3.0-2.25</br>1.4.0-GCC-5.3.1-snapshot-20160419-2.25</nobr>|
-|**PGI**|&nbsp;|<nobr>15.7</nobr>|
-
-###Data
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[GDAL](http://www.gdal.org/)**|GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for data translation and processing.|<nobr>1.9.2-foss-2015g</br>2.1.0-foss-2015g</br>2.0.1-foss-2015b</br>2.1.0-GNU-5.1.0-2.25-intel-2015b</br>2.1.0-GNU-5.1.0-2.25</br>2.1.0-intel-2015b</nobr>|
-|**[h5py](http://www.h5py.org/)**|HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library, version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous amounts of data.|<nobr>2.4.0-ictce-7.3.5-Python-2.7.9-serial</nobr>|
-|**[HDF5](http://www.hdfgroup.org/HDF5/)**|HDF5 is a unique technology suite that makes possible the management of extremely large and complex data collections.|<nobr>1.8.13-intel-2015b</br>1.8.13-intel-2015b-no-mpi</br>1.8.14-ictce-7.3.5-serial</br>1.8.13-intel-2016.01</br>1.8.13-foss-2015g</br>1.8.16-intel-2015b</br>1.8.16-intel-2015b-threadsafe</br>1.8.16-foss-2015g</br>1.10.0-patch1-intel-2016.01-mic</br>1.8.15-patch1-foss-2015b</nobr>|
-|**[netCDF](http://www.unidata.ucar.edu/software/netcdf/)**|NetCDF (network Common Data Form) is a set of software libraries and machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.|<nobr>4.3.2-intel-2015b</br>4.3.2-intel-2016.01</br>4.3.2-foss-2015g</br>4.3.3.1-foss-2015b</nobr>|
-|**[netCDF-Fortran](http://www.unidata.ucar.edu/software/netcdf/)**|NetCDF (network Common Data Form) is a set of software libraries and machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.|<nobr>4.4.0-intel-2016.01</nobr>|
-
-###Debugger
-
-|Module|Description|Available versions|
-|--|--|--|
-|**aislinn**|&nbsp;|<nobr>20160105-Python-2.7.9-gompi-2015e</nobr>|
-|**DDT**|&nbsp;|<nobr>4.2</br>5.0.1</nobr>|
-|**[Forge](http://www.allinea.com/products/develop-allinea-forge)**|Allinea Forge is the complete toolsuite for software development - with everything needed to debug, profile, optimize, edit and build C, C++ and FORTRAN applications on Linux for high performance - from single threads through to complex parallel HPC codes with MPI, OpenMP, threads or CUDA.|<nobr>5.1-43967</br>6.0.6</br>6.0.5</nobr>|
-|**[PerformanceReports](http://www.allinea.com/products/allinea-performance-reports)**|Allinea Performance Reports are the most effective way to characterize and understand the performance of HPC application runs. One single-page HTML report elegantly answers a range of vital questions for any HPC site. - Is this application well-optimized for the system and the processors it is running on? - Does it benefit from running at this scale? - Are there I/O, networking or threading bottlenecks affecting performance? - Which hardware, software or configuration changes can we make to improve performance further. - How much energy did this application use?|<nobr>5.1-43967</br>6.0.6</nobr>|
-|**TotalView**|&nbsp;|<nobr>8.15.4-6-linux-x86-64</nobr>|
-|**[Valgrind](http://valgrind.org/downloads/)**|Valgrind: Debugging and profiling tools|<nobr>3.11.0-foss-2015b</br>3.11.0-intel-2015b</nobr>|
-
-###Devel
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[ant](http://ant.apache.org/)**|Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications.|<nobr>1.9.3-Java-1.7.0_79</nobr>|
-|**[Autoconf](http://www.gnu.org/software/autoconf/)**|Autoconf is an extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like systems without manual user intervention. Autoconf creates a configuration script for a package from a template file that lists the operating system features that the package can use, in the form of M4 macro calls.|<nobr>2.69-GNU-5.1.0-2.25</br>2.69-GNU-4.9.3-2.25</br>2.69-foss-2015g</br>2.69-intel-2015b</br>2.69-GCC-4.9.3-2.25</br>2.69-intel-2016.01</br>2.69</nobr>|
-|**[Automake](http://www.gnu.org/software/automake/automake.html)**|Automake: GNU Standards-compliant Makefile generator|<nobr>1.15-GNU-5.1.0-2.25</br>1.15-GNU-4.9.3-2.25</br>1.15-intel-2015b</br>1.15-GCC-4.9.3-2.25</br>1.15-foss-2015g</br>1.15-intel-2016.01</br>1.15</nobr>|
-|**[Autotools](http://autotools.io)**|This bundle collect the standard GNU build tools: Autoconf, Automake and libtool|<nobr>20150215-GNU-5.1.0-2.25</br>20150215-GNU-4.9.3-2.25</br>20150215-intel-2015b</br>20150215-GCC-4.9.3-2.25</br>20150215-intel-2016.01</br>20150215</nobr>|
-|**[Boost](http://www.boost.org/)**|Boost provides free peer-reviewed portable C++ source libraries.|<nobr>1.58.0-Python-2.7.9</br>1.58.0-intel-2015b-Python-2.7.9</br>1.58.0-ictce-7.3.5-Python-2.7.9</br>1.58.0-gompi-2015e-Python-2.7.9</br>1.58.0-foss-2015g-Python-2.7.9</br>1.58.0-intel-2016.01-Python-2.7.9</br>1.59.0-intel-2015b-Python-2.7.11</br>1.59.0-intel-2016.01</br>1.60.0-foss-2015g-Python-2.7.9</nobr>|
-|**[CMake](http://www.cmake.org)**|CMake, the cross-platform, open-source build system. CMake is a family of tools designed to build, test and package software.|<nobr>3.0.0-intel-2015b</br>3.0.0-ictce-7.3.5</br>3.3.1-GNU-5.1.0-2.25</br>3.3.1-GNU-4.9.3-2.25</br>3.3.1-foss-2015g</br>3.0.0-intel-2016.01</br>3.3.1-intel-2016.01</br>3.0.0-foss-2015g</br>3.4.1-intel-2015b</br>3.3.1-GCC-5.3.0-2.25</br>3.3.1-GCC-5.3.1-snapshot-20160419-2.25</br>3.3.2-intel-2016.01</br>3.3.2-GNU-4.9.3-2.25</br>3.4.1-GCCcore-4.9.3</br>3.4.1-foss-2015b</br>3.5.2</nobr>|
-|**[Doxygen](http://www.doxygen.org)**|Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.|<nobr>1.8.7-intel-2015b</br>1.8.7-intel-2016.01</br>1.8.7-foss-2015g</br>1.8.10-foss-2015b</br>1.8.11</nobr>|
-|**[fontsproto](http://www.freedesktop.org/wiki/Software/xlibs)**|X11 font extension wire protocol|<nobr>2.1.3-foss-2015g</br>2.1.3</nobr>|
-|**[glproto](http://www.freedesktop.org/wiki/Software/xlibs)**|X protocol and ancillary headers|<nobr>1.4.16-foss-2015g</nobr>|
-|**[gperf](http://www.gnu.org/software/gperf/)**|GNU gperf is a perfect hash function generator. For a given list of strings, it produces a hash function and hash table, in form of C or C++ code, for looking up a value depending on the input string. The hash function is perfect, which means that the hash table has no collisions, and the hash table lookup needs a single string comparison only.|<nobr>3.0.4-foss-2015g</nobr>|
-|**[guile](http://www.gnu.org/software/guile)**|Guile is the GNU Ubiquitous Intelligent Language for Extensions, the official extension language for the GNU operating system.|<nobr>1.8.8-intel-2015b</br>1.8.8-foss-2015b</br>1.8.8-foss-2015g</br>1.8.8</nobr>|
-|**[JUnit](http://sourceforge.net/projects/junit)**|A programmer-oriented testing framework for Java.|<nobr>4.11-Java-1.7.0_79</nobr>|
-|**[libSM](http://www.freedesktop.org/wiki/Software/xlibs)**|X11 Session Management library, which allows for applications to both manage sessions, and make use of session managers to save and restore their state for later use.|<nobr>1.2.2-intel-2015b</br>1.2.2-foss-2015g</br>1.2.2</nobr>|
-|**[M4](http://www.gnu.org/software/m4/m4.html)**|GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible although it has some extensions (for example, handling more than 9 positional parameters to macros). GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.|<nobr>1.4.17</br>1.4.17-GNU-5.1.0-2.25</br>1.4.17-foss-2015b</br>1.4.17-intel-2015b</br>1.4.16-intel-2015b</br>1.4.17-GCC-4.9.3-binutils-2.25</br>1.4.17-GNU-4.9.3-2.25</br>1.4.17-GCCcore-4.9.3</br>1.4.17-intel-2016.01</br>1.4.16-foss-2015g</br>1.4.17-foss-2015g</br>1.4.17-GCC-5.1.0-binutils-2.25</br>1.4.17-GCCcore-5.3.0</br>1.4.17-GCCcore-5.3.1-snapshot-20160419</br>1.4.17-GCC-4.9.3-2.25</nobr>|
-|**[make](http://www.gnu.org/software/make/make.html)**|make-3.82: GNU version of make utility|<nobr>3.82-intel-2015b</br>3.82</nobr>|
-|**[makedepend](http://www.linuxfromscratch.org/blfs/view/svn/x/makedepend.html)**|The makedepend package contains a C-preprocessor like utility to determine build-time dependencies.|<nobr>1.0.4-foss-2015g</br>1.0.4</nobr>|
-|**[Maven](http://maven.apache.org/index.html)**|Binary maven install, Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.|<nobr>3.3.9</nobr>|
-|**[ncurses](http://www.gnu.org/software/ncurses/)**|The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and function-key mapping, and has all the other SYSV-curses enhancements over BSD Curses.|<nobr>5.9-intel-2015b</br>5.9-ictce-5.5.0</br>5.9-GNU-5.1.0-2.25</br>5.9-ictce-7.3.5</br>5.9-foss-2015b</br>5.9-gompi-2015e</br>5.9-foss-2015g</br>5.9-GNU-4.9.3-2.25</br>5.9-intel-2016.01</br>5.9-GCC-5.3.0-2.25</br>5.9-GCC-5.3.1-snapshot-20160419-2.25</br>6.0-GCCcore-4.9.3</br>6.0-foss-2015g</br>6.0-foss-2015b</br>6.0-intel-2016.01</br>6.0</br>5.9</br>6.0-intel-2016a</nobr>|
-|**[PCRE](http://www.pcre.org/)**|The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5.|<nobr>8.36-intel-2015b</br>8.36-foss-2015g</br>8.37-foss-2015g</br>8.36-intel-2016.01</br>8.37</nobr>|
-|**[pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config/)**|pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the correct compiler options on the command line so an application can use gcc -o test test.c `pkg-config --libs --cflags glib-2.0` for instance, rather than hard-coding values on where to find glib (or other libraries).|<nobr>0.27.1-intel-2015b</br>0.27.1-foss-2015b</br>0.27.1-foss-2015g</br>0.27.1</br>0.29</nobr>|
-|**[python-meep](https://code.launchpad.net/python-meep)**|Python wrapper for the Meep FDTD solver.|<nobr>1.4.2-intel-2015b-Python-2.7.9-Meep-1.3</nobr>|
-|**[Qt](http://qt-project.org/)**|Qt is a comprehensive cross-platform C++ application framework.|<nobr>4.8.6-foss-2015g</br>4.8.6</nobr>|
-|**[renderproto](http://www.freedesktop.org/wiki/Software/xlibs)**|Xrender protocol and ancillary headers|<nobr>0.11-intel-2015b</br>0.11</nobr>|
-|**[SCons](http://www.scons.org/)**|SCons is a software construction tool.|<nobr>2.3.6-Python-2.7.9</br>2.3.6-foss-2015g-Python-2.7.9</nobr>|
-|**[Spark](http://spark.apache.org)**|Spark is Hadoop MapReduce done in memory|<nobr>1.5.2</nobr>|
-|**[SQLite](http://www.sqlite.org/)**|SQLite: SQL Database Engine in a C Library|<nobr>3.8.8.1-intel-2015b</br>3.8.8.1-ictce-7.3.5</br>3.8.8.1-foss-2015b</br>3.8.8.1-GNU-5.1.0-2.25</br>3.8.8.1-gompi-2015e</br>3.8.8.1-intel-2016.01</br>3.10.1-foss-2015g</br>3.9.2-intel-2015b</br>3.8.8.1-foss-2015g</br>3.8.10.2-GNU-4.9.3-2.25</br>3.8.10.2-GCC-4.9.3-2.25</br>3.9.2-foss-2015g</br>3.9.2-intel-2016.01</br>3.8.8.1</nobr>|
-|**[SWIG](http://www.swig.org/)**|SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.|<nobr>3.0.7-Python-2.7.9</br>2.0.12-Python-2.7.9</br>2.0.12-intel-2015b-Python-2.7.9</nobr>|
-|**[xbitmaps](http://www.freedesktop.org/wiki/Software/xlibs)**|provides bitmaps for x|<nobr>1.1.1-intel-2015b</br>1.1.1-foss-2015g</br>1.1.1</nobr>|
-|**[xcb-proto](http://xcb.freedesktop.org/)**|The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.|<nobr>1.10-Python-2.7.8</br>1.11-intel-2015b-Python-2.7.9</br>1.11-foss-2015g-Python-2.7.9</br>1.11-Python-2.7.9</br>1.11</nobr>|
-|**[xextproto](http://www.freedesktop.org/wiki/Software/xlibs)**|XExtProto protocol headers.|<nobr>7.3.0-intel-2015b</br>7.3.0-foss-2015g</br>7.3.0</nobr>|
-|**[xineramaproto](http://www.freedesktop.org/wiki/Software/xlibs)**|X protocol and ancillary headers for xinerama|<nobr>1.2.1-intel-2015b</br>1.2.1</nobr>|
-|**[xorg-macros](http://cgit.freedesktop.org/xorg/util/macros)**|X.org macros utilities.|<nobr>1.17-foss-2015g</br>1.17</nobr>|
-|**[xproto](http://www.freedesktop.org/wiki/Software/xlibs)**|X protocol and ancillary headers|<nobr>7.0.26-foss-2015g</br>7.0.26-intel-2015b</br>7.0.26</br>7.0.28</nobr>|
-|**[xtrans](http://www.freedesktop.org/wiki/Software/xlibs)**|xtrans includes a number of routines to make X implementations transport-independent; at time of writing, it includes support for UNIX sockets, IPv4, IPv6, and DECnet.|<nobr>1.3.4-intel-2015b</br>1.3.5-intel-2015b</br>1.3.5-foss-2015g</br>1.3.5</nobr>|
-
-###Geo
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[DCW](http://gmt.soest.hawaii.edu/projects/gmt)**|country polygons for GMT|<nobr>1.1.2</nobr>|
-|**[GMT](http://gmt.soest.hawaii.edu/)**|GMT is an open source collection of about 80 command-line tools for manipulating geographic and Cartesian data sets (including filtering, trend fitting, gridding, projecting, etc.) and producing PostScript illustrations ranging from simple x-y plots via contour maps to artificially illuminated surfaces and 3D perspective views; the GMT supplements add another 40 more specialized and discipline-specific tools.|<nobr>5.2.1-foss-2015g</nobr>|
-|**[PROJ_4](http://proj.osgeo.org)**|PROJ.4 - Cartographic Projections Library originally written by Gerald Evenden then of the USGS.|<nobr>4.9.2-foss-2015g</nobr>|
-
-###Lang
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[Bison](http://www.gnu.org/software/bison)**|Bison is a general-purpose parser generator that converts an annotated context-free grammar into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables.|<nobr>2.7-foss-2015b</br>3.0.2-intel-2015b</br>2.7-GNU-5.1.0-2.25</br>2.7-intel-2015b</br>2.5-intel-2015b</br>3.0.4-GCC-4.9.3-binutils-2.25</br>2.7-foss-2015g</br>3.0.4-GCCcore-4.9.3</br>3.0.2-intel-2016.01</br>3.0.2-foss-2015g</br>3.0.4-GCC-5.1.0-binutils-2.25</br>3.0.4</br>3.0.4-GCCcore-5.3.0</br>3.0.4-GCCcore-5.3.1-snapshot-20160419</br>3.0.4-intel-2016.01</br>3.0.4-foss-2015b</br>3.0.2</br>2.7</nobr>|
-|**[byacc](http://invisible-island.net/byacc/byacc.html)**|Berkeley Yacc (byacc) is generally conceded to be the best yacc variant available. In contrast to bison, it is written to avoid dependencies upon a particular compiler.|<nobr>20120526-intel-2015b</br>20120526-foss-2015b</br>20120526-foss-2015g</br>20120526</nobr>|
-|**[flex](http://flex.sourceforge.net/)**|Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner, sometimes called a tokenizer, is a program which recognizes lexical patterns in text.|<nobr>2.5.38-GCC-4.8.3</br>2.5.39-intel-2015b</br>2.5.37-intel-2015b</br>2.5.35-intel-2015b</br>2.5.39-foss-2015b</br>2.5.39-GCC-4.9.3-binutils-2.25</br>2.5.39-foss-2015g</br>2.5.39-GCCcore-4.9.3</br>2.5.39-intel-2016.01</br>2.5.39-GCC-5.1.0-binutils-2.25</br>2.5.39</br>2.5.39-GCCcore-5.3.0</br>2.5.39-GCCcore-5.3.1-snapshot-20160419</br>2.6.0</br>2.6.0-GCCcore-5.3.0</nobr>|
-|**[Java](http://java.com/)**|Java Platform, Standard Edition (Java SE) lets you develop and deploy Java applications on desktops and servers.|<nobr>1.7.0_79</br>1.8.0_51</br>1.8.0_72</nobr>|
-|**[libgdiplus](https://github.com/mono/libgdiplus)**|An Open Source implementation of the GDI+ API.|<nobr>3.12-GNU-5.1.0-2.25</br>3.12-GCC-4.4.7-system</br>3.12-intel-2016.01</br>3.12</nobr>|
-|**[Mono](http://www.mono-project.com)**|Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.|<nobr>4.0.3.20-GNU-5.1.0-2.25</br>3.12.1</br>3.12.1-GCC-4.4.7-system</br>4.2.2.10-intel-2016.01</nobr>|
-|**[NASM](http://www.nasm.us/)**|NASM: General-purpose x86 assembler|<nobr>2.11.05-foss-2015b</br>2.11.06-intel-2015b</br>2.11.05-intel-2015b</br>2.11.05-foss-2015g</br>2.11.08-foss-2015b</br>2.11.05</nobr>|
-|**[OpenCL-builder](https://software.intel.com/en-us/intel-opencl)**|OpenCL™ is the first open, royalty-free standard for cross-platform, parallel programming of modern processors found in personal computers, servers and handheld/embedded devices. OpenCL (Open Computing Language) greatly improves speed and responsiveness for a wide spectrum of applications in numerous market categories from gaming and entertainment to scientific and medical software. This is builder (formerly runtime) package.|<nobr>2015</nobr>|
-|**[OpenCL-runtime](https://software.intel.com/en-us/intel-opencl)**|OpenCL™ is the first open, royalty-free standard for cross-platform, parallel programming of modern processors found in personal computers, servers and handheld/embedded devices. OpenCL (Open Computing Language) greatly improves speed and responsiveness for a wide spectrum of applications in numerous market categories from gaming and entertainment to scientific and medical software.|<nobr>15.1</nobr>|
-|**[Perl](http://www.perl.org/)**|Larry Wall's Practical Extraction and Report Language|<nobr>5.16.3-intel-2015b</br>5.20.2-bare</br>5.20.2-GNU-4.9.3-2.25-bare</nobr>|
-|**[Python](http://python.org/)**|Python is a programming language that lets you work more quickly and integrate your systems more effectively.|<nobr>2.7.8-intel-2015b</br>2.7.9-intel-2015b</br>2.7.9-ictce-7.3.5</br>2.7.9-foss-2015b</br>2.7.9-GNU-5.1.0-2.25</br>2.7.9-gompi-2015e</br>2.7.9-foss-2015g</br>2.7.9-intel-2016.01</br>2.7.8-intel-2016.01</br>2.7.11-intel-2015b</br>2.7.10-GNU-4.9.3-2.25-bare</br>2.7.10-GCC-4.9.3-2.25-bare</br>3.5.1-intel-2016.01</br>2.7.9</br>3.5.1</nobr>|
-|**[R](http://www.r-project.org/)**|R is a free software environment for statistical computing and graphics.|<nobr>3.1.1-intel-2015b</br>3.2.3-intel-2016.01</br>3.2.3-foss-2015b</nobr>|
-|**[Racket](http://racket-lang.org)**|Racket is a full-spectrum programming language. It goes beyond Lisp and Scheme with dialects that support objects, types, laziness, and more.|<nobr>6.1.1-GNU-5.1.0-2.25</nobr>|
-|**[Ruby](https://www.ruby-lang.org)**|Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.|<nobr>2.1.5-intel-2015b</br>2.3.1</nobr>|
-|**[SIP](http://www.riverbankcomputing.com/software/sip/)**|SIP is a tool that makes it very easy to create Python bindings for C and C++ libraries.|<nobr>4.16.4-foss-2015g-Python-2.7.9</br>4.17-foss-2015g-Python-2.7.9</br>4.17-Python-2.7.9</nobr>|
-|**[SnuCL](http://snucl.snu.ac.kr)**|An OpenCL Framework for Heterogeneous Clusters|<nobr>1.3.3-gompi-2015e</nobr>|
-|**[Tcl](http://www.tcl.tk/)**|Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more.|<nobr>8.6.3-intel-2015b</br>8.5.12-intel-2015b</br>8.6.3-ictce-7.3.5</br>8.6.3-foss-2015b</br>8.6.3-GNU-5.1.0-2.25</br>8.6.3-gompi-2015e</br>8.6.3-foss-2015g</br>8.6.3-intel-2016.01</br>8.6.4-intel-2015b</br>8.6.4-GNU-4.9.3-2.25</br>8.6.4-GCC-4.9.3-2.25</br>8.6.4-foss-2015b</br>8.6.4-foss-2015g</br>8.6.4-intel-2016.01</br>8.6.4</br>8.6.3</br>8.5.12</nobr>|
-
-###Lib
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[FOX](http://fox-toolkit.org)**|FOX is a C++ based Toolkit for developing Graphical User Interfaces easily and effectively. It offers a wide, and growing, collection of Controls, and provides state of the art facilities such as drag and drop, selection, as well as OpenGL widgets for 3D graphical manipulation.|<nobr>1.6.51-foss-2015g</nobr>|
-|**[libdrm](http://dri.freedesktop.org)**|Direct Rendering Manager runtime library.|<nobr>2.4.27-foss-2015g</br>2.4.27</nobr>|
-|**[libffi](http://sourceware.org/libffi/)**|The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run-time.|<nobr>3.1-intel-2015b</br>3.1-GNU-5.1.0-2.25</br>3.0.13-intel-2015b</br>3.1-foss-2015b</br>3.0.13-foss-2015b</br>3.0.13-foss-2015g</br>3.1-intel-2016.01</br>3.0.13</nobr>|
-|**[libfontenc](http://www.freedesktop.org/wiki/Software/xlibs/)**|X11 font encoding library|<nobr>1.1.3-foss-2015g</br>1.1.3</nobr>|
-|**[libjpeg-turbo](http://sourceforge.net/libjpeg-turbo/)**|libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to accelerate baseline JPEG compression and decompression. libjpeg is a library that implements JPEG image encoding, decoding and transcoding.|<nobr>1.3.1-foss-2015b</br>1.3.1-intel-2015b</br>1.4.0-intel-2015b</br>1.4.0-foss-2015g</br>1.4.1-foss-2015b</br>1.4.0</nobr>|
-|**[libmatheval](http://www.gnu.org/software/libmatheval/)**|GNU libmatheval is a library (callable from C and Fortran) to parse and evaluate symbolic expressions input as text.|<nobr>1.1.8-intel-2015b</br>1.1.8-foss-2015b</br>1.1.8-foss-2015g</br>1.1.8</nobr>|
-|**[libMesh](http://libmesh.github.io/)**|The libMesh library provides a framework for the numerical simulation of partial differential equations using arbitrary unstructured discretizations on serial and parallel platforms. A major goal of the library is to provide support for adaptive mesh refinement (AMR) computations in parallel while allowing a research scientist to focus on the physics they are modeling.|<nobr>0.9.5-intel-2016.01</nobr>|
-|**[libpng](http://www.libpng.org/pub/png/libpng.html)**|libpng is the official PNG reference library|<nobr>1.6.9-intel-2015b</br>1.6.9-ictce-5.5.0</br>1.6.12-intel-2015b</br>1.6.12-foss-2015b</br>1.6.12-intel-2016.01</br>1.6.12-foss-2015g</br>1.6.21-foss-2015g</br>1.6.21-foss-2015b</br>1.6.17-foss-2015b</br>1.6.12</nobr>|
-|**[libpthread-stubs](http://xcb.freedesktop.org/)**|The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.|<nobr>0.3-intel-2015b</br>0.3-foss-2015g</br>0.3</nobr>|
-|**[libreadline](http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html)**|The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline library includes additional functions to maintain a list of previously-entered command lines, to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.|<nobr>6.2-intel-2015b</br>6.2-ictce-5.5.0</br>6.3-intel-2015b</br>6.3-GNU-5.1.0-2.25</br>6.3-ictce-7.3.5</br>6.3-foss-2015b</br>6.3-gompi-2015e</br>6.3-foss-2015g</br>6.3-intel-2016.01</br>6.3-GNU-4.9.3-2.25</br>6.3-GCCcore-4.9.3</br>6.3</nobr>|
-|**[LibTIFF](http://www.remotesensing.org/libtiff/)**|tiff: Library and tools for reading and writing TIFF data files|<nobr>4.0.3-intel-2015b</br>4.0.3</nobr>|
-|**[libtool](http://www.gnu.org/software/libtool)**|GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries behind a consistent, portable interface.|<nobr>2.4.6-GNU-5.1.0-2.25</br>2.4.2-intel-2015b</br>2.4.2-foss-2015b</br>2.4.6-GNU-4.9.3-2.25</br>2.4.2-foss-2015g</br>2.4.6-intel-2015b</br>2.4.6-GCC-4.9.3-2.25</br>2.4.6-foss-2015g</br>2.4.6-intel-2016.01</br>2.4.6</br>2.4.2</nobr>|
-|**[libunistring](http://www.gnu.org/software/libunistring/)**|This library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.|<nobr>0.9.3-intel-2015b</br>0.9.3-foss-2015b</br>0.9.3-foss-2015g</br>0.9.3</nobr>|
-|**[libxcb](http://xcb.freedesktop.org/)**|The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.|<nobr>1.10-Python-2.7.8</br>1.11-intel-2015b-Python-2.7.9</br>1.11-foss-2015g-Python-2.7.9</br>1.11-Python-2.7.9</nobr>|
-|**[libxml2](http://xmlsoft.org/)**|Libxml2 is the XML C parser and toolchain developed for the Gnome project (but usable outside of the Gnome platform).|<nobr>2.9.2-intel-2015b</br>2.9.2-ictce-7.3.5</br>2.9.2-foss-2015b</br>2.9.2-GNU-5.1.0-2.25</br>2.9.2-gompi-2015e</br>2.9.2-foss-2015g</br>2.9.2-foss-2015g-Python-2.7.9</br>2.9.2-GNU-4.9.3-2.25</br>2.9.2-GCC-4.9.3-2.25</br>2.9.2</nobr>|
-|**[OpenCoarrays](http://www.opencoarrays.org)**|OpenCoarrays is an open-source software project for developing, porting and tuning transport layers that support coarray Fortran compilers.|<nobr>1.0.0-GNU-5.1.0-2.25</br>1.0.1-GNU-5.1.0-2.25</nobr>|
-|**[PROJ](http://trac.osgeo.org/proj/)**|Program proj is a standard Unix filter function which converts geographic longitude and latitude coordinates into cartesian coordinates|<nobr>4.8.0-foss-2015b</nobr>|
-|**[QCA](http://delta.affinix.com/qca/)**|QCA aims to provide a straightforward and cross-platform crypto API, using Qt datatypes and conventions. QCA separates the API from the implementation, using plugins known as Providers|<nobr>2.1.0-foss-2015g</nobr>|
-|**[QGIS](http://www.qgis.org)**|A Free and Open Source Geographic Information System|<nobr>2.12.3-foss-2015g</nobr>|
-|**[Qwt](http://qwt.sourceforge.net/index.html)**|The Qwt library contains GUI Components and utility classes which are primarily useful for programs with a technical background. Beside a framework for 2D plots it provides scales, sliders, dials, compasses, thermometers, wheels and knobs to control or display values, arrays, or ranges of type double.|<nobr>6.1.2-foss-2015g</nobr>|
-|**[SIONlib](http://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/SIONlib/_node.html)**|SIONlib is a scalable I/O library for parallel access to task-local files. The library not only supports writing and reading binary data to or from several thousands of processors into a single or a small number of physical files, but also provides global open and close functions to access SIONlib files in parallel. This package provides a stripped-down installation of SIONlib for use with performance tools (e.g., Score-P), with renamed symbols to avoid conflicts when an application using SIONlib itself is linked against a tool requiring a different SIONlib version.|<nobr>1.6.1-tools</nobr>|
-|**[spatialindex](https://libspatialindex.github.io/index.html)**|The purpose of this library is to provide: * An extensible framework that will support robust spatial indexing methods. * Support for sophisticated spatial queries. Range, point location, nearest neighbor and k-nearest neighbor as well as parametric queries (defined by spatial constraints) should be easy to deploy and run. * Easy to use interfaces for inserting, deleting and updating information.|<nobr>1.8.5-foss-2015g</nobr>|
-|**[SpatiaLite](https://www.gaia-gis.it/fossil/libspatialite/index)**|SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.|<nobr>4.3.0a-foss-2015g</nobr>|
-|**[tbb](http://software.intel.com/en-us/articles/intel-tbb/)**|Intel Threading Building Blocks 4.0 (Intel TBB) is a widely used, award-winning C++ template library for creating reliable, portable, and scalable parallel applications. Use Intel TBB for a simple and rapid way of developing robust task-based parallel applications that scale to available processor cores, are compatible with multiple environments, and are easier to maintain. Intel TBB is the most proficient way to implement future-proof parallel applications that tap into the power and performance of multicore and manycore hardware platforms.|<nobr>4.3.5.187</br>4.4.2.152</nobr>|
-|**[zlib](http://www.zlib.net/)**|zlib is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and operating system.|<nobr>1.2.8-GCC-5.1.0-binutils-2.25</br>1.2.7-foss-2015b</br>1.2.8-foss-2015b</br>1.2.7-intel-2015b</br>1.2.7-ictce-5.5.0</br>1.2.8-intel-2015b</br>1.2.8-GNU-5.1.0-2.25</br>1.2.8-ictce-7.3.5</br>1.2.8-gompi-2015e</br>1.2.8-GCC-4.9.3-binutils-2.25</br>1.2.8-foss-2015g</br>1.2.8-GCCcore-4.9.3</br>1.2.8-intel-2016.01</br>1.2.8-GCCcore-5.3.0</br>1.2.8-GCCcore-5.3.1-snapshot-20160419</br>1.2.8-GNU-4.9.3-2.25</br>1.2.8-GCC-4.9.3-2.25</br>1.2.8</br>1.2.8-GNU-5.1.0-2.25-intel-2015b</nobr>|
-
-###Math
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[FIAT](https://bitbucket.org/fenics-project/fiat)**|The FInite element Automatic Tabulator FIAT supports generation of arbitrary order instances of the Lagrange elements on lines, triangles, and tetrahedra. It is also capable of generating arbitrary order instances of Jacobi-type quadrature rules on the same element shapes.|<nobr>1.6.0-intel-2015b-Python-2.7.9</br>1.6.0-intel-2016.01-Python-2.7.9</br>1.6.0-intel-2015b-Python-2.7.11</nobr>|
-|**[GEOS](http://trac.osgeo.org/geos)**|GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS)|<nobr>3.5.0-foss-2015g</nobr>|
-|**[GMP](http://gmplib.org/)**|GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers.|<nobr>5.0.5-intel-2015b</br>5.0.5-foss-2015b</br>6.0.0a-foss-2015b</br>6.0.0a-GNU-5.1.0-2.25</br>5.0.5-foss-2015g</br>6.1.0-intel-2015b</br>6.0.0a-GNU-4.9.3-2.25</br>6.1.0-GCC-4.9.3-2.25</br>6.1.0-intel-2016.01</br>5.0.5</br>6.0.0a</nobr>|
-|**[Harminv](http://ab-initio.mit.edu/wiki/index.php/Harminv)**|Harminv is a free program (and accompanying library) to solve the problem of harmonic inversion - given a discrete-time, finite-length signal that consists of a sum of finitely-many sinusoids (possibly exponentially decaying) in a given bandwidth, it determines the frequencies, decay constants, amplitudes, and phases of those sinusoids.|<nobr>1.4-intel-2015b</nobr>|
-|**[ISL](http://isl.gforge.inria.fr/)**|isl is a library for manipulating sets and relations of integer points bounded by linear constraints.|<nobr>0.14-GNU-5.1.0-2.25</br>0.15-GNU-4.9.3-2.25</br>0.15-GCC-4.9.3-2.25</br>0.15</nobr>|
-|**[METIS](http://glaros.dtc.umn.edu/gkhome/metis/metis/overview)**|METIS is a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices. The algorithms implemented in METIS are based on the multilevel recursive-bisection, multilevel k-way, and multi-constraint partitioning schemes.|<nobr>5.1.0-intel-2015b</br>5.1.0-intel-2016.01</br>5.1.0-intel-2016.01-32bitIDX</nobr>|
-|**[numpy](http://www.numpy.org)**|NumPy is the fundamental package for scientific computing with Python. It contains among other things: a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.|<nobr>1.9.1-intel-2015b-Python-2.7.9</br>1.8.2-intel-2015b-Python-2.7.9</br>1.8.2-intel-2016.01-Python-2.7.9</br>1.8.2-intel-2015b-Python-2.7.11</nobr>|
-|**[Octave](http://www.gnu.org/software/octave/)**|GNU Octave is a high-level interpreted language, primarily intended for numerical computations.|<nobr>3.8.2-intel-2015b</br>4.0.0-foss-2015g</br>3.8.2-foss-2015g</nobr>|
-|**[ParMETIS](http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview)**|ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices. ParMETIS extends the functionality provided by METIS and includes routines that are especially suited for parallel AMR computations and large scale numerical simulations. The algorithms implemented in ParMETIS are based on the parallel multilevel k-way graph-partitioning, adaptive repartitioning, and parallel multi-constrained partitioning schemes.|<nobr>4.0.3-intel-2015b</br>4.0.3-intel-2016.01</nobr>|
-|**[ScientificPython](https://sourcesup.cru.fr/projects/scientific-py/)**|ScientificPython is a collection of Python modules for scientific computing. It contains support for geometry, mathematical functions, statistics, physical units, IO, visualization, and parallelization.|<nobr>2.9.4-intel-2015b-Python-2.7.9</br>2.9.4-intel-2016.01-Python-2.7.9</br>2.9.4-intel-2015b-Python-2.7.11</nobr>|
-|**[SCOTCH](http://gforge.inria.fr/projects/scotch/)**|Software package and libraries for sequential and parallel graph partitioning, static mapping, and sparse matrix block ordering, and sequential mesh and hypergraph partitioning.|<nobr>5.1.12b_esmumps-foss-2015b</br>6.0.0_esmumps-intel-2015b</br>6.0.3-intel-2015b</br>6.0.3-intel-2016.01</br>6.0.4-intel-2015b</br>6.0.4-intel-2016.01</nobr>|
-|**[sympy](http://sympy.org/)**|SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.|<nobr>0.7.6-intel-2015b-Python-2.7.9</br>0.7.6-intel-2016.01-Python-2.7.9</br>0.7.6.1-intel-2015b-Python-2.7.11</nobr>|
-
-###Mpi
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[impi](http://software.intel.com/en-us/intel-mpi-library/)**|The Intel(R) MPI Library for Linux* OS is a multi-fabric message passing library based on ANL MPICH2 and OSU MVAPICH2. The Intel MPI Library for Linux OS implements the Message Passing Interface, version 2 (MPI-2) specification.|<nobr>4.1.1.036-iccifort-2013.5.192-GCC-4.8.3</br>4.1.1.036-iccifort-2013.5.192</br>5.0.3.048-iccifort-2015.3.187-GNU-5.1.0-2.25</br>5.0.3.048-iccifort-2015.3.187</br>5.0.3.048</br>5.1.1.109-iccifort-2016.0.109-GCC-4.9.3</br>5.1.2.150-iccifort-2016.1.150-GCC-4.9.3</br>5.1.2.150-iccifort-2016.1.150-GCC-4.9.3-2.25</br>5.1.2.150-iccifort-2016.1.150</br>2017-BETA.ENG</br>5.1.3.181-iccifort-2016.3.210-GCC-5.3.0-2.26</nobr>|
-|**[MPI_NET](http://www.osl.iu.edu/research/mpi.net/)**|MPI.NET is a high-performance, easy-to-use implementation of the Message Passing Interface (MPI) for Microsoft's .NET environment|<nobr>1.2.0-gompi-2015e</br>1.2.0-intel-2016.01</nobr>|
-|**[MPICH](http://www.mpich.org/)**|MPICH v3.x is an open source high-performance MPI 3.0 implementation. It does not support InfiniBand (use MVAPICH2 with InfiniBand devices).|<nobr>3.2-GCC-5.3.0-2.25</br>3.2-GCC-5.3.1-snapshot-20160419-2.25</nobr>|
-|**mpt**|&nbsp;|<nobr>2.12</nobr>|
-|**[MVAPICH2](http://mvapich.cse.ohio-state.edu/overview/mvapich2/)**|This is an MPI 3.0 implementation. It is based on MPICH2 and MVICH.|<nobr>2.1-GNU-5.1.0-2.25</br>2.1-GCC-4.4.7-system</br>2.1-iccifort-2015.3.187-GNU-5.1.0-2.25</nobr>|
-|**[OpenMPI](http://www.open-mpi.org/)**|The Open MPI Project is an open source MPI-2 implementation.|<nobr>1.8.6-GNU-5.1.0-2.25</br>1.8.6-iccifort-2015.3.187-GNU-5.1.0-2.25</br>1.8.8-GNU-5.1.0-2.25</br>1.8.6-GCC-4.4.7-system</br>1.8.8-GNU-4.9.3-2.25</br>1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25</br>1.10.1-GCC-4.9.3-2.25</br>1.10.2-GCC-5.3.0-2.26</br>1.10.1-GNU-4.9.3-2.25</nobr>|
-
-###Numlib
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[arpack-ng](http://forge.scilab.org/index.php/p/arpack-ng/)**|ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.|<nobr>3.3.0-intel-2015b</nobr>|
-|**[FFTW](http://www.fftw.org)**|FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data.|<nobr>3.3.4-gompi-2015b</br>3.3.4-intel-2015b</br>2.1.5-gompi-2015b</br>2.1.5-iimpi-7.3.5-GNU-5.1.0-2.25</br>3.3.4-gompi-2015e</br>3.3.4-gompi-2015g</br>3.3.4-intel-2016.01</br>3.3.4-gompi-2016.04</nobr>|
-|**[GSL](http://www.gnu.org/software/gsl/)**|The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.|<nobr>1.16-intel-2015b</nobr>|
-|**[Hypre](https://computation.llnl.gov/casc/linear_solvers/sls_hypre.html)**|Hypre is a library for solving large, sparse linear systems of equations on massively parallel computers. The problems of interest arise in the simulation codes being developed at LLNL and elsewhere to study physical phenomena in the defense, environmental, energy, and biological sciences.|<nobr>2.10.0b-intel-2015b</br>2.10.0b-intel-2016.01</br>2.10.1-intel-2015b</nobr>|
-|**[imkl](http://software.intel.com/en-us/intel-mkl/)**|Intel Math Kernel Library is a library of highly optimized, extensively threaded math routines for science, engineering, and financial applications that require maximum performance. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more.|<nobr>11.0.5.192-iimpi-5.5.0</br>11.0.5.192-iimpi-5.5.0-GCC-4.8.3</br>11.2.3.187-iimpi-7.3.5</br>11.2.3.187-iimpi-7.3.5-GNU-5.1.0-2.25</br>11.2.3.187</br>11.3.0.109-iimpi-2016.00-GCC-4.9.3</br>11.3.1.150-iimpi-2016.00-GCC-4.9.3</br>11.3.1.150-iimpi-8.3.5</br>11.3.1.150-iimpi-2016.01-GCC-4.9.3-2.25</br>11.3.3.210-iimpi-2016.03-GCC-5.3.0-2.26</br>11.2.3.187-iompi-2015.03</br>11.3.1.150-iimpi-8.1.5-GCC-4.9.3-2.25</nobr>|
-|**[LAPACKE](http://www.netlib.org/lapack/lapacke.html)**|LAPACKE C Interface to LAPACK header files and library|<nobr>3.5.0-LAPACK-3.5.0</nobr>|
-|**[OpenBLAS](http://xianyi.github.com/OpenBLAS/)**|OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.|<nobr>0.2.14-LAPACK-3.5.0</br>0.2.14-GNU-5.1.0-2.25-LAPACK-3.5.0</br>0.2.14-gompi-2015e-LAPACK-3.5.0</br>0.2.14-GNU-4.9.3-2.25-LAPACK-3.5.0</br>0.2.18-GCC-5.3.0-2.26-LAPACK-3.6.0</nobr>|
-|**[PETSc](http://www.mcs.anl.gov/petsc)**|PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations.|<nobr>3.6.1-intel-2015b-Python-2.7.9</br>3.6.1-intel-2016.01-Python-2.7.9</br>3.6.3-intel-2015b-Python-2.7.11</nobr>|
-|**[ScaLAPACK](http://www.netlib.org/scalapack/)**|The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines redesigned for distributed memory MIMD parallel computers.|<nobr>2.0.2-OpenBLAS-0.2.14-LAPACK-3.5.0</br>2.0.2-gompi-2015b-OpenBLAS-0.2.14-LAPACK-3.5.0</br>2.0.2-gompi-2015e-OpenBLAS-0.2.14-LAPACK-3.5.0</br>2.0.2-gompi-2015g-OpenBLAS-0.2.14-LAPACK-3.5.0</br>2.0.2-gompi-2016.04-OpenBLAS-0.2.18-LAPACK-3.6.0</nobr>|
-|**[SuiteSparse](http://www.cise.ufl.edu/research/sparse/SuiteSparse/)**|SuiteSparse is a collection of libraries manipulate sparse matrices.|<nobr>4.4.3-intel-2015b-ParMETIS-4.0.3</br>4.4.3-intel-2016.01-ParMETIS-4.0.3</br>4.4.6-intel-2015b-ParMETIS-4.0.3</nobr>|
-
-###Perf
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[Advisor](https://software.intel.com/intel-advisor-xe)**|Vectorization Optimization and Thread Prototyping - Vectorize & thread code or performance “dies” - Easy workflow + data + tips = faster code faster - Prioritize, Prototype & Predict performance gain|<nobr>2016_update2</nobr>|
-|**[ipp](http://software.intel.com/en-us/articles/intel-ipp/)**|Intel Integrated Performance Primitives (Intel IPP) is an extensive library of multicore-ready, highly optimized software functions for multimedia, data processing, and communications applications. Intel IPP offers thousands of optimized functions covering frequently used fundamental algorithms.|<nobr>9.0.1.150</nobr>|
-|**MAP**|&nbsp;|<nobr>4.2</br>5.0.1</nobr>|
-|**[OPARI2](http://www.score-p.org)**|OPARI2, the successor of Forschungszentrum Juelich's OPARI, is a source-to-source instrumentation tool for OpenMP and hybrid codes. It surrounds OpenMP directives and runtime library calls with calls to the POMP2 measurement interface.|<nobr>1.1.4-intel-2015b</br>2.0</nobr>|
-|**[OTF2](http://www.score-p.org)**|The Open Trace Format 2 is a highly scalable, memory efficient event trace data format plus support library. It will become the new standard trace format for Scalasca, Vampir, and Tau and is open for other tools.|<nobr>1.4-intel-2015b</br>2.0</nobr>|
-|**[PAPI](http://icl.cs.utk.edu/projects/papi/)**|PAPI provides the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware found in most major microprocessors. PAPI enables software engineers to see, in near real time, the relation between software performance and processor events. In addition Component PAPI provides access to a collection of components that expose performance measurement opportunites across the hardware and software stack.|<nobr>5.4.0-intel-2015b</br>5.4.3</br>5.4.3-pic</nobr>|
-|**perfboost**|&nbsp;|<nobr>1.0</nobr>|
-|**perfcatcher**|&nbsp;|<nobr>1.0</nobr>|
-|**PerfReports**|&nbsp;|<nobr>5.0.1</nobr>|
-|**perfsuite**|&nbsp;|<nobr>1a5.3</nobr>|
-|**[Vampir](http://www.vampir.eu)**|The Vampir software tool provides an easy-to-use framework that enables developers to quickly display and analyze arbitrary program behavior at any level of detail. The tool suite implements optimized event analysis algorithms and customizable displays that enable fast and interactive rendering of very complex performance monitoring data.|<nobr>8.5.0</nobr>|
-
-###Phys
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[Meep](http://ab-initio.mit.edu/wiki/index.php/Meep)**|Meep (or MEEP) is a free finite-difference time-domain (FDTD) simulation software package developed at MIT to model electromagnetic systems.|<nobr>1.3-intel-2015b</nobr>|
-|**[phono3py](http://phonopy.sourceforge.net/phono3py/index.html)**|This software calculates phonon-phonon interaction related properties|<nobr>0.9.14-ictce-7.3.5-Python-2.7.9</nobr>|
-
-###System
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[hwloc](http://www.open-mpi.org/projects/hwloc/)**|The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering information about modern computing hardware so as to exploit it accordingly and efficiently.|<nobr>1.11.0-GNU-5.1.0-2.25</br>1.5-GCC-4.4.7-system</br>1.11.0-GNU-4.9.3-2.25</br>1.11.1-iccifort-2015.3.187-GNU-4.9.3-2.25</br>1.11.3-GCC-5.3.0-2.26</br>1.11.2-GCC-4.9.3-2.25</br>1.11.0</nobr>|
-|**[libpciaccess](http://cgit.freedesktop.org/xorg/lib/libpciaccess/)**|Generic PCI access library.|<nobr>0.13.1-foss-2015g</br>0.13.1</nobr>|
-
-###Toolchain
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[foss]((none))**|GNU Compiler Collection (GCC) based compiler toolchain, including OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK.|<nobr>2015e</br>2015g</br>2015b</br>2016.04</nobr>|
-|**[GNU](http://www.gnu.org/software/)**|Compiler-only toolchain with GCC and binutils.|<nobr>5.1.0-2.25</br>5.1.0-2.25-intel-2015b</br>4.9.3-2.25</nobr>|
-|**[gompi]((none))**|GNU Compiler Collection (GCC) based compiler toolchain, including OpenMPI for MPI support.|<nobr>2015e</br>2015g</br>2015b</br>2016.04</nobr>|
-|**[iccifort](http://software.intel.com/en-us/intel-cluster-toolkit-compiler/)**|Intel C, C++ and Fortran compilers|<nobr>2013.5.192</br>2013.5.192-GCC-4.8.3</br>2015.3.187</br>2015.3.187-GNU-5.1.0-2.25</br>2016.0.109-GCC-4.9.3</br>2016.1.150-GCC-4.9.3</br>2016.1.150-GCC-4.9.3-2.25</br>2016.1.150</br>2016.3.210-GCC-5.3.0-2.26</br>2015.3.187-GNU-4.9.3-2.25</nobr>|
-|**[ictce](http://software.intel.com/en-us/intel-cluster-toolkit-compiler/)**|Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL.|<nobr>5.5.0</br>7.3.5</br>8.3.5</nobr>|
-|**[iimpi](http://software.intel.com/en-us/intel-cluster-toolkit-compiler/)**|Intel C/C++ and Fortran compilers, alongside Intel MPI.|<nobr>5.5.0</br>5.5.0-GCC-4.8.3</br>7.3.5</br>7.3.5-GNU-5.1.0-2.25</br>2016.00-GCC-4.9.3</br>2016.01-GCC-4.9.3</br>2016.01-GCC-4.9.3-2.25</br>8.3.5</br>2016.03-GCC-5.3.0-2.26</br>8.1.5-GCC-4.9.3-2.25</nobr>|
-|**[intel](http://software.intel.com/en-us/intel-cluster-toolkit-compiler/)**|Intel Cluster Toolkit Compiler Edition provides Intel C/C++ and Fortran compilers, Intel MPI & Intel MKL.|<nobr>2014.06</br>2015b-intel-2015b</br>2016.00</br>2016.01</br>2015b</br>2016.03-GCC-5.3</br>2016a</nobr>|
-|**[PRACE](http://www.prace-ri.eu/PRACE-Common-Production)**|The PRACE Common Production Environment (PCPE) is a set of software tools and libraries that are planned to be available on all PRACE execution sites. The PCPE also defines a set of environment variables that try to make compilation on all sites as homogeneous and simple as possible.|<nobr>20150630-intel-2015b</nobr>|
-|**[prace](http://www.prace-ri.eu/PRACE-Common-Production)**|**** PRACE Common Production Environment (PCPE) **** Initialisation of the PRACE common production environment. This allows you to assume that the following tools/libraries are available by default in your PATH/environment. * Fortran, C, C++ Compilers * MPI * BLAS, LAPACK, BLACS, ScaLAPACK * FFTW * HDF5, NetCDF The compiler commands on are: * mpif90 - Fortran compiler * mpicc - C compiler * mpicxx - C++ compiler For more information on the PCPE please see the documentation at: http://www.prace-ri.eu/PRACE-Common-Production For help using this system, please see Local User Guide available at: http://prace-ri.eu/Best-Practice-Guide-Anselm-HTML|<nobr>20160107-intel-2016.01</nobr>|
-
-###Tools
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[APR](http://apr.apache.org/)**|Apache Portable Runtime (APR) libraries.|<nobr>1.5.2-foss-2015g</br>1.5.2</nobr>|
-|**[APR-util](http://apr.apache.org/)**|Apache Portable Runtime (APR) util libraries.|<nobr>1.5.4-foss-2015g</br>1.5.4</nobr>|
-|**[Bash](http://www.gnu.org/software/bash)**|Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh).|<nobr>4.2-intel-2015b</br>4.3</nobr>|
-|**[binutils](http://directory.fsf.org/project/binutils/)**|binutils: GNU binary utilities|<nobr>2.25</br>2.25-GCC-5.1.0-binutils-2.25</br>2.25-foss-2015b</br>2.25-GCC-4.9.3-binutils-2.25</br>2.25-GCCcore-4.9.3</br>2.25-GCCcore-5.3.0</br>2.25-GCCcore-5.3.1-snapshot-20160419</br>2.26</br>2.26-GCCcore-5.3.0</nobr>|
-|**[bzip2](http://www.bzip.org/)**|bzip2 is a freely available, patent free, high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical compressors), whilst being around twice as fast at compression and six times faster at decompression.|<nobr>1.0.6-foss-2015b</br>1.0.6-intel-2015b</br>1.0.6-GNU-5.1.0-2.25</br>1.0.6-ictce-7.3.5</br>1.0.6-gompi-2015e</br>1.0.6-foss-2015g</br>1.0.6-intel-2016.01</br>1.0.6-GNU-4.9.3-2.25</br>1.0.6-GCC-4.9.3-2.25</br>1.0.6</nobr>|
-|**[cURL](http://curl.haxx.se)**|libcurl is a free and easy-to-use client-side URL transfer library, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling and more.|<nobr>7.37.1-intel-2015b</br>7.37.1-intel-2016.01</br>7.37.1-foss-2015g</br>7.45.0-foss-2015b</br>7.37.1</nobr>|
-|**[EasyBuild](http://hpcugent.github.com/easybuild/)**|EasyBuild is a software build and installation framework written in Python that allows you to install software in a structured, repeatable and robust way.|<nobr>2.4.0</br>2.5.0</br>2.7.0</br>2.8.0</nobr>|
-|**[expat](http://expat.sourceforge.net/)**|Expat is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags)|<nobr>2.1.0-intel-2015b</br>2.1.0-foss-2015b</br>2.1.0-foss-2015g</br>2.1.0</nobr>|
-|**[git](http://git-scm.com/)**|Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.|<nobr>2.8.0-GNU-4.9.3-2.25</br>2.8.0</br>2.9.2</br>2.9.0</nobr>|
-|**[gzip](http://www.gnu.org/software/gzip/)**|gzip (GNU zip) is a popular data compression program as a replacement for compress|<nobr>1.6-intel-2015b</br>1.6-foss-2015g</br>1.6</nobr>|
-|**[HPL](http://www.netlib.org/benchmark/hpl/)**|HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the High Performance Computing Linpack Benchmark.|<nobr>2.1-intel-2015b</br>2.1-foss-2015b</nobr>|
-|**[Inspector](http://software.intel.com/en-us/intel-inspector-xe)**|Intel Inspector XE 2013 is an easy to use memory error checker and thread checker for serial and parallel applications|<nobr>2016_update1</nobr>|
-|**[itac](http://software.intel.com/en-us/intel-trace-analyzer/)**|The Intel Trace Collector is a low-overhead tracing library that performs event-based tracing in applications. The Intel Trace Analyzer provides a convenient way to monitor application activities gathered by the Intel Trace Collector through graphical displays.|<nobr>9.1.2.024</nobr>|
-|**[JOE](http://joe-editor.sourceforge.net)**|JOE is a full featured terminal-based screen editor which is distributed under the GNU General Public License (GPL)|<nobr>4.2</nobr>|
-|**[likwid](https://github.com/RRZE-HPC/likwid)**|Toolsuite of command line applications for performance oriented programmers|<nobr>4.1.2-intel</br>4.1.2-gcc</nobr>|
-|**MATLAB**|&nbsp;|<nobr>2015a-COM</br>2015a-EDU</br>2015b-COM</br>2015b-EDU</nobr>|
-|**[Mercurial](http://mercurial.selenic.com/)**|Mercurial is a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface.|<nobr>3.5-Python-2.7.9</br>3.7.3-foss-2015g-Python-2.7.9</nobr>|
-|**[MIKE](http://www.mikepoweredbydhi.com)**|MIKE Powered by DHI is a part of DHI, the global organisation dedicated to solving challenges in water environments worldwide.|<nobr>2016</br>2014</br>2016-SP2</nobr>|
-|**[numactl](http://oss.sgi.com/projects/libnuma/)**|The numactl program allows you to run your application program on specific cpu's and memory nodes. It does this by supplying a NUMA memory policy to the operating system before running your program. The libnuma library provides convenient ways for you to add NUMA memory policies into your own program.|<nobr>2.0.10-GNU-5.1.0-2.25</br>2.0.9-GCC-4.4.7-system</br>2.0.10-GNU-4.9.3-2.25</br>2.0.10-iccifort-2015.3.187-GNU-4.9.3-2.25</br>2.0.11-GCC-5.3.0-2.26</br>2.0.11-GCC-4.9.3-2.25</br>2.0.11</br>2.0.10</nobr>|
-|**[parallel](http://savannah.gnu.org/projects/parallel/)**|parallel: Build and execute shell commands in parallel|<nobr>20150322-GNU-5.1.0-2.25</br>20150322</nobr>|
-|**[QEMU](http://wiki.qemu.org/Main_Page)**|QEMU is a generic and open source machine emulator and virtualizer.|<nobr>2.1.2-GCC-4.4.7-system</br>2.1.2-GCC-4.4.7-system-VDE2</nobr>|
-|**[SDE](https://software.intel.com/en-us/articles/intel-software-development-emulator)**|Intel Software Development Emulator is a pintool that enables the development of applications using instruction set extensions that are not currently implemented in hardware.|<nobr>7.41.0</nobr>|
-|**[Serf](http://serf.apache.org/)**|The serf library is a high performance C-based HTTP client library built upon the Apache Portable Runtime (APR) library|<nobr>1.3.8-foss-2015g</nobr>|
-|**[Subversion](http://subversion.apache.org/)**|Subversion is an open source version control system.|<nobr>1.8.16-foss-2015g</nobr>|
-|**[Szip](http://www.hdfgroup.org/doc_resource/SZIP/)**|Szip compression software, providing lossless compression of scientific data|<nobr>2.1-foss-2015b</br>2.1-intel-2015b</br>2.1-ictce-7.3.5</br>2.1-intel-2016.01</br>2.1-foss-2015g</br>2.1</nobr>|
-|**[tcsh](http://www.tcsh.org)**|Tcsh is an enhanced, but completely compatible version of the Berkeley UNIX C shell (csh). It is a command language interpreter usable both as an interactive login shell and a shell script command processor. It includes a command-line editor, programmable word completion, spelling correction, a history mechanism, job control and a C-like syntax.|<nobr>6.18.01-intel-2015b</br>6.19.00</nobr>|
-|**[turbovnc](http://www.turbovnc.org)**|TurboVNC is a derivative of VNC (Virtual Network Computing) that is tuned to provide peak performance for 3D and video workloads.|<nobr>1.2.3</nobr>|
-|**[util-linux](http://www.kernel.org/pub/linux/utils/util-linux)**|Set of Linux utilities|<nobr>2.26.1</br>2.26.1-foss-2015g</nobr>|
-|**[VDE2](http://vde.sourceforge.net)**|VDE is an ethernet compliant virtual network that can be spawned over a set of physical computer over the Internet. VDE is part of virtualsquare project.|<nobr>2.3.2-GCC-4.4.7-system</nobr>|
-|**[VirtualGL](http://www.virtualgl.org)**|VirtualGL is an open source toolkit that gives any Unix or Linux remote display software the ability to run OpenGL applications with full 3D hardware acceleration.|<nobr>2.4.1</nobr>|
-|**[VTune](http://software.intel.com/en-us/intel-vtune-amplifier-xe)**|Intel VTune Amplifier XE 2016 is the premier performance profiler for C, C++, C#, Fortran, Assembly and Java.|<nobr>2016_update1</nobr>|
-|**[Wine](https://www.winehq.org)**|Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, Mac OSX, & BSD.|<nobr>1.7.29-GNU-5.1.0-2.25</br>1.7.29-GCC-4.4.7-system</nobr>|
-|**[XZ](http://tukaani.org/xz/)**|xz: XZ utilities|<nobr>5.2.2-intel-2016.01</br>5.2.2</nobr>|
-
-###Vis
-
-|Module|Description|Available versions|
-|--|--|--|
-|**[cairo](http://cairographics.org)**|Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB|<nobr>1.12.18-foss-2015b</br>1.12.18</nobr>|
-|**[ffmpeg](https://www.ffmpeg.org/)**|A complete, cross-platform solution to record, convert and stream audio and video.|<nobr>2.4-intel-2015b</br>2.4-foss-2015g</br>2.4</nobr>|
-|**[fixesproto](http://www.freedesktop.org/wiki/Software/xlibs)**|X.org FixesProto protocol headers.|<nobr>5.0-foss-2015g</br>5.0</nobr>|
-|**[FLTK](http://www.fltk.org)**|FLTK is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation.|<nobr>1.3.2-intel-2015b</br>1.3.2</nobr>|
-|**[fontconfig](http://www.freedesktop.org/software/fontconfig)**|Fontconfig is a library designed to provide system-wide font configuration, customization and application access.|<nobr>2.11.1-intel-2015b</br>2.11.1-foss-2015b</br>2.11.1</nobr>|
-|**[freetype](http://freetype.org)**|FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well.|<nobr>2.5.3-intel-2015b</br>2.5.3-foss-2015b</br>2.5.3-foss-2015g</br>2.5.3</nobr>|
-|**[gettext](http://www.gnu.org/software/gettext/)**|GNU `gettext' is an important step for the GNU Translation Project, as it is an asset on which we may build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools and documentation|<nobr>0.19.2-intel-2015b</br>0.19.2-GNU-5.1.0-2.25</br>0.19.2-foss-2015b</br>0.19.2-intel-2016.01</br>0.19.6-foss-2015g</br>0.19.6-intel-2016.01</br>0.19.2-foss-2015g</br>0.19.2</br>0.19.6</nobr>|
-|**[GLib](http://www.gtk.org/)**|GLib is one of the base libraries of the GTK+ project|<nobr>2.40.0-intel-2015b</br>2.40.0-foss-2015g</br>2.40.0-intel-2016.01</br>2.40.0</nobr>|
-|**[GPI-2](http://www.gpi-site.com/gpi2/)**|GPI-2 is an API for the development of scalable, asynchronous and fault tolerant parallel applications.|<nobr>1.1.1-gompi-2015e-MPI</br>1.1.1-gompi-2015e</nobr>|
-|**[grace](http://freecode.com/projects/grace)**|Grace is a WYSIWYG 2D plotting tool for X Windows System and Motif.|<nobr>5.1.25-intel-2015b</nobr>|
-|**[inputproto](http://www.freedesktop.org/wiki/Software/xlibs)**|X.org InputProto protocol headers.|<nobr>2.3-intel-2015b</br>2.3-foss-2015g</br>2.3</nobr>|
-|**[JasPer](http://www.ece.uvic.ca/~frodo/jasper/)**|The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.|<nobr>1.900.1-intel-2015b</nobr>|
-|**[kbproto](http://www.freedesktop.org/wiki/Software/xlibs)**|X.org KBProto protocol headers.|<nobr>1.0.6-intel-2015b</br>1.0.6-foss-2015g</br>1.0.6</br>1.0.7</nobr>|
-|**[libGLU](ftp://ftp.freedesktop.org/pub/mesa/glu/)**|The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL.|<nobr>9.0.0-foss-2015g</nobr>|
-|**[libICE](http://www.freedesktop.org/wiki/Software/xlibs)**|X Inter-Client Exchange library for freedesktop.org|<nobr>1.0.9-intel-2015b</br>1.0.9-foss-2015g</br>1.0.9</nobr>|
-|**[libX11](http://www.freedesktop.org/wiki/Software/xlibs)**|X11 client-side library|<nobr>1.6.2-Python-2.7.8</br>1.6.2-intel-2015b-Python-2.7.9</br>1.6.2-foss-2015g-Python-2.7.9</br>1.6.2-Python-2.7.9</nobr>|
-|**[libXau](http://www.freedesktop.org/wiki/Software/xlibs)**|The libXau package contains a library implementing the X11 Authorization Protocol. This is useful for restricting client access to the display.|<nobr>1.0.8-intel-2015b</br>1.0.8-foss-2015g</br>1.0.8</nobr>|
-|**[libXdamage](http://www.freedesktop.org/wiki/Software/xlibs)**|X Damage extension library|<nobr>1.1.4-foss-2015g-Python-2.7.9</nobr>|
-|**[libXdmcp](http://www.freedesktop.org/wiki/Software/xlibs)**|The libXdmcp package contains a library implementing the X Display Manager Control Protocol. This is useful for allowing clients to interact with the X Display Manager.|<nobr>1.1.2-intel-2015b</br>1.1.2-foss-2015g</br>1.1.2</nobr>|
-|**[libXext](http://www.freedesktop.org/wiki/Software/xlibs)**|Common X Extensions library|<nobr>1.3.2-Python-2.7.8</br>1.3.3-intel-2015b</br>1.3.3-foss-2015g-Python-2.7.9</br>1.3.3-foss-2015g</br>1.3.3</nobr>|
-|**[libXfixes](http://www.freedesktop.org/wiki/Software/xlibs)**|X Fixes extension library|<nobr>5.0.1-foss-2015g</br>5.0.1</nobr>|
-|**[libXfont](http://www.freedesktop.org/wiki/Software/xlibs)**|X font libary|<nobr>1.5.1-foss-2015g-Python-2.7.9</br>1.5.1-Python-2.7.9</nobr>|
-|**[libXft](http://www.freedesktop.org/wiki/Software/xlibs)**|X11 client-side library|<nobr>2.3.2-intel-2015b</nobr>|
-|**[libXinerama](http://www.freedesktop.org/wiki/Software/xlibs)**|Xinerama multiple monitor library|<nobr>1.1.3-intel-2015b</nobr>|
-|**[libXrender](http://www.freedesktop.org/wiki/Software/xlibs)**|X11 client-side library|<nobr>0.9.8-intel-2015b</br>0.9.8</nobr>|
-|**[libXt](http://www.freedesktop.org/wiki/Software/xlibs)**|libXt provides the X Toolkit Intrinsics, an abstract widget library upon which other toolkits are based. Xt is the basis for many toolkits, including the Athena widgets (Xaw), and LessTif (a Motif implementation).|<nobr>1.1.4-intel-2015b-libX11-1.6.2</br>1.1.5-foss-2015g</br>1.1.4-foss-2015g-libX11-1.6.2</br>1.1.4-libX11-1.6.2</nobr>|
-|**[Mesa](http://www.mesa3d.org/)**|Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics.|<nobr>11.0.8-foss-2015g-Python-2.7.9</nobr>|
-|**[motif](http://motif.ics.com/)**|Motif refers to both a graphical user interface (GUI) specification and the widget toolkit for building applications that follow that specification under the X Window System on Unix and other POSIX-compliant systems. It was the standard toolkit for the Common Desktop Environment and thus for Unix.|<nobr>2.3.4-intel-2015b-libX11-1.6.2</br>2.3.4-foss-2015g-libX11-1.6.2</nobr>|
-|**[OpenCV](http://opencv.org/)**|OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library. OpenCV was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in the commercial products.|<nobr>2.4.9-intel-2015b</br>3.0.0-intel-2015b</nobr>|
-|**[OpenDX](http://www.opendx.org)**|Open source visualization software package based on IBM's Visualization Data Explorer.|<nobr>4.4.4-foss-2015g</nobr>|
-|**[OSPRay](http://www.ospray.org)**|A Ray Tracing Based Rendering Engine for High-Fidelity Visualization|<nobr>0.9.1</nobr>|
-|**[p4vasp](http://www.p4vasp.at)**|p4vasp is a visualization suite for the Vienna Ab-initio Simulation Package (VASP). It contains an extensible GUI framework, that can be used to view material structure, density of states, band-structure and more.|<nobr>0.3.29-GNU-4.9.3-2.25</nobr>|
-|**[ParaView](http://www.paraview.org)**|ParaView is a scientific parallel visualizer.|<nobr>4.3-OSPRay</br>5.0.0-binary</nobr>|
-|**[pixman](http://www.pixman.org/)**|Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization. Important users of pixman are the cairo graphics library and the X server.|<nobr>0.32.6-intel-2015b</br>0.32.6-foss-2015b</br>0.32.6</nobr>|
-|**[PyQt](http://www.riverbankcomputing.co.uk/software/pyqt)**|PyQt is a set of Python v2 and v3 bindings for Digia's Qt application framework.|<nobr>4.11.3-foss-2015g-Python-2.7.9</br>4.11.4-foss-2015g-Python-2.7.9</nobr>|
-|**[SUMO](http://www.sumo.dlr.de/wiki/Main_Page)**|Simulation of Urban MObility (SUMO) is an open source, highly portable, microscopic and continuous road traffic simulation package designed to handle large road networks.|<nobr>0.25.0-foss-2015g</br>0.26.0-foss-2015g</br>0.27.1-foss-2015g</nobr>|
-|**[Tk](http://www.tcl.tk/)**|Tk is an open source, cross-platform widget toolchain that provides a library of basic elements for building a graphical user interface (GUI) in many different programming languages.|<nobr>8.5.12-intel-2015b</br>8.6.4-intel-2015b-no-X11</br>8.6.4-GNU-4.9.3-2.25-no-X11</br>8.6.4-GCC-4.9.3-2.25-no-X11</br>8.6.4-foss-2015b-no-X11</br>8.6.4-foss-2015g-no-X11</br>8.6.4-intel-2016.01-no-X11</br>8.6.4-no-X11</br>8.5.12</br>8.6.3</nobr>|
-|**[VisIt](https://wci.llnl.gov/simulation/computer-codes/visit)**|VisIt is an Open Source, interactive, scalable, visualization, animation and analysis tool|<nobr>2.10.0</nobr>|
diff --git a/scripts/salomon_modules.txt b/scripts/salomon_modules.txt
deleted file mode 100644
index c619314c4769588ee0aba642e4f26be4366a393a..0000000000000000000000000000000000000000
--- a/scripts/salomon_modules.txt
+++ /dev/null
@@ -1,258 +0,0 @@
-ABINIT|7.10.1-foss-2015b;7.10.1-intel-2015b
-Adams|2013.2
-Advisor|2016_update2
-aislinn|20160105-Python-2.7.9-gompi-2015e
-almost|2.1.0-intel-2015b;2.1.0-foss-2015b;2.1.0-foss-2015g
-Amber|14
-ANSYS|16.1;17.0
-ant|1.9.3-Java-1.7.0_79
-APR|1.5.2-foss-2015g;1.5.2
-APR-util|1.5.4-foss-2015g;1.5.4
-arpack-ng|3.3.0-intel-2015b
-Autoconf|2.69-GNU-5.1.0-2.25;2.69-GNU-4.9.3-2.25;2.69-foss-2015g;2.69-intel-2015b;2.69-GCC-4.9.3-2.25;2.69-intel-2016.01;2.69
-Automake|1.15-GNU-5.1.0-2.25;1.15-GNU-4.9.3-2.25;1.15-intel-2015b;1.15-GCC-4.9.3-2.25;1.15-foss-2015g;1.15-intel-2016.01;1.15
-Autotools|20150215-GNU-5.1.0-2.25;20150215-GNU-4.9.3-2.25;20150215-intel-2015b;20150215-GCC-4.9.3-2.25;20150215-intel-2016.01;20150215
-Bash|4.2-intel-2015b;4.3
-BCFtools|1.3-foss-2015g
-BerkeleyUPC|2.16.2-gompi-2015b
-binutils|2.25;2.25-GCC-5.1.0-binutils-2.25;2.25-foss-2015b;2.25-GCC-4.9.3-binutils-2.25;2.25-GCCcore-4.9.3;2.25-GCCcore-5.3.0;2.25-GCCcore-5.3.1-snapshot-20160419;2.26;2.26-GCCcore-5.3.0
-Bison|2.7-foss-2015b;3.0.2-intel-2015b;2.7-GNU-5.1.0-2.25;2.7-intel-2015b;2.5-intel-2015b;3.0.4-GCC-4.9.3-binutils-2.25;2.7-foss-2015g;3.0.4-GCCcore-4.9.3;3.0.2-intel-2016.01;3.0.2-foss-2015g;3.0.4-GCC-5.1.0-binutils-2.25;3.0.4;3.0.4-GCCcore-5.3.0;3.0.4-GCCcore-5.3.1-snapshot-20160419;3.0.4-intel-2016.01;3.0.4-foss-2015b;3.0.2;2.7
-Boost|1.58.0-Python-2.7.9;1.58.0-intel-2015b-Python-2.7.9;1.58.0-ictce-7.3.5-Python-2.7.9;1.58.0-gompi-2015e-Python-2.7.9;1.58.0-foss-2015g-Python-2.7.9;1.58.0-intel-2016.01-Python-2.7.9;1.59.0-intel-2015b-Python-2.7.11;1.59.0-intel-2016.01;1.60.0-foss-2015g-Python-2.7.9
-BWA|0.7.5a-foss-2015g
-byacc|20120526-intel-2015b;20120526-foss-2015b;20120526-foss-2015g;20120526
-bzip2|1.0.6-foss-2015b;1.0.6-intel-2015b;1.0.6-GNU-5.1.0-2.25;1.0.6-ictce-7.3.5;1.0.6-gompi-2015e;1.0.6-foss-2015g;1.0.6-intel-2016.01;1.0.6-GNU-4.9.3-2.25;1.0.6-GCC-4.9.3-2.25;1.0.6
-cairo|1.12.18-foss-2015b;1.12.18
-Clang|3.7.0-GNU-5.1.0-2.25
-CMake|3.0.0-intel-2015b;3.0.0-ictce-7.3.5;3.3.1-GNU-5.1.0-2.25;3.3.1-GNU-4.9.3-2.25;3.3.1-foss-2015g;3.0.0-intel-2016.01;3.3.1-intel-2016.01;3.0.0-foss-2015g;3.4.1-intel-2015b;3.3.1-GCC-5.3.0-2.25;3.3.1-GCC-5.3.1-snapshot-20160419-2.25;3.3.2-intel-2016.01;3.3.2-GNU-4.9.3-2.25;3.4.1-GCCcore-4.9.3;3.4.1-foss-2015b;3.5.2
-COMSOL|51-COM;51-EDU
-CP2K|2.6.0-intel-2015b
-cURL|7.37.1-intel-2015b;7.37.1-intel-2016.01;7.37.1-foss-2015g;7.45.0-foss-2015b;7.37.1
-DCW|1.1.2
-DDT|4.2;5.0.1
-Digimat|5.0.1-COM;5.0.1-EDU
-Doxygen|1.8.7-intel-2015b;1.8.7-intel-2016.01;1.8.7-foss-2015g;1.8.10-foss-2015b;1.8.11
-EasyBuild|2.1.1;2.2.0;2.3.0
-EasyBuild|2.4.0;2.5.0;2.7.0;2.8.0
-expat|2.1.0-intel-2015b;2.1.0-foss-2015b;2.1.0-foss-2015g;2.1.0
-FastQC|0.11.3
-ffmpeg|2.4-intel-2015b;2.4-foss-2015g;2.4
-FFTW|3.3.4-gompi-2015b;3.3.4-intel-2015b;2.1.5-gompi-2015b;2.1.5-iimpi-7.3.5-GNU-5.1.0-2.25;3.3.4-gompi-2015e;3.3.4-gompi-2015g;3.3.4-intel-2016.01;3.3.4-gompi-2016.04
-FIAT|1.6.0-intel-2015b-Python-2.7.9;1.6.0-intel-2016.01-Python-2.7.9;1.6.0-intel-2015b-Python-2.7.11
-fixesproto|5.0-foss-2015g;5.0
-flex|2.5.38-GCC-4.8.3;2.5.39-intel-2015b;2.5.37-intel-2015b;2.5.35-intel-2015b;2.5.39-foss-2015b;2.5.39-GCC-4.9.3-binutils-2.25;2.5.39-foss-2015g;2.5.39-GCCcore-4.9.3;2.5.39-intel-2016.01;2.5.39-GCC-5.1.0-binutils-2.25;2.5.39;2.5.39-GCCcore-5.3.0;2.5.39-GCCcore-5.3.1-snapshot-20160419;2.6.0;2.6.0-GCCcore-5.3.0
-FLTK|1.3.2-intel-2015b;1.3.2
-fontconfig|2.11.1-intel-2015b;2.11.1-foss-2015b;2.11.1
-fontsproto|2.1.3-foss-2015g;2.1.3
-Forge|5.1-43967;6.0.6;6.0.5
-foss|2015e;2015g;2015b;2016.04
-FOX|1.6.51-foss-2015g
-FreeFem++|3.45-intel-2015b
-freetype|2.5.3-intel-2015b;2.5.3-foss-2015b;2.5.3-foss-2015g;2.5.3
-GATK|2.6-5-Java-1.7.0_79;3.5-Java-1.7.0_79
-GCC|4.9.2-binutils-2.25;4.8.3;5.1.0-binutils-2.25;4.4.7-system;4.9.3-binutils-2.25;4.7.4;5.2.0;4.9.3;5.3.0-binutils-2.25;5.3.0-2.25;5.3.1-snapshot-20160419-2.25;4.9.3-2.25;5.3.0-2.26
-GCCcore|4.9.3;5.3.0;5.3.1-snapshot-20160419
-GDAL|1.9.2-foss-2015g;2.1.0-foss-2015g;2.0.1-foss-2015b;2.1.0-GNU-5.1.0-2.25-intel-2015b;2.1.0-GNU-5.1.0-2.25;2.1.0-intel-2015b
-GEOS|3.5.0-foss-2015g
-gettext|0.19.2-intel-2015b;0.19.2-GNU-5.1.0-2.25;0.19.2-foss-2015b;0.19.2-intel-2016.01;0.19.6-foss-2015g;0.19.6-intel-2016.01;0.19.2-foss-2015g;0.19.2;0.19.6
-git|2.8.0-GNU-4.9.3-2.25;2.8.0;2.9.2;2.9.0
-GLib|2.40.0-intel-2015b;2.40.0-foss-2015g;2.40.0-intel-2016.01;2.40.0
-glproto|1.4.16-foss-2015g
-GMP|5.0.5-intel-2015b;5.0.5-foss-2015b;6.0.0a-foss-2015b;6.0.0a-GNU-5.1.0-2.25;5.0.5-foss-2015g;6.1.0-intel-2015b;6.0.0a-GNU-4.9.3-2.25;6.1.0-GCC-4.9.3-2.25;6.1.0-intel-2016.01;5.0.5;6.0.0a
-GMT|5.2.1-foss-2015g
-GNU|5.1.0-2.25;5.1.0-2.25-intel-2015b;4.9.3-2.25
-gompi|2015e;2015g;2015b;2016.04
-gperf|3.0.4-foss-2015g
-GPI-2|1.1.1-gompi-2015e-MPI;1.1.1-gompi-2015e
-grace|5.1.25-intel-2015b
-GROMACS|5.0.4-ictce-7.3.5-hybrid-single;5.0.4-foss-2015e-hybrid-single-PLUMED;5.0.4-foss-2015g-hybrid-single-PLUMED;5.0.4-foss-2015g-hybrid-single;4.6.7-foss-2015g-hybrid-single-PLUMED
-GSL|1.16-intel-2015b
-guile|1.8.8-intel-2015b;1.8.8-foss-2015b;1.8.8-foss-2015g;1.8.8
-gzip|1.6-intel-2015b;1.6-foss-2015g;1.6
-h5py|2.4.0-ictce-7.3.5-Python-2.7.9-serial
-Harminv|1.4-intel-2015b
-HDF5|1.8.13-intel-2015b;1.8.13-intel-2015b-no-mpi;1.8.14-ictce-7.3.5-serial;1.8.13-intel-2016.01;1.8.13-foss-2015g;1.8.16-intel-2015b;1.8.16-intel-2015b-threadsafe;1.8.16-foss-2015g;1.10.0-patch1-intel-2016.01-mic;1.8.15-patch1-foss-2015b
-HPL|2.1-intel-2015b;2.1-foss-2015b
-HTSlib|1.3-foss-2015g
-hwloc|1.11.0-GNU-5.1.0-2.25;1.5-GCC-4.4.7-system;1.11.0-GNU-4.9.3-2.25;1.11.1-iccifort-2015.3.187-GNU-4.9.3-2.25;1.11.3-GCC-5.3.0-2.26;1.11.2-GCC-4.9.3-2.25;1.11.0
-HyperWorks|13.0
-Hypre|2.10.0b-intel-2015b;2.10.0b-intel-2016.01;2.10.1-intel-2015b
-icc|2013.5.192;2013.5.192-GCC-4.8.3;2015.3.187;2015.3.187-GNU-5.1.0-2.25;2016.0.109-GCC-4.9.3;2016.1.150-GCC-4.9.3;2016.1.150;2016.3.210-GCC-5.3.0-2.26;2015.3.187-GNU-4.9.3-2.25;2016.1.150-GCC-4.9.3-2.25
-iccifort|2013.5.192;2013.5.192-GCC-4.8.3;2015.3.187;2015.3.187-GNU-5.1.0-2.25;2016.0.109-GCC-4.9.3;2016.1.150-GCC-4.9.3;2016.1.150-GCC-4.9.3-2.25;2016.1.150;2016.3.210-GCC-5.3.0-2.26;2015.3.187-GNU-4.9.3-2.25
-ictce|5.5.0;7.3.5;8.3.5
-ifort|2013.5.192;2013.5.192-GCC-4.8.3;2015.3.187;2015.3.187-GNU-5.1.0-2.25;2016.0.109-GCC-4.9.3;2016.1.150-GCC-4.9.3;2016.1.150-GCC-4.9.3-2.25;2016.1.150;2016.3.210-GCC-5.3.0-2.26;2015.3.187-GNU-4.9.3-2.25
-iimpi|5.5.0;5.5.0-GCC-4.8.3;7.3.5;7.3.5-GNU-5.1.0-2.25;2016.00-GCC-4.9.3;2016.01-GCC-4.9.3;2016.01-GCC-4.9.3-2.25;8.3.5;2016.03-GCC-5.3.0-2.26;8.1.5-GCC-4.9.3-2.25
-imkl|11.0.5.192-iimpi-5.5.0;11.0.5.192-iimpi-5.5.0-GCC-4.8.3;11.2.3.187-iimpi-7.3.5;11.2.3.187-iimpi-7.3.5-GNU-5.1.0-2.25;11.2.3.187;11.3.0.109-iimpi-2016.00-GCC-4.9.3;11.3.1.150-iimpi-2016.00-GCC-4.9.3;11.3.1.150-iimpi-8.3.5;11.3.1.150-iimpi-2016.01-GCC-4.9.3-2.25;11.3.3.210-iimpi-2016.03-GCC-5.3.0-2.26;11.2.3.187-iompi-2015.03;11.3.1.150-iimpi-8.1.5-GCC-4.9.3-2.25
-impi|4.1.1.036-iccifort-2013.5.192-GCC-4.8.3;4.1.1.036-iccifort-2013.5.192;5.0.3.048-iccifort-2015.3.187-GNU-5.1.0-2.25;5.0.3.048-iccifort-2015.3.187;5.0.3.048;5.1.1.109-iccifort-2016.0.109-GCC-4.9.3;5.1.2.150-iccifort-2016.1.150-GCC-4.9.3;5.1.2.150-iccifort-2016.1.150-GCC-4.9.3-2.25;5.1.2.150-iccifort-2016.1.150;2017-BETA.ENG;5.1.3.181-iccifort-2016.3.210-GCC-5.3.0-2.26
-inputproto|2.3-intel-2015b;2.3-foss-2015g;2.3
-Inspector|2016_update1
-intel|2014.06;2015b-intel-2015b;2016.00;2016.01;2015b;2016.03-GCC-5.3;2016a
-ipp|9.0.1.150
-ISL|0.14-GNU-5.1.0-2.25;0.15-GNU-4.9.3-2.25;0.15-GCC-4.9.3-2.25;0.15
-itac|9.1.2.024
-JasPer|1.900.1-intel-2015b
-Java|1.7.0_79;1.8.0_51;1.8.0_72
-JOE|4.2
-JUnit|4.11-Java-1.7.0_79
-kbproto|1.0.6-intel-2015b;1.0.6-foss-2015g;1.0.6;1.0.7
-LAMMPS|28Jun14-intel-2015b
-LAPACKE|3.5.0-LAPACK-3.5.0
-libctl|3.2.2-intel-2015b
-libdrm|2.4.27-foss-2015g;2.4.27
-libffi|3.1-intel-2015b;3.1-GNU-5.1.0-2.25;3.0.13-intel-2015b;3.1-foss-2015b;3.0.13-foss-2015b;3.0.13-foss-2015g;3.1-intel-2016.01;3.0.13
-libfontenc|1.1.3-foss-2015g;1.1.3
-libgdiplus|3.12-GNU-5.1.0-2.25;3.12-GCC-4.4.7-system;3.12-intel-2016.01;3.12
-libGLU|9.0.0-foss-2015g
-libICE|1.0.9-intel-2015b;1.0.9-foss-2015g;1.0.9
-Libint|1.1.4-gompi-2015b;1.1.4-foss-2015b;1.1.4-intel-2015b
-libjpeg-turbo|1.3.1-foss-2015b;1.3.1-intel-2015b;1.4.0-intel-2015b;1.4.0-foss-2015g;1.4.1-foss-2015b;1.4.0
-libmatheval|1.1.8-intel-2015b;1.1.8-foss-2015b;1.1.8-foss-2015g;1.1.8
-libMesh|0.9.5-intel-2016.01
-libpciaccess|0.13.1-foss-2015g;0.13.1
-libpng|1.6.9-intel-2015b;1.6.9-ictce-5.5.0;1.6.12-intel-2015b;1.6.12-foss-2015b;1.6.12-intel-2016.01;1.6.12-foss-2015g;1.6.21-foss-2015g;1.6.21-foss-2015b;1.6.17-foss-2015b;1.6.12
-libpthread-stubs|0.3-intel-2015b;0.3-foss-2015g;0.3
-libreadline|6.2-intel-2015b;6.2-ictce-5.5.0;6.3-intel-2015b;6.3-GNU-5.1.0-2.25;6.3-ictce-7.3.5;6.3-foss-2015b;6.3-gompi-2015e;6.3-foss-2015g;6.3-intel-2016.01;6.3-GNU-4.9.3-2.25;6.3-GCCcore-4.9.3;6.3
-libSM|1.2.2-intel-2015b;1.2.2-foss-2015g;1.2.2
-LibTIFF|4.0.3-intel-2015b;4.0.3
-libtool|2.4.6-GNU-5.1.0-2.25;2.4.2-intel-2015b;2.4.2-foss-2015b;2.4.6-GNU-4.9.3-2.25;2.4.2-foss-2015g;2.4.6-intel-2015b;2.4.6-GCC-4.9.3-2.25;2.4.6-foss-2015g;2.4.6-intel-2016.01;2.4.6;2.4.2
-libunistring|0.9.3-intel-2015b;0.9.3-foss-2015b;0.9.3-foss-2015g;0.9.3
-libX11|1.6.2-Python-2.7.8;1.6.2-intel-2015b-Python-2.7.9;1.6.2-foss-2015g-Python-2.7.9;1.6.2-Python-2.7.9
-libXau|1.0.8-intel-2015b;1.0.8-foss-2015g;1.0.8
-libxc|2.2.0-gompi-2015b;2.2.0-foss-2015b;2.2.1-intel-2015b
-libxcb|1.10-Python-2.7.8;1.11-intel-2015b-Python-2.7.9;1.11-foss-2015g-Python-2.7.9;1.11-Python-2.7.9
-libXdamage|1.1.4-foss-2015g-Python-2.7.9
-libXdmcp|1.1.2-intel-2015b;1.1.2-foss-2015g;1.1.2
-libXext|1.3.2-Python-2.7.8;1.3.3-intel-2015b;1.3.3-foss-2015g-Python-2.7.9;1.3.3-foss-2015g;1.3.3
-libXfixes|5.0.1-foss-2015g;5.0.1
-libXfont|1.5.1-foss-2015g-Python-2.7.9;1.5.1-Python-2.7.9
-libXft|2.3.2-intel-2015b
-libXinerama|1.1.3-intel-2015b
-libxml2|2.9.2-intel-2015b;2.9.2-ictce-7.3.5;2.9.2-foss-2015b;2.9.2-GNU-5.1.0-2.25;2.9.2-gompi-2015e;2.9.2-foss-2015g;2.9.2-foss-2015g-Python-2.7.9;2.9.2-GNU-4.9.3-2.25;2.9.2-GCC-4.9.3-2.25;2.9.2
-libXrender|0.9.8-intel-2015b;0.9.8
-libXt|1.1.4-intel-2015b-libX11-1.6.2;1.1.5-foss-2015g;1.1.4-foss-2015g-libX11-1.6.2;1.1.4-libX11-1.6.2
-likwid|4.1.2-intel;4.1.2-gcc
-LLVM|3.7.1-foss-2015g
-M4|1.4.17;1.4.17-GNU-5.1.0-2.25;1.4.17-foss-2015b;1.4.17-intel-2015b;1.4.16-intel-2015b;1.4.17-GCC-4.9.3-binutils-2.25;1.4.17-GNU-4.9.3-2.25;1.4.17-GCCcore-4.9.3;1.4.17-intel-2016.01;1.4.16-foss-2015g;1.4.17-foss-2015g;1.4.17-GCC-5.1.0-binutils-2.25;1.4.17-GCCcore-5.3.0;1.4.17-GCCcore-5.3.1-snapshot-20160419;1.4.17-GCC-4.9.3-2.25
-make|3.82-intel-2015b;3.82
-makedepend|1.0.4-foss-2015g;1.0.4
-MAP|4.2;5.0.1
-Marc|2013.1.0
-MATLAB|2015a-COM;2015a-EDU;2015b-COM;2015b-EDU
-Maven|3.3.9
-Meep|1.3-intel-2015b
-Mercurial|3.5-Python-2.7.9;3.7.3-foss-2015g-Python-2.7.9
-Mesa|11.0.8-foss-2015g-Python-2.7.9
-METIS|5.1.0-intel-2015b;5.1.0-intel-2016.01;5.1.0-intel-2016.01-32bitIDX
-MIKE|2016;2014;2016-SP2
-#Modules
-Molpro|2010.1-patch-57-intel2015b
-Mono|4.0.3.20-GNU-5.1.0-2.25;3.12.1;3.12.1-GCC-4.4.7-system;4.2.2.10-intel-2016.01
-motif|2.3.4-intel-2015b-libX11-1.6.2;2.3.4-foss-2015g-libX11-1.6.2
-MPICH|3.2-GCC-5.3.0-2.25;3.2-GCC-5.3.1-snapshot-20160419-2.25
-MPI_NET|1.2.0-gompi-2015e;1.2.0-intel-2016.01
-mpt|2.12
-MVAPICH2|2.1-GNU-5.1.0-2.25;2.1-GCC-4.4.7-system;2.1-iccifort-2015.3.187-GNU-5.1.0-2.25
-NAMD|2.9-mpi
-NASM|2.11.05-foss-2015b;2.11.06-intel-2015b;2.11.05-intel-2015b;2.11.05-foss-2015g;2.11.08-foss-2015b;2.11.05
-ncurses|5.9-intel-2015b;5.9-ictce-5.5.0;5.9-GNU-5.1.0-2.25;5.9-ictce-7.3.5;5.9-foss-2015b;5.9-gompi-2015e;5.9-foss-2015g;5.9-GNU-4.9.3-2.25;5.9-intel-2016.01;5.9-GCC-5.3.0-2.25;5.9-GCC-5.3.1-snapshot-20160419-2.25;6.0-GCCcore-4.9.3;6.0-foss-2015g;6.0-foss-2015b;6.0-intel-2016.01;6.0;5.9;6.0-intel-2016a
-netCDF|4.3.2-intel-2015b;4.3.2-intel-2016.01;4.3.2-foss-2015g;4.3.3.1-foss-2015b
-netCDF-Fortran|4.4.0-intel-2016.01
-numactl|2.0.10-GNU-5.1.0-2.25;2.0.9-GCC-4.4.7-system;2.0.10-GNU-4.9.3-2.25;2.0.10-iccifort-2015.3.187-GNU-4.9.3-2.25;2.0.11-GCC-5.3.0-2.26;2.0.11-GCC-4.9.3-2.25;2.0.11;2.0.10
-numpy|1.9.1-intel-2015b-Python-2.7.9;1.8.2-intel-2015b-Python-2.7.9;1.8.2-intel-2016.01-Python-2.7.9;1.8.2-intel-2015b-Python-2.7.11
-NWChem|6.3.revision2-2013-10-17-Python-2.7.8;6.5.revision26243-intel-2015b-2014-09-10-Python-2.7.8
-Octave|3.8.2-intel-2015b;4.0.0-foss-2015g;3.8.2-foss-2015g
-OPARI2|1.1.4-intel-2015b;2.0
-OpenBLAS|0.2.14-LAPACK-3.5.0;0.2.14-GNU-5.1.0-2.25-LAPACK-3.5.0;0.2.14-gompi-2015e-LAPACK-3.5.0;0.2.14-GNU-4.9.3-2.25-LAPACK-3.5.0;0.2.18-GCC-5.3.0-2.26-LAPACK-3.6.0
-OpenCL-builder|2015
-OpenCL-runtime|15.1
-OpenCoarrays|1.0.0-GNU-5.1.0-2.25;1.0.1-GNU-5.1.0-2.25
-OpenCoarrays|1.4.0-GCC-5.3.0-2.25;1.4.0-GCC-5.3.1-snapshot-20160419-2.25
-OpenCV|2.4.9-intel-2015b;3.0.0-intel-2015b
-OpenDX|4.4.4-foss-2015g
-OpenFOAM|2.3.0-intel-2015b;2.2.2-intel-2015b;3.0.0-intel-2016.01
-OpenMPI|1.8.6-GNU-5.1.0-2.25;1.8.6-iccifort-2015.3.187-GNU-5.1.0-2.25;1.8.8-GNU-5.1.0-2.25;1.8.6-GCC-4.4.7-system;1.8.8-GNU-4.9.3-2.25;1.8.8-iccifort-2015.3.187-GNU-4.9.3-2.25;1.10.1-GCC-4.9.3-2.25;1.10.2-GCC-5.3.0-2.26;1.10.1-GNU-4.9.3-2.25
-OSPRay|0.9.1
-OTF2|1.4-intel-2015b;2.0
-p4vasp|0.3.29-GNU-4.9.3-2.25
-PAPI|5.4.0-intel-2015b;5.4.3;5.4.3-pic
-parallel|20150322-GNU-5.1.0-2.25;20150322
-ParaView|4.3-OSPRay;5.0.0-binary
-ParMETIS|4.0.3-intel-2015b;4.0.3-intel-2016.01
-PCRE|8.36-intel-2015b;8.36-foss-2015g;8.37-foss-2015g;8.36-intel-2016.01;8.37
-perfboost|1.0
-perfcatcher|1.0
-PerformanceReports|5.1-43967;6.0.6
-PerfReports|5.0.1
-perfsuite|1a5.3
-Perl|5.16.3-intel-2015b;5.20.2-bare;5.20.2-GNU-4.9.3-2.25-bare
-PETSc|3.6.1-intel-2015b-Python-2.7.9;3.6.1-intel-2016.01-Python-2.7.9;3.6.3-intel-2015b-Python-2.7.11
-PGI|15.7
-phono3py|0.9.14-ictce-7.3.5-Python-2.7.9
-picard|1.119;2.1.0
-pixman|0.32.6-intel-2015b;0.32.6-foss-2015b;0.32.6
-pkg-config|0.27.1-intel-2015b;0.27.1-foss-2015b;0.27.1-foss-2015g;0.27.1;0.29
-PLUMED|2.1.3-foss-2015g
-PRACE|20150630-intel-2015b
-prace|20160107-intel-2016.01
-PROJ_4|4.9.2-foss-2015g
-PROJ|4.8.0-foss-2015b
-PyQt|4.11.3-foss-2015g-Python-2.7.9;4.11.4-foss-2015g-Python-2.7.9
-Python|2.7.8-intel-2015b;2.7.9-intel-2015b;2.7.9-ictce-7.3.5;2.7.9-foss-2015b;2.7.9-GNU-5.1.0-2.25;2.7.9-gompi-2015e;2.7.9-foss-2015g;2.7.9-intel-2016.01;2.7.8-intel-2016.01;2.7.11-intel-2015b;2.7.10-GNU-4.9.3-2.25-bare;2.7.10-GCC-4.9.3-2.25-bare;3.5.1-intel-2016.01;2.7.9;3.5.1
-Python|3.4.3-intel-2015b
-python-meep|1.4.2-intel-2015b-Python-2.7.9-Meep-1.3
-QCA|2.1.0-foss-2015g
-QEMU|2.1.2-GCC-4.4.7-system;2.1.2-GCC-4.4.7-system-VDE2
-QGIS|2.12.3-foss-2015g
-Qt|4.8.6-foss-2015g;4.8.6
-Qwt|6.1.2-foss-2015g
-R|3.1.1-intel-2015b;3.2.3-intel-2016.01;3.2.3-foss-2015b
-Racket|6.1.1-GNU-5.1.0-2.25
-RELION|1.3-intel-2015b
-renderproto|0.11-intel-2015b;0.11
-RStudio|0.98.1103
-Ruby|2.1.5-intel-2015b;2.3.1
-S4MPLE|1.0.0
-SAMtools|1.3-foss-2015g
-ScaLAPACK|2.0.2-OpenBLAS-0.2.14-LAPACK-3.5.0;2.0.2-gompi-2015b-OpenBLAS-0.2.14-LAPACK-3.5.0;2.0.2-gompi-2015e-OpenBLAS-0.2.14-LAPACK-3.5.0;2.0.2-gompi-2015g-OpenBLAS-0.2.14-LAPACK-3.5.0;2.0.2-gompi-2016.04-OpenBLAS-0.2.18-LAPACK-3.6.0
-ScientificPython|2.9.4-intel-2015b-Python-2.7.9;2.9.4-intel-2016.01-Python-2.7.9;2.9.4-intel-2015b-Python-2.7.11
-SCons|2.3.6-Python-2.7.9;2.3.6-foss-2015g-Python-2.7.9
-SCOTCH|5.1.12b_esmumps-foss-2015b;6.0.0_esmumps-intel-2015b;6.0.3-intel-2015b;6.0.3-intel-2016.01;6.0.4-intel-2015b;6.0.4-intel-2016.01
-SDE|7.41.0
-Serf|1.3.8-foss-2015g
-SIONlib|1.6.1-tools;1.6.1-intel-2015b-tools
-SIP|4.16.4-foss-2015g-Python-2.7.9;4.17-foss-2015g-Python-2.7.9;4.17-Python-2.7.9
-SnpEff|4.1_G
-SnuCL|1.3.3-gompi-2015e
-Spark|1.5.2
-spatialindex|1.8.5-foss-2015g
-SpatiaLite|4.3.0a-foss-2015g
-SQLite|3.8.8.1-intel-2015b;3.8.8.1-ictce-7.3.5;3.8.8.1-foss-2015b;3.8.8.1-GNU-5.1.0-2.25;3.8.8.1-gompi-2015e;3.8.8.1-intel-2016.01;3.10.1-foss-2015g;3.9.2-intel-2015b;3.8.8.1-foss-2015g;3.8.10.2-GNU-4.9.3-2.25;3.8.10.2-GCC-4.9.3-2.25;3.9.2-foss-2015g;3.9.2-intel-2016.01;3.8.8.1
-Subversion|1.8.16-foss-2015g
-SuiteSparse|4.4.3-intel-2015b-ParMETIS-4.0.3;4.4.3-intel-2016.01-ParMETIS-4.0.3;4.4.6-intel-2015b-ParMETIS-4.0.3
-SUMO|0.25.0-foss-2015g;0.26.0-foss-2015g;0.27.1-foss-2015g
-SWIG|3.0.7-Python-2.7.9;2.0.12-Python-2.7.9;2.0.12-intel-2015b-Python-2.7.9
-sympy|0.7.6-intel-2015b-Python-2.7.9;0.7.6-intel-2016.01-Python-2.7.9;0.7.6.1-intel-2015b-Python-2.7.11
-Szip|2.1-foss-2015b;2.1-intel-2015b;2.1-ictce-7.3.5;2.1-intel-2016.01;2.1-foss-2015g;2.1
-tbb|4.3.5.187;4.4.2.152
-Tcl|8.6.3-intel-2015b;8.5.12-intel-2015b;8.6.3-ictce-7.3.5;8.6.3-foss-2015b;8.6.3-GNU-5.1.0-2.25;8.6.3-gompi-2015e;8.6.3-foss-2015g;8.6.3-intel-2016.01;8.6.4-intel-2015b;8.6.4-GNU-4.9.3-2.25;8.6.4-GCC-4.9.3-2.25;8.6.4-foss-2015b;8.6.4-foss-2015g;8.6.4-intel-2016.01;8.6.4;8.6.3;8.5.12
-tcsh|6.18.01-intel-2015b;6.19.00
-Tk|8.5.12-intel-2015b;8.6.4-intel-2015b-no-X11;8.6.4-GNU-4.9.3-2.25-no-X11;8.6.4-GCC-4.9.3-2.25-no-X11;8.6.4-foss-2015b-no-X11;8.6.4-foss-2015g-no-X11;8.6.4-intel-2016.01-no-X11;8.6.4-no-X11;8.5.12;8.6.3
-TotalView|8.15.4-6-linux-x86-64
-Trimmomatic|0.35-Java-1.7.0_79
-turbovnc|1.2.3
-util-linux|2.26.1;2.26.1-foss-2015g
-Valgrind|3.11.0-foss-2015b;3.11.0-intel-2015b
-Vampir|8.5.0
-VDE2|2.3.2-GCC-4.4.7-system
-VirtualGL|2.4.1
-VisIt|2.10.0
-VTune|2016_update1
-Wine|1.7.29-GNU-5.1.0-2.25;1.7.29-GCC-4.4.7-system
-xbitmaps|1.1.1-intel-2015b;1.1.1-foss-2015g;1.1.1
-xcb-proto|1.10-Python-2.7.8;1.11-intel-2015b-Python-2.7.9;1.11-foss-2015g-Python-2.7.9;1.11-Python-2.7.9;1.11
-xextproto|7.3.0-intel-2015b;7.3.0-foss-2015g;7.3.0
-xineramaproto|1.2.1-intel-2015b;1.2.1
-xorg-macros|1.17-foss-2015g;1.17
-xproto|7.0.26-foss-2015g;7.0.26-intel-2015b;7.0.26;7.0.28
-xtrans|1.3.4-intel-2015b;1.3.5-intel-2015b;1.3.5-foss-2015g;1.3.5
-XZ|5.2.2-intel-2016.01;5.2.2
-zlib|1.2.8-GCC-5.1.0-binutils-2.25;1.2.7-foss-2015b;1.2.8-foss-2015b;1.2.7-intel-2015b;1.2.7-ictce-5.5.0;1.2.8-intel-2015b;1.2.8-GNU-5.1.0-2.25;1.2.8-ictce-7.3.5;1.2.8-gompi-2015e;1.2.8-GCC-4.9.3-binutils-2.25;1.2.8-foss-2015g;1.2.8-GCCcore-4.9.3;1.2.8-intel-2016.01;1.2.8-GCCcore-5.3.0;1.2.8-GCCcore-5.3.1-snapshot-20160419;1.2.8-GNU-4.9.3-2.25;1.2.8-GCC-4.9.3-2.25;1.2.8;1.2.8-GNU-5.1.0-2.25-intel-2015b