diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/app-info-a.css b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/app-info-a.css new file mode 100644 index 0000000000..b628b8aa93 --- /dev/null +++ b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/app-info-a.css @@ -0,0 +1,102 @@ + +/*********************** + Wrapper CSS +***********************/ + +#android-tab-header{ + width: 100%; + background: #f2f2f2; +} + +#android-mobile-header, #android-tablet-header{ + width: 50%; + float: left; + text-align: center; + background: #e4e4e4; + padding: 10px 0px; + cursor: pointer; +} + +.tab{ + display: none; +} + +#android-mobile-header.selected-tab, #android-tablet-header.selected-tab, .tab.selected-tab{ + display: block; + background: #f2f2f2; +} + +#android-mobile-header h4, #android-tablet-header h4{ + font-size: 14pt; + font-weight: bold; +} + +h2{ + font-size: 22pt; + font-weight: 400; + margin: 30px 20px 15px 20px; + text-align: center; + color: #BA2034; +} + +/* + Setting display: block; to ~!important will break CSS rules for phone vs tablet. + */ +p img{ + margin-top: 10px !important; + display: block; + margin-left: auto !important; + margin-right: auto !important; + margin-bottom: 10px !important; +} + +table{ + width: 100%; + margin-bottom: 50px; +} + + +td{ + text-align: left; + vertical-align: middle; + padding: 10px; +} + +td:first-child{ + width: 15%; +} + +td:last-child{ + width: 85%; +} + +th{ + font-weight: bold; + font-size: 14pt; + padding: 15px 0px 5px 0px; +} + +.command{ + font-weight: bold; + color: #69B7D3; +} + +#toolbar{ + padding-top: 40px; +} + +/*********************** + Images CSS +***********************/ + +#section2 img{ + min-width: 40px; +} + +/** + Removes existing max-width property settings from images in tables. + They overly shrink the images on the main Android symbol glossary. + */ +#section2 td img { + max-width: unset; +} \ No newline at end of file diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/embed.css b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/embed.css new file mode 100644 index 0000000000..3e0cb6058e --- /dev/null +++ b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/embed.css @@ -0,0 +1,7 @@ +.embed-on .content-online { + display: none; +} + +.embed-off .content-in-app { + display: none; +} \ No newline at end of file diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/formfactor.css b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/formfactor.css new file mode 100644 index 0000000000..52f60e9532 --- /dev/null +++ b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/formfactor.css @@ -0,0 +1,28 @@ +.phone-form .tablet { + display: none; +} + +.tablet-form .phone { + display: none; +} + +#section2 a.phone, #section2 a.tablet { + color: #000000; +} + +.tablet-form a.phone { + display: block; +} + +.phone-form a.tablet { + display: block; +} + +.phone-form #android-mobile-header { + background: #f2f2f2; +} + +.tablet-form #android-tablet-header { + background: #f2f2f2; +} + diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/template.css b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/template.css new file mode 100644 index 0000000000..305491a18c --- /dev/null +++ b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/css/template.css @@ -0,0 +1,1914 @@ +/************************************** + * CSS RESET + * ***********************************/ + +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; + padding-left: 10px; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; +} + +tbody { + display: table-row-group; + vertical-align: middle; +} + +table td{ + padding: 4px; +} + +html{ + font-family: 'Cabin', sans-serif; + /*font-family: 'Open Sans', sans-serif;*/ + /*font-family: 'Source Sans Pro', sans-serif;*/ +} + +html p, +html dd, +html li { + font-family: 'Calibri', sans-serif; + font-size: 14pt; +} + +body { + line-height: inherit; +} + +/************************************** + * Language Section CSS + * ***********************************/ + +@font-face { + font-family:GeezWeb; + font-style:normal; + font-weight:normal; + src:url('http://r.keymanweb.com/20/fonts/wookianos.ttf') format('truetype'); +} +@font-face { + font-family:MyanmarWeb; + font-style:normal; + font-weight:normal; + src:url('http://r.keymanweb.com/20/fonts/Padauk.ttf') format('truetype'); +} +/*@font-face { + font-family:LatinWeb; + font-style:normal; + font-weight:normal; + src:url('//r.keymanweb.com/20/fonts/DejaVuSans.ttf') format('truetype'); +}*/ +@font-face { + font-family:OriyaWeb; + font-style:normal; + font-weight:normal; + src:url('http://r.keymanweb.com/20/fonts/utkalm.ttf') format('truetype'); +} +@font-face { + font-family:SinhalaWeb; + font-style:normal; + font-weight:normal; + src:url('http://r.keymanweb.com/20/fonts/kaputaunicode.ttf') format('truetype'); +} +@font-face { + font-family:TamilWeb; + font-style:normal; + font-weight:normal; + src:url('http://r.keymanweb.com/20/fonts/aava1.ttf') format('truetype'); +} +@font-face { + font-family:CherokeeWeb; + font-style:normal; + font-weight:normal; + src:url('http://r.keymanweb.com/20/fonts/digohweli_1_7.ttf') format('truetype'); +} +@font-face { + font-family: SindhiWeb; + font-style: normal; + font-weight: normal; + src: url('http://r.keymanweb.com/20/fonts/MBKhursheed10.6.ttf') format("truetype"); +} +@font-face { + font-family: TibetanWeb; + font-style: normal; + font-weight: normal; + src: url('http://r.keymanweb.com/20/fonts/CTRC-Uchen.ttf') format("truetype"); +} +@font-face { + font-family: LaoWeb; + font-style: normal; + font-weight: normal; + src: url('http://r.keymanweb.com/20/fonts/SAYSETT0.eot'); + src: url('http://r.keymanweb.com/20/fonts/SAYSETT0.eot?') format('embedded-opentype'), + url('http://r.keymanweb.com/20/fonts/saysettha_web.woff') format('woff'), + url('http://r.keymanweb.com/20/fonts/saysettha_OT.ttf') format('truetype'); +} +@font-face { + font-family: PashtoWeb; + font-style: normal; + font-weight: normal; + src: url('http://r.keymanweb.com/20/fonts/LateefRegOT.ttf') format("truetype"); +} + +/* Amharic */ +:lang(amh).lang-example { + font-family: GeezWeb; +} +/* Burmese */ +:lang(mya).lang-example { + font-family: MyanmarWeb; +} +/* Cherokee */ +:lang(chr).lang-example { + font-family: CherokeeWeb; +} +/* Lao */ +:lang(lao).lang-example { + font-family: LaoWeb; +} +/* Malayalam +:lang(mal).lang-example { + font-family: GeezWeb; +} */ + +/* Marathi +:lang(mar).lang-example { + font-family: GeezWeb; +} */ +/* Oriya */ +:lang(ori).lang-example { + font-family: OriyaWeb; +} +/* Rawang */ +:lang(raw).lang-example { + font-family: MyanmarWeb; +} +/* Sindhi */ +:lang(snd).lang-example { + font-family: SindhiWeb; +} +/* Sinhala */ +:lang(sin).lang-example { + font-family: SinhalaWeb; +} + +/* Tamil */ +:lang(tam).lang-example { + font-family: TamilWeb; +} +/* Tibetan */ +:lang(bod).lang-example { + font-family: TibetanWeb; +} +/* Tigrigna */ +:lang(tir).lang-example { + font-family: GeezWeb; +} + +/************************************** + * Page Layout CSS + * ***********************************/ + +html{ + cursor: default; + background: #fff; +} + +.wrapper { + width: 960px; + margin-left: auto; + margin-right: auto; +} + +#section2 .wrapper { + width: initial; + overflow-x: auto; /* fixes content too wide leading to content dropping below index, but not ideal, temp fix better than previous */ + max-width: 960px; + margin-left: 220px; + margin-right: 220px; +} + +:not(div.interface-hierarchy) blockquote { + margin-left: 32px; + margin-bottom: 16px; + background: rgba(242,242,242,0.9); + padding: 4px; + border-radius: 4px; +} + +div.interface-hierarchy { + padding: 0px 10px 10px 10px; + line-height: 1.2em; + font-size: 14pt; +} + +div.interface-hierarchy blockquote { + padding-left: 20px; +} + +.no-toc #section2 .wrapper { + margin-right: auto; +} + +.no-index #section2 .wrapper { + margin-left: auto; +} + +@media only screen and (min-width: 1440px) { + #section2 .wrapper { + width: 960px; + } + body #section2 { + float: none; + width: 1400px; + margin-left: auto; + margin-right: auto; + display: block; + } +} + +@media only screen and (min-width: 1024px) and (max-width: 1279px) { + #section2 .wrapper { + margin-right: 20px; + } +} + +.menu-wrapper { + width: 960px; + margin-left: auto; + margin-right: auto; +} + +.button{ + float: left; + width: 200px; + height: 40px; + line-height: 40px; + border-radius: 6px; + text-align: center; + margin: 20px; + cursor: pointer; + box-shadow: 1px 1px 2px #3e3e3e; +} + +.button a{ + text-decoration: none; +} + +.button h2{ + color: #fff; +} + +#container{ + min-height: 100%; + width: 100%; +} + +.main{ + float: left; + width: 100%; +} + +.valign-outer{ + height: 100%; + width: 100%; + overflow: hidden; + display: table; + position: static; +} + +.valign-middle{ + display: table-cell; + vertical-align: middle; + width: 100%; + position: static; +} + +.center{ + text-align: center; +} + +.command{ + font-weight: 400; + color: #69B7D2; +} + +.inline{ + text-align: center; +} + +.red{ + color: #B92034; +} + +.underline{ + border-bottom: 1px solid #B92034; + margin-bottom: 15px; + padding-bottom: 0px !important; +} + +.caption{ + text-align: center; + font-size: 11pt; + font-weight: 600; + margin-top: -15px; + padding: 0px 10px; +} + +.people-text{ + font-size: 12pt !important; +} + +.testimonial{ + display: block; + margin: 20px; + background: #fff; + border-radius: 14px; + padding: 30px 20px; + box-shadow: 1px 1px 4px #000; + font-style: italic; + color: #6e6e6e; +} + +.caption a{ + text-decoration: underline; + color: #B92034; +} + +.contact-social{ + position: relative; + top: 12px; +} + +/********************************** + * HEADER CSS + *********************************/ + +.header{ + float: left; + width: 100%; + background: #f2f2f2; + display: block; + z-index: 5; +} + +#show-phone-menu{ + display: none; +} + +#logo{ + margin-left: 30px; + float: left; +} + +#no-menu-spacer{ + float: left; + width: 100%; + height: 20px; + display: block; +} + +#header-bottom{ + width: 100%; + height: 8px; + display: block; +} + +#help{ + width: 160px; + position: absolute; + top: 35px; + left: 100%; + margin-left: -160px; + text-decoration: none; +} + +#help p{ + float: left; + font-size: 14pt; + color: #000; + vertical-align: top; + text-decoration: underline; +} + +#help img{ + float: left; + margin-left: 10px; +} + +#breadcrumbTrail{ + float: left; + margin: 10px 10px 20px 40px; + background: #f2f2f2; + padding: 10px; + border-radius: 4px; + font-size: 10pt; +} + +#breadcrumbTrail a{ + color: #B92034; +} + +/************************************** + * TOP MENU 1 CSS + * ***********************************/ + +#top-menu1{ + float: left; + width: 100%; + height: 50px; + background: #f2f2f2; + position: absolute; + z-index: 2; + top: 66px; + padding-top: 12px; +} + +#top-menu-bg{ + position:relative; + top:-8px; + width:100%; + padding-top: 12px; + height:50px; + float: left; + background:white; +} + +#top-menu1.faded-menu { + position: fixed; + top: 0; + background: rgba(242,242,242,0.9); +} + +#top-menu-icon{ + float: left; + position: absolute; + top: 13px; + left: 30px; + display: none; +} + +#top-menu-icon2{ + float: left; + position: absolute; + top: 25px; + left: 100%; + margin-left: -57px; + display: none; +} + +#top-menu1 .menu-item{ + float: left; + width: 240px; + height: 50px; + text-align: center; + line-height: 50px; + overflow-y: visible; +} + +#top-menu1 .menu-item:hover, #top-menu1 .menu-item img:hover, #top-menu1 .menu-item h3:hover, #top-menu1 .menu-item h3:hover a{ + color: #B92034; +} + +#top-menu1 .menu-item:nth-child(odd):hover{ + background: #f2f2f2; + box-shadow: 1px 1px 4px #000; + position: relative; + z-index: 2; +} + +#top-menu1 .menu-item:hover .menu-item-dropdown{ + display: block !important; +} + +#top-menu1 .menu-item:hover .header-triangle img{ + background: url('../img/triangle.png') 17px 0; +} + +#top-menu1 .menu-item a{ + color: #000; + text-decoration: none; +} + +#top-menu1 .menu-item h3 a:hover{ + color: #B92034; +} + +#top-menu1 .menu-item h3{ + font-weight: 600; + color: #000; +} + +.header-triangle img{ + margin-left: 5px; + height: 9px; + width: 17px; + background: url('../img/triangle.png') 0 0; +} + +#top-menu1 .menu-item .menu-item-sub{ + float: right; +} + +#top-menu-bottom{ + width: 100%; + height: 8px; + display: block; +} + +.menu-item-dropdown{ + width: 240px; + position: relative; + left: -5px; + z-index: 3; + display: none; + text-align: left; + padding: 0px 5px 5px 5px; + overflow: hidden; +} + +.menu-dropdown-inner{ + width: 240px; + background: #f2f2f2; + margin-bottom: 10px; + padding-bottom: 10px; + box-shadow: 1px 1px 4px #000; +} + +.menu-item-dropdown h4{ + color: #000; + border-bottom: 1px solid #000; + margin: 0px 10px; + padding-top: 10px; + font-weight: 600; + line-height: 1.5em; +} + +.menu-item-dropdown h4:first-child{ + border-top: none; +} + +.menu-item-dropdown form{ + width: 100%; + height: 30px; + padding: 10px 0px; +} + +#language-search{ + float: left; + width: 139px; + height: 28px; + border-radius: 0px; + border: solid 1px gray; + margin-left: 10px; + padding-left: 10px; +} + +#search-submit{ + float: left; + position: relative; + left: -1px; +} + +.menu-item-dropdown ul{ + padding-top: 10px; +} + +.menu-item-dropdown ul li{ + padding: 0px; + text-align: left; + line-height: 1.8em; + width: 220px; + margin: 0px 10px; +} + +.menu-item-dropdown ul li a{ + color: #B92034 !important; + font-weight: 500; + font-size: 11pt; + display: inline-block; + width: 100%; + height: 100%; + padding: 0px 10px; +} + +.menu-item-dropdown ul li:hover a{ + text-decoration: underline !important; +} + +.menu-item-dropdown ul li:hover{ + background: #e2e2e2; +} + +.beta{ + display: inline-block; + font-size:8pt; + color:#000; + position:relative; + top:-6px;left:3px +} + +#phone-menu{ + display: none; +} + +#phone-header-spacer{ + display: none; +} + +/* Search Box */ + +.search-wrap { + right: 0; + top: 0; + position: absolute; + margin: 21px 32px 21px 21px; +} + +input[type="search"] { + -webkit-appearance: textfield; + appearance: textfield; + -moz-appearance: textfield; +} + +.search-wrap input { + width: 22px; + -moz-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; + padding: 4px 22px 4px 4px; + background-color: #6D6C6F; + border-radius: 6px; + border: none; + background-image: url('../img/search-icon.png'); + background-repeat: no-repeat; + background-position: right 4px; + color: white; +} +.search-wrap input:focus { + width: 200px; + -moz-transition: all 0.3s ease-out; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; +} + +.search-wrap .offscreen { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + + +/********************************** + * FOOTER CSS + *********************************/ + +.footer{ + float: left; + width: 100%; + text-align: center; + background: #A4A8AB; +} + +.footer .wrapper { + width: auto; + display: inline-block; + margin: 0; + text-align: left; +} + +.footer-third{ + float: left; + width: 320px; + margin-left: 4px; + margin-right: 4px; +} + +.footer-third-title{ + margin-top: 30px; + text-align: center; + font-size: 18pt; + color: #fff; + margin-bottom: 25px; +} + +.footer-third form{ + width: 320px; +} + +.footer-third form input{ + -webkit-appearance: none; + padding: 0px; + float: left; + height: 38px; + width: 200px; + padding-left: 10px; + font-size: 14pt; + border-radius: 6px; + border-bottom-right-radius: 0px; + border-top-right-radius: 0px; + box-shadow: none; + border: 1px solid #FFFFFF; + margin-left: 10px; +} + +.footer-third form input:focus{ + outline: 0; +} + +.subscribe{ + width: 90px; + margin: 0px; + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; + background: #666666; + box-shadow: none; +} + +.subscribe h2{ + font-size: 16px; + margin: 0px; + padding: 0px; + font-weight: normal; +} + +.subscribe:hover{ + background: #888888; +} + +#footer-mailchimp br { + clear: both; +} + +/* + social-logos font from https://github.com/Automattic/social-logos, GPLv2 + */ +@font-face { + font-family: "social-logos"; + src: url("../../fonts/social-logos.ttf"); + font-weight: normal; + font-style: normal; +} + +[data-icon]:before { + font-family: "social-logos" !important; + content: attr(data-icon); + font-style: normal !important; + font-weight: normal !important; + font-variant: normal !important; + text-transform: none !important; + line-height: 1; + speak: none; + padding-right: 4px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +#footer-social { + text-align: center; +} + +#footer-social a { + display: block; + text-decoration: none; + color: #666666; + font-size: 14pt; + padding: 4px; +} + +#footer-social a:hover { + color: #444444; +} + +#privacy-policy { + text-align: center; + margin-top: 32px; + display: block; +} + +#privacy-policy a { + display: block; + text-decoration: none; + color: white; + font-size: 12pt; +} + +#privacy-policy a:hover { + color: #444444; +} + +#footer-social div { + display: inline-block; + text-align: left; + margin-bottom: 24px; +} + +#footer-social a#footer-community { + padding-left: 27px; +} + +.sil-logo a, .sil-logo a:visited { + color: white; + text-decoration: none; +} + +.sil-logo a:hover { + color: white; + text-decoration: underline; +} + +.sil-logo{ + text-align: center; + margin-top: 20px; +} + +.sil-logo p{ + color: #fff; + font-size: 12pt; + margin-top: 10px; +} + +/********************************** + * SECTION 2 CSS + *********************************/ + +#section2{ + float: left; + width: 100%; + margin-bottom: 30px; + display: inline; +} + +#section2 h1{ + text-align: center; + font-size: 28pt; + padding: 40px 10px 10px 10px; +} + +#section2 h2{ + font-size: 20pt; + line-height: 1.2em; + padding: 32px 10px 10px 10px; +} + +#section2 h3{ + font-size: 16pt; + font-weight: 600; + padding: 16px 10px 10px 10px; +} + +#section2 h4{ + font-size: 14pt; + font-weight: 600; + padding: 4px 10px 4px 10px; +} + +#section2 p, #section2 dl, #section2 .itemizedlist { + padding: 0px 10px 10px 10px; + line-height: 1.2em; + font-size: 14pt; +} + +#section2 p a{ + color: #B92034; + text-decoration: underline; + cursor: pointer; + font-weight: 600; + line-height: 1.2em; +} + +#section2 li{ + margin-left: 30px; + list-style: disc; + list-style-position: outside; + line-height: 1.2em; + font-size: 14pt; +} + +#section2 p.context-main-image { + text-align: center; + margin-left: -12px; +} + +#section2 p.context-main-image img, +#section2 img.context-main-image { + box-shadow: 0px 4px 12px rgba(0,0,0,0.75); + border-radius: 4px; +} + +/*#section2 img{ + margin: 10px; +}*/ + +#section2 img.center{ + margin-left: auto; + margin-right: auto; + display: block; +} + +#section2 img.inline { + margin: 0; +} + +#section2 .itemizedlist li{ + list-style-position: outside; +} + +#section2 li { + margin-bottom: 12px; +} + +/* TODO: deprecate this since prismjs handles it. This also conflicts with the line-numbers plugin */ +#section2 pre[class*="language-"] { + margin-left: 9px; + margin-right: 9px; + padding: 9px; + line-height: 1.2; +} + +#section2 pre[class*="language-"] code[class*="language-"] { + line-height: 1.2; +} + +.product{ + margin-bottom: 10px; + margin-top: 20px; + background: #e3e3e3; + text-align: center; + max-height: 340px; +} + +.product a{ + display: inline-block; +} + +.product p{ + text-align: left; + font-size: 12pt !important; + height: 130px; +} + +#engine-support-list{ + margin-bottom: 20px; + columns: 2; + -webkit-columns: 2; + -moz-columns: 2; +} + +#keyboard-support-list{ + margin-bottom: 20px; + columns: 4; + -webkit-columns: 4; + -moz-columns: 4; +} + +#product-support-list{ + columns: 3; + -webkit-columns: 3; + -moz-columns: 3; + text-align: center; +} + +#version-history{ + text-align: center; +} + +#keyboard-support-list li, #product-support-list li, #engine-support-list li, #version-history li{ + list-style: none !important; +} + +#keyboard-support-list li a, #product-support-list li a, #engine-support-list li a, #version-history li a{ + color: #B92034; + text-decoration: underline; +} + +kbd { + background: none repeat scroll 0 0 #CCCCD0; + border: 1px solid #808080; + border-radius: 4px; + color: #000000; + font-size: 13px; + font-weight: bold; + margin: 0 1px; + padding: 0px 0px 0px; + min-width: 1.5em; + text-align: center; + vertical-align: bottom; + display: inline-block; +} + +/* Make the element look like an iOS key. */ +kbd.ios { + background-color: #fafafa; /* faaa fa fa fa fa faaaa far better... */ + border: 0; + box-shadow: /* Hard shadow */ 0 1px rgba(0,0,0,0.4), + /* Diffuse shadow */ 0 1px 4px rgba(0,0,0,0.2), + /* Highlight */ inset 0 1px white; + border-radius: 4px; + font-weight: 500; +} + +#section2 aside { + margin: 12px; + background: #e3e5e6; + border-radius: 6px; + padding: 1px 0; +} + +#section2 aside h2, +#section2 aside h3 { + padding-top: 8px; +} + +.list-of-tables { + display: none; +} + +.bold{ + font-weight: bold; +} + +.programlisting{ + font-family: -moz-fixed; + font-family: "Courier New", Courier, monospace; + background: #f2f2f2; + padding: 5px; + line-height: 1.3; + margin: 10px; + overflow-x: auto; +} + +.navheader, .navfooter{ + width: auto; + margin: 0px 10px; +} + +ol li a{ + color: #B92034; +} + +.tip{ + background: #f2f2f2; + border-radius: 6px; + padding: 20px; + margin: 10px 30px; +} + +.tip .title{ + margin-top: 0px !important; +} + +.informaltable table{ + background: #f2f2f2; + margin: 10px; +} + +.informaltable td, .informaltable th{ + border: 1px solid gray; + padding: 5px; +} + +.note{ + border: 1px solid #F3E5DE; +} + +.note .title{ + margin-top: 0px !important; + padding-top: 5px; + background-color: #F3E5DE; +} + +.display{ + background: #f2f2f2; +} + +.display td, .display th{ + border: solid 1px gray; + padding: 5px; +} + +.display th{ + font-weight: bold; +} + +table.display { + margin-bottom: 12px; +} + +table.platform { + margin-left: 10px; + margin-bottom: 12px; +} + +.platform th { + background: #f2f2f2; + font-weight: bold; +} + +.platform td, .platform th { + border: solid 1px gray; + padding: 5px; + text-align: center; +} + +#osk, +#osk-phone, +#osk-tablet{ + position: relative; + z-index: -2; +} + +#osk .kmw-osk-inner-frame{ + height: 320px !important; + font-size: 2em !important; + padding: 4px 0 4px 4px; +} + +#osk-phone .kmw-osk-inner-frame{ + padding-top: 6px !important; + height: 256px !important; + width: 528px !important; + font-size: 1.5em !important; +} + +#osk-tablet .kmw-osk-inner-frame{ + padding-top: 6px !important; + width: 726px !important; + height: 372px !important; + font-size: 1.5em !important; +} + +#osk-container, +#osk-phone-container, +#osk-tablet-container { + display: none; +} + +body[data-device='Windows'] #osk-container, +body[data-device='Windows'] #osk-phone-container, +body[data-device='Windows'] #osk-tablet-container { + display: block; +} + +body[data-device='iPhone'] #osk-phone-container, +body[data-device='Android'] #osk-phone-container { + display: block; +} + +body[data-device='iPad'] #osk-tablet-container, +body[data-device='Android'] #osk-tablet-container { + display: block; +} + +body[data-device='Unknown'] #osk-container, +body[data-device='Unknown'] #osk-phone-container, +body[data-device='Unknown'] #osk-tablet-container { + display: block; +} + +/********************************** + * PHONE MENU CSS + *********************************/ + +#show-phone-menu{ + display: none; + float: left; + margin: 10px; + position: relative; + z-index: 6; +} +#phone-menu{ + position: fixed; + top: 49px; + left: 0px; + z-index: 6; + width: 80%; + height: 100%; +} +#phone-menu-inner{ + width: 100%; + height: 100%; + overflow-y: scroll; + padding-bottom: 40%; + -webkit-overflow-scrolling:touch; + border-right: solid 4px #C1C1C1; + background: #fff; +} +.phone-menu-item{ + float: left; + width: 100%; + height: auto; + padding: 10px 0px; + background: #f2f2f2; +} +.phone-menu-item:last-child{ + margin-bottom: 60px; +} +.phone-menu-item h3{ + font-size: 14pt; + font-weight: bold; + margin: 0px 10px; + border-bottom: solid 1px #000; +} +.phone-menu-item form{ + margin-top: 10px; +} +#language-search2{ + float: left; + width: 144px; + height: 30px; + margin-left: 10px; + border-radius: 0px; + border: solid 1px gray; + padding: 0px; + padding-left: 10px; + font-size: 12pt; +} +#search-submit2{ + float: left; + position: relative; + left: -1px; + border-radius: 0px; +} +.phone-menu-item ul{ + padding: 10px; +} +.phone-menu-item ul li{ + line-height: 1.8em; +} +.phone-menu-item ul li a{ + text-decoration: underline; + color: #B92034; +} +#show-phone-menu-spacer{ + display: none; + float: left; +} + +/************************************** + * JIRA FEEDBACK CSS + * ***********************************/ + +#jira-feedback{ + width: 300px; + height: 320px; + padding: 9px; + background: #f2f2f2; + position: fixed; + top: 100%; + left: 100%; + margin-left: -340px; + border-top-left-radius: 6px; + border: solid 1px #000; + z-index: 4; +} + +#jira-feedback.selected{ + margin-top: -339px; +} + +#jira-feedback-tab{ + float: right; + position: relative; + top: -50px; + right: -10px; + z-index: 4; + background: #69B7D2; + height: 30px; + line-height: 30px; + padding: 5px 10px; + text-align: center; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + width: 70px; + margin-left: 210px; + cursor: pointer; + border-top: solid 1px #000; + border-left: solid 1px #000; + border-right: solid 1px #000; +} + +#jira-feedback-tab h4{ + color: #fff; +} + +#jira-feedback-form{ + position: relative; + top: -30px; +} + +#jira-feedback input, #jira-feedback textarea, #jira-feedback select{ + width: 288px; + border: solid 1px #000; + padding: 4px 5px; + margin: 5px 0px 10px 0px; +} + +#jira-feedback textarea{ + height: 100px; +} + +#jira-feedback select{ + width: 298px; +} + +#jira-submit{ + float: right; + width: 140px; + height: 40px; + border-radius: 6px; + border: solid 3px #fff; + margin: 10px 0px; + cursor: pointer; + background: #91db51; /* Old browsers */ + background: -moz-linear-gradient(top, #69B7D2 0%, #5A9EB5 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#69B7D2), color-stop(100%,#5A9EB5)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #69B7D2 0%,#5A9EB5 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #69B7D2 0%,#5A9EB5 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #69B7D2 0%,#5A9EB5 100%); /* IE10+ */ + background: linear-gradient(to bottom, #69B7D2 0%,#5A9EB5 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#69B7D2', endColorstr='#5A9EB5',GradientType=0 ); /* IE6-9 */ +} + +#jira-submit input{ + color: #fff; + line-height: 40px; + text-align: center; + font-weight: bold; + width: auto; + background: none; + border: none; + cursor: pointer; +} + +#jira-submit:hover{ + background: #91db51; /* Old browsers */ + background: -moz-linear-gradient(top, #5A9EB5 0%, #477C8E 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#5A9EB5), color-stop(100%,#477C8E)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #5A9EB5 0%,#477C8E 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #5A9EB5 0%,#477C8E 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #5A9EB5 0%,#477C8E 100%); /* IE10+ */ + background: linear-gradient(to bottom, #5A9EB5 0%,#477C8E 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5A9EB5', endColorstr='#477C8E',GradientType=0 ); /* IE6-9 */ +} + +#jira-feedback form{ + width: 300px; +} + +#jira-feedback p{ + float: left; + width: 300px; + text-align: left; + font-size: 12pt !important; + position: relative; + top: -30px; +} + +#jira-feedback p#jira-title { + top: -40px; +} + +/************************************** + * TABLET CSS + * ***********************************/ + +@media only screen and (min-width: 768px) and (max-width: 1024px){ + .wrapper, #section2 .wrapper{ + width: 740px; + margin-left: auto; + margin-right: auto; + } + /* Header */ + .header{ + position: fixed; + } + #top-menu1 .menu-item{ + width: 148px; + } + #top-menu1 .menu-item h3{ + font-size: 10pt; + } + #logo{ + margin-bottom: 15px; + } + #phone-header-spacer{ + display: block; + height: 80px; + } + /* Footer */ + .footer { + height: auto; + } + .footer-third{ + float: none; + clear: both; + width: 370px; + margin: 20px 0px 0px 0px; + } + /* Section 1 */ + #sect1-title h1{ + font-size: 36pt; + } + #sect1-image img{ + max-width: 90%; + } + /* Phone Menu */ + #top-menu1{ + display: none; + } + #top-menu-bg{ + display: none; + } + #show-phone-menu{ + display: block; + margin-top: 28px; + } + #phone-menu{ + top: 81px; + width: 40%; + } + #osk .kmw-osk-inner-frame{ + height: 280px; + font-size: 1.8em !important; + } + #jira-feedback{ + display: none; + } +} + +@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: portrait){ + #sect1-title h1{ + text-align: center; + font-size: 28pt; + } +} + +/* 7 inch */ +@media all and (min-width: 600px) and (max-width: 768px){ + .wrapper, #section2 .wrapper{ + width: 580px; + margin-left: auto; + margin-right: auto; + } + /* Header */ + #top-menu-bg{ + display: none; + } + #top-menu1 .menu-item{ + width: auto; + padding: 0 16px; + } + #top-menu1 .menu-item h3{ + font-size: 8pt; + } + /* Footer */ + .footer-third{ + width: 290px; + margin-left: 0px; + margin-right: 0px; + } + .footer-third form{ + width: 290px; + } + .footer-third form input{ + width: 170px; + } + #facebook{ + margin-left: 20px; + } + /* Section 1 */ + #sect1-title h1{ + font-size: 28pt; + text-align: center; + } + #sect1-image img{ + max-width: 90%; + } + /* Phone Menu */ + #show-phone-menu{ + display: block; + } + #osk .kmw-osk-inner-frame{ + height: 220px; + font-size: 1.5em !important; + } + #jira-feedback{ + display: none; + } +} + + + + +/************************************** + * PHONE CSS + * ***********************************/ + +@media all and (min-width: 10px) and (max-width: 600px){ + .wrapper, #section2 .wrapper{ + width: 320px; + margin-left: auto; + margin-right: auto; + } + /* Header */ + #top-menu-bg{ + display: none; + } + .header{ + position: fixed; + } + #top-menu1{ + display: none; + } + #help{ + display: none; + } + .header{ + height: 49px !important; + } + #logo{ + margin-top: 3px; + width: 185px; + position: fixed; + left: 50%; + margin-left: -92px; + } + #phone-header-spacer{ + display: block; + height: 57px; + } + /* Footer */ + .footer{ + height: auto; + } + .footer-third{ + margin-left: 0px; + margin-right: 0px; + height: auto; + } + .sil-logo{ + float: left; + margin-top: 40px; + margin-bottom: 20px; + } + /* Section 1 */ + .section1{ + height: auto; + background-size: auto 100%; + } + #sect1-image{ + width: 100%; + height: auto; + } + #sect1-image img{ + max-width: 80%; + height: auto; + padding-bottom: 10px; + } + #sect1-title{ + width: 100%; + height: auto; + } + #sect1-title h1{ + font-size: 24pt; + text-align: center; + padding: 20px 10px 0px 10px; + } + #sect1-title a{ + display: none; + } + /* Phone Menu */ + #show-phone-menu{ + display: block; + } + #show-phone-menu-spacer{ + display: block; + width: 40px; + height: 29px; + } + /* Section 2 */ + #section2 img{ + max-width: 80%; + } + #section2 h2{ + margin: 10px 10px 15px 10px; + text-align: center; + } + #keyboard-support-list{ + columns: 2; + -webkit-columns: 2; + -moz-columns: 2; + margin-bottom: 20px; + } + #product-support-list { + padding: 0px 30px; + font-size: 14pt; + columns: 1; + -webkit-columns: 1; + -moz-columns: 1; + margin-bottom: 20px; + } + #osk .kmw-osk-inner-frame{ + height: 140px; + font-size: 1em !important; + } + #keymanExample{ + overflow-x: scroll; + overflow-y: hidden; + height: 100px; + } + #keymanExample table{ + width: 1000px; + } + #jira-feedback{ + display: none; + } +} + +#KeymanWebControl{ + display: none; +} + +/* Landscape mode */ +@media all and (min-width: 480px) and (max-width: 600px) and (orientation: landscape){ + .wrapper, #section2 .wrapper{ + width: 460px; + margin-left: auto; + margin-right: auto; + } + /* Header */ + /* Footer */ + .footer-third{ + margin-left: 70px; + margin-right: 70px; + } + .sil-logo{ + margin-left: 70px; + } + /* Section 1 */ +} + +/************************************** + * WEB DEVELOPER HELP CSS + * ***********************************/ + +div.webhelp { + clear: both; +} + +div.webhelp h3 { + margin: 16px 0 0 0; + padding: 0; +} + +div.webhelp h4 { + margin: 0 0 16px 0; + padding:0; +} +img.webhelp, div.webhelp img {margin:16px 0 !important;border: 1px solid grey;} + + +code { + font-family: Consolas, Courier, "Courier New", mono; + font-size: 10.5pt; +} + +strong, b { + font-weight: bold; +} + +i, cite, em, var, address, dfn { +font-style: italic; +} + +dt { + margin-top: 16px; +} + +dt:first-child { + margin-top: 0; +} + +dd { + margin-left: 32pt; +} + +table.standard-table td, +table.standard-table th { + border: solid #e0e0dc; + border-width: 0 1px 1px 0; + padding: 6px; + text-align: left; +} +table.standard-table th { + border: 2px solid #fff; + border-bottom: 2px solid #d4dde4; + background: #eaeff2; + background: rgba(212,221,228,.5); + font-family: 'Open Sans Light',sans-serif; + font-size: 14px; + padding: 2px 8px 4px; + font-weight: 700; +} + +table.standard-table td { + background-color: #f9fafb; + background-color: rgba(212,221,228,.15); + border: 2px solid #fff; + box-shadow: inset 0 -1px 0 0 #eaeff2; + box-shadow: inset 0 -1px 0 0 rgba(212,221,228,.5); +} + +article dl dt span.readonly { + background-color: #666769; + font-size: 13px; + color: white; + padding: 1px 6px 3px; + border-radius: 6px; +} + +article dl dd span.optional { + background-color: #9c9c9c; + font-size: 13px; + font-style: italic; + font-weight: lighter; + color: white; + padding: 1px 6px 3px; + border-radius: 6px; +} + +/** + Table of contents -- developer section only +*/ + +.column-right { + display: none; + float: right; +} + +.column-left { + display: none; + float: left; +} + +.column-left.show-index { + display: block; +} + +.column-right.show-toc { + display: block; +} + +/* TOC on narrow displays should be shown at top */ + +@media all and (max-width: 1279px){ + .column-right { + display: none !important; + float: none; + } + #toc.fixed { + position: static !important; + } +} + +@media all and (max-width: 1023px){ + .column-left { + display: none !important; + float: none; + } +} + +#toc.fixed { + position: fixed; + top: 130px; +} + +#toc { + top: 0px; + margin-right: 10px; + width: 200px; + background: rgba(242,242,242,0.9); + overflow: auto; + border-radius: 4px; +} + +#index { + margin-left: 10px; + width: 200px; + overflow: auto; +} + +#section2 #toc h3 { + padding: 8px 12px; + margin-top: 0px; + color: black; +} + +#section2 h3, #section2 h2 { + color: #B92034; + margin-top: 10px; +} + +#section2 a { + color: #B92034; +} + +#section2 #toc a { + color: black; +} + +#toc ul, +#index ul { + margin: 0; + padding: 0 0 8px 0; + list-style: none; +} + +#toc li, +#index li { + font-family: 'Calibri', sans-serif; + font-size: 11pt; + list-style: none; + margin-bottom: 2px; + margin-left: 12px; +} + +#toc a, +#toc a:visited, +#index a, +#index a:visited { + color: black; + text-decoration: none; + display: block; +} + +#toc a:hover, +#index a:hover { + background: rgba(224,224,224,0.9); +} + +#index .current { + background: rgba(242,242,242,0.9); +} + +#toc .toc-h2 { + padding-left: 10px; +} + +#toc .toc-h3 { + padding-left: 20px; +} + +#toc .toc-h4 { + padding-left: 30px; +} + +#toc .toc-active a { + color: #69B7D2; +} diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/backspace-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/backspace-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/backspace-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/backspace-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/backspace-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/backspace-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/backspace-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/backspace-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/browser-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/browser-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/browser-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/browser-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/close-keyman-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/close-keyman-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/close-keyman-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/close-keyman-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/confirm-dl-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/confirm-dl-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/confirm-dl-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/confirm-dl-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/confirm-dl-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/confirm-dl-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/confirm-dl-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/confirm-dl-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/confirm-english-dictionary-delete-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/confirm-english-dictionary-delete-ap.png new file mode 100644 index 0000000000..d33a121860 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/confirm-english-dictionary-delete-ap.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/confirm-khmer-delete-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/confirm-khmer-delete-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/confirm-khmer-delete-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/confirm-khmer-delete-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/delete-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/delete-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/delete-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/delete-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-file-browser-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-file-browser-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-file-browser-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-file-browser-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-file-browser-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-file-browser-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-file-browser-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-file-browser-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-install1-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-install1-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-install1-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-install1-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-install1-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-install1-at.png new file mode 100644 index 0000000000..3e4a1eca01 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-install1-at.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-storage-permission-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-storage-permission-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-storage-permission-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-storage-permission-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-storage-permission-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-storage-permission-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-storage-permission-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-storage-permission-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-url-screen-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-url-screen-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-url-screen-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-url-screen-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-url-screen-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-url-screen-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-url-screen-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-url-screen-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-welcome-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-welcome-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-welcome-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-welcome-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-welcome-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-welcome-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-welcome-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dist-welcome-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dl-success-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dl-success-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dl-success-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dl-success-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dl-success-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dl-success-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dl-success-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/dl-success-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/english-dictionaries-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/english-dictionaries-ap.png new file mode 100644 index 0000000000..fa8fc8da07 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/english-dictionaries-ap.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/english-dictionary-info-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/english-dictionary-info-ap.png new file mode 100644 index 0000000000..4308fcb7e7 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/english-dictionary-info-ap.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/english-settings-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/english-settings-ap.png new file mode 100644 index 0000000000..f565542f47 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/english-settings-ap.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/font-size-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/font-size-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/font-size-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/font-size-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/get-started-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/get-started-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/get-started-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/get-started-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/globe-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/globe-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/globe-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/globe-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/globe-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/globe-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/globe-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/globe-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/hide-keyboard-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/hide-keyboard-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/hide-keyboard-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/hide-keyboard-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/hide-keyboard-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/hide-keyboard-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/hide-keyboard-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/hide-keyboard-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/info-a-gray.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/info-a-gray.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/info-a-gray.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/info-a-gray.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/info-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/info-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/info-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/info-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/keyman-storage-permission-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/keyman-storage-permission-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/keyman-storage-permission-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/keyman-storage-permission-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/keyman-storage-permission-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/keyman-storage-permission-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/keyman-storage-permission-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/keyman-storage-permission-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/khmer-settings-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/khmer-settings-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/khmer-settings-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/khmer-settings-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/lang-list-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/lang-list-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/lang-list-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/lang-list-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/lang-list-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/lang-list-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/lang-list-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/lang-list-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/menu-icon-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/menu-icon-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/menu-icon-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/menu-icon-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/plus-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/plus-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/plus-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/plus-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/return-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/return-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/return-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/return-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/return-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/return-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/return-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/return-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-khmer-info-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-khmer-info-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-khmer-info-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-khmer-info-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-language-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-language-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-language-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-language-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-languages-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-languages-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-languages-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-languages-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-two-installed-languages-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-two-installed-languages-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings-two-installed-languages-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings-two-installed-languages-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings1-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings1-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings1-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings1-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings1-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings1-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings1-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings1-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings2-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings2-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings2-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings2-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings2-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings2-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings2-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings2-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings3-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings3-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings3-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings3-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings3-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings3-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings3-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings3-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings4-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings4-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings4-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings4-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings4-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings4-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings4-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings4-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings5-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings5-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings5-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings5-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings5-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings5-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings5-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings5-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings6-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings6-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings6-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings6-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings6-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings6-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings6-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings6-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings7-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings7-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings7-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings7-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings7-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings7-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/settings7-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/settings7-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/share-a.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/share-a.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/share-a.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/share-a.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/shift-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/shift-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/shift-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/shift-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/shift-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/shift-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/shift-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/shift-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/touch-hold-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/touch-hold-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/touch-hold-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/touch-hold-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/touch-hold-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/touch-hold-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/touch-hold-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/touch-hold-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/uninstall-dictionary-notification-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/uninstall-dictionary-notification-ap.png new file mode 100644 index 0000000000..512ec9476f Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/uninstall-dictionary-notification-ap.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/uninstall-notification-ap.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/uninstall-notification-ap.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/uninstall-notification-ap.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/uninstall-notification-ap.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/uninstall-notification-at.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/uninstall-notification-at.png similarity index 100% rename from android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/uninstall-notification-at.png rename to android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/app/12.0/uninstall-notification-at.png diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/favicon.ico b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/favicon.ico new file mode 100644 index 0000000000..671c7c9156 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/favicon.ico differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/headerbar.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/headerbar.png new file mode 100644 index 0000000000..19a21025d1 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/headerbar.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/helpIcon.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/helpIcon.png new file mode 100644 index 0000000000..8178e4ff76 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/helpIcon.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/logo2.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/logo2.png new file mode 100644 index 0000000000..246c4cd5e0 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/logo2.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/search-icon.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/search-icon.png new file mode 100644 index 0000000000..ab7d73d0c3 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/search-icon.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/sil-logo-blue-2017_1.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/sil-logo-blue-2017_1.png new file mode 100644 index 0000000000..e82317a6d0 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/sil-logo-blue-2017_1.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/triangle.png b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/triangle.png new file mode 100644 index 0000000000..0f4a9db7d1 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/img/triangle.png differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/js/keyrenderer.js b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/js/keyrenderer.js new file mode 100644 index 0000000000..2a3ef17397 --- /dev/null +++ b/android/KMAPro/kMAPro/src/main/assets/info/cdn/dev/js/keyrenderer.js @@ -0,0 +1,250 @@ +if(typeof KeyRenderer == 'undefined') +{ + var KeyRenderer = new function() + { + var site = '/cdn/dev'; + + this.render = function(s) + { + return "" + this.renderInternal(s, true) + ""; + } + + this.renderInternal = function(s, includePrintable) + { + var i = 0, r = ''; + var spkey = {PgUp:'pgup',PgDn:'pgdn',Left:'left',Right:'right',Up:'up',Down:'down',Ins:'ins',Del:'del',Home:'home',End:'end', + Enter:'enter',Tab:'tab',Esc:'esc',Caps:'caps',Shift:'shift2',Ctrl:'ctrl2',Alt:'alt2',Bksp:'bksp'}; + while(i < s.length) + { + var endspan = false; + var ch = s.charAt(i); + if(ch == '[' && i < s.length-1) + { + i++; ch = s.charAt(i); + if(ch != '[') + { + /* Ctrl+Shift+Alt+key */ + var t = ''; + while(s.charAt(i) != ']' && i < s.length) + { + t += s.charAt(i); + i++; + } + var n = t.indexOf('&'),t1=t; + if(n >= 0) + { + ch = t.substr(n,t.length-n); + t = t.substr(0,n); + } + else + { + ch = t.charAt(t.length-1); + t = t.substr(0, t.length-1); + } + r += ""; + + var x = t1.indexOf('!'),u='',ks,kn; + if(x >= 0) + { + ks = t1.substr(x+1,t1.length-x-1); + kn = spkey[ks]; + if(kn) + { + u = ""+ks+""; + t = t.substr(0,x); ch = '*'; + } + } + + if(t.indexOf('C') >= 0) r += "Ctrl"; + if(t.indexOf('S') >= 0) r += "Shift"; + if(t.indexOf('A') >= 0) r += "Alt"; + + r += u; + endspan = true; + } + } + if(!endspan || ch != '*') + { + if(ch.substr(0,1) == '&') + { + if(ch == '&') + { + ch = ''; + while(s.charAt(i) != ';' && i < s.length) + { + ch += s.charAt(i); + i++; + } + ch += ';'; + } + if(ch == '<') ch = '<'; + else if(ch == '>') ch = '>'; + else if(ch == '&') ch = '&'; + else if(ch == '"') ch = '"'; + } + chv = ch.charCodeAt(0); + r += ""+this.encodeEntities(ch)+""; + } + if(endspan) r += ""; + i++; + } + + if(includePrintable) + { + r += ""; + i = 0; + while(i < s.length) + { + endspan = false; + ch = s.charAt(i); + if(ch == '[' && i < s.length-1) + { + i++; ch = s.charAt(i); + if(ch != '[') + { + /* Ctrl+Shift+Alt+key */ + t = ''; + while(s.charAt(i) != ']' && i < s.length) + { + t += s.charAt(i); + i++; + } + var t1 = t; + ch = t.charAt(t.length-1); + t = t.substr(0, t.length-1); + r += ""; + + var x = t1.indexOf('!'),u='',ks,kn; + if(x >= 0) + { + ks = t1.substr(x+1,t1.length-x-1); + kn = spkey[ks]; + if(kn) + { + u = ks; + t = t.substr(0,x); ch = '*'; + } + } + + if(t.indexOf('C') >= 0) r += "Ctrl+"; + if(t.indexOf('S') >= 0) r += "Shift+"; + if(t.indexOf('A') >= 0) r += "Alt+"; + endspan = true; + + r += u; + } + } + if(!endspan || ch != '*') + if(ch == ' ') r += "Space"; else r += this.encodeEntities(ch); + if(endspan) r += ""; + i++; + } + r += ""; + } + + return r; + } + + this.encodeEntities = function(s) + { + return s.replace('&', '&').replace('<', '<').replace('>', '>').replace('"', '"').replace("'", '''); + } + + this.getElementsByClassName = function(className, tag, elm) + { + if (document.getElementsByClassName) { + getElementsByClassName = function (className, tag, elm) { + elm = elm || document; + var elements = elm.getElementsByClassName(className), + nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null, + returnElements = [], + current; + for(var i=0, il=elements.length; idocument.writeln(KeyRenderer.render('hf')); + } + + } + + if(window.attachEvent) + { + window.attachEvent('onload', KeyRenderer.renderAll); + } + else if(window.addEventListener) + { + window.addEventListener('load', KeyRenderer.renderAll, false); + } +} \ No newline at end of file diff --git a/android/KMAPro/kMAPro/src/main/assets/info/cdn/fonts/social-logos.ttf b/android/KMAPro/kMAPro/src/main/assets/info/cdn/fonts/social-logos.ttf new file mode 100644 index 0000000000..e8013681b9 Binary files /dev/null and b/android/KMAPro/kMAPro/src/main/assets/info/cdn/fonts/social-logos.ttf differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/css/app-info-a.css b/android/KMAPro/kMAPro/src/main/assets/info/css/app-info-a.css deleted file mode 100644 index 7f090705a4..0000000000 --- a/android/KMAPro/kMAPro/src/main/assets/info/css/app-info-a.css +++ /dev/null @@ -1,253 +0,0 @@ - -/* http://meyerweb.com/eric/tools/css/reset/ - v2.0 | 20110126 - License: none (public domain) -*/ - -html, body, div, span, applet, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, big, cite, code, -del, dfn, em, img, ins, kbd, q, s, samp, -small, strike, strong, sub, sup, tt, var, -b, u, i, center, -dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, canvas, details, embed, -figure, figcaption, footer, header, hgroup, -menu, nav, output, ruby, section, summary, -time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - font-size: 100%; - font: inherit; - vertical-align: baseline; -} -/* HTML5 display-role reset for older browsers */ -article, aside, details, figcaption, figure, -footer, header, hgroup, menu, nav, section { - display: block; -} -body { - line-height: 1; -} -ol, ul { - list-style: none; -} -blockquote, q { - quotes: none; -} -blockquote:before, blockquote:after, -q:before, q:after { - content: ''; - content: none; -} -table { - border-collapse: collapse; - border-spacing: 0; -} - -body{ - font-family: verdana; - background: #fff; -} - -/*********************** - Wrapper CSS -***********************/ - -.wrapper{ - margin-left: auto; - margin-right: auto; - width: 960px; - padding-bottom: 30px; -} - -h2{ - font-size: 22pt; - font-weight: 400; - margin: 30px 20px 15px 20px; - text-align: center; - color: #BA2034; -} - -p{ - font-size: 16pt; - line-height: 1.3; - padding: 0px 20px; -} - -p img{ - margin-top: 10px; - display: block; - margin-left: auto; - margin-right: auto; - margin-bottom: 10px; -} - -img{ - border: solid 2px #fff; -} - -table{ - width: 100%; - margin-bottom: 50px; -} - - -td{ - text-align: left; - vertical-align: middle; - padding: 10px; -} - -td:first-child{ - width: 15%; -} - -td:last-child{ - width: 85%; -} - -th{ - font-weight: bold; - font-size: 14pt; - padding: 15px 0px 5px 0px; -} - -.command{ - font-weight: bold; - color: #69B7D3; -} - -#toolbar{ - padding-top: 40px; -} - - -@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait){ - .wrapper{ - width: 750px; - } -} - - -@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape){ - .wrapper{ - width: 960px; - } -} - - -@media only screen and (min-device-width: 320px) and (max-device-width: 600px) and (orientation: portrait){ - .wrapper{ - width: 300px; - } -} - - -@media only screen and (min-device-width: 320px) and (max-device-width: 600px) and (orientation: landscape){ - .wrapper{ - width: 460px; - } -} - -/*********************** - Wrapper CSS -***********************/ - -#android-tab-header{ - width: 100%; - background: #f2f2f2; -} - -#android-mobile-header, #android-tablet-header{ - width: 50%; - float: left; - text-align: center; - background: #e4e4e4; - padding: 10px 0px; - cursor: pointer; -} - -.tab{ - display: none; -} - -#android-mobile-header.selected-tab, #android-tablet-header.selected-tab, .tab.selected-tab{ - display: block; - background: #f2f2f2; -} - -#android-mobile-header h4, #android-tablet-header h4{ - font-size: 14pt; - font-weight: bold; -} - -h2{ - font-size: 22pt; - font-weight: 400; - margin: 30px 20px 15px 20px; - text-align: center; - color: #BA2034; -} - -p img{ - margin-top: 10px !important; - display: block !important; - margin-left: auto !important; - margin-right: auto !important; - margin-bottom: 10px !important; -} - -table{ - width: 100%; - margin-bottom: 50px; -} - - -td{ - text-align: left; - vertical-align: middle; - padding: 10px; -} - -td:first-child{ - width: 15%; -} - -td:last-child{ - width: 85%; -} - -th{ - font-weight: bold; - font-size: 14pt; - padding: 15px 0px 5px 0px; -} - -.command{ - font-weight: bold; - color: #69B7D3; -} - -#toolbar{ - padding-top: 40px; -} - -/*********************** - Images CSS -***********************/ - -#section2 img{ - min-width: 40px; -} - -/** - Removes existing max-width property settings from images in tables. - They overly shrink the images on the main Android symbol glossary. - */ -#section2 td img { - max-width: unset; -} \ No newline at end of file diff --git a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-install1-at.png b/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-install1-at.png deleted file mode 100644 index de2e9967f8..0000000000 Binary files a/android/KMAPro/kMAPro/src/main/assets/info/img/app/12.0/dist-install1-at.png and /dev/null differ diff --git a/android/KMAPro/kMAPro/src/main/assets/info/info.html b/android/KMAPro/kMAPro/src/main/assets/info/info.html deleted file mode 100644 index 87c7c88ca8..0000000000 --- a/android/KMAPro/kMAPro/src/main/assets/info/info.html +++ /dev/null @@ -1,725 +0,0 @@ - - - - - Keyman for Android Information Page - - - - - - - - -
-

- Getting Started -

- -
-
-

Phone

-
-
-

Tablet

-
-
-
-

- Keyman for Android lets you type in over 600 languages on Android mobiles and tablets. - To get started, here are some helpful hints: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Keyboard Keys
(Keyboard Present)
Select another language/keyboard
Hide the keyboard
Backspace
Return
Shift key. Long press this key to access the CTRL, ALT and CTRL ALT keys - (which can access additional key layers) -
Keys with a small dot in the top right corner indicate a long press key. Access - further functionality by long pressing the key -
Toolbar Icons
Share your text via Mail, Text, or Twitter
Open the Keyman Browser to use the web in your language
Open the menu for additional options
Adjust the font size
Delete all current text
Load this help page
Open the initial setup screen
Open the Keyman Settings screen
- -

Switching between Keyboards

-

- To switch keyboards, follow these steps: -

- Step 1) -
- With the keyboard visible, touch the globe key: -
- -
- This will bring up a list of all currently installed languages (the default is English - EuroLatin (SIL)). If you have already downloaded additional languages, they will appear here. - Simply select them and the keyboard will re-appear with the new language. -

- -

Adding New Keyboards

-

- To add keyboards, follow these steps: -

- Step 1) -
- Open the menu for additional options. Select 'Settings' -

- Step 2) -
- From the Keyman Settings menu, select 'Installed languages' -
- -

- Step 3) - From the 'Installed languages' menu, touch the + - button in the bottom right corner of your screen. -
- -

- Step 4) -
- A list of all available languages will appear. Scroll through this list until you find - the language you want to install. Languages marked with a right arrow have multiple keyboards - for - example we have 10+ different Tamil keyboards. -
- -

- Select the language and keyboard you want to install - a popup will ask for confirmation, - hit the Download button. -
- -

- Step 5) -
- Once the download is complete, the new keyboard will be selected. Touch the - button on the top left corner of the popup several times and the new keyboard will become active. -
- -

- Alternate Step for System Keyboard) -
- The Keyman system keyboard has an additional CLOSE KEYMAN button at the bottom left of - the "Keyboards" menu. Pushing this button will close Keyman and switch to the next non-Keyman system keyboard. -
- -
-

- -

Removing a Keyboard

-

- To uninstall a keyboard, follow these steps: -

- Step 1) -
- Open the menu for additional options. Select 'Settings' -

- Step 2) -
- From the Keyman Settings menu, select 'Installed languages' -
- -

- Step 3) - From the 'Installed languages' menu, select the language for the keyboard you want to remove. -
- -

- Step 4) The language Settings menu lists currently installed keyboards associated with the language. - Select the keyboard you want to uninstall -
- -

- Step 5) -
- The bottom of the keyboard settings menu displays an option to uninstall the keyboard. - Select 'Uninstall keyboard' to get a prompt to delete the keyboard. -
- Note: the default 'SIL EuroLatin' keyboard for English cannot be removed. -
- -

- Step 6) - Press "Delete" to uninstall the keyboard. -
- -
- You'll see a notification when the keyboard is deleted. -
- -

- -

Hotkey

-

- To switch between languages while using an external keyboard (i.e. a bluetooth keyboard), a quick and easy way is to - use a hotkey combination. Press and hold 'Ctrl' and then press 'Tab'. - You should see a list of languages/keyboards. Tap on any available language of your choice. -

- -

Accessing Keyboard Help

-

- Step 1) Open the keyboard list by touching the globe key. -

-

-
-

- Step 2) Touch the info icon for your keyboard. -

-

-
- -

Installing System Wide Keyboards

-

- Step 1) Open the Keyman app and select the menu for additional options. - The screenshots below are of a device running Android 9.0 Pie. -

-

-
-

- Step 2) Select 'Get Started' and then select 'Enable Keyman as system-wide keyboard'. -

-

-
-

- This will open an Android settings screen for 'Available virtual keyboard'. -

-

-
-

- Step 3) Enable 'Keyman' as an available virtual keyboard. - This will bring up two confirmation dialogs. -

-

-
-

-
-

- Select 'OK' on both. Now when the on-screen keyboard appears for apps other than Keyman, - you'll see a keyboard icon at the bottom right. -

-

-
-

- Click the keyboard icon whenever you want to change the current system keyboard. -

-

-

- -

Installing Custom Keyboards

-

- Step 1) Click the link to your custom keyboard package file. The link in this example is for Khmer Angkor keyboard. -

-

-

- Step 2) Once the KMP file is on your device, you will need to browse to the KMP file and select it. - From the Keyman menu, select 'Settings'. -
- From the Keyman Settings menu, select 'Add Keyboard from Device'. -

-

-

- The device will launch a file browser where you'll browse to the directory of your KMP file. - A common place to look is the "Downloads" folder. -

-

-

- Selecting the KMP file should bring you to Step 3) -

-

- Step 3) On Android 6.0 (Marshmallow) and higher, mobile apps need to request permissions to access storage. Keyman - for Android needs access to read storage for installing the KMP file. At the dialog, select "ALLOW". Once authorized, - Keyman for Android won't need to ask for storage permission again, unless the user revokes or uninstalls the app. -

-

-

- Older versions of Android grant Storage permissions at app installation time, so those users can skip this step. -

-

- Step 4) Keyman for Android will parse the metadata in the package. If the keyboard package includes a "welcome.htm" - file, this will be displayed at the confirmation to install the keyboard package. -

-

-

- If "welcome.htm" is not included, a generic page with the package ID and package version will be shown. Click the - left "Install" button to install the entire keyboard package. -

-

- Step 5) All the keyboards in the package are installed as a group. In this example, the package only has the - "Khmer Angkor" keyboard, so it becomes the active keyboard. -

-

-

- Once the keyboard has been downloaded, you should be able to use it as normal. -
- To learn how to create a custom installable keyboard, - click here. -

- -

Granting storage permission

-

- If Keyman for Android is permanently denied storage access, attempts to install custom keyboards will fail with the - notification "Storage permission request was denied". Perform these steps to grant Keyman for Android access to storage -

-

- Step 1) Go to Android Settings. -
- Step 2) Depending on your device, click "Apps", "Apps & notifications", or "App permissions" and grant Keyman - storage permission. The screenshot below is from Android 9.0 Pie. -

-

- -

Use the Keyman Browser

-

- Step 1) Click the Keyman Browser button in the Keyman app -
- Step 2) Enter the URL of a website to visit into the address bar, for example google.com. - Keyman Browser will load the page and detect your language if it is present, and reformat it to show your - language instead of square boxes. -
- Step 3) Use the bookmark button to save the current page for browsing later. -
- Step 4) Use the Globe icon to swap between languages. -

- -

Integrate Keyman with your App or Website

-

- If you are interested in learning how Keyman can be integrated into your own app or - website, visit keyman.com/engine -

- -

Further Help

-

- For more information on Keyman, visit keyman.com -

- For more information on Keyman for Android, visit keyman.com/android -

- -
- -
-

- Keyman for Android lets you type in over 600 languages on Android mobiles and tablets. - To get started, here are some helpful hints: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Keyboard Keys
(Keyboard Present)
Select another language/keyboard
Hide the keyboard
Backspace
Return
Shift key. Long press this key to access the CTRL, ALT and CTRL ALT keys - (which can access additional key layers) -
Keys with a small dot in the top right corner indicate a long press key. Access - further functionality by long pressing the key -
Toolbar Icons
Share your text via Mail, Text, or Twitter
Open the Keyman Browser to use the web in your language
Adjust the font size
Delete all current text
Load this help page
Open the initial setup screen
Open the Keyman Settings screen
- -

Switching between Keyboards

-

- To switch keyboards, follow these steps: -

- Step 1) -
- With the keyboard visible, touch the globe key: -
- -
- This will bring up a list of all currently installed languages (the default is English - EuroLatin (SIL)). If you have already downloaded additional languages, they will appear here. - Simply select them and the keyboard will re-appear with the new language. -

- -

Adding New Keyboards

-

- To add keyboards, follow these steps: -

- Step 1) -
- Open the menu for additional options. Select 'Settings' -

- Step 2) -
- From the Keyman Settings menu, select 'Installed languages' -
- -

- Step 3) - From the 'Installed languages' menu, touch the + - button in the bottom right corner of your screen. -
- -

- Step 4) -
- A list of all available languages will appear. Scroll through this list until you find - the language you want to install. Languages marked with a right arrow have multiple keyboards - for - example we have 10+ different Tamil keyboards. -
- -

- Select the language and keyboard you want to install - a popup will ask for confirmation, - hit the Download button. -
- -

- Step 5) -
- Once the download is complete, the new keyboard will be selected. Touch the - button on the top left corner of the popup several times and the new keyboard will become active. -
- -

- Alternate Step for System Keyboard) -
- The Keyman system keyboard has an additional CLOSE KEYMAN button at the bottom left of - the "Keyboards" menu. Pushing this button will close Keyman and switch to the next non-Keyman system keyboard. -
- -
-

- -

Removing a Keyboard

-

- To uninstall a keyboard, follow these steps: -

- Step 1) -
- From the menu, select 'Settings' -

- Step 2) -
- From the Keyman Settings menu, select 'Installed languages' -
- -

- Step 3) - From the 'Installed languages' menu, select the language for the keyboard you want to remove. -
- -

- Step 4) The language Settings menu lists currently installed keyboards associated with the language. - Select the keyboard you want to uninstall -
- -

- Step 5) -
- The bottom of the keyboard settings menu displays an option to uninstall the keyboard. - Select 'Uninstall keyboard' to get a prompt to delete the keyboard. -
- Note: the default 'SIL EuroLatin' keyboard for English cannot be removed. -
- -

- Step 6) - Press "Delete" to uninstall the keyboard. -
- -
- You'll see a notification when the keyboard is deleted. -
- -

- -

Hotkey

-

- To switch between languages while using an external keyboard (i.e. a bluetooth keyboard), a quick and easy way is to - use a hotkey combination. Press and hold 'Ctrl' and then press 'Tab'. - You should see a list of languages/keyboards. Tap on any available language of your choice. -

- -

Accessing Keyboard Help

-

- Step 1) Open the keyboard list by touching the globe key. -

-

-
-

- Step 2) Touch the info icon for your keyboard. -

-

-
- -

Installing System Wide Keyboards

-

- Step 1) Open the Keyman app. The screenshots below are of a device running Android 8.1 Oreo. -

-

-
-

- Step 2) Select 'Get Started' and then select 'Enable Keyman as system-wide keyboard'. -

-

-
-

- This will open an Android settings screen for 'Available virtual keyboard'. -

-

-
-

- Step 3) Enable 'Keyman' as an available virtual keyboard. - This will bring up two confirmation dialogs. -

-

-
-

-
-

- Select 'OK' on both. Now when the on-screen keyboard appears for apps other than Keyman, - you'll see a keyboard icon at the bottom right. -

-

-
-

- Click the keyboard icon whenever you want to change the current system keyboard. -

-

-

- -

Installing Custom Keyboards

-

- Step 1) Click the link to your custom keyboard package file. The link in this example is for Khmer Angkor keyboard. -

-

-

- Step 2) Once the KMP file is on your device, you will need to browse to the KMP file and select it. - From the Keyman menu, select 'Settings'. -
- From the Keyman Settings menu, select 'Add Keyboard from Device'. -

-

-

- The device will launch a file browser where you'll browse to the directory of your KMP file. - A common place to look is the "Downloads" folder. -

-

-

- Selecting the KMP file should bring you to Step 3) -

-

- Step 3) On Android 6.0 (Marshmallow) and higher, mobile apps need to request permissions to access storage. Keyman - for Android needs access to read storage for installing the KMP file. At the dialog, select "ALLOW". Once authorized, - Keyman for Android won't need to ask for storage permission again, unless the user revokes or uninstalls the app. -

-

-

- Older versions of Android grant Storage permissions at app installation time, so those users can skip this step. -

-

- Step 4) Keyman for Android will parse the metadata in the package. If the keyboard package includes a "welcome.htm" - file, this will be displayed at the confirmation to install the keyboard package. -

-

-

- If "welcome.htm" is not included, a generic page with the package ID and package version will be shown. Click the - left "Install" button to install the entire keyboard package. -

-

- Step 5) All the keyboards in the package are installed as a group. In this example, the package only has the - "Khmer Angkor" keyboard, so it becomes the active keyboard. -

-

-

- Once the keyboard has been downloaded, you should be able to use it as normal. -
- To learn how to create a custom installable keyboard, - click here. -

- -

Granting storage permission

-

- If Keyman for Android is permanently denied storage access, attempts to install custom keyboards will fail with the - notification "Storage permission request was denied". Perform these steps to grant Keyman for Android access to storage -

-

- Step 1) Go to Android Settings. -
- Step 2) Depending on your device, click "Apps", "Apps & notifications", or "App permissions" and grant Keyman - storage permission. The screenshot below is from Android 8.1 Oreo. -

-

- -

Use the Keyman Browser

-

- Step 1) Click the Keyman Browser button in the Keyman app -
- Step 2) Enter the URL of a website to visit into the address bar, for example google.com. - Keyman Browser will load the page and detect your language if it is present, and reformat it to show your - language instead of square boxes. -
- Step 3) Use the bookmark button to save the current page for browsing later. -
- Step 4) Use the Globe icon to swap between languages. -

- -

Integrate Keyman with your App or Website

-

- If you are interested in learning how Keyman can be integrated into your own app or - website, visit keyman.com/engine -

- -

Further Help

-

- For more information on Keyman, visit keyman.com -

- For more information on Keyman for Android, visit keyman.com/android -

- -
-
- - diff --git a/android/KMAPro/kMAPro/src/main/assets/info/jquery1-10-2.js b/android/KMAPro/kMAPro/src/main/assets/info/jquery1-10-2.js deleted file mode 100644 index da4170647d..0000000000 --- a/android/KMAPro/kMAPro/src/main/assets/info/jquery1-10-2.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license -//@ sourceMappingURL=jquery-1.10.2.min.map -*/ -(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t -}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); -u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("