diff --git a/docs/.prettierrc.js b/docs/.prettierrc.cjs
similarity index 88%
rename from docs/.prettierrc.js
rename to docs/.prettierrc.cjs
index 01be06da69..fa4809477b 100644
--- a/docs/.prettierrc.js
+++ b/docs/.prettierrc.cjs
@@ -11,12 +11,6 @@ module.exports = {
arrowParens: 'always',
overrides: [
- {
- files: ['**/*.ts'],
- options: {
- semi: true,
- },
- },
{
files: ['**/*.*css'],
options: {
diff --git a/docs/.vuepress/client.ts b/docs/.vuepress/client.ts
index 71868ff4e2..2a7edb5f1a 100644
--- a/docs/.vuepress/client.ts
+++ b/docs/.vuepress/client.ts
@@ -1,11 +1,19 @@
-import { defineClientConfig } from 'vuepress/client';
+import { defineClientConfig } from 'vuepress/client'
-import ImageGrid from './components/ImageGrid.vue';
+import { getAsciiArt } from './plugins/asciiArt.mts'
-import './styles/index.scss';
+import AsciiArt from './components/AsciiArt.vue'
+import ImageGrid from './components/ImageGrid.vue'
+
+import './styles/index.scss'
export default defineClientConfig({
enhance: ({ app }) => {
- app.component('ImageGrid', ImageGrid);
+ app.component('AsciiArt', AsciiArt)
+ app.component('ImageGrid', ImageGrid)
+
+ // 输出一个随机的字符画
+ const art = getAsciiArt(undefined, 'auto', 'console')
+ console.log('%c' + art, 'white-space: pre;')
},
-});
+})
diff --git a/docs/.vuepress/components/AsciiArt.vue b/docs/.vuepress/components/AsciiArt.vue
new file mode 100644
index 0000000000..fdbab312a1
--- /dev/null
+++ b/docs/.vuepress/components/AsciiArt.vue
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
diff --git a/docs/.vuepress/config.ts b/docs/.vuepress/config.ts
index ed9238dd9e..d9d00cdc19 100644
--- a/docs/.vuepress/config.ts
+++ b/docs/.vuepress/config.ts
@@ -1,11 +1,11 @@
-import { viteBundler } from '@vuepress/bundler-vite';
-import { defineUserConfig } from 'vuepress';
-import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics';
-import { plumeTheme } from 'vuepress-theme-plume';
+import { viteBundler } from '@vuepress/bundler-vite'
+import { defineUserConfig } from 'vuepress'
+import { googleAnalyticsPlugin } from '@vuepress/plugin-google-analytics'
+import { plumeTheme } from 'vuepress-theme-plume'
-import DocSearchConfig from './plugins/search';
+import DocSearchConfig from './plugins/search'
-const isProd = process.env.NODE_ENV === 'production';
+const isProd = process.env.NODE_ENV === 'production'
export default defineUserConfig({
base: '/',
@@ -132,4 +132,4 @@ export default defineUserConfig({
id: 'G-FJQDKG394Z',
}),
],
-});
+})
diff --git a/docs/.vuepress/env.d.ts b/docs/.vuepress/env.d.ts
index 506bf2e5c9..9b4c650d96 100644
--- a/docs/.vuepress/env.d.ts
+++ b/docs/.vuepress/env.d.ts
@@ -1,5 +1,7 @@
+///
+
declare module '*.vue' {
- import { DefineComponent } from 'vue';
- const component: DefineComponent<{}, {}, any>;
- export default component;
+ import { DefineComponent } from 'vue'
+ const component: DefineComponent<{}, {}, any>
+ export default component
}
diff --git a/docs/.vuepress/navbar/en-us.ts b/docs/.vuepress/navbar/en-us.ts
index 85dc41558e..b938db4217 100644
--- a/docs/.vuepress/navbar/en-us.ts
+++ b/docs/.vuepress/navbar/en-us.ts
@@ -1,4 +1,4 @@
-import { defineNavbarConfig } from 'vuepress-theme-plume';
+import { defineNavbarConfig } from 'vuepress-theme-plume'
export const enusNavbar = defineNavbarConfig([
{
@@ -16,4 +16,4 @@ export const enusNavbar = defineNavbarConfig([
icon: 'basil:document-solid',
link: '/en-us/protocol/integration.html',
},
-]);
+])
diff --git a/docs/.vuepress/navbar/index.ts b/docs/.vuepress/navbar/index.ts
index 8dcb5dcb88..8a1e4ae4ff 100644
--- a/docs/.vuepress/navbar/index.ts
+++ b/docs/.vuepress/navbar/index.ts
@@ -1,5 +1,5 @@
-export * from './zh-cn';
-export * from './zh-tw';
-export * from './en-us';
-export * from './ja-jp';
-export * from './ko-kr';
+export * from './zh-cn'
+export * from './zh-tw'
+export * from './en-us'
+export * from './ja-jp'
+export * from './ko-kr'
diff --git a/docs/.vuepress/navbar/ja-jp.ts b/docs/.vuepress/navbar/ja-jp.ts
index 73800ca3b9..63441413a9 100644
--- a/docs/.vuepress/navbar/ja-jp.ts
+++ b/docs/.vuepress/navbar/ja-jp.ts
@@ -1,4 +1,4 @@
-import { defineNavbarConfig } from 'vuepress-theme-plume';
+import { defineNavbarConfig } from 'vuepress-theme-plume'
export const jajpNavbar = defineNavbarConfig([
{
@@ -16,4 +16,4 @@ export const jajpNavbar = defineNavbarConfig([
icon: 'basil:document-solid',
link: '/ja-jp/protocol/integration.html',
},
-]);
+])
diff --git a/docs/.vuepress/navbar/ko-kr.ts b/docs/.vuepress/navbar/ko-kr.ts
index 7966a89f67..d046cb8bc4 100644
--- a/docs/.vuepress/navbar/ko-kr.ts
+++ b/docs/.vuepress/navbar/ko-kr.ts
@@ -1,4 +1,4 @@
-import { defineNavbarConfig } from 'vuepress-theme-plume';
+import { defineNavbarConfig } from 'vuepress-theme-plume'
export const kokrNavbar = defineNavbarConfig([
{
@@ -16,4 +16,4 @@ export const kokrNavbar = defineNavbarConfig([
icon: 'basil:document-solid',
link: '/ko-kr/protocol/integration.html',
},
-]);
+])
diff --git a/docs/.vuepress/navbar/zh-cn.ts b/docs/.vuepress/navbar/zh-cn.ts
index 0450e2b68d..474af87301 100644
--- a/docs/.vuepress/navbar/zh-cn.ts
+++ b/docs/.vuepress/navbar/zh-cn.ts
@@ -1,4 +1,4 @@
-import { defineNavbarConfig } from 'vuepress-theme-plume';
+import { defineNavbarConfig } from 'vuepress-theme-plume'
export const zhcnNavbar = defineNavbarConfig([
{
@@ -16,4 +16,4 @@ export const zhcnNavbar = defineNavbarConfig([
icon: 'basil:document-solid',
link: '/zh-cn/protocol/integration.html',
},
-]);
+])
diff --git a/docs/.vuepress/navbar/zh-tw.ts b/docs/.vuepress/navbar/zh-tw.ts
index 73ad69256b..5d9d77a00a 100644
--- a/docs/.vuepress/navbar/zh-tw.ts
+++ b/docs/.vuepress/navbar/zh-tw.ts
@@ -1,4 +1,4 @@
-import { defineNavbarConfig } from 'vuepress-theme-plume';
+import { defineNavbarConfig } from 'vuepress-theme-plume'
export const zhtwNavbar = defineNavbarConfig([
{
@@ -16,4 +16,4 @@ export const zhtwNavbar = defineNavbarConfig([
icon: 'basil:document-solid',
link: '/zh-tw/protocol/integration.html',
},
-]);
+])
diff --git a/docs/.vuepress/notes/en-us.ts b/docs/.vuepress/notes/en-us.ts
index 0ba8a485d7..38828459ce 100644
--- a/docs/.vuepress/notes/en-us.ts
+++ b/docs/.vuepress/notes/en-us.ts
@@ -1,8 +1,8 @@
-import { defineNotesConfig } from 'vuepress-theme-plume';
-import { genNotes } from './genSidebar';
+import { defineNotesConfig } from 'vuepress-theme-plume'
+import { genNotes } from './genSidebar'
export const enusNotes = defineNotesConfig({
dir: 'en-us',
link: '/en-us/',
notes: genNotes('en-us'),
-});
+})
diff --git a/docs/.vuepress/notes/genSidebar.ts b/docs/.vuepress/notes/genSidebar.ts
index 4dc65c51a9..387e721c74 100644
--- a/docs/.vuepress/notes/genSidebar.ts
+++ b/docs/.vuepress/notes/genSidebar.ts
@@ -1,49 +1,49 @@
-import * as fs from 'fs';
-import * as path from 'path';
-import * as matterModule from 'gray-matter';
-import { defineNoteConfig, ThemeNote, ThemeSidebarItem } from 'vuepress-theme-plume';
+import * as fs from 'fs'
+import * as path from 'path'
+import * as matterModule from 'gray-matter'
+import { defineNoteConfig, ThemeNote, ThemeSidebarItem } from 'vuepress-theme-plume'
-const matter = (matterModule as any).default;
+const matter = (matterModule as any).default
interface MetaData {
- baseName: string;
- order: number;
- title: string;
- icon: string;
- index: boolean;
+ baseName: string
+ order: number
+ title: string
+ icon: string
+ index: boolean
}
function getMetaData(dir: string, entry: fs.Dirent): MetaData | null {
- const currentPath = path.join(dir, entry.name);
+ const currentPath = path.join(dir, entry.name)
if (!fs.existsSync(currentPath)) {
- return null;
+ return null
}
- let mdFilePath = '';
+ let mdFilePath = ''
if (entry.isDirectory()) {
- mdFilePath = path.join(currentPath, 'README.md');
+ mdFilePath = path.join(currentPath, 'README.md')
} else if (entry.isFile() && entry.name.endsWith('.md') && entry.name.toLowerCase() !== 'readme.md') {
- mdFilePath = currentPath;
+ mdFilePath = currentPath
} else {
- return null;
+ return null
}
if (!fs.existsSync(mdFilePath)) {
- return null;
+ return null
}
- const fileContent = fs.readFileSync(mdFilePath, 'utf-8');
- const meta = matter(fileContent).data ?? {};
+ const fileContent = fs.readFileSync(mdFilePath, 'utf-8')
+ const meta = matter(fileContent).data ?? {}
- const baseName = path.parse(entry.name).name;
+ const baseName = path.parse(entry.name).name
// 获取顺序,目录的order在meta.dir.order里,文件的order在meta.order里,默认值为一个大数
- const order = Number((entry.isDirectory() ? meta?.dir?.order : meta?.order) ?? Number.MAX_SAFE_INTEGER);
+ const order = Number((entry.isDirectory() ? meta?.dir?.order : meta?.order) ?? Number.MAX_SAFE_INTEGER)
// 获取标题,先从matter里找title,再用正则获取一级标题,最后fallback到文件名(不含扩展名)
- const title = String(meta?.title ?? RegExp('# (.+)').exec(fileContent)?.[1] ?? baseName);
+ const title = String(meta?.title ?? RegExp('# (.+)').exec(fileContent)?.[1] ?? baseName)
// 获取图标
- const icon = String(meta?.icon ?? '');
+ const icon = String(meta?.icon ?? '')
// 是否作为索引页,文件永远为true,目录则看meta.index,默认true
- const index = entry.isDirectory() ? (Boolean(meta?.index) ?? true) : true;
+ const index = entry.isDirectory() ? (Boolean(meta?.index) ?? true) : true
return {
baseName: baseName,
@@ -51,33 +51,33 @@ function getMetaData(dir: string, entry: fs.Dirent): MetaData | null {
title: title,
icon: icon,
index: index,
- };
+ }
}
export function genNotes(lang: string, baseDir = path.resolve(__dirname, '../../')): ThemeNote[] {
// 进入指定语言目录,即docs//
- const langDir = path.join(baseDir, lang);
+ const langDir = path.join(baseDir, lang)
// 递归获取目录和文件
function getItems(dir: string, isRoot: boolean): any[] {
// 将内容与对应顺序进行包装
interface Wrapped {
- content: ThemeNote | ThemeSidebarItem | string;
- order: number;
+ content: ThemeNote | ThemeSidebarItem | string
+ order: number
}
- let itemsWithOrder: Wrapped[] = [];
+ let itemsWithOrder: Wrapped[] = []
// 获取所有非隐藏文件和目录
- const entries = fs.readdirSync(dir, { withFileTypes: true }).filter((e) => !e.name.startsWith('.'));
+ const entries = fs.readdirSync(dir, { withFileTypes: true }).filter((e) => !e.name.startsWith('.'))
for (const entry of entries) {
- const metaData = getMetaData(dir, entry);
+ const metaData = getMetaData(dir, entry)
if (!metaData) {
- continue;
+ continue
}
if (entry.isDirectory()) {
// 递归获取子目录内容
- const children = getItems(path.join(dir, entry.name), false);
+ const children = getItems(path.join(dir, entry.name), false)
if (isRoot) {
// 一级目录,作为“专题”
@@ -86,8 +86,8 @@ export function genNotes(lang: string, baseDir = path.resolve(__dirname, '../../
link: `/${metaData.baseName}/`,
text: metaData.title,
sidebar: children,
- });
- itemsWithOrder.push({ content: item, order: metaData.order });
+ })
+ itemsWithOrder.push({ content: item, order: metaData.order })
} else {
// 非一级目录,作为可折叠的子目录
const item: ThemeSidebarItem = {
@@ -101,19 +101,19 @@ export function genNotes(lang: string, baseDir = path.resolve(__dirname, '../../
// 前面不能加斜杠,必须用相对路径
prefix: `${metaData.baseName}/`,
items: children,
- };
- itemsWithOrder.push({ content: item, order: metaData.order });
+ }
+ itemsWithOrder.push({ content: item, order: metaData.order })
}
} else if (entry.isFile() && entry.name.endsWith('.md') && entry.name.toLowerCase() !== 'readme.md') {
// 普通文件,取完整文件名作为链接
- const item = entry.name;
- itemsWithOrder.push({ content: item, order: metaData.order });
+ const item = entry.name
+ itemsWithOrder.push({ content: item, order: metaData.order })
}
}
// 当前dir的内容读取完毕,进行排序并返回,返回时丢弃order
- itemsWithOrder.sort((a, b) => a.order - b.order);
- return itemsWithOrder.map((i) => i.content);
+ itemsWithOrder.sort((a, b) => a.order - b.order)
+ return itemsWithOrder.map((i) => i.content)
}
// 递归起点,只有这里是一级目录,isRoot传true
- return getItems(langDir, true);
+ return getItems(langDir, true)
}
diff --git a/docs/.vuepress/notes/index.ts b/docs/.vuepress/notes/index.ts
index 8dcb5dcb88..8a1e4ae4ff 100644
--- a/docs/.vuepress/notes/index.ts
+++ b/docs/.vuepress/notes/index.ts
@@ -1,5 +1,5 @@
-export * from './zh-cn';
-export * from './zh-tw';
-export * from './en-us';
-export * from './ja-jp';
-export * from './ko-kr';
+export * from './zh-cn'
+export * from './zh-tw'
+export * from './en-us'
+export * from './ja-jp'
+export * from './ko-kr'
diff --git a/docs/.vuepress/notes/ja-jp.ts b/docs/.vuepress/notes/ja-jp.ts
index 11bb445120..9a76ea9b07 100644
--- a/docs/.vuepress/notes/ja-jp.ts
+++ b/docs/.vuepress/notes/ja-jp.ts
@@ -1,8 +1,8 @@
-import { defineNotesConfig } from 'vuepress-theme-plume';
-import { genNotes } from './genSidebar';
+import { defineNotesConfig } from 'vuepress-theme-plume'
+import { genNotes } from './genSidebar'
export const jajpNotes = defineNotesConfig({
dir: 'ja-jp',
link: '/ja-jp/',
notes: genNotes('ja-jp'),
-});
+})
diff --git a/docs/.vuepress/notes/ko-kr.ts b/docs/.vuepress/notes/ko-kr.ts
index eeb899e76b..171174f7eb 100644
--- a/docs/.vuepress/notes/ko-kr.ts
+++ b/docs/.vuepress/notes/ko-kr.ts
@@ -1,8 +1,8 @@
-import { defineNotesConfig } from 'vuepress-theme-plume';
-import { genNotes } from './genSidebar';
+import { defineNotesConfig } from 'vuepress-theme-plume'
+import { genNotes } from './genSidebar'
export const kokrNotes = defineNotesConfig({
dir: 'ko-kr',
link: '/ko-kr/',
notes: genNotes('ko-kr'),
-});
+})
diff --git a/docs/.vuepress/notes/zh-cn.ts b/docs/.vuepress/notes/zh-cn.ts
index d3a82c30f9..af9326741b 100644
--- a/docs/.vuepress/notes/zh-cn.ts
+++ b/docs/.vuepress/notes/zh-cn.ts
@@ -1,8 +1,8 @@
-import { defineNotesConfig } from 'vuepress-theme-plume';
-import { genNotes } from './genSidebar';
+import { defineNotesConfig } from 'vuepress-theme-plume'
+import { genNotes } from './genSidebar'
export const zhcnNotes = defineNotesConfig({
dir: 'zh-cn',
link: '/zh-cn/',
notes: genNotes('zh-cn'),
-});
+})
diff --git a/docs/.vuepress/notes/zh-tw.ts b/docs/.vuepress/notes/zh-tw.ts
index da21b0f7ea..fb8e94d5a4 100644
--- a/docs/.vuepress/notes/zh-tw.ts
+++ b/docs/.vuepress/notes/zh-tw.ts
@@ -1,8 +1,8 @@
-import { defineNotesConfig } from 'vuepress-theme-plume';
-import { genNotes } from './genSidebar';
+import { defineNotesConfig } from 'vuepress-theme-plume'
+import { genNotes } from './genSidebar'
export const zhtwNotes = defineNotesConfig({
dir: 'zh-tw',
link: '/zh-tw/',
notes: genNotes('zh-tw'),
-});
+})
diff --git a/docs/.vuepress/plugins/asciiArt.mts b/docs/.vuepress/plugins/asciiArt.mts
new file mode 100644
index 0000000000..cf601f493d
--- /dev/null
+++ b/docs/.vuepress/plugins/asciiArt.mts
@@ -0,0 +1,52 @@
+const modules = import.meta.glob('../../asciiArts/*.txt', { query: '?raw', import: 'default', eager: true })
+
+const asciiArts: Record = {}
+for (const path in modules) {
+ const name = path
+ .split('/')
+ .pop()
+ ?.replace(/\.txt$/, '')!
+ asciiArts[name] = modules[path]
+}
+
+export type ThemeType = 'auto' | 'disable' | string
+export type AsciiArtScope = 'web' | 'console'
+
+function pickAsciiArt(arts: Record, artFilter?: (key: string) => boolean): string {
+ const keys = artFilter ? Object.keys(arts).filter(artFilter) : Object.keys(arts)
+
+ if (keys.length === 0) return ''
+ if (keys.length === 1) return arts[keys[0]]
+
+ const randomKey = keys[Math.floor(Math.random() * keys.length)]
+ return arts[randomKey]
+}
+
+export function getAsciiArt(name?: string, theme: ThemeType = 'auto', scope: AsciiArtScope = 'web'): string {
+ let resolvedTheme: ThemeType = theme
+
+ // auto 模式
+ if (theme === 'auto') {
+ let current: string | null = null
+ if (scope === 'web' && typeof document !== 'undefined') {
+ // 浏览器中读取 HTML data-theme
+ current = document?.documentElement?.getAttribute('data-theme')
+ } else if (scope === 'console' && typeof window !== 'undefined' && window.matchMedia) {
+ // fallback: 检查系统首选主题
+ current = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
+ }
+ resolvedTheme = current ? current : 'disable'
+ }
+
+ if (resolvedTheme !== 'disable') {
+ // light/dark/... 模式
+ return name
+ ? pickAsciiArt(asciiArts, (k) => k === name + '.' + resolvedTheme)
+ : pickAsciiArt(asciiArts, (k) => k.endsWith('.' + resolvedTheme))
+ } else {
+ // disable 模式
+ return name
+ ? pickAsciiArt(asciiArts, (k) => k === name || k.startsWith(name + '.'))
+ : pickAsciiArt(asciiArts, () => true)
+ }
+}
diff --git a/docs/.vuepress/plugins/search.ts b/docs/.vuepress/plugins/search.ts
index dd76082c5a..5ff67bf00c 100644
--- a/docs/.vuepress/plugins/search.ts
+++ b/docs/.vuepress/plugins/search.ts
@@ -81,4 +81,4 @@ export default {
},
},
},
-};
+}
diff --git a/docs/.vuepress/plume.config.ts b/docs/.vuepress/plume.config.ts
index d8e55ed58a..1cb200fc10 100644
--- a/docs/.vuepress/plume.config.ts
+++ b/docs/.vuepress/plume.config.ts
@@ -1,6 +1,6 @@
-import { defineThemeConfig } from 'vuepress-theme-plume';
-import { zhcnNavbar, zhtwNavbar, enusNavbar, jajpNavbar, kokrNavbar } from './navbar';
-import { zhcnNotes, zhtwNotes, enusNotes, jajpNotes, kokrNotes } from './notes';
+import { defineThemeConfig } from 'vuepress-theme-plume'
+import { zhcnNavbar, zhtwNavbar, enusNavbar, jajpNavbar, kokrNavbar } from './navbar'
+import { zhcnNotes, zhtwNotes, enusNotes, jajpNotes, kokrNotes } from './notes'
export default defineThemeConfig({
logo: '/images/maa-logo_512x512.png',
@@ -126,4 +126,4 @@ export default defineThemeConfig({
// },
// ],
//},
-});
+})
diff --git a/docs/KeepDrinking.md b/docs/KeepDrinking.md
index 3885fddc23..fd7691fcf6 100644
--- a/docs/KeepDrinking.md
+++ b/docs/KeepDrinking.md
@@ -1,70 +1,14 @@
---
-home: true
-pageInfo: false
-breadcrumb: false
+pageLayout: home
navbar: false
-sidebar: false
-index: false
-lastUpdated: false
-editLink: false
-contributors: false
-prev: false
-next: false
+config:
+ - type: custom
---
- !: .7:~!.
- :. :?55 ?5~::~J?:
- :P5YY?7~: .!JYYJG. 7P! .7Y!.
- ^5JJJY55PPG5!. .?JYYJYG. ~P?. ~YJ: :PY~.
- ^5YYYYYYY5PPPPYJ??7!!~^!?YYYYY5 :5Y. :J5!. :G^
- ~PY5555555PPPGGPPPPPPPPJ5YJYPP???5?57::.. !5J: Y#P:
- ^YPP5JJY5555PPGG55PP555PGPPPGGPPP555555555YYYJJ?77!~^::...~5P^:. P####7
- !GPPJ?JYYYYY5P5PPG57:...:!5GG?~!?JJY55PPPPPPPPPPP555555555YJYPYY57!~^::... .#####!
- .?PY?YYYYYYY5PP5G?..:!??JYYPYY7. .....:^~!?JJYY5PPPPPPPP555555555555YYYJJ?77!!B####P
- .5Y5YYYYYY555PGY.!?JYJJYJ5P:.?5^...:.::^~^^:::... ....::::~!!7?J5P55PPPPPPPP5P55PPGG###P
- .:~?P5555PPPPGY:J77YYJY55Y: ..Y5?Y5PPGGBBBBGGGGP555J!^. ^~...^!77YY5G5::~:.:!5#G
- ^5555PPPG5?.~5JYYYYY7: :~?5PPG5BBBBB########BBB####BGY7~~^:..:: .:^!~^~?Y7~. ~J7Y
- P55PPPGY~...?5?~^:...:75PPGP5PG#####BGBBBBBBBBBB######BGGP5YJ???7!7JY?!!?YYYJYJ^^GJ..
- .!?P5YPB^ ....... :!J5PGB#######BBGY7~!!7?PYJJ7!5GB#######BBGPYYYYYJJYYYYY55GB##5^...
- 75YYPG... .::::JPGB####BGPP55J5?^~~~~~~~~~~!!!?PGGBBBB#####GGBBBBBB##########&G^^~
- Y5YYGY... ..:^7PBB#####GPJ!~~~^~?!~~~~~~~~~~~~!!J7!7?JPG#################&&&~
- .PYY5B!... ..^YBBBB####GPJ~~~~~~~?J!~~~^^~~^^~~^^~!!::^75GB####&&&&&&&&&&&&&#BG5
- ^PYY5G:... .^^PB#B###GP5JJ7~~~~~~~!7?~~~^..^:^~~~!~~~!~^~~5JJ555G##&&&&&&BBBGGPB!
- ?5YYPP......:Y######G?!~!!~~~~~~~~~~!7^^^^:^~~~~~~!7~~!~^~~~~~!7?YGB###P77!:JGGGGB:
- 5YYYGJ..... 7#B####GP!^~!~~~~~~^::!~~!~^^~~~~!~~~~~!J!~7!^~~~~~~!?Y5GPPPP5!^PGGGGP
- .7 .PYY5B^..:::^GBB####PP!^7!^^~~~^^:^7~~~!^~~~~~~7~!~~~?5J?J7:~~~~~~~!?YY5YY55PPPGGGP~^:
- ^5 ~PYYPG...:.!PP#####G5J!:?!^^~~~~~~~!~~~~^~~~~~!J7!??!!J!!JY~^~~~~~~~7?Y5YY55PPGGGGGB#P
- ^G J5YYGY ..:!5YB####G5!^~~?!~~~!~~~~~~~~~~~~~~~!!77..~7^7~ .:7^~~~~!!~JGPPGGGBGB#####GY^
- ^&! 5YY5B! ^J5YGB###B5!^~~~?7~~~!7~~^??!~~~!~~~~~~!! :77!.::~!^~~~7!~!Y#########BBP.
- ^~ :PYY5B:.!YYJG#####GG!~~~~7?~~~?J~7?P57~~~!7~~~!~7:..:~5PGBJ~^!^~~!J~~!7P##B###BGGG7
- ^#Y^. ?P5PGGJYYYYPB#####BG!~~~~~J!~!55?7?!~J?!!77!777?::JPBBGP5J~ .!~~7J!~~!7YGG5BBGGGGB:
- ^##BG555YYYY5GBBB#B#####GGJ~~~~^7775?J~!!. .~??J?7??J7..!:7?7YY~7.^!~?J!~~!!7JP55PBGGGGG
- ^#####BBBBB##########B5?!~~~~^~55~.7!~ .:~!7Y?J?!!~. :!~^~~.:^.??!!!7??YP5PPBGGGGY
- ^###################PY7~~!~~~~:?~ ^7:.^?5GBG7?!:. ... .:.:J????JY?5P57^:^75B!
- .G&&###########&&##GYJ?~~7~~~~~:!:.!YBBBGP5J^ :?JJJJJYGPG!. .. .5:
- !G#&&&&&&&&&&&B5?GGGY5?~~~~~~~~~^755^~Y??57~!. :!J55YYY55GGPY .. !.
- .~YBBBB#GYJ?77~7BBP55P7~7!~!77~~~~~~~^^^!~^~! .. ^?PGGGGGGG#BP7 !.
- ^5YY5G^ ..!GP55555?YP5!~~!77!!7?J~. .^:. .. .^5#57GPBBBBBBP. ....:Y~
- J5YYPP:...:7GP55555GP5G#P!~~~~!!!7?!:^:...:^: .^J?5GP:.YPY7JJGB#Y .:~YGB.
- 5YYYGJ:::^YGGY:?P5G#BB##B57!77777777???JJJYY: ..:~!!YP7YYP^ ??7~7?5BBBJ~!5GG5
- :PYY5B!:^JGGPGBJ5G#####PJGPPJ5Y????JJJJJYY5PY?YYY??JJJ?7~!~JBG: !??~!?YBBB#BGGGB7
- !5YYPG5GGGGB###?B###BB?!JG555PPYJ?77JYPP5GP57!J5G5YGGPY?!:~BP~^. .7J?~~?JBBB#5Y5GB:
- Y5YY5Y5P5555^!PJPJ^?GGJYGPPGG!. .!Y55Y5Y: ..:~7J555JPPY!P~.~YJ?~~7JG#BBYYYPG
- ^7?JJYYYY5557:.^^:7PPY55YY5P7 :. !PPPBP^... .J!5B5BB57JYP7?~~!J5B#GYYYGY
- ...^J!~^.^JG55PPPPPGJ... . ~BP55PYJJJ?7~~^?5PGBBBGGPGGJ!^^~JYBBPYY5B!
- ^^^:.:::?. ...:^~~~~^^::~!.:PGGPPPP5555555555555555PPPGP??7?YYBB5YY5B.
- ...::^~!7?JYY5PPPPPPPP55555YYY555555555YYPP
- ...:^~!7??JY555PPPPP55555BJ
- ...:^^~!7?Y^
+# Ciallo~ (∠・ω< )⌒★
+
+
-
- . . . . .
- 7^.::?7:^: :7?:...P:. :~~~7P~~~^. :Y ^~~G!~~. :J?:^.?^^5 !! Y^ :Y.. ~~~^~Y!^~~: :P. :^^^JY .7~!.!~::5.
- .:. ~^ 7? :YJ.77.P:~? Y~~7P~~J: ~7J^~!!P7!!.::JY?J:Y ?^ ^G..5~:P^!J .YJ Y7^Y Y^ :? 5 Y. P
- Y: :JY? .GY^?!.P.~? :!!~?P~~?7 .^? !?!!!7? .7YJ~~ Y ^7.~Y.!7!!!~7: :7!~Y.!!^ 5 ~7^^!G^^::? 5 7~^~?J
- Y^ ^~^.~! 7?!.::.P::: ~!!~?P!!J5. .J JJ!!~7P .57:^P Y: Y^ J.5 !7 PY 7~ :5 ^^ .YP: P :5~5:^^^^.P
- !!~7!^:::!~ ~! Y .~?7 .. .? ?^ .~!J ?7^~5 J::. J.7::^7^~! :5 .!: : :~J ^^!?
- .
-
-
+
+
diff --git a/docs/asciiArts/maa-logo-with-endorsement.txt b/docs/asciiArts/maa-logo-with-endorsement.txt
new file mode 100644
index 0000000000..f5ed10a853
--- /dev/null
+++ b/docs/asciiArts/maa-logo-with-endorsement.txt
@@ -0,0 +1,59 @@
+
+
+ !: .7:~!.
+ :. :?55 ?5~::~J?:
+ :P5YY?7~: .!JYYJG. 7P! .7Y!.
+ ^5JJJY55PPG5!. .?JYYJYG. ~P?. ~YJ: :PY~.
+ ^5YYYYYYY5PPPPYJ??7!!~^!?YYYYY5 :5Y. :J5!. :G^
+ ~PY5555555PPPGGPPPPPPPPJ5YJYPP???5?57::.. !5J: Y#P:
+ ^YPP5JJY5555PPGG55PP555PGPPPGGPPP555555555YYYJJ?77!~^::...~5P^:. P####7
+ !GPPJ?JYYYYY5P5PPG57:...:!5GG?~!?JJY55PPPPPPPPPPP555555555YJYPYY57!~^::... .#####!
+ .?PY?YYYYYYY5PP5G?..:!??JYYPYY7. .....:^~!?JJYY5PPPPPPPP555555555555YYYJJ?77!!B####P
+ .5Y5YYYYYY555PGY.!?JYJJYJ5P:.?5^...:.::^~^^:::... ....::::~!!7?J5P55PPPPPPPP5P55PPGG###P
+ .:~?P5555PPPPGY:J77YYJY55Y: ..Y5?Y5PPGGBBBBGGGGP555J!^. ^~...^!77YY5G5::~:.:!5#G
+ ^5555PPPG5?.~5JYYYYY7: :~?5PPG5BBBBB########BBB####BGY7~~^:..:: .:^!~^~?Y7~. ~J7Y
+ P55PPPGY~...?5?~^:...:75PPGP5PG#####BGBBBBBBBBBB######BGGP5YJ???7!7JY?!!?YYYJYJ^^GJ..
+ .!?P5YPB^ ....... :!J5PGB#######BBGY7~!!7?PYJJ7!5GB#######BBGPYYYYYJJYYYYY55GB##5^...
+ 75YYPG... .::::JPGB####BGPP55J5?^~~~~~~~~~~!!!?PGGBBBB#####GGBBBBBB##########&G^^~
+ Y5YYGY... ..:^7PBB#####GPJ!~~~^~?!~~~~~~~~~~~~!!J7!7?JPG#################&&&~
+ .PYY5B!... ..^YBBBB####GPJ~~~~~~~?J!~~~^^~~^^~~^^~!!::^75GB####&&&&&&&&&&&&&#BG5
+ ^PYY5G:... .^^PB#B###GP5JJ7~~~~~~~!7?~~~^..^:^~~~!~~~!~^~~5JJ555G##&&&&&&BBBGGPB!
+ ?5YYPP......:Y######G?!~!!~~~~~~~~~~!7^^^^:^~~~~~~!7~~!~^~~~~~!7?YGB###P77!:JGGGGB:
+ 5YYYGJ..... 7#B####GP!^~!~~~~~~^::!~~!~^^~~~~!~~~~~!J!~7!^~~~~~~!?Y5GPPPP5!^PGGGGP
+ .7 .PYY5B^..:::^GBB####PP!^7!^^~~~^^:^7~~~!^~~~~~~7~!~~~?5J?J7:~~~~~~~!?YY5YY55PPPGGGP~^:
+ ^5 ~PYYPG...:.!PP#####G5J!:?!^^~~~~~~~!~~~~^~~~~~!J7!??!!J!!JY~^~~~~~~~7?Y5YY55PPGGGGGB#P
+ ^G J5YYGY ..:!5YB####G5!^~~?!~~~!~~~~~~~~~~~~~~~!!77..~7^7~ .:7^~~~~!!~JGPPGGGBGB#####GY^
+ ^&! 5YY5B! ^J5YGB###B5!^~~~?7~~~!7~~^??!~~~!~~~~~~!! :77!.::~!^~~~7!~!Y#########BBP.
+ ^~ :PYY5B:.!YYJG#####GG!~~~~7?~~~?J~7?P57~~~!7~~~!~7:..:~5PGBJ~^!^~~!J~~!7P##B###BGGG7
+ ^#Y^. ?P5PGGJYYYYPB#####BG!~~~~~J!~!55?7?!~J?!!77!777?::JPBBGP5J~ .!~~7J!~~!7YGG5BBGGGGB:
+ ^##BG555YYYY5GBBB#B#####GGJ~~~~^7775?J~!!. .~??J?7??J7..!:7?7YY~7.^!~?J!~~!!7JP55PBGGGGG
+ ^#####BBBBB##########B5?!~~~~^~55~.7!~ .:~!7Y?J?!!~. :!~^~~.:^.??!!!7??YP5PPBGGGGY
+ ^###################PY7~~!~~~~:?~ ^7:.^?5GBG7?!:. ... .:.:J????JY?5P57^:^75B!
+ .G&&###########&&##GYJ?~~7~~~~~:!:.!YBBBGP5J^ :?JJJJJYGPG!. .. .5:
+ !G#&&&&&&&&&&&B5?GGGY5?~~~~~~~~~^755^~Y??57~!. :!J55YYY55GGPY .. !.
+ .~YBBBB#GYJ?77~7BBP55P7~7!~!77~~~~~~~^^^!~^~! .. ^?PGGGGGGG#BP7 !.
+ ^5YY5G^ ..!GP55555?YP5!~~!77!!7?J~. .^:. .. .^5#57GPBBBBBBP. ....:Y~
+ J5YYPP:...:7GP55555GP5G#P!~~~~!!!7?!:^:...:^: .^J?5GP:.YPY7JJGB#Y .:~YGB.
+ 5YYYGJ:::^YGGY:?P5G#BB##B57!77777777???JJJYY: ..:~!!YP7YYP^ ??7~7?5BBBJ~!5GG5
+ :PYY5B!:^JGGPGBJ5G#####PJGPPJ5Y????JJJJJYY5PY?YYY??JJJ?7~!~JBG: !??~!?YBBB#BGGGB7
+ !5YYPG5GGGGB###?B###BB?!JG555PPYJ?77JYPP5GP57!J5G5YGGPY?!:~BP~^. .7J?~~?JBBB#5Y5GB:
+ Y5YY5Y5P5555^!PJPJ^?GGJYGPPGG!. .!Y55Y5Y: ..:~7J555JPPY!P~.~YJ?~~7JG#BBYYYPG
+ ^7?JJYYYY5557:.^^:7PPY55YY5P7 :. !PPPBP^... .J!5B5BB57JYP7?~~!J5B#GYYYGY
+ ...^J!~^.^JG55PPPPPGJ... . ~BP55PYJJJ?7~~^?5PGBBBGGPGGJ!^^~JYBBPYY5B!
+ ^^^:.:::?. ...:^~~~~^^::~!.:PGGPPPP5555555555555555PPPGP??7?YYBB5YY5B.
+ ...::^~!7?JYY5PPPPPPPP55555YYY555555555YYPP
+ ...:^~!7??JY555PPPPP55555BJ
+ ...:^^~!7?Y^
+
+
+
+ . . . . .
+ 7^.::?7:^: :7?:...P:. :~~~7P~~~^. :Y ^~~G!~~. :J?:^.?^^5 !! Y^ :Y.. ~~~^~Y!^~~: :P. :^^^JY .7~!.!~::5.
+ .:. ~^ 7? :YJ.77.P:~? Y~~7P~~J: ~7J^~!!P7!!.::JY?J:Y ?^ ^G..5~:P^!J .YJ Y7^Y Y^ :? 5 Y. P
+ Y: :JY? .GY^?!.P.~? :!!~?P~~?7 .^? !?!!!7? .7YJ~~ Y ^7.~Y.!7!!!~7: :7!~Y.!!^ 5 ~7^^!G^^::? 5 7~^~?J
+ Y^ ^~^.~! 7?!.::.P::: ~!!~?P!!J5. .J JJ!!~7P .57:^P Y: Y^ J.5 !7 PY 7~ :5 ^^ .YP: P :5~5:^^^^.P
+ !!~7!^:::!~ ~! Y .~?7 .. .? ?^ .~!J ?7^~5 J::. J.7::^7^~! :5 .!: : :~J ^^!?
+ .
+
+
+
diff --git a/docs/asciiArts/maa-logo.dark.txt b/docs/asciiArts/maa-logo.dark.txt
new file mode 100644
index 0000000000..d46d2e69f5
--- /dev/null
+++ b/docs/asciiArts/maa-logo.dark.txt
@@ -0,0 +1,120 @@
+
+
+ .. ..cdd;.
+ ':'. ..cNNN0.'.
+ .,lc;. .',..k00l..',.
+ ,cllcc. .',. .,,.
+ ',.. ..:olllcc'. ..,, .,'.
+ ;::;;,,'.... .'coollllcc'. .',. .,'.
+ .,;;;;;;;;:;,,,.. .:xolcllllcc'. ..,, .,'.
+ .,:lodxxxoccc:::;;,''. 'cxllccllllcc'. .';' ,,'. .
+ .,:ooolllccccccc:::::;;,'. 'oxllccclllccc'. ..,,. .,'. .....
+ .:ccccccccccccccc::::::;,'. .lklccccccllccc'. .';' ','. .......
+ .;cccccccccccccccc:::::::,'........ 'Oolcccccllcccc' ..,;. ,,'. ........
+ .;ccccccccccccccccc::::::;,,:::;;;,,'''...... cOllcccccllcccc. .';,. .,,'. .........
+ .:ccccccccccccccccc:::::::;,:cccccccccc:::;;;,,cklccccccllccc:. .:l:' ,,'. ..........
+ ,cccccccccccccccccc::::::::,;;;;:::ccccccccccc,klcccccclccc:'........'kKXXl. ,;'. ..........
+ .;ccccccc:;;,,;,;::;;;:::::',;,,,,,,,,,,;:cccc'olcc,ccllccc'':c:::;;,,,,;::..... .,,'. ..........
+ .';,;::;;;coolc::::::;;;;;;;;,,:::cccccc::;;;;;,':lc,ccccc:',ccccccccccccccc:::;;;,,,'...... .,,'. ...........
+ .,:c:;;,,lxdlcccccc::::::::;;,,';::::::::::cccc:;,';::c::;,';cccccccccccccccccccccccccccccc::;;;,,'''..... .,,'.... ...........
+ .;:::::,;xxlccccccccccc:::::::;';::::::::;,,;,',,:c:,,,,,,,,;;;;;;::::::ccccccccccccccccccccccccccccccc::;;;,,'''..... ..:dko', ...........
+ .::::::,cxdlccccccccccccc::::::,',;::::;,:okKXK0Okoc:;:;,'',,''',,,,,;;;;;;;;;;;:::::::ccccccccccccccccccccccccccccc:::;;;,,,'...'odxkc'. ............
+ '::::::;:kolllcccccccccccc:::::::;;,,:;,ckNNNNNNNNNNNXkl,;;,l00Okxdol::;,'''',,,,;;;;;;;;;;;;:::::cccccccccccccccccccccccccccccccc:::;;,,,''...... ............
+ ,:::::;,xdlllccccccccccccc:::::::::;',:ONNNNNNNNNNNKOkdo:',:,:ONWWWWWWNNXKOkkdol:;;,,''',,,,;;;;;;;;;;;::::::ccccccccccccccccccccccccccccccccc::;;;,,''...... ............
+ .;:::,oxlllcccccccccccccc:::::::::;'xNNNNNNNX0xol:;,,;::::,;;;dNWWNNNNWWWNNNNNWX0XNX00kxdolc:;,,'',,,,;;;;;;;;;;;;::::cccccccccccccccccccccccccccccccccc::;;;,,,'...... ..'.........
+ .;;cxlccccccccccccccccc:::::::::'dNNNNN0xl:;:cclllccc:c:'kc,;c0NNXXNNNNNNNNNWWNNWWMMMMMMMMWWNXKOxoolclc::;,,',,,,,;;;;;;;;::::::::ccccccccccccccccccccccccccccccc:::;;;,,,,....,.........
+ .,dccccccccccccccccccc::::::::,:XNNXxl;:cllllllccccccc;,NNo,:,x00KKKXXNNNNNNWWWWWWNWWMMMWWWWWWWWNNNXNNNNNX0xdolcc:;,,''',,,,;;;;;;;;;;;;::::::cccccccccccccccccccccccccccccc'.:.........
+ 'llcccccccccccccccccc::::::::,'ONN0;,lollooollccclllcc'lNNNo,:,k000KXKKKXNNNNNNNXK00KKKXXXNNNNWWNNNNNNWWNXK0O000KKKKK00Oxdolc:;;,''',,,;;;;;;;;;;;;;::::ccccccccccccc:,;cccc',l'........
+ 'clccccccccccccccccc::::::::;,,x0Xk'cxxoollclllllllllc,;XNNNNd,;,OKKKKK00O00OkxdollccccllllllodxkO0XNNNWXKK0KXNNNWNNNNWMMNNNWNXWNKOOkxdl:;;::;,,,,,,,,;;;;;;;;;;;:::;,coc;,;:.,c,........
+ .;:cccccccccccccc::::::::;,;,o0Ox,dkxxdl::clllllllc:';KNNNNNNd,;:KK0Oxol:;''',,,,;;;;;;;:;;;;;;;,;;:cldk0KXNWWNNNNNNNWMMWNNNNNWWNXNNNNXxoxKXXXKOxool:;;;,''',,,,,;,,kKOOOd:dkxl;........
+ ';;::cccccc::::::::;,,;;;OOk'lkxxdc;:lllllllc:;'c0NNNNNNNN::,oc:,,;;;;:::::;;,,,,,',,;;;,,,,,''''''..':ldkKNNNNNNWMWNNNNXXXNNNNNNXKdkKKNNNNNX0OOxxxOkocc:::;;''0KOOOkd0NWWWN0d:.....
+ .',;::::::;;;;;,,;;:;'kK0o,xoooc:lllllllcc:,,kNNNNNXO0KOc,:';:::::::;,,,,''''''...'',,,;;;:ccccc:;,.....';okXNNNNNNNNXKKKKXNNNXXkdkdKNNNNNK0KOxkkxddodxdool'ONOOOOkKNWWNNNNNNx;...
+ .,cc::::::;;;;;;;:::;;xNNK,ollclclllllcc:,';dXNNXXNNXx:,,;':,,;;;;,;,,,;;;,,''..'''....''''''',,,,;;;,''''''.,:lx0XNNNKKKKKKXNNXXOkk0XNNNNXKXXKOOkxxxxxkdddc'oKKOOKXNNNNNNNNXkkKd'.
+ ':ccccc::::::::::::,ckKNNd,ollllllllc;,';oONNNNNkxOd;,;:::';:':l;.;,'''''''.'................''............'''','',:lodxO0KKKNXXXKx0XXNNNNNNNKKKOxxddxdxxdxdo,:cd0XNNNNNNNNXo,cdO0'
+ .;cccc:::::::::::;;,xXOONN;;lllllc:;,,:d0KXNNNNNNO:,,:cc::;d;;;lx:.'''''''............................''''''...',;:clcc:;,;:cldkOKKKXXXXNNNNNKOOxxdddk000XOxddl.,,,:d0XNNNNKl'.'cdXd
+ 'ccc:::::::::;;,;cdKNNK0XX.:c:;;cldxOXNWNKKXXNNkc,;:ccc:;,,kxool:'.............,,,'.....''''''.''',''.....'''....''',;:clollcc:;;::cclodxkO00kkdllok0XXKOxo;,;;clolc;,ckXNXc'.':oKXX
+ .,cc:::;;;,,,',';XXXXNNNNNX.,':o0XNNNNXXWNKKNNO:,:cccc:,,;:,.'''.''......'''',.:c;',;;;;,,,,,'',;:;,';.''.......'..''''''',;:clooooollc::;;,,,,,,'',;::;,,;:clooooooool,.:kXx:,ldXXXN
+ .;:;,';;;::::;;'oNXNXNNKKNNOdONNNNXNNNK0KKXOKo,:cccc:,'','''...'......''''';:'coodoc;,;;:clcc::;,';cod;.;,..........'''''''''',;:clooooooooooolllllllllllooooooooooolc;'...oX0dxKXNWK
+ .'cccccc:;;.kNNNNNNK0XNNNNKXNXXXNNXKkkOo;;ccc:,'.'''''''......'''''',;:;;oxxkkkkkkxdol'.;::clodxkkx:'c:'...........'''''''''''';::ccllooooooooooooooooooolllcc:,'.......cXXXXNN0O
+ .,cccccc:;,.KNNNNNNNXNNNXKOOXX0O0NNXkx:,:cc:,.............'''''''',:c;,lxkkkkkkkkkkkkkocdxxddoodxkkkc'cc,'...'........'''''....';::;;:clllllllllllccc::;;,''.............;0KXX0OO
+ .;cccccc;;,'XXXNNNNNNNNNNKOOKK0kkKNKd,;:::,...........';;,,,,;;;:::;',dkkkkkkkkkkkkkkkkkkkkkkxdodxkkkl':l;''...'.........'......,;::;'''''''''''''''......................c0OOOOO
+ .:cccccc;;';NXXXXNNNNNNNNNKO000OOK0l':c:,.......'...';.'''',;;;;::cl',kkkkkkkkkkkkkkkkkkkkkkkkkxoodxkko;,ccc:;;,,,;;;'..........';:,.......................................k0OOOo
+ .ccccccc;;.dXXKXXXNNNNNNNXK000OOKk;,::;'.....''....'::.clooooddxxxkkxxkkkkkkkkkkkkkkkkkkkkkkkkkkkdoloxkk,.;;;;;;;;,,,;'...........'........................................'kOkc
+ 'ccccccc;;.KXKKKXXNNNNNXXKKK0OOkx,;::'..''..'.....''l,,oodxxkkkkkkkkxldkkkkkkkkkkkkkkkkkkkkkkkkkkkkxolodllxxdolcccll'c:'....................................................ok,
+ .,cccccc:;,'XXKKKXXNNNNXKXKK0OOkd';:;..'''.'......'',o'cdxkkkkkkkkkkkxccokkkkkkkkkkkkkkkkkkkkkkkkkkkkkxolokkkkkkkxdoo:'c''...................................................,
+ .:cccccc;;,:XXKKXXXNNNXXXKKKOOkx,;;'.'''''.......'',c:,xkkkkkkkkkkkkkklllldkkkkkkkkkkkkkkkkkkkkkkkkkk0KOxdldkkKK0kkxdo:,c,''..............................................',,.
+ .ccccccc;;'oXXXKXXXNNNNXXKX0Okd';;..''''''....'''',c:,xkkkkkkkkkkkkkkkollllxkkkkkkkkkkkkkkkkkkkkkkkOkkOOkkxooxO0KKOkkxd:'c:,'...........................................',;;,.
+ 'cccccc:;;.xXXXXXXXNNNNXKXN0Od';,.'''''''......'',c:'lxxkkkkkkkkkkkkkkxooollkkkkkkkkOK0kkkkOK0kkkkkkkkkkkkkkdlxkOKK0kkkxc';l:,'''..'..................................',;;;;'.
+ .,cccccc:;,.0XXXXXXXNNNNXKKK0x,',.'''''''....''',:c,:,'okkkkkkkkkkkkkkkxoooolxOkkkkkkKXXKOkkOXX0kkkkkkxxkkkkkkxodkkO0kkkkko'';cc:;,,,,;,'............................',;;;;;;.
+ .;cccccc:;,'XNXXXXXXNNNXOk00k,'',.''''.....,;:c::;:oxdoxkkkkkkkkkkkkkkkxoooool0kkkkkkkKXXKOkkO0KkkkkkkkddxkkkkkxddkkkOkkkkl.:occ:::c::;;,.'......................'.',;;;;;;;,.
+ .:cccccc;;'cNNXXXXXXNNNXxxkO:..;,.'......':c:;,;lxkxodxkkkkkkkkkkkkkkkkkdxxdoodKkkkk0kkKXXXOkkkkkkkkkkkkxodkkkkkkddkOkkkkkkdxkkkkxdlloolc,',.................,:cdx.,;;;;;;;;,.
+ .ccccccc;;'xXNXXXKXXNNXXOxkx..,,.....'....,:ccokkkkooxkkkkkkkkkkkkkkkkkkxkkkxooOOk0OKkkOKXXOkkkkkkkkkkkkkxodxkkkkxddK0kkkkkkkkkkkkkxoloool;',''........,:ldoodxOOx.,;;;;;;;;'.
+ 'ccccccc;;.KXXXXKKKXNNXXXK0,..,...'''...'',oodkkkkxodkkkkkkkkkkkkkkkkkkkkkkkkxod0kOKOkkkkO0kkkkkkkkkkkkkkkxooxkkkkxddO0Okkkkkkkkkkkkkdooool:',,''....,cxKX0ddk0K0l.;;;;;;;;;'.
+ .,cccccc:;,'XXXXKKKKXXNXXXNl.''...'''....,;'odkkkkkkxkkkkkkkkkkkkkkkkOkkxkkkkkkdoOOk00kkkkkkkkkkkkkkkkkkkkkkxlldxkkkdoodKOkkkkkkkkkkkkkxdooool;,:;,,'.'..,codd0X0Oc';;;;;;;;;.
+ .:cccccc;;,:XXXXKKKKKXNNNNO'.'.''.'''...',:'odkkkkkokkkkkkkkkkkkkkkkkKKkdxkkkkkkoxKkkKkkkkkkkkkkxxkkkkkkkkkkkxlldxkkxdooOKkkkkkkkkkkkkkkkxlllll:,:cc:;;,,'..:xXXO0,,;;;;;;;;;.
+ .ccccccc;;'oXXXXKKKKKXNNNO,.,''''..'....',c'oxkkkkdlkkkkkkkkkkkkkk0kkXXkddkkkkkkddKOk0kkkkkkkkkkklxkkkkkkkkkkkdclodxkdoooO0kkkkkkkkkkkkkkkkoccll;.;;;;;;:::;;;:lox.,;;;;;;;;,.
+ 'cccccc:;;.kXXXXKKKKKKXNNl.;'''''.......':c'dkkkkklokkkkkkkkkkkkk0XOOXKkddkkkkkkxoO0kkkkkkkkkkkkkdlkkkkkkkkkkkkl:cooodoool00kkkkkkkkkkkkkkkkdc:lc:llcccccccccc::;,''',,,,;;;'.
+.. .,cccccc:;,.KNXXKKKKKkk0NX;';'''''.....'''l:;kkkkkkcdkkkOkkkkkkkkkOKkkK0kdokkkkkkkokKkkkkkkkkkkkkkk:kkkkkkkkkkkkx;:clooooollX0kkkkkkkkkkkxkkkkkoccllllcccccccccccccc:;;,,''''.....
+.. .;cccccc:;,.NXXKKKKK0kxxXd.c''''''....''',o;,:ok0Ok:dkk0Xkkkkkkkkkkkkkkkkoxkkkkkkkxk0kkkkkkkkkkkkkkcx0xodkkkkkkkkl;oc:ooool:OXkkkkkkkkkkkxkkkkkkxol:::::cccccc::::::::::::::;;;,,,,,,
+.. .:cccccc;;':NNXKKKKKK0kxd'::'''''......''cl'c;lkK0x:dkkOOkkkxxkkkkkkkkkkklxkkkkkkkkkO0kkkkkkkkkkkkkdckxo;:cllloooo;ldoc:cllllX0kkkkkkkkkkkkkkkkkkkkxoc;,ccccc::::::::::::::::::::;;;;
+.. .ccccccc;;'xNNXKKKKKKKKx',l,''''......'':l':kkkk0OxcdkkkkkkkkkkkkkkkkkkkkokkkkkkkkkkkKkkkkkkkkkkkdoc;lodxx:lkkkkkklc000d::llckXkkkkkkkkkkkkkkdxdlcc;;;::ccccc::::;;;,',,,,,,,,,'''.''
+.. 'ccccccc;;.KNNNKKKKKKK0;'cc''''......',c:':kkkkkkkdcdkkkkkkkkxxkkkkkkkkkkdkkkkkkkkkkk0kkkkkkkkkocclo:x0KXKOcckkkkkx;00XXKxc::cKOkkkkkkkkkkdkkkkxcllcclccccc::::;;;;;;'...............
+... .,cccccc:;;,WWNXKKKKKKO;'co;'''......';;,'lkkkkkkkkdcdxkkkkkkkxdkkkkkkkkkkxkkkkkkkkkkkOkkkkkkkkkdxkkklc0KXNXKockkkkk:x0XXXXXOx:xKkkkkkkkkkkxxkkxxl,;::cc::,;;;;;;;;;,'..............
+... .:cccccc;;,:WWNXKKKKOk;'col''''......,'':okkkkkkkkkdldxkkkkkkkkokkkkkkkkkxdkkkkkkkkkkkkkkkkkkkkkkkkkkd;0XNNNNNo:kkkkllKNNNNNNNkcXkkkkkkkkkkdokkxxd:'..',;;'.......................
+... .ccccccc;;'oWWNXKKKKk,'lol;''''.......;loxkkkkkkkkkdldxkkkkkkkkokkkkkkkkkdokkkkkkkkkkkxkkkkkkkkkkkkkkx,0NNNNNNXlckkkl:XNNNNNNNX;KOkkkkkkkkkdokkkxdo;''''....'.................
+.... .ccccccc;;.kWWNXKKKk,,loo:'''''.....,.looxkkkkkkkkkdlddkkkkkkkkoxkkkkkkkxcodkkkkkkkkkkdxkkkkkkkkkkkkkx,KNNNNNNNXcokkl:NNNNNNNNNcOOkkkkkkkkkookkkkxdo,.'.................'''''.
+.... ,ccccccc;;.KWNNNX0l';lol:'''''......:',lokkkkkkkkkkdcddkkkkkkkklokkkkkkkx;cclokkkkkkkkddkkxxkkxkkkkkkdcNNNNNNNNN0;dkccKkxddoooo:x0kkkkkkkkdcdkkkxxxdc'................';;;;;'
+..... ;cccccc:;,'NNNNNk,,cooll;'''........,c.cokkkkkkkkkkx:odkkkkkkkxclkkkkkkdc;:clkkkkkkkkkddxxxxkxxxxxkkkcKNNNNXKNNNNx:o;,'''''';cooo0kkkkkkkkccxkkxxxddo,'...'.....'....';;;;;;'
+...... .:cccccc;;':WNNKc':loollc,''.........'c',okkkkkkkkkkk:odxkkkkkkd;cxkkkdc;;,:oodkkkkkkkxdoxxxxxxxxxxxxdcNNN0kOXN0ko;,c,''''cx0XNNOdOkkkkkkkd:lkkkxxxxdoc'............',;;;;;;;.
+.....'.. .cccccc:;;'xKxl;:loollc:''............,;.okkkkkkkkkk0:lddkkkkkxo,:xko::ld,xc:lodkkkkxxxxlxxxxxxxxxxxxlO0OO0XOd:','''',,;;;dNWWNNOdOkkkkkkxcldkkkxxxxdol,'..':,.',,.,;;;;;;;;,.
+......''. .cccccc:;,.;,;cooolllc;:'.............':.okkkkkkkkkk0clddkkkkkdc,,o::okko:00o:cooxkxxxxdcOxxxdxddddd:k0dXXo;'''''',,;:::clcOWWWNkxkkkkkkxcloxkkkxxxddoo;',';do',;;.;;;;;;;;;,.
+.......,,'.. 'c::;;,'.';:lolllccc::c,.,,........'..'c.dkkkkkkkkkk0dcddxkkkxo;l,;lxkkk:dK00x::lodxxxdocKdddddddddccNKK0,''''',;::::::ldxdoWWWNdkkkkkkdccodkkkxxxxddoo:':;;;c,';,.;;;;;;;;;'
+........';;;;,'''''',,;;;:lolllc:;,,::,..;:'...........,l.dkkkkkkkkkkO0coddkkdo:ll,dkkkkd:KXXXK0dcclodddo:0ddooooooclXNNNO.';o:;::cl::::lxxxdXWWWlOkkkkdllodkkkkxxxxddooc'::::;,','';;;;;;;;;.
+..........';clllllllooooolllc:;,,''''.................'l:.':kkkkkkkkkkXdoodxdoc,cd'kkkkx;kXNNNNXX0dcclooocOoooooool,dNWWWxo0NWXclodxl;:;:xxxxONWXlkkkdc:looxkxkxxxxxddooc'::::::;,.,;;;;;;;;,.
+............',:cllooolllc:;,,''''''...................:o';;;kkkkkkkkkk00oooolc,ckO,kkkkcdXNNNNNNNXKOo:cllcdooooooloo:ckNWNWWWWW0dxxxxlccdkxxdxNNlooxkko,loxxxxxxxxdddoooc'::::::::.,;;;;;;;;,.
+...............''',,,,,'''''''.......................,c,,dxxkkkkkkkkkkO0clll:,l00x:kkkooXNNNNNXKOkkkxxdc;;ooooo:lddoolccdNWWWWWW0xxxxxxKXOOOcONX;cxKKKd;oxxxxxxxxddooollc'c::::::;.;;;;;;;;;'.
+....................'''''..........................',;':dxxkkkkkkkkkkkkKccc;;o0XXdlkkooXNNNNNK0KXXNX0OKXx;dool:;clloodxk0NWWWWWWNKxdxkO0OOxoxNNNKX0XXNo:ddddxxddddoooooo:,c::::;;'.;;;;;;;;;'
+..................................................''''cxxxxkkkkkkkkkkkkKx:;,o0XXNlxkcxNNNNNNNNXOxl:,'';xcldo:cOKKXNNWWWWWWWWWWWWWWXxddxdoldKNNN0KNo0XN:odddddddooooooooo;;c::;::c,',,,;;;;;;.
+..................................................';cloxxxkkxxkkkkkkkkkOKc:d0KXXXcxckNNNNNXOdc,''''''',,,oclkNWWWWWWWWWWWWWWWWWWWWWWNK0O0XNNNNNklXKKXO;oooooooooollooooo,:cc:,:lodkxdl,,;;;;.
+.................................................'loollxxxxkdokkkkkkkkkkK0lkKNNNk;l0NNNKxl;'''''''',d0Nxcd0NWWWWWWWWWWWWNNNNWWWWWWWWWNNNNNNNNNXXOXXXX:loollllolllll:cool,cc;:d0NWNNNNNKx:,;,.
+................................................;.loollxxxxkdoxkkkkkkkkkOXO:ONNNKxXNXkc'''''''',;::::NWNWWWWWWWWWWNNNNNNNNNNNWWWWWWNNNNNNNNNNNXXXXXXdloollllllllllc',lo,;:;dXWNWNNNNNNNNXo,'
+ ..............................................'c.coollxxxxxxodkkkkkkkkkkOKkc0NNNNNx;'''''',;:::::cccxWWWWWWWWWWWNNNNNNNNNNNNNNWWWWNNNNNNNNNNNNNNNNxllllllllllllll:,,,;':;0WWWNNNNXNNNNNNNl.
+ ..........................................'.',c.cooclxxxxxxxdkkkkkkkkkkkOKx:ONNO:''''',;::::::coddxcKWWWWWWWWWNNNNNNNNNNNNNNWWWWNNNNNNNNNNNNNNNXxclcllcccclllllc,;:,',,OWWWWWNN0xddKNNNNk.
+ ......................................'ck;',,;'llo;lxxkkxxkxkkkkkkkkkkkkk0kcdd'',:dd;::ccc::::oxxxdxWWWWWWWWNNNNNNNNNNNNNNWWWWWNNNNNNNNNNNNN0xlccccccccclllllc,;c;;;,oWWWWWNNNNNNKXNNNNx.
+ ..................................,lkO:',,:.,lll,lxxkkkkkkkkkkkkkkkkkkkkOO;;,d0NWWo:codxo:;;oxxxxdNWWWWWWWNNNNNNNNNNNNWWWWWWWWNNNNNNNNNNOl;::::ccccccccclc:;c:'ll:'KWWWWNNNNNNNNNNNNNk.
+ .............................,cdkkk:.,,:',':ll,lxkkkkokkkdoxkkkkkkkkkkkd:o:dXWWWKcoxxxxdoxK0OOk:NWWWWWWWWNNNNNNNNWWWWWWWWWWWWWWWWWWNxc:cc:::::cccccc:;,,;,'..;l;,NWWWWNNNNNNNNNNNNNX,
+ ...................',;cldkkkkx,',,,,:ccccl,oxkkkxdkkkkdlldkkkkkkkkkxxOkdloOXWXkxxxxxkKKOOOolNWWWWWWWWWNNNNWWWWWWWWWWWWWWWWWWWWWNdccccc:::::::;;,,,,,;'...'l,:WWWWNNNNNNNNNNNNNNX;
+ .;,,,,,,'''':lxO0KK00kkkkkk;.''';cccccc;;dxxxxodkkkkkkocldkkkkkkkkkkkkOxlcdOX0ddxkOOOOkolXWWWWWWWWWWWWWWWWWWWWNK0WWWWWWWWWWWWWWNOxl,',,,''''',,;cc;'''.:l;;NWWWNNNNNNNNNNNNNNO'
+ .ccccccc;;'c0XNNNNX0Okkkkkx'',;:c::::cc,cxxxxl,:okkkkkkxollodkkkkkkkkkkkkx;;xWXkooddollxXNWWWWWWWWWWWWWWWWWWXkdx0WWWWWWWWWWWWWWWNO:.',,,,',;,''..'''',.;;,,KWWWNNNNNNNNNNNNN0;
+ 'ccccccc;;.d0XNNNNNXK0O0kd'':ccc::::cc:,oddo:,;:;xkkkkkkkxdoloddxxxxdolllokXNWWNN0OkkOXNNNNNNWWNNNWWWWWWWWWWK0NWWWWWWWWWWWWWWWNOl'''.:col,,oc,,,''..':'''''oNWWWNNNNNNXXNN0c,
+ .,cccccc:;,.k0XNNNNNNNNNNO'':::::::::cc;,ll:,,::;,cxxkkkkkkkxxxddolllc:,c0XNNNNXNNKXNNNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWWWWNOl',''''kOO0:',,,,',,''''..''''dNWNNNNNNNXNXO:,.
+ .;cccccc:;,'O0XNNNNNNXKX0,';:::::::cccc:,,,;:cc;,''oxkkkkkkkkkkkkxxddddc;cONNNXlXNOxNNXNNNNNNNNNNNNNNWWWWWWWWWWWWWWWWWWWWWWNOcll',;'.cOX00;.'.,:loolc:;'.'''''kNXkkOOOOOxo;,,.
+ .:cccccc:;':O0XN0KKKK00O;';;;;:::::::cccc;:ccc;'''';dxxxxxxxxkkkxxxxxxxxoc;oOXXxKXXXXXXXXXNXKxKNNNNNNWWWWWWWWWWWWWWWWWWWWXk:':k;c,c''xKX0Kl.:lolxxooooo,''''''kNNXOOkkkc,,;;,.
+ .ccccccc;;'oOO00OO00OOk;';;;,;::;::::ccc;.;c:;''...';dxxxxxxxxxxxxxxxxxxxxdlccloxkO0000Oxdolc;0NNNNNWWWWWWWWWWWWWWWWWN0xdc,.,ko,d;c'oONKKNl,ooolkkooooo;''''''xNNNXK00k;,;;;,.
+ 'ccccccc;;.xkkOOOOO00x,,;;;,lXXXl;::cc:,..','......'':xxxdddddddxxxddddddddxxxdolc::::::clllclWNNNWWWWWWWWWWWWWWWNKkolodc..:kx'ld:,;ONWKXWl;ooookkdoooo:,''''',dXNNNXx;,;;;;'
+ .;cccccc:;;'OOO00000Kx,,;;;;'kNNXx,::c;'............';,cdddddooddddddodddddddddddooooollllllc;KWWWWWWWWWWWWWWWN0kdlloxOd'.'okk:;:oc.dXNNNNNl:ooookkxoooo:,''''''':oxxl;,;;;;;.
+ .:cccccc;;,;OO00000Ol';;;;;;,:kxoc;c:,............'';;:,cdddloodddoooooooooooooooollllllcll:cKWWWWWWWNNXK0Oxdol:cccc:ldodoxkkd':'l;cXNNNNNXllooodkkkooooc,''''''''.,,,;;;;;;;.
+ .ccccccc;;'cO00KK0o',;;;;;;;;,'o,::;'...........'col.;::,:od::oddddddoooooollllllllllccccc;,clllclcccccool;,;:.',;;clOOdxkkkk,;'',:XNNNNNNKkdooodkkkdoool,'''''''..:;;;;;;;;,.
+ 'ccccccc;;.dOO0Kd;',;;;;;;;,'.'k;:,............,oddc'::::,;lo',:looooooooollllcccccccccc:,;cc:::'.''''',:coxxxxkOOOOkOOdlkkxl';'''0NNNNNNN00oooookkkdoool,'''''''.'c:;;;;;;;'
+ .,ccccccc;,.xkxl;',;;;;;;;,'...'K'.''....''...,cdddd;,:::::;,;':;,,:cllllllllcccccccccc:;;::;,;,..'''''':dl;,;:ldxOOkOO00kKK;';,'.dNNNNNNNNKxoloookkkxoooo,'''''''',ccc;;;;;;'
+ .;cccccc:;;':;'',;;;;;;,,'...'''0,'''......'.'dddddo';:::::cc:;ccc;,'',:::::::ccccc::;,,::,:ldOOdlc:,'''coo;l,,,',:coxOKXNNO;.''.lKxxXNNNNNKooloookkkxoooo;.''''''.;cccc:;;;;.
+ .:cccccc:;;:;.',,,,,''.........'0'..''..',:c.:ddddd;,:::::::llc;;cdkO0KXXKK0koc;;;,';c;',''ockKKKKKK0xoc:;;':'''''',''',,dNNl.;;dNNN,;XNNNX0cdcoookkkkoooo:.''''''.:ccccc:;;,.
+ .ccccccc::ccc;,,,,,;;;;,';;,,,,'0,..',;c:;::.cddddl.;::::::'lc;dKNWWWWWWWWWWWWN0:,;'od:';lll;cKXNNXXXXXK0Odlc;,'''''':,'.':l.'oxNNNd,.ONNNKO:xcoldkkkkoooll'.'''''.ccccccc;;,.
+ 'cccccccccccccccccccccc;ONXKd::;O;:;d0NNX;''',;:::'';;;::;,':lXWWWWWWWWWWWWWWWWWNOc;:,;loc::;'ckKXNNNNNNNNXXKK0kxolc:::;:k;.lo',clc;,;KXKKOd;kclldkkkkddoll,'.'''''cccccc:;;'
+ ,cccccccccccccccccccccc:xWWNNKo,o,oXWNNKd,;;ccccc::;;,,,,''.;NWWWWWNNNWWWWWWWWWKNWNXx,clc:::;,'lx0XNNNNNNNNNNNNNNNNOlNNNNO'',o.....'l00xod;''koclxkkkkdxoco:,..''',cccccc:;;'
+ ,,;;;::cccccccccccccccc;oXWNNNOdcKNNXkl,,;;ccccccccccccccc,0WNNNNNNNNNNNNNNNNWxOWWWWx,c::::;;,'xk0XNXXXNNNNNNNNNNN0.oKKOc''.;c,',;lOdx:cOd,.ddlckkkkkxkococ,,.''.,cccccc:;;.
+ .',;;;:::cccc::dKNNNNKkOkc,,;;;ccccccccccccccc;cNNNNNNNNNNNNNNNNNNNxkWWWW0',,;;;;;,''kx0XNKKXXXNNNNNNNNNc.',','..ol,'','',oO;cd:,ckdckkkkkkkocol,,'.'.:cccccc;;,.
+ ..,,':OXNNNNO;,;;;;;::::ccccccccccc,oNNNNNNNNNNNNNNNNNNNdKNNNNK,,,;;,,,,'';oodO000KKXNNNNNNNNNol::cl.c':,'.','';l:,,,,;kdckkkkkkkocoo;','..ccccccc;;,
+ 'dkddOXNNNXo,,,,,,,;;;;;;;::::::,:XNNNNXXXXNNNNNNNNNNONNNNWO,;;:ccccccc::;;;;;;:cclodkO0KX0k0ko:;':.,''',;;,,;:',,,,xcokkkkkkkocoo;',,'.ccccccc;;'
+ .;0NN0x;;kXNNNO:. .'''',,,,,;;,,cOXXXXXXXXXXXNNNNNNNNNNNWl,;;:cccccccccccccccccc:::;;;;;;:;.'''''',;,';;;:,';::;;,l;xkkkkkkkocoo;,,,',ccccccc;;'
+ .;XNXOc. .xKNNXd. .',;cx0XNXXXXXXNNXOXNNNN0,;;;;cccccccccccccccccccccccccccccc:::;;;,;,,,,,,,'';;,,,,lkkkkkkkxocoo;,,,.;ccccccc;;.
+ .lKdc lxOk, .:lodk0KKOx:'dNNNX;,;;;;;;;:::::cccccccccccccccccccccccccccccccccccc::;;;,,,,::cclooddlcoo;,,,.cccccccc;;.
+ :dl.''',,,,,;;;;;;;;;;::::::::ccccccccccccccccccccccccccccccccccc::;;;,;,,;;''''.ccccccc:;,.
+ ..',,,,,,;;;;;;;;;:::::cccccccccccccccccccccccccccccccccccc:::;:c:ccccc;;'
+ ..''',,,,;;;;;;;;::::::ccccccccccccccccccccccccccccccc;:cccc;;.
+ ..''',,,,;;;;;;;;:::::cccccccccccccccccccccc:ccc:;,.
+ ...'',,,,;;;;;;;:::::cccccccccccccccc:;,.
+ .'',,,,;;;;;;::::::cc:;;'.
+ .''',,,,,;;;;'
+ ...
+
diff --git a/docs/asciiArts/maa-logo.light.txt b/docs/asciiArts/maa-logo.light.txt
new file mode 100644
index 0000000000..7ecdd2cf0b
--- /dev/null
+++ b/docs/asciiArts/maa-logo.light.txt
@@ -0,0 +1,120 @@
+
+ oNX,
+ 'KK: 0Ko::xKk
+ OOdOd kK0o .0OKX
+ Kklox0. .XOkxc,..l;:xk0X
+ 'N0 Kkolloo0: kKOk: ;kk00
+ ;Ok0KNd K0dclllooOl 00kk. okOKO
+ ;xddxxkkO0KXXNl KOoccllllooOx oKOk: ;kOKX.
+ .KKkxxxxxxxxdxkkk0Xd :0d;clollllooOx 00kk. xkOKX
+ kKkdlc:;;;cooodddxxkOOKl cOo;lloollllooOx ;KOxO .xkOKK lXXo
+ ;0kdccclllooooooodddddxxkOKk :Oc;llooollloooOx .X0kk; dkO0K '000KKX'
+ cdoooooooooooooooddddddxkOK0c. dl,loooooolloooOo oKOxO. kkO00 .O00000Xk
+ cxoooooooooooooooodddddddkO00KKKXXXNNOc' l'clooooollooooO. 00kxd .kkOKO O000000Kk
+ cxoooooooooooooooooddddddxkkdddxxxkkOOOKKKXXXNNKo'llooooollooooO 'XOxk: :kkOKd O0000000X'
+ xdooooooooooooooooodddddddxkdoooooooooodddxxxkko,loooooollooodd .N0dldOc .kkOKX c00000000X.
+ xooooooooooooooooooddddddddkxxxxdddoooooooooook,loooooolooodO00KKXXXKO,...l0. 'kxOK0 d00000000Kc
+ lxooooooodxxkkxkxddxxxdddddOkxkkkkkkkkkkxdooooOclookoolloooOOdodddxxkkkkxdd0KXXXNKd' lkkOKk .0000000000d
+ .XOxkxddxxxoccloddddddxxxxxxxxkkdddooooooddxxxxxkOdlokooooodOkooooooooooooooodddxxxkkkO00KKXXNNNN0l,. ;kkOKX .0000000000X
+ .0kdodxxkkl;:looooooddddddddxxkkOxddddddddddoooodxkOxddoddxkOxooooooooooooooooooooooooooooooddxxxkkOOO0KKXXNNKx,. ckkOKXXX, o0000000000k
+ :0xdddddkx;;looooooooooodddddddxOxddddddddxkkxkOkkdodkkkkkkkkxxxxxxddddddoooooooooooooooooooooooooooooooddxxxkkOOO0KXXXNNXk:. d0d:,cOk .00000000000d
+ l0ddddddko;:loooooooooooooddddddkOkxddddxkdc,....',codxdxkOOkkOOOkkkkkxxxxxxxxxxxdddddddooooooooooooooooooooooooooooodddxxxkkkO000Oc:;,oOO;. o00000000000l
+ cOddddddxd,cllloooooooooooodddddddxxkkdxko, .,lkxxkl..',;:clddxkOOOOkkkkxxxxxxxxxxxxdddddoooooooooooooooooooooooooooooooodddxxkkkOO0KKXXXNX0l. .000000000000
+ .xdddddxk;:lllooooooooooooodddddddddxOkd' .',:cdOkdkd' ..',,:cldxxkkOOOkkkkxxxxxxxxxxxddddddoooooooooooooooooooooooooooooooooddxxxkkOO0KKXXXNX0o. .000000000000
+ :xdddkc;llloooooooooooooodddddddddxO; ..;cldxkkxddddkxxx: ... ...,;:clodxkkOOkkkkxxxxxxxxxxxxddddooooooooooooooooooooooooooooooooooddxxxkkkO0KKXXXNNOd, k0O000000000
+ lxxo;looooooooooooooooodddddddddO: .;ldxdoolllooododO,okxo. .. ..';ccloloddxkkOkkkkkxxxxxxxxddddddddooooooooooooooooooooooooooooooodddxxxkkkk0000k000000000
+ dk:oooooooooooooooooooddddddddkd. .;lxdolllllloooooooxk ckdk;....... . ..;:cloodxkkOOOkkkkxxxxxxxxxxxxddddddooooooooooooooooooooooooooooooO0d000000000
+ oOllooooooooooooooooooddddddddkO' .xklcllcccllooolllooOl ckdk,......... .......... ...'..........';:clodxxkOOOkkkxxxxxxxxxxxxxddddooooooooooooodkxooooOklO00000000
+ kOoloooooooooooooooooddddddddxkk;..,Oo;;ccllolllllllllokx. :kxk'.......'..',;:clloooollllllc:;,'.. ...... . .'',;:ldxxddxkkkkkkkkxxxxxxxxxxxdddxkocoxkxd0kok00000000
+ ;xdooooooooooooooddddddddxkxkc.';k:,;;:lddolllllllodOx. :kxd...';cldxOOOkkkkxxxxxxxdxxxxxxxkxxdol:,... . .;c;.....';ccldxxxkOOOkkkkkxkk,.''':d:,;lx00000000
+ .xxxddooooooddddddddxkkxxx'',Ol,;;:oxdlllllllodxOo. ddkcodkkxxxxdddddxxkkkkkOkkxxxkkkkkOOOOOO00Odl:,. ... ..:,.. ..'';;;',coodddxxOO..''',:. .:d00000
+ dOkxddddddxxxxxkkxxdxO,..ck;cccodllllllloodkk, .'..'okdOxdddddddxkkkkOOOOOO000OOkkkxxxdooooodxk00000Oxc,. ...... ..,:,:. ...';,,;::c:;:cclO' '''',. ;x000
+ 0kooddddddxxxxxxxdddxx; .kcllolollllloodkOx:. .. .;dkkxOdkkxxxxkxkkkxxxkkOO00OOO0000OOOOOOOkkkkxxxkOOOOOO0kdl;.. ....... ..',,.. .....'',;;;;;,:::oOc..''.. .,,.:O0
+ :Odoooooddddddddddddko,. :kclllllllloxkOxc' ,;':xkxdddOxdOdlx0xkOOOOOOO0O0000000000000000OO000000000000OOOOkOOkdlc:;'.... ....;... ...';;::;:;;:;:ckdo:.. .cko:'.O
+ xxoooodddddddddddxxk;.'' xxlllllodxkkd:... 'dkkdooddx:xxxl;d0OOOOOOO0000000000000000000000000000OOOOOO000Okxdoloodxkxdol:,'....... .'';;:::,....';::l0kkkd:.. .lO0Oo:.:
+ 'Oooodddddddddxxkxo:. ....0dodxxol:;'. .... ,okxdooodxkk,;ccldO0000000000000kkkO00000OOOOOO0OOOkOO00000OOO0000OOOkxdolclloodxxddoolc:;,'..,,:llc,....';cxkxxolcloxko,. .oO0Odc...
+ ckoodddxxxkkkOkOx.... .0kOdc.. .. .. 'dkdoooodkkxdk0OOO0OO000000OOOOk0doxOkxxxxkkkkkOOkxdxkOx0OO00K0000O00OOOOOOOkxdolccccclloddxxkkkkkkOOkxddxkkxdolcccccccclk0d,.;dkl:...
+ oxdxkOxxxddddxxOc . . .. ':' . .....'.ckdoooodkOOkOOO000O000000OOOOOxdOocc:coxkxxdolooddxkOxoc:x0xk0000000000OOOOOOOOOOkxdolccccccccccclllllllllllcccccccccccloxO000c..:;.. .
+ :Ooooooodxx0, ... .. ... ..,,'cxxooodkO0OOOOOOO000000OOOOOOkxdxxc;;,,,,,,;:clO0xddolc:;,,;dOodO00000000000OOOOOOOOOOOOxddoollcccccccccccccccccccllloodkO0000000o.... .'
+ xkoooooodxkK. . ..''...'. .,;dkdoodk0000000000000OOOOOOOOkdoxkl;,,,,,,,,,,,,,co:;;::cc:;,,,oOookO000O00000000OOOOO0000OxddxxdollllllllllloooddxxkOO0000000000000x.....''
+ 0xooooooxxkO... .''...,,. .:kxdddk0K000000000OxxkkkkxxxdddxOk:,,,,,,,,,,,,,,,,,,,,,,;:c:;,,,lOdlxOO000O00000K000O000000kxddxOOOOOOOOOOOOOOO0000000000000000000000o.'''''
+ .0dooooooxxOx .... .'...''..lOdodk0000000O000Ox0OOOOkxxxxddolOk,,,,,,,,,,,,,,,,,,,,,,,,,;cc:;,,cxkooodxxkkkxxxO0000000000Oxdk000000000000000000000000000000000000000,.'''c
+ ;0oooooooxx0:...... .....''.,xkddxO00000OO0000Odd0olcccc::;;;,,;;,,,,,,,,,,,,,,,,,,,,,,,,,,,:clc;,,k0xxxxxxxxkkkxO00KK0000000O0000000000000000000000000000000000000000O,',o.
+ lOoooooooxx0....... ......'',;kxddO00OO00O00K00OOlkkcc:;;,,,,,,,,;l:,,,,,,,,,,,,,,,,,,,,,,,,,,,,;clc:ll;;:clooollOodO000KKKK00000000000000000000000000000000000KKKKKKK000c,l
+ xkoooooodxkO....... ......'',:Oxdx00OOO0O000000OOkcOo:;,,,,,,,,,,,;ooc,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;clc,,,,,,,;:ccdOoOO00000KKKKK0000000000000000000000000000KKKKKKKKKK000k.
+ Odooooooxxkd....... ......'',;kxxO0OOOOO0000000OOkodk;,,,,,,,,,,,,,,llll:,,,,,,,,,,,,,,,,,,,,,,,,,,..';:l:,,...,,;:cdkokOO00000KKKKKKKKKKK0000000000000000000KKKKKKKKKK0OkkO
+ .0oooooooxxOc....... .....',:Oxx00OOOOOO0000OOOOkodk;,,,,,,,,,,,,,,,cllll;,,,,,,,,,,,,,,,,,,,,,,,',,'',,;cc;'...',,;:dOodkO0000000KKKKKKKKKKKKKKKK0000KKKKKKKKKKKKKKK0Okxxkx
+ cOoooooodxx0;....... ... .':Oxk0OOOOOOO000000OOkodOl;;,,,,,,,,,,,,,,;cccll,,,,,,,,'..,,,,'..,,,,,,,,,,,,,,:l;,'...,,,;oOxldkOOO00O00KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK0OkxxxxOo
+ dkoooooodxkK........ .....;kOk0OOOOOOO0K00OOOkdokdkOc,,,,,,,,,,,,,,,;ccccl;',,,,,,....',,'...,,,,,,;;,,,,,,;c:,,'.,,,,,cOOxoodxkkkkxkOKKKKKKKKKKKKKKKKKKKKKKKKKKK0Okxxxxxx0:
+ OxoooooodxkO. ...... .',..,kOOk0OOOO000K0kxdoddxdc;:c;,,,,,,,,,,,,,,,;cccccl.,,,,,,,....',,'..,,,,,,,::;,,,,,;::,,,',,,,l0dcoodddoddxxk0O0KKKKKKKKKKKKKKKKKKKKKO0Okxxxxxxxk0.
+ .KdooooooxxOo ...... .;;,'d00xk0O000000Ododxkxl;,;c:;,,,,,,,,,,,,,,,,,:;;:cc:.,,,,.,,....',,,,,,,,,,,,;c:,,,,,,::,',,,,,,:;,,,,;:llcclokOk000KKKKKKKKKKKKK0kdo:;0kxxxxxxxxk0.
+ ,0oooooooxxO;. ...... ..';,;00kk00000O0000kdooc,,,,cc;,,,,,,,,,,,,,,,,,,;,,,;cc'',.'.,,'...',,,,,,,,,,,,,;c:;,,,,;::..,,,,,,,,,,,,,;clccclxOkOO00000000kdl:cc:;'';KkxxxxxxxxOk
+ lOoooooooxx0......... .....k00k000OOO000OOkcc:,,,,;c:,,,,,,,,,,,,,,,,,,,,,,,,;c:.,'.',,,,'.,,,,,,,,,,,,,,,;cc;,,,,;::'.',,,,,,,,,,,,,:ccccldOkkOO0000ko;...::,...l0xxxxxxxxxO:
+ xkoooooodxkO.......... ... l0OO000OOO0000kxOc:,,,,,,;,,,,,,,,,,,,,,,,',,;,,,,,,:c'',..,,,,,,,,,,,,,,,,,,,,,,;ll:;,,,:cc:.',,,,,,,,,,,,,;:cccclxkdxkkO0O00koc::...'oOxxxxxxxxx0'
+ kdooooooxxkd.......... 'O0O0OO0OOO000OkdOc:,,,,,c,,,,,,,,,,,,,,,,,..,:;,,,,,,c;.,,.,,,,,,,,,,;;,,,,,,,,,,,;ll:;,,;:cc'.,,,,,,,,,,,,,,,;llllldkdoodxxkkO00d;..'.kkxxxxxxxxx0.
+ .0oooooooxxOc.......... 'k0kOOOO00O0000OkoOc;,,,,:l,,,,,,,,,,,,,,.,,..,::,,,,,,::.',.,,,,,,,,,,,l;,,,,,,,,,,,:olc:;,:ccc'.,,,,,,,,,,,,,,,,coollx0xxxxxxdddxxxdlc;0kxxxxxxxxkx
+.O ;Ooooooodxx0,........... l0xOOOOO0000000OdoO:,,,,,lc,,,,,,,,,,,,,..''..,::,,,,,,;c'.,,,,,,,,,,,,,:l,,,,,,,,,,,,ldoccc:cccl..,,,,,,,,,,,,,,,,:odlodllooooooooooddxkOOOkkkkxxxOo
+00; okoooooodxkK. .......,,. .xOxOOOOO00000OOOldx,,,,,,o:,,,',,,,,,,,,'.,,..,:c,,,,,,,c,.,,,,,,,,,,,,,,d,,,,,,,,,,,,;xdolcccccll..,,,,,,,,,,,;,,,,,coolllloooooooooooooodxxkkOOOO00XXXNNN
+00. Oxoooooodxk0 ........,;;.:0oOOOOOO0000OOOkcxkdc,.',d:,,..,,,,,,,,,,,,,,,,c;,,,,,,,;,.,,,,,,,,,,,,,,o;.;c:,,,,,,,,lxcodccccld'.,,,,,,,,,,,;,,,,,,;cldddddooooooddddddddddddddxxxkkkkkk
+00. .KdooooooxxOd ........,;:OddOOOOO000000OOolOoxl,..;d:,,'',,,;;,,,,,,,,,,,l;,,,,,,,,,'.,,,,,,,,,,,,,:o,;cxdolllccccxl:codollll..,,,,,,,,,,,,,,,,,,,,;coxkoooooddddddddddddddddddddxxxx
+00. ,0oooooooxxO; .........;OklkOOOO000000OOdlOd,,,,.';o:,,,,,,,,,,,,,,,,,,,,c,,,,,,,,,,,.,,,,,,,,,,,:coxlc:;;dl,,,,,,lo...:ddllo,.,,,,,,,,,,,,,,:;:looxxxddoooooddddxxxkOkkkkkkkkkOOO0OO
+00, cOoooooooxx0. ........xOooOOOO000000OkodOd,,,,,,,:o:,,,,,,,,;;,,,,,,,,,,:,,,,,,,,,,,.,,,,,,,,,coolcd;....'oo,,,,,;x.....;oddo.',,,,,,,,,,:,,,,;ollooloooooddddxxxxxxO000000000000000
+00o dkoooooodxxk .......'xOocxOOO000000OxxkOl,,,,,,,,:o:;,,,,,,,;:,,,,,,,,,,;,,,,,,,,,,,',,,,,,,,,:;,,,lo... ..co,,,,,d;......';d;.,,,,,,,,,,;;,,;;lkxddooddkxxxxxxxxxkO00000000000000,
+00O kdooooooxxkd .....',xOoclOOOO000000kOOdc,,,,,,,,,:l:;,,,,,,,,c,,,,,,,,,;:,,,,,,,,,,,,,,,,,,,,,,,,,,:x.. cd,,,,ll. ,o.,,,,,,,,,,:c,,;;:dO00OkxxO000000000000000000000O:
+000: 0oooooooxxOc .....,kOlclxOOOO0000000xlc;,,,,,,,,,:l:;,,,,,,,,c,,,,,,,,,:c,,,,,,,,,,,;,,,,,,,,,,,,,,;k. .lo,,,ld. .x.',,,,,,,,,:c,,,;:cxOOOO0000O0000000000000000k
+000O .0oooooooxx0, ....,kklccdOOOOO00000k0lcc;,,,,,,,,,:l::,,,,,,,,c;,,,,,,,;oc:,,,,,,,,,,:;,,,,,,,,,,,,,;k. .oc,,ld o'',,,,,,,,,cc,,,,;:ck0O00000000000000000OOOOOl
+0000x :koooooooxx0. ..lOxlcldOOOOO000000dOklc,,,,,,,,,,:o::,,,,,,,,lc,,,,,,,;xoolc,,,,,,,,::,,;;,,;,,,,,,:o .x:,oo.,;::ccccd;.,,,,,,,,:o:,,,;;;:oO0000000000000000OxxxxxO;
+00000l oxoooooodxkO ,kkoccllxOOO00000000ko0oc,,,,,,,,,,;dc:,,,,,,,;ol,,,,,,:oxdol,,,,,,,,,::;;;;,;;;;;,,,o. .. ;dcxkOOOOOOxoccc.,,,,,,,,oo;,,;;;::ckO000O00000O0000OxxxxxxO.
+000000l xdooooooxxOd .oOdlccllokOO000000000OoOkc,,,,,,,,,,,dc:;,,,,,,:xo;,,,:oxxkdcc:,,,,,,,;:c;;;;;;;;;;;;:o .,'. .,cxkokOOOOo;.. ':',,,,,,,:dl,,,;;;;:coO000000000000Okxxxxxxx0
+00000O0X. 0oooooodxxO;.;lxdlccllodOO000000000000kx0c,,,,,,,,,,.dl::,,,,,;ckd;,cddl:k;odlc:,,,,;;;;l;;;;;;;;;;;;l'.''..':dOkOOOOkkxxx: ':',,,,,,;ol:,,,;;;;:clkO00Odk0Okk0kxxxxxxxxkk
+000000OOKd .0oooooodxk0xkxocccllloxdO0000000000000Od0c,,,,,,,,,,.ol::,,,,,:okkcddc,,cd..cdocc;,;;;;:o';;;:;:::::d,.:..cxOOOOOOkkxdddolo' ,;,,,,,,;olc;,,,;;;::ccxOkOx:cOkxx0xxxxxxxxxko
+0000000kkOKXXkllkOoddxxkO0Oxdlcllloooddok0kk00000000O00Oo0:,,,,,,,,,,.:o::;,,,;cxlkxl;,,,d:...;ddlc:;;;:co.:::::::::oo ...kOOOOOkxddddddl:;:c :,,,,,,:ooc:,,,;;;;::ccdOdxxxokOxk0xxxxxxxxxOc
+00000000OxxxxkOOOOOOkkxxxdlclllodxkkddk00xdO00000000000kl0:,,,,,,,,,,'.oc::,,:cdllk:,,,,:d......:oolc:::cd.::ccccccol. '0Oxcdxddolddddl;;;:. l',,,,:llc:,,,,;;;;::ccoOddddxkOkOOxxxxxxxxx0'
+0000000000OxolllllllccccclllodxkkOOOO00000000000KK0000Old0Od,,,,,,,,,,.:cc:;:coko:O,,,,;x,. ...:oolccco'ccccccclk: ;c. .olc:;lxdxd;;;;' .l,,,:odlcc;,;,;;;;;::ccoOddddddxk0kxxxxxxxxk0.
+000000000000OkdollccclllodxkkOOOOOO0000000000000K00000dcOxxx,,,,,,,,,,..ccccloko,'k,,,,o:. ..'cdollo:cccccclccdo, .:;;;;loo:,;;:; lcc;,,cklc;;;;;;;;:::cccoOdddddddd0kxxxxxxxxkO
+000000000000000OOOkkkkkOOOOOOO00000000000000000KK0000kokk:;;,,,,,,,,,,'.ollldkl..;d,,,cc. ..',,,;;:oxxcccccdl::ccloo: .;;;;;;..'''o' .xo;...:xc;;;;;;;;::ccclloOoddddddx0xxxxxxxxxOo
+00000000000000000000OOOOO000000000000000000000KK000OkxOd:;;,,,,,,,,,,,,.oooxxc...:l,,cc. ..... ..'..;x:ccldxollcc:;,. .;:;,'.'';c; ..... cd::::;;::::ccccccdkoddddxxO0xxxxxxxxxO;
+000000000000000000000000000000000000000000000KKK00OOOOo;;;;,,,,,,,,,,,,.;dxkc... l;,o; .';ldkOOx;ol:cdo'... .;::;:cl:. .. c.. dc:::::::cccccccccxxoddxddokOkkkxxxxxx0.
+00000000000000000000000000000000000000000000KK0000Oxolc;;;,,;;,,,,,,,,,'.od:.....o;o, .':okOOOOOOOkkkcol, ..'.. ,l....'xccccccccccllccccckdoodkdlc:,;:lkkxxxxO
+KKKK00000000000000000000000000000000000000KKKK000Olccll;;;;,:c,,,,,,,,,,..l,. ,xl. .;lxOOOOOOOOk:. ;o:. ..'....dlccllllcllllldocclkooxd:. .;dkxko
+0KKKKK000000000000000000000000000000000KKKKKK000x0lccll;;;;,:c;,,,,,,,,,'.'d' .;. .,oOOOOOOOOkxdddd ......:lcclllllllllloOklckxdx:. .ckOc
+;0KKKKKK0000000000000000000000000000KKKKKKKK000Oo0occll;;;;;;c:,,,,,,,,,,'.,o. ;xOOOOOOkxdddddooo; ;lllllllllllllldkkkxOdx. . l0,
+ .00KKKKKKK000000000000KKKK000KKKKKKKKKKKKK0O0Oko0occol;;;;;;;:,,,,,,,,,,,'.;d' 'dOOOOOkxddddddoc::;o. .;ololloooolllllokxdkOkk' .;::. ,x'
+ :00KKKKKKKKKKKK00KKKKKKKKKKKKKKKKKKKKKOo,xOkkxOllcxl;;,,;;,;,,,,,,,,,,,,,.,o::OOkd::xddoooddddc;;;:; .;looooooooolllllokxoxxxkc .. ;O
+ x000KKKKKKKKKKKKKKKKKKKKKKKKKKKK00kl,'dOkkd0klllkl;;,,,,,,,,,,,,,,,,,,,,''xxk:. cdoc:;cdxxc;;;;: 'lxddddooooooooolodxodOlldO. ,0
+ o0000KKKKKKKKKKKKKKKKKKKKK000ko:,,,d0kkdOkOdllkl;,,,,c,,,:c;,,,,,,,,,,,:dcd:. .oc;;;;:c;..'',d ;odoodddddoooooodxkkxkO00xlxk .k,
+ l0000000KKKKKKKKKK0Okxol:,,,,;kOkkkkdoooolkc;,,,;:,,,,:ll:,,,,,,,,,;;',:lc'. .,;;;;;,..'''cl :ooooodddddddxxkkkkkxO000Olkd .x,
+ OxkkkkkkOOOOdl;'.....,,,,,,x0OOOxooooooxx:;;;;c:,,,,,,col:,,,,,,,,,,,,';lo:'..::;,'''',cl. .. ';lkOkkkOOOOOkkxooxOOO0dlxx 'o
+ .0oooooooxxOo.. ..',,,,,;OOkxdoddddooko;;;;lkdc,,,,,,;cllc:,,,,,,,,,,,,;xx; .,cc::cll;. .,:;. 'd0OkkkkOkxkOO00OOOOk0xxkk. .c
+ :Ooooooooxx0:.. ...'.,:OOdoooddddoodkc::cdkxdx;,,,,,,,;:clc::;;;;:clllc,. .',,'. .. 'lOOO0doclkkcokkkOO00OdOOOOOc .. .okc
+ lkoooooodxkK,.. 'OOdddddddddooxklldkkddxko;;,,,,,,,;;;::clllodko.. . .. 'lOkOOOO,''.dOkkkkOkkOOOO00OOOO: . .'dk0;
+ OxoooooodxkO'.. ....kOxdddddddoooodkkkxdooxkOOc;,,,,,,,,,,,,;;::::oxo' .l. '; . 'ollOkxO0o'...x0O0kdlcclodxO0OOOOO, .,,''''';cxkk0.
+ .KdoooooodxOd'.. .......'xOxxxxdddddddooooxdoooxOOOOx:;;;;;;;;,,,;;;;;;;;coxc'..;.......... ..;. .,dOd,xokoOO;....l0dlcl;;ccccckOOOOOO, .'',,,okkxxk0
+ ,0oooooooxxOc''..''..'',xOxxxkxddxddddooox0xodxOO000Ox:;;;;;;;;;;;;;;;;;;;;:loolc;,'....';:clox. .;:ok0k,ck:xoOc' .. lkcccl,,cccccxOOOOOO; ....,xkxxxko
+ lOoooooooxx0;,,'''''..;kkxxxkl...lxddoodk00OkO000000OOd;;;:::::::;;;::::::::;;;:cloddddddolllol .,clc:o00d,;Ol:dkx' .. lxcccc,,:ccccdkOOOOOk:. .;xkxxxxO;
+ xxoooooodxxO'''......;kkxxxxO, .;kddoxO000000000000Oxko:::::cc::::::c:::::::::::cccccllllllox. .,:llc;':O0Oc,,dxdco0:. ldcccc,,;ccccdkOOOOOOOdc;;lxkxxxxx0.
+ Odooooooxxkx''.....'lOxxxxxxkd,;coxodk000000000000OOxxdko:::lcc:::ccccccccccccccccllllllolldo. ...';:cldoooodl:c:c;,,:OdOlxo. .llccc:,,,ccccokOOOOOOOO0kkkxxxxxxxO
+ .0oooooooxxOo'.....cOkxxxxxxxxkOckddxO00000000000Oocl0xddkdc:ddc::::::cccccclllllllllloooooxkolllolooooocclxkxd0Okxxol'':;,,,,kxOOkd. .,:ccc:,,,:ccclkOOOOOOO00dxxxxxxxxkd
+ ,Ooooooooxx0:''..:xOkxxxxxxxkO0O,xdk000000000000kc::oOddddkxlcOkdlccccccccclllloooooooooodkxoodddO0OOOOOkdoc;;;;,'''','':l,,;lOxOOO. ..ccccc,,,:ccclkOOOOOOO0OodxxxxxxxOc
+ dkoooooooxkK;,;lxOkxxxxxxxkO000O.O0OO0000OO000ko::::xkdddddxkxOdxkkdolllllllloooooooooodxxddxkxk00OOOOOOd:lxkxdl:;'',''..,..xOxkO0: .;clccc,,,;cccckOOOOOOOOkoooxxxxxxO;
+ OxoooooodxxOdxOOkxxxxxxkkO000OOO.kOOO000000O0O:::::cOxdddddoodxoooxkOOkdddddddoooooddxkkddkdl:'':lodkOOOoccxlkkkOkdoc;'.. 'x0OO0l.;;. .cclccc,,,;ccccx0OOOOOO0xoooodxxxx0.
+ .0doooooodxxdx0OkkkkkOO000000000O.O00OO00OkdoKd:::::xkdddddddlloxxo:,'.......,coxxxkOxoxOkOOco,.......;codxxOdOOOOOOkOOOkk: l0xx: kx. ..o:occc,,,,ccccd0OOOOOO0dooooodxxkK
+ ;0oooooooddoooxkkkkkxxxxkOxxkkkkO.k00Okxodxdd0o::::l0xddddddOlox:. .dkxOc:dOxlllxo.. .......':loxkOOOOOOdkO0Odl0Oc; :k0' .'d;ocl:,,,,cccllO0OOOOO0oooooooxxkx
+ lOoooooooooooooooooooooox' ..:ddx'xdx:. .xOOOkxdddOOxxxddxkOdl. 'oxdkxlcoddxOo,.. .....,;clodddxd,x0lcOkoloxkx....':x,oll:,,,,::cllkO0OOOOOoooooodxxO;
+ ckooooooooooooooooooooood; .ckckc. .:kxxoooooddxxkkkkOO0x . .;kolodddxkOl;.. 'l 'OOkc00000Ol..;c:xOO,col;,,,,:;cocdk00OOOkoooooodxxO.
+ 'kkxxxddooooooooooooooooxc. ':o. .,lkkxxoooooooooooooook. ;' ;koddddxxkO;,.. ... .0c..'oOO0xokOkxl':;do':k0::lo,,,,,;,cocokk0OO0koooooodxxO
+ ..:dkxxxdddoooodd:. .,',okkxxxoooooooooooooooxo ;, .OkkxxxxxkOO,;.. ..... o0OkOkO00clkOOkOOkc'xo:dko,:o,,,,,,,coclkkO0O0dooooooxxkd
+ .:dkkOd'. 'xkxxxxxddddoooooooooookc :. .kkkxxkkkkOOxcc:'...... clddol0oOdkO0OkOOxldkkkkx,:o,,,,,,,coccxOkO00oooooooxxkc
+ cO:,::'. .ckxkkkkkxxxxxxxddddddkd. .... ' 'kxxdoooooooddxxxxxxdoolc:,'....,.,cdxOd0kOOOkxxkkxdOkkkk;oc,,,,,,,coccxOkkO0oooooooxxO;
+ 0x. .;co,. 'd0, .,okOOOkkkkkxxkko'........... lkxxdoooooooooooooooooodddxxxxxxdx0OOOOOOkxkOxxxdkOxddxxklx;,,,,,,,coccxkkkOkoooooooxxO.
+ kx. .';. ;;. .:0l 'ckkxo;.. ...... .'. .kxxxxoooooooooooooooooooooooooooooodddxxxkxkkkkkkkOOxxkkkkl,,,,,,,;coccxkkk0xoooooooxx0
+ :l.,o, .l;',k ,dlc:,...';dO: .xkxxxxxxxdddddooooooooooooooooooooooooooooooooooooddxxxkkkkddoolcc::loccxkkk0ooooooooxxk
+ .. :::lkOOkkkkkxxxxxxxxxxddddddddoooooooooooooooooooooooooooooooooooddxxxkxkkxxOOOO0ooooooodxko
+ .'cxOkkkkkkxxxxxxxxxdddddoooooooooooooooooooooooooooooooooooodddxdodoooooxxO:
+ ':dOOOkkkkxxxxxxxxddddddoooooooooooooooooooooooooooooooxdooooxx0.
+ .;dkOOkkkkxxxxxxxxdddddoooooooooooooooooooooodooodxk0
+ .,lxOOkkkkxxxxxxxdddddoooooooooooooooodxk0
+ 'oOOkkkkxxxxxxddddddoodxxOl
+ 'ckOOkkkkkxxxxO,
+ 'cxx
+
diff --git a/docs/asciiArts/priestess.dark.txt b/docs/asciiArts/priestess.dark.txt
new file mode 100644
index 0000000000..9f984a387d
--- /dev/null
+++ b/docs/asciiArts/priestess.dark.txt
@@ -0,0 +1,135 @@
+WWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMWMMMMWWWWWWMMMWMWWMWWMMMMMMMMMMMMMMMMMMMWMWX00Okxdoooxddddxxdooolcccc:::::::::::::::::::::::;;;;;;::cllollc:clllcc:::llc:cododONWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMWWMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
+WWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMWMMMMMMMMMMMMMMMMMMWMMMMMMMMMWWMMMMWMMWWMMMMWWMWWMMMMMMMMMMMMMMMMMMMWWNXKOOkxdoodxxxxxkxdddlcc::::::::::;;;;;;;;;;:;;;;;;;;;;;;;;;;::ccccccclcc:::;:::;;:cloxKNWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMWW
+WWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMWWMWWWWWMMWMWWWMMWWMMMMMMMMMMMMMMMMMMWWNNK0OOkddoodxxxxxxdddoc::::::::::;;;;;;;;;;;;;;;;;;;;,;;;;;;;;;;;;;;:::::cc::::;;;:;;;;:ldONWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMWWMWWWWWWMWWWWWWWWWWMMWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMM
+WWWWWMMMMMWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWMWMMWWWMMWWWMMMMMMMMMMMMMMMMWWNNXK0Oxoddoddxxxxdoooolc:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,;;,,;::;:::;:;;;;;;;;;;;:okXNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWWWWWMMMWWMMWMMWWMMWMWWWWWWMMWWWWWWMMMMWWMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
+WMMMMMMMWWWMWMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWMMWMMMMWWMMMMMMMMMMMWWWWWWNWWXK0xodxxdoddxxdolokkddc;;;;;;;;;;:ccccccc:::::::;;::;;;,,;;,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;:okXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMWWWWWMMWMMMMMWWMMMMMMMWMMWWWWMMMMMWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMM
+WWMMMMMMMMMMWWWWWWMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMWWWWWWWWWWMWMMMMMMMMMMMMMMMMWWWWWWWWWXXOddkOkooodxxdolx00Oxl;;::::;;;;::cclllllloolllcc:::ccc::;;;;,,,,,,,,,,,,,;;,;;;;;;;;;;,,;;;;;::lkKXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMWWWMWWWWMWMMMMMWWWWWWWMMMMWWWWWWWWWMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
+WWMMWWMMMMMMMMWWMMMMMMMMMMMMWWMMMMWMMMMWWMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMWMMMMWWWWWMWWWMMMMMMMMMMMMMMMWMMWWWWWN0OkO0Oxllldddood0XK0ko::::::;;;:::::clcccccccccccc:::::cc::cc:;:;,,,,,,,,,,,,;,;;;;;;;;;;,,,;;;;::cokOKWWWWWWWWWWWWWWWWWWWWWWWWWWWNWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWMWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW
+WWWMWWWMWWMWMMWWMMWMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWWWWWWWWWWMWMMMMMMMMMMMWWWWWWWWWN0kk00Oxlllddolx0kkkxdl::;;;:::c:::::;;;::::::::::::::;;;;:::;::::cc:;,',,''''',,,,,,,;;;:;;,,,,,,,;::coxk0NWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMM
+WWWMMWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMWWWWMMMWWWWWWWMMMMMMMMMMMMMWWWWWWWWN0kx00Odlccoooo0NWxddoc:;;::ccc::::::::::::::::::::::::::;,,;:;;;;;;cl:c:,,',,'''',,;,,,;;;:;;;,,,,,,,;:ccxOkkXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWMWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMWWWWMWWWMM
+WWWWWWWWWWWWMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMWMWWMMMMWMWMMMMWWWMMMMWMMMMMMMWWWWWWWWWMWMWMMMMMMMMMMMMMMWWWWMN0xx00OdcccllloXNWNddo:;;ccc:ccc::::::::::::::::::::::::::::;,;;:;,,,,;l::::;,',,,'',,;,,,;:;:;;;,',,,,,,;:ldkOdxXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMWWWWMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMWMMMMWWMMMMMMMMWWWWMMMMMMM
+WWWWWWWMWWWWMMWMMMMMMMMWMWMMMMMMMMMMMMMMMMMMMMMWMMMWMMMMMMMMMMWMMMMMMMMMMMMMMWWWWWWWWWWWWWMMMMMMMMMMMWWWWWWWNKxx00Oxcccclll0NWWXlc;:lllcc:cccc::::::::::::::cccccc::::::::;;;::;;,,,;c:;::::,'',,'',;,,;;:;;;,;,,,,,,,,,:ldxOOxkXWWWWWWWWWWNWWWWWWWWWWWWWWWWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMWMMMMM
+WWWWWWWWWWWWWWWWMMMWWMMMWWWMWWWWWMMMMMMMMMMMMMMMWWWMMMMMMMMMMMWMMMMWMMMWMWWMMMWWWWWWWMWWWWWWMMMMMMWMMWWWWWMWXkx0xOxlc::cccxK0Okl;c:dlccc::ccccccccccc:::::c::cccccc::::::;;:;:::;;,,;;:c::;;;;,'','';;;,;;;;;,,,,,,,,,,;;;:oxxO0xxNWWWWWWWWNNNNNWNWWWWWWWNWWNNNWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMWMWWWMMMMMMMWWMMMMMMMMMMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
+WWWWWWWWWMWWWWMMMWWWMMMMMWWWMMMWWWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMWMMWMWWWWWWWWWWWWWWMWMMMMMMMWWWWMMXOdKdxxlc:::cckOdol:,oolo:cc:::ccccccccccccllllllc:llllllcc::::;;:::::;;,;:,;l::;;;;;,''',;;;;;;;;;,,,,,,,,,,;;;;lkkx0KdkWWWWWWWWWWWWWNWWWWWWWWWWNNWWWWWWWWWWWWNNNNNWWNWWWWWWWWWWWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWWMMMMMMMMMWWMMMMMMMWWMMMMMMMMMMMMWWWMWMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMM
+WWWWWWWWWMWWWMMMWWWWWWWMWMMMMMMWWWWWWWWMWMMMMMMMMMMMMMMMWWMMMMMMMMMMMMWMMWWMMWWWWWWWWWWWWWWMMMMMWMMMWWNMMMW0x0ddOoc:::ccdNdll;;;xlcc;cc:::ccccccclodxdxxxddxollxxxxxxdolccc::::::::;,;:,:l::;;;;::,'',;;;;;;;;,,,,,,,,;;,,;;;cxOxkK0xOWWWWWWWNNWWWWNWWWWWWWNNWWNWWWWWWWWWNWNWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWMMMMMMMWMMMMMMMMMMMWMMMMMMMMMMMMWWWWMMMMMMMMMMMMMMMMMMWWWWMMMMMMWWMMMMM
+WMMWMWWWWWWWWWMWWWWWWWWMWWMMMMWWWMWWMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWMMMWWWMMWWWMMMX00ddOll::::clNO:;;;;ld:;:;:c:::ccccclodxkxxdxxxdoxdlldxxxxxxddollclccccc:;;;;,:l;;;;;;::;'.,;;;;;;;,,',,,,,,;;;;;;;:dOkdOX0d0WWWWWWNWWWWNWWWWWWWNWWWNWWWNWNNWWNWNWWNWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMWMWWWMMMMMMMMMMWMWWWWWWWWMMWWMMMWWM
+WWWWWMWWWWWWWWMMWWWMMWWWWMWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMWWWMMWMMMWMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWMMWMMWMWK0oo0lo::::ccO0:,c;::ll;,;;:c::cccloddxxxxxxdoddooldolcodddxxxddollollllclc:;;;,:l;;;;;;:::'.,;;;;;,,,,',,;;,,;;;;;;;;ok0xx0NkdNWWWWWWWNNWWNWNWWWWWWWWWNWNNNWWNWWNNNWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMWWWWWMMMMMMMMMMMMMMMMMMMWWWWWWWWWMMMMMMMMMWMMMWMMMWMWWWWWWMMMMW
+WWWWMMMWWWWMMMWMWWMMMMWWWMMWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMWWWWWWMMMMMMMWWMMWWWWWWWWWWWWWWWWMMWWWWWMWMMWWMNKlokdcl:::c::x:,clcc:cl;,;;c:c:llooodddddddddolollccolc:cloodxddooclolllllll::;,,ll:;;;::::;'';;;;,,,,,,',,;;,,,;;;;;;;lxOkdOKXxkNWWWWNWWWNWWNWWWWWWWWWNWWNWNNNWWWWNWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMWMMMMMWMMMMMMMMMMMMMMMMMWWWMWWMMWMMWMMMMMMWWMMMMWWWMMMMMWWWWWWW
+WWWWWWWWWMMMMWWWWMWWWWWWMMMWMWMMWWWWWWWWWWWMMWMMMMMMMMMWWWWWWMMWMMMWWWMMWMWWWWWWWWWWWWWWWWWMWWWWWWMMMXWMMXdxxk:lcl;::;l;;lolol;clc;:;c:c:ooololoooloollllllccccllc:ccloodddolcolcc:ccll::;;;llc:::c::;;';;;;,,,'','';,:;,,,,;:;;:;:dkKxdOX0dKWWWWWWNNWNNNNNNNWWWWWWWWWNWWWNNNWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMWWMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMWMMMMMMMMMMWWWMMWWMWWWWWWW
+WWWMMMMWWMMWWWWWMWWWWWWWWWWMWWWMWWWWWMWWWWWMMWWWWMWWWWMWWWWWMMMWMMMMMMMWMWWWWWWWWWWWWWWWWWWMWMWWWWMMNNWMNOdkkl:odc::::;:lloool,co::;::lcclllolllllccccccclcccc:clcc;cccllooollcllc:;l::c;;,;,lcc:cc:::;,';;,:,'''''',,,;:,,,,,;:::l:dkKOdxKNkxNWWNWNNWNNWNNNNNNWNNWNNWNWNWWWNNNNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWMMMMWMMMMMMMMMMMMMMMMMMMMMWWWWMMMMMWMMMMMMMMMMMMMMWWWWMMWWWWWWWWWW
+WWWMMMMWWMMMMWWWWWMWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWMMMWWWWWMWWWMMWWWMWWWWWWWWWWWWWWWWWWWWWWMWXWMMWKMMMOkkKl::ld;::c,c:cooldl,:l:::cclcc:llolcccccccc::cllcccc::ccc;ccccccllccccc:;:c;::,,,;,l:ccccc:;,',;;,;''''''';;,;:;,,,,,;::llok0Xkd0XKoKWNWNNNWNWNNNNNNNNNNNWNNWNNNNNNNNWNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMWMMMMMMMMMMMMMMMMMMMMWWWWMMMMMMMMMMMWWWWMMMMMWWWWWWWWWWWWWWWWW
+WWWWMMWWWWWWWWWWWWWWWWWMWWWWWWWWWWMWWWWWWWWWWWWWWWWWWMWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWMWWMWXWMMMXXWMNdx0kc:lol;:::;cccoocoo:c:o:::llc::ccclcccccccccccclllccc:::::;ccc::::c:::::;;::;:;;',,;cccc:c:;,,';;',,''''''',;,;::,,,,,,;:cooxOKKxxKXxkNNNWNNWNNWNWNNNNNNNNNNNNNWNWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMWMMMMMMMMMMMMWMMMMMMMMMWWMMWWWWMMMWWMWWMMMMMMWWWWWWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMXNWMWWKWWM0ok0oc:lx;:::,:c;looloxcococ:;clc:;:ccllcccclcllccclollccc:::c;:c:c::;;:;:::;;;;;:;,;':oc:ccc:c;,,',;;';,''''''',;;,;:;,,,,,,,,ldkO0X0xxKOoKWWWNWNNNNNNNNNNNNWNWNNNNNNWNWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWMWWMMMMMMMMMMMMMMMMMMWWMWWWMMMWMMMMMMMMMWMMMMWWWWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWMMXXNMWXKXWMMxlKddc:oo;:;;,c;:loollkco::c:;;c::;;ccclccclllllollllollccc:::c::c:::;;;;;::;;,;;;:;;';lxc;;::;;,,'';,',;''''''',',:;,;:,,,,,,,,;dkO0XX0dO0l0NNNNWNNNNNWNNNNNNNNNNNNNWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWMMMMMMMMMMMMMMMMMMWMMMMWMMMMWMMWWWMMMMMMMMWWWWWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWMNXXMMXNWKWMNoxOdd:,xc,:;',l;:lollox:c;:::;,;:;:;:ccllclllllloolllllcllccc::::cc:;;;;;;;;:;;;;;;:;;,cddc:;;;,,,,',,,.,;''''''',',:c,;:;,;,,,,,,:x0KXXXkx0okNNNNNNNNWNNNNNNNNNNNNNWNWWWWWWWNNWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWMWMMMWMMMMMMMMMMMMMMMMMMMWWWWMMMMMMMMMMMMMMMWMMWWMWWWWWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWMWWWWWWWWWWWWWMWMMWX0WMXKMNNMM0lOodo,,k:,;,':c;lllclll:c,c:;c;,;;::;cllllllclllloolllllclcccc::;;c::;;;;;;;;:;,,;;:;;,co0lxc;;,,,,'.;,..;,''''''''':cl:;::;,;;,;,',:x0KXXKxOkdXWNNNNWNNNNNNNNNWNNNNNNWWWWNNWWWWNWWWWWWWWWWWWWWWWNWWNWNNNWWWWWWWWWWWWWWWWWWWWMWWWWWWMWWWMMWWWMMMMMMMMMMMMMMMMMMWWWMMWWMMMMWMMWWMWWMMWWWWWWWWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMWKKNWKXNMKNMWxklcdl':x;,;';l::ll::::;cc;cc;::,,;::::lllllllcllllllllllccccccc:::::::;;;;;;,;;,,,;;;;;o:Okox;,,,',,''''..,''..''''.':loo:;c:,;;;;;,',:xK0KNOxOoKNNNNNNNNNWNNNNNNNNWNNNNNNNNWNNWWWWWWWWWNWNWWWWWWWNWWWWNNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWMMMMMMMMMMMMMMMMMMMWWWWWWWWWWMMMMMMMMWMWWMMMWWMMMWWWMMWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWWMXXXWKXNMM0WMXdx::dc':d;,;,;l;ccc;;:;;::;:dc;::,,;:::cllllcllclllllllllccccccc::::;:::;;;;;;,;;,,,;:;;lcx0oOx:''''''.,,..',.'..''''..,lodc:::;;:;;:;,,,:x00XXdko0XNNWNNNNNNWNNNNWWNNNNNNNWWWNNWWWNNWWWWWWNNWNWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWMWMMMMMMMMMMMMMMMMMMMMWWWMWWMWWMMMWMWWMMMWMWWWMMMMWWWMMWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWMWWWWWWWWWWWWWWMMMMWWWXXWXXXWWM0NMKOc;:o:'cd,;;;;l,::::;:,:;,c;ol;;:;,,;cc:lllllclccllllllllccccc:::;;;;;;::;;;;;;;;,,,;:;;lld0kd0x;'''''.,,...,'.'..'''...';cll:;;;;;;;::;',,cx0KXOdo0XNWNNNWNNNNNWWNNNNNNNNNNNNNNNWWWNWNWWWWNWWWWWWWWWWWNWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMWWWWMMMMMWWMWWMMMWMMMMMWWWMWWWMMMMMMWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWMWWMWWNWWNXNNWWW0XW0k,::o,'cd;c:;;l,:;:;;;,:;;:::dc,:::;,:clclllclclcclccccllcccccc::;;;,;;;;;;;;;;:;,,,;:;;lld00l00d;'''''',,...,'....'''..''',;lc;,;;;:;:c:,,,,:dOKKxoKXNNNNWNNWNNWNNNWNNNNNNNWWNNNNWWWWWWNNWNWWWWWNWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMWWMMMMWWWWWWWWWMMMWWWMMMMWWWWWWWWWWWWWWMMWMMMWW
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWNXWXWWWWO0WXc'::l',:dcl;;;:';;:;;,,::l:c:ll:;c:::,:llllllclcc::cccccccc:cc:::;:c:;;;;;;;;;;;c;;;;::;c:x00l00Ol;''''.,,....,......''..c,..,cc:,',;:;;cc;',,,;oOKkxNNNNNNNNNWNNNNNNWWNNNWNWNNNNNNNNWNNWWWWWWNWNWWWWWWWWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWMWWWMMMMMMMMMWWWMMWWMWWWWWWWWWWWMWMMMMMMWWWWMMWWWMMWWWMMMWMMWW
+WWWWWWWWWWWWWWWWWWWWWNNNWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWMWMMWWWWWMWWWWWWWWWWWWWWWMMWWWKWNWNWWWOkN0;':::';;dcc,:,,';;;;;,,;:dk:cllc:cl:c:;cllllllccccc::cccccc:ccc:::cod,;c;;;;;;;;:l;;;;:;c,k00okOOxc,.'''','...'''.....'..'c:'.':c:,'',;:;cl:,',;,,cdoxXNWNNNNWWWNNWNNWWWWNWNNNNNNNNNWNNNNWWWNWWWNNWWWWWWNWWNNWWWNWNWWWNWWWWWWWWWWWWWWWWMMMMWWWWMMWMMMMWWWWMMWMWWWWWWWWWWMWMWWMMMMMMMMWWWWWWWWMMWWWWWMWMMWW
+WWWWWWWWWWWWWWWWWWWWWNNWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWMWKWMWWWNWWkkKd,':;;':,ll,':'',,,;;,';;:k0k:locc:oc::::;:::clcccc:oc::::cc:ccc::ccxxl,,,,;;,;;;',,',,:;::O00dxOOOl:,.''.,'....,.......'..'c:,..;::;,''';::l:;,,;,,,;cdxOO0XNWWWNNWNNWWWWNNNNWNNWWWNNNNNNWNNNWWNNWWWWWWWWWWNNNWWNNWNNNNNNNWWWWWWWWWWWWWMMMMWWWWMWWMMMMWWMMWMWWWWWWWWWWWMWMWWWMMMWMWMWWWMWWMWWWMMMMWWWWWWWW
+WWWWWWWWWWWWWNWWWNWWWWNNNNWWWNWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXNWMMXWNWNk00l,,:,'':'co..;.',,,;;'',:ck00Ocl:;::;lllc:;;:lllllcc:ooc::::;:c;olclxxx;;lc,;:oc;;oo:,';,,lxO0oxOOOd;;'.'..,.....'......''..':;,'',c;:;,'',;;:::,,;:,;,codkkxdk0KXNWWWWWNNNNNNNNWNWWNNNNWWWNNNNNNNNWWWWWWWNWNNWWWWWWWWWNNWWWWWWWWWWMWWWWWWMMWWWWWWWWMMWWWMWMWWWMWWWWWWWWWWWWWMMWWWMMMMWWWWWWWWWWMWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWNWWWNNWWWNWNWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWMMMWWWWWWWWWWWWWNXMMWWKXNWKOKKc,;:,'':':o..,'.,,;;;'',:lO0kxdlcocccoxxxol:;;::;:ccc;cdc;::;c:lol:dxxxccco':loo::ddo;';'d0kkkcOOOOO:;,'...,'....''......'...';;,'',c;;:;,'',;:c:;';::;,,cOXXXKOkkO0KXNWWWNNWNNNWWWWNWWNNNNNNNWNWWWWWWWWWWNWWWWWWWWWNNWWWWWWWWWWWMMWWWWWMWWWMMWWWWWWWWWWMWWMWWWWWWWWWWWWWWWWMWWWWWWWMMMMWWWWWWWWWWWWWWWWWWW
+WWWWWWWNWWWWWWWWWWWWNWWNNWWNWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWMWMMWWWWWWWWWWWWNNW0WMMWXXOWNKOKK;;:;,'':':c,.,'.',;;;,,c,oxkO000xclcccoxxxxdolccc;;:::::::cc::cxdxdxxxxllolcdxddd:ddx::;;O0O0OlOOOOOd,;'...'......,......'..'..,,,,,,:;;;:;,'',;::;;':cl;,ckXWWNNK00O00KKXNWWWNNNNWWWWWWNNNNNNNNWNWNWWWWNNNWWWWWWNWWWNWWNWWWWWWWWWMWWWWWWWWWWMWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWW
+WNWWWWWWWWWWWWWWWWWWNWWWNWNNWWWWWNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMWMWWWWWWWWWWWMNXWKNWMMM0NOWX0O00,:l,''':,;;:.''.'',,,,,c'xk000000Oocll:ldxxxxxxddxdollllloc:coxxxxxxxxxoxxxxxxxxxoxxxxxxkOOOOdOOOOOOk,;''...'......,......'..'..,,;,,,::;;:::,'',;::;,':do;cdOXWWWNNNXXKXXKKXXWWWNWWWWNWWWNNWWNNWNWWNWNWNNNNWNWWWWNNWWWWWWWWWWWWWWWWWWWWWWMMWWWMWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWW
+WWWWWWWWWWWWNWWWWWWWWNWWWWNWNWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMWWWWWWWWWWWWWKNWkMMMMNON0WX0O0k,,o,''.;,,;',''..',,,,,c,kkOOO00000kolol:oxxxxxxxxxxxxxxxdoxxxxxxxxxxxxxxxkxxxxxxdxkkxkOOOOOOOOOOOOOO:;'''..'.......'.....'...''.';:;,;:;,;;::;,'',;:c;''ckd:lk0NWWWWWWNXNNNWWWWWWWWWNNWNNNNWWWNNNWNNNWWNWWWNNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWWWNWWNWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMWWWWWWWWWWWWWWWWWKNWXOMMWWK0KXNK0OOk,,l,''.;,;,.:''..''',;,:;kkkOO000OkkkdllclloodxxxxkkxxxxxxxxxxxxxxxxxxxxxdddooooooooodxkkkOOOOOOOOOOk:;'.'..''.............,...''.:l:;,;:;,;;;:;;,,,,;cl;',lkxloOKNNWWNWWNNXXWWWMMMMMWWWNNWNNWWWWNWWWWNNWWWWWWWWNWWWNWWWWWWWWWWWWMWWMMMWWWWWWWMWWWWWMWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWNWWNWWNWWNWNWWWWNNWWWWWWWWWWWWWWWWWWWWWWWWMMMWWWMWWWWWWWWWWWWWWNXWW0XMMWWOKOWXKKOOk',l','',.,,..c'....'';,;;kkkkkkxxddxddddddddxxdodxxkOOOOkkkOOOOOOOOOOxddxxxxxxoollllllloddxxkkOOOOOOO:;'.....,'......'......'....,';lc;,;::;;;::;;;,,,;;llc,,lkxlxKNNNWWWWWNNXNXXWWMMMMMMWWWNWWWWWWWWNNNNWNWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWMMWMWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWW
+WWWWWWWWWWWWWWWWWWWWWWNWWNWWNWWNWWNWWWWWWWWWWWWWWWWWWWWWMMWMMMWWWWWWWMWWWWWWWWWWWXWWXXWMMWXOX0WK0NkOd,,l''','.,,..':......;',:kxdlcc:;'''''''';;coxxkOkOO000000000000000Okxkxxo;'.......''''',;;coxkkkkkkO;,,.....','............''....,,,:c:,,;cc:;;:;;,;;,,,;ldl:;lkklkNWWWWWWWWWWWNXXXNWMMMMMMMWWNNNNNNNNWNWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWNW
+WWWWWWWWWWNWWWWWWNWWNWNWWWNNWNWWNWWWNWWWWWWWWWWWWWWWWWWWWMMWMWWWWWWWWWWWWWWWWWWWXWWNKMWMMW0kNXN00NxOo,;o''.,''';...,,.....,'';:,..,,''............,oOOO000000000000000000Okdl'....................',;ldkkk,''.....,,''....... ....''....',,:cc,';:cc;;::;;,;;,',:loll:lkklOWWWWWWWWWWNWWWXKKKNWMMMMMMMWWWNNNNNWNNWNWNWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWNWWMMWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWNW
+WWWWWWWWWWWWWWWWWWWWNNWWWNWWWNNWNNWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWNNWKKNMMWWkOWWX0KXd0o,:o','','.,'...,'............:;''.'',;;;:;'...'ok0000000000000000000Okd,,;';,;loo::;,'.::;''.....:oko,... ....,,'........ ..'''..''',,,cc;';,::;,;::;;;;;;,,:clolcoxxd0WWNWWWNNNNNWNWWNK0KKXWMMMMMMMWWWWWWNNNNNNNWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNWWWWWWWNWWWW
+WWWWWWWWWWWWWWWWWWNWWNNWWNNWWWNWWNNWWNWWNNWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWNWK0KKMMWXkKWMK0KKoKo;cd',,';''.,...........'.';cdxo,:::odddxxoo;dxdkk00000OOOO00000000000OxO0ocoo0x0kOxdcl,xkxdoc;.....;,,.....'..,,,'....... ...'''..''',,,;c:;;';:;,',;:;,;,;;;,:cllold0OxONWWWNWNNWNNNWNNNNNK0KKNWMMMMMMMMWWWWWWNNNNNNWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWMMMWWWMMWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWNWWWWWNWWWWWW
+WWWWWWWWWWWWWWWWWWWWWNWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWNWO00XNMM0xXWM0OXOo0o;cd,,'',''.............,,dkO0Kx;dxcOOxKxOkdok0000OO00OOOOOOOOOOOOOOOOO000ddkdKOOO0Odokck00OOxl':ooo,.......''.',;,'....... ..,,'.'',,',,,cc;c.';;,,',;:;;,,;;,;:llolld0KOOXNWWNNNNNNWWNNNNNNNNKKKXNMMMMMMMWWWWNWWNNNNNWWNNNWWWWWWWWWWWWWWWWMWWWMWWMMMMMWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWW
+WWWWWWWWWWWWWWWWWWWWWWNWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWKO0OXKWWxkXWMOONxx0d;lo:;',','.............,,d0KKKO:dkokK0O0OkkdO000OOOOOOOOOOOOOOOOOOOOOOOOOxoxdxO0KOOdkxc00000xldkkkd.........,..,,,''...... .,;,,''',;,,,,;c::..,;;,,,,;:;,,,,;,;;clolloOXXXXXNWWWNNNNWNNWNNNWWNWNXXXXNWMMMMMMWWNNNNNWMMWNNNNXNXXXXXXNNWWWMWWWWWWWWMMMMMMMWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWNWWWWWWWWWWWW
+WWWWNWNWWWWWWWNWWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNXWM0OOOXkWNx0KWMOOXxKOd;loc;.',','............:;clx0KKxdOOxxdoodkxkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkkxxolcldkdcokOOkxxkkkkx,.........''',,;'''...... ..,;,,,',;:;,,,,;l:'.,,;:;;,,;:;;,,,,,,::lloookXNWXXNWWWWWWNNNNNWWWWWWWWWWNXXXXNWMMMMMMWNNNNNNWWWWMMMWWWNNXXXXXXXNNXNNNNWMMMMMWWMWWWWWWWWWWWWWWWWWNWWWWWWWWWNWWWWWWWWWNWWWWWW
+WWWWNWWWNWWWWWWWWWWWWWWNWNWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW0WWNOOOO0OXKxK0WMkK0dNOk:llcc.,',',.............llxxkOkkdodxddxkkkkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkkkkc.......'.;.,.';,;''...... ...,,;,,,,;:;,,,,,ll;',,;:::;,,;;;:;''',,;clcooox0XWWKKKXMMWWWWWWNWWNWWWWWWWWWWNXXXXXWMMMMMMMWWWWWWWWWWWMWWWWWWWWNWNXXK000KXNWNWWWWWWWWWWWWWWWWWWWWWWWNNWWWWWWWNNWWWNWWWWNWNW
+WWWWWNWWWWWNWWWNWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWOWW0OOOkkKxkoX0NWxXx0Xdxlccll.'','''.............:xkkkkkkkkkkkkkOOOOOOOOOOOOOOOOOkkkOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkkkkkkd........,';'','';,'''...... '.,;;,,,;;::;,,,:,c:,,;;;::::;,,;;;;;,,,,;clllloxOKXNN00KKWWWWWWWWWWWWWWWWWWWWWWWWNXXXXXNNMMMMMMMMMMMWWWWNNNNNNNNWWWWWWNNNXK00KXXNNNWWWWWWWWWWWWWWWWNNNWNWWWWNNNWWWWWWWWNNN
+WWWWWNWWWNWWNWWNWNWWWWWWWWWWWWWWWWWNWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXWWO0OOkkOxolX0XWkNdWOddoc:d:..,.''''.............ckkkkkkkkkkkkOOOOOOOOOOOOOOOOkxxxkOOOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkx'..... .;o:,c.,,,,,,.'...... .,.,;;,,,;;::;;,,:',:;,:::cccc:;,,,,,;;::::;clollldkOKKXXK00KNWMWWWWWMMMMMMMMWWMMWMMWWNNXK0O0XXNNWMMMMMMMMWWWWWWWWWNNNNNNNNNNX00XXXXXXXNWNNWWWNWWWWWWWWWNWWNNNWWWWWNWWNWWWN
+WWWWWWNNWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWOWWW000OkkkOllKKKWOOKXxlcOc:x,'.,''''..............'dkkkkkkkkkkkkkOOOOOOOOOOOOOkxxxxdOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxx,.,'.. .'ldo'o:.,',,''.'...... ''.,;;;,,;;;:;;;:,,,;;';ccccllllc;;;,,,;:cllc:looloodk0XXNXN000KNWWNWWWWWWWWWWWMWWWWWWNNNXNXXXKXXXXKKKXNWWMMWWWWWWWWWWWWWMMWWWWWWMMMMXXXNNNWWWWWWWWWWNWWWWWWWWWWNWWWWNNNNN
+WWWWWWWWWWWWWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWkWWXKKXOkxkkdd0X0XXxN0llcK::o,;..,,,'..... ........',xkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxokkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxx;.:o,..'cc:ddl.'.,:'''......... .',.;;:;;;;;;:::c:,,,;;',::ccclloooc:;;;;;::cccclooddodxk0KXXXXK000NWWWNNNNWWWWWWNNNNNNWWXKKKX000XXXK00OOkOO000KKKXXXXXXXNWMMMMMMMMMMMMMMMMMMMMMMMWWNXXNXXNNNNNNNNNNNXNNNN
+WWWWWWWWWWWWWWWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNkWN0KNW0OxxxokOKOXKKXxllodo:d,;'.,;;,'.... .........,dkkkkkkkkkkkkkkkkkkkkkkkkxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxx,,odc..,clc:do,;.,.,;'........... ..''.;;:;;;;;:::;lc:;,,;,',:cccccloddolcc::::cccclloooooddxkOOO000OkkOOKNXKKKKKXXXXXXXXXNXXXK00KK0KKKK0OkkkkkkxkOOkOO0KK00000KXXNNNNNNNNNNNNNXXKKKKKXXNXXNNNNNNNNWWWWNNNNN
+WWWWWWWWWWWWWWWWWWNNWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWXOWKONWWN0kxdoOOXO0XN0dolo;O;k',;..;;;'''... .. ...,..lxkkkkkkkkkkkkkkkkkkkkkkxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxo,cxxl.':clcclo,c'''.';,'.......... .'''.;;::;;;;::,occc:;',;,';cllcccloodoooolllooooollooooooddxkO00KKXXK0O0K0KXXXXXKXXKKK0KK000K00Okxk00KKXXXXXXKXNNNXKKKKKKXXKKK000KXNXXXXKKKK00KKXNNNNWNNNNWNNNNXXNNWWWWW
+WWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNXON0kNNWWXOdooOOXkXWXxxoll;d:x;.,'.';,,'''...'......,.'..cdkkkkkkkkkkkkkkkkkkkkkkkxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxlcxxxo;;;;;cllocc.,,,..,;''.......... ..''.';;:::;;;:;occccll;.,;'.;clolclllloooooooodxkxocclloooooooddxkkO00KKK0O0KXWNKKK00OOkkkkkkxxOKK00XNXXNNNWWNXXXNNWWNNXKKKKK000000KNWWWXKXXNXk0000KXNNNWWNNNNNNNNNNNNNN
+WWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWXKOXOkKXMWWXxkdOkXOWNO0dolc:.xlc.','.,,,,'.....:.....cd:'..:okkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxddoxxxxx;,';llllll:.,,','..,;'.......... ..'''.,;::::;;;;cclccclol,'','';:llollloloooolooodxkkdlccloodddoooooooodxxxkkkkO00000OkkkOOkkk0XNWWNXXXNWNNNNNXXK00OOOOO0KKKKXKKKKXXXXXKWMNXNXNXOKK0000KKXNNNNNNNNNWWNNNN
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXKOKkkOXWWWWXOlOkXNWKKdoocc:.d:l.';;..,,,''....;l:. ..ckko:.'lxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxc,;lllllcc;',,''',,.'','.......... ...'''.;;:c;;;;;c:cllccloo:''',',,,:clolololollooooodkkdolloooddddxxxxxddddxxkkkkkkOO00OOOkOKNNXXXXXXXXK00KOOOOOO0KNNWWWWWWNNNNNNNNNNNNNXMNMXNKWONNNXKKK0OKXNNNNNNNNNNNNN
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWXX00xkkWXMWWN0oOOXXNXxddl:c:,:;l.,,;...'','.....cll;...;dkkk:.kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxd.lllllccc,,,,''''','.;','... ..... ..'''.';;:::,;,::cccclcclol;'',,,,',,;clooloooooloolddxxxlllodxddddxxxxxxxxxkkkkOOkkkkkkkkO00O000000000KKXXNNXK00KXNWNNWWWNNNNNNNWNNNNNXW0XWXONONNWNNNNNXKKKXNNNNNNNNNNN
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWNNNNNWWWWWWWWWWWWWWWWWNXKWddkkWKWWNNWOkX0NXOddolcc:;o,:'',,'.....''.. ..lc:.xl,.lxkko;kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxx',;cccll,',,,,,,,,,,'.,,,'.... .........'''.,;;::,;,;:ccccclcccllc,',,,,,'.,::ccloooooooloooodkxolldOK0dOOOOO0K0000OOOO000000000K00KKXXWWWWWWWWWWWNNNKKK0XXNNNWNNNWNNNNNNNNXX0XXNW00XXNNNNNNXXNNXXXXNNXNNXXNN
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWNNNWWWNWWNWWWWWWWWWWWWWWWWWNKKWldxkWWNWWWMKKOXN0xxollcc:,o'.c.,''.......'....,ol:;kkdodxkk:okkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxx:'cllll;'',,,,,,,,,,,....',..... ........,',.';;;::,,;:ccccccllcclcc:'',:;,,'',,::cldddodoododdodxkdolx0KO0NWWNNWWWWMWWWNNXXXXNNWWWWWWWWWWWNXXNNNNNNNNNNXKKKXNNNXNXNNNNNNNNXNNNXXXNOXXXNNNXNNXXNNXNNX0XXXXNNNN
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNNNNWWWWWWWWWWWWWWWWWWWWWKKWkldkWWWNWWO0kKX0xxdollc:;;c'.l.,.,.............,cccckkkkkkkxlkkkkkkkkkkkkxoddkkkkkkkkkkkkxooodxkkkkkkkxxxxxxxxxxxxxl'c:::::;::;'',,,,,,,'......'..... ........,,.,,;;;c;;;::cccccccllcllccc,,;c:;,,;,;:::cdxxxdodddddddxxxoodkK0XNWWWNNNWWNNWNNNXXNNNNNNNNNNWNNNXNNNXNNNNNNNNNXXXXXNNNNNNNNXXKKXXXNXXWNNNXXNNNNNNNNNNNNNNXOXNNNNNN
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWKKWKcokXNNWWOOOxXKxxxdoolc::l,.'c','''.'.'.........,';:lkxxxxkxdkkkkkkkkkkkkkkkdxkkxxxxxkkkxddxkkkxxkkkxxxxxxxxxxxxxxo;c::cc:::::::,,,,,;;;,...;.,....... ........,,.,,,;;'l';;:ccccccc:clllccc;c:,;ll:;:::;:;:loxkddoodxxxxxxkkxxxONKKNWMNNNNNNWWNWNWNNXNXNNNXXNNXNNNNNNNNNNNNNNNNNXKXXXXXXNNNNXNNNNNNNNNNNNNNXNNNXXNNXXXXXXX0KNNXXNN
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWNNWWWWWWWWWWWWWWWWWN0WNlokXNWWkkOdOKxxxxooocc::l'..,,;,.'..'.'.........;::clxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxl:oooolcc:::::::;;;:;;;;..'';.,................;.,,,,:,,:;;::cccllllc:cllccc,:lc:clllllllcc:::cclooloddxkkxkkkkkOKNNKNMMWNNWWWNNWWWWNNNNXNNNNNNNNXNNNXXXNNNNNNNNNNXKXXNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXNXXXXXXXXNN
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWKNWko0NNW0kOok0xxxxoool:c::c'...:','''.''.'.........:::lcdxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxxxxxccoooooollcc::;;;:::cc::;....;;.'................,,,,,;c'':';:clllllllc::cllcc''lllclloooooddddoollcllloooxxxxkkOOOO0KKKNWMWNNNNNWWWMWWWNNNNXNXXNNNNNNNXXNNXNNNNNNXNXKKXNNNNNNNNXNNXNNXNXXNNNNNXXXNXXXXXXXXXXNXNNXX
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWKNOxXONOXOloOxxxxdooocccc:;''..;',,.'..''.'.........:::lclxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc:dddooooooollc::;;;;;:clcc;.'.'::.................,;;;;,;;'';,cclolllllllc::lllc,;:ollloooooddddddoodddddddxxxxkkOO0OO000KKNWWNXNXNNNNWWWWNNWWNXNNXXXXNNNNNNNNNNNNNNNNXXKKXWWWWNNXXNXNNXXNXNNNNNXXNNNNXXXXXXXXXNXXXX
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWXK0XxkxO0llddxxxdoooll;cc;';,...,,,.'..'''..........':::llcoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxo:loddddddddddoollc:;;;;;cllll;.'.:::'... ............;;;;;,:;'':cllloollllolcc::ll::kcloooooooodddddddodxxxdodkkkOOOkOOOOOO000KXWWNNNNNNXXNNNWWWNWWWWNNNNNNWWWWWWWWNNWWWWWWNKKXNWWNXNXXXNNXNXNNXXXXXXNNXXXXXXXXXXNXXXX
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWW0K0xok0llodxxxdodollx:c;;.;,...;',..'.''............,c:cllccoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxllldddddddddddddddoolc::;;;;:clllc'.,::c. .. ...........';;;;;;:,,,;ooollooooooolllcclclxdcooooooooddddddxdxxxxxddkxkOOOO0OOOOkO0K00KXNNNNNNNNNNNNNWWNNNNXXXXNXNNXNXXNWNXNXXNNXXXKKXWMWNNNNXNNXXXXNXNXXXXXXXXNXXXXXXNXXNX
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNWWWWWWWWWWWWWWWNWWNWWN0XOdO0llldddddodolllO:c.',,'''.'','.'................;ccclllc:cdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdllodddddddddddddddddddoolc::::::cllll;.'ccc.... ...........';;;:;:;,l:,loooloooooooolllccoccoocooooooddddddddxxxxkkxO000kkOOOOO0OkkkK000KXKXXXNXXNNNNNNWWWNNNXXNNNNXNNXNNNNNXXNXXXXXXKKNWMNXNNNXXNNNXXNXXXXXXXXXNXXXKXXXXXX
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWN0XKkO0llcododolddllloO:,.';',;;..'''........ ..........:lcclollc::lxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxolloooddddddddddddxdddddddooolllc::::llooc..:oc...' .'........,;:::::;:ol,lddolloooooooollloxolcdxooooddoooddddxkkkk00OxkKWX0kkOOOOOOOOXNXKKKKK0KKXXNNNNNXXNWNNNXXNNXNXXXXNWNNNNNNNNNNNNXKXNMNXXXXXNNXXXNXXNXXXXNXNXNXXXXXXXX
+WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWNW0KKOK0occloloolodlllldx:.';'.:c,'..','....... ...........:llclooloo:;:oxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoc,ldddddddddddddddddxxxdddxxddooodddoccccloo'c.'c:..... ..'.......,::::::;:do;:dddlcooodooddollxK0xooddodddddodddddxkkkkO0K0kOXMWKOkkOOOOOOKXNNNNXKK000KXXXXXXXXNWNNNXNNXXXXNXXXXXXXNNXXNXXXXKXWMWXXXXXXXXXNNXNXXXXXKXXXXXXXXXXX
+WWWWWNNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNWNX00OX0dc:collollolloooxd'.'c.':c,;..',,....... ..........'.;lllloolodd'',:oxxxxxxxxxxxxxxxxxxxxxxxoc,'':ddddddddddddddddddxxxxxxxxxxdddddxxxdollool;o:.,....'. ..''.....';ccc:::,;od:;oddocooddddddoloONMXOdddooddddddddddxkkkkkkOXK00NWWNKOOO00O0NNNNNWNNNNNXK0O0KXXXXNWNNWNNNXNNXXNXXXNXXNXXXXNXXXXXNMWXXXXXXXXXNXNNNXXXXXXXXXXXXKKK
+NNNNWWWNNNWWWWWWWWWNWWWWWWWWWWNNNNWWWWNNNNWWWWWWWWWWWWWWWWWWWWNWWWWWWWWWWW0KOX0xo::lccllclcloooxO:..;c.;:;;:;'.;;...... ...,.......'.:lollooloo,;;,.':oxdxxxxxxxxxxxxxxxdl;',::,oddddddoodddddddddddxxxxxxxxxxxdddxxkkkkxdoo,odl,'... '....',....'':ccc:::,;odo;lddd:oddddddddoo0WMMNOxxdodddxxdddxdxkOkkkkkOKXKKNWWWN0kO0O0NWWNXWNNNNNNNXKO00KKNXXWNWWNXXXXXNXXXNNNNXNNXNXXXNNXNMMXXXXNNNNNNXXXXXXXXXKXXKXXXXK
+NNNNNNNNNWNWWWWWWNNNWWWWWWWWWWWNNWWNWWWWNNWWWWWWWWWWWWWWWWWWWNNNWWWWWWWWWX0ON0kk::l:cccccclcooxxO..,c;.;;c:,;;,';...... ....,.'......'.:lllloolo,,,,,,'';coxddxxxxxxdxdl:,,;:;;;,ddddddddoddddddddddddxxxxxxxxxxxdddxxkkkOOkxd,xdd:''........',''.';,:llccc:;lood::dddcodddddxxdodOWMMWN0kdxdddxxxxxxxxkOOkkkOOOKXXNWWNWKOO0OOKXWWWNNNNNXXNXXKKKKKKXXNNNWXXNXNNNNXNNNXXNNNNXXXXXXXWMWXXXXNNNNXNXXXXXXXXXXXXXXKKX
+NNNNNNNNNWNWWWWWNNNNNWWNWWNWWWNNNWNNNNWNNNNWWWWNNWNWWWWWWWWWWNWWWWNWWWWWNO0X0O0c:l::::clc:klddkxd..:l..;,c:;;::,;............',c,..'..'.:lollooo,;;,,,,,;,,;coddddxdl:;;;;;;;;;,'ddddooooooodddddddddddxxxxxxxxxxxxdxxkkkkOOOkclxxxd:'''.....','''.,l;cllccc:looodo:lddcldddxxxxxxdkNMMMWNXOxxxxxkkkkkxxOOOOOO0000KXNWWNN0000KOKKXWWWWNNNXNNXXNNXXXKKXNNNWNNNXNNXXNNNNNNNXXXNXXXXXNMMWXNXXNNNXXNXKXKKXKXXXXXKKXX
+NNNNNNNNNNNNNWNNNNNWWNNNNNNNNNNWNNNNNNNNWWNNWWNNNNWNWWWNNNWNWWNNWWWNWWNWXkXO0Kxloc;;;:llllKodOOO'.,l'..,;:c:,:;l,............';:c:...,',.,looloo,;;;,;,,;;;;;;::ccc:;;;;;;;;,,,,.oddddooooooooddddddddddxxxxxxxxxxxxxxxkkkkOOOO,kkkkkl',,''.:'.;,''',o;cllccccooooddlcddlcxxxxxxxxxxx0WMMWWWWKOxxkkkkOOkkO00000KKKKKXXXNNWKKO0X0KXKNNWMWWWNNNXNNNNXXXKXNNNNNNNXXXXXXXNNXXNNXXXXNNXXWMMWNNNXXNXNXNXNXXXXXKKXKKXKK
+NNNNNNNNNNNNWNNNNNNNNNNNNNNNNNNNNNNNNWWWWWNWNWWWWNWWWWWNNNNNWWNNWWWWWWWNXKkXXK0Od:;;:lookxKok0Od..l:...'c:c;,;;cl.... ,......',::cl'..,,,.'cdolo';;;;;;;;;;;;;;;;;;;;;;;;,,,,,''.odddddoooooooooodddddddddxxxxxxxxxxxxxxkkkOOOOx;OOkkkl;',,,''..',,.',l;loclllooooodxdlodocxxxxxxxxddxkXWMMWWWNN0kkkkkOOkk00KKXXXXXXXXXXNNNXXXXN0KXXNNNWWWWWWNNNNNNNXXXXNNNNXNNNNXXNXXXNKKXXNXXXXXXNMMNNNNNNNNNXXXXXXXXKKKKKKKKK
+NNNNNNNNNNNNNWNNNNNNNNNNNNNNNNNNNNNNNWNWWWWWWWWWWWWWWWWNWNNNNNWWWNWWWNWW0d0XXXKOc:;;looOkxKo0OO..:l.''..:::;,,::l.. l.......,::::c,..';,..:ool.;;,;;;;;;;;;;;;;;;;;;;,,,,,''''.cddddddoooooooooodddddddddxxxxxxxxxxxxxxkkkOOOOcoOOOkk:;..',,,''',:,''c:llloooododddxxdodocxxxOxxxxkkddKWWWWWMWWKOOOkO0KOO0KXXXNNNNNNNNNNNK0KXWWXNXXXNNNWWNNWWNXNNNNXXKXNXXXXXNNNNNXXXNNXXXXXXXNNNNMMWKNNXXNXXXXXXXXXKXKKXXKKKX
+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNWWNNWWWWWWWWNWWWWWWWWWWWWWNWNNNNNWWNWWWKokXXNXKd:::lcdOOkoKkOk;.,l;.;'''':::',:c:.. ,o'. ...;::::cc;. .;;'..''..',;;;;;;;;;;;;;;;;;,,,,,,'''...:dddddddoooooooooodddddddddxxxxxxxxxxxxxxxkkOOOO;kOOOOk;,...',,,,,';:'';:llooooddddddxxxoddcdkkOxxddk0kxkXWMWMMWWX00K0OO0OOKXXNNNNNNNNNWWNNNXNWWWXXWNWNNNWWNXNWNXXNNNXX0XXXNXXNXXXXXNXXXXXXXXXXNXXNMMWXKXNXNXXXXNXXXKKXXKXXKKXX
+WNNXXNNNNNNNNNNNNNNNWNNNNNNNNNNWWNNNNWWWNWWWWWNNWNNWWWWWWNWNNWWNNNNWWWkOx0XXNNOoccclkkxxloK0x:..:c.,c'''.:;:,,;:;.. oo;. ...lolc::c;'...':,..........;;;;;;;;;;;;;;,,,,,''''...'lloddddddooooooooooddddddddxxxxxxxxxxxxxxxkkOOOk,OOOOOO:,....,,;;,,,;'',:lodddddddd0OkxkdddcOOOxxxoxd0X0x0NWWWWWWWXKOXX0OOKXXNNNNNNNNNNNNNXNXNWWNOXXXXXNWWWWNNWNXXXNXXKXNNXXXNXXNXXXXXXXXXXXXXNXXXWMMNNKNNNNNXXKXXXXXXKKKXKKKK
+NXXNNNNNNNNNWNNNNNNNNNNWNWWWNNWWNNNNWWWWWWWNWWNWWXNWWWWWWWWWWWWNWWNWWO0kkKXNNXOdo:o00XK0OkKd;;.'c.'cc'''.:,:,,,:,. .olo. ..ooooo;;'''....,,'...... ..;;:;,,,,,;;,,,,,,'','..'''',,:dddddddoodooooodddddddddddxxxxxxxxxxxxxkkOOOd:OOOOOOc,...,l:,;;,,,,,';lddddddddOW0kxxxxdoKOkxkoX0xKNKOOXNNXNWWNNXKKW0O0KXNNNNNNNNNNNNNNNWKXWWNKXXXXXXXNNNNNWWNNNWWNNNNXXXNNXXXXXXXXXXXXXXXXXXXMMMNXX0WNXXXKKXXXXXKKXXKKXKK
+NNNNNNNWNNNNNNWNNNNNNNNWWNNNWNWNWWWWWWNWWNNNWXXNWXWWWWNWWWWWWWWNNWWWO0xkO0KXXKkdcxKNWWNNx0o,;,.;'.ccc,,;.;,:;;.;' .,cd' .'oooo':':,'''...';,..',...,:cc:::::;:::;,;:;;;;;;;:::;:;'oddddddddddoodoooddddddddddddddddxkkxxxxxkkO0llOOOOOkl''.';xo:,;:,,;:;:lddxddddOWWKkxxxxdx0kxkdXNXOOXX0OOXWNNWWWNNXK00KXXK0XNNNNNNNNWWWWNNXXMWXXXNXXXXXNWNXWNXXXXNNNNWWNNNNXXXXXXXXXXXXXXXXXXXMMMXXX0XNXXXXNKKXXXXKKKKKKKK
+NNNNNNNNNNNNNNNXNNNNNNNNNNNNNWWWWWWWWWWWWNNWN0NWXXWWWWWWWWWWWWNNWWWXO0okOO0XXKklOXNWWNNOxc,::..,,cllc;,:.;,::;.;' . .;d,. .:xdl'clc;cc,......,,'....':cccc::::::::;;;;;;;:cc;:::;:c,oddddxxxdddddddddooddddddddxxddddddxkkkxkxxkOOloOOOOOkl''.,:xxdc:;;;;;,;;lodxdd0MWWOxxxxdxkOxkdXXWW0kXXXOkKNNXWWWNNN00NWNNX000XNNNNWWWWWWNNXWWNKXXXXXXXXWWNWNXXXXXXXXXXXNXNNWWNXXXXXXNXXXXXXXWMMNNXK0XWXXXXXXXXNXXK00KXKKK
+NNNNNNNXNNNXNNNNNNNNNNNWNNNNNNNWNNWNNWWWNNNNN0NNNXWWNWWWWWWWWWWWWWWxXdokxkOKXOd0NNWWNNOl;,;c,.'c:llol:.:';,cc,';' .. .dc;. lOd;dooll:cc,......','...;::cc:::::;:::;,;;:::ccc;:cccll:oxxxxxxxxxxxxdddxokoddddddddddxxxddddxxkkkkxxkkcdOOOOOkl.'';lxxdodc,,;:;,;lllodNWNMKkxxkx0kkxkxXNWWNKkXXX0kKXXNNWMNN00XWWNXXXKO0XXXNNWWWNWNNWWWKNXXXXXXXNWNXXXXXXXXNNXXKXXXXNXNWWNNXXXXXXNXXNMMWNXKKXXNXNXXKXXKNNXXKKKXKKK
+XXXNXXNNNNNNNNNNNNNNXNNNNNNNWNNWNNNNNWNNNNNNNXKXNKNWWWWWWWWWWWWWWWOKklodddOKkxXWWWWNNO:,,;cc..lclooll:.:,;,c:'.'..,. .Od: . lOcdxxdooc:cc;.......''..::cc::::::::::;,::cccccc:clllllclOkxkkkkkkkkkkxdxxdXOdxdddddddxxxxdddddxxkxkkkxkcoOOOOOkl.',;oxddodd:',;:::odook0NMXkxxkkK0xdkKNWXNWXKkKNNXOKKXXXWMN00XXWWWXKKXOKXXXXNWWMWNXWWW0XXXXXXXXXWNNXNXXXXXXXXXXXXXKXXXXNNWWNXNXKKXWMMWXXXXXXNXNXXXXNXXXXXXNXXXXKK
+NXNXXNNNNNNNNXNNNWNNNNNNNNNNWNNNNNNNNNNNNNNNNNXNNKXNNWWWWWWWWWWWWNxKocloox0xOXMWMNNKo,'';c::.,oooolllc.c;:;c:'.. ,:. Odc . :cdxxxxdlol:cc'.......''..,ccccc:::::::c:ccccccllccllllll:OOO0OOkkOOOkkkkxxxxNW0kxddddddkkkkxdddddxkOkxxxkloOOOOOOl..,;oxddlddl:'',::cloO0OOOkxxkkKXOxkNWNXNWXXXkKXNX0XKXXXNK0KXXXWWWK000KXXXXNXNWMMNNMNKXXNXXXXXXNNNXXXXXXXXXXXXNNXXKXXXKXKXNNXXXNWMWNXXXXXXXNNXNNXXXXXXKXXXXXKKKK
+NNXNXNNXNXXXNNNWNWNNNNNNXNNNNNNNNNNNWNNNNNNNNNNXXXKNNNWWWWWWWWWWWk0kccclokdKNWMWXOd;,,,;::ox.;odoolll;;ll;c:,;. .'c. ck. . 'dxxxxddololccc............,cc:::::::cllcloollooocclllcll;kO00NKkOOOOOOOOOkxxxNWWKOkxdddxx0KK0kOkxxdxOOkkxxolkkkOOOd'.';oxdocdodl,;;::cccokXKdodxkNN0xkWNNXXNWXXXkKXXNXKXXXK0KWWXNXNNNKKXXXXXXXKNNXWWNMKXXXXXKXXXXXXXXXXXXXXXXXXKXNNXXXXKKXXXNNXXNWNXXXXXXXXXXXXNNNNXNXXKXXXXXKKXXX
+NNNNNNNNNXXNNNXNXXNXXXNNNNXXXXNNNNNNWNNNWWNWWNNNNXKXNWWWNNWNNNWWNo0occ:cdxK0kOOOdl;,,,;coxkd';ddooollcklx:l;,, '';.. 'x . dxxxxxdoollolc:;...... .....,c::::::loolcloolcllllclllcclc'ldxk0KKO0O0000000Ok0WMMWK0xxxxxkOKXKKXKK0000000kxolxkkkOOx;.';lxdkldddo:,:c::ccccooddooOKOxkXNXXXNWNXNXkKXXNKKX0OKXNWWNXXKXXXXXXNXNNKXNXNNWNKXXXXXKXXXXXXNXXXXXXXXXK00XNNXXXKKKKKKXXXXXKXKXKXXKXXXXXXNNNWXXXXKXXXXXXXXKK
+NNNNNNXNNNNNNWNNNNNNNXNNXXNXXNNNNNNNNNNNWNNNNNWWNNNK0KKXWWNXNWNWkkOl:c,c:odkOkdl;;;;';oxkkkd,;ddddoooKOdNOo;;. .:.'...,' . 'kxxxxddool:cclc;. .. .::.....;::cllooolcllllcllllclllccll,..,codkkxxxxk000000O0NWMMWN0Okxxkk00KNWWNNWWMX0O0Oxooxxxkkko,.,cdkkloddol:;cc::lllcclodkxdoONNXNNXNWXXXXkKXNKOkKXNXNXNNWWNKXXXXXXXNNNXXXXWXKXXXXXXXXXXXXXXKKKXXKKXKKXKXXXXKKKKKKXKKKXKXKKXXXXKXKXNXXXXXXNNNXXXXXNXNNXKKK
+NNNXNNNNNNNNNXNNNNNNNNNXXXNNNNNXNNWNNNNNNNNNNNNNNNNNXXK00000K00kdkxllcldxxdl::::;:::okkkkkkx;:oxxdddKNNxKMO;;. ':..'.. okxxxddooooccc:cc. ;:::;....,llllllllcllllcllllc:::;',,;,::'.';codxxood0K0K0000XWWWNXXKOOOkO00KNWWWWNWWX0OO0kooxxkkkxc'';lxxoododol::cccddllcccooddxkO0NNXNWXXXXXkXNXX0KNNNNXXXNNNXXXXXN0KWXXXXXNMNXXXXXXXXK0KKXKKKXXNXKKXXKKKKKXXXXKXXKKKKXKKKKKKKKXXKXKXKKKKXXXNNNXXXXXXXXXXKK
+NNXXXXNXNNNNNNNNNNNNNNNNXNNNNNNXNNNNNNNNNNNNNNNNXNNNNWWWNXK0OOkkO0kxdo:llc:;coccclxxkOOkkkkk;:lkxxx0NWMxOWcc:..;c'.,.. ..kxxxxddoooooccc:'. .,::::,'..'lccccc::cccc:clllc;:;::::;:::;':::;;:coxxk00Ox0KXKKXNNNNWNNXKKOO0KKNMMMWWWNNK0OOkdodkkkkxc',ckxdooddddc:cccdOxoollclddxkxxk0XMXXNNXKkXXXK0XXNNNNXXXNK0XXNXXWNXXKXWMWNXXXXXKXXXKKXXKXKKKXXXXKXXXXXKXXKKKXNXXKXXXKXKXKKKXXKKXXKXXKXXXNXNXXXXXXKKXXKK
+XXNXNNXNNNNNNNNNNNNNNNNNNNNNNXNXXNNNNNNNNNNNNNNNNNNWWWWWNNWWWK0K0XOkxd:odooodddooxkOOOkkkOOOc:lxkkONNNMKOxc:l;;,l' ,'. .cxxxxxddoolcc:;..... ....;:c:::,'..:cccc::c::::ccccc::cc::;;::::;;:loc:;,:dxxxOkdlokkxk0NNNNWMWNXK00KKXNNWWWWWWWX0kkOxxkkkkkxl;;lododddddlcllloOOkxdooddxxxkxdxO0XNNXXOOXXXOXNXXXXXXXKkOKKKNWMMMWMMMWXNXXXXXXXXXXXXXXXXXXXXXKXXXXXKKXKXXKXXXXXXXKKXKKKKKKXXKXXKXXXNXXNXXXXXXXNXXXXKX
+NNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNWWWWWWWWXXX0KNOkxkloOkxdddodxxkOOkOOO0OOoccokkNWNNWWolcc:d,;Ok ',... .;c:',::ccll;......... loooodollc:cc;'..;:::::::::::::::::;;:c:cclc:;;:cllol,,oxxxkkOxxxkxddxkkO0KNWWNNXKKKXNNNXNNNWWNOxkkOOOkkkkxdlc:::lddxddlloloOk00XK0kkkxxxxkxddk0XXXOKK0KXXXXXNNXXKKXXXXNNWWWWWMNXXXXXXXKXXXXXXXXXKXXXXXXXXXXXKKKKXXXXXXKXXKKKKKKXKXKXXXXKKXXXXNXXNNXXKXXXXXXKKKX
+NNNNNNNNNNNXXNXXXNXXNNNNNNNXNNXNNXNNNNNNNNNNNNNNNWWNWWWNWMWXXNNKXN0Ok0xc0OkxddxkkkOOOKK0X000xcclkOWXNXKdlc::0X::lX'., .. do:,;;;;;;. ' ..... .ooooddxxxxocc::;..;;;::::::::::;;;:clllccclolc::clllll;,oxxxxxkkkxdkkkkOOOOOO0KKKXNNXNXKNXXXXNWNXkdxkOOOkkkkkkOd::;;:llolooolkNNNNNNNXK0kxkxxkkxdk0OKXXXNNNNNXXXXXXXXXXXXKXXNWNXXKXXXXXXXXKXXXXXXXXXXXXXXXXXKXXXKXKXXXXKXXKKKKXKKXKKKKXXXXXXXXXXNNNNXXXKXNXXXXKX
+NNNXNNNNNNNXXXXXXXXNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNWWWWWWWWXNNXNNN0OOXxlKXXXXWNXXXXXXXKXOkkO0cooxWNWW0ool:lKKKO::od...... .;,;;;::..,;;;. ...,llloodxxxxxxddocc:'.,;,,::c:;;,;:clooollllllooolccllloolc;ldxxxxxxkkxxxxxxkkO0KKXXKKKKXXKXKKKKXNNNWXOxxxOOOkkkkOXKxdddxddxxxdooOWWNNNXNXXNK0kxkkkOkddx0XNNNXXNXNXXXXXXXXXXXXWNNXXXXXXXXXXXXXXXXXXXXXXXKNXKXXKKKXXXKKKXXXXXXKXKKXKKXKXKKXXXXKKXXXNNNNNNXNXXNXXXXKK
+NNNNNNNNXXXXXXXXXNNNNNNNNNNNNNXXNNNNNNNNNNNNWWNNWWWWWWWWMWNNNNKWWN000N0xdNNNNWMNXK0000000XNWWdxooXWNklooxKWN000Oc;c;..'... .:ccl; .ooo,.;;...dooooxddxkxxxxxdddol;....:cc:,;:cloooooooooolllooolcolooolc:cdxxxxxxxxxxdxxxxxxxkOOOOOOOOOOOOOkkkOOO0000OkkOOOk0O0NXKxdxkxkkkkxdoo0WMWWNNWNNNNK0OkkkkOkxxk0XXXXXNXXXXNNNNNNNNXXXXXXXXXXXKXXXXXXXXXXXXKXKXXXKXXXXXKKKKXXXXXXXXKXKKXKXXKXKXKXXXKKKKXXXNXXXNXKXXXKKXK
+NXXNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNWWNWWWNMWWNNNNNKWMKK0NNxdkWNX0K000KNNXXXXXXNOOo0odXxoooOWNKk00Okkl,;....... .:c. :ol.cc:,.cxdoooodxddxxxxxxkddol:'..clllloooooooooooooooollloollolooool:ldxdxxxxxxxxdddddddddxxxxxxxxxkkkOO00KKXKKXX0OOOOOOXOKNNNOdddXXK0kxxdlkKWWWWNXXXXXXXK0OOkkOOkdxOKXXNXXXXXXXXXXXXXXNXXXXXXXXXXKXXXXXXXXXXKKKKXNXXKKKKKKKKKKKKKXXKKXKKXKKXKKKKKXXXXXKXXKXXKXXXXXXXXXXXX
+XXNNNXNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNXXNNNNNNNNWWWWWWWWMWNNNNNWKXWWWXNWOdxKKXNWWNXXXXXXXXKOOKWxOdlolloO00xxOOkkxxxx:,,...... .o'clc:.:xoxlololddxxxkkkkxkxl;,....:lllooooooooooooooooollllooooloooolcodddddddddxdddoodddddddddddddxxxxxkkkO0KXNWKlK00OOXK0NNNX0xddO0XK0kkxdkOXNNNNNXXXXXXXX00OOkkkkxdk0XNXXXXXXXXXXXXXXXXXXXXXXXXXXXNXXXXXXXXXKKKXXXKKKXXKKKKXXKKXXKKXXKKKXXXXXXXXXXXXXXXKXXXXXXXXXXXXXKX
+XXNNNNNNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNWWNWNMWWMWNNNNWWWXNX0WWWNXWMMWNNXXXXKkOkOkxdkkddocolclxkkddxkkkkxxxxx,oc;;....... ....cllc,cdkxdolocolodxxxxkkko,.',;;;'..:lloooooooooooooooooolllloooooooolcldddddddddddddollodddddddddddxkkkOO00000KKOcXNOO0XKKNNNNNKkkOkkOO0kkkd0OOXXXXKOOXXXXXXXkK00Okxxxxdk0XXXXXXXXXKXXXXXXXXXXXXXXXXXXXXXXXXXXKXXXXKKXXXXKKKKKXXKKKKXXXKKXXXXXXXKKXXXXXXXXXXXXXXXXXXXXXXX
+NNNNNNNNNNNXNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNMWWMWWWWWWWWXNW0NXxNXNNNXXXXXXXXKKKKK000OOOOk:ko:dkodkkkkkxxxxkO.OOdc,'.. ....,'c;lllll:ddxkoklllclloddkxxd,.',,,;;:c;..,::;:loooooooooooooooooooooooooool:cdddddddddddddddlllooooddddxOO00000000000kd0KWOkNNNNNNNNNXOkXKXK0OkxxokkdOOOOKXXXXXKXKOXXXKK0OkxxxdxkKXXXXXXXXXXXXXXXXKXXXXXXXXXXXXXXXXXXXXXKXXXXXXKKXKXXKXXKXXXXXKXXXXXXKKXKNXXXXXNNNXXXXXKXXXXXX
+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNWMWWWWWWWWWWWXKNKWOkX0KNXXXXXXXXKKKKKKXXXXXXXXOlKd:o0000OOOOOOOO0.KOdcc:,'... .,,,cllll:oxokxdxlllclloddo,.''''',,;;::;'..;;,.;oooooooooooooooooooooooooool;lddddddddddddddddoccoddxxxOOOO000000OOO0kxO0KWO0NNNXXNNNNXOOXNXNNN0kkkxK0ONXXXXXXXK0OKXXXXXXKX0kxxxdxk0XKXKXXXXXXXXXXXXXXKXXXXXXXXXXXNXKKXXNKXKXXKKKXXXXXXXKXXXKXXXXXXXXKKKKKKXXKXXXXXXKKXXXXXXXX
+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNWWWWWMWWWWWWXKXXk0WX00XXXXXXXXXXXXXXXXXXXXXXXXxokxdx000000O00000.Kkdclooo:,,... ..,;llccolodoxlccclllc' .'''''',,,,,',,,...,''ooooooooooooooooooloooooooooc,oddddddddddddddddddoooxxOOOOOOOO00OOO000dk00KWOXNNNNNNNXXX0ONNNNNN0kOkONKOKXXXXXXKKXXXNXXXXXXXNXOkkxxxk0KXXXXXXXXXXXXXXXXXXXXXXXKXXXXXXXXXKXXXXXKKXXXXKXXKKXXXKXKXXXNXKXXKKXKXXXKKXXXXXKXXXXXXXX
+NNNNNNNNXNNNNXXNNNNNNNNNNNNNNNXXNNNNNNNNNNNNNNNNNNNWWWWWWWWWWWWNKK00WNK00XXXXXXXXXXXXXXXXXXXXXXXX0kxK0OkOOO000O0O00.0dodxxdddddxl.. ...,;llllccc:cccc,... ...'...,,,,;;,,,'...loooooooooooooooooollooooooool:;odddddodddddddxxxkkkddkkkkkOOOOOOOOOO00dxO00XW0XNNNNXXNNNN00XXXXNXKkOkkXXk0XXXXXXXXXXXXXXNNXXXXNXXOkkxxk0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKXXXXKXNXXXXXXXXXXXXXXXXXXXXXXXKXXXXXKXXXXXXNXX
+NNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNXNNNNNXNNNNNNNNNNNNNWWMWWWWWWWWWWXK0WWWK00KXXNNXXXXXXXXNNXNXXNNXK00K0OK000OkkkO00000'loxxxxxxxddx::dl;.. ..,,,;,,'''......''',;:;,',,,,,,'...'looooolooooooooooooolloooooool,cddooooddddddxxxxxxxkkkdxkkkkkkkkkkOO00oxO00OXMXNNNNNNNXXXXKKXNNNXXXOOkkNXOOXXXXXXNXXXXXXXXNXXXXKXNOxxkxxkKXXXXXXNXXXXNXXXXXXXXXXXXXXXXXXXXXXXXKKXXXXKKXXXXXXXXXKXXXXXXXNXXXXXXKXXXNNXXXXXXNNXX
+NNNNNNNNNNNNNNNNNNXNNNNNNNNXNXNNNNNNNNNNNNNNNNNNNNWWWWWWWWWWWWWWN0NWMWK00KXXXXXXXXXXXXXXXXXNNX00KKKK000000000000000:'xxxkkkkkkkl;oooodxl:'. .....';,,,,;;;:. ...',,,,,,.,ll'..;cllloooooooooolllllloooooolc:,ldddooddddddxxxxxxxxxxxdddkkkkkkkkkO00oxO00OONMNNNNNXXNXNNNXKNXXXNNXOOkONN0OXXXXXXXXXNXXNXXXXXXXKXXKOkxxkk0XXXXXXXXXXXXXXXXXXXXXXXXXXKXXXXXXXKKXXXXXXXXXXXXXXXXXKXXXXXXXXXXXKXXXXXXXXXXXXNXXXX
+NNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNWWWWMWWWWWWWWWXXWWWN000KKKXXXXXXXXXXXXXNNXKO0KKKKKK000000000000kcd,;dxxxxxxxl:ooddxkxkkkdl;,... ........;:;.. ..',,,'':cccc,...loooooooooooooooolllloooolc::,odddddddddddxxxxxxxxxxxxxoodxxxkkkOO0oxO00OO0WWNNNNNNNXXNNNKKNXXNNXKkOkkNN0OXXXXXXXXXXXXXXXXXXXXXXKXXKOkxxOKXXXNXXXXXXXXXXXXXXXXXXNXKKKKXXXKKKKXXXXXKKXXXXXXXXXXXKXXKKXXXXKXXKXXXNXXNXXXNNXXX
+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWMWWWWWWWWW0WMWXK0000KKKXXXXXXXXXXNNNXOkKKKKKKKK00000000000xlxdd;,:oddool:ooddOOxxkkkkkxooolllc:;,'...................,;:loool...;oooooooooolllllllllllooolc:;:oddddddddddddxxxxxxxxxxxxxdoooxkkkOOoxO00OOOKWXXNNNNNNNXNNNX0XXNNXN0kOkONN0OXXXXXXXXXXXXXXXXXXXXXXXXKKX0kkxOKXXXXXXXXXXXXXXNXXXXXXXXXKKXXKKKXXXKXXXKXXXXXXXXXXXXXKXKXXKXXXXXXKXXXXNXXXXKXXXX
+XXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWMWWNWWWWKNWMWX0Ok0000KKXXXXXXXXNNXXkOXXXXKKKKK0000000000xdkxxdddc;;:ol;doodO0kxkkkkkkkxdddooollll:cooc;,;llllll:,cooooooooooo..',loooolloollolllllllllooolcc,lddoddddddddddxxxxxxxxxxxxxxxo;xkkkOdxO00O0OOKNKNNNNNNNNNNNNK0XXNNNNOkOxONNk0XXXXXXXXXXXXXXXXXXXXXKKKKKKXX0xk0XXXNXXXXXXXXXKXKXKKXNNXKKXKXKKKXKKKKKXXNXXXXXKXKXKXXKKXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNWWWMWWWNWNOWMWWKOkkO000KKKKKKXXXXXXKk0XXXXXXKKK00000000K0kxxkkxxxxddddo;doodkO0kdkkkkkkkkkxdddollllc;lollc,clllllloooooooooooooo,.:':oooooooooolllllllllloooc::;oddddddddddddddddxxxxxxxxxxxx;xxkkkddkOO000OOXXKNNNNNNNXXNNNK0XNXNNNxdOkKNXxXXXXXXXXXXNXXXNXXXXXXXXXXXXXXXKOxOXXXXXXXXXXXXXXXKKKKXXXXXXXXXXKKKXKKKXXXXXXNXXXXXXXXKKKXXXXXKXNXXXNKXXXXXXXXXX
+NXXXNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWNNWNWNWMWNNN0XMWWXOkkdO00O0K0KKKXXXXXOkXXXXXXXXXKK000000000xdxxxOOOOOkxdd;dxdxkO0OkO0Okkkkkkkkkxxdoolll,;llloo;ollloooooooooooooooll:.c;,loooolooooolllllllllloocc;codddddddddddddddxxxxxxxxxxxd:xxxxxxdxOO0K00O0N0NNNNNNNNNNNXN00XNNXNNooO0XN00XXNXXNNXXXXXXXNXXXXXXXXXXXXXXXX0xOKXXXXXXXXXXXXXKKKKKXKXXXXKKXKKXXXXXKKXXXXNXKKKXKKKKKXXXXXXXXXXXNXXXXXXXXXXXX
+NXNNXXNNXXNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWWWWWNkWWWN0kkxoOO0O00000KKXXKkOXNXXXXXXXKKKKK000KKKK0xl;lxO00OOkkldkkkkO00OO00OOkkkkkkkkkOdoollo,;;lllocddooooooooooooooooolooc.l:':ooooooooooooooolllloollc;odddddddddxxxxxxxxxxxxxxxxx,dxddxxkodkO00000OKXKNNNNNNNNNXNNXOOXNNNNKlx0XXXxXXXXXXNXXXXNNXXXXXXXXXXXXXXXXKXXKx0KXXXXXKXXXXXXXXXXKKXXKXKXXKKKKKKXXKXXXXXXXXXXXXXKXXKXXXXXXXXXXXXXXXXXXXXXXX
+XXXNXXXXNXNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNNNWNNNKKWWN00kxxokO0OOO00000K0x0XXXXXXKKXXKKKKK000K0KKKXX0dlldOOOkdxOOOOOO00000000OkkkkkkkOOkdoooo:,;:ccll:kxooooooooooooooooooooc.ll,;ooooooooooooooooollooolccoddddddddxxxxxxxxxxxxxxxxl:ddxxddOldxO000000KNXXNNNNNNNNXNXXXOOXNNNXklkKXXxXXNXXXNXXKXXXXXXXXXXXXXXXXXXXKXXXkKXXXXXXKXXXXXXXXXXKXXXKKKXKXXKKXKXXKXXXKXXXXXKXXXKKKKXXXXXXXXXXXXKXXXXXXKXXX
+NNXXXXXNNNNNNNNNXXNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOWWWK00OxxdxOOOOO00000OkKXXXXXXKKKKKKKKKKKKKKKKKXXXXK0koodxxkOOOO0O000K000000OkkkkkkOOkxdxool,::;:cccokkdoooooooooooooooooooc.lo:;ooooooooooooooooooloooo:lddddddddxxxxxxxxxxxxxxxo;ooodxxxOoddO00000KKXNXNNNNXXXXNXXXXX0OKXNXXooKXXkXXXXXXXXXXXXXNXXXXXXXXXXKXXXXKKX0OXXXXKXXXXXXXXXXXXKXXXXXXXXXXXXXXXKKKKXXXXKKXKKXXXXKKKXXXXXXXXXXXKXXXXXXXXKXX
+XXXXXXXNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNNNNNNNKXWWX000OxxxokOOkOOOO0kkXXXXKKKKKKKKK0KK0000000KKXXXK0OkdkOOOOO0O000KKKKK000000OkkkkOOOkxxkkdo::c:;:cc;kkkkxddooooddooooooooooc.oolcoooooooooooooooooolooolcoddddddxxxxxxxxxxxxxxxo:cloooddkkoxx0OOO00KKXWNNNNNXXXXNXXXNXX0OOXNX0ckKXkXXKKXXXXXNXXXXXXXXKKKXXKKXKK0OOO0KKKXXKXXXXXXXXXXXXXXXKKXXXXXXXXXXXXKXXXXXXKXXKKXXXXKKXXXXXXXXXXKKXXXXXXXXKXXX
+XXXXXXNXXXXXXNNXXNNNNXXNXNNNNNNNNNNNNXXNNXNNNNNNNNNNNNNNNNNN0WMWK0O00xxxokOOkkkO0k0KKKKKKKKKKKKKKKKK0000KKKKXXXXKOOxxkOOOO00000KKKKKK00000000OkkOOOkxxkkkxo;c:;;;:clkkxxxxdoooddooooooooooo;;oo:ooooooooooooooooooolooocldddxxxxxxxxxxxxxxxxxd::cllooodxkoxOOOOO000KXNNXNNNNXXXNXXNXXXN0OOXXNooXXkXXXXXXXXXXXXXXXXXXKKKKK000000KKKXXXXXXXXXXXXXXXXXXXXXXKXXXXXXXXKXXXXXXXXXXXXXXXKKXXXKKXXXXXXXXXXXKXXXXXXXNXXXX
+XXXXXXXXXXXNNNXXNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKXMMN0OO0OxxxdkkOkkkOk0KKKKKKKKKKKKKK00000000KKKKXXXK0OkdkkOOOOOO00KKKKKK00000000000OOOOOxxkkkkkccc::;ll;kkkkxxddoddooooooooooood'oo:ooooooooooooooooooooooolloxxxxxxxxxxxxxxxxxxd:::cllloodxddkOkxOOO00KXWWNNNNNXNXNNXXXNXXNK0OKNOcK00XXXXKXXXXXXXXXXXXXXXXKKXXXKKKKXXXXXXXXXKXXXXXXXXXXXXXXXXXXKXXXXXXXXXXXXXXXXXKKKXXKXXKKKKKKKKXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXNXXXNNNXNNNNXXNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNX0WMMKOOOOkxxxxxkOkkkkxk00KK0KKKKKKKK0000000000KKXXXXK0OkdkOOOOOO000KKKKKK0000000000000O0Oxkkkkkkx:;;;,:l;lkkkxxdddddooooddoooodddl:dlddoooooooooooooooooooooolodxxxxxxxxxxxxxxxxd:::ccllloodxoxkkxdkOOO00KNNNXNNNXNXNNNNXXXXNXK0OKXc0OXXXXXXXXXXXKXXXXNXXXXXXKKKXKKXXXXXXXXXXXXXXXXXNXXXXXXXXXXXXXXXXXXXXXXXXNXXXXXXXNNXXXXXKKKKKKKKKKXKXXXKXKKXXXXXX
+XXXXXXXXXXXXXXXXNNXXXXXXXXNXXNNNXNNNNNXNNNNNNNNXXNNNNNNNXN0XMMWOkkOkxxxxxxkkkkkkkxdk000KKKKKKK0000000000KKKXXXXKOOxxOOOOOO000KKKKKKK000000000000000OxkOOkkkkkxddddxxdkxxxxdddddddlodddddodddd:ddddddoooooooooooooooooooooloxxxxxxxxxxkkkkkd::::cclllooddcxkkxdxOOO000XNNXXXXXXXNNNNXXXXXXXK0O0okKXXXXXXXXKXKKXXXNXXXKXXXXXKKXXXXXXXKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNNNNNNNNNNXXXXXXXKKKXXXKXXXXXXXXKKXXXXXX
+XKKKKXXXXXXXXXXXXXXXXXKXKXXXXXXNXXNXXNXXNNNNNNNNNNNNNXNXXX0WMMXkkkkxxxxxxxxkkkkxxxkxdk0K0KKKK000000000000KXXXXK0OkdkOOOOOO00KKKKKKKK0KKK00000000000OxkO0OOkkkkxddddxkkxxxxdddddddldxdddddddddldddddddododdooooooooooooooolodxxxxxxxxxkkkkx::::cccllooodo:xxkOxxkOO000KNWNXXXXNXXXXXXXXXXXXXK00dOXXXXXXXXXKKKXXXNXKXKXXKXXKKXXKKKXXXXXXKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNNXNNNXXNXNXXXXXXKXXXXXXXXXXNNXXXXXXXXX
+XKKKXXXXXXXXXXXXXXXKXXXXXNXXXXXXXXXXXXXNNNNNNNNNNNXXXXXXX0NMMWOkkkkxxxxxxxxkkkkxxxxxxxxk0KKK000000000000KKXXXKK0OxdOOOOOOO0KKKKKKKKK00KK00000000000OkkO0OOkkkkkxddddkxkxxxddddddoodxddddddddddddddddddddddddodooooooooooolooxxxxxxxxkkkkk:;::ccclllooodlcddkkxxxOO0000XNNXXXXXXNXXXXXXXXXXXXK0dOKXXXXXKKXXXXXXXXXKKKKKXXKKKKKXXXXKXXKKXXXXKXXXXXXXKXKXXXKKKXXXXXXXNXXXXXXXXNXXNNNXXNXXXXXXXXXXXXXXXXXNNXXXXXXXXX
+XKXXKXXXXXXXXXXXXXXXXXXXXXXXXXXNNNXXXXXNNNNNNNNNNNXXXXXXKKWMMKkkkkxxxxxxxxdxkxxxxxxxkkkxxxO000000000000KKXXXXX0OOxkOOOOOO0KKKKKKKKKK00K0000000000000kkO0OOOkkkkkxdddxkxkxxddddddloxxdddxdddxdddddddddddddddddddddooooooooolodxxxkkkkxkkxc;::ccllooooddocloxkkxkkkOOO00KNWNXXXXXXXXXXXXXXXXXXXXx0O0XXXXKKKXKKKXXXXXXKXXXXXKKKKXXXXXKKKKXXKXXXXXXKKKKKKXXKKKKXXXXXXXXXXXXXNNXXXNNNNNXXXXXXXXXKXXXXXXXXNNNNXXXXXXXX
+KKKKKKXXXXXXXXXXXXXXXXXXXXXXXXXXNXXXXXXXXXXNNNNXXXXXXXXK0NMMWOxxkkxxxxxxxxdxxxkxxxxxxxxkdoxkO0000000000KXXXXXK0OkxOOOOOOOKKKKKKKKKKKK000000000000000kkOOOOOOkkkkkdddxkxxxddddddoldxxxddddddxxxdddddddddddddddddddddooooooolodxkxkkkkkkkc:::ccodxddddxxl;odxkxxkkkkOO000XNNNXXXXXKXXXXXXXXXXXXKK0000KKKXXXKKKKKXXXXXXKKKXKKKKKKKXKKKKKKXKXKXXXXKXXXKXKXKKKXXXXXXXXXXXXXXXXNXXXNNNNXNNXXXXXXKXXXXXXXXXNNXXXXXXXXXX
+KKKKKXXXXXXXXXXKKXXXXXXXXKKXXXXXXXXXXXXXXXXXNXXXXXXXXXX0XMMMKkxkxxxxxxxxxxxdxxxxxxxxxxxdcxxolxk0000000KXXXXKXK0OkxOOOOOO0KKKKKKKKKKKKK00000000000000kkkO0OOOkkkkkxdddxkxxddddddolxxxxxddddxxxxdxxdxddddddddddddddddddooooolloxkkkkkkkkl::::cdxkxxdddxdc;ldkkxxkkkkOOOO0KNNNNXXXXXXXXKXXXXXXXXXXK00KO0KXXKKKKKKXKKXKKKKKXKKKKKKKKXKXKKKKXXXKKKXXXXXKKKKKKKKKXXKXKKXKXXXXXXNNXNNXXNNNNXXXXXXXXXXXXXXXXNXXXNXXXXXXX
+KKKKKKXXXXXXXXXXXXXXXXXXXKKXXXXXXXXXXXXXXXXXNXXXNXXXXX0KWWMWOxxxxxxxxxxdxxxdxxxxxxxxxxxloxd;dxddxOK000KXKKKKK0OOkxOO0000KKKKKKKKKKKKK00000000000000OkkkOOOOOkkkkkkdddxkkxddddddloxxxxxxxxxxdddddxxxdxxxxddddddddddodddooooocodxkkkkkko;:ccldxkkxddddxd;codkkxxkkkOOO0OOKNNNNXXXXXXXXXXXXXXXXXXXKKKKKO0KKKKKKKKKKKXKKKKKKKKKKKKKKKKKKKKKKXXKKKKXXKXKKKKKKXXKKKKKXXXKXXXXXXNNNXXXNNXXXXXXXXXXXXXXXXXXNNXXXNNXXXNNX
+KKKKKXXXXKXXXXXXXXKKXXXXKKKXXXXXXXXXXXXXXXXXXXXXXXNXX00WNWMXkxxxxxxxdxxxxxxddxxxxxxxxxocxx;cxxxxdlx0KKKKKKXXK0OkxkOOO000KKKKKKKKKKKKKK00000000000000kkkkOOOOOkkkkxxddxkkxdddddoldxdxxxdxxxxdxdxddxxxxxxxdxdddddddddddddoooocooxkkkkkk;:ccddxxkxxxdddxo,loxkxxxkkkkOO00O0XNNNNXXXXXXXKXXXXXXXXXXKKKKKK0O0KKKKKKKKKKKK0KKKKKKKKKKKKKKKKKKKKKKKKKXXKKKKKKKKKKKKKKKKKXXXKXXXXXXXXXNNNNXXXXXXXXXXXXXXXXXXXXNNNNXXNNXX
+K0KKKKXXKKXXXXXXXXXKKXXXKKKKXXXXXXXXXXXXXXXXXXXXXXXXKONWXWWOxxxxxxxxdddxxxxxodxxdxddddcoxl;xxxxxxxolxKKKKKKK00OOxkOO0000KKKKK0KKKKKK0K00000000000000OkkkkkOOOkkkxxxddxkkkxddddllxxdxdddxxxdxdxdxxddxxxxxxxxdxddddddddddoooolcodkkkkko:cldxxxxkxxddddxl;odkkxxxkkkkOO000OKNWWNXXXXXXXXXKKXKKXXKXKKKKKKKK00KKKKKKKKKKKKKKK00KKKKKKKKKKKKKKKKKKKXKKKKKKKKKKKKKKKKKKKKXKKXXXXXXXNNNNXNXXNNNXXXXXXXXXXXXXXXNNNNNNNNXX
+000KKKKKKKKKKKKKKXKXXXXXXXKKKXXXXXXXXXXXXNXXXNNXNXXXOKWKKWXkxxxxkxdxddddxxxxodxxdddddc:cl;oxxxxxxxxxolkKKKKK0OOkxOOOO000KKKKKKKKKKKK000000000000000Okkkkkkkkkkkkkkxddxkkxxdddoloxddddxxxxdddddxdxdxxxxxxxxddddddddddddddoooo:ooxkkkOlcoxxxxxxkxxxxxxxcldxkkkxxkkkkkO000O0XNNNXKXXXXKKKKXXXKKKKXXKKKKKKKK0O0KKKK0K0KK00KKK0KKKXKKKKKKKKKKKKKKKKKXKKKKKKKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNNNNNNXXXXXX
+K000KKK0KKKKKKKKKKKXXXXXKKKKXXXXXXXXXXXXXNNXXNXXNXX00N0kO0OxxxkkxxddddddxxxxdoxxddolcodddldxxxxxxxxxxxooOKKK0OOkxkOOO000KKK0KKK0KK0KK00000000000O0OOkkkkkkkkkkkkkxdddxkkxddddoloddddddddddddxdddxxdxxxxxxxdddddddddddddoooooccodkOkkkxollloxkkxxxxxxxldxkkkxxkkkkkkOO00OOKNWWWNXXXXKKXXXKKKKXXKKKKKKKKKKKKOO0000KKKKKKKKKKKKKKKKK0KKK0KKKKKKKKKKKKKKKKKKKKKKKKKKXXXKXXXXXXXXXXXXXXXNXXXXXXXXXXKXXXXXXXNXXXXNXXXX
+000000000KKKKKKKXXXXXKKKKKKKKKKKKKKKXXNNXNNNNNNXNN0OX0kOOkxxxkkxxxddxddxxxxkxodxdc,;;;,,c:lxxxxxxxxxxxxxdk0KOOOkkOOOO000KKKKKKKK0K00000000000000OOOOkkxxxxkkkkkxxxddxxkxxddddolddddddddxdddxxddddddxxxxdxxdddddddddddddoooooo:ooxOOOOOOOkxooollodxxxxdxxkkkxxxxkkkOOO000O0XNNNNNX0KKKKXXKK0KKKKKKKKKKKKKKKKKKKKK0KK0KKKXKKKKKKKK0KKKKKKKKKKKKKKKKK00KKKKKKKKKKKKXXXKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNXXXXXXXXX
+00000000KKKKKKKKKXKKXKKKKKXXXKKKKXKXXXXXXXXXNNNXNKOKOkO0OxxkkOkxdddddddxxxkkkdddc.'loo;:xookkkxxxxxxdoooxO00OOOxkOO00000KK0K00K00000000000000000OOOOkxxxxxkkkkkxxxdddxxxxddddoodddddddddddddddddxxdddxxxxxdddddddddddddooooooclodkOOOOOOOOOOOOkxdoooddxxxdddolkkkkOOO00OOOKNNNWWWNK0KKKKKKKKKKKKKKKKKKKXKKKKKKKK000KKKKKKKKKKKK00KKKKKKKKKKKKKKKK00KKKK0000KKKKKKXXKXXXXXXXXXXXXXXXXXXXKXXXKKXXXXXXXNXXXXXXXXXXX
+00OO000KKKKKKKKKKKKKKKKKKXXXXXXKXXXXXXXXXXXNNNXXX0K0xO00OkkkO0kxddddddxxxxkkkxod:. ....;ooxkkkkxddddxkO00000OOkxkOOO00000KKKK000K00000000000000O0OOOkkxxxxxkkkkxxxdddxxxxdddoodddddddddddddddddxxddddddxdddddddddddddddooooooccooxOOOOOOOO000000000OOkkkkkxxl;kkkkOOOO0OOO0NNNNNNWWX0KKKKKKKKKKKK00KKKKK00KKKKK00000KKK00KKK0KKKKKK000K0KKKKKKKKK00KK000K0KKKKKKKXKKKKKXKKKXXKKXXKXXXXXXKXXXKXXXXXKXXXXXXXXXXXXX
+000000KKKKKK0000KKKKKKKKKXKKXXXXXXXXXXXXXXXXXNXX0K0xk0K0OkOO00xdddddddxxxxkkkxodc. ...lkkkxxxxxkO00000000OOxxkOOOO0000000000000000K0000000O00OOkOkkkkkkkkkxxxxxxddxxxddddooddddddddddddddddddddddddddddddddddddddodoooooool:lodk0000000000000000000000OOOc;OkOOOOOO00OOOKNNNNNWWWN00KKKK0KKKK0000KKK00000KKK000000000000000KKK00KK0KK0KKKKK00K000KK00K00KKKKKKXKKKKKKKKXXKKKKKKXKKKKKKKKKKKKXKKXXXXXXXXXXXXXX
+000000K000KK00000KKKKKKKKKKKXXXXXXXXXXXXXXXXXXXKKKkxO00OkkO00OOkdoodddxxxkkkkko:. .,',dkxxkkkkkkkOO00000OOOxxOOO00000K00K00000000000000000OO0OOOkkkkkkkkkxxxxxxxdddxxddddooddddddddddddddddddddddddddddddddddddddooooooooolccodxO00000000000000000000K0K0l:OOOOOOO000OOO0NNNNWWWWWWK000000K00K000000000000KK0000000KK00000000K0KKK0KK000KKKKKK00KKK00000KKKKKKKKK0K0KKKKKKXK0KKKKKKKKKKKKKKKKKXXXXXXXKKKXXXKK
+OO00000000KK0000KKKKKKKKKKKKXXXXXXXXXXXXXXXXXXKKKkdxxkkkOO00OOOOkdllddxxxxkkkkd' ...lxkxxkkkkkkkOO00000OOkxxOOOO00000000000000000000000OO0OOOOkkkkkkkkkkxxxxxxxddddddddoodddddddddddddddddddddddddddddddddddddddoooooooollc:lodk000000000000000KK00KKKKKlc0OOOO00000OOOOXNNNNNWWWMMX0000KKKKKK0000000000000000000KKKKKK0000KK000000KK0000KK00000000000000KKKKKK00000KKKKKKKKKKKKKKKKKKKKKKKKKXKKXXXXXKKKKKKK
+OOOOO00OO0000000000KKK000KKKKKKXKXXXXXXXXXXXKK0OxodkO000000000OOOOkdlodxxxkkxxdl;.. ..,dxxxxxkkkkkkkOOOO0OOkkdxOOOO000000000000000000000000OOOOOkOkkkkxkkxxxxxxxxdddddddddoodddddddddddddddddddddddddddddddddddooodoooooolllllccodxO00000000K000000K0KKKKK0llOOOO0000000OOOKNNNNWWWWWMMN0000KKKK000000000000000000000KK00000000000000000000000O000O0OOOOO000KKK00000000KK00KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK00KKK
+OOkkkOOOOOOO0O0000K00K000KKXKKKKKXXXXXXXXK0OkxkOO000000000000OOOOOOOkddxxxddoxOOOko:,:coxxxxxxkkkxxxkkOOOOOOkxdkOOOOOO0000000000000000OOOO0OOOOOOOOkkkkkkxkkxxxxxxddddoddddoodddddddddddddddddddddddddddddddddddoooooooooolllllcclodk0000K00K00K000KKK0KKKKOld0O0O0000000OOO0XNNNNNNWWMMMWK000K0000000000O0000000000000000000OOOOOOO0O0OOOOOOOOO00OOOOO0000000KK000K0000000000KKK0KKKKK00000K00KKKKKKKK0KK00KKKK
+kkOOOOOOOOOOO0000000000000KKKKKXXXXXKXKXKKOkO00KK000OkO00kkkOkkOkkkkkOxxxdclx0OO0kxoccooddxxxxxxxxxxxxkkkOkkkddxkkkkxkOOOOOOOOOOOOkOOkkkkkkkkkkkkkxxxxxxxxxxxdddddddoooooooooooooooooooooooooooooooooooooooooooooooooooolllllllcccloxO00000000000000000000OxlxOOOOOOO0000OOOOKXXXXKXNNNWWNN0O000O0000000OOOO0000OOOOOO0OOOOOOOOOOkOOOOOOOOOOOOOOOOOOOO00000000K0K00K000O000000KKKK000KK0000000K0000K00KKK0000KKK
diff --git a/docs/asciiArts/priestess.light.txt b/docs/asciiArts/priestess.light.txt
new file mode 100644
index 0000000000..4d2cbe4bdc
--- /dev/null
+++ b/docs/asciiArts/priestess.light.txt
@@ -0,0 +1,135 @@
+ ...',;:ccc;::::;;:cccloooodddddddddddddddddddddddxxxxxxddollcllodollloodddllodoc:c:'
+ ..'',;:cc:;;;;;,;:::looddddddddddxxxxxxxxxxdxxxxxxxxxxxxxxxxddoooooooloodddxdddxxdolc;.
+ ..'',::cc:;;;;;;:::coddddddddddxxxxxxxxxxxxxxxxxxxxkxxxxxxxxxxxxxxdddddooddddxxxdxxxxdl:'
+ ...';c::c::;;;;:cccclodxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkxxkkxddxdddxdxxxxxxxxxxxdc,.
+ ...;c:;;:c::;;:clc,,::oxxxxxxxxxxdooooooodddddddxxddxxxkkxxkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxxxdc,.
+ ..'::,',ccc:;;:cl;..';lxxddddxxxxddoollllllccllloodddoooddxxxxkkkkkkkkkkkkkxxkxxxxxxxxxxkkxxxxxddl,..
+ .','.';lll:::cc:....,cddddddxxxdddddoloooooooooooodddddooddoodxdxkkkkkkkkkkkkxkxxxxxxxxxxkkkxxxxddoc,'.
+ .,,..';lll::cl;.,,,;:lddxxxdddodddddxxxddddddddddddddxxxxdddxddddoodxkOkkOOOOOkkkkkkkxxxdxxkkkkkkkxddoc;,.
+ .,;..':loocccc. ;::codxxddoooddddddddddddddddddddddddddxkkxdxxxxxxoldodkkOkkOOOOkkxkkkxxxdxxxkkkkkkkxdoo;',,.
+ .;;..':ooolllc. ::cdxxooodoooddddddddddddddddddddddddddddxkxxdxkkkkxlddddxkOkkkOOkkxkkkxdxdxxxkOkkkkkkxdl:,':;.
+ .;;..';oooolll. .loxdllloodooooddddddddddddddooooooddddddddxxxddxxkkkxodxddddkOOkkOOkxkkxxdxxxkxkkkkkkkkkdl:;'';,.
+ .,;.;';loddooo;..',lxod:loooddooooooooooodddddoddooooooddddddxxdxdddxxkkxxdoddxxxxkOOkOOxxxkxxxxxkkkkkkkkkkxxxdc;;'.;;
+ .':.:;;lodddoo,':cldkcclcdoodddoooooooooooollllllodllllllooddddxxdddddxxkxdkxlddxxxxxkOOOkxxxxxxxxxkkkkkkkkkkxxxxl,,;..:,
+ .;.::'codddoo: :llxxx;looxoodddooooooolc:;:;;;::;cll;;;;;;:cloooddddddddxkxdkdlddxxxxddkOOkxxxxxxxxkkkkkkkkxxkkxxxo;';,..;'
+ ...::'llddddol 'dxxxxl:dxdxdodddooooolc:;,;;:;;;:c;:ll:;;;;;;::cllolooooodxxxxkdlxxxxxxddxO0kxxxxxxxkkOkkkkkkxxxxxxxd:',:'..:.
+ ..cc.lcddddoo'.dkoxddllxkxxdoddooolc::;;;;;;:c::ccl:cloc:::;;;::cllcllllolodxxxkdlxxxxxxdddO0kxxxxxkkkkOkkxxkkxxxxxxxxc,.;;. ,:
+ .lc,:oldddodd;dkoloodolxkxxododllccc:::::::::clcllooclodolcc:;::ccolclllllllddxkklldxxxddddxOOxxxxkkkkkkOkkxxkkkxxxxxxxl;',:'..;,
+ . .:;;,dlolxddxlxxlclclxoloxdxododccclclccclcclllllloooollodoolcc:::clocloodoollddxxxllodddoddxxOxxxxkkkOOkOOxkdxkkkkxdxxdxd:,.;:'..:.
+ ':,,ldc:oddddxdllccclkocddxddloolllcllllloooooooloooodolooxooollcccllollodxlddoxxkxkloodoodddxkOxxkdkOOOOOOkkkxdkkkkkxdddld:,.':;. ,;
+ . . ',,.lddl:xddokodoccl:lkdldddooloodllclooooooooddollooooddoooxoooooollooooodxdoxddkkkxkldooooodxkOkxxkxOOOOOOOxxkxdxkkkkkxddllc,..,:...c.
+ . .. :;.,odlclxdddxoooccoccdodcdddlloddoooloooooooooooolllooodddddxoooddddodddddxxddxdxxOkkxoooododxkkOxxOkkOOOOOOOkxkxddkkkkkkxdocc;'..;;..;,
+ . . .c,.codl;xdddkdoxlcclc;ococodxolodxdoolloooolollooolcllooodddoxdododdxxdxdddxxxxxdxkxOdcodooodoxkkOkxxOxkOOOOOOOkxxkxdxkkkkkkkkl:,'...;;.'c.
+ .. ... ;l.::odccxdxxkoxdlccll,ocddodxxoddxxooolooolllllcllllcllooodddoddodddxxxxxddxxkxxxdxxOxl;oxxddxxkkOOxkOkxOOOOOOOkOkdxkxdkkkkkkkkx:,'....:'.l.
+ .. . . c;'::dk;okdxOklxdlcllc;doxdddxkxdxdxdoollollllllcclllllolloooddddoodxxxxxxxxdxxxxxxdxxko::odxxxkkkkOkkk0kxOOOOOOOkOkdokxdxkxkkkkkkd;.....,;.c,
+ .. .. .l'c:ckk,dkxkOdoxlllollldokodxoxkxxddxollllllollllcclllllolooooddxxoddxxxxxxxxdxkkxxdxxkoc.l;oxxkkkkO0xk00xkOOOOOOOOOdoldxddxkxxkxkOkd;.....;',:.
+ .. .. . ;,lo:lOd;xkxOxlddllddddxooxooxddkkxddddlllllllollllllllllooooooodddddddxxxxxxkxxkkkxxxxxcd',c;xkkkOkkOOOO00kOO00OOOO0OdlccdxodkxxxxxkOkd;... ';'c.
+ ... .. . .:;dd:oOd:xkxkxlxoooxxdxxddxd:oxddkkxdddollllollollllllllloooooooddddxdddxxxxxxkxxkkkxdxxlo;.c';dOOOOOO0kk00Ok0O00OOOO00klc:odddxxdxxdxkkkd;....:,c..
+ .. ... . .'oxdcdOo:kxxxxlkddddxdkdxkoxclxxdxkkxoodllllloloollllllllooooodddxxxxxxddxxxxxxxxkkkxdxxll:.,:.;xOOOOO0kk000kO0O00OOO000OxolldxxxxxxxddxOkko;...':c..
+ . .. .,kddckOo:xodxxlkdxdxxxkdxxddd:okdddxkdololllololooloooollooooooddxxxkxxxxxxxxxxdxkkkxdxxll:..l..:xOOOOOOkk000kO0000OOO00OOOkxloxkxxxdxdodkkkkd:'..;c..
+ . . '. .oOddlOkd:olxxxdOxxdxxkkddldodlldxodddkdllllllolooddoooooooodoodddxdodxxxxxxxxxxxoxxxxddxod;..l..'lxOOOO0kk0000k000000OO00ok00koodkOkxdxxooxOkkkxc'.,;
+ . ', .xOdddOxx:ookdkkOxxxxxkkxd:,dollodoldodxolllllloooooddoooooodooodddoc:kxoxxxxxxxxdlxxxxdxok,..c,'';ok0OOOOkO000OOO00000O00OodO0OdodkOOkxdxoldkOkxkko:c;.
+ . ,,.:kOdxxOdkllkOdOOkkkxxkOxxd,.,dlcoodcoddddxdddoloooodcoddddoodoooddoo;;lkkkkxxkxxxOkkOkkdxdd'..:;'''ldk0OO0kO00K0k0000000O0KOodk00xddxkOOOxddldxkkxkkkxo:;''..
+ . . ,..lkkdkOOdOoc00x0OkkkxxOOkdo,..'oldxddxlllodxxdllllloodccoddddxdoxclol;;;xxlokxdcoxxccdkOxkkl;'.c;''':xxO0O00k00K00O00000KOO0KOdxkOOkoxdxkOOkxxdddkkxdkxkoc:,,;:,...
+ . .. .'..okxdkOOdOdcK0kO0kkxxxOOkdl'.,;:locoooc;;;cldxxddxdoooxo:oxddxodlcld:;;;ooocOdlccdd::cxOxO:.,,,o'''''dxkO00KkO0KK0OOK00000O00KOxxkOOkoxxdxkOOkxdodxOxddxkko'....',,'...
+ . ..' .'..xxdxkOOdOdokKkO0Okxxxkkokc;,'...;oloooc;;;;:cloooxxdddddddooddo;:;:;;;;llclo:;:::d::;ddxx'.'.'l''''':kxO00XO000KKKk0KK00KOK0OK0kkkkkkdxxxdxkOOkxddxxOdolxko,. ...'.....
+ . . . ' ..'..kdlkOOOdkxxdKOO0OOkkkkkoO;,......'colldl:;;;;;;::;:clllllcodoc;;;;;;;;;c;;;;;;;;;c;;;;;;,'''':'''''',kxOO0X0O00KK0KkKXK0K0OKKO00kkxkkkddxxdddkOOkxddxkOd:cxo:'. .........
+ . , ' . ..'.,kkckOO0xkkxOkOOK0Okkkkkok,,'''.....,clcldc;;;;;;;;;;;;;;;:c;;;;;;;;;;;;;;;,;;;;;;:;,,;,''''''''''''''dxOOOXKO000KKK0OXXK0XO0KKOOKOxdxkxdxkxxddxkOOkxdoxOOo,:dl,. .
+ . .' .... ..'',kklkOO0xkxkKdOOK0OOOkxkdx,,,''...',,,:llollcc:;;;;,,;;;;;;;;;;;;;;;;;;;;;:::ccccccccc:;,,,'''''''''',dxO0OKXOO00KKKX0KXKKKKk0KKOO0dldxkxdxkxxxdxxkkkkxolxOkl,;lc'. ..
+ . .. '.' ...'',OklOkOOk0kk00oO0000OOxkxx,,,,,,;;::;::::::::;;:c:;;,'''',,,'''''''''';::;;;;;;cclllllllc::;;,,'''''''dxO0K0K0kO00KKKKOXXX0K0O0KK0kOxloxkxddxxxddxxxkkkxxllokkl,;l;. . ..
+ . .. .'.. .. ,':kklOOOkO0kkKKOd000000xOkd,;:loodxOOOOOOOOxxoc;;,',''...............',;,;;cxO0000000OOOOOkxxoc;,,,,,,'xkk0XK0KOkO0KKXX00XXX0KOO00K0kkkdodkkxoodxxdxxkxxkkkxl:ldxl,,l, ...
+ . . ., . .. ;'ckxcOO0kOOOx0KKkk00000kOOxdk00kkOOKKKKKKKKXXKKkc'''..................',:lOXK0KKK00K00KKK000KKKOkxl:,,,kOO0XX0KkkOO0KXXX0XNXX0KOO0000OkkdookOxdooxxddxxkxxkOkdlclldl,,l' ....
+ .. ,' ....:.ckdcOkOOkO0kOKK0kO00000K0KKK00dxOO0OOkxxxdxOK00Oc,...................',:kkxOxkxlccddxkO0ddxOO0KXX0dc,ck00KNKK00kkO0KKXXK0XNNXXOOO00OOOkkkooxOxkddxkxddxxxxxxkkdolcloc;;:. .....
+ .... .,. ....c.cxo:OkkOxOO0kKK0000KKXXKOKOxo:;ckdddc:::;;ccx:;:,,.....''''...........';'.cocc.;.,';:olk;,;:cox00KK0xkkKKXXKO0KkkkO0KXKX0KNNXXXOOO00OOOkkkxodxxOxdxkOkxdxkxkxxxkdollcl:.';' ....
+ '... .;. .'.'c.cxo:kkOOkOO000K0000KKKK0kk:,'..;x:;o'';.;',:c,....''..'''''''''''''''''...::,:.'''.':c,o,..'';lOdccck00KXXKXOO0OkxkO0KKKKKXNNNX0kkO0OOkkOkkkooxo0OxxkkOkxdxxkkxxkxdllcll:..''. ....
+ .'.'.. ;,. '' ;;.:xlcdxOkOkO0K0K00000KXKKkk:....'d:,c,..'.',,:'...''''''''''''''''''''''''';c;:;'..'':,;o.....;l:,,,:0KXXXKKXKk00kkkOOKXKXKXNNNNXkxkkOOOkxkkkkxodd00kxxkkkkxdxkkkkxkxxolcllc'..... .... . ......
+ . .'''., ;.. ''.;.':xlcox0OkOkO0KKK000K0XXKdxol;...;:'';;:cc:,;,'''''''''''''''''''''''''''''',,;;clol:,:oc,'',;;,,,,;k0KXXXK0XXOOOkkxOOOKKKXKXNNNXKkxkkkOkxdxkkkkxldO0kkxdxxkkxdxxkkkkkkddllccc,. .. .... ....... .
+ . ''''.'..;.. ,..: ',dlloo0kOkOk00KKK00KKKXXKll;;,',,:c:;::;,,,,''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,o0KXXXXKOKxKk0OxkxOO0KKXKKNNNX0KkkxkkkkxdxkkkkkllxOkkxdddxkkxxxdxOOOkkxoloccc;.. .... ..... ........
+ ' .''',,.;,c.. ;.;..:;looll0OOkOOO0KKKK000KKXX0d;,,,,,,,,,,,,,''''''''''''''''',,,''''''''''''',,,,,,,,,,,,,,,,,,,,,,,:00KKXXXXkOxOOkOOxkOOOKKKXKXNNNNOKkxxkkkxxddxkkkdkodkkxxxddddxkkxxxxxkkkkxollllc;'.. .... ..... .......
+ .. '.'',,';cl... , : '::cod:d00k0OOOOKXKKKK0KKKXX0o,,,,,,,,,,,,'''''''''''''''',;;;,''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;O0K0KXNKxcdko0kkkkkk0O0K0XKKNNNNKkKkxxkkkxxddxxkkdOkdxkdddoooodxkkkkkxxddddxolclll:,'........ ...'... ..........
+ ' ...',,,'ll... ''..;lo'od;kOKkOOOO00KKXKKKKKKXX0O:,,,,,,,,,,,,,''''''''''''',;;;;:',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;k0kOKKNKOl:cOcd0kOkkOO0OKKKXKXNNNNOO0kxxxkkxxxdxxxdkkkxxOxoooolllloxxxkkkxdollodlcclcc:,... . .... . ............ ...
+ , ....',;,,::.....; .llo.ddckx00kkkO000KXNXXKKKKXXOk;,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;c,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;x0dckKKOood::l0O0kdOOO000KK0XKXNNNNKOk0xxdxxxxxxdddodkkkxxOkddooollcccodxxxxxddoooolcc::c:;,.......... ..............'',''............. .. .. .
+ , .. .';;;c,'.'....;llc:cd:kxO0kxxkO0KKKNNXXXXKK0K0k:,,,,,,,,,,,,,,,,,,,,,,,,;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;kkc:oKKkolod:ckxKk0kxO000K0KKKXKXNNNX0OO0xxdxxxxxdddxlodxkkxkOkdooooolc::clooddddoooollccccc::;,'''...',,''. ............... ..............',,,,,,;,'',''........... ......... ..
+ .' .' .,;:c''.'.. .:clcx'x,Okx00xxxOOOKKXNNKKNNXX0kXKl;,,,,,,,,,,,,,,,,,,,,,,;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;cko;;l0OdoloolckoOOO0OxkO0K0KKXKXKKNNNN0OOO0xxddxxxxddkcooodxOkxkOxollooolcc:cccclllcccccllcccccc::;,'........'........................',;,............ ................. ............. ..
+ .' ., .':cc''.,. .;;cllx:d;x0kO0OxkkOOOKKXOXKXXXKk0OKXo:,,,,,,,,,,,,,,,,,,,,,,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;lo;;;cxxxxxollcoo0kkk0XkxOOKKKKXXKKKXNNNKKOO0Oxxdddxxxdxcoooollx0kxO0xolclollllcccccccc:;,;coollccccccc::;,,'......'... .....'',,,,,,;;'..... .. ... ............. .... .,......
+ ..'.',.. .;,:',.' '.:clod0;loKOkO0kkkkO00XKKdKXXXXo:dOXXdc,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;::c;;;;;xkOxlllllld0kkOkO0KkxO0KKKXXKKXKNNNX0OOOKkxddddxxxxoolooolclkOOkOOxdllclllclcccclccc:;,,:loolcc:::cccccccc:;;;,,,,'.....',,,'',,,.. ... .....'''''................ . . .'.........
+ ..'.,,'. .'l',. ..:ccood0:dlKOxxK0kkkOO0KXKxldKNXXo,,cd0Ol;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;okxlllllooxOkkOOOkkKOOkO0KKXXXXKKXNNX00OOOKxxdoxxxxxodolloolccdOOOkOkkkdolclclclcllccccc:,,:cllccc::::;;;;;::::;;,,,,,,''..''','. ............''''''.. . . . ' .....'..
+ ....;,, . .c''.. .;::ldodkdxlKkkx0K0OOkO00XXKollx00Xx:,,,d0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;:KllllloookkkkOOOOOkO0xOkOKKKNNXXXXXNNKKOOOKOxxdddkxkddooooloolclxOOkkkkOkkxolcclccccclccl::;;;lllc:;::::;;;;;;;;;,,,,'',,,,,,,,'..'............. ...... . .. .' ' .....
+ .. ::,, . ',.. .'::cloodxckdOOkkOX00K0OO00NKKlod0;lk0l;,,cx,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;OkxooollkOkkkkkkkkkkOKkkkO0KXXNNXKXXXXXK0OOO0kxxddkxkxdooooolooollokOkkkkkO0kddoolccccccclcccc:,;cll:'..:'''''......''''................ ...... ..... .... .. .... . ..
+ .. l:;, ..'. .;;clloodkcO0o0kOOKK0KXK0OKKXKkcldx,,:c:;,,dc,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;dOollllxOOkkkkkkkkkkk0K00Ok00KXXNNXXXXXXXKkOkKOxxxddkkxdoooooollooloodOOkdxkkOOkkddol:::c:cc:c::c:;,:cl;..'. .... .. ..... . . . ... '... . .. . ......
+ .. ,l:, '.,...;;:cllodxxoO0l0k0k0K00XXX00KKXKkoooo,,,,,,,;l,,,,,,,,,,,,;c::,,,,,,,,,,,,;ccc:;,,,,,,,;;;;;;;;;;;;;lOodddddxddxOOkkkkkkkO0K0K00O00KXXNNXXXXXKK0kkKkkxxxoxxxddooooooollolloookkxodxkkxkxdddo:;;;:c:::::::;;;cc:,... .. . . ..... ....... .. .. .'.
+ .. .oc,. ''';..;;;:ccloddlk0OoOkOOOKO0OXKXKKKXXKkOxdl,;;;;,;:,,,,,,,,,,,,,,,:;,,;;;;;,,,;::;,,,;;,,,;;;;;;;;;;;;;;cxoddoodddddddkkkkkxxxkK00xKkK0K0KXXNKXXX0XKKkkKkkkxxOlOxxdooooooodollloooxodkxlldxdddxdxdlc;,::cc:;;;;;;,,;;;' .. . . .. . ........ . . .. ......... ..
+ . lc,. ,,':'.;;;;cccooddlOK0kkxk0O00O0OXXXXXXXKKxddol;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;ldccccloodddddddxxxdxxxxXKOOxKkK0X0KXXXKXXKKXK0xKkkkkdkkdxxddooollllodolloookdlodollllllloodddoolcclc::;,,;,,,,,'. . . . ... .... ........... ........
+ . ,c. .,'c,.;;;;cccldoddoO000dOkOOO0OO0OXXXXXKXKKdddlo:;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;ooccccccllooddxxxdddooddx000Kxx0O00X0KXXXXXXKKXK0kkkkkxoOOdOxdollllllloddollooOOlllollccccc::::ccllolllccc;;;;,,''''.... . .. .. . . .... . . . .. ... .......... . ..
+ . ';.' '.'lc';;;;:cccoooodxOOKKxOkk0O00OOKOXXXXXKXK0dddlol;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;od:::ccccccclloddxxxxxdolooxKOKOdd0K0KXK0XXXXKXKKXKkxxxxkxxOOxkoolcllllllloddlllokxdclllccccc::::::cc:::::::;;;;,,''.''..... . . . .... ..... .. . .. . .. ......... ....
+ ....;,;'.ll::;;;:cccllxooxOxkXK0kkk0O0KOOO00XXXXXKXKOdddlloc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cdlc::::::::::ccllodxxxxxollllx0O0dddOX0XNK0KXXKKXK0X0xxxxxkdxOOdolllccllllclooddlldd,olcccccccc:::::::c:;;;:c:,,,''',''''''..... .. ... . ... . . ...... .......... ....
+ ...;c,.llc:;;;:c:cll;doxx0xk0KXxOk00OKOO00X0XXXXKKXKkodollooc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;lll:::::::::::::::ccloddxxxxdollloO0kddo0N0KNK00XXXXX00XOxxxxxxdkkkxcccllcccccccllloolol;:occcccccc::::::;:;;;;;::,;,''''.'''','...... .... . . .. . .. ...... . .... . ........ ...... .. .
+ ..':'.lll:::::c:clll'do0OkkOOOXOOkO0OX0000XX0XXXXK0KKxooolllodo:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:llc:::::::::::::::::::ccloddddddollllx0OoooKX00NX00KXKXX00XOxxxdxdxkldklccclccccccccllloocooccocccccc::::::::;;;;,,;'...,,'''''.',,,.......... .. .. . . .. ........ . .. .. ......... ..........
+ ...,'.lloc:c:cl::lllc'dk0OxOkxx0XOOO00X000XKNK0XXKKK0KKdloolclloddl;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cllccc::::::::::::;:::::::cccllloddddllcco0KdcoKX0ONN0O0KKXX00Xkxdddddxdclkl::cllcccccccclllc;clo:;cccc::ccc::::;,,,,..';,. ..,,''''''''. ........... .. .. . .... ... ..... ... .. .... . . ........
+ ...'..coolclcclc:llll:;dKOxO0dokOX0OkO0K000KKNKKKXX0KX00Kdllolcclccdxdc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cokl:::::::::::::::::;;;:::;;::ccc:::coooolccOo0OodKX00XNK0O0KKK000kddddddxd:cxd:::loccc:cc::cll;..;cc::c:::::c:::::;,,,,'...,'. .',,''''''.. ............... . .... ....... .. ...... ......... . .................
+ ...'..:odocllcllcllccc;:OKOo0Odokx0KOkk0KK00KKNKKK0XX00X0OKxllllcclc::OOkdc;;;;;;;;;;;;;;;;;;;;;;;cokOOd::::::::::::::::::;;;;;;;;;;:::::;;;:cllcclxcd0k00KXOXNX0OO0KK00Oxooodddkxc:dxc::cocc::::::clc' .':::cc::::::::::;,,,,,,'.... .'''..'. ...'...... . .. ... .. .... ..... ......... . ...............
+ ..'..;cddloollololccc;'dK0xoXxdxxdxO0xx00X00KNNKKKkKKX00X0O0dlcllcclcckxxk0Odc;:;;;;;;;;;;;;;;;:lxOkddkc::::::cc:::::::::::;;;;;;;;;;;:::;;,,,,;:cckc:lkO00KNOKXX0Ok0KK0OOdooodddkxc:cxl:::dc::::::::cc. ';;:c:::;;:::;:;,',,,,,'.... .,'.'. . ..'.... .. ..... ... . . ... . .... ..................
+ ..' .,,ddldoooooolocc;;'00koxKxxodkxxkOx0KX00KWXKKKkKO0XK0K0O0dllllcclckkkkkkOOxoc;::;;;;;;:;:ldkkxdxxxk::::::::c::::::::::::;;;;;;;;;;;:::;;,,,'',;:k;::dOO0KX00XK0OkOOKOxkdllooodxlcc:dd:::oc:::::;;:c:' .,:;:::;;;;;;;;,'',,,'''... .''.''.. .. .......... .. . . .. ....... .... . .................
+ '...'.odlddddolod,l::,;:K0dlKKxkodxxddkx0KX00XXXXKK0OkokXKO00O0dlcllccckxxkkkkkxkkxoc::::;:ldxxxxxxxxxkO::::ccccccc:::::::::::;;;;;;;;;;;;:;;,,,,''',ol;;;:dOOO0000KOkOOO0klxollooodlccc:cdl::ol:::;;;;;;:, .';;;;;,,,,,;;''''''...... .....'... . .. ...... . .. ... ..... . .. .. ................
+ .,.'..;lcoxxxdllll.c:'''OKklOK0kxdodkdxlk0KX0KXKXXXKKOxdod0K0kOk0klcclcckxxxkxkkxxxxxxddooodxxxxxxxxkkkk0c::::cccccccc::::::::::;;;;;;;;;;;;;;;,,,,''''k,,,,,lOkkOO0dO0xkOOOkcxolloooocccc::lo::lo;;;;;;;;;;;. .';;,,,,'',,'............. ..'...... . ..... ....... .. .... .. .. . . . .............
+ ..,....':dxxdlcc,;.c,.':K0ld000Oodoxkxxol0XXXNkXXXXKXOkddolOKKkkkKOo:clcOxxxxxxxxxxxxxxxxxxxxxxxxkkkkkOO0c:::::cccccccccc:::::::::;;;;;;;;;;;;;;,,,'''';x'',,,lxOkkkOOK0Okk0Oklxlcolllccccc:;:lc:co;;;;;;;;::;,. .,,,,,'',,.............. .... .... .... . .. ... .... ...... .................
+ .:.....'odxxlcc',;.c.''0Kdl0OO00dddxkkddl0XNNNlXKXXXX0kddddokKXOxk0Kdccl0xxkxxxxxxxxxxxxxxxxxxxkkkkkOOOO0o::::::cccccccccc:::::::::;;;;;;;;;;;;;;,,,''''oc''',,dx00OkkkOOOkdkOOodlllcccc:c:::;;:c:co;;;';;;;,,::. .''','..''..... .... . ... . .... ..... ... ....... . .. ...................
+ .c,.. ..:dddlo:'',c.,',xXklxKxOOOOdddOkdod0XNWkcO0NNXX0xddddooxXN0xxOKXOOX0OkxxxxxxxxxxxxxxxxxkkkkkkOOO000d:::::::cccccccccc:::::::::;;;;;;;;;;;;;;;,,''''x,'''',xk0K0OkkkkkOxdOOxdllcccc::::::;;;c::o:,,';;::,.,;,. .....''.''... . .. . .. ...... .. ..... .......... .. ... . .... ..............
+ .. ,';... 'coool,,;;lc..;d0KdoKkoOOOKdxdkkxdx0XNNccxKNWXXXlcloddoxOKXKOdkKKKKKXXXK0xxxxxxxxxxxxxxkkkkkOOOO000Ollc::::::cccccccccc::::::::;;;;;;;;;;;;;;;,,''',k''''''dk0K00kkxxkkkxOOkdlc::::::::.',;,:::o''';;;c;:...;. ..'...''... . . '..... ... .... ... .. ............. ... . .................
+ .. . '.,,.. .':cdc.....',.:xxXOo0OooOOOKdkdkkkdkKNNXclcKNWNX0cccccxxOOO0XK0kkOKK000KNX0xxdxkkkkkxxkkkkkkOOkO00OOOOkkd:::::::cc:ccccc:::::::::::;;;;;;;;;;;;;,,''':d''''''ok000kldkxxkkkkkOxl::::::::' .,;;;;:c.',;,c..;. .''. . ... .'... .. ........ ... ................... ... ...................
+ .. . '.;,'.....,:o;. ;.ckxkXxO0oookkxKxkdxx0xONWNXko:ONWNXOccccOdOdkOOO0K0Oxk0KOkXKXkdoodddddxdddxkxdxxxxxxxdddxdxOc::::::::::cc:ccc::::::::::::::::;,,;;;;;,,'.ll''''',lOO0Ox;cdkxdkkxdxdl::;::::' .,;;;;:;.,;,:. .''...''. .......... .. ... ..... . .... ................... ..... .... ..............
+ . . .. .'.c,''....,l'. ';okdd0KkkolloxkdKxkddx0xONN0N0x:kXWNXd;:lOoloxook000KK0kkOKKK0Odooooddddddddxxxxxxxdooxdddxdokc::::;;;:::::::::cc::::::::;;::::::;,,,;,;;,''lc''''',lOO0kd;;:odxxxxxkxxlc:;::. ';;;;:;,';,:.. .,...',. . .. ..... . ......... ........... . ...... ....... .... ........ ..........
+ . . . . ;.:c,;,'..':. 'lxkxokKOodllcld0dOxkookOxOW00NK:oxKWNNl':x:cclldook000KXKOkOKX0xddoodddddxdddxkxxdddoooxdooolldc;;;;;;;;;;;;:::;c,c::::::::::;;;::::;;,,,,;;,,o:''''',l0OOxl;;:c:okkxdxkxlllc: .,;;,;.,,;,;. .,....,... ... ....'.... . ....... ........ ....... . ...... .. ..... . ...... .........
+... .. . ... . '.,lc:::'.,;. 'dkkxooXKlolcclldKdkxkodO0OXKk0NX':dNWXNl'o:;;:ccodoox00KKXXKOO0Kddooddddddddddxkddoooooodolllllol',;,,,,,,,,,,;:;;:.':;:::::::;;;;:::::;;,;,,,;,oc''''',l0Okxc;::c::dOkxdddc:cc,. .,;;,,..;:,. . ..,. .'..... .... ....'..... . .......... . .................. . .... ...... . .... ...... ......
+ . .. . . .. ;.colcc;.;'. .ckOOxoddKkccccllloKoxdxodO0XWkdKNN':oWWXNdo:;;;;:lcldooOKKKKKXXOO0Kkooooodddddddodoooooolloolllllld'''.'',,''',,,,;;;; .,;::::::,,,,;:::::;,',;;;,lc''''''l00kxc;::l::ldOOkddolc'.''',;;,,..';, . ...,.. ....... ...... ......... . ... ...... ............ .......... ... ....... . ................
+ . . . ... . .... ,.,ooolc,:. .':xkkkxddc;0xc:cclllxxllxodkxXNKOoXNNo,0WXNNO:;;;;::clcloooX0KKKKXX0000koodddddddollolccllcccoolllollx,'.. .,''''''''',;;; .',;:::;;....,',;;:;'',,;;cl,,,''':O0Oxc;:co:c:lkxxddoooc,..:c:;, .;, .. ...,... ........ . . .......... . ........................... ......... .. ............ . .............
+ .. . .. ... .... ... c.coodo:;..,''':lxkkkxoc;,:Ox::cccllo,l;dlxkkNNOOxXXNO;WWXWW:;;;;;:ccllclodxX000XXN0K000koddddddlcclolcclollllolllooloOl:;,...'.'.......',. ..;;;;;,'..............,;cl;,,,'';x0Oxl;:,l:::cdkdoddoooocc::cc'.';,. ... . .,... ....'.. ......... . .. . ............. ............. ............................ ...............
+ . . .. .. ..... . ,,'ldokodc:,',:lxxxxOxc;,,,:kx::::ccc.': 'cxx0NXd0O0KKkOWXWWO,;;;;::ccldooloxKWX0WNKdd0K0KKxddollccclollllollllollloollkK0koc:,,;;;;,......'. .',;;,,... ..'.';cc;;;,,,ck0ko:,,lc::cldxooddllloolc:,;:c' . . ....,.. .',.. . . ........ .... ....................................................... ...... ..... . ....
+ . . ... . ...........,:,;llol:;;:lddddxdddc,,,,,,;xdc;;:::. ;. 'xxKNOd00O0KNNWWNWc,;;;::ccccooodooXNWWWNxdddx000KkllllllllollllollllodddxOkkxkddOKOxoc:;;cc:......... ...''','... ..''.,cc;;,,,;oOOxl;;cc:c:clddooo::llooocc::;,'. . .....,. .... ... ..... .. ..... .................. ........................................... ............
+ .... . . . . ...'',,'.,;:cdllodxocoool;;,'',,,,,xdl,;;;. ;' oodK0xoOKk0KNWWW00,;;;;::cccccooodOXNNNWMXkddddkO0KOloooooddoooodollloxdxddddxdddxOdddxxdoc;;,..';...... ...''... ..'',:c:,,,,;oOko,;:cc::::odooo:';ccllol::;,;;,.. .. ..,....... ... .... .. .... ................................... .......................... . ............
+.. . . . .. .....',;:dc:ccc:::cc;,''',,,'''odl;,,' .';odlxxklONkOKNNWWKo;;;;;::ccloodx0KKKXNNK000xdodddkO00dooooddoddddoooooddooddxxddddxxdlcodxkd:;;;',:lc,,;,. ....... ..,,';;,,,,,;lxxlc:c:::::lolllc'',;:cc::;;;,;:;'.. ..''...'. ........,'... . ........................................................... .. ....... ......
+ . . ..... ',;,lc',;:::c:;;,'','''.''cooc,, clood:kx',NOkXXXN0xodOkddoollx00KXKKKKXNlcccc:cllodooxOKKxdddddddddddddddddxxdodoolodxxdollclkkc;;;,,';;;,;::;,,'.. ..... . ';,,''',,,,;:lodddl::;::llclc',.....,,,;;;;,;::,....'......... ........ .............................................................. .. .............
+ .. ... .. . . . .. .. .',.;o.',;::;,,,'''.......;ool,' . ..:lodd..ddl.OKkNKKNN:cdkxxxxxxKWOWNXKKKKNKcccc::;;;;cooddx0Xxxxddddddddddxxxdolllooolcloddolllllxkc;;;;;,,,;:,,,,''''''..... . .. .... .,:;,''',,,,,,':ddxxdllclcccl, ...,;,;;,,;:,.'.... ............... ................................................................. ..... ......
+ . ........ . . . .''.;l..... .........',,'.occ; .ccldl...'ddc:XX00XXN0xkxxxdd0KkxxxKWNXKKklllcc:;;;;;;::coodOKkxkkddodxxkxdolcccllllllcccloolllccloxl:;;;;;;,,;;;;;;,,'.................. .';;;''',,,,'..;:::;::;;;:cc' . .. ..,;,,,',::;.. .. . ............ ........................ ........................................ . .. ......
+ ......... .. . ... .;: .......... :;cc. ,lcc;. ...'oxoxXKOKKXNXdoolxNNXccckXxx0KX:cccc;::;,;;;;;:::clx0XKKdoodkxdolcccccccccclllcccloclccclodo:;;;;;;;;;;:;;;;;;;,''''''''''''',,,'''....',,''',.'. ..;:;,;,,,,;:cc. ..',,,,',;;,...... .... ....................................................................... ... .........
+ .. . . . ... ;:, ....... ...... ''c.c:.;ccc' .,..',,lkxXXXXXKXNXdoKWNNNdcl0oodkKo;:cccc:;::;;;;;;,::cldOXKollllcccccccccccccccclllccllclccccldl:;:;;;;;;;;:::::::::;;;;;;;;;,,,''..........''''''.'. ':::....,;;:l,. .........'',,'',:;'... .............. .......................... .......................................................
+.. . . .. .. . ':;... .........''. ;':lcllc'..;;'',,;;;;dkk0XXXKXNNNNNNNNKcOolod0d;c;lclcl::;;;,,,,;,;lxkK00Kdlllcccccccccccccccccllllcccclccccloc:::::::::;:::cc:::::::::::::;;;;;,,,'... .l...''... ..;::'....,,;:,'. ..........'',,,,;:,.. ........................... ....................................................................
+.. ... . . .. . .....,',',;:,,::coclol;,,::;,,,,;;;;;kcoxx0KXXXX0NNNXKK0olloko:,;:clcoclc:;;;;,,,ck0OkxxxOK0dllccccccccccccccccccllllcccccccclol:::::::::::::cllc:::::::::::;,,,''.......'o. ''.... .,,',,''.,,,:.''.....''.......,...',;;;;:,................................................................................................
+ . . . . .; . ................'''',d,cd:,c:,,,,,;;;;,'0'':okO0KNXX00kOoxllllld::;,c,lllollc::,;;:k0Okkkxxdox0Xkddxdlcccccccccccccccccccccccccccldo:::::::::::::::lllcccc::::;''...........,:.. ', .',.....',;;c,,:''''.........'......',;;;:;,........................................................................ ..... ............
+ .. . ',... ......................'l.:dc....''''''''.0.':oodkO00KNWKkkkolllldc;c,;:;lllollc::ckKOOOOOkkxxddxOXKxxk0xccccccccccccccccccccccccccclxl::::::::::::::::cooc::;;;''''......'''.,;'.. '. .. .''. . .,,,;..' .........'..........,;;;:;,............................... ..... .....................................................
+ . ....,. ...........................;c,;:;......'.....0.,:olcccdkk0KXNN00kxllooclc:c;looollloONXOOOOOOkkkkkOkkk0X0kOOcccccccccccccccccclcccccccccokc::::::::::::::::::ccc;;''''''''..'''...:,... '. ....' .,',' .'............ ....... .',,;;;,............................................................. ...........................
+ . .. .. .... ............................,;..','''...'.'..X.:c:;;:::::;lKKNNWNXX0kxllllooodooookK0XNXK0O000kkkkxxkkkOXX0lccccccccccccccccccllccccccccldxc:::::c:::::::;;;,,,::,,,,,''''''''''..:;'... .. .. ...... ..,',,..,............... .... ..',,;;,............................................... .................................... ..
+ . . . ... ...... ........ . .. ......'....',,,'.....Olc;;;;;;;::;dd:lx0XWWWWWNK0kkkxkkOOO0KKKK0OOOkxdxkOkkkkkkOKKXOlccccclcccccccccccccllccccccclko::cccc::::::;;;;;;;,,,:;,,,,,,,,,,''..c;'..'. . ....... ...'',, .''...... ........ ...... ';;,;;,....... .... ................................................. .......... ...... ..
+ . . . . ..................... ......................dO;;;,,,,,,,lxcccc:;ldOXNNWNNXXX00Oxkkkkxxxd0NNXK0Okkkkkk0kllOX0xolllccccccccccllllllcccccclodkl:::cc::::::;;;;;;;;;;;:::,,,,,,,,,'..c;'..'' .. . .. ... .'',' .'......... .. ...........',;;,,............................................................................... ....
+ . .. ................... ..'...................,o:kx:;;;;;;;ldcc::;,;,,,:lxk0KXNNNNNXK0KKKKXxdx0XNXXOkkkOOdooookKK0lccccccccccccccccllllccccloddkc:::::::::::;;;;;;;;;;;;;cc:;;;,,,''.c;'..''. .. .. .. ..,',, .'..........................',;;'.... .................. .............................................. .. ... ...
+ . ................... .',...................;l;::xkdc::ccldcc::'';;,,,,,;ccclllodxkO0000KXXKKKKKKXXKK00kxdlccclK00xcccccccccclllllllllllccclodxdc::::::::::::;;;;;;;;;;;;;:ccc;,,,''c;'..'''. .. . .... . .,',' .'............................,,;'............... ...................................................... .........
+.. . ..',.............. ..,'...................;:,;;:::oxxdclx:cc:'.,;,,,,,,,;:::ccclllldoccoxkxlllllldkoccccccccccc0KOklccccllccllclllllllllccclookl::c::::::::::;;;;;;;;;;;;;;;cx;,,,':;'..'.''. . .... ',';' ,...............................;,.... ................ ................. ......................................
+.... . ' .',,'................,....................,;;,,;;;;::::cx:cc:,'.,:,,,,,,,,,;:::clllloxlcllokollllllcccccccccccccck0dOdccccccccccllllllllllcccoddxc::::::::::::::::;;;;;;;;;;;;x;;,,,::,''...''... .. ... . ;:',. .;.......... ... ................';'.......................................... .................. ... ...........
+ ... .... .. .',,:'..'...........',....................;:;;;''''',;::x:;:;,'.','.',,,,,,,,,;;:cclllkxlllccxclllccccccccccccccclld0oxklcccclcccccllllllllllccooxoc:::::::::::::::;;;;;;;;;;;:d;;;;;;:;''....'. . . ... . cc'.. .... .. ....... .................;'......................................... ..................... ............
+ . .. .. .. , .,,;c''.'..........,'. ....................;lxl;'..'',,l:,,,,'..''..'',,,,,,,,,':ccllckxxlllco::ccccccccccccccccclccoKldOdcccccccccccccccllllcclloxc:::::::::;;;;;;;;;;;;;;;;;k:;::;;,c:,'.....'... . .''. .l;....;...... .... ....................;............................................................................
+... .... . . .. ..,;;c,'.'''.......;...........................:ll:''',:;''''''........',,,,,,,'',:ccccdkxdoolld,;cccccccccccccccccccco0llkxcccccccccccccccccllccclooc::::::::;;;;;;;;;;;;;;;;ld::;;::'l:;'....... .. . ...''. .,l,...;.. ... ..........................,............................................................................
+ ..... .. . ' ...';;:;'''''.....',..............................,cc:;;,''''.'..........',,,,,,'',;:;cclkddxdoooc,,:cccccccccccccccccccoKlcdxcccccccccccccccccclccccdl::::::::;;;;;;;;;;;;;;;cxccc:;;;'c::'........ . .... ......'.. ..cc...,............. ...................'............................................................................
+....... ... .. ....';;;c,'',''''.,,..............................',:,'''''.'..............',,,,''',;;,,:cddodxdoox,,,,;::cccc::cccccccccco0cclocccccccccccccccccclcccloc::::::;;;;;;;;;;;;;;;cdolccc::,,c;;.'''..... .... ... ...''. ..o,..,......... ...................'''..............................................................................
+...... ...... .. .. . .. . . ..'..;;;c,'',,,'.,...............................'';;,''''...................',,''',;;,,,;cxodxxxdol,,;;;;:ccc::cccccccccccxxccdccccccccccccccccccclcccol:::;;;;;;;;;;;;;;;;;:ddollccc:;,c;'''''..... . ... .. ... .''.. cc..,......................................................................................................... ....
+........... .. . .. .''.';;;:,,',,,',................................',:,,''''''...................''''';;,,,,,oooddxllx,,,,;;::c::cccccccccccc:Occdcccccccccccccccccccccccllc;;;;;;;;;;;;;;;;;;:dddolllcc:;::,',;'''.... . . ... .. ..'. 'o.................................................................................................................
+............ ... . .. . .. .'''',;;;;;,',,,,;,...............................',:,''''''......................'.';,,,,,,;dxxxkdlxl,,,;;:::::cccc::cccc:::ld:l::cccccccccccccccccccccclc:;;;;;;;;;;;;;;;;:dddoolllcc:;c;,,;:,'''... . . . .... ...'..o.'................ ............................. ........................ ....... ..............................
+................ ........ .. . . .. . .. ',,',;;;;;;,,,,,,,;:,............................'';;''''''.........................';,'',,,,,;::::;;:,;;;;:::::::lc:::::c::::d::::::ccccccccccccccccccccclc;;;;;;;;;;,,,,,:ddddoolllcc::o;,,;:;'''.... ....... .........'.c,................ ....................................................... ..............................
+............................... .. .. .. . .... .,,,,;;;;;;;;,,,,;;;,;:,..........................',:,''''''.........................';,'.'',,,,;::::;,,;;;;:::::::l:;:::::::::l:::::::c:c::ccccccccccccccclc:;;;;;;;;;,,,,;ddddooollccc:cd;;,';;,''.... .... ................:'............... ......................................................... . .. . ................. .........
+......................... ............. ........ ',,,,;;;;;;;;,,,,;;;;;;;;,........................';:'''''''.........................',,'.'',,,,,;::::,;,;;;::::::cc:;::::::::::::::::::::::::c:ccccccccccclcc;;;;;;;;,,,,,dxddooolllccc:lo::,,;;;''..... ...... ..............:'.................................................................. ........ .. .. ................. .........
+............................... ..... ........ .,,,,;;;;;;;;:;,;;;;;;;,,,;;;'....................'';,''''''...........................,,'.''',,,,,;:::;,;,;;::::::lc;;:::;:::;:::::::::::::::::::::ccccccccclc:;;;,,,,;,,;oxddoollcccc::colc;,,;,,,'''... ....................;.'....................................................................... ... .................. ........
+................................ .......... .......... ';;,,;;;;;;;;:;;;,;;;;;;;;,:c;,'..................',;'''''''...........................,,'''''',,,,,:::;,;;;::::::cl:;;;::::::;;;:::::::::::::::::::::ccccccclc:;,;,,,,,,,odddooc:;::::;;lxc:;,;;,,,,''.... .............................................................................................. ... . ................ ..........
+............................................ ............ .,;,;;;;;;;;;;;:;;;;;;;;;;;:o;;cl;,................',;''''''............................,,,'.''',,,,,;:::;,;;::::::cl;;;;;::::;;;;:;;:;::::::::::::::::::cccccllc;,,,,,,,,lddddo:;,;;:::;:oxl:,,;;,,,,''''.. .......................'..................................................................... . .. ................ ... .......
+............................................ ... ....... ';;;;;;;;;;:;;;:;;;;;;;;;;;lc;:x:;::;'............'',;''...............................',,,''''',,,,,,:::;,,;::::::lc;;;;;;;;;;:::::;;;:;;;;::::::::::c:::cccccoc:;,,,,,,cxdool:;,,;::::;:xoc:,,;;,,,'''.''. ........................'.................................................................... ... .................. ... ... .
+.................................................. .... .,;;;;;;;:;;;;;;::;;;;;;;;;co;;xo;;;;:l;...........',;,'''...............................,,,,''''',,,,;;::;,,;:::::cl:;:;;;:;;;;:;:;::;;;;;;;:;:::::::::::::ccccocc;,,,,,,xdoo::;;,;;;:::;cklc;,;;;,,,,''..'.. .........................'....................................................................... .................... .. ..
+.....................................................' . ';;;;;;;;:::;;;;;c:;;:;::::oc;lx;;;;;;;cl;.........'';,''................................',,,,,''',,,;;;::;,,,;::::ll;;:;:::;;;:;:;:;;::;;;;;;;;:;::::::::::ccccloc:,,,,,cdol:;;;;,;;::::;lxc:,,;;;,,,,''...'. ............................................................................................... . .. ............... ..
+......................................... ... . ...'. .. .,;;;;,;:;::::;;;;c:;;:::::odolxc;;;;;;;;;cl,......'',;''''..............................',,,,,,,,,,,,,,;::;,,;;:::clc;::::;;;;:::::;:;:;;;;;;;;::::::::::::::ccccdcc;,,,'loc;;;;;;,;;;;;;;ol:;,,,;;,,,,,'...'.. ............................'.......................................................................................... ......
+......................................... .. .. .... .,'.';;;,,;;::::::;;;;:c;;::cloc:::l:;;;;;;;;;;;cc'....'',;,'''...........................'.'',,,,,,,,,,,,,;:::;,,;::::clc::::::::::::;:::;;:;;;;;;;:::::::::::::cccccooc:,',,,;clllc;,,;;;;;;;l:;,,,;;,,,,,,''..''. ...........................''....................................................................... .................. .... ....
+...................................... . . .'..,'',;;;,,;;;::;::;;;;,;c:;:okxxxkkodl;;;;;;;;;;;;;:,..''',,''''...........................'''',,;;;;,,,,,;;;::;;,;;::::cl::::::::;:::;;::::::;;;;:;;:::::::::::::ccccccdcc;''''''',;cccllc:;;;;:;;,,,;;;;,,,'''...'.. ...................................................................................................................... .........
+............................................ . .'.','.';;,,',;:::::::;;;,,,:::o0Olccxd;cc,,,;;;;;;:ccc;'..''';,''.............................'''',;;;;;,,,,,;;;:::;;;;::::cc:::::::::::::::::;;:::;;;;;:::::::::::::ccccccolc:,'''''''''''',;:ccc::;;;:::cl,,,,'''..'''. .................................................................................................................. ...........
+..''....................................... ......;'..',,,'.,;::::::;;;;,,,;c:dXNXXKXxcc;,,,,;::::;,'.....'',;,'''...........................'.''',,;;;;;,,,,;;;:::;;;;:::cc:::::::::::::::::;;::::::;:::::::::::::::ccccccoocc;''''''''.........'',,,,,;;lx,,,,''''.'''. .............................................................................................................................
+............................................. .....;,...',''..;:::::::;;;;,,,;c:oXWWWNXK0l,,,;;;;;,'........'';;,''''........................'..'',',,,,,,,,,;;;;;;::;;;::::cc::::::::::::::::::::::::::::::::::::::c:cccccccldlc:,......................'''ox',''''''..'''. ...........................................................................................................................
+..................................................,;'..',,'..'',:cc:::;;;,,,,,cdKWWWNXkOk:,;;,,,,,,,''.....''';;'''..........................''.''',,,,,,,,,;;;;;;;:::;;::::cc::::::::::::::::::::::::::::::::::::::ccccccccclooc:;'........................ld'''''''...'''. ..........................................................................................................................
+''...............................................,:;;,,,''..'''',:ll::;;;;,,,,:ONWMWWX00l;,;;,,,,,,,''.....'',;;''''.......................''.'''',,,,,,,,,,;;;;;;;::::::::cc:::::::::::::::::::::::::::::::::::::::ccccccccllodlc:,........................lo.''''.....''''. .........................................................................................................................
+'''''..''......................................';c:,'.........'''',:lc:;;;,,;;:lx0XNNKKk:;;;;;,,,,,,,''''.'',,:;''''........................''''',',,,,;,,;;;;;;;;:::::::::cc:::::::::::::::::::::::::::::::::::ccc:cccccclllllooc:;'.......................ll''''.......'''. ......................................................'...'.'''''......................................................
+'',,,'''''''.'.............................',;,''............''''''',::;;;::c;''',cdkdoc;;;;;;,,,;;;,,'''''',;:,''''''................''''.'''''''',,,,,,;,,;;;;;;::::c::::cc:::::::::::::::::::::::::::::::::::ccccccccccllllloolc:,......................'l:.'.'.......'''.. ...............'...................'''''''.'.'''''''''..'''''.........................................................
+,,'''''''''''.............................','.......','..,,,',,',,,,,';;;:ol;.''.,;coocc::;;;;;;;;;;;;,,,',,,::;,,,,;,'''''''''''','',,,,,,,,,,,,,;;;;;;;;;;;:::::::cccccccccccccccccccccccccccccccccccccccccccccccccccclllllllooolc;'....................';l;'''''''....''''....... .'...'.......''''....''''''.'''''''''',''''''''''''''''''''.................'........................................
diff --git a/docs/package.json b/docs/package.json
index 7c4134ddf6..23a2497620 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -23,6 +23,7 @@
"prettier": "^3.6.2",
"sass-embedded": "^1.93.1",
"typescript": "^5.9.2",
+ "vite": "^7.1.7",
"vue": "^3.5.21",
"vuepress": "2.0.0-rc.24",
"vuepress-theme-plume": "1.0.0-rc.164"
diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml
index 2448b4e4db..54d79fa2e2 100644
--- a/docs/pnpm-lock.yaml
+++ b/docs/pnpm-lock.yaml
@@ -50,6 +50,9 @@ importers:
typescript:
specifier: ^5.9.2
version: 5.9.2
+ vite:
+ specifier: ^7.1.7
+ version: 7.1.7(@types/node@24.5.2)(sass-embedded@1.93.1)(sass@1.93.1)
vue:
specifier: ^3.5.21
version: 3.5.21(typescript@5.9.2)
@@ -2198,6 +2201,46 @@ packages:
yaml:
optional: true
+ vite@7.1.7:
+ resolution: {integrity: sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ lightningcss: ^1.21.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
vue-router@4.5.1:
resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==}
peerDependencies:
@@ -4508,6 +4551,20 @@ snapshots:
sass: 1.93.1
sass-embedded: 1.93.1
+ vite@7.1.7(@types/node@24.5.2)(sass-embedded@1.93.1)(sass@1.93.1):
+ dependencies:
+ esbuild: 0.25.10
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+ postcss: 8.5.6
+ rollup: 4.52.2
+ tinyglobby: 0.2.15
+ optionalDependencies:
+ '@types/node': 24.5.2
+ fsevents: 2.3.3
+ sass: 1.93.1
+ sass-embedded: 1.93.1
+
vue-router@4.5.1(vue@3.5.21(typescript@5.9.2)):
dependencies:
'@vue/devtools-api': 6.6.4
diff --git a/docs/tsconfig.json b/docs/tsconfig.json
index 4c6bcb6379..09d3993cec 100644
--- a/docs/tsconfig.json
+++ b/docs/tsconfig.json
@@ -1,7 +1,9 @@
{
"compilerOptions": {
"module": "nodenext",
- "moduleResolution": "nodenext"
+ "moduleResolution": "nodenext",
+ "noEmit": true,
+ "allowImportingTsExtensions": true
},
- "include": [".vuepress/**/*.ts"]
+ "include": [".vuepress/**/*.*ts"]
}