Blog for kmoverse
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

228 lines
5.4 MiB

2 years ago
<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="mobile-web-app-capable" content="yes"><title>the kmoverse is officially launching today - HedgeDoc</title><link rel="apple-touch-icon" sizes="180x180" href="https://notes.kvn.moe/icons/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="{{{url}}}/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="{{{url}}}/icons/favicon-16x16.png"><link rel="manifest" href="{{{url}}}/icons/site.webmanifest"><link rel="mask-icon" href="{{{url}}}/icons/safari-pinned-tab.svg" color="#b51f08"><link rel="shortcut icon" href="{{{url}}}/icons/favicon.ico"><style>@charset "UTF-8";/*!
* Bootstrap v3.4.1 (https://getbootstrap.com/)
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:Glyphicons Halflings;src:url(data:application/vnd.ms-fontobject;base64,n04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ/LAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM/SEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ+pexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h/v4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs+LWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy+pRYVKGVS/1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKU
/*!
Fork Awesome 1.2.0
License - https://forkaweso.me/Fork-Awesome/license
Copyright 2018 Dave Gandy & Fork Awesome
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/@font-face{font-display:block;font-family:ForkAwesome;font-style:normal;font-weight:400;src:url(data:application/vnd.ms-fontobject;base64,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AAAGAAAABgAAAAaVAAAGAAAABYAAAAQA//sEAP/6BgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAD9AAAA/wAAAOk//cDggAABAL//AUAAAAHAAAABLIAAAYAAAAGAAAABl3/+gZd//oG4P/6BuD/+gWu//oFrv/6BkAAAAZAAAAGAAAABcoAAAWA//sGAAAABwD//waAAAAF6gAABgAAAAYAAAAGAAAABYAAAAYAAAADvAAABgAAAAL///sC///7BsAAAAbAAAAFcQAABoAAAAWAAAAF8//7BgAAAAYAAAAEqAAABgAAAAUAAAAEAAAABgAAAAar//0FvwAABoAAAAZAAAAHgQAABwAAAAYAAAAFegAABNYAAAYAAAAGAAAABgAAAAYAAAAGXQAABgAAAASAAAAFgAAACIAAAAYA//kGAAAABwAAAAcAAAAHgAAACQAAAAUmAAAF4QAABwAAAAYAAAAGAAAAB4AAAAYAAAAIAAAABgAAAAYAAAAGAAAABwAAAAWAAAAEgAAABoAAAAKAAAAGgAAACIAAAAgAAAAGAAAABwAAAAYAAAAG4AAACAAAAAgAAAAFwAAABgAAAAQAAAAJAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAWyAAAHAAAACAAAAAcAAAAGwAAABtz/+gcAAAAGAAAABngAAAYAAAAEjgAABtwAAAgAAAAHAP/+BwD//QYAAAAGAAAABoQAAATmAAAGAAAABgAAAAYAAAAHAAAABwAAAAcAAAAHAAAABwAAAAbe//MGOAAABVb//AgAAAAHrAAABoAAAAXv//0G3P/6CQAAAAkAAAAJAAAACQAAAAkAAAAJAAAAB+MAAAfjAAAFgAAABgAAAAYAAAAHAAAABv4AAAcAAAAIAAAABsAAAAgAAAAHAAAABgAAAAgAAAAIAAAACQAAAAYAAAAIAAAABOoAAAgAAAAFYAAABgAAAAYAAAAIAAAABYAAAAYAAAAIAAAACAAAAAYAAAAIAAAACAAAAAaAAAAGgAAACAD//wfaAAAFgAAACQAAAAWAAAAHAAAABID/9gYAAAAEgAAABYD/9gaAAAAHAP/2B4D/+QgA/+8GAAAABID/9gd///EEgAAABIAAAAYAAAAFAAAABgAAAAcAAAAIAAAAB/cAAAgAAAAGAAAABgAAAAYAAAAGAAAABgAAAAhU//oJAAAABwAAAAkAAAAJAAAACQAAAAkAAAAJAAAABIAAAAOAAAAIAAAACQAAAAYAAAAGAAAACQAAAAkAAAAHAAAACIAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAZgAAAHAAAACAAAAAeAAAAGgAAABgAAAAe0AAAHAAAABwAAAAeAAAAHAAAACQAAAAQ2//8GAAAABrgAAAkAAAAHAAAABwAAAAcA//kHAAAABwAAAAeAAAAG1AAABXL//AbI//8GgAAABoAAAAaAAAAGgAAABwAAAAQAAAAGtgAACAAAAAcAAAAHAAAABwAAAAQAAA
Ionicons, v2.0.1
Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
https://twitter.com/benjsperry https://twitter.com/ionicframework
MIT License: https://github.com/driftyco/ionicons
Android-style icons originally built by Google’s
Material Design Icons: https://github.com/google/material-design-icons
used under CC BY http://creativecommons.org/licenses/by/4.0/
Modified icons to fit ionicon’s grid from original.
*/@font-face{font-family:Ionicons;font-style:normal;font-weight:400;src:url(data:application/vnd.ms-fontobject;base64,lNcBAOTWAQABAAIAAAAAAAIABgMAAAAAAAABAPQBAAAAAExQAAAAAAAAABAAAAAAAAAAAAEAAAAAAAAAaQlxRgAAAAAAAAAAAAAAAAAAAAAAABAASQBvAG4AaQBjAG8AbgBzAAAADABNAGUAZABpAHUAbQAAACAAVgBlAHIAcwBpAG8AbgAgADAAMAAxAC4AMAAwADAAIAAAABAASQBvAG4AaQBjAG8AbgBzAAAAAAAAAQAAAA0AgAADAFBGRlRNbfeNKgAB1sgAAAAcT1MvMkE5YdMAAAFYAAAAYGNtYXBtAm4fAAANOAAAAfpjdnQgABEBRAAADzQAAAAEZ2FzcP//AAMAAdbAAAAACGdseWb5IiYQAAAU/AABonBoZWFkAtkq2QAAANwAAAA2aGhlYQPwBKAAAAEUAAAAJGhtdHhBCgBJAAABuAAAC35sb2NhlLgp1gAADzgAAAXCbWF4cAM8AaMAAAE4AAAAIG5hbWWYDuB1AAG3bAAAAoVwb3N0mcLV2gABufQAABzKAAEAAAABAABGcQlpXw889QALAgAAAAAA0Nz1LgAAAADQ3PUuAAD/wAIAAcAAAAAIAAIAAAAAAAAAAQAAAcD/wAAuAgAAAAAAAgAAAQAAAAAAAAAAAAAAAAAAAt8AAQAAAuABcgAaAAAAAAACAAAAAQABAAAAQAAuAAAAAAAEAXwB9AAFAAABTAFmAAAARwFMAWYAAAD1ABkAhAAAAgAGAwAAAAAAAAAAAAAQAAAAAAAAAAAAAABQZkVkAMDxAPT3AcD/wAAuAcAAQAAAAAEAAAAAAAAAAAAAACAAAQC7ABEAAAAAAKoAAAHAAAEAgAAAAcAAAAGAAAABQAAAARIAAAGAAAAAwAAAAWAAAAGAAAAAwAAAAWAAAAGAAAABQAAAARIAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABAAABAcAAAAGgAAABwAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAcAAAAGgAAABoAAAAcAAAwEAAAABAAADAcAAAwFgAAABwAAAAYAAAAGAAAABwAAAAYAAAAHAAAABIAAAASAAAAIAAAABQAAAAaAAAAHAAAABgAABAaAAAAHAAAABQAAAAYAAAAGAAAABgAAAAYAAAAFAAAABgAABAaAAAAHAAAABAAAAAYAAAAHAAAABwAAAAcAAAACAAAABoAAAASAAAADAAAAA4AAAAgAAAAGmAAMBgAAAAO8AAAGAAAABTgAAAKgAAAHAAAABIAAAAKAAAgEAAAABwAAAAYAAAAGAAAABwAAAAYAAAAGAAAABgAAAAUAAAACgAAABAAAAAcAAAAHAAAABgAAAAcAAAAFAAAABwAAAAYAAAAGAAAABwAAAAcAAAAGgAAABwAAAAaAAAAGAAAABgAAAAYAAAAHAAAABgAAAAYAAAAFgAAABYAAAAUAAAQFAAAEBgAAAAYAAAAHAAAABwAAAAYAAAAGAAAABgAAAAYAAAADAAAAAwAAAAcAAAAHAAAABwAAAAcAAAAGAAAABgAAAAYAAAAGAAAABwQAAAcEAAAGAAAABgAAAAYAAAAGAAAABAAAAAQAAAAHYAAAB2AAAAcAAAAHAAAABwAAAAcAAAAGAAAABgAAAAUAAAAFAAAACAAAAAgAAAAHAAAABgAAAAYAAAAGAAAABYAAAAUAAAAGAAAABwAAAAcAAAAHAAAABIAAAAXIAAAHAAAABQAAAAcAAAADAAAEBQAAAAcAAAAHAAAABwAAAAcAAAAHAAAABQAAAAYAAAAGAAAABgAAAAYAAAAGAAAABwAAAAMAAAAHAAAABQAAAAcAAAAHAAAABwAAAAcAAAAGAAAABwAAAAWAAAAHAAAABwAAAAUAAAAEAAAABgAAAAIAAAAFAAAABwAAAAUAAAAFGAAAAwAAAAEAAAAFeAAABAAAAAYAAAAHAAAABwAAAAYAAAAHAAAABwAAAAYAAAAHAAAABwAAAAcAAAAHAAAABwAAAAOAAAAHAAAABYAAAAcAAAAHAAAABwAAAAcAAAAGgAAEBQAAAAUAAAAHAAAABwAAAAcAAAAHAAAAAgAAAAWAAAACgAAABwAAAAQAAAAEAAAABwAAAAcAAAAHAAAABQAAAAgAAAAHAAAABwAAAAgAAAAF/AAABQAAAAaAAAAFWAAABgAAAAYAAAAHAAAABoAAAASoAAAGAAAABwAAAAeAAAAHAAAABngACAYAAAAHAAAABwAAAAUAAAAGgAAABQAAAAYAAAAGgAAABoAABAYAAAAGUAAABgAAAAaAAAAHAAAACAAABAgAAAAHAAAABVgAAAcAAAAHAAAABgAAAAgAAAAIAAAABwAAAAUAAAAEAAAEBwAAAAcAAAAGgAAABgAAAAQAAAAGAAAABwAAAAgAAAQHAAAABgAAAAaAAAAGAAAABYAAAAYAAAAHAAAABgAAAAUAAAAFAAAABAAAAASAAAAGAAAABgAAAAUAAAAFAAAABwAAAAcAAAAHAAAABwAAAAcAAAAGgAAABrAAAAaAAAAFAAAABVgAAAaAAAAEAAAABoAAAAIAAAAGgAAAAgAAAAaAAAAEAAAABVgAAAOsAAAGAAAABwAAAAcAAAQEgAAABwAAAAWAAAAGgAAABgAAAAaAAAAGAAAABgAAAAYAAAAGAAAABoAAAAYAAAAGgAAAB4AAAAeAAAAHgAAABgAAAAcAAAAGAAAABgAAAAUAAAAHAAAABQAAAAgAAAAGAAAABwAAAAYAAAAGAAAABoAAAAaAAAAFAAAABwAAAAcAAAAGgAAABYAAAAaAAAAGgAAACAAAAAYAAAAFAAAABgAAAAYAAAAGYAAABQAAAAFAAAAFAAAABYAAAAWwAAAFgAAABgAAAAcAAAAHAAAAB4AAAAYAAAAHAAAABIAAAAUAAAAGAAAABoAAAAaAAAAGgAAABYAAAAaAAAAGfAAABoAAAAYAAAAGUAAABlAAAAWAAAAHAAAABQAAAAYAAAAGqAAABYAAAAUAAAAHgAAABIAAAAMAAAAGAAAABgAAAARAAAAHAAAABQAAAAgAAAAIAAAABwAAAAcAAAAHAAAAB4AAAAYAAAgGAAAABwAAAAZQAAAGUAAABwAAAAcAAAAGgAAABoAAAAcAAAAHAAAAAwAAAAUAAAADAAAAAwAAAAMAAAADAAAIBQAAAAUAAAADAAAIBQAAAAP8AAAEAAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABgAAAAYAAAAGAAAABgAAAAOIAAADiAAABgAAAAYAAAAGiAAABogAAAUAAAAFAAAABoAAAAaAAAAGAAAABgAAAASAAAAEgAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABoAAAAaAAAAGAAAABgAAAAM8AAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAADAAAABoAAAAaAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAGAAAABgAAAARIAAAESAAABgAAAAYAAAAGAAAABgAAAAYAAAAGMAAABgAAAAYAAAAGgAAABoAAAASAAAAEgAAABgAAAAYAAAAFAAAABQAAAAWAAAAGAAAABgAAAAYAAAAGAAAABwAAAAcAAAAFgAAABYAAAAZAAAAGQAAABAAAAAQAAAAEAAAABAAAAAYAAAAGAAAABwAAAAcAAAAHAAAABwAAAAaAAAAGgAAABwAAAAcAAAAHAAAABwAAAAYAAAAGAAAABwAAAAcAAAAGAAAABgAAAAcAAAAHAAAAAgAAAAaAAAAGgAAABgAAAAYAAAAHAAAAB0AAAAEAAAAGgAAABoAAAAaAAAAGAAAABgAAAASAAAAEgAAABgAAAAYAAAAEgAAABIAAAAUAAAAFAAAACAAAAAekAAAFsAAABbAAAAaAAAAGgAAABGAAAAQAAAAEAAAABAAAAAaAAAAGgAAAB4AAAAeAAAADYA
2022, June 25</p><h1 id="the-kmoverse-is-officially-launching-today"><a class="anchor hidden-xs" href="#the-kmoverse-is-officially-launching-today" title="the-kmoverse-is-officially-launching-today"><i class="fa fa-link"></i></a>the kmoverse is officially launching today</h1><h3 id="After-many-months-and-years-in-the-making-the-kmoverse-officially-begins-its-public-operations-starting-today"><a class="anchor hidden-xs" href="#After-many-months-and-years-in-the-making-the-kmoverse-officially-begins-its-public-operations-starting-today" title="After-many-months-and-years-in-the-making-the-kmoverse-officially-begins-its-public-operations-starting-today"><i class="fa fa-link"></i></a>After many months and years in the making, the kmoverse officially begins its public operations starting today.</h3><h3 id="What-is-the-kmoverse"><a class="anchor hidden-xs" href="#What-is-the-kmoverse" title="What-is-the-kmoverse"><i class="fa fa-link"></i></a>What is the kmoverse?</h3><p>From <a href="http://kmo.berkeley.edu" target="_blank" rel="noopener">kmo.berkeley.edu</a>:</p><blockquote>
<p>Established in 2020, the kmoverse is a technology organization that strives to foster unique collaborative creativity from the UC Berkeley community and build a portfolio of computing projects servicing local communities through non-standard organization and approaches. By working closer to other groups on campus and industry, we foster collaboration to see through revolutionary, exciting work.</p>
</blockquote><h3 id="Why-today"><a class="anchor hidden-xs" href="#Why-today" title="Why-today"><i class="fa fa-link"></i></a>Why today?</h3><p>This launch comes at a crucial point in my life as I slowly move on from my third year of college into interning at an large company and facing my senior year as an undergraduate student. Seeing that my time is limited in exploring life’s possibilities before I transition into the industry, I wanted to create the kmoverse as a hub of exciting possibilities, experiments, and experiences that would not only be fun to develop but also make a lasting positive impact in this world.</p><h3 id="What-services-are-launching-soon"><a class="anchor hidden-xs" href="#What-services-are-launching-soon" title="What-services-are-launching-soon"><i class="fa fa-link"></i></a>What services are launching soon?</h3><p>In the coming days and weeks, the kmoverse will launch the following services:</p><ul>
<li><strong>kmoverse key</strong>, a universal login system for kmoverse services powered by Keycloak, encapsulating the idea of a virtual universal “key” to access the kmoverse. An invite-only private beta will launch this July, with a public beta rollout by the end of Q3.</li>
<li><strong>kmoverse git</strong>, a hosted Git service for kmoverse projects. Access will be rolled out along with kmoverse key.</li>
<li><strong>kmoverse notes</strong>, a hosted notes service for all kmoverse key holders to use. Access will be rolled out along with kmoverse key.</li>
</ul><p>In addition, some of my personal projects will move under the kmoverse umbrella over the following days, which includes the following services:</p><ul>
<li><strong>Motion Out</strong> (motionout.kevmo.xyz -&gt; <a href="http://mogo.kmover.se" target="_blank" rel="noopener">mogo.kmover.se</a>)</li>
<li><strong>Fontiles</strong> (fontiles -&gt; <a href="http://f.kmover.se" target="_blank" rel="noopener">f.kmover.se</a>)</li>
</ul><p>There are also a few exciting projects planned for launch this summer, which will be announced in the coming weeks.</p><h3 id="Looking-into-the-future"><a class="anchor hidden-xs" href="#Looking-into-the-future" title="Looking-into-the-future"><i class="fa fa-link"></i></a>Looking into the future</h3><p>As recent events have passed, the definition of the kmoverse and its mission has changed and sharpened even further. Look forward to the following topics on the <a href="http://kmover.se" target="_blank" rel="noopener">kmover.se</a> blog, which will dive into the kmoverse ethos in greater detail:</p><ul>
<li>Defining a specific kmoverse “mission”</li>
<li>Technical challenges posed by COVID-19 and modern society</li>
<li>Adapting to an increasingly globalized society</li>
<li>Designing experiences for everyone, including developers</li>
<li>Fixing attention and grabbing focus of the modern human</li>
</ul><h3 id="Reaching-out"><a class="anchor hidden-xs" href="#Reaching-out" title="Reaching-out"><i class="fa fa-link"></i></a>Reaching out</h3><p>To all my friends who have been supportive of the kmoverse and my journey, thank you very, very much; it is thanks to your support that I have been able to get this far, and I am very proud of where we are at. Going forward, there will be organized events, including development meetings and socials, for friends local to the Berkeley area.</p><p>Despite the name, the kmoverse is more than a one-man endeavor, so any support going into the future would mean a lot to me.</p><p>Looking forward to a bright kmoverse future.</p><p>Kevin Mo</p></div><div class="ui-toc dropup unselectable hidden-print" style="display:none;"><div class="pull-right dropdown"><a id="tocLabel" class="ui-toc-label btn btn-default" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" title="Table of content"><i class="fa fa-bars"></i></a><ul id="ui-toc" class="ui-toc-dropdown dropdown-menu" aria-labelledby="tocLabel"><div class="toc"><ul class="nav">
<li class=""><a href="#the-kmoverse-is-officially-launching-today" title="the kmoverse is officially launching today">the kmoverse is officially launching today</a><ul class="nav">
<li><a href="#After-many-months-and-years-in-the-making-the-kmoverse-officially-begins-its-public-operations-starting-today" title="After many months and years in the making, the kmoverse officially begins its public operations starting today.">After many months and years in the making, the kmoverse officially begins its public operations starting today.</a></li>
<li><a href="#What-is-the-kmoverse" title="What is the kmoverse?">What is the kmoverse?</a></li>
<li class=""><a href="#Why-today" title="Why today?">Why today?</a></li>
<li class=""><a href="#What-services-are-launching-soon" title="What services are launching soon?">What services are launching soon?</a></li>
<li><a href="#Looking-into-the-future" title="Looking into the future">Looking into the future</a></li>
<li><a href="#Reaching-out" title="Reaching out">Reaching out</a></li>
</ul>
</li>
</ul>
</div><div class="toc-menu"><a class="expand-toggle" href="#">Expand all</a><a class="back-to-top" href="#">Back to top</a><a class="go-to-bottom" href="#">Go to bottom</a></div></ul></div></div><div id="ui-toc-affix" class="ui-affix-toc ui-toc-dropdown unselectable hidden-print" data-spy="affix" style="top:17px;display:none;" ><div class="toc"><ul class="nav">
<li class=""><a href="#the-kmoverse-is-officially-launching-today" title="the kmoverse is officially launching today">the kmoverse is officially launching today</a><ul class="nav">
<li><a href="#After-many-months-and-years-in-the-making-the-kmoverse-officially-begins-its-public-operations-starting-today" title="After many months and years in the making, the kmoverse officially begins its public operations starting today.">After many months and years in the making, the kmoverse officially begins its public operations starting today.</a></li>
<li><a href="#What-is-the-kmoverse" title="What is the kmoverse?">What is the kmoverse?</a></li>
<li class=""><a href="#Why-today" title="Why today?">Why today?</a></li>
<li class=""><a href="#What-services-are-launching-soon" title="What services are launching soon?">What services are launching soon?</a></li>
<li><a href="#Looking-into-the-future" title="Looking into the future">Looking into the future</a></li>
<li><a href="#Reaching-out" title="Reaching out">Reaching out</a></li>
</ul>
</li>
</ul>
</div><div class="toc-menu"><a class="expand-toggle" href="#">Expand all</a><a class="back-to-top" href="#">Back to top</a><a class="go-to-bottom" href="#">Go to bottom</a></div></div><script>(function(ie){var Y={};function s(y){if(Y[y])return Y[y].exports;var W=Y[y]={i:y,l:!1,exports:{}};return ie[y].call(W.exports,W,W.exports,s),W.l=!0,W.exports}return s.m=ie,s.c=Y,s.d=function(y,W,T){s.o(y,W)||Object.defineProperty(y,W,{enumerable:!0,get:T})},s.r=function(y){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(y,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(y,"__esModule",{value:!0})},s.t=function(y,W){if(W&1&&(y=s(y)),W&8||W&4&&typeof y=="object"&&y&&y.__esModule)return y;var T=Object.create(null);if(s.r(T),Object.defineProperty(T,"default",{enumerable:!0,value:y}),W&2&&typeof y!="string")for(var g in y)s.d(T,g,function(f){return y[f]}.bind(null,g));return T},s.n=function(y){var W=y&&y.__esModule?function(){return y.default}:function(){return y};return s.d(W,"a",W),W},s.o=function(y,W){return Object.prototype.hasOwnProperty.call(y,W)},s.p="build/",s(s.s=0)})([function(ie,Y,s){s(1),s(2),s(3),s(4),s(6),s(7),s(8),s(9),s(10),s(11),s(12),s(13),s(14),s(15),s(16),s(17),s(18),s(19),s(20),s(21);const y=s(22);window.jQuery=y,window.$=y,s(23),s(36)},function(ie,Y,s){"use strict";s.r(Y)},function(ie,Y,s){"use strict";s.r(Y)},function(ie,Y,s){"use strict";s.r(Y)},function(ie,Y,s){(function(y){var W=typeof window!="undefined"?window:typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope?self:{};/**
* Prism: Lightweight, robust, elegant syntax highlighting
*
* @license MIT <https://opensource.org/licenses/MIT>
* @author Lea Verou <https://lea.verou.me>
* @namespace
* @public
*/var T=function(g){var f=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,m=0,w={},h={manual:g.Prism&&g.Prism.manual,disableWorkerMessageHandler:g.Prism&&g.Prism.disableWorkerMessageHandler,util:{encode:function S(D){return D instanceof A?new A(D.type,S(D.content),D.alias):Array.isArray(D)?D.map(S):D.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(S){return Object.prototype.toString.call(S).slice(8,-1)},objId:function(S){return S.__id||Object.defineProperty(S,"__id",{value:++m}),S.__id},clone:function S(D,R){R=R||{};var H,z;switch(h.util.type(D)){case"Object":if(z=h.util.objId(D),R[z])return R[z];H={},R[z]=H;for(var r in D)D.hasOwnProperty(r)&&(H[r]=S(D[r],R));return H;case"Array":return z=h.util.objId(D),R[z]?R[z]:(H=[],R[z]=H,D.forEach(function(ae,Z){H[Z]=S(ae,R)}),H);default:return D}},getLanguage:function(S){for(;S;){var D=f.exec(S.className);if(D)return D[1].toLowerCase();S=S.parentElement}return"none"},setLanguage:function(S,D){S.className=S.className.replace(RegExp(f,"gi"),""),S.classList.add("language-"+D)},currentScript:function(){if(typeof document=="undefined")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(H){var S=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(H.stack)||[])[1];if(S){var D=document.getElementsByTagName("script");for(var R in D)if(D[R].src==S)return D[R]}return null}},isActive:function(S,D,R){for(var H="no-"+D;S;){var z=S.classList;if(z.contains(D))return!0;if(z.contains(H))return!1;S=S.parentElement}return!!R}},languages:{plain:w,plaintext:w,text:w,txt:w,extend:function(S,D){var R=h.util.clone(h.languages[S]);for(var H in D)R[H]=D[H];return R},insertBefore:function(S,D,R,H){H=H||h.languages;var z=H[S],r={};for(var ae in z)if(z.hasOwnProperty(ae)){if(ae==D)for(var Z in R)R.hasOwnProperty(Z)&&(r[Z]=R[Z]);R.hasOwnProperty(ae)||(r[ae]=z[ae])}var ue=H[S];return H[S]=r,h.languages.DFS(h.languages,function(me,Me){Me===ue&&me!=S&&(this[me]=r)}),r},DFS:function S(D,R,H,z){z=z||{};var r=h.util.objId;for(var ae in D)if(D.hasOwnProperty(ae)){R.call(D,ae,D[ae],H||ae);var Z=D[ae],ue=h.util.type(Z);ue==="Object"&&!z[r(Z)]?(z[r(Z)]=!0,S(Z,R,null,z)):ue==="Array"&&!z[r(Z)]&&(z[r(Z)]=!0,S(Z,R,ae,z))}}},plugins:{},highlightAll:function(S,D){h.highlightAllUnder(document,S,D)},highlightAllUnder:function(S,D,R){var H={callback:R,container:S,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};h.hooks.run("before-highlightall",H),H.elements=Array.prototype.slice.apply(H.container.querySelectorAll(H.selector)),h.hooks.run("before-all-elements-highlight",H);for(var z=0,r;r=H.elements[z++];)h.highlightElement(r,D===!0,H.callback)},highlightElement:function(S,D,R){var H=h.util.getLanguage(S),z=h.languages[H];h.util.setLanguage(S,H);var r=S.parentElement;r&&r.nodeName.toLowerCase()==="pre"&&h.util.setLanguage(r,H);var ae=S.textContent,Z={element:S,language:H,grammar:z,code:ae};function ue(Me){Z.highlightedCode=Me,h.hooks.run("before-insert",Z),Z.element.innerHTML=Z.highlightedCode,h.hooks.run("after-highlight",Z),h.hooks.run("complete",Z),R&&R.call(Z.element)}if(h.hooks.run("before-sanity-check",Z),r=Z.element.parentElement,r&&r.nodeName.toLowerCase()==="pre"&&!r.hasAttribute("tabindex")&&r.setAttribute("tabindex","0"),!Z.code){h.hooks.run("complete",Z),R&&R.call(Z.element);return}if(h.hooks.run("before-highlight",Z),!Z.grammar){ue(h.util.encode(Z.code));return}if(D&&g.Worker){var me=new Worker(h.filename);me.onmessage=function(Me){ue(Me.data)},me.postMessage(JSON.stringify({language:Z.language,code:Z.code,immediateClose:!0}))}else ue(h.highlight(Z.code,Z.grammar,Z.language))},highlight:function(S,D,R){var H={code:S,grammar:D,language:R};if(h.hooks.run("before-tokenize",H),!H.grammar)throw new Error('The language "'+H.language+'" has no grammar.');return H.tokens=h.tokenize(H.code,H.grammar),h.hooks.run("after-tokenize",H),A.stringify(h.util.encode(H.tokens),H.language)},tokenize:function(S,D){var R=D.rest;if(R){for(var H in R)D[H]=R[H];delete D.rest}var z=new k;return C(z,z.head,S),G(S
`),I.hasAttribute("data-start")||I.setAttribute("data-start",String(Z+1))}K.textContent=z,T.highlightElement(K)},function(z){I.setAttribute(h,G),K.textContent=z})}}),T.plugins.fileHighlight={highlight:function(I){for(var K=(I||document).querySelectorAll(k),S=0,D;D=K[S++];)T.highlightElement(D)}};var V=!1;T.fileHighlight=function(){V||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),V=!0),T.plugins.fileHighlight.highlight.apply(this,arguments)}}()}).call(this,s(5))},function(ie,Y){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(y){typeof window=="object"&&(s=window)}ie.exports=s},function(ie,Y,s){"use strict";s.r(Y)},function(ie,Y){Prism.languages.wiki=Prism.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:Prism.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),Prism.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:Prism.languages.markup.tag.inside}}}})},function(ie,Y){Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|\{-[\s\S]*?-\})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^[\t ]*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:as|hiding|import|qualified)\b/,punctuation:/\./}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showSt
* jQuery JavaScript Library v3.6.0
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2021-03-02T17:08Z
*/(function(T,g){"use strict";typeof ie.exports=="object"?ie.exports=T.document?g(T,!0):function(f){if(!f.document)throw new Error("jQuery requires a window with a document");return g(f)}:g(T)})(typeof window!="undefined"?window:this,function(T,g){"use strict";var f=[],m=Object.getPrototypeOf,w=f.slice,h=f.flat?function(e){return f.flat.call(e)}:function(e){return f.concat.apply([],e)},A=f.push,M=f.indexOf,G={},k=G.toString,C=G.hasOwnProperty,B=C.toString,V=B.call(Object),q={},I=function(t){return typeof t=="function"&&typeof t.nodeType!="number"&&typeof t.item!="function"},K=function(t){return t!=null&&t===t.window},S=T.document,D={type:!0,src:!0,nonce:!0,noModule:!0};function R(e,t,n){n=n||S;var i,a,o=n.createElement("script");if(o.text=e,t)for(i in D)a=t[i]||t.getAttribute&&t.getAttribute(i),a&&o.setAttribute(i,a);n.head.appendChild(o).parentNode.removeChild(o)}function H(e){return e==null?e+"":typeof e=="object"||typeof e=="function"?G[k.call(e)]||"object":typeof e}var z="3.6.0",r=function(e,t){return new r.fn.init(e,t)};r.fn=r.prototype={jquery:z,constructor:r,length:0,toArray:function(){return w.call(this)},get:function(e){return e==null?w.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=r.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return r.each(this,e)},map:function(e){return this.pushStack(r.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(w.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(r.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(r.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:A,sort:f.sort,splice:f.splice},r.extend=r.fn.extend=function(){var e,t,n,i,a,o,u=arguments[0]||{},d=1,p=arguments.length,b=!1;for(typeof u=="boolean"&&(b=u,u=arguments[d]||{},d++),typeof u!="object"&&!I(u)&&(u={}),d===p&&(u=this,d--);d<p;d++)if((e=arguments[d])!=null)for(t in e)i=e[t],!(t==="__proto__"||u===i)&&(b&&i&&(r.isPlainObject(i)||(a=Array.isArray(i)))?(n=u[t],a&&!Array.isArray(n)?o=[]:!a&&!r.isPlainObject(n)?o={}:o=n,a=!1,u[t]=r.extend(b,o,i)):i!==void 0&&(u[t]=i));return u},r.extend({expando:"jQuery"+(z+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!e||k.call(e)!=="[object Object]"?!1:(t=m(e),t?(n=C.call(t,"constructor")&&t.constructor,typeof n=="function"&&B.call(n)===V):!0)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){R(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,i=0;if(ae(e))for(n=e.length;i<n&&t.call(e[i],i,e[i])!==!1;i++);else for(i in e)if(t.call(e[i],i,e[i])===!1)break;return e},makeArray:function(e,t){var n=t||[];return e!=null&&(ae(Object(e))?r.merge(n,typeof e=="string"?[e]:e):A.call(n,e)),n},inArray:function(e,t,n){return t==null?-1:M.call(t,e,n)},merge:function(e,t){for(var n=+t.length,i=0,a=e.length;i<n;i++)e[a++]=t[i];return e.length=a,e},grep:function(e,t,n){for(var i,a=[],o=0,u=e.length,d=!n;o<u;o++)i=!t(e[o],o),i!==d&&a.push(e[o]);return a},map:function(e,t,n){var i,a,o=0,u=[];if(ae(e))for(i=e.length;o<i;o++)a=t(e[o],o,n),a!=null&&u.push(a);else for(o in e)a=t(e[o],o,n),a!=null&&u.push(a);return h(u)},guid:1,support:q}),typeof Symbol=="function"&&(r.fn[Symbol.iterator]=f[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){G["[object "+t+"]"]=t.toLowerCase()});function ae(e){var t=!!e&&"length"in e&&e.length,n=H(e);return I(e)||K(e)?!1:n==="array"||t===0||typeof t=="number"&&t>0&&t-1 in e}var Z=function(e){var t,n,i,a,o,u,d,p,b,N,P,E,F,Q,oe,X,be,ye,je,ce="sizzle"+1*new Date,re=e.document,De=0,le=0,ge=zt(),kt=zt(),Mt=zt(),Oe=zt(),it=function(l,c){return l===c&&(P=!0),0},rt={}.hasOwnProperty,Ne=[],Ge=Ne.pop,He=Ne.push,Qe=Ne.push,Kn=Ne.slice,at=f
`):e)),t};var ki=/\[\]$/,zn=/\r?\n/g,Di=/^(?:submit|button|image|reset|file)$/i,Ni=/^(?:input|select|textarea|keygen)/i;function tn(e,t,n,i){var a;if(Array.isArray(t))r.each(t,function(o,u){n||ki.test(e)?i(e,u):tn(e+"["+(typeof u=="object"&&u!=null?o:"")+"]",u,n,i)});else if(!n&&H(t)==="object")for(a in t)tn(e+"["+a+"]",t[a],n,i);else i(e,t)}r.param=function(e,t){var n,i=[],a=function(o,u){var d=I(u)?u():u;i[i.length]=encodeURIComponent(o)+"="+encodeURIComponent(d==null?"":d)};if(e==null)return"";if(Array.isArray(e)||e.jquery&&!r.isPlainObject(e))r.each(e,function(){a(this.name,this.value)});else for(n in e)tn(n,e[n],t,a);return i.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=r.prop(this,"elements");return e?r.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!r(this).is(":disabled")&&Ni.test(this.nodeName)&&!Di.test(e)&&(this.checked||!Tt.test(e))}).map(function(e,t){var n=r(this).val();return n==null?null:Array.isArray(n)?r.map(n,function(i){return{name:t.name,value:i.replace(zn,`\r
`)}}):{name:t.name,value:n.replace(zn,`\r
`)}}).get()}});var Fi=/%20/g,ji=/#.*$/,Oi=/([?&])_=[^&]*/,Ii=/^(.*?):[ \t]*([^\r\n]*)$/mg,Pi=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Li=/^(?:GET|HEAD)$/,Ri=/^\/\//,$n={},nn={},Wn="*/".concat("*"),rn=S.createElement("a");rn.href=At.href;function Un(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var i,a=0,o=t.toLowerCase().match(ve)||[];if(I(n))for(;i=o[a++];)i[0]==="+"?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function Vn(e,t,n,i){var a={},o=e===nn;function u(d){var p;return a[d]=!0,r.each(e[d]||[],function(b,N){var P=N(t,n,i);if(typeof P=="string"&&!o&&!a[P])return t.dataTypes.unshift(P),u(P),!1;if(o)return!(p=P)}),p}return u(t.dataTypes[0])||!a["*"]&&u("*")}function an(e,t){var n,i,a=r.ajaxSettings.flatOptions||{};for(n in t)t[n]!==void 0&&((a[n]?e:i||(i={}))[n]=t[n]);return i&&r.extend(!0,e,i),e}function Hi(e,t,n){for(var i,a,o,u,d=e.contents,p=e.dataTypes;p[0]==="*";)p.shift(),i===void 0&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i){for(a in d)if(d[a]&&d[a].test(i)){p.unshift(a);break}}if(p[0]in n)o=p[0];else{for(a in n){if(!p[0]||e.converters[a+" "+p[0]]){o=a;break}u||(u=a)}o=o||u}if(o)return o!==p[0]&&p.unshift(o),n[o]}function Mi(e,t,n,i){var a,o,u,d,p,b={},N=e.dataTypes.slice();if(N[1])for(u in e.converters)b[u.toLowerCase()]=e.converters[u];for(o=N.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!p&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),p=o,o=N.shift(),o){if(o==="*")o=p;else if(p!=="*"&&p!==o){if(u=b[p+" "+o]||b["* "+o],!u){for(a in b)if(d=a.split(" "),d[1]===o&&(u=b[p+" "+d[0]]||b["* "+d[0]],u)){u===!0?u=b[a]:b[a]!==!0&&(o=d[0],N.unshift(d[1]));break}}if(u!==!0)if(u&&e.throws)t=u(t);else try{t=u(t)}catch(P){return{state:"parsererror",error:u?P:"No conversion from "+p+" to "+o}}}}return{state:"success",data:t}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:At.href,type:"GET",isLocal:Pi.test(At.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Wn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?an(an(e,r.ajaxSettings),t):an(r.ajaxSettings,e)},ajaxPrefilter:Un($n),ajaxTransport:Un(nn),ajax:function(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};var n,i,a,o,u,d,p,b,N,P,E=r.ajaxSetup({},t),F=E.context||E,Q=E.context&&(F.nodeType||F.jquery)?r(F):r.event,oe=r.Deferred(),X=r.Callbacks("once memory"),be=E.statusCode||{},ye={},je={},ce="canceled",re={readyState:0,getResponseHeader:function(le){var ge;if(p){if(!o)for(o={};ge=Ii.exec(a);)o[ge[1].toLowerCase()+" "]=(o[ge[1].toLowerCase()+" "]||[]).concat(ge[2]);ge=o[le.toLowerCase()+" "]}return ge==null?null:ge.join(", ")},getAllResponseHeaders:function(){return p?a:null},setRequestHeader:function(le,ge){return p==null&&(le=je[le.toLowerCase()]=je[le.toLowerCase()]||le,ye[le]=ge),this},overrideMimeType:function(le){return p==null&&(E.mimeType=le),this},statusCode:function(le){var ge;if(le)if(p)re.always(le[re.status]);else for(ge in le)be[ge]=[be[ge],le[ge]];return this},abort:function(le){var ge=le||ce;return n&&n.abort(ge),De(0,ge),this}};if(oe.promise(re),E.url=((e||E.url||At.href)+"").replace(Ri,At.protocol+"//"),E.type=t.method||t.type||E.method||E.type,E.dataTypes=(E.dataType||"*").toLowerCase().match(ve)||[""],E.crossDomain==null){d=S.createElement("a");try{d.href=E.url,d.href=d.href,E.crossDomain=rn.protocol+"//"+rn.host!=d.protocol+"//"+d.host}catch(le){E.crossDomain=!0}}if(E.data&&E.processData&&typeof E.data!="string"&&(E.data=r.param(E.data,E.traditional)),Vn($n,E,t,re),p)return re;b=r.event&&E.global,b&&r.active++===0&&r.event.trigger("ajaxStart"),E.type=E.type.toUpperCase(),E.hasContent=!Li.test(E.type),i=E.url.replace(ji,""),E.hasContent?E.dat
//smooth all hash trigger scrolling
function smoothHashScroll() {
var hashElements = $("a[href^='#']").toArray();
for (var i = 0; i < hashElements.length; i++) {
var element = hashElements[i];
var $element = $(element);
var hash = element.hash;
if (hash) {
$element.on('click', function (e) {
// store hash
var hash = this.hash;
if ($(hash).length <= 0) return;
// prevent default anchor click behavior
e.preventDefault();
// animate
$('body, html').stop(true, true).animate({
scrollTop: $(hash).offset().top
}, 100, "linear", function () {
// when done, add hash to url
// (default click behaviour)
window.location.hash = hash;
});
});
}
}
}
smoothHashScroll();
var toc = $('.ui-toc');
var tocAffix = $('.ui-affix-toc');
var tocDropdown = $('.ui-toc-dropdown');
//toc
tocDropdown.click(function (e) {
e.stopPropagation();
});
var enoughForAffixToc = true;
function generateScrollspy() {
$(document.body).scrollspy({
target: ''
});
$(document.body).scrollspy('refresh');
if (enoughForAffixToc) {
toc.hide();
tocAffix.show();
} else {
tocAffix.hide();
toc.show();
}
$(document.body).scroll();
}
function windowResize() {
//toc right
var paddingRight = parseFloat(markdown.css('padding-right'));
var right = ($(window).width() - (markdown.offset().left + markdown.outerWidth() - paddingRight));
toc.css('right', right + 'px');
//affix toc left
var newbool;
var rightMargin = (markdown.parent().outerWidth() - markdown.outerWidth()) / 2;
//for ipad or wider device
if (rightMargin >= 133) {
newbool = true;
var affixLeftMargin = (tocAffix.outerWidth() - tocAffix.width()) / 2;
var left = markdown.offset().left + markdown.outerWidth() - affixLeftMargin;
tocAffix.css('left', left + 'px');
} else {
newbool = false;
}
if (newbool != enoughForAffixToc) {
enoughForAffixToc = newbool;
generateScrollspy();
}
}
$(window).resize(function () {
windowResize();
});
$(document).ready(function () {
windowResize();
generateScrollspy();
});
//remove hash
function removeHash() {
window.location.hash = '';
}
var backtotop = $('.back-to-top');
var gotobottom = $('.go-to-bottom');
backtotop.click(function (e) {
e.preventDefault();
e.stopPropagation();
if (scrollToTop)
scrollToTop();
removeHash();
});
gotobottom.click(function (e) {
e.preventDefault();
e.stopPropagation();
if (scrollToBottom)
scrollToBottom();
removeHash();
});
var toggle = $('.expand-toggle');
var tocExpand = false;
checkExpandToggle();
toggle.click(function (e) {
e.preventDefault();
e.stopPropagation();
tocExpand = !tocExpand;
checkExpandToggle();
})
function checkExpandToggle () {
var toc = $('.ui-toc-dropdown .toc');
var toggle = $('.expand-toggle');
if (!tocExpand) {
toc.removeClass('expand');
toggle.text('Expand all');
} else {
toc.addClass('expand');
toggle.text('Collapse all');
}
}
function scrollToTop() {
$('body, html').stop(true, true).animate({
scrollTop: 0
}, 100, "linear");
}
function scrollToBottom() {
$('body, html').stop(true, true).animate({
scrollTop: $(document.body)[0].scrollHeight
}, 100, "linear");
}</script></body></html>