diff --git a/build/index.css b/build/index.css
deleted file mode 100644
index c4a38fa..0000000
--- a/build/index.css
+++ /dev/null
@@ -1,51 +0,0 @@
-body {
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
- Helvetica, Arial, sans-serif;
- margin: auto;
- max-width: 38rem;
- padding: 2rem;
- background-color: #12131b;
- display: flex;
- align-items: center;
- justify-content: center;
- flex-direction: column;
- grid-gap: 20px;
- height: 500px;
-
- & > svg {
- height: 50px;
- width: 50px;
- }
-}
-
-h1 {
- font-family: Arial, sans-serif;
- color: #cacad1;
- text-align: center;
- font-size: 18px;
- margin-bottom: -25px;
-}
-p {
- font-family: Arial, sans-serif;
- color: #a9a9b1;
- font-size: 16px;
- text-align: center;
-}
-
-.downloadProgress {
- margin-right: 10px;
-}
-
-.warning {
- border: 1px solid #ff0000;
- font-size: 14px;
- text-align: center;
- margin-top: 10px;
- padding: 10px;
- color: #ff0000;
- border-radius: 5px;
-}
-
-#dbPath {
- color: white;
-}
diff --git a/build/index.html b/build/index.html
deleted file mode 100644
index d92c98c..0000000
--- a/build/index.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
- Successfully connected
-
-
-
-
-
-
-
- The desktop app is now connected
- You can close this window and return to the Memex sidebar
-
- Important: Your index is all stored locally, please make sure to
- back it up.
- Folder to back up:
-
-
-
-
diff --git a/build/index.js b/build/index.js
deleted file mode 100644
index 2947571..0000000
--- a/build/index.js
+++ /dev/null
@@ -1,1719 +0,0 @@
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
-//
-import { indexDocument } from './indexing_pipeline/index.js';
-import { findSimilar } from './search/find_similar.js';
-import { addFeedSource, getAllRSSSources, } from './indexing_pipeline/rssFeeds/index.js';
-////////////////////////////////
-/// GENERAL SETUP ///
-////////////////////////////////
-import { fileURLToPath } from 'url';
-import { dirname } from 'path';
-import { shell } from 'electron';
-var __filename = fileURLToPath(import.meta.url);
-var __dirname = dirname(__filename);
-import express from 'express';
-import electron, { app, BrowserWindow, Tray, Menu, nativeImage, dialog, ipcMain, Notification, } from 'electron';
-import url from 'url';
-import xml2js from 'xml2js';
-import pkg from 'electron-updater';
-var autoUpdater = pkg.autoUpdater;
-import { AsyncDatabase } from 'promised-sqlite3';
-import axios from 'axios';
-import Store from 'electron-store';
-import fs from 'fs';
-import path from 'path';
-import log from 'electron-log';
-import * as lancedb from 'vectordb';
-import dotEnv from 'dotenv';
-import cors from 'cors';
-import chokidar from 'chokidar';
-dotEnv.config();
-var isPackaged = app.isPackaged;
-var tray = null;
-var mainWindow;
-var downloadProgress = 0;
-var EXPRESS_PORT;
-if (isPackaged) {
- EXPRESS_PORT = 11922; // Different from common React port 3000 to avoid conflicts
-}
-else {
- EXPRESS_PORT = 11923; // Different from common React port 3000 to avoid conflicts
-}
-var expressApp = express();
-expressApp.use(cors({ origin: '*' }));
-ipcMain.handle('get-db-path', function () {
- return path.join(app.getPath('userData'));
-});
-////////////////////////////////
-/// DATATBASE SETUP STUFF ///
-////////////////////////////////
-import settings from 'electron-settings';
-if (!isPackaged) {
- settings.configure({
- dir: path.join(electron.app.getAppPath(), '..', 'MemexDesktopData')
- });
-}
-var store = isPackaged
- ? new Store()
- : new Store({
- cwd: path.join(electron.app.getAppPath(), '..', 'MemexDesktopData')
- });
-var sourcesDB = null;
-var vectorDBuri = app.isPackaged
- ? path.join(app.getPath('userData'), 'data/vectorDB')
- : path.join('../MemexDesktopData/vectorDB');
-var vectorDocsTable = null;
-var vectorDocsTableName = 'vectordocstable';
-var allTables = {
- sourcesDB: sourcesDB,
- vectorDocsTable: vectorDocsTable
-};
-////////////////////////////////
-/// FOLDERWATCHING SETUP///
-////////////////////////////////
-import { processPDF } from './indexing_pipeline/pdf_indexing.js';
-import { processMarkdown } from './indexing_pipeline/markdown_indexing.js';
-var pdfJS = null;
-var processingQueue = Promise.resolve();
-var folderWatchers = {};
-////////////////////////////////
-/// TRANSFORMER JS STUFF ///
-////////////////////////////////
-// Setup
-var modelPipeline;
-var modelEnvironment;
-// embedding functions
-var embedTextFunction;
-var generateEmbeddings;
-var extractEntities;
-var entityExtractionFunction;
-////////////////////////////////
-/// ELECTRON APP BASIC SETUP ///
-////////////////////////////////
-if (app.dock) {
- // Check if the dock API is available (macOS specific)
- app.dock.hide();
-}
-if (!settings.has('userPref.startOnStartup')) {
- settings.set('userPref.startOnStartup', true);
- app.setLoginItemSettings({
- openAtLogin: true
- });
-}
-// if (require('electron-squirrel-startup')) {
-// app.quit()
-// }
-expressApp.use(express.json({ limit: '50mb' })); // adjust the limit as required
-expressApp.use(express.urlencoded({ extended: true, limit: '50mb' })); // adjust the limit as required
-process.on('uncaughtException', function (err) {
- log.error('There was an uncaught error', err);
-});
-process.on('unhandledRejection', function (reason, promise) {
- log.error('Unhandled Rejection at:', promise, 'reason:', reason);
-});
-// Example route 1: Simple Hello World
-expressApp.get('/hello', function (req, res) {
- res.send("Hello World from Electron's Express server!");
-});
-// Example route 2: Send back query params
-expressApp.get('/echo', function (req, res) {
- res.json(req.query);
-});
-// Example route 3other functionality you want to add
-var server = null;
-function startExpress() {
- if (!server || !server.listening) {
- server = expressApp.listen(EXPRESS_PORT, function () {
- log.info("Express server started on http://localhost:".concat(EXPRESS_PORT));
- console.log("Express server started on http://localhost:".concat(EXPRESS_PORT));
- });
- server.keepAliveTimeout = 300000000000000000;
- server.timeout = 0;
- server.on('close', function () {
- console.log('Express server has shut down');
- log.info('Express server has shut down');
- });
- }
- else {
- console.log("Express server is already running on http://localhost:".concat(EXPRESS_PORT));
- }
-}
-function checkSyncKey(inputKey) {
- var storedKey = store.get('syncKey');
- if (!storedKey) {
- store.set('syncKey', inputKey);
- return true;
- }
- else if (storedKey === inputKey) {
- return true;
- }
- else {
- return false;
- }
-}
-function stopExpress() {
- return new Promise(function (resolve, reject) {
- if (server) {
- server.close(function (err) {
- if (err) {
- log.error('Error stopping Express server:', err);
- reject(err);
- }
- else {
- console.log('Express server stopped.');
- server = null; // Nullify the server
- resolve();
- }
- process.exit(0);
- });
- }
- else {
- resolve();
- }
- });
-}
-function pickDirectory(type) {
- console.log('pickDirectory', type);
- try {
- var directories = dialog.showOpenDialogSync({
- properties: ['openDirectory']
- });
- if (directories && directories.length > 0) {
- var path = directories[0];
- store.set(type, path);
- return path; // Return the first selected directory
- }
- }
- catch (error) {
- var err = error;
- if (err.code === 'EACCES') {
- dialog.showErrorBox('Permission Denied', 'You do not have permission to access this directory. Please select a different directory or change your permission settings.');
- }
- else {
- dialog.showErrorBox('An error occurred', 'An error occurred while selecting the directory. Please try again.');
- }
- log.error(error);
- }
- return null;
-}
-function createWindow() {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2 /*return*/, new Promise(function (resolve, reject) {
- mainWindow = new BrowserWindow({
- height: 600,
- width: 800,
- webPreferences: {
- preload: path.join(__dirname, 'preload.cjs'),
- nodeIntegration: true
- }
- });
- var indexPath;
- if (isPackaged) {
- indexPath = path.join(electron.app.getAppPath(), 'build', 'loading.html');
- }
- else {
- indexPath = path.join(electron.app.getAppPath(), 'src', 'loading.html');
- }
- // mainWindow.webContents.openDevTools()
- mainWindow.on('close', function (event) {
- event.preventDefault();
- mainWindow.hide();
- });
- mainWindow
- .loadURL(url.format({
- pathname: indexPath,
- protocol: 'file:',
- slashes: true
- }))
- .then(function () {
- resolve(); // Resolve the promise when the window is loaded
- })["catch"](function (error) {
- reject(error); // Reject the promise if there's an error
- });
- })];
- });
- });
-}
-app.on('before-quit', function () {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- tray === null || tray === void 0 ? void 0 : tray.destroy();
- if (!server) return [3 /*break*/, 2];
- log.info('Stopping Express server as parto of quit process');
- return [4 /*yield*/, stopExpress()];
- case 1:
- _a.sent();
- _a.label = 2;
- case 2:
- log.info('before-quit');
- return [2 /*return*/];
- }
- });
- });
-});
-app.on('ready', function () { return __awaiter(void 0, void 0, void 0, function () {
- var trayIconPath, trayIcon, updateMenuItem, contextMenu;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, settings.get('hasOnboarded')];
- case 1:
- if (!((_a.sent()) === undefined)) return [3 /*break*/, 6];
- return [4 /*yield*/, createWindow()];
- case 2:
- _a.sent();
- new Notification({
- title: 'Memex Rabbit Hole Ready!',
- body: 'Go back to the extension sidebar to continue'
- }).show();
- return [4 /*yield*/, initializeDatabase()];
- case 3:
- _a.sent();
- return [4 /*yield*/, initializeModels()];
- case 4:
- embedTextFunction = _a.sent();
- mainWindow.loadURL(url.format({
- pathname: isPackaged
- ? path.join(electron.app.getAppPath(), 'build', 'index.html')
- : path.join(electron.app.getAppPath(), 'src', 'index.html'),
- protocol: 'file:',
- slashes: true
- }));
- if (!mainWindow || !mainWindow.isFocused()) {
- new Notification({
- title: 'Memex Rabbit Hole Ready!',
- body: 'Go back to the extension sidebar to continue'
- }).show();
- }
- return [4 /*yield*/, settings.set('hasOnboarded', true)];
- case 5:
- _a.sent();
- return [3 /*break*/, 9];
- case 6: return [4 /*yield*/, initializeDatabase()];
- case 7:
- _a.sent();
- return [4 /*yield*/, initializeModels()];
- case 8:
- embedTextFunction = _a.sent();
- _a.label = 9;
- case 9:
- if (!allTables.sourcesDB || !allTables.vectorDocsTable) {
- return [2 /*return*/];
- }
- return [4 /*yield*/, initializeFileSystemWatchers()];
- case 10:
- _a.sent();
- try {
- startExpress(); // Start Express server first
- log.catchErrors();
- trayIconPath = '';
- if (isPackaged) {
- trayIconPath = path.join(process.resourcesPath, 'src/img/tray_icon.png');
- }
- else {
- trayIconPath = path.join(electron.app.getAppPath(), 'src', 'img', 'tray_icon_dev.png');
- }
- trayIcon = nativeImage.createFromPath(trayIconPath);
- if (!fs.existsSync(trayIconPath)) {
- log.error('Tray icon not found:', trayIconPath);
- return [2 /*return*/];
- }
- tray = new Tray(trayIcon);
- tray.setImage(trayIcon);
- updateMenuItem = {
- label: 'Check for Updates',
- click: function () {
- autoUpdater.checkForUpdates();
- }
- };
- contextMenu = Menu.buildFromTemplate([
- {
- label: "Memex Local Sync - v".concat(app.getVersion()),
- enabled: false
- },
- {
- label: 'Start on Startup',
- type: 'checkbox',
- checked: app.getLoginItemSettings().openAtLogin,
- click: function (item) {
- var startOnStartup = item.checked;
- app.setLoginItemSettings({ openAtLogin: startOnStartup });
- }
- },
- {
- label: 'Refresh Sync Key',
- click: function () {
- store["delete"]('syncKey');
- }
- },
- {
- label: 'Add Local folder',
- click: function () {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, watchNewFolder()];
- case 1:
- _a.sent();
- return [2 /*return*/];
- }
- });
- });
- }
- },
- updateMenuItem,
- {
- label: 'Exit',
- click: function () {
- console.log('exit clicked before');
- app.quit();
- console.log('exit clicked');
- }
- },
- ]);
- // Set the context menu to the Tray
- tray.setContextMenu(contextMenu);
- // Optional: Add a tooltip to the Tray
- tray.setToolTip('Memex Local Sync Helper');
- try {
- autoUpdater
- .checkForUpdates()
- .then(function () { })["catch"](function (err) {
- log.error('err', err);
- });
- autoUpdater.on('update-available', function () {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- log.info('update available');
- log.info(autoUpdater.downloadUpdate());
- return [2 /*return*/];
- });
- });
- });
- autoUpdater.on('update-downloaded', function () {
- log.info('update downloaded');
- autoUpdater.quitAndInstall();
- });
- }
- catch (error) {
- console.log('error', error);
- }
- }
- catch (error) {
- log.error('error', error);
- app.quit();
- }
- return [2 /*return*/];
- }
- });
-}); });
-function generateEmbeddingFromText(text2embed) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, generateEmbeddings(text2embed, {
- pooling: 'mean',
- normalize: true
- })];
- case 1: return [2 /*return*/, _a.sent()];
- }
- });
- });
-}
-function initializeDatabase() {
- return __awaiter(this, void 0, void 0, function () {
- var dbPath, createRSSsourcesTable, createWebPagesTable, createAnnotationsTable, createPDFTable, createIndexQuery, createIndexQueryForPath, createFoldersTable, createIndexQueryForType, createMarkdownTable, createIndexForMarkdownPath, createIndexForMarkdownFingerPrint, vectorDB, generateZeroVector, defaultVectorDocument, _a, error_1;
- var _this = this;
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- dbPath = '';
- if (isPackaged) {
- if (!fs.existsSync(path.join(app.getPath('userData'), 'data'))) {
- fs.mkdirSync(path.join(app.getPath('userData'), 'data'), {
- recursive: true
- });
- }
- dbPath = path.join(app.getPath('userData'), 'data/sourcesDB.db');
- log.log('dbPath', app.getPath('userData'));
- fs.access(app.getPath('userData'), fs.constants.R_OK | fs.constants.W_OK, function (err) { return __awaiter(_this, void 0, void 0, function () {
- var dir;
- return __generator(this, function (_a) {
- if (err) {
- log.error('No access to database file:', err);
- }
- else {
- log.log('Read/Write access is available for the database file');
- dir = path.join(app.getPath('userData'), 'data');
- if (!fs.existsSync(dir)) {
- fs.mkdirSync(dir, { recursive: true });
- }
- }
- return [2 /*return*/];
- });
- }); });
- }
- else {
- if (!fs.existsSync(path.join(__dirname, '..', 'MemexDesktopData'))) {
- fs.mkdirSync(path.join(__dirname, '..', 'MemexDesktopData'), {
- recursive: true
- });
- }
- dbPath = '../MemexDesktopData/sourcesDB.db';
- }
- return [4 /*yield*/, AsyncDatabase.open(dbPath)
- // create Tables
- ];
- case 1:
- sourcesDB = _b.sent();
- createRSSsourcesTable = "CREATE TABLE IF NOT EXISTS rssSourcesTable(\n feedUrl STRING PRIMARY KEY, \n feedTitle STRING, \n type STRING, \n lastSynced INTEGER)\n ";
- return [4 /*yield*/, sourcesDB.run(createRSSsourcesTable)
- // create the websites table
- ];
- case 2:
- _b.sent();
- createWebPagesTable = "CREATE TABLE IF NOT EXISTS webPagesTable(\n fullUrl STRING PRIMARY KEY, \n pageTitle STRING, \n fullHTML STRING, \n contentType STRING, \n createdWhen INTEGER, \n sourceApplication STRING, \n creatorId STRING, \n metaDataJSON STRING)\n ";
- return [4 /*yield*/, sourcesDB.run(createWebPagesTable)
- // create the annotations table
- ];
- case 3:
- _b.sent();
- createAnnotationsTable = "CREATE TABLE IF NOT EXISTS annotationsTable(\n fullUrl STRING PRIMARY KEY, \n pageTitle STRING, \n fullHTML STRING, \n contentType STRING, \n createdWhen INTEGER, \n sourceApplication STRING, \n creatorId STRING)\n ";
- return [4 /*yield*/, sourcesDB.run(createAnnotationsTable)
- // create the pdf document table
- ];
- case 4:
- _b.sent();
- createPDFTable = "CREATE TABLE IF NOT EXISTS pdfTable(\n id INTEGER PRIMARY KEY,\n path STRING,\n fingerPrint STRING,\n pageTitle STRING,\n extractedContent STRING,\n createdWhen INTEGER,\n sourceApplication STRING,\n creatorId STRING,\n metaDataJSON STRING\n )\n ";
- return [4 /*yield*/, sourcesDB.run(createPDFTable)];
- case 5:
- _b.sent();
- createIndexQuery = "CREATE INDEX IF NOT EXISTS idx_pdfTable_fingerPrint ON pdfTable(fingerPrint)";
- return [4 /*yield*/, sourcesDB.run(createIndexQuery)];
- case 6:
- _b.sent();
- createIndexQueryForPath = "CREATE INDEX IF NOT EXISTS idx_pdfTable_path ON pdfTable(path)";
- return [4 /*yield*/, sourcesDB.run(createIndexQueryForPath)
- // Create the folders to watch table
- ];
- case 7:
- _b.sent();
- createFoldersTable = "CREATE TABLE IF NOT EXISTS watchedFoldersTable(\n id INTEGER PRIMARY KEY,\n path STRING,\n sourceApplication STRING,\n metaDataJSON STRING\n )\n ";
- return [4 /*yield*/, sourcesDB.run(createFoldersTable)];
- case 8:
- _b.sent();
- createIndexQueryForType = "CREATE INDEX IF NOT EXISTS idx_watchedFoldersTable_type ON watchedFoldersTable(sourceApplication)";
- return [4 /*yield*/, sourcesDB.run(createIndexQueryForType)
- // create the markdown table
- ];
- case 9:
- _b.sent();
- createMarkdownTable = "CREATE TABLE IF NOT EXISTS markdownDocsTable(\n id INTEGER PRIMARY KEY,\n path STRING,\n fingerPrint STRING,\n pageTitle STRING,\n content STRING,\n sourceApplication STRING,\n createdWhen INTEGER,\n creatorId STRING,\n metaDataJSON STRING\n )\n ";
- return [4 /*yield*/, sourcesDB.run(createMarkdownTable)];
- case 10:
- _b.sent();
- createIndexForMarkdownPath = "CREATE INDEX IF NOT EXISTS idx_markdownDocsTable_path ON markdownDocsTable(path)";
- return [4 /*yield*/, sourcesDB.run(createIndexForMarkdownPath)];
- case 11:
- _b.sent();
- createIndexForMarkdownFingerPrint = "CREATE INDEX IF NOT EXISTS idx_markdownDocsTable_fingerPrint ON markdownDocsTable(fingerPrint)";
- return [4 /*yield*/, sourcesDB.run(createIndexForMarkdownFingerPrint)];
- case 12:
- _b.sent();
- console.log('SourcesDB initialized at: ', dbPath);
- return [4 /*yield*/, lancedb.connect(vectorDBuri)];
- case 13:
- vectorDB = _b.sent();
- generateZeroVector = function (size) {
- return new Array(size).fill(0);
- };
- defaultVectorDocument = {
- fullurl: 'null',
- pagetitle: 'null',
- sourceapplication: 'null',
- createdwhen: 0,
- creatorid: 'null',
- contenttype: 'null',
- contenttext: 'null',
- entities: 'null',
- vector: generateZeroVector(768)
- };
- _b.label = 14;
- case 14:
- _b.trys.push([14, 22, , 23]);
- _b.label = 15;
- case 15:
- _b.trys.push([15, 17, , 20]);
- return [4 /*yield*/, vectorDB.openTable(vectorDocsTableName)];
- case 16:
- vectorDocsTable = _b.sent();
- return [3 /*break*/, 20];
- case 17:
- _a = _b.sent();
- if (!(vectorDocsTable == null)) return [3 /*break*/, 19];
- return [4 /*yield*/, vectorDB.createTable(vectorDocsTableName, [defaultVectorDocument])];
- case 18:
- vectorDocsTable = _b.sent();
- _b.label = 19;
- case 19: return [3 /*break*/, 20];
- case 20: return [4 /*yield*/, vectorDocsTable.countRows()];
- case 21:
- if ((_b.sent()) === 0) {
- vectorDocsTable.add([defaultVectorDocument]);
- }
- return [3 /*break*/, 23];
- case 22:
- error_1 = _b.sent();
- console.log('error', error_1);
- return [3 /*break*/, 23];
- case 23:
- allTables = {
- sourcesDB: sourcesDB,
- vectorDocsTable: vectorDocsTable
- };
- console.log('VectorDB initialized at: ', vectorDBuri);
- return [2 /*return*/];
- }
- });
- });
-}
-function initializeFileSystemWatchers() {
- return __awaiter(this, void 0, void 0, function () {
- var folderFetch, folders;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, (sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.all("SELECT * FROM watchedFoldersTable", function (err, rows) {
- if (err) {
- return console.log(err.message);
- }
- // rows contains all entries in the table
- console.log(rows);
- }))];
- case 1:
- folderFetch = _a.sent();
- folders = (folderFetch === null || folderFetch === void 0 ? void 0 : folderFetch.map(function (folder) {
- var obsidianFolder = path.join(folder.path, '.obsidian');
- var logseqFolder = path.join(folder.path, 'logseq');
- if (fs.existsSync(obsidianFolder)) {
- folder.sourceApplication = 'obsidian';
- }
- else if (fs.existsSync(logseqFolder)) {
- folder.sourceApplication = 'logseq';
- folder.path = logseqFolder + '/pages';
- }
- else {
- folder.sourceApplication = 'local';
- }
- return folder;
- })) || [];
- if (folderFetch) {
- startWatchers(folders, allTables);
- }
- return [2 /*return*/];
- }
- });
- });
-}
-function initializeModels() {
- return __awaiter(this, void 0, void 0, function () {
- var _a, pipeline, env, modelsDir, modelFilePath, modelUrl, writer_1, response_1, totalLength_1;
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, import('@xenova/transformers')];
- case 1:
- _a = _b.sent(), pipeline = _a.pipeline, env = _a.env;
- modelPipeline = pipeline;
- modelEnvironment = env;
- modelEnvironment.allowLocalModels = true;
- if (isPackaged) {
- modelsDir = path.join(app.getPath('userData'), 'models');
- }
- else {
- modelsDir = '../MemexDesktopData/models';
- }
- if (!fs.existsSync(modelsDir)) {
- fs.mkdirSync(modelsDir, { recursive: true });
- }
- modelFilePath = path.join(modelsDir, 'all-mpnet-base-v2_quantized.onnx');
- if (!!fs.existsSync(modelFilePath)) return [3 /*break*/, 3];
- modelUrl = 'https://huggingface.co/Xenova/all-mpnet-base-v2/resolve/main/onnx/model_quantized.onnx';
- writer_1 = fs.createWriteStream(modelFilePath);
- return [4 /*yield*/, axios({
- url: modelUrl,
- method: 'GET',
- responseType: 'stream'
- })];
- case 2:
- response_1 = _b.sent();
- totalLength_1 = response_1.headers['content-length'];
- console.log('Starting download');
- response_1.data.pipe(writer_1);
- new Promise(function (resolve, reject) {
- var bytesDownloaded = 0;
- response_1.data.on('data', function (chunk) {
- bytesDownloaded += chunk.length;
- downloadProgress = Math.floor((bytesDownloaded / totalLength_1) * 100);
- mainWindow.webContents.send('download-progress', "".concat(downloadProgress, "%"));
- });
- response_1.data.on('end', function () {
- console.log('Download complete');
- resolve();
- });
- writer_1.on('error', reject);
- });
- _b.label = 3;
- case 3:
- modelEnvironment.localModelPath = modelFilePath;
- console.log("Model file path1: ".concat(modelFilePath));
- return [4 /*yield*/, modelPipeline('feature-extraction', 'Xenova/all-mpnet-base-v2')];
- case 4:
- generateEmbeddings = _b.sent();
- embedTextFunction = generateEmbeddingFromText;
- //general setup of model pipeline needs to be on highest level to be consistent in chunking size for vectors
- ///
- // // prepare NER extraction model, needs to be on highest level to be consistent in chunking size for vectors
- // // modelEnvironment.allowRemoteModels = false;
- // modelEnvironment.localModelPath =
- // "./models/bert-base-multilingual-cased-ner-hrl_quantized.onnx";
- // extractEntities = await modelPipeline(
- // "token-classification",
- // "Xenova/bert-base-multilingual-cased-ner-hrl"
- // );
- // entityExtractionFunction = await extractEntitiesFromText;
- // console.log(
- // await entityExtractionFunction(
- // "To wean their country off imported oil and gas, and in the hope of retiring dirty coal-fired power stations, China’s leaders have poured money into wind and solar energy. But they are also turning to one of the most sustainable forms of non-renewable power. Over the past decade China has added 37 nuclear reactors, for a total of 55, according to the International Atomic Energy Agency, a UN body. During that same period America, which leads the world with 93 reactors, added two."
- // )
- // );
- // entityExtractionFunction(
- // "In 1945, to wean their country off imported oil and gas, and in the hope of retiring dirty coal-fired power stations, China’s leaders and in particular Xi Xinping and John malcovich have poured money into wind and solar energy and using chemical substances like H20 and co2. But they are also turning to one of the most sustainable forms of non-renewable power. Over the past decade China has added 37 nuclear reactors, for a total of 55, according to the International Atomic Energy Agency, a UN body. During that same period America, which leads the world with 93 reactors, added two."
- // );
- // setting up all databases and tables
- return [2 /*return*/, embedTextFunction];
- }
- });
- });
-}
-// async function extractEntitiesFromText(text2analzye) {
-// return await extractEntities(text2analzye)
-// }
-function isPathComponentValid(component) {
- if (typeof component !== 'string' ||
- !component.match(/^[a-z0-9\-]{2,20}$/)) {
- return false;
- }
- else {
- return true;
- }
-}
-///////////////////////////
-/// RABBIT HOLE ENDPOINTS ///
-/////////////////////////
-expressApp.put('/add_page', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var fullUrl, pageTitle, fullHTML, createdWhen, contentType, creatorId, sourceApplication, metadataJSON, error_2;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- fullUrl = req.body.fullUrl;
- pageTitle = req.body.pageTitle;
- fullHTML = req.body.fullHTML;
- createdWhen = req.body.createdWhen;
- contentType = req.body.contentType;
- creatorId = req.body.creatorId;
- sourceApplication = req.body.sourceApplication;
- metadataJSON = '';
- _a.label = 1;
- case 1:
- _a.trys.push([1, 4, , 5]);
- return [4 /*yield*/, allTables.sourcesDB.run("INSERT INTO webPagesTable VALUES(?, ?, ?, ?, ?, ?, ?, ? )", [
- fullUrl,
- pageTitle,
- fullHTML,
- contentType,
- createdWhen,
- sourceApplication,
- creatorId,
- metadataJSON,
- ])];
- case 2:
- _a.sent();
- return [4 /*yield*/, indexDocument({
- fullUrl: fullUrl,
- pageTitle: pageTitle,
- fullHTML: fullHTML,
- createdWhen: createdWhen,
- contentType: contentType,
- sourceApplication: sourceApplication,
- creatorId: creatorId,
- embedTextFunction: embedTextFunction,
- allTables: allTables,
- entityExtractionFunction: entityExtractionFunction
- })];
- case 3:
- _a.sent();
- return [2 /*return*/, res.status(200).send(true)];
- case 4:
- error_2 = _a.sent();
- log.error('Error in /index_document', error_2);
- return [2 /*return*/, res.status(500).json({ error: 'Internal server error' })];
- case 5: return [2 /*return*/];
- }
- });
- });
-});
-expressApp.put('/add_annotation', function (req, res) {
- var _a, _b, _c, _d, _e, _f, _g;
- return __awaiter(this, void 0, void 0, function () {
- var fullUrl, pageTitle, fullHTML, createdWhen, contentType, creatorId, sourceApplication, error_3;
- return __generator(this, function (_h) {
- switch (_h.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- fullUrl = ((_a = req.body) === null || _a === void 0 ? void 0 : _a.fullUrl) || '';
- pageTitle = ((_b = req.body) === null || _b === void 0 ? void 0 : _b.pageTitle) || '';
- fullHTML = ((_c = req.body) === null || _c === void 0 ? void 0 : _c.fullHTML) || '';
- createdWhen = ((_d = req.body) === null || _d === void 0 ? void 0 : _d.createdWhen) || '';
- contentType = ((_e = req.body) === null || _e === void 0 ? void 0 : _e.contentType) || '';
- creatorId = ((_f = req.body) === null || _f === void 0 ? void 0 : _f.creatorId) || '';
- sourceApplication = ((_g = req.body) === null || _g === void 0 ? void 0 : _g.sourceApplication) || '';
- _h.label = 1;
- case 1:
- _h.trys.push([1, 4, , 5]);
- return [4 /*yield*/, (sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.run("INSERT INTO annotationsTable VALUES(?, ?, ?, ?, ?, ?, ?)", [
- fullUrl,
- pageTitle,
- fullHTML,
- contentType,
- createdWhen,
- sourceApplication,
- creatorId,
- ]))];
- case 2:
- _h.sent();
- return [4 /*yield*/, indexDocument({
- fullUrl: fullUrl,
- pageTitle: pageTitle,
- fullHTML: fullHTML,
- createdWhen: createdWhen,
- contentType: contentType,
- sourceApplication: sourceApplication,
- creatorId: creatorId,
- embedTextFunction: embedTextFunction,
- allTables: allTables,
- entityExtractionFunction: entityExtractionFunction
- })];
- case 3:
- _h.sent();
- return [2 /*return*/, res.status(200).send(true)];
- case 4:
- error_3 = _h.sent();
- log.error('Error in /index_annotation', error_3);
- return [2 /*return*/, res.status(500).json({ error: 'Internal server error' })];
- case 5: return [2 /*return*/];
- }
- });
- });
-});
-expressApp.post('/get_similar', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- console.log('find_similar', embedTextFunction);
- return [4 /*yield*/, findSimilar(req, res, embedTextFunction, allTables, entityExtractionFunction)];
- case 1: return [2 /*return*/, _a.sent()];
- }
- });
- });
-});
-expressApp.post('/load_feed_sources', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var sourcesList, feedSourcesOutput, error_4;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- _a.label = 1;
- case 1:
- _a.trys.push([1, 3, , 4]);
- return [4 /*yield*/, allTables.sourcesDB.all("SELECT * FROM rssSourcesTable")
- // , function(err, rows) {
- // if (err) {
- // console.error(err);
- // rturn;
- // }
- // console.log("rows", rows);
- ];
- case 2:
- sourcesList = _a.sent();
- feedSourcesOutput = sourcesList.map(function (source) { return ({
- feedUrl: source.feedUrl,
- feedTitle: source.feedTitle,
- feedFavIcon: source.feedFavIcon,
- type: source.type
- }); });
- return [2 /*return*/, res.status(200).send(feedSourcesOutput)];
- case 3:
- error_4 = _a.sent();
- console.log("Error loading feed sources in /load_feed_sources", error_4);
- return [2 /*return*/, res.status(500).json({ error: error_4 })];
- case 4: return [2 /*return*/];
- }
- });
- });
-});
-var feedSourceQueue = [];
-expressApp.post('/add_feed_source', function (req, res) {
- var _a, _b, _c, _d;
- return __awaiter(this, void 0, void 0, function () {
- var feedSources, _loop_1, i, state_1, _i, feedSourceQueue_1, feedSource, feedUrl, feedTitle, type, error_5;
- return __generator(this, function (_e) {
- switch (_e.label) {
- case 0:
- log.log('called add_feed_source');
- if (!checkSyncKey(req.body.syncKey)) {
- console.log('sync key not valid');
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- feedSources = req.body.feedSources;
- feedSourceQueue = __spreadArray(__spreadArray([], feedSourceQueue, true), feedSources, true);
- console.log('feedSourceQueue', feedSourceQueue, req.body);
- _e.label = 1;
- case 1:
- _e.trys.push([1, 10, , 11]);
- _loop_1 = function (i) {
- var feedUrl, feedTitle, type, response, data, parser, parsedData_1, sql;
- return __generator(this, function (_f) {
- switch (_f.label) {
- case 0:
- feedUrl = (_a = feedSources[i]) === null || _a === void 0 ? void 0 : _a.feedUrl;
- feedTitle = (_b = feedSources[i]) === null || _b === void 0 ? void 0 : _b.feedTitle;
- type = (_c = feedSources[i]) === null || _c === void 0 ? void 0 : _c.type;
- if (!!feedTitle) return [3 /*break*/, 3];
- return [4 /*yield*/, fetch(feedUrl)];
- case 1:
- response = _f.sent();
- return [4 /*yield*/, response.text()];
- case 2:
- data = _f.sent();
- parser = new xml2js.Parser();
- parsedData_1 = null;
- parser.parseString(data, function (err, result) {
- if (err) {
- console.error('Failed to parse RSS feed: ', err);
- }
- else {
- parsedData_1 = result.rss.channel[0];
- }
- });
- if (parsedData_1) {
- feedTitle = (_d = parsedData_1 === null || parsedData_1 === void 0 ? void 0 : parsedData_1.title[0]) !== null && _d !== void 0 ? _d : '';
- }
- _f.label = 3;
- case 3:
- if (feedUrl && feedTitle) {
- try {
- sql = "INSERT OR REPLACE INTO rssSourcesTable VALUES (?, ?, ?, ?)";
- sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.run(sql, [
- feedUrl,
- feedTitle,
- type || null,
- null,
- ]);
- log.log("Added feed ".concat(feedUrl));
- }
- catch (error) {
- log.error('Error saving feed');
- return [2 /*return*/, { value: void 0 }];
- }
- }
- return [2 /*return*/];
- }
- });
- };
- i = 0;
- _e.label = 2;
- case 2:
- if (!(i < feedSources.length)) return [3 /*break*/, 5];
- return [5 /*yield**/, _loop_1(i)];
- case 3:
- state_1 = _e.sent();
- if (typeof state_1 === "object")
- return [2 /*return*/, state_1.value];
- _e.label = 4;
- case 4:
- i++;
- return [3 /*break*/, 2];
- case 5:
- _i = 0, feedSourceQueue_1 = feedSourceQueue;
- _e.label = 6;
- case 6:
- if (!(_i < feedSourceQueue_1.length)) return [3 /*break*/, 9];
- feedSource = feedSourceQueue_1[_i];
- feedUrl = feedSource.feedUrl, feedTitle = feedSource.feedTitle, type = feedSource.type;
- return [4 /*yield*/, addFeedSource(feedUrl, feedTitle, embedTextFunction, allTables, type, entityExtractionFunction)
- // if (success) {
- // // TODO: Handle different outcomes
- // }
- ];
- case 7:
- _e.sent();
- _e.label = 8;
- case 8:
- _i++;
- return [3 /*break*/, 6];
- case 9: return [2 /*return*/, res.status(200).send(true)];
- case 10:
- error_5 = _e.sent();
- log.error("Error adding feed sources in /add_rss_feed", error_5);
- return [2 /*return*/, res.status(500).json({ error: error_5 })];
- case 11: return [2 /*return*/];
- }
- });
- });
-});
-expressApp.get('/get_all_rss_sources', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var rssSources, error_6;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- _a.label = 1;
- case 1:
- _a.trys.push([1, 3, , 4]);
- return [4 /*yield*/, getAllRSSSources(allTables)];
- case 2:
- rssSources = _a.sent();
- return [2 /*return*/, res.status(200).send(rssSources)];
- case 3:
- error_6 = _a.sent();
- log.error("Error adding ".concat(req.body.feedUrl, " in /add_rss_feed"), error_6);
- return [2 /*return*/, res.status(500).json({ error: error_6 })];
- case 4: return [2 /*return*/];
- }
- });
- });
-});
-expressApp.post('/remove_feed_source', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var feedUrl, error_7;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- _a.label = 1;
- case 1:
- _a.trys.push([1, 3, , 4]);
- feedUrl = req.body.feedUrl;
- return [4 /*yield*/, (sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.run("DELETE FROM rssSourcesTable WHERE feedUrl = ?", [
- feedUrl,
- ]))];
- case 2:
- _a.sent();
- return [2 /*return*/, res.status(200).send('Feed source removed successfully')];
- case 3:
- error_7 = _a.sent();
- log.error("Error removing ".concat(req.body.feedUrl, " in /remove_feed_source"), error_7);
- return [2 /*return*/, res.status(500).json({ error: error_7 })];
- case 4: return [2 /*return*/];
- }
- });
- });
-});
-expressApp.post('/open_file', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var path, error_8;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('No access to open file')];
- }
- path = req.body.path;
- if (!fs.existsSync(path)) {
- return [2 /*return*/, res.status(404).send('File not found')];
- }
- _a.label = 1;
- case 1:
- _a.trys.push([1, 3, , 4]);
- console.log('path', path);
- return [4 /*yield*/, shell.openPath(path)];
- case 2:
- _a.sent();
- console.log('worked');
- return [2 /*return*/, res.status(200).send('File opened successfully')];
- case 3:
- error_8 = _a.sent();
- return [2 /*return*/, res.status(500).send('Error opening file')];
- case 4: return [2 /*return*/];
- }
- });
- });
-});
-expressApp.post('/fetch_all_folders', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var folders;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('No access to open file')];
- }
- return [4 /*yield*/, (sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.all("SELECT * FROM watchedFoldersTable", function (err, rows) {
- if (err) {
- return console.log(err.message);
- }
- // rows contains all entries in the table
- console.log(rows);
- }))];
- case 1:
- folders = _a.sent();
- return [2 /*return*/, res.status(200).json(folders)];
- }
- });
- });
-});
-expressApp.post('/watch_new_folder', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var folder;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('No access to open file')];
- }
- return [4 /*yield*/, watchNewFolder()];
- case 1:
- folder = _a.sent();
- return [2 /*return*/, res.status(200).json(folder)];
- }
- });
- });
-});
-// this is added as a global object so we can store all the watcher processes to cancel again later if needed
-expressApp.post('/remove_folder_to_watch', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var body, id, originalDocument, watcherToKill;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('No access to open file')];
- }
- body = req.body;
- id = body.id;
- return [4 /*yield*/, (sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.get('SELECT path FROM watchedFoldersTable WHERE id = ?', [id]))];
- case 1:
- originalDocument = (_a.sent()) || { path: '' };
- watcherToKill = folderWatchers[originalDocument === null || originalDocument === void 0 ? void 0 : originalDocument.path];
- watcherToKill.close();
- return [4 /*yield*/, (sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.run('DELETE FROM watchedFoldersTable WHERE id = ?', [id]))];
- case 2:
- _a.sent();
- delete folderWatchers[originalDocument.path];
- return [2 /*return*/, res.status(200).json({ success: true })];
- }
- });
- });
-});
-function watchNewFolder() {
- return __awaiter(this, void 0, void 0, function () {
- var newWindow, newFolderData, newFolder, sourceApplication, obsidianFolder, logseqFolder, topLevelFolder, folders, folderPaths, result, id, folder, newFolderObject;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- newWindow = new BrowserWindow({
- height: 10,
- width: 10,
- transparent: true,
- frame: false
- });
- newWindow.focus();
- newWindow.on('close', function (event) {
- event.preventDefault();
- newWindow.hide();
- });
- return [4 /*yield*/, dialog.showOpenDialog(newWindow, {
- properties: ['openDirectory']
- })];
- case 1:
- newFolderData = _a.sent();
- newFolder = newFolderData.filePaths[0];
- newWindow.close();
- if (!newFolder) {
- return [2 /*return*/, false];
- }
- sourceApplication = 'local';
- obsidianFolder = path.join(newFolder, '.obsidian');
- logseqFolder = path.join(newFolder, 'logseq');
- topLevelFolder = newFolder.split('/').pop();
- if (fs.existsSync(obsidianFolder)) {
- sourceApplication = 'obsidian';
- }
- else if (fs.existsSync(logseqFolder)) {
- sourceApplication = 'logseq';
- newFolder = logseqFolder + '/pages';
- }
- folders = [];
- return [4 /*yield*/, (sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.all("SELECT * FROM watchedFoldersTable", function (err, rows) {
- if (err) {
- return console.log(err.message);
- }
- // rows contains all entries in the table
- console.log(rows);
- }))];
- case 2:
- folders = _a.sent();
- folderPaths = folders
- ? folders.map(function (folder) { return folder.path; })
- : [];
- if (folderPaths.includes(newFolder)) {
- return [2 /*return*/];
- }
- return [4 /*yield*/, (sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.run("INSERT INTO watchedFoldersTable(path, sourceApplication, metaDataJSON) VALUES(?, ?, ?)", [newFolder, sourceApplication, '']))];
- case 3:
- result = _a.sent();
- id = result === null || result === void 0 ? void 0 : result.lastID;
- try {
- folder = {
- path: newFolder,
- sourceApplication: sourceApplication,
- id: id
- };
- startWatchers([folder], allTables);
- }
- catch (error) {
- log.error('Error in /watch_new_folder:', error);
- }
- newFolderObject = {
- path: newFolder,
- sourceApplication: sourceApplication,
- id: id
- };
- return [2 /*return*/, newFolderObject];
- }
- });
- });
-}
-function startWatchers(folders, allTables) {
- return __awaiter(this, void 0, void 0, function () {
- var ignoredPathObsidian, ignoredPathLogseq, deletionInProgress;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!!pdfJS) return [3 /*break*/, 2];
- return [4 /*yield*/, import('pdfjs-dist')];
- case 1:
- pdfJS = _a.sent();
- _a.label = 2;
- case 2:
- ignoredPathObsidian = store.get('obsidian') || null;
- ignoredPathLogseq = store.get('logseq') || null;
- deletionInProgress = false;
- // take the given folderPath array and start watchers on each folder
- (folders === null || folders === void 0 ? void 0 : folders.length) > 0 &&
- (folders === null || folders === void 0 ? void 0 : folders.forEach(function (folder) {
- var watcher = chokidar.watch(folder.path, {
- ignored: [
- /(^|[\/\\])\../,
- ignoredPathObsidian,
- ignoredPathLogseq,
- ],
- persistent: true
- });
- folderWatchers[folder.path] = watcher;
- watcher.on('add', function (path, stats) {
- return __awaiter(this, void 0, void 0, function () {
- var retryCount, maxRetries, waitForDeletion, error_9;
- var _this = this;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- retryCount = 0;
- maxRetries = 20;
- waitForDeletion = function () {
- return new Promise(function (resolve, reject) {
- if (!deletionInProgress) {
- resolve();
- }
- else if (retryCount >= maxRetries) {
- reject(new Error('Max retries reached'));
- }
- else {
- setTimeout(function () {
- retryCount++;
- waitForDeletion().then(resolve)["catch"](reject);
- }, 500);
- }
- });
- };
- _a.label = 1;
- case 1:
- _a.trys.push([1, 3, , 4]);
- return [4 /*yield*/, waitForDeletion()
- // Continue processing after deletion is complete
- ];
- case 2:
- _a.sent();
- return [3 /*break*/, 4];
- case 3:
- error_9 = _a.sent();
- // Handle error if max retries reached
- console.error(error_9);
- return [3 /*break*/, 4];
- case 4:
- processingQueue = processingQueue.then(function () { return __awaiter(_this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- // rename is a deletion and re-addition in the events, no rename unfortunately
- return [4 /*yield*/, processFiles(path, folder.sourceApplication, 'addOrRename', pdfJS)];
- case 1:
- // rename is a deletion and re-addition in the events, no rename unfortunately
- return [2 /*return*/, _a.sent()];
- }
- });
- }); });
- return [2 /*return*/];
- }
- });
- });
- });
- watcher.on('unlink', function (path, stats) {
- return __awaiter(this, void 0, void 0, function () {
- var fingerPrint;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- console.log('Deletion of file started: ', path);
- deletionInProgress = true;
- if (!path.endsWith('.pdf')) return [3 /*break*/, 4];
- return [4 /*yield*/, (sourcesDB === null || sourcesDB === void 0 ? void 0 : sourcesDB.get("SELECT fingerPrint FROM pdfTable WHERE path = ?", [path]))];
- case 1:
- fingerPrint = (_a.sent()) || { fingerPrint: '' };
- return [4 /*yield*/, allTables.vectorDocsTable["delete"]("fullurl = '".concat(fingerPrint === null || fingerPrint === void 0 ? void 0 : fingerPrint.fingerPrint.toString(), "'"))];
- case 2:
- _a.sent();
- return [4 /*yield*/, allTables.sourcesDB.run("DELETE FROM pdfTable WHERE path = ?", [path])];
- case 3:
- _a.sent();
- deletionInProgress = false;
- console.log('deletion done: ', path);
- _a.label = 4;
- case 4:
- if (!path.endsWith('.md')) return [3 /*break*/, 6];
- return [4 /*yield*/, allTables.sourcesDB.run("DELETE FROM markdownDocsTable WHERE path = ?", [path])];
- case 5:
- _a.sent();
- deletionInProgress = false;
- _a.label = 6;
- case 6: return [2 /*return*/];
- }
- });
- });
- });
- var debounceTimers = {};
- watcher.on('change', function (path, stats) {
- return __awaiter(this, void 0, void 0, function () {
- var _this = this;
- return __generator(this, function (_a) {
- // Clear the previous timer if it exists
- if (debounceTimers[path]) {
- clearTimeout(debounceTimers[path]);
- }
- // Set a new timer
- debounceTimers[path] = setTimeout(function () {
- processingQueue = processingQueue.then(function () { return __awaiter(_this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, processFiles(path, folder.sourceApplication, 'contentChange', pdfJS)
- // Once the processing is done, remove the timer from the map
- ];
- case 1:
- _a.sent();
- // Once the processing is done, remove the timer from the map
- delete debounceTimers[path];
- return [2 /*return*/];
- }
- });
- }); });
- }, 300); // 30 seconds
- return [2 /*return*/];
- });
- });
- });
- }));
- console.log('watchers setup: ', Object.keys(folderWatchers).length);
- return [2 /*return*/];
- }
- });
- });
-}
-function processFiles(file, sourceApplication, changeType, pdfJS) {
- return __awaiter(this, void 0, void 0, function () {
- var extension;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- extension = file.split('.').pop();
- if (!(extension === 'pdf')) return [3 /*break*/, 2];
- return [4 /*yield*/, processPDF(file, allTables, pdfJS, embedTextFunction)];
- case 1:
- _a.sent();
- return [2 /*return*/];
- case 2:
- if (!(extension === 'md')) return [3 /*break*/, 4];
- return [4 /*yield*/, processMarkdown(file, allTables, embedTextFunction, sourceApplication, changeType)];
- case 3:
- _a.sent();
- return [2 /*return*/];
- case 4:
- if (extension === 'epub') {
- }
- else if (extension === 'mobi') {
- }
- _a.label = 5;
- case 5: return [2 /*return*/];
- }
- });
- });
-}
-///////////////////////////
-/// PKM SYNC ENDPOINTS ///
-/////////////////////////
-expressApp.post('/set-directory', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var directoryPath, pkmSyncType;
- return __generator(this, function (_a) {
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- try {
- pkmSyncType = req.body.pkmSyncType;
- if (typeof pkmSyncType !== 'string') {
- res.status(400).json({ error: 'Invalid pkmSyncType' });
- return [2 /*return*/];
- }
- directoryPath = pickDirectory(pkmSyncType);
- if (directoryPath) {
- store.set(pkmSyncType, directoryPath);
- res.status(200).send(directoryPath);
- return [2 /*return*/, path];
- }
- else {
- res.status(400).json({ error: 'No directory selected' });
- return [2 /*return*/, null];
- }
- }
- catch (error) {
- log.error('Error in /set-directory:', error);
- res.status(500).json({
- error: 'Internal server error'
- });
- return [2 /*return*/, null];
- }
- return [2 /*return*/];
- });
- });
-});
-expressApp.put('/update-file', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var body, pkmSyncType, pageTitle, fileContent, directoryPath, filePath;
- return __generator(this, function (_a) {
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- try {
- body = req.body;
- pkmSyncType = body.pkmSyncType;
- pageTitle = body.pageTitle;
- fileContent = body.fileContent;
- if (typeof pkmSyncType !== 'string' ||
- typeof pageTitle !== 'string' ||
- typeof fileContent !== 'string') {
- res.status(400).json({ error: 'Invalid input' });
- return [2 /*return*/];
- }
- directoryPath = store.get(pkmSyncType);
- if (!directoryPath) {
- res.status(400).json({
- error: 'No directory found for given pkmSyncType'
- });
- return [2 /*return*/];
- }
- filePath = "".concat(directoryPath, "/").concat(pageTitle, ".md");
- fs.writeFileSync(filePath, fileContent);
- res.status(200).send(filePath);
- }
- catch (error) {
- log.error('Error in /update-file:', error);
- res.status(500).json({ error: 'Internal server error' });
- }
- return [2 /*return*/];
- });
- });
-});
-expressApp.post('/get-file-content', function (req, res) {
- return __awaiter(this, void 0, void 0, function () {
- var pkmSyncType, pageTitle, directoryPath, filePath, fileContent;
- return __generator(this, function (_a) {
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- try {
- pkmSyncType = req.body.pkmSyncType;
- pageTitle = req.body.pageTitle;
- if (typeof pkmSyncType !== 'string' || typeof pageTitle !== 'string') {
- res.status(400).json({ error: 'Invalid input' });
- return [2 /*return*/];
- }
- directoryPath = store.get(pkmSyncType);
- if (!directoryPath) {
- res.status(400).json({
- error: 'No directory found for given pkmSyncType'
- });
- return [2 /*return*/];
- }
- filePath = directoryPath + '/' + pageTitle + '.md';
- if (!fs.existsSync(filePath)) {
- res.status(400).json({ error: 'File not found' });
- return [2 /*return*/];
- }
- fileContent = fs.readFileSync(filePath, 'utf-8');
- res.status(200).send(fileContent);
- }
- catch (error) {
- log.error('Error in /get-file-content:', error);
- res.status(500).json({ error: 'Internal server error' });
- }
- return [2 /*return*/];
- });
- });
-});
-///////////////////////////
-/// BACKUP ENDPOINTS ///
-/////////////////////////
-// Exposing Server Endpoints for BACKUPS
-var backupPath = '';
-expressApp.post('/status', function (req, res) {
- console.log(' /status called');
- if (!checkSyncKey(req.body.syncKey)) {
- return res.status(403).send('Only one app instance allowed');
- }
- res.status(200).send('running');
-});
-expressApp.get('/status', function (req, res) {
- console.log(' /status called');
- if (!checkSyncKey(req.body.syncKey)) {
- return res.status(403).send('Only one app instance allowed');
- }
- res.status(200).send('running');
-});
-expressApp.post('/pick-directory', function (req, res) {
- if (!checkSyncKey(req.body.syncKey)) {
- return res.status(403).send('Only one app instance allowed');
- }
- try {
- var directoryPath = pickDirectory('backup');
- if (directoryPath) {
- res.json({ path: directoryPath });
- res.status(200).send(directoryPath);
- }
- else {
- res.status(400).json({ error: 'No directory selected' });
- }
- }
- catch (error) {
- log.error('Error in /pick-directory:', error);
- res.status(500).json({ error: 'Internal server error' });
- }
-});
-// get the backup folder location
-expressApp.get('/backup/location', function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
- var backupPath_1;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!!checkSyncKey(req.body.syncKey)) return [3 /*break*/, 1];
- res.status(403);
- return [3 /*break*/, 4];
- case 1:
- backupPath_1 = store.get('backupPath');
- if (!!backupPath_1) return [3 /*break*/, 3];
- return [4 /*yield*/, pickDirectory('backup')];
- case 2:
- backupPath_1 = _a.sent();
- _a.label = 3;
- case 3:
- store.set('backup', backupPath_1);
- res.status(200).send(backupPath_1);
- _a.label = 4;
- case 4: return [2 /*return*/];
- }
- });
-}); });
-expressApp.get('/backup/start-change-location', function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
- var _a, _b;
- return __generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- _b = (_a = res.status(200)).send;
- return [4 /*yield*/, pickDirectory('backup')];
- case 1:
- _b.apply(_a, [_c.sent()]);
- return [2 /*return*/];
- }
- });
-}); });
-// listing files
-expressApp.get('/backup/:collection', function (req, res) {
- if (!checkSyncKey(req.body.syncKey)) {
- return res.status(403).send('Only one app instance allowed');
- }
- var collection = req.params.collection;
- if (!isPathComponentValid(collection)) {
- return res.status(400).send('Malformed collection parameter');
- }
- var dirpath = backupPath + "/backup/".concat(collection);
- try {
- var filelist = fs.readdirSync(dirpath, 'utf-8');
- filelist = filelist.filter(function (filename) {
- // check if filename contains digits only to ignore system files like .DS_STORE
- return /^\d+$/.test(filename);
- });
- res.status(200).send(filelist.toString());
- }
- catch (err) {
- if (err.code === 'ENOENT') {
- res.status(404);
- res.status(404).json({ error: 'Collection not found.' });
- }
- else
- throw err;
- }
-});
-// getting files
-expressApp.get('/backup/:collection/:timestamp', function (req, res) {
- if (!checkSyncKey(req.body.syncKey)) {
- return res.status(403).send('Only one app instance allowed');
- }
- var filename = req.params.timestamp;
- if (!isPathComponentValid(filename)) {
- return res.status(400).send('Malformed timestamp parameter');
- }
- var collection = req.params.collection;
- if (!isPathComponentValid(collection)) {
- return res.status(400).send('Malformed collection parameter');
- }
- var filepath = backupPath + "/backup/".concat(collection, "/") + filename + '.json';
- try {
- res.status(200).send(fs.readFileSync(filepath, 'utf-8'));
- }
- catch (err) {
- if (err.code === 'ENOENT') {
- res.status(404);
- req.body = 'File not found.';
- }
- else
- throw err;
- }
-});
-expressApp.put('/backup/:collection/:timestamp', function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
- var filename, collection, dirpath, filepath;
- return __generator(this, function (_a) {
- if (!checkSyncKey(req.body.syncKey)) {
- return [2 /*return*/, res.status(403).send('Only one app instance allowed')];
- }
- filename = req.params.timestamp;
- if (!isPathComponentValid(filename)) {
- return [2 /*return*/, res.status(400).send('Malformed timestamp parameter')];
- }
- collection = req.params.collection;
- if (!isPathComponentValid(collection)) {
- return [2 /*return*/, res.status(400).send('Malformed collection parameter')];
- }
- dirpath = req.body.backupPath + "/backup/".concat(collection);
- try {
- fs.mkdirSync(dirpath, { recursive: true });
- }
- catch (err) {
- log.error(err);
- return [2 /*return*/, res.status(500).send('Failed to create directory.')];
- }
- filepath = dirpath + "/".concat(filename);
- fs.writeFile(filepath, JSON.stringify(req.body), function (err) {
- if (err) {
- log.error(err);
- return res.status(500).send('Failed to write to file.');
- }
- res.status(200).send('Data saved successfully.');
- });
- return [2 /*return*/];
- });
-}); });
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/index.js.map b/build/index.js.map
deleted file mode 100644
index 2943179..0000000
--- a/build/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/indexing_pipeline/index.js b/build/indexing_pipeline/index.js
deleted file mode 100644
index e471fc3..0000000
--- a/build/indexing_pipeline/index.js
+++ /dev/null
@@ -1,159 +0,0 @@
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-import { splitContentInReasonableChunks } from './utils.js';
-import log from 'electron-log';
-import TurndownService from 'turndown';
-import removeMarkdown from 'remove-markdown';
-function indexDocument(_a) {
- var fullUrl = _a.fullUrl, pageTitle = _a.pageTitle, fullHTML = _a.fullHTML, createdWhen = _a.createdWhen, contentType = _a.contentType, sourceApplication = _a.sourceApplication, creatorId = _a.creatorId, embedTextFunction = _a.embedTextFunction, allTables = _a.allTables, entityExtractionFunction = _a.entityExtractionFunction;
- return __awaiter(this, void 0, void 0, function () {
- var fullHTMLParsed, contentChunks, turndownService, response, error_1, chunksToWrite, _i, contentChunks_1, chunk, embeddedChunk, vectors, documentToIndex, vectorDocsTable, error_2;
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- fullHTMLParsed = null;
- _b.label = 1;
- case 1:
- _b.trys.push([1, 23, , 24]);
- contentChunks = [];
- if (!(contentType === 'annotation')) return [3 /*break*/, 2];
- turndownService = new TurndownService();
- contentChunks = [
- turndownService.turndown(Array.isArray(fullHTML) ? fullHTML.join(' ') : fullHTML),
- ];
- return [3 /*break*/, 11];
- case 2:
- if (!(contentType === 'pdf')) return [3 /*break*/, 3];
- if (typeof fullHTML === 'string') {
- fullHTMLParsed = JSON.parse(fullHTML);
- contentChunks = fullHTMLParsed.map(function (item) { return Object.values(item)[0]; });
- }
- return [3 /*break*/, 11];
- case 3:
- if (!(contentType === 'markdown')) return [3 /*break*/, 4];
- contentChunks = Array.isArray(fullHTML)
- ? fullHTML
- : [fullHTML || ''];
- return [3 /*break*/, 11];
- case 4:
- if (!!fullHTML) return [3 /*break*/, 9];
- _b.label = 5;
- case 5:
- _b.trys.push([5, 8, , 9]);
- return [4 /*yield*/, fetch(fullUrl)];
- case 6:
- response = _b.sent();
- return [4 /*yield*/, response.text()];
- case 7:
- fullHTML = _b.sent();
- return [3 /*break*/, 9];
- case 8:
- error_1 = _b.sent();
- console.error(error_1);
- return [3 /*break*/, 9];
- case 9: return [4 /*yield*/, splitContentInReasonableChunks(Array.isArray(fullHTML) ? fullHTML.join(' ') : fullHTML)];
- case 10:
- contentChunks = _b.sent();
- _b.label = 11;
- case 11:
- if (contentChunks.length === 0) {
- return [2 /*return*/, false];
- }
- chunksToWrite = [];
- _i = 0, contentChunks_1 = contentChunks;
- _b.label = 12;
- case 12:
- if (!(_i < contentChunks_1.length)) return [3 /*break*/, 18];
- chunk = contentChunks_1[_i];
- embeddedChunk = void 0;
- if (!(chunk.length > 20)) return [3 /*break*/, 17];
- if (!(contentType === 'markdown')) return [3 /*break*/, 14];
- return [4 /*yield*/, embedTextFunction(pageTitle + removeMarkdown(chunk))];
- case 13:
- embeddedChunk = _b.sent();
- return [3 /*break*/, 16];
- case 14: return [4 /*yield*/, embedTextFunction(pageTitle + chunk)];
- case 15:
- embeddedChunk = _b.sent();
- _b.label = 16;
- case 16:
- vectors = embeddedChunk[0].data;
- documentToIndex = {
- fullurl: fullUrl,
- pagetitle: pageTitle,
- sourceapplication: sourceApplication,
- createdwhen: createdWhen || Date.now(),
- creatorid: creatorId || '',
- contenttype: contentType || '',
- contenttext: chunk,
- entities: '',
- vector: Array.from(vectors)
- };
- chunksToWrite.push(documentToIndex);
- _b.label = 17;
- case 17:
- _i++;
- return [3 /*break*/, 12];
- case 18:
- vectorDocsTable = allTables.vectorDocsTable;
- if (!vectorDocsTable) return [3 /*break*/, 22];
- return [4 /*yield*/, vectorDocsTable.add(chunksToWrite)];
- case 19:
- _b.sent();
- return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 100); })];
- case 20:
- _b.sent();
- return [4 /*yield*/, vectorDocsTable.cleanupOldVersions(1)];
- case 21:
- _b.sent();
- _b.label = 22;
- case 22:
- console.log('Successfully indexed: ', fullUrl);
- log.log('Successfully indexed: ', fullUrl);
- return [2 /*return*/, true];
- case 23:
- error_2 = _b.sent();
- console.log('Failure indexing: ', fullUrl, ' ', error_2);
- log.log('Failure indexed: ', fullUrl, ' ', error_2);
- return [2 /*return*/, false];
- case 24: return [2 /*return*/];
- }
- });
- });
-}
-export { indexDocument };
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/indexing_pipeline/index.js.map b/build/indexing_pipeline/index.js.map
deleted file mode 100644
index f69b850..0000000
--- a/build/indexing_pipeline/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexing_pipeline/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/indexing_pipeline/markdown_indexing.js b/build/indexing_pipeline/markdown_indexing.js
deleted file mode 100644
index c8e24d4..0000000
--- a/build/indexing_pipeline/markdown_indexing.js
+++ /dev/null
@@ -1,220 +0,0 @@
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-import fs from 'fs';
-import moment from 'moment';
-import path from 'path';
-import { indexDocument } from './index.js';
-import crypto from 'crypto';
-function processMarkdown(file, allTables, embedTextFunction, sourceApplication, changeType) {
- var _a;
- return __awaiter(this, void 0, void 0, function () {
- var sourcesDB, existingFile, title, markdown, fingerPrint, stats, createdWhen, existingFileViaFingerPrint, existingFilePath, newFilePath, error_1, chunkedMarkdown, existingFileViaPath, chunkedMarkdown;
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- sourcesDB = allTables.sourcesDB;
- return [4 /*yield*/, sourcesDB.get("SELECT * FROM markdownDocsTable WHERE path = ?", [file])];
- case 1:
- existingFile = _b.sent();
- if (existingFile && changeType === 'addOrRename') {
- return [2 /*return*/];
- }
- title = path.basename(file, path.extname(file));
- markdown = fs.readFileSync(file, 'utf-8');
- if (markdown.length === 0) {
- return [2 /*return*/];
- }
- fingerPrint = crypto.createHash('md5').update(markdown).digest('hex');
- stats = fs.statSync(file);
- createdWhen = moment(stats.birthtime).valueOf();
- if (!(changeType === 'addOrRename')) return [3 /*break*/, 14];
- _b.label = 2;
- case 2:
- _b.trys.push([2, 10, , 11]);
- return [4 /*yield*/, sourcesDB.get("SELECT * FROM markdownDocsTable WHERE fingerPrint = ?", [fingerPrint])
- // this means it was just the setup listener
- ];
- case 3:
- existingFileViaFingerPrint = _b.sent();
- // this means it was just the setup listener
- if ((existingFileViaFingerPrint === null || existingFileViaFingerPrint === void 0 ? void 0 : existingFileViaFingerPrint.path) === file) {
- return [2 /*return*/];
- }
- if (!existingFileViaFingerPrint) return [3 /*break*/, 7];
- existingFilePath = existingFileViaFingerPrint.path.substring(0, existingFileViaFingerPrint.path.lastIndexOf('/'));
- newFilePath = file.substring(0, file.lastIndexOf('/'));
- if (!(existingFilePath === newFilePath)) return [3 /*break*/, 5];
- // if it is a rename, update the path
- return [4 /*yield*/, allTables.sourcesDB.run("UPDATE markdownDocsTable SET path = ? WHERE fingerPrint = ?", [file, fingerPrint])];
- case 4:
- // if it is a rename, update the path
- _b.sent();
- _b.label = 5;
- case 5:
- // TODO: if a rename it means we have to either update all the vectors with the new path or delete the old vectors and reindex the entire document
- console.log('delete vectors');
- return [4 /*yield*/, allTables.vectorDocsTable["delete"]("fullurl = '".concat(fingerPrint, "'"))];
- case 6:
- _b.sent();
- return [3 /*break*/, 9];
- case 7:
- // TODO: if a new file, index the entire document
- return [4 /*yield*/, ((_a = allTables === null || allTables === void 0 ? void 0 : allTables.sourcesDB) === null || _a === void 0 ? void 0 : _a.run("INSERT INTO markdownDocsTable VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?)", [
- file,
- fingerPrint,
- title,
- markdown,
- sourceApplication,
- createdWhen,
- '1',
- '',
- ]))];
- case 8:
- // TODO: if a new file, index the entire document
- _b.sent();
- _b.label = 9;
- case 9: return [3 /*break*/, 11];
- case 10:
- error_1 = _b.sent();
- throw error_1;
- case 11: return [4 /*yield*/, chunkMarkdown(markdown)];
- case 12:
- chunkedMarkdown = _b.sent();
- return [4 /*yield*/, indexDocument({
- fullUrl: fingerPrint,
- pageTitle: title,
- fullHTML: chunkedMarkdown,
- createdWhen: createdWhen,
- contentType: 'markdown',
- sourceApplication: sourceApplication,
- creatorId: '1',
- embedTextFunction: embedTextFunction,
- allTables: allTables,
- entityExtractionFunction: null
- })];
- case 13:
- _b.sent();
- _b.label = 14;
- case 14:
- if (!(changeType === 'contentChange')) return [3 /*break*/, 20];
- return [4 /*yield*/, sourcesDB.get("SELECT fingerPrint FROM markdownDocsTable WHERE path = ?", [file])
- // make sure the file exists before changing the content
- ];
- case 15:
- existingFileViaPath = _b.sent();
- if (!existingFileViaPath) return [3 /*break*/, 20];
- return [4 /*yield*/, allTables.sourcesDB.run("UPDATE markdownDocsTable SET content = ? , fingerPrint = ? WHERE path = ?", [markdown, fingerPrint, file])
- // TODO: if the content changes we have to delete all the vectors of this document and re-index the entire document. We have to debounce this somehow beca
- ];
- case 16:
- _b.sent();
- // TODO: if the content changes we have to delete all the vectors of this document and re-index the entire document. We have to debounce this somehow beca
- return [4 /*yield*/, allTables.vectorDocsTable["delete"]("fullurl = '".concat(existingFileViaPath.fingerPrint, "'"))];
- case 17:
- // TODO: if the content changes we have to delete all the vectors of this document and re-index the entire document. We have to debounce this somehow beca
- _b.sent();
- return [4 /*yield*/, chunkMarkdown(markdown)];
- case 18:
- chunkedMarkdown = _b.sent();
- return [4 /*yield*/, indexDocument({
- fullUrl: fingerPrint,
- pageTitle: title,
- fullHTML: chunkedMarkdown,
- createdWhen: createdWhen,
- contentType: 'markdown',
- sourceApplication: sourceApplication,
- creatorId: '1',
- embedTextFunction: embedTextFunction,
- allTables: allTables,
- entityExtractionFunction: null
- })];
- case 19:
- _b.sent();
- _b.label = 20;
- case 20: return [2 /*return*/];
- }
- });
- });
-}
-export { processMarkdown };
-export function chunkMarkdown(markdown) {
- return __awaiter(this, void 0, void 0, function () {
- var endIndex, chunks, chunkedMarkdown, lastHeadline;
- return __generator(this, function (_a) {
- // chunk it up by using any double \n as the delimiter, except when the previous item was a headline, then include it
- // also include the last headline in every chunk until a new headline is found
- // Check if the first line of the document has a "---"
- if (markdown.startsWith('---')) {
- endIndex = markdown.indexOf('\n---', 4);
- if (endIndex !== -1) {
- // Delete everything in between, including the "---" delimiters
- markdown = markdown.slice(endIndex + 4);
- }
- }
- // Replace all lines that are only "---" with "\n"
- markdown = markdown.replace(/^---$/gm, '\n');
- markdown = markdown
- .split('\n')
- .filter(function (line) { return !/^[^a-zA-Z0-9]+$/.test(line); })
- .join('\n');
- chunks = markdown.split('\n');
- chunkedMarkdown = [];
- lastHeadline = '';
- chunks.forEach(function (chunk) {
- if (chunk === '\n' || chunk === '') {
- return;
- }
- if (/^[^a-zA-Z0-9]+$/.test(chunk)) {
- return;
- }
- if (chunk.startsWith('#')) {
- lastHeadline = chunk;
- }
- if (lastHeadline.length > 0 && !chunk.startsWith('#')) {
- chunkedMarkdown.push(lastHeadline + '\n' + chunk);
- lastHeadline = '';
- }
- else if (lastHeadline.length === 0 && !chunk.startsWith('#')) {
- chunkedMarkdown.push(chunk);
- }
- // Clean the chunk by converting markdown to text
- });
- return [2 /*return*/, chunkedMarkdown];
- });
- });
-}
-//# sourceMappingURL=markdown_indexing.js.map
\ No newline at end of file
diff --git a/build/indexing_pipeline/markdown_indexing.js.map b/build/indexing_pipeline/markdown_indexing.js.map
deleted file mode 100644
index 04327fd..0000000
--- a/build/indexing_pipeline/markdown_indexing.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"markdown_indexing.js","sourceRoot":"","sources":["../../src/indexing_pipeline/markdown_indexing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAA;AAO3B,SAAe,eAAe,CAC1B,IAAY,EACZ,SAAoB,EACpB,iBAAiD,EACjD,iBAAyB,EACzB,UAA2C;;;;;;;oBAErC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAA;oBAGhB,qBAAM,SAAS,CAAC,GAAG,CACpC,gDAAgD,EAChD,CAAC,IAAI,CAAC,CACT,EAAA;;oBAHK,YAAY,GAAG,SAGpB;oBACD,IAAI,YAAY,IAAI,UAAU,KAAK,aAAa,EAAE;wBAC9C,sBAAM;qBACT;oBAGK,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;oBAG/C,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;oBAE/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBACvB,sBAAM;qBACT;oBAGK,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAGrE,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;oBACzB,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;yBAIjD,CAAA,UAAU,KAAK,aAAa,CAAA,EAA5B,yBAA4B;;;;oBAGW,qBAAM,SAAS,CAAC,GAAG,CAClD,uDAAuD,EACvD,CAAC,WAAW,CAAC,CAChB;wBAED,4CAA4C;sBAF3C;;oBAHK,0BAA0B,GAAG,SAGlC;oBAED,4CAA4C;oBAC5C,IAAI,CAAA,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAE,IAAI,MAAK,IAAI,EAAE;wBAC3C,sBAAM;qBACT;yBAEG,0BAA0B,EAA1B,wBAA0B;oBACpB,gBAAgB,GAClB,0BAA0B,CAAC,IAAI,CAAC,SAAS,CACrC,CAAC,EACD,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CACnD,CAAA;oBACC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;yBAExD,CAAA,gBAAgB,KAAK,WAAW,CAAA,EAAhC,wBAAgC;oBAChC,qCAAqC;oBACrC,qBAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CACzB,6DAA6D,EAC7D,CAAC,IAAI,EAAE,WAAW,CAAC,CACtB,EAAA;;oBAJD,qCAAqC;oBACrC,SAGC,CAAA;;;oBAGL,kJAAkJ;oBAClJ,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;oBAC7B,qBAAM,SAAS,CAAC,eAAe,CAAC,QAAM,CAAA,CAClC,qBAAc,WAAW,MAAG,CAC/B,EAAA;;oBAFD,SAEC,CAAA;;;gBAED,iDAAiD;gBACjD,qBAAM,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,0CAAE,GAAG,CAC3B,qEAAqE,EACrE;wBACI,IAAI;wBACJ,WAAW;wBACX,KAAK;wBACL,QAAQ;wBACR,iBAAiB;wBACjB,WAAW;wBACX,GAAG;wBACH,EAAE;qBACL,CACJ,CAAA,EAAA;;oBAbD,iDAAiD;oBACjD,SAYC,CAAA;;;;;oBAGL,MAAM,OAAK,CAAA;yBAES,qBAAM,aAAa,CAAC,QAAQ,CAAC,EAAA;;oBAA/C,eAAe,GAAG,SAA6B;oBAErD,qBAAM,aAAa,CAAC;4BAChB,OAAO,EAAE,WAAW;4BACpB,SAAS,EAAE,KAAK;4BAChB,QAAQ,EAAE,eAAe;4BACzB,WAAW,EAAE,WAAW;4BACxB,WAAW,EAAE,UAAU;4BACvB,iBAAiB,EAAE,iBAAiB;4BACpC,SAAS,EAAE,GAAG;4BACd,iBAAiB,EAAE,iBAAiB;4BACpC,SAAS,EAAE,SAAS;4BACpB,wBAAwB,EAAE,IAAI;yBACjC,CAAC,EAAA;;oBAXF,SAWE,CAAA;;;yBAKF,CAAA,UAAU,KAAK,eAAe,CAAA,EAA9B,yBAA8B;oBAEF,qBAAM,SAAS,CAAC,GAAG,CAC3C,0DAA0D,EAC1D,CAAC,IAAI,CAAC,CACT;wBAED,wDAAwD;sBAFvD;;oBAHK,mBAAmB,GAAG,SAG3B;yBAGG,mBAAmB,EAAnB,yBAAmB;oBACnB,qBAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CACzB,2EAA2E,EAC3E,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,CAChC;wBAED,0JAA0J;sBAFzJ;;oBAHD,SAGC,CAAA;oBAED,0JAA0J;oBAC1J,qBAAM,SAAS,CAAC,eAAe,CAAC,QAAM,CAAA,CAClC,qBAAc,mBAAmB,CAAC,WAAW,MAAG,CACnD,EAAA;;oBAHD,0JAA0J;oBAC1J,SAEC,CAAA;oBAEuB,qBAAM,aAAa,CAAC,QAAQ,CAAC,EAAA;;oBAA/C,eAAe,GAAG,SAA6B;oBAErD,qBAAM,aAAa,CAAC;4BAChB,OAAO,EAAE,WAAW;4BACpB,SAAS,EAAE,KAAK;4BAChB,QAAQ,EAAE,eAAe;4BACzB,WAAW,EAAE,WAAW;4BACxB,WAAW,EAAE,UAAU;4BACvB,iBAAiB,EAAE,iBAAiB;4BACpC,SAAS,EAAE,GAAG;4BACd,iBAAiB,EAAE,iBAAiB;4BACpC,SAAS,EAAE,SAAS;4BACpB,wBAAwB,EAAE,IAAI;yBACjC,CAAC,EAAA;;oBAXF,SAWE,CAAA;;;;;;CA8Db;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,MAAM,UAAgB,aAAa,CAAC,QAAgB;;;;YAChD,qHAAqH;YACrH,8EAA8E;YAC9E,sDAAsD;YACtD,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBAEtB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;gBAC7C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE;oBACjB,+DAA+D;oBAC/D,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;iBAC1C;aACJ;YAED,kDAAkD;YAClD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;YAE5C,QAAQ,GAAG,QAAQ;iBACd,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAA7B,CAA6B,CAAC;iBAC/C,IAAI,CAAC,IAAI,CAAC,CAAA;YAET,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC/B,eAAe,GAAa,EAAE,CAAA;YAC9B,YAAY,GAAG,EAAE,CAAA;YAErB,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK;gBACjB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;oBAChC,OAAM;iBACT;gBACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC/B,OAAM;iBACT;gBAED,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACvB,YAAY,GAAG,KAAK,CAAA;iBACvB;gBAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACnD,eAAe,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC,CAAA;oBACjD,YAAY,GAAG,EAAE,CAAA;iBACpB;qBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBAC5D,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;iBAC9B;gBACD,iDAAiD;YACrD,CAAC,CAAC,CAAA;YAEF,sBAAO,eAAe,EAAA;;;CACzB"}
\ No newline at end of file
diff --git a/build/indexing_pipeline/pdf_indexing.js b/build/indexing_pipeline/pdf_indexing.js
deleted file mode 100644
index ff40fd0..0000000
--- a/build/indexing_pipeline/pdf_indexing.js
+++ /dev/null
@@ -1,286 +0,0 @@
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
-import fs from 'fs';
-import moment from 'moment';
-import { indexDocument } from './index.js';
-function processPDF(file, allTables, pdfJS, embedTextFunction) {
- var _a, _b, _c, _d, _e, _f, _g;
- return __awaiter(this, void 0, void 0, function () {
- var sourcesDB, existingPDF, pdfData, uint8Array, pdfDoc_1, fingerPrint, existingFileViaFingerPrint, existingFilePath, newFilePath, metaData, createdWhen, title, textSections_1, getText, pdfText, heightCounts_1, sortedHeights, paragraphHeight_1, headingHeights, textElements_1, tempGroup, i, textSegment, matchingTextElement, firstFiveItems, lowestHeading_1, itemWithHeading2, firstItem, firstKey, documentToSave;
- var _h, _j;
- var _this = this;
- return __generator(this, function (_k) {
- switch (_k.label) {
- case 0:
- sourcesDB = allTables.sourcesDB;
- return [4 /*yield*/, sourcesDB.get("SELECT * FROM pdfTable WHERE path = ?", [file])];
- case 1:
- existingPDF = _k.sent();
- if (!(existingPDF === undefined)) return [3 /*break*/, 11];
- pdfData = fs.readFileSync(file);
- uint8Array = new Uint8Array(pdfData.buffer);
- return [4 /*yield*/, pdfJS.getDocument({ data: uint8Array }).promise];
- case 2:
- pdfDoc_1 = _k.sent();
- fingerPrint = pdfDoc_1._pdfInfo.fingerprints[0];
- return [4 /*yield*/, sourcesDB.get("SELECT * FROM pdfTable WHERE fingerPrint = ?", [fingerPrint])
- // determine if the change is just rename or if its a new file
- ];
- case 3:
- existingFileViaFingerPrint = _k.sent();
- if (!existingFileViaFingerPrint) return [3 /*break*/, 6];
- existingFilePath = existingFileViaFingerPrint.path.substring(0, existingFileViaFingerPrint.path.lastIndexOf('/'));
- newFilePath = file.substring(0, file.lastIndexOf('/'));
- if (!(existingFilePath === newFilePath)) return [3 /*break*/, 5];
- return [4 /*yield*/, allTables.sourcesDB.run("UPDATE pdfTable SET path = ? WHERE fingerPrint = ?", [file, fingerPrint])];
- case 4:
- _k.sent();
- _k.label = 5;
- case 5:
- if (existingFileViaFingerPrint.path === file) {
- console.log('PDF already indexed');
- }
- return [2 /*return*/];
- case 6: return [4 /*yield*/, pdfDoc_1.getMetadata()];
- case 7:
- metaData = _k.sent();
- createdWhen = metaData.info.CreationDate || null;
- try {
- createdWhen = moment(createdWhen).unix();
- }
- catch (error) {
- createdWhen = Date.now();
- }
- title = metaData.info.Title || null;
- textSections_1 = [];
- getText = function () { return __awaiter(_this, void 0, void 0, function () {
- var pdf, maxPages, j, page, textContent;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- pdf = pdfDoc_1;
- maxPages = pdf._pdfInfo.numPages;
- j = 1;
- _a.label = 1;
- case 1:
- if (!(j <= maxPages)) return [3 /*break*/, 5];
- return [4 /*yield*/, pdf.getPage(j)];
- case 2:
- page = _a.sent();
- return [4 /*yield*/, page.getTextContent()
- // remove all vertical text
- ];
- case 3:
- textContent = _a.sent();
- // remove all vertical text
- textContent.items = textContent.items.filter(function (item) { return item.transform[2] >= 0; });
- textSections_1 = __spreadArray(__spreadArray([], textSections_1, true), textContent.items, true);
- _a.label = 4;
- case 4:
- j++;
- return [3 /*break*/, 1];
- case 5: return [2 /*return*/];
- }
- });
- }); };
- return [4 /*yield*/, getText()
- // Parse text elements into paragraphs and headings
- ];
- case 8:
- _k.sent();
- pdfText = [];
- heightCounts_1 = {};
- textSections_1.forEach(function (textSegment) {
- var height = textSegment.transform[0];
- if (heightCounts_1[height]) {
- heightCounts_1[height]++;
- }
- else {
- heightCounts_1[height] = 1;
- }
- });
- sortedHeights = Object.keys(heightCounts_1)
- .map(Number)
- .sort(function (a, b) { return heightCounts_1[b] - heightCounts_1[a]; });
- paragraphHeight_1 = sortedHeights[0];
- headingHeights = sortedHeights.slice(1);
- headingHeights.sort(function (a, b) { return Number(b) - Number(a); });
- textElements_1 = {};
- // find the most common font size, this is the standard text size
- textElements_1[paragraphHeight_1] = 'Paragraph';
- // make the rest headings in ascending order
- headingHeights.forEach(function (height, index) {
- if (height < paragraphHeight_1) {
- textElements_1[height] = 'SmallText' + (index + 1);
- }
- else {
- textElements_1[height] = 'Heading' + (index + 1);
- }
- });
- tempGroup = '';
- for (i = 0; i < (textSections_1 === null || textSections_1 === void 0 ? void 0 : textSections_1.length); i++) {
- textSegment = textSections_1[i];
- matchingTextElement = void 0;
- if ((textSegment === null || textSegment === void 0 ? void 0 : textSegment.transform[0]) ===
- ((_a = textSections_1[i - 1]) === null || _a === void 0 ? void 0 : _a.transform[0]) ||
- (typeof (textSegment === null || textSegment === void 0 ? void 0 : textSegment.transform[0]) === 'number' &&
- (textSegment === null || textSegment === void 0 ? void 0 : textSegment.transform[0]) <= paragraphHeight_1 &&
- textSegment.str !== '')) {
- if (textSegment.hasEOL ||
- ((_b = textSections_1[i - 1]) === null || _b === void 0 ? void 0 : _b.transform[5]) !==
- textSegment.transform[5]) {
- tempGroup += textSegment.str + ' ';
- }
- else {
- tempGroup += textSegment.str;
- }
- }
- else if (i === (textSections_1 === null || textSections_1 === void 0 ? void 0 : textSections_1.length) - 1 && tempGroup.length > 0) {
- matchingTextElement =
- textElements_1[(_c = textSections_1[i]) === null || _c === void 0 ? void 0 : _c.transform[0]];
- pdfText.push((_h = {},
- _h[matchingTextElement] = tempGroup,
- _h));
- }
- else {
- if (((_d = textSections_1[i - 1]) === null || _d === void 0 ? void 0 : _d.transform[0]) == null) {
- matchingTextElement =
- textElements_1[(_e = textSections_1[i]) === null || _e === void 0 ? void 0 : _e.transform[0]];
- }
- else {
- matchingTextElement =
- textElements_1[(_f = textSections_1[i - 1]) === null || _f === void 0 ? void 0 : _f.transform[0]];
- }
- // filter out small chunks that are likely noise
- if (tempGroup.length > 10) {
- pdfText.push((_j = {},
- _j[matchingTextElement] = tempGroup.replace(/(? 0) {
- firstItem = pdfText[0];
- firstKey = Object.keys(firstItem)[0];
- title = firstItem[firstKey];
- }
- }
- documentToSave = {
- path: file || '',
- fullurl: fingerPrint || '',
- pagetitle: title || '',
- sourceapplication: 'localPDF' || '',
- createdwhen: createdWhen || Date.now(),
- creatorid: '1' || '',
- contenttype: 'pdf' || '',
- contenttext: JSON.stringify(pdfText) || ''
- };
- return [4 /*yield*/, allTables.sourcesDB.run("INSERT INTO pdfTable VALUES(null, ?, ?, ? ,?, ?, ?, ?, ?)", [
- documentToSave.path,
- documentToSave.fullurl,
- documentToSave.pagetitle,
- documentToSave.contenttext,
- documentToSave.createdwhen,
- documentToSave.sourceapplication,
- documentToSave.creatorid,
- '',
- ])];
- case 9:
- _k.sent();
- console.log('PDF saved to Sqlite DB', documentToSave.fullurl);
- return [4 /*yield*/, indexDocument({
- fullUrl: documentToSave.fullurl,
- pageTitle: documentToSave.pagetitle,
- fullHTML: documentToSave.contenttext,
- createdWhen: documentToSave.createdwhen,
- contentType: documentToSave.contenttype,
- sourceApplication: documentToSave.sourceapplication,
- creatorId: documentToSave.creatorid,
- embedTextFunction: embedTextFunction,
- allTables: allTables,
- entityExtractionFunction: null
- })];
- case 10:
- _k.sent();
- console.log('PDF indexed in Vector DB', documentToSave.fullurl);
- return [2 /*return*/, documentToSave];
- case 11: return [2 /*return*/];
- }
- });
- });
-}
-export { processPDF };
-//# sourceMappingURL=pdf_indexing.js.map
\ No newline at end of file
diff --git a/build/indexing_pipeline/pdf_indexing.js.map b/build/indexing_pipeline/pdf_indexing.js.map
deleted file mode 100644
index 93f9244..0000000
--- a/build/indexing_pipeline/pdf_indexing.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pdf_indexing.js","sourceRoot":"","sources":["../../src/indexing_pipeline/pdf_indexing.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/indexing_pipeline/rssFeeds/index.js b/build/indexing_pipeline/rssFeeds/index.js
deleted file mode 100644
index 801c69a..0000000
--- a/build/indexing_pipeline/rssFeeds/index.js
+++ /dev/null
@@ -1,432 +0,0 @@
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-import { indexDocument } from '../index.js';
-import { cleanFullHTML } from '../utils.js';
-import * as xml2js from 'xml2js';
-import * as cheerio from 'cheerio';
-import { extract as extractFeed } from '@extractus/feed-extractor';
-import * as log from 'electron-log';
-function getAllRSSSources(allTables) {
- return __awaiter(this, void 0, void 0, function () {
- var rssSourcesTable, allRSSSources;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- rssSourcesTable = allTables.rssSourcesTable;
- return [4 /*yield*/, rssSourcesTable.getAll()];
- case 1:
- allRSSSources = _a.sent();
- return [2 /*return*/, allRSSSources];
- }
- });
- });
-}
-function addFeedSource(feedUrl, feedTitle, embedTextFunction, allTables, type, entityExtractionFunction) {
- var _a;
- return __awaiter(this, void 0, void 0, function () {
- var sourcesDB, existingEndpoint, error_1, feedDataToSave, isSubstack_1, url, feedURLsubstack, parser, htmlContent, response, error_2, parsedData_1, links_2, url, feedUrlSubstack, allSiteMapPages_2, response, text, $_1, anchors, _loop_1, _i, allSiteMapPages_1, page, _loop_2, _b, links_1, link, feedResult, error_3, _loop_3, _c, _d, entry, state_1, sql, error_4, error_5;
- return __generator(this, function (_e) {
- switch (_e.label) {
- case 0:
- _e.trys.push([0, 33, , 34]);
- sourcesDB = allTables.sourcesDB;
- existingEndpoint = void 0;
- _e.label = 1;
- case 1:
- _e.trys.push([1, 3, , 4]);
- return [4 /*yield*/, sourcesDB.get("SELECT * FROM rssSourcesTable WHERE feedUrl = ? AND lastSynced IS NOT NULL", [feedUrl])];
- case 2:
- existingEndpoint = _e.sent();
- return [3 /*break*/, 4];
- case 3:
- error_1 = _e.sent();
- log.error('Error checking existing endpoint');
- return [2 /*return*/, false];
- case 4:
- if (existingEndpoint) {
- console.log('Feed Already Saved: ', feedUrl);
- return [2 /*return*/, true];
- }
- feedDataToSave = {
- feedUrl: feedUrl,
- feedTitle: feedTitle,
- lastSynced: null
- };
- isSubstack_1 = feedUrl.includes('.substack.com/') || type === 'substack';
- if (!!isSubstack_1) return [3 /*break*/, 10];
- url = new URL(feedUrl);
- feedURLsubstack = "".concat(url.protocol, "//").concat(url.host, "/feed");
- parser = void 0;
- htmlContent = void 0;
- _e.label = 5;
- case 5:
- _e.trys.push([5, 8, , 9]);
- return [4 /*yield*/, fetch(feedURLsubstack)];
- case 6:
- response = _e.sent();
- return [4 /*yield*/, response.text()];
- case 7:
- htmlContent = _e.sent();
- return [3 /*break*/, 9];
- case 8:
- error_2 = _e.sent();
- console.log('error fetching feed', error_2);
- throw new Error('error fetching feed:' + error_2.message);
- case 9:
- try {
- parser = new xml2js.Parser();
- parser.parseString(htmlContent, function (err, result) {
- var _a, _b;
- if (err) {
- console.log('Failed to parse HTML content: ', err);
- }
- else {
- parsedData_1 = (_a = result === null || result === void 0 ? void 0 : result.rss) === null || _a === void 0 ? void 0 : _a.channel[0];
- var imageUrl = (_b = parsedData_1 === null || parsedData_1 === void 0 ? void 0 : parsedData_1.image[0]) === null || _b === void 0 ? void 0 : _b.url[0];
- if (imageUrl &&
- imageUrl.startsWith('https://substackcdn.com')) {
- isSubstack_1 = true;
- }
- }
- });
- }
- catch (error) {
- console.log('Failed to parse out xml content: ', error);
- log.log('Failed to parse out xml content: ', error);
- }
- _e.label = 10;
- case 10:
- if (!isSubstack_1) return [3 /*break*/, 21];
- links_2 = [];
- url = new URL(feedUrl);
- feedUrlSubstack = "".concat(url.protocol, "//").concat(url.host, "/sitemap");
- allSiteMapPages_2 = [];
- return [4 /*yield*/, fetch(feedUrlSubstack)];
- case 11:
- response = _e.sent();
- return [4 /*yield*/, response.text()];
- case 12:
- text = _e.sent();
- $_1 = cheerio.load(text);
- anchors = $_1('a');
- anchors.each(function (i, anchor) {
- var href = $_1(anchor).attr('href');
- if (href === null || href === void 0 ? void 0 : href.startsWith('/sitemap')) {
- allSiteMapPages_2.push(href);
- }
- });
- _loop_1 = function (page) {
- var siteMapPageUrl, pageResponse, pageText, $page, pageAnchors;
- return __generator(this, function (_f) {
- switch (_f.label) {
- case 0:
- siteMapPageUrl = "".concat(url.protocol, "//").concat(url.host).concat(page);
- return [4 /*yield*/, fetch(siteMapPageUrl)];
- case 1:
- pageResponse = _f.sent();
- return [4 /*yield*/, pageResponse.text()];
- case 2:
- pageText = _f.sent();
- $page = cheerio.load(pageText);
- pageAnchors = $page('a');
- pageAnchors.each(function (i, anchor) {
- var href = $page(anchor).attr('href');
- if (href === null || href === void 0 ? void 0 : href.startsWith("".concat(feedUrl.replace('/feed', ''), "/p/"))) {
- links_2.push(href);
- }
- });
- return [2 /*return*/];
- }
- });
- };
- _i = 0, allSiteMapPages_1 = allSiteMapPages_2;
- _e.label = 13;
- case 13:
- if (!(_i < allSiteMapPages_1.length)) return [3 /*break*/, 16];
- page = allSiteMapPages_1[_i];
- return [5 /*yield**/, _loop_1(page)];
- case 14:
- _e.sent();
- _e.label = 15;
- case 15:
- _i++;
- return [3 /*break*/, 13];
- case 16:
- if (links_2 && links_2.length === 0) {
- return [2 /*return*/, false];
- }
- _loop_2 = function (link) {
- var response_1, fullHTML, cleanHTML, $_2, metaDataTags, scripts, jsonScript, scriptHtml, datePublishedUnix, title, pageDataToSave;
- return __generator(this, function (_g) {
- switch (_g.label) {
- case 0: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 500); })];
- case 1:
- _g.sent();
- return [4 /*yield*/, fetch(link, {
- headers: {
- Accept: 'text/html'
- }
- })];
- case 2:
- response_1 = _g.sent();
- return [4 /*yield*/, response_1.text()];
- case 3:
- fullHTML = _g.sent();
- return [4 /*yield*/, cleanFullHTML(fullHTML)];
- case 4:
- cleanHTML = _g.sent();
- $_2 = cheerio.load(fullHTML);
- metaDataTags = void 0;
- // get the page metadata containing lots of useful information about the post we can use later
- try {
- scripts = $_2('script');
- jsonScript = scripts
- .filter(function (i, script) {
- return $_2(script).attr('type') ===
- 'application/ld+json';
- })
- .first();
- scriptHtml = jsonScript.html();
- if (scriptHtml) {
- metaDataTags = JSON.parse(scriptHtml);
- }
- }
- catch (error) { }
- datePublishedUnix = (metaDataTags === null || metaDataTags === void 0 ? void 0 : metaDataTags.datePublished)
- ? ((_a = new Date(metaDataTags === null || metaDataTags === void 0 ? void 0 : metaDataTags.datePublished)) === null || _a === void 0 ? void 0 : _a.getTime()) / 1000
- : 0;
- title = $_2('title').text() || metaDataTags.headline;
- pageDataToSave = {
- fullUrl: link,
- pageTitle: title,
- cleanHTML: cleanHTML,
- fullHTML: fullHTML,
- contentType: 'rss-feed-item',
- createdWhen: datePublishedUnix,
- sourceApplication: 'RSS',
- creatorId: '',
- metaDataJSON: JSON.stringify(metaDataTags) || ''
- };
- return [4 /*yield*/, saveAndIndexFeedPages(sourcesDB, pageDataToSave, embedTextFunction, allTables, entityExtractionFunction)];
- case 5:
- _g.sent();
- return [2 /*return*/];
- }
- });
- };
- _b = 0, links_1 = links_2;
- _e.label = 17;
- case 17:
- if (!(_b < links_1.length)) return [3 /*break*/, 20];
- link = links_1[_b];
- return [5 /*yield**/, _loop_2(link)];
- case 18:
- _e.sent();
- _e.label = 19;
- case 19:
- _b++;
- return [3 /*break*/, 17];
- case 20: return [3 /*break*/, 29];
- case 21:
- feedResult = void 0;
- _e.label = 22;
- case 22:
- _e.trys.push([22, 24, , 25]);
- return [4 /*yield*/, extractFeed(feedUrl)];
- case 23:
- feedResult = _e.sent();
- return [3 /*break*/, 25];
- case 24:
- error_3 = _e.sent();
- log.log('error extracting feed:', error_3, feedUrl);
- throw new Error('error extracting feed:' + error_3.message);
- case 25:
- if (!(feedResult && feedResult.entries)) return [3 /*break*/, 29];
- _loop_3 = function (entry) {
- var response, fullHTML, cleanHTML, $, metaDataTags, scripts, jsonScript, scriptHtml, datePublishedUnix, pageDataToSave;
- return __generator(this, function (_h) {
- switch (_h.label) {
- case 0:
- if (!(entry === null || entry === void 0 ? void 0 : entry.link)) {
- return [2 /*return*/, { value: false }];
- }
- return [4 /*yield*/, fetch(entry === null || entry === void 0 ? void 0 : entry.link, {
- headers: {
- Accept: 'text/html'
- }
- })];
- case 1:
- response = _h.sent();
- return [4 /*yield*/, response.text()];
- case 2:
- fullHTML = _h.sent();
- return [4 /*yield*/, cleanFullHTML(fullHTML)];
- case 3:
- cleanHTML = _h.sent();
- $ = cheerio.load(fullHTML);
- metaDataTags = void 0;
- try {
- scripts = $('script');
- jsonScript = scripts
- .filter(function (i, script) {
- return $(script).attr('type') ===
- 'application/ld+json';
- })
- .first();
- scriptHtml = jsonScript.html();
- if (scriptHtml) {
- metaDataTags = JSON.parse(scriptHtml);
- }
- }
- catch (error) {
- log.warn('Could not parse JSON metadata :', entry.link);
- }
- datePublishedUnix = entry.published
- ? new Date(entry.published).getTime() / 1000
- : 0;
- pageDataToSave = {
- fullHTML: fullHTML,
- cleanHTML: cleanHTML,
- fullUrl: entry.link,
- pageTitle: entry.title,
- contentType: 'rss-feed-item',
- createdWhen: datePublishedUnix,
- sourceApplication: 'RSS',
- creatorId: '',
- metaDataJSON: JSON.stringify(metaDataTags) || ''
- };
- return [4 /*yield*/, saveAndIndexFeedPages(sourcesDB, pageDataToSave, embedTextFunction, allTables, entityExtractionFunction)];
- case 4:
- _h.sent();
- return [2 /*return*/];
- }
- });
- };
- _c = 0, _d = feedResult.entries;
- _e.label = 26;
- case 26:
- if (!(_c < _d.length)) return [3 /*break*/, 29];
- entry = _d[_c];
- return [5 /*yield**/, _loop_3(entry)];
- case 27:
- state_1 = _e.sent();
- if (typeof state_1 === "object")
- return [2 /*return*/, state_1.value];
- _e.label = 28;
- case 28:
- _c++;
- return [3 /*break*/, 26];
- case 29:
- _e.trys.push([29, 31, , 32]);
- console.log('update rssSourcesTable', feedUrl, feedDataToSave);
- sql = "INSERT OR REPLACE INTO rssSourcesTable VALUES (?, ?, ?, ?)";
- return [4 /*yield*/, sourcesDB.run(sql, [
- feedDataToSave.feedUrl,
- feedDataToSave.feedTitle,
- isSubstack_1 ? 'substack' : type,
- Date.now(),
- ])];
- case 30:
- _e.sent();
- return [2 /*return*/, true];
- case 31:
- error_4 = _e.sent();
- console.log('Error saving feed to database: ', feedUrl, error_4);
- return [3 /*break*/, 32];
- case 32: return [3 /*break*/, 34];
- case 33:
- error_5 = _e.sent();
- console.log('error indexing rss feed', error_5);
- return [2 /*return*/, false];
- case 34: return [2 /*return*/, true];
- }
- });
- });
-}
-// TODOS
-// add the RSS feed source to the cron job
-// index the RSS feed source and set the last indexed date to now
-function saveAndIndexFeedPages(sourcesDB, pageDataToSave, embedTextFunction, allTables, entityExtractionFunction) {
- return __awaiter(this, void 0, void 0, function () {
- var error_6, error_7;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- _a.trys.push([0, 2, , 3]);
- return [4 /*yield*/, sourcesDB.run("INSERT INTO webPagesTable VALUES(?, ?, ?, ?, ?, ?, ?, ? )", [
- pageDataToSave.fullUrl,
- pageDataToSave.pageTitle,
- pageDataToSave.cleanHTML,
- pageDataToSave.contentType,
- pageDataToSave.createdWhen,
- pageDataToSave.sourceApplication,
- pageDataToSave.creatorId,
- pageDataToSave.metaDataJSON,
- ])];
- case 1:
- _a.sent();
- return [3 /*break*/, 3];
- case 2:
- error_6 = _a.sent();
- console.log('Page Already Saved: ', error_6);
- return [2 /*return*/];
- case 3:
- _a.trys.push([3, 5, , 6]);
- return [4 /*yield*/, indexDocument({
- fullUrl: pageDataToSave.fullUrl,
- pageTitle: pageDataToSave.pageTitle,
- fullHTML: pageDataToSave.cleanHTML,
- contentType: 'rss-feed-item',
- sourceApplication: 'RSS',
- embedTextFunction: embedTextFunction,
- allTables: allTables,
- entityExtractionFunction: entityExtractionFunction
- })];
- case 4:
- _a.sent();
- return [3 /*break*/, 6];
- case 5:
- error_7 = _a.sent();
- console.log('Error indexing:', error_7);
- return [3 /*break*/, 6];
- case 6: return [2 /*return*/];
- }
- });
- });
-}
-export { addFeedSource, getAllRSSSources };
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/indexing_pipeline/rssFeeds/index.js.map b/build/indexing_pipeline/rssFeeds/index.js.map
deleted file mode 100644
index dc29277..0000000
--- a/build/indexing_pipeline/rssFeeds/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/indexing_pipeline/rssFeeds/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/indexing_pipeline/utils.js b/build/indexing_pipeline/utils.js
deleted file mode 100644
index 8c25020..0000000
--- a/build/indexing_pipeline/utils.js
+++ /dev/null
@@ -1,22138 +0,0 @@
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-import { JSDOM } from 'jsdom';
-import TurndownService from 'turndown';
-import posTagger from 'wink-pos-tagger';
-export function splitContentInReasonableChunks(contentText) {
- return __awaiter(this, void 0, void 0, function () {
- var htmlDoc, paragraphs, chunks;
- return __generator(this, function (_a) {
- htmlDoc = new JSDOM(contentText);
- paragraphs = htmlDoc.window.document.querySelectorAll('p');
- chunks = [];
- paragraphs.forEach(function (paragraph) {
- var chunk = paragraph.textContent;
- var turndownService = new TurndownService();
- chunk = turndownService.turndown(chunk || '');
- if (chunk.length > 50) {
- chunks.push(chunk);
- }
- });
- return [2 /*return*/, chunks];
- });
- });
-}
-export function cleanFullHTML(fullHTML) {
- var _a, _b, _c;
- return __awaiter(this, void 0, void 0, function () {
- var cleanFullHTML, dom, document, scriptTags, styleTags, svgTags, i, i, i;
- return __generator(this, function (_d) {
- cleanFullHTML = fullHTML;
- dom = new JSDOM(cleanFullHTML);
- document = dom.window.document;
- scriptTags = document.getElementsByTagName('script');
- styleTags = document.getElementsByTagName('style');
- svgTags = document.getElementsByTagName('svg');
- for (i = scriptTags.length - 1; i >= 0; i--) {
- (_a = scriptTags[i].parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(scriptTags[i]);
- }
- for (i = styleTags.length - 1; i >= 0; i--) {
- (_b = styleTags[i].parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(styleTags[i]);
- }
- for (i = svgTags.length - 1; i >= 0; i--) {
- (_c = svgTags[i].parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(svgTags[i]);
- }
- cleanFullHTML = dom.serialize();
- return [2 /*return*/, cleanFullHTML];
- });
- });
-}
-export function prepareContentForEmbedding(contentText) {
- return __awaiter(this, void 0, void 0, function () {
- var response, words, stopWords;
- return __generator(this, function (_a) {
- // Remove all special characters
- contentText = contentText.replace(/[^\w\s]/gi, ' ');
- words = contentText.split(' ');
- // Make all words lowercase
- words = words.map(function (word) { return word.toLowerCase().trim(); });
- stopWords = [
- 'a',
- 'an',
- 'the',
- 'in',
- 'is',
- 'it',
- 'you',
- 'are',
- 'for',
- 'from',
- 'as',
- 'with',
- 'their',
- 'if',
- 'on',
- 'that',
- 'at',
- 'by',
- 'this',
- 'and',
- 'to',
- 'be',
- 'which',
- 'or',
- 'was',
- 'of',
- 'and',
- 'in',
- 'is',
- 'it',
- 'that',
- 'then',
- 'there',
- 'these',
- 'they',
- 'we',
- 'were',
- 'you',
- 'your',
- 'I',
- 'me',
- 'my',
- 'the',
- 'to',
- 'and',
- 'in',
- 'is',
- 'it',
- 'of',
- 'that',
- 'you',
- 'a',
- 'an',
- 'and',
- 'are',
- 'as',
- 'at',
- 'be',
- 'by',
- 'for',
- 'from',
- 'has',
- 'he',
- 'in',
- 'is',
- 'it',
- 'its',
- 'of',
- 'on',
- 'that',
- 'the',
- 'to',
- 'was',
- 'were',
- 'will',
- 'with',
- ];
- words = words.filter(function (word) { return !stopWords.some(function (stopWord) { return stopWord === word; }); });
- response = Array.from(new Set(words)).join(' ');
- return [2 /*return*/, response];
- });
- });
-}
-export function extractEntitiesFromText(text, entityExtractionFunction) {
- return __awaiter(this, void 0, void 0, function () {
- var tagger, taggedText, filteredTaggedText, entities, concatenatedEntity, english, unwantedChars;
- return __generator(this, function (_a) {
- tagger = new posTagger();
- taggedText = tagger.tagSentence(text);
- filteredTaggedText = taggedText.filter(function (item) {
- // List of item descriptions
- // CC Coord Conjuncn and,but,or
- // CD Cardinal number one,two
- // DT Determiner the,some
- // EX Existential there there
- // FW Foreign Word mon dieu
- // IN Preposition of,in,by
- // JJ Adjective big
- // JJR Adj., comparative bigger
- // JJS Adj., superlative biggest
- // LS List item marker 1,One
- // MD Modal can,should
- // NN Noun, sing. or mass dog
- // NNP Proper noun, sing. Edinburgh
- // NNPS Proper noun, plural Smiths
- // NNS Noun, plural dogs
- // POS Possessive ending 's
- // PDT Predeterminer all, both
- // PRP$ Possessive pronoun my,one's
- // PRP Personal pronoun I,you,she
- // RB Adverb quickly
- // RBR Adverb, comparative faster
- // RBS Adverb, superlative fastest
- // RP Particle up,off
- // SYM Symbol +,%,&
- // TO 'to' to
- // UH Interjection oh, oops
- // VB verb, base form eat
- // VBD verb, past tense ate
- // VBG verb, gerund eating
- // VBN verb, past part eaten
- // VBP Verb, present eat
- // VBZ Verb, present eats
- // WDT Wh-determiner which,that
- // WP Wh pronoun who,what
- // WP$ Possessive-Wh whose
- // WRB Wh-adverb how,where
- // , Comma ,
- // . Sent-final punct . ! ?
- // : Mid-sent punct. : ; Ñ
- // $ Dollar sign $
- // # Pound sign #
- // " quote "
- // ( Left paren (
- // ) Right paren )
- var unwantedPos = [
- 'CC',
- 'DT',
- 'EX',
- 'IN',
- 'JJ',
- 'JJR',
- 'JJS',
- 'LS',
- 'MD',
- 'POS',
- 'PDT',
- 'PRP$',
- 'PRP',
- 'RBS',
- 'SYM',
- 'TO',
- 'UH',
- 'WDT',
- 'WP',
- 'WP$',
- 'WRB',
- ',',
- '.',
- '.',
- '-',
- '::',
- '#',
- '"',
- '(',
- ')',
- '-',
- '\\',
- '[',
- ']',
- ];
- return !unwantedPos.some(function (pos) { return pos === item.pos; });
- });
- entities = [];
- filteredTaggedText.forEach(function (item) {
- entities.push(item.value);
- item.lemma &&
- item.value.toLowerCase() !== item.lemma &&
- entities.push(item.lemma);
- });
- concatenatedEntity = '';
- // for (let i = 0; i < rawEntities.length; i++) {
- // if (
- // i < rawEntities.length - 1 &&
- // rawEntities[i].index + 1 === rawEntities[i + 1].index
- // ) {
- // concatenatedEntity += rawEntities[i].word + " ";
- // } else {
- // concatenatedEntity += rawEntities[i].word;
- // entities.push(concatenatedEntity);
- // concatenatedEntity = "";
- // }
- // }
- // remove weird extractions that happen with unknown words that are split in the middle
- entities = entities.map(function (entity) { return entity.replace(/ ##/g, ''); });
- english = stopwords.en;
- entities = entities.filter(function (entity) { return !english.includes(entity.toLowerCase()); });
- unwantedChars = [
- ',',
- '.',
- '-',
- ':',
- '#',
- '"',
- '(',
- ')',
- '\\',
- '[',
- ']',
- ];
- entities = entities.filter(function (entity) { return !unwantedChars.includes(entity); });
- // Remove all numbers with less than 3 characters
- entities = entities.filter(function (entity) { return !(entity.length < 3 && /^\d+$/.test(entity)); });
- // Deduplicate entities
- entities = Array.from(new Set(entities));
- return [2 /*return*/, entities];
- });
- });
-}
-var stopwords = {
- af: [
- "'n",
- 'aan',
- 'af',
- 'al',
- 'as',
- 'baie',
- 'by',
- 'daar',
- 'dag',
- 'dat',
- 'die',
- 'dit',
- 'een',
- 'ek',
- 'en',
- 'gaan',
- 'gesê',
- 'haar',
- 'het',
- 'hom',
- 'hulle',
- 'hy',
- 'in',
- 'is',
- 'jou',
- 'jy',
- 'kan',
- 'kom',
- 'ma',
- 'maar',
- 'met',
- 'my',
- 'na',
- 'nie',
- 'om',
- 'ons',
- 'op',
- 'saam',
- 'sal',
- 'se',
- 'sien',
- 'so',
- 'sy',
- 'te',
- 'toe',
- 'uit',
- 'van',
- 'vir',
- 'was',
- 'wat',
- 'ʼn',
- ],
- ar: [
- '،',
- 'آض',
- 'آمينَ',
- 'آه',
- 'آهاً',
- 'آي',
- 'أ',
- 'أب',
- 'أجل',
- 'أجمع',
- 'أخ',
- 'أخذ',
- 'أصبح',
- 'أضحى',
- 'أقبل',
- 'أقل',
- 'أكثر',
- 'ألا',
- 'أم',
- 'أما',
- 'أمامك',
- 'أمامكَ',
- 'أمسى',
- 'أمّا',
- 'أن',
- 'أنا',
- 'أنت',
- 'أنتم',
- 'أنتما',
- 'أنتن',
- 'أنتِ',
- 'أنشأ',
- 'أنّى',
- 'أو',
- 'أوشك',
- 'أولئك',
- 'أولئكم',
- 'أولاء',
- 'أولالك',
- 'أوّهْ',
- 'أي',
- 'أيا',
- 'أين',
- 'أينما',
- 'أيّ',
- 'أَنَّ',
- 'أََيُّ',
- 'أُفٍّ',
- 'إذ',
- 'إذا',
- 'إذاً',
- 'إذما',
- 'إذن',
- 'إلى',
- 'إليكم',
- 'إليكما',
- 'إليكنّ',
- 'إليكَ',
- 'إلَيْكَ',
- 'إلّا',
- 'إمّا',
- 'إن',
- 'إنّما',
- 'إي',
- 'إياك',
- 'إياكم',
- 'إياكما',
- 'إياكن',
- 'إيانا',
- 'إياه',
- 'إياها',
- 'إياهم',
- 'إياهما',
- 'إياهن',
- 'إياي',
- 'إيهٍ',
- 'إِنَّ',
- 'ا',
- 'ابتدأ',
- 'اثر',
- 'اجل',
- 'احد',
- 'اخرى',
- 'اخلولق',
- 'اذا',
- 'اربعة',
- 'ارتدّ',
- 'استحال',
- 'اطار',
- 'اعادة',
- 'اعلنت',
- 'اف',
- 'اكثر',
- 'اكد',
- 'الألاء',
- 'الألى',
- 'الا',
- 'الاخيرة',
- 'الان',
- 'الاول',
- 'الاولى',
- 'التى',
- 'التي',
- 'الثاني',
- 'الثانية',
- 'الذاتي',
- 'الذى',
- 'الذي',
- 'الذين',
- 'السابق',
- 'الف',
- 'اللائي',
- 'اللاتي',
- 'اللتان',
- 'اللتيا',
- 'اللتين',
- 'اللذان',
- 'اللذين',
- 'اللواتي',
- 'الماضي',
- 'المقبل',
- 'الوقت',
- 'الى',
- 'اليوم',
- 'اما',
- 'امام',
- 'امس',
- 'ان',
- 'انبرى',
- 'انقلب',
- 'انه',
- 'انها',
- 'او',
- 'اول',
- 'اي',
- 'ايار',
- 'ايام',
- 'ايضا',
- 'ب',
- 'بات',
- 'باسم',
- 'بان',
- 'بخٍ',
- 'برس',
- 'بسبب',
- 'بسّ',
- 'بشكل',
- 'بضع',
- 'بطآن',
- 'بعد',
- 'بعض',
- 'بك',
- 'بكم',
- 'بكما',
- 'بكن',
- 'بل',
- 'بلى',
- 'بما',
- 'بماذا',
- 'بمن',
- 'بن',
- 'بنا',
- 'به',
- 'بها',
- 'بي',
- 'بيد',
- 'بين',
- 'بَسْ',
- 'بَلْهَ',
- 'بِئْسَ',
- 'تانِ',
- 'تانِك',
- 'تبدّل',
- 'تجاه',
- 'تحوّل',
- 'تلقاء',
- 'تلك',
- 'تلكم',
- 'تلكما',
- 'تم',
- 'تينك',
- 'تَيْنِ',
- 'تِه',
- 'تِي',
- 'ثلاثة',
- 'ثم',
- 'ثمّ',
- 'ثمّة',
- 'ثُمَّ',
- 'جعل',
- 'جلل',
- 'جميع',
- 'جير',
- 'حار',
- 'حاشا',
- 'حاليا',
- 'حاي',
- 'حتى',
- 'حرى',
- 'حسب',
- 'حم',
- 'حوالى',
- 'حول',
- 'حيث',
- 'حيثما',
- 'حين',
- 'حيَّ',
- 'حَبَّذَا',
- 'حَتَّى',
- 'حَذارِ',
- 'خلا',
- 'خلال',
- 'دون',
- 'دونك',
- 'ذا',
- 'ذات',
- 'ذاك',
- 'ذانك',
- 'ذانِ',
- 'ذلك',
- 'ذلكم',
- 'ذلكما',
- 'ذلكن',
- 'ذو',
- 'ذوا',
- 'ذواتا',
- 'ذواتي',
- 'ذيت',
- 'ذينك',
- 'ذَيْنِ',
- 'ذِه',
- 'ذِي',
- 'راح',
- 'رجع',
- 'رويدك',
- 'ريث',
- 'رُبَّ',
- 'زيارة',
- 'سبحان',
- 'سرعان',
- 'سنة',
- 'سنوات',
- 'سوف',
- 'سوى',
- 'سَاءَ',
- 'سَاءَمَا',
- 'شبه',
- 'شخصا',
- 'شرع',
- 'شَتَّانَ',
- 'صار',
- 'صباح',
- 'صفر',
- 'صهٍ',
- 'صهْ',
- 'ضد',
- 'ضمن',
- 'طاق',
- 'طالما',
- 'طفق',
- 'طَق',
- 'ظلّ',
- 'عاد',
- 'عام',
- 'عاما',
- 'عامة',
- 'عدا',
- 'عدة',
- 'عدد',
- 'عدم',
- 'عسى',
- 'عشر',
- 'عشرة',
- 'علق',
- 'على',
- 'عليك',
- 'عليه',
- 'عليها',
- 'علًّ',
- 'عن',
- 'عند',
- 'عندما',
- 'عوض',
- 'عين',
- 'عَدَسْ',
- 'عَمَّا',
- 'غدا',
- 'غير',
- 'ـ',
- 'ف',
- 'فان',
- 'فلان',
- 'فو',
- 'فى',
- 'في',
- 'فيم',
- 'فيما',
- 'فيه',
- 'فيها',
- 'قال',
- 'قام',
- 'قبل',
- 'قد',
- 'قطّ',
- 'قلما',
- 'قوة',
- 'كأنّما',
- 'كأين',
- 'كأيّ',
- 'كأيّن',
- 'كاد',
- 'كان',
- 'كانت',
- 'كذا',
- 'كذلك',
- 'كرب',
- 'كل',
- 'كلا',
- 'كلاهما',
- 'كلتا',
- 'كلم',
- 'كليكما',
- 'كليهما',
- 'كلّما',
- 'كلَّا',
- 'كم',
- 'كما',
- 'كي',
- 'كيت',
- 'كيف',
- 'كيفما',
- 'كَأَنَّ',
- 'كِخ',
- 'لئن',
- 'لا',
- 'لات',
- 'لاسيما',
- 'لدن',
- 'لدى',
- 'لعمر',
- 'لقاء',
- 'لك',
- 'لكم',
- 'لكما',
- 'لكن',
- 'لكنَّما',
- 'لكي',
- 'لكيلا',
- 'للامم',
- 'لم',
- 'لما',
- 'لمّا',
- 'لن',
- 'لنا',
- 'له',
- 'لها',
- 'لو',
- 'لوكالة',
- 'لولا',
- 'لوما',
- 'لي',
- 'لَسْتَ',
- 'لَسْتُ',
- 'لَسْتُم',
- 'لَسْتُمَا',
- 'لَسْتُنَّ',
- 'لَسْتِ',
- 'لَسْنَ',
- 'لَعَلَّ',
- 'لَكِنَّ',
- 'لَيْتَ',
- 'لَيْسَ',
- 'لَيْسَا',
- 'لَيْسَتَا',
- 'لَيْسَتْ',
- 'لَيْسُوا',
- 'لَِسْنَا',
- 'ما',
- 'ماانفك',
- 'مابرح',
- 'مادام',
- 'ماذا',
- 'مازال',
- 'مافتئ',
- 'مايو',
- 'متى',
- 'مثل',
- 'مذ',
- 'مساء',
- 'مع',
- 'معاذ',
- 'مقابل',
- 'مكانكم',
- 'مكانكما',
- 'مكانكنّ',
- 'مكانَك',
- 'مليار',
- 'مليون',
- 'مما',
- 'ممن',
- 'من',
- 'منذ',
- 'منها',
- 'مه',
- 'مهما',
- 'مَنْ',
- 'مِن',
- 'نحن',
- 'نحو',
- 'نعم',
- 'نفس',
- 'نفسه',
- 'نهاية',
- 'نَخْ',
- 'نِعِمّا',
- 'نِعْمَ',
- 'ها',
- 'هاؤم',
- 'هاكَ',
- 'هاهنا',
- 'هبّ',
- 'هذا',
- 'هذه',
- 'هكذا',
- 'هل',
- 'هلمَّ',
- 'هلّا',
- 'هم',
- 'هما',
- 'هن',
- 'هنا',
- 'هناك',
- 'هنالك',
- 'هو',
- 'هي',
- 'هيا',
- 'هيت',
- 'هيّا',
- 'هَؤلاء',
- 'هَاتانِ',
- 'هَاتَيْنِ',
- 'هَاتِه',
- 'هَاتِي',
- 'هَجْ',
- 'هَذا',
- 'هَذانِ',
- 'هَذَيْنِ',
- 'هَذِه',
- 'هَذِي',
- 'هَيْهَاتَ',
- 'و',
- 'و6',
- 'وا',
- 'واحد',
- 'واضاف',
- 'واضافت',
- 'واكد',
- 'وان',
- 'واهاً',
- 'واوضح',
- 'وراءَك',
- 'وفي',
- 'وقال',
- 'وقالت',
- 'وقد',
- 'وقف',
- 'وكان',
- 'وكانت',
- 'ولا',
- 'ولم',
- 'ومن',
- 'وهو',
- 'وهي',
- 'ويكأنّ',
- 'وَيْ',
- 'وُشْكَانََ',
- 'يكون',
- 'يمكن',
- 'يوم',
- 'ّأيّان',
- ],
- hy: [
- 'այդ',
- 'այլ',
- 'այն',
- 'այս',
- 'դու',
- 'դուք',
- 'եմ',
- 'են',
- 'ենք',
- 'ես',
- 'եք',
- 'է',
- 'էի',
- 'էին',
- 'էինք',
- 'էիր',
- 'էիք',
- 'էր',
- 'ըստ',
- 'թ',
- 'ի',
- 'ին',
- 'իսկ',
- 'իր',
- 'կամ',
- 'համար',
- 'հետ',
- 'հետո',
- 'մենք',
- 'մեջ',
- 'մի',
- 'ն',
- 'նա',
- 'նաև',
- 'նրա',
- 'նրանք',
- 'որ',
- 'որը',
- 'որոնք',
- 'որպես',
- 'ու',
- 'ում',
- 'պիտի',
- 'վրա',
- 'և',
- ],
- eu: [
- 'al',
- 'anitz',
- 'arabera',
- 'asko',
- 'baina',
- 'bat',
- 'batean',
- 'batek',
- 'bati',
- 'batzuei',
- 'batzuek',
- 'batzuetan',
- 'batzuk',
- 'bera',
- 'beraiek',
- 'berau',
- 'berauek',
- 'bere',
- 'berori',
- 'beroriek',
- 'beste',
- 'bezala',
- 'da',
- 'dago',
- 'dira',
- 'ditu',
- 'du',
- 'dute',
- 'edo',
- 'egin',
- 'ere',
- 'eta',
- 'eurak',
- 'ez',
- 'gainera',
- 'gu',
- 'gutxi',
- 'guzti',
- 'haiei',
- 'haiek',
- 'haietan',
- 'hainbeste',
- 'hala',
- 'han',
- 'handik',
- 'hango',
- 'hara',
- 'hari',
- 'hark',
- 'hartan',
- 'hau',
- 'hauei',
- 'hauek',
- 'hauetan',
- 'hemen',
- 'hemendik',
- 'hemengo',
- 'hi',
- 'hona',
- 'honek',
- 'honela',
- 'honetan',
- 'honi',
- 'hor',
- 'hori',
- 'horiei',
- 'horiek',
- 'horietan',
- 'horko',
- 'horra',
- 'horrek',
- 'horrela',
- 'horretan',
- 'horri',
- 'hortik',
- 'hura',
- 'izan',
- 'ni',
- 'noiz',
- 'nola',
- 'non',
- 'nondik',
- 'nongo',
- 'nor',
- 'nora',
- 'ze',
- 'zein',
- 'zen',
- 'zenbait',
- 'zenbat',
- 'zer',
- 'zergatik',
- 'ziren',
- 'zituen',
- 'zu',
- 'zuek',
- 'zuen',
- 'zuten',
- ],
- bn: [
- 'অতএব',
- 'অথচ',
- 'অথবা',
- 'অনুযায়ী',
- 'অনেক',
- 'অনেকে',
- 'অনেকেই',
- 'অন্তত',
- 'অন্য',
- 'অবধি',
- 'অবশ্য',
- 'অর্থাত',
- 'আই',
- 'আগামী',
- 'আগে',
- 'আগেই',
- 'আছে',
- 'আজ',
- 'আদ্যভাগে',
- 'আপনার',
- 'আপনি',
- 'আবার',
- 'আমরা',
- 'আমাকে',
- 'আমাদের',
- 'আমার',
- 'আমি',
- 'আর',
- 'আরও',
- 'ই',
- 'ইত্যাদি',
- 'ইহা',
- 'উচিত',
- 'উত্তর',
- 'উনি',
- 'উপর',
- 'উপরে',
- 'এ',
- 'এঁদের',
- 'এঁরা',
- 'এই',
- 'একই',
- 'একটি',
- 'একবার',
- 'একে',
- 'এক্',
- 'এখন',
- 'এখনও',
- 'এখানে',
- 'এখানেই',
- 'এটা',
- 'এটাই',
- 'এটি',
- 'এত',
- 'এতটাই',
- 'এতে',
- 'এদের',
- 'এব',
- 'এবং',
- 'এবার',
- 'এমন',
- 'এমনকী',
- 'এমনি',
- 'এর',
- 'এরা',
- 'এল',
- 'এস',
- 'এসে',
- 'ঐ',
- 'ও',
- 'ওঁদের',
- 'ওঁর',
- 'ওঁরা',
- 'ওই',
- 'ওকে',
- 'ওখানে',
- 'ওদের',
- 'ওর',
- 'ওরা',
- 'কখনও',
- 'কত',
- 'কবে',
- 'কমনে',
- 'কয়েক',
- 'কয়েকটি',
- 'করছে',
- 'করছেন',
- 'করতে',
- 'করবে',
- 'করবেন',
- 'করলে',
- 'করলেন',
- 'করা',
- 'করাই',
- 'করায়',
- 'করার',
- 'করি',
- 'করিতে',
- 'করিয়া',
- 'করিয়ে',
- 'করে',
- 'করেই',
- 'করেছিলেন',
- 'করেছে',
- 'করেছেন',
- 'করেন',
- 'কাউকে',
- 'কাছ',
- 'কাছে',
- 'কাজ',
- 'কাজে',
- 'কারও',
- 'কারণ',
- 'কি',
- 'কিংবা',
- 'কিছু',
- 'কিছুই',
- 'কিন্তু',
- 'কী',
- 'কে',
- 'কেউ',
- 'কেউই',
- 'কেখা',
- 'কেন',
- 'কোটি',
- 'কোন',
- 'কোনও',
- 'কোনো',
- 'ক্ষেত্রে',
- 'কয়েক',
- 'খুব',
- 'গিয়ে',
- 'গিয়েছে',
- 'গিয়ে',
- 'গুলি',
- 'গেছে',
- 'গেল',
- 'গেলে',
- 'গোটা',
- 'চলে',
- 'চান',
- 'চায়',
- 'চার',
- 'চালু',
- 'চেয়ে',
- 'চেষ্টা',
- 'ছাড়া',
- 'ছাড়াও',
- 'ছিল',
- 'ছিলেন',
- 'জন',
- 'জনকে',
- 'জনের',
- 'জন্য',
- 'জন্যওজে',
- 'জানতে',
- 'জানা',
- 'জানানো',
- 'জানায়',
- 'জানিয়ে',
- 'জানিয়েছে',
- 'জে',
- 'জ্নজন',
- 'টি',
- 'ঠিক',
- 'তখন',
- 'তত',
- 'তথা',
- 'তবু',
- 'তবে',
- 'তা',
- 'তাঁকে',
- 'তাঁদের',
- 'তাঁর',
- 'তাঁরা',
- 'তাঁাহারা',
- 'তাই',
- 'তাও',
- 'তাকে',
- 'তাতে',
- 'তাদের',
- 'তার',
- 'তারপর',
- 'তারা',
- 'তারৈ',
- 'তাহলে',
- 'তাহা',
- 'তাহাতে',
- 'তাহার',
- 'তিনঐ',
- 'তিনি',
- 'তিনিও',
- 'তুমি',
- 'তুলে',
- 'তেমন',
- 'তো',
- 'তোমার',
- 'থাকবে',
- 'থাকবেন',
- 'থাকা',
- 'থাকায়',
- 'থাকে',
- 'থাকেন',
- 'থেকে',
- 'থেকেই',
- 'থেকেও',
- 'দিকে',
- 'দিতে',
- 'দিন',
- 'দিয়ে',
- 'দিয়েছে',
- 'দিয়েছেন',
- 'দিলেন',
- 'দু',
- 'দুই',
- 'দুটি',
- 'দুটো',
- 'দেওয়া',
- 'দেওয়ার',
- 'দেওয়া',
- 'দেখতে',
- 'দেখা',
- 'দেখে',
- 'দেন',
- 'দেয়',
- 'দ্বারা',
- 'ধরা',
- 'ধরে',
- 'ধামার',
- 'নতুন',
- 'নয়',
- 'না',
- 'নাই',
- 'নাকি',
- 'নাগাদ',
- 'নানা',
- 'নিজে',
- 'নিজেই',
- 'নিজেদের',
- 'নিজের',
- 'নিতে',
- 'নিয়ে',
- 'নিয়ে',
- 'নেই',
- 'নেওয়া',
- 'নেওয়ার',
- 'নেওয়া',
- 'নয়',
- 'পক্ষে',
- 'পর',
- 'পরে',
- 'পরেই',
- 'পরেও',
- 'পর্যন্ত',
- 'পাওয়া',
- 'পাচ',
- 'পারি',
- 'পারে',
- 'পারেন',
- 'পি',
- 'পেয়ে',
- 'পেয়্র্',
- 'প্রতি',
- 'প্রথম',
- 'প্রভৃতি',
- 'প্রযন্ত',
- 'প্রাথমিক',
- 'প্রায়',
- 'প্রায়',
- 'ফলে',
- 'ফিরে',
- 'ফের',
- 'বক্তব্য',
- 'বদলে',
- 'বন',
- 'বরং',
- 'বলতে',
- 'বলল',
- 'বললেন',
- 'বলা',
- 'বলে',
- 'বলেছেন',
- 'বলেন',
- 'বসে',
- 'বহু',
- 'বা',
- 'বাদে',
- 'বার',
- 'বি',
- 'বিনা',
- 'বিভিন্ন',
- 'বিশেষ',
- 'বিষয়টি',
- 'বেশ',
- 'বেশি',
- 'ব্যবহার',
- 'ব্যাপারে',
- 'ভাবে',
- 'ভাবেই',
- 'মতো',
- 'মতোই',
- 'মধ্যভাগে',
- 'মধ্যে',
- 'মধ্যেই',
- 'মধ্যেও',
- 'মনে',
- 'মাত্র',
- 'মাধ্যমে',
- 'মোট',
- 'মোটেই',
- 'যখন',
- 'যত',
- 'যতটা',
- 'যথেষ্ট',
- 'যদি',
- 'যদিও',
- 'যা',
- 'যাঁর',
- 'যাঁরা',
- 'যাওয়া',
- 'যাওয়ার',
- 'যাওয়া',
- 'যাকে',
- 'যাচ্ছে',
- 'যাতে',
- 'যাদের',
- 'যান',
- 'যাবে',
- 'যায়',
- 'যার',
- 'যারা',
- 'যিনি',
- 'যে',
- 'যেখানে',
- 'যেতে',
- 'যেন',
- 'যেমন',
- 'র',
- 'রকম',
- 'রয়েছে',
- 'রাখা',
- 'রেখে',
- 'লক্ষ',
- 'শুধু',
- 'শুরু',
- 'সঙ্গে',
- 'সঙ্গেও',
- 'সব',
- 'সবার',
- 'সমস্ত',
- 'সম্প্রতি',
- 'সহ',
- 'সহিত',
- 'সাধারণ',
- 'সামনে',
- 'সি',
- 'সুতরাং',
- 'সে',
- 'সেই',
- 'সেখান',
- 'সেখানে',
- 'সেটা',
- 'সেটাই',
- 'সেটাও',
- 'সেটি',
- 'স্পষ্ট',
- 'স্বয়ং',
- 'হইতে',
- 'হইবে',
- 'হইয়া',
- 'হওয়া',
- 'হওয়ায়',
- 'হওয়ার',
- 'হচ্ছে',
- 'হত',
- 'হতে',
- 'হতেই',
- 'হন',
- 'হবে',
- 'হবেন',
- 'হয়',
- 'হয়তো',
- 'হয়নি',
- 'হয়ে',
- 'হয়েই',
- 'হয়েছিল',
- 'হয়েছে',
- 'হয়েছেন',
- 'হল',
- 'হলে',
- 'হলেই',
- 'হলেও',
- 'হলো',
- 'হাজার',
- 'হিসাবে',
- 'হৈলে',
- 'হোক',
- 'হয়',
- ],
- br: [
- "'blam",
- "'d",
- "'m",
- "'r",
- "'ta",
- "'vat",
- "'z",
- "'zo",
- 'a',
- 'a:',
- 'aba',
- 'abalamour',
- 'abaoe',
- "ac'hane",
- "ac'hanoc'h",
- "ac'hanomp",
- "ac'hanon",
- "ac'hanout",
- 'adal',
- 'adalek',
- 'adarre',
- 'ae',
- "aec'h",
- 'aed',
- 'aemp',
- 'aen',
- 'aent',
- 'aes',
- 'afe',
- "afec'h",
- 'afed',
- 'afemp',
- 'afen',
- 'afent',
- 'afes',
- 'ag',
- 'ah',
- 'aimp',
- 'aint',
- 'aio',
- 'aiou',
- 'aje',
- "ajec'h",
- 'ajed',
- 'ajemp',
- 'ajen',
- 'ajent',
- 'ajes',
- 'al',
- 'alato',
- 'alies',
- 'aliesañ',
- 'alkent',
- 'all',
- 'allas',
- 'allo',
- 'allô',
- 'am',
- 'amañ',
- 'amzer',
- 'an',
- 'anezhañ',
- 'anezhe',
- 'anezhi',
- 'anezho',
- 'anvet',
- 'aon',
- 'aotren',
- 'ar',
- 'arall',
- 'araok',
- 'araoki',
- 'araozañ',
- 'araozo',
- "araozoc'h",
- 'araozomp',
- 'araozon',
- 'araozor',
- 'araozout',
- 'arbenn',
- 'arre',
- 'atalek',
- 'atav',
- 'az',
- 'azalek',
- 'azirazañ',
- 'azirazi',
- 'azirazo',
- "azirazoc'h",
- 'azirazomp',
- 'azirazon',
- 'azirazor',
- 'azirazout',
- 'b:',
- 'ba',
- "ba'l",
- "ba'n",
- "ba'r",
- 'bad',
- 'bah',
- 'bal',
- 'ban',
- 'bar',
- 'bastañ',
- 'befe',
- 'bell',
- 'benaos',
- 'benn',
- 'bennag',
- 'bennak',
- 'bennozh',
- 'bep',
- 'bepred',
- 'berr',
- 'berzh',
- 'bet',
- 'betek',
- 'betra',
- 'bev',
- 'bevet',
- 'bez',
- 'bezañ',
- 'beze',
- 'bezent',
- 'bezet',
- 'bezh',
- 'bezit',
- 'bezomp',
- 'bihan',
- 'bije',
- 'biou',
- 'biskoazh',
- 'blam',
- 'bo',
- 'boa',
- 'bominapl',
- 'boudoudom',
- 'bouez',
- 'boull',
- 'boum',
- 'bout',
- 'bras',
- 'brasañ',
- 'brav',
- 'bravo',
- 'bremañ',
- 'bres',
- 'brokenn',
- 'bronn',
- 'brrr',
- 'brutal',
- 'buhezek',
- "c'h:",
- "c'haout",
- "c'he",
- "c'hem",
- "c'herz",
- "c'heñver",
- "c'hichen",
- "c'hiz",
- "c'hoazh",
- "c'horre",
- "c'houde",
- "c'houst",
- "c'hreiz",
- "c'hwec'h",
- "c'hwec'hvet",
- "c'hwezek",
- "c'hwi",
- 'ch:',
- 'chaous',
- 'chik',
- 'chit',
- 'chom',
- 'chut',
- "d'",
- "d'al",
- "d'an",
- "d'ar",
- "d'az",
- "d'e",
- "d'he",
- "d'ho",
- "d'hol",
- "d'hon",
- "d'hor",
- "d'o",
- "d'ober",
- "d'ul",
- "d'un",
- "d'ur",
- 'd:',
- 'da',
- 'dak',
- 'daka',
- 'dal',
- 'dalbezh',
- "dalc'hmat",
- 'dalit',
- 'damdost',
- 'damheñvel',
- 'damm',
- 'dan',
- 'danvez',
- 'dao',
- 'daol',
- 'daonet',
- 'daou',
- 'daoust',
- 'daouzek',
- 'daouzekvet',
- 'darn',
- 'dastrewiñ',
- 'dav',
- "davedoc'h",
- 'davedomp',
- 'davedon',
- 'davedor',
- 'davedout',
- 'davet',
- 'davetañ',
- 'davete',
- 'daveti',
- 'daveto',
- 'defe',
- 'dehou',
- 'dek',
- 'dekvet',
- 'den',
- "deoc'h",
- 'deomp',
- 'deor',
- "derc'hel",
- 'deus',
- 'dez',
- 'deze',
- 'dezhañ',
- 'dezhe',
- 'dezhi',
- 'dezho',
- 'di',
- 'diabarzh',
- 'diagent',
- 'diar',
- 'diaraok',
- 'diavaez',
- 'dibaoe',
- 'dibaot',
- 'dibar',
- "dic'halañ",
- "didiac'h",
- 'dienn',
- 'difer',
- "diganeoc'h",
- 'diganeomp',
- 'diganeor',
- 'diganimp',
- 'diganin',
- 'diganit',
- 'digant',
- 'digantañ',
- 'digante',
- 'diganti',
- 'diganto',
- 'digemmesk',
- 'diget',
- 'digor',
- 'digoret',
- 'dija',
- 'dije',
- 'dimp',
- 'din',
- 'dinaou',
- 'dindan',
- 'dindanañ',
- 'dindani',
- 'dindano',
- "dindanoc'h",
- 'dindanomp',
- 'dindanon',
- 'dindanor',
- 'dindanout',
- 'dioutañ',
- 'dioute',
- 'diouti',
- 'diouto',
- 'diouzh',
- 'diouzhin',
- 'diouzhit',
- "diouzhoc'h",
- 'diouzhomp',
- 'diouzhor',
- 'dirak',
- 'dirazañ',
- 'dirazi',
- 'dirazo',
- "dirazoc'h",
- 'dirazomp',
- 'dirazon',
- 'dirazor',
- 'dirazout',
- 'disheñvel',
- 'dispar',
- 'distank',
- 'dister',
- 'disterañ',
- 'disterig',
- 'distro',
- 'dit',
- 'divaez',
- 'diwar',
- 'diwezhat',
- 'diwezhañ',
- 'do',
- 'doa',
- 'doare',
- 'dont',
- 'dost',
- 'doue',
- 'douetus',
- 'douez',
- 'doug',
- 'draou',
- 'draoñ',
- 'dre',
- 'drede',
- 'dreist',
- 'dreistañ',
- 'dreisti',
- 'dreisto',
- "dreistoc'h",
- 'dreistomp',
- 'dreiston',
- 'dreistor',
- 'dreistout',
- 'drek',
- 'dreñv',
- 'dring',
- 'dro',
- 'du',
- 'e',
- 'e:',
- 'eas',
- 'ebet',
- "ec'h",
- 'edo',
- "edoc'h",
- 'edod',
- 'edomp',
- 'edon',
- 'edont',
- 'edos',
- 'eer',
- 'eeun',
- 'efed',
- "egedoc'h",
- 'egedomp',
- 'egedon',
- 'egedor',
- 'egedout',
- 'eget',
- 'egetañ',
- 'egete',
- 'egeti',
- 'egeto',
- 'eh',
- 'eil',
- 'eilvet',
- 'eizh',
- 'eizhvet',
- "ejoc'h",
- 'ejod',
- 'ejomp',
- 'ejont',
- 'ejout',
- 'el',
- 'em',
- 'emaint',
- "emaoc'h",
- 'emaomp',
- 'emaon',
- 'emaout',
- 'emañ',
- 'eme',
- 'emeur',
- 'emezañ',
- 'emezi',
- 'emezo',
- "emezoc'h",
- 'emezomp',
- 'emezon',
- 'emezout',
- 'emporzhiañ',
- 'en',
- 'end',
- 'endan',
- 'endra',
- 'enep',
- 'ennañ',
- 'enni',
- 'enno',
- "ennoc'h",
- 'ennomp',
- 'ennon',
- 'ennor',
- 'ennout',
- 'enta',
- 'eo',
- 'eomp',
- 'eont',
- 'eor',
- 'eot',
- 'er',
- 'erbet',
- 'erfin',
- 'esa',
- 'esae',
- 'espar',
- 'estlamm',
- 'estrañj',
- 'eta',
- 'etre',
- "etreoc'h",
- 'etrezo',
- "etrezoc'h",
- 'etrezomp',
- 'etrezor',
- 'euh',
- 'eur',
- 'eus',
- 'evel',
- 'evelato',
- "eveldoc'h",
- 'eveldomp',
- 'eveldon',
- 'eveldor',
- 'eveldout',
- 'evelkent',
- 'eveltañ',
- 'evelte',
- 'evelti',
- 'evelto',
- "evidoc'h",
- 'evidomp',
- 'evidon',
- 'evidor',
- 'evidout',
- 'evit',
- 'evitañ',
- 'evite',
- 'eviti',
- 'evito',
- 'ez',
- 'eñ',
- 'f:',
- "fac'h",
- 'fall',
- 'fed',
- 'feiz',
- 'fenn',
- 'fezh',
- 'fin',
- 'finsalvet',
- 'foei',
- 'fouilhezañ',
- 'g:',
- 'gallout',
- "ganeoc'h",
- 'ganeomp',
- 'ganin',
- 'ganit',
- 'gant',
- 'gantañ',
- 'ganti',
- 'ganto',
- 'gaout',
- 'gast',
- 'gein',
- 'gellout',
- 'genndost',
- 'gentañ',
- 'ger',
- 'gerz',
- 'get',
- 'geñver',
- 'gichen',
- 'gin',
- 'giz',
- 'glan',
- 'gloev',
- 'goll',
- 'gorre',
- 'goude',
- 'gouez',
- 'gouezit',
- 'gouezomp',
- 'goulz',
- 'gounnar',
- 'gour',
- 'goust',
- 'gouze',
- 'gouzout',
- 'gra',
- 'grak',
- "grec'h",
- 'greiz',
- 'grenn',
- 'greomp',
- 'grit',
- 'groñs',
- 'gutez',
- 'gwall',
- "gwashoc'h",
- 'gwazh',
- 'gwech',
- 'gwechall',
- 'gwechoù',
- 'gwell',
- 'gwezh',
- 'gwezhall',
- 'gwezharall',
- 'gwezhoù',
- 'gwig',
- 'gwirionez',
- 'gwitibunan',
- 'gêr',
- 'h:',
- 'ha',
- 'hag',
- 'han',
- 'hanter',
- "hanterc'hantad",
- 'hanterkantved',
- 'harz',
- 'hañ',
- 'hañval',
- 'he',
- 'hebioù',
- "hec'h",
- 'hei',
- 'hein',
- 'hem',
- 'hemañ',
- 'hen',
- 'hend',
- 'henhont',
- 'henn',
- 'hennezh',
- 'hent',
- 'hep',
- 'hervez',
- 'hervezañ',
- 'hervezi',
- 'hervezo',
- "hervezoc'h",
- 'hervezomp',
- 'hervezon',
- 'hervezor',
- 'hervezout',
- 'heul',
- 'heuliañ',
- 'hevelep',
- 'heverk',
- 'heñvel',
- 'heñvelat',
- 'heñvelañ',
- 'heñveliñ',
- "heñveloc'h",
- 'heñvelout',
- 'hi',
- 'hilh',
- 'hini',
- 'hirie',
- 'hirio',
- 'hiziv',
- 'hiziviken',
- 'ho',
- 'hoaliñ',
- "hoc'h",
- 'hogen',
- 'hogos',
- 'hogozik',
- 'hol',
- 'holl',
- 'holà',
- 'homañ',
- 'hon',
- 'honhont',
- 'honnezh',
- 'hont',
- 'hop',
- 'hopala',
- 'hor',
- 'hou',
- 'houp',
- 'hudu',
- 'hue',
- 'hui',
- 'hum',
- 'hurrah',
- 'i',
- 'i:',
- 'in',
- 'int',
- 'is',
- 'ispisial',
- 'isurzhiet',
- 'it',
- 'ivez',
- 'izelañ',
- 'j:',
- 'just',
- 'k:',
- 'kae',
- 'kaer',
- 'kalon',
- 'kalz',
- 'kant',
- 'kaout',
- 'kar',
- 'kazi',
- 'keid',
- 'kein',
- 'keit',
- 'kel',
- 'kellies',
- 'keloù',
- 'kement',
- 'ken',
- 'kenkent',
- 'kenkoulz',
- 'kenment',
- 'kent',
- 'kentañ',
- 'kentizh',
- "kentoc'h",
- 'kentre',
- 'ker',
- 'kerkent',
- 'kerz',
- 'kerzh',
- 'ket',
- 'keta',
- 'keñver',
- 'keñverel',
- 'keñverius',
- 'kichen',
- 'kichenik',
- 'kit',
- 'kiz',
- 'klak',
- 'klek',
- 'klik',
- 'komprenet',
- 'komz',
- 'kont',
- 'korf',
- 'korre',
- 'koulskoude',
- 'koulz',
- 'koust',
- 'krak',
- 'krampouezh',
- "krec'h",
- 'kreiz',
- 'kuit',
- 'kwir',
- 'l:',
- 'la',
- 'laez',
- 'laoskel',
- 'laouen',
- 'lavar',
- 'lavaret',
- 'lavarout',
- "lec'h",
- 'lein',
- 'leizh',
- "lerc'h",
- 'leun',
- 'leuskel',
- 'lew',
- 'lies',
- 'liesañ',
- 'lod',
- 'lusk',
- 'lâr',
- 'lârout',
- 'm:',
- 'ma',
- "ma'z",
- "mac'h",
- "mac'hat",
- "mac'hañ",
- "mac'hoc'h",
- 'mad',
- 'maez',
- 'maksimal',
- 'mann',
- 'mar',
- 'mard',
- 'marg',
- 'marzh',
- 'mat',
- 'mañ',
- 'me',
- 'memes',
- 'memestra',
- 'merkapl',
- 'mersi',
- 'mes',
- 'mesk',
- 'met',
- 'meur',
- 'mil',
- 'minimal',
- 'moan',
- 'moaniaat',
- 'mod',
- 'mont',
- 'mout',
- 'mui',
- 'muiañ',
- "muioc'h",
- 'n',
- "n'",
- 'n:',
- 'na',
- 'nag',
- 'naontek',
- 'naturel',
- 'nav',
- 'navet',
- 'ne',
- 'nebeudig',
- 'nebeut',
- 'nebeutañ',
- "nebeutoc'h",
- 'neketa',
- "nemedoc'h",
- 'nemedomp',
- 'nemedon',
- 'nemedor',
- 'nemedout',
- 'nemet',
- 'nemetañ',
- 'nemete',
- 'nemeti',
- 'nemeto',
- 'nemeur',
- "neoac'h",
- 'nepell',
- 'nerzh',
- 'nes',
- 'neseser',
- 'netra',
- 'neubeudoù',
- 'neuhe',
- 'neuze',
- 'nevez',
- 'newazh',
- 'nez',
- 'ni',
- 'nikun',
- 'niverus',
- 'nul',
- 'o',
- 'o:',
- 'oa',
- "oac'h",
- 'oad',
- 'oamp',
- 'oan',
- 'oant',
- 'oar',
- 'oas',
- 'ober',
- "oc'h",
- "oc'ho",
- "oc'hola",
- "oc'hpenn",
- 'oh',
- 'ohe',
- 'ollé',
- 'olole',
- 'olé',
- 'omp',
- 'on',
- 'ordin',
- 'ordinal',
- "ouejoc'h",
- 'ouejod',
- 'ouejomp',
- 'ouejont',
- 'ouejout',
- 'ouek',
- 'ouezas',
- 'ouezi',
- 'ouezimp',
- 'ouezin',
- 'ouezint',
- 'ouezis',
- 'ouezo',
- "ouezoc'h",
- 'ouezor',
- 'ouf',
- 'oufe',
- "oufec'h",
- 'oufed',
- 'oufemp',
- 'oufen',
- 'oufent',
- 'oufes',
- 'ouie',
- "ouiec'h",
- 'ouied',
- 'ouiemp',
- 'ouien',
- 'ouient',
- 'ouies',
- 'ouije',
- "ouijec'h",
- 'ouijed',
- 'ouijemp',
- 'ouijen',
- 'ouijent',
- 'ouijes',
- 'out',
- 'outañ',
- 'outi',
- 'outo',
- 'ouzer',
- 'ouzh',
- 'ouzhin',
- 'ouzhit',
- "ouzhoc'h",
- 'ouzhomp',
- 'ouzhor',
- 'ouzhpenn',
- 'ouzhpennik',
- "ouzoc'h",
- 'ouzomp',
- 'ouzon',
- 'ouzont',
- 'ouzout',
- "p'",
- 'p:',
- 'pa',
- 'pad',
- 'padal',
- 'paf',
- 'pan',
- "panevedeoc'h",
- 'panevedo',
- 'panevedomp',
- 'panevedon',
- 'panevedout',
- 'panevet',
- 'panevetañ',
- 'paneveti',
- 'pas',
- 'paseet',
- 'pe',
- 'peadra',
- 'peder',
- 'pedervet',
- 'pedervetvet',
- 'pefe',
- 'pegeit',
- 'pegement',
- 'pegen',
- 'pegiz',
- 'pegoulz',
- 'pehini',
- "pelec'h",
- 'pell',
- 'pemod',
- 'pemp',
- 'pempved',
- 'pemzek',
- 'penaos',
- 'penn',
- 'peogwir',
- 'peotramant',
- 'pep',
- 'perak',
- "perc'hennañ",
- 'pergen',
- 'permetiñ',
- 'peseurt',
- 'pet',
- 'petiaoul',
- 'petoare',
- 'petra',
- 'peur',
- 'peurgetket',
- 'peurheñvel',
- 'peurliesañ',
- 'peurvuiañ',
- 'peus',
- 'peustost',
- 'peuz',
- 'pevar',
- 'pevare',
- 'pevarevet',
- 'pevarzek',
- 'pez',
- 'peze',
- 'pezh',
- 'pff',
- 'pfft',
- 'pfut',
- 'picher',
- 'pif',
- 'pife',
- 'pign',
- 'pije',
- 'pikol',
- 'pitiaoul',
- 'piv',
- 'plaouf',
- 'plok',
- 'plouf',
- 'po',
- 'poa',
- 'poelladus',
- 'pof',
- 'pok',
- 'posupl',
- 'pouah',
- "pourc'henn",
- 'prest',
- 'prestik',
- 'prim',
- 'prin',
- 'provostapl',
- 'pst',
- 'pu',
- 'pur',
- 'r:',
- 'ra',
- 'rae',
- "raec'h",
- 'raed',
- 'raemp',
- 'raen',
- 'raent',
- 'raes',
- 'rafe',
- "rafec'h",
- 'rafed',
- 'rafemp',
- 'rafen',
- 'rafent',
- 'rafes',
- 'rag',
- 'raimp',
- 'raint',
- 'raio',
- 'raje',
- "rajec'h",
- 'rajed',
- 'rajemp',
- 'rajen',
- 'rajent',
- 'rajes',
- 'rak',
- 'ral',
- 'ran',
- 'rankout',
- 'raok',
- 'razh',
- 're',
- 'reas',
- 'reer',
- 'regennoù',
- 'reiñ',
- "rejoc'h",
- 'rejod',
- 'rejomp',
- 'rejont',
- 'rejout',
- 'rener',
- 'rentañ',
- "reoc'h",
- 'reomp',
- 'reont',
- 'reor',
- 'reot',
- 'resis',
- 'ret',
- 'reve',
- 'rez',
- 'ri',
- 'rik',
- 'rin',
- 'ris',
- 'rit',
- 'rouez',
- 's:',
- "sac'h",
- 'sant',
- 'sav',
- 'sañset',
- 'se',
- 'sed',
- 'seitek',
- 'seizh',
- 'seizhvet',
- 'sell',
- 'sellit',
- 'ser',
- 'setu',
- 'seul',
- 'seurt',
- 'siwazh',
- 'skignañ',
- 'skoaz',
- 'skouer',
- 'sort',
- 'souden',
- 'souvitañ',
- 'soñj',
- 'speriañ',
- 'spririñ',
- 'stad',
- 'stlabezañ',
- 'stop',
- 'stranañ',
- 'strewiñ',
- 'strishaat',
- 'stumm',
- 'sujed',
- 'surtoud',
- 't:',
- 'ta',
- 'taer',
- 'tailh',
- 'tak',
- 'tal',
- 'talvoudegezh',
- 'tamm',
- 'tanav',
- 'taol',
- 'te',
- 'techet',
- 'teir',
- 'teirvet',
- 'telt',
- 'teltenn',
- 'teus',
- 'teut',
- 'teuteu',
- 'ti',
- 'tik',
- 'toa',
- 'tok',
- 'tost',
- 'tostig',
- 'toud',
- 'touesk',
- 'touez',
- 'toull',
- 'tra',
- 'trantenn',
- 'traoñ',
- "trawalc'h",
- 'tre',
- 'trede',
- 'tregont',
- 'tremenet',
- 'tri',
- 'trivet',
- "triwec'h",
- 'trizek',
- 'tro',
- 'trugarez',
- 'trumm',
- 'tsoin',
- 'tsouin',
- 'tu',
- 'tud',
- 'u:',
- 'ugent',
- 'uhel',
- 'uhelañ',
- 'ul',
- 'un',
- 'unan',
- 'unanez',
- 'unanig',
- 'unnek',
- 'unnekvet',
- 'ur',
- 'urzh',
- 'us',
- 'v:',
- 'va',
- 'vale',
- 'van',
- 'vare',
- 'vat',
- 'vefe',
- "vefec'h",
- 'vefed',
- 'vefemp',
- 'vefen',
- 'vefent',
- 'vefes',
- 'vesk',
- 'vete',
- 'vez',
- 'vezan',
- 'vezañ',
- 'veze',
- "vezec'h",
- 'vezed',
- 'vezemp',
- 'vezen',
- 'vezent',
- 'vezer',
- 'vezes',
- 'vezez',
- 'vezit',
- 'vezomp',
- 'vezont',
- 'vi',
- 'vihan',
- 'vihanañ',
- 'vije',
- "vijec'h",
- 'vijed',
- 'vijemp',
- 'vijen',
- 'vijent',
- 'vijes',
- 'viken',
- 'vimp',
- 'vin',
- 'vint',
- 'vior',
- 'viot',
- 'virviken',
- 'viskoazh',
- 'vlan',
- 'vlaou',
- 'vo',
- 'vod',
- 'voe',
- "voec'h",
- 'voed',
- 'voemp',
- 'voen',
- 'voent',
- 'voes',
- 'vont',
- 'vostapl',
- "vrac'h",
- 'vrasañ',
- 'vremañ',
- 'w:',
- "walc'h",
- 'war',
- 'warnañ',
- 'warni',
- 'warno',
- "warnoc'h",
- 'warnomp',
- 'warnon',
- 'warnor',
- 'warnout',
- 'wazh',
- 'wech',
- 'wechoù',
- 'well',
- 'y:',
- 'you',
- 'youadenn',
- "youc'hadenn",
- "youc'hou",
- 'z:',
- 'za',
- 'zan',
- 'zaw',
- 'zeu',
- 'zi',
- 'ziar',
- 'zigarez',
- 'ziget',
- 'zindan',
- "zioc'h",
- 'ziouzh',
- 'zirak',
- 'zivout',
- 'ziwar',
- 'ziwezhañ',
- 'zo',
- 'zoken',
- "zokenoc'h",
- 'zouesk',
- 'zouez',
- 'zro',
- 'zu',
- ],
- bg: [
- 'а',
- 'автентичен',
- 'аз',
- 'ако',
- 'ала',
- 'бе',
- 'без',
- 'беше',
- 'би',
- 'бивш',
- 'бивша',
- 'бившо',
- 'бил',
- 'била',
- 'били',
- 'било',
- 'благодаря',
- 'близо',
- 'бъдат',
- 'бъде',
- 'бяха',
- 'в',
- 'вас',
- 'ваш',
- 'ваша',
- 'вероятно',
- 'вече',
- 'взема',
- 'ви',
- 'вие',
- 'винаги',
- 'внимава',
- 'време',
- 'все',
- 'всеки',
- 'всички',
- 'всичко',
- 'всяка',
- 'във',
- 'въпреки',
- 'върху',
- 'г',
- 'ги',
- 'главен',
- 'главна',
- 'главно',
- 'глас',
- 'го',
- 'година',
- 'години',
- 'годишен',
- 'д',
- 'да',
- 'дали',
- 'два',
- 'двама',
- 'двамата',
- 'две',
- 'двете',
- 'ден',
- 'днес',
- 'дни',
- 'до',
- 'добра',
- 'добре',
- 'добро',
- 'добър',
- 'докато',
- 'докога',
- 'дори',
- 'досега',
- 'доста',
- 'друг',
- 'друга',
- 'други',
- 'е',
- 'евтин',
- 'едва',
- 'един',
- 'една',
- 'еднаква',
- 'еднакви',
- 'еднакъв',
- 'едно',
- 'екип',
- 'ето',
- 'живот',
- 'за',
- 'забавям',
- 'зад',
- 'заедно',
- 'заради',
- 'засега',
- 'заспал',
- 'затова',
- 'защо',
- 'защото',
- 'и',
- 'из',
- 'или',
- 'им',
- 'има',
- 'имат',
- 'иска',
- 'й',
- 'каза',
- 'как',
- 'каква',
- 'какво',
- 'както',
- 'какъв',
- 'като',
- 'кога',
- 'когато',
- 'което',
- 'които',
- 'кой',
- 'който',
- 'колко',
- 'която',
- 'къде',
- 'където',
- 'към',
- 'лесен',
- 'лесно',
- 'ли',
- 'лош',
- 'м',
- 'май',
- 'малко',
- 'ме',
- 'между',
- 'мек',
- 'мен',
- 'месец',
- 'ми',
- 'много',
- 'мнозина',
- 'мога',
- 'могат',
- 'може',
- 'мокър',
- 'моля',
- 'момента',
- 'му',
- 'н',
- 'на',
- 'над',
- 'назад',
- 'най',
- 'направи',
- 'напред',
- 'например',
- 'нас',
- 'не',
- 'него',
- 'нещо',
- 'нея',
- 'ни',
- 'ние',
- 'никой',
- 'нито',
- 'нищо',
- 'но',
- 'нов',
- 'нова',
- 'нови',
- 'новина',
- 'някои',
- 'някой',
- 'няколко',
- 'няма',
- 'обаче',
- 'около',
- 'освен',
- 'особено',
- 'от',
- 'отгоре',
- 'отново',
- 'още',
- 'пак',
- 'по',
- 'повече',
- 'повечето',
- 'под',
- 'поне',
- 'поради',
- 'после',
- 'почти',
- 'прави',
- 'пред',
- 'преди',
- 'през',
- 'при',
- 'пък',
- 'първата',
- 'първи',
- 'първо',
- 'пъти',
- 'равен',
- 'равна',
- 'с',
- 'са',
- 'сам',
- 'само',
- 'се',
- 'сега',
- 'си',
- 'син',
- 'скоро',
- 'след',
- 'следващ',
- 'сме',
- 'смях',
- 'според',
- 'сред',
- 'срещу',
- 'сте',
- 'съм',
- 'със',
- 'също',
- 'т',
- 'т.н.',
- 'тази',
- 'така',
- 'такива',
- 'такъв',
- 'там',
- 'твой',
- 'те',
- 'тези',
- 'ти',
- 'то',
- 'това',
- 'тогава',
- 'този',
- 'той',
- 'толкова',
- 'точно',
- 'три',
- 'трябва',
- 'тук',
- 'тъй',
- 'тя',
- 'тях',
- 'у',
- 'утре',
- 'харесва',
- 'хиляди',
- 'ч',
- 'часа',
- 'че',
- 'често',
- 'чрез',
- 'ще',
- 'щом',
- 'юмрук',
- 'я',
- 'як',
- ],
- ca: [
- 'a',
- 'abans',
- 'ací',
- 'ah',
- 'així',
- 'això',
- 'al',
- 'aleshores',
- 'algun',
- 'alguna',
- 'algunes',
- 'alguns',
- 'alhora',
- 'allà',
- 'allí',
- 'allò',
- 'als',
- 'altra',
- 'altre',
- 'altres',
- 'amb',
- 'ambdues',
- 'ambdós',
- 'anar',
- 'ans',
- 'apa',
- 'aquell',
- 'aquella',
- 'aquelles',
- 'aquells',
- 'aquest',
- 'aquesta',
- 'aquestes',
- 'aquests',
- 'aquí',
- 'baix',
- 'bastant',
- 'bé',
- 'cada',
- 'cadascuna',
- 'cadascunes',
- 'cadascuns',
- 'cadascú',
- 'com',
- 'consegueixo',
- 'conseguim',
- 'conseguir',
- 'consigueix',
- 'consigueixen',
- 'consigueixes',
- 'contra',
- "d'un",
- "d'una",
- "d'unes",
- "d'uns",
- 'dalt',
- 'de',
- 'del',
- 'dels',
- 'des',
- 'des de',
- 'després',
- 'dins',
- 'dintre',
- 'donat',
- 'doncs',
- 'durant',
- 'e',
- 'eh',
- 'el',
- 'elles',
- 'ells',
- 'els',
- 'em',
- 'en',
- 'encara',
- 'ens',
- 'entre',
- 'era',
- 'erem',
- 'eren',
- 'eres',
- 'es',
- 'esta',
- 'estan',
- 'estat',
- 'estava',
- 'estaven',
- 'estem',
- 'esteu',
- 'estic',
- 'està',
- 'estàvem',
- 'estàveu',
- 'et',
- 'etc',
- 'ets',
- 'fa',
- 'faig',
- 'fan',
- 'fas',
- 'fem',
- 'fer',
- 'feu',
- 'fi',
- 'fins',
- 'fora',
- 'gairebé',
- 'ha',
- 'han',
- 'has',
- 'haver',
- 'havia',
- 'he',
- 'hem',
- 'heu',
- 'hi',
- 'ho',
- 'i',
- 'igual',
- 'iguals',
- 'inclòs',
- 'ja',
- 'jo',
- "l'hi",
- 'la',
- 'les',
- 'li',
- "li'n",
- 'llarg',
- 'llavors',
- "m'he",
- 'ma',
- 'mal',
- 'malgrat',
- 'mateix',
- 'mateixa',
- 'mateixes',
- 'mateixos',
- 'me',
- 'mentre',
- 'meu',
- 'meus',
- 'meva',
- 'meves',
- 'mode',
- 'molt',
- 'molta',
- 'moltes',
- 'molts',
- 'mon',
- 'mons',
- 'més',
- "n'he",
- "n'hi",
- 'ne',
- 'ni',
- 'no',
- 'nogensmenys',
- 'només',
- 'nosaltres',
- 'nostra',
- 'nostre',
- 'nostres',
- 'o',
- 'oh',
- 'oi',
- 'on',
- 'pas',
- 'pel',
- 'pels',
- 'per',
- 'per que',
- 'perquè',
- 'però',
- 'poc',
- 'poca',
- 'pocs',
- 'podem',
- 'poden',
- 'poder',
- 'podeu',
- 'poques',
- 'potser',
- 'primer',
- 'propi',
- 'puc',
- 'qual',
- 'quals',
- 'quan',
- 'quant',
- 'que',
- 'quelcom',
- 'qui',
- 'quin',
- 'quina',
- 'quines',
- 'quins',
- 'què',
- "s'ha",
- "s'han",
- 'sa',
- 'sabem',
- 'saben',
- 'saber',
- 'sabeu',
- 'sap',
- 'saps',
- 'semblant',
- 'semblants',
- 'sense',
- 'ser',
- 'ses',
- 'seu',
- 'seus',
- 'seva',
- 'seves',
- 'si',
- 'sobre',
- 'sobretot',
- 'soc',
- 'solament',
- 'sols',
- 'som',
- 'son',
- 'sons',
- 'sota',
- 'sou',
- 'sóc',
- 'són',
- "t'ha",
- "t'han",
- "t'he",
- 'ta',
- 'tal',
- 'també',
- 'tampoc',
- 'tan',
- 'tant',
- 'tanta',
- 'tantes',
- 'te',
- 'tene',
- 'tenim',
- 'tenir',
- 'teniu',
- 'teu',
- 'teus',
- 'teva',
- 'teves',
- 'tinc',
- 'ton',
- 'tons',
- 'tot',
- 'tota',
- 'totes',
- 'tots',
- 'un',
- 'una',
- 'unes',
- 'uns',
- 'us',
- 'va',
- 'vaig',
- 'vam',
- 'van',
- 'vas',
- 'veu',
- 'vosaltres',
- 'vostra',
- 'vostre',
- 'vostres',
- 'érem',
- 'éreu',
- 'és',
- 'éssent',
- 'últim',
- 'ús',
- ],
- zh: [
- '、',
- '。',
- '〈',
- '〉',
- '《',
- '》',
- '一',
- '一个',
- '一些',
- '一何',
- '一切',
- '一则',
- '一方面',
- '一旦',
- '一来',
- '一样',
- '一种',
- '一般',
- '一转眼',
- '七',
- '万一',
- '三',
- '上',
- '上下',
- '下',
- '不',
- '不仅',
- '不但',
- '不光',
- '不单',
- '不只',
- '不外乎',
- '不如',
- '不妨',
- '不尽',
- '不尽然',
- '不得',
- '不怕',
- '不惟',
- '不成',
- '不拘',
- '不料',
- '不是',
- '不比',
- '不然',
- '不特',
- '不独',
- '不管',
- '不至于',
- '不若',
- '不论',
- '不过',
- '不问',
- '与',
- '与其',
- '与其说',
- '与否',
- '与此同时',
- '且',
- '且不说',
- '且说',
- '两者',
- '个',
- '个别',
- '中',
- '临',
- '为',
- '为了',
- '为什么',
- '为何',
- '为止',
- '为此',
- '为着',
- '乃',
- '乃至',
- '乃至于',
- '么',
- '之',
- '之一',
- '之所以',
- '之类',
- '乌乎',
- '乎',
- '乘',
- '九',
- '也',
- '也好',
- '也罢',
- '了',
- '二',
- '二来',
- '于',
- '于是',
- '于是乎',
- '云云',
- '云尔',
- '五',
- '些',
- '亦',
- '人',
- '人们',
- '人家',
- '什',
- '什么',
- '什么样',
- '今',
- '介于',
- '仍',
- '仍旧',
- '从',
- '从此',
- '从而',
- '他',
- '他人',
- '他们',
- '他们们',
- '以',
- '以上',
- '以为',
- '以便',
- '以免',
- '以及',
- '以故',
- '以期',
- '以来',
- '以至',
- '以至于',
- '以致',
- '们',
- '任',
- '任何',
- '任凭',
- '会',
- '似的',
- '但',
- '但凡',
- '但是',
- '何',
- '何以',
- '何况',
- '何处',
- '何时',
- '余外',
- '作为',
- '你',
- '你们',
- '使',
- '使得',
- '例如',
- '依',
- '依据',
- '依照',
- '便于',
- '俺',
- '俺们',
- '倘',
- '倘使',
- '倘或',
- '倘然',
- '倘若',
- '借',
- '借傥然',
- '假使',
- '假如',
- '假若',
- '做',
- '像',
- '儿',
- '先不先',
- '光',
- '光是',
- '全体',
- '全部',
- '八',
- '六',
- '兮',
- '共',
- '关于',
- '关于具体地说',
- '其',
- '其一',
- '其中',
- '其二',
- '其他',
- '其余',
- '其它',
- '其次',
- '具体地说',
- '具体说来',
- '兼之',
- '内',
- '再',
- '再其次',
- '再则',
- '再有',
- '再者',
- '再者说',
- '再说',
- '冒',
- '冲',
- '况且',
- '几',
- '几时',
- '凡',
- '凡是',
- '凭',
- '凭借',
- '出于',
- '出来',
- '分',
- '分别',
- '则',
- '则甚',
- '别',
- '别人',
- '别处',
- '别是',
- '别的',
- '别管',
- '别说',
- '到',
- '前后',
- '前此',
- '前者',
- '加之',
- '加以',
- '区',
- '即',
- '即令',
- '即使',
- '即便',
- '即如',
- '即或',
- '即若',
- '却',
- '去',
- '又',
- '又及',
- '及',
- '及其',
- '及至',
- '反之',
- '反而',
- '反过来',
- '反过来说',
- '受到',
- '另',
- '另一方面',
- '另外',
- '另悉',
- '只',
- '只当',
- '只怕',
- '只是',
- '只有',
- '只消',
- '只要',
- '只限',
- '叫',
- '叮咚',
- '可',
- '可以',
- '可是',
- '可见',
- '各',
- '各个',
- '各位',
- '各种',
- '各自',
- '同',
- '同时',
- '后',
- '后者',
- '向',
- '向使',
- '向着',
- '吓',
- '吗',
- '否则',
- '吧',
- '吧哒',
- '含',
- '吱',
- '呀',
- '呃',
- '呕',
- '呗',
- '呜',
- '呜呼',
- '呢',
- '呵',
- '呵呵',
- '呸',
- '呼哧',
- '咋',
- '和',
- '咚',
- '咦',
- '咧',
- '咱',
- '咱们',
- '咳',
- '哇',
- '哈',
- '哈哈',
- '哉',
- '哎',
- '哎呀',
- '哎哟',
- '哗',
- '哟',
- '哦',
- '哩',
- '哪',
- '哪个',
- '哪些',
- '哪儿',
- '哪天',
- '哪年',
- '哪怕',
- '哪样',
- '哪边',
- '哪里',
- '哼',
- '哼唷',
- '唉',
- '唯有',
- '啊',
- '啐',
- '啥',
- '啦',
- '啪达',
- '啷当',
- '喂',
- '喏',
- '喔唷',
- '喽',
- '嗡',
- '嗡嗡',
- '嗬',
- '嗯',
- '嗳',
- '嘎',
- '嘎登',
- '嘘',
- '嘛',
- '嘻',
- '嘿',
- '嘿嘿',
- '四',
- '因',
- '因为',
- '因了',
- '因此',
- '因着',
- '因而',
- '固然',
- '在',
- '在下',
- '在于',
- '地',
- '基于',
- '处在',
- '多',
- '多么',
- '多少',
- '大',
- '大家',
- '她',
- '她们',
- '好',
- '如',
- '如上',
- '如上所述',
- '如下',
- '如何',
- '如其',
- '如同',
- '如是',
- '如果',
- '如此',
- '如若',
- '始而',
- '孰料',
- '孰知',
- '宁',
- '宁可',
- '宁愿',
- '宁肯',
- '它',
- '它们',
- '对',
- '对于',
- '对待',
- '对方',
- '对比',
- '将',
- '小',
- '尔',
- '尔后',
- '尔尔',
- '尚且',
- '就',
- '就是',
- '就是了',
- '就是说',
- '就算',
- '就要',
- '尽',
- '尽管',
- '尽管如此',
- '岂但',
- '己',
- '已',
- '已矣',
- '巴',
- '巴巴',
- '年',
- '并',
- '并且',
- '庶乎',
- '庶几',
- '开外',
- '开始',
- '归',
- '归齐',
- '当',
- '当地',
- '当然',
- '当着',
- '彼',
- '彼时',
- '彼此',
- '往',
- '待',
- '很',
- '得',
- '得了',
- '怎',
- '怎么',
- '怎么办',
- '怎么样',
- '怎奈',
- '怎样',
- '总之',
- '总的来看',
- '总的来说',
- '总的说来',
- '总而言之',
- '恰恰相反',
- '您',
- '惟其',
- '慢说',
- '我',
- '我们',
- '或',
- '或则',
- '或是',
- '或曰',
- '或者',
- '截至',
- '所',
- '所以',
- '所在',
- '所幸',
- '所有',
- '才',
- '才能',
- '打',
- '打从',
- '把',
- '抑或',
- '拿',
- '按',
- '按照',
- '换句话说',
- '换言之',
- '据',
- '据此',
- '接着',
- '故',
- '故此',
- '故而',
- '旁人',
- '无',
- '无宁',
- '无论',
- '既',
- '既往',
- '既是',
- '既然',
- '日',
- '时',
- '时候',
- '是',
- '是以',
- '是的',
- '更',
- '曾',
- '替',
- '替代',
- '最',
- '月',
- '有',
- '有些',
- '有关',
- '有及',
- '有时',
- '有的',
- '望',
- '朝',
- '朝着',
- '本',
- '本人',
- '本地',
- '本着',
- '本身',
- '来',
- '来着',
- '来自',
- '来说',
- '极了',
- '果然',
- '果真',
- '某',
- '某个',
- '某些',
- '某某',
- '根据',
- '欤',
- '正值',
- '正如',
- '正巧',
- '正是',
- '此',
- '此地',
- '此处',
- '此外',
- '此时',
- '此次',
- '此间',
- '毋宁',
- '每',
- '每当',
- '比',
- '比及',
- '比如',
- '比方',
- '没奈何',
- '沿',
- '沿着',
- '漫说',
- '点',
- '焉',
- '然则',
- '然后',
- '然而',
- '照',
- '照着',
- '犹且',
- '犹自',
- '甚且',
- '甚么',
- '甚或',
- '甚而',
- '甚至',
- '甚至于',
- '用',
- '用来',
- '由',
- '由于',
- '由是',
- '由此',
- '由此可见',
- '的',
- '的确',
- '的话',
- '直到',
- '相对而言',
- '省得',
- '看',
- '眨眼',
- '着',
- '着呢',
- '矣',
- '矣乎',
- '矣哉',
- '离',
- '秒',
- '称',
- '竟而',
- '第',
- '等',
- '等到',
- '等等',
- '简言之',
- '管',
- '类如',
- '紧接着',
- '纵',
- '纵令',
- '纵使',
- '纵然',
- '经',
- '经过',
- '结果',
- '给',
- '继之',
- '继后',
- '继而',
- '综上所述',
- '罢了',
- '者',
- '而',
- '而且',
- '而况',
- '而后',
- '而外',
- '而已',
- '而是',
- '而言',
- '能',
- '能否',
- '腾',
- '自',
- '自个儿',
- '自从',
- '自各儿',
- '自后',
- '自家',
- '自己',
- '自打',
- '自身',
- '至',
- '至于',
- '至今',
- '至若',
- '致',
- '般的',
- '若',
- '若夫',
- '若是',
- '若果',
- '若非',
- '莫不然',
- '莫如',
- '莫若',
- '虽',
- '虽则',
- '虽然',
- '虽说',
- '被',
- '要',
- '要不',
- '要不是',
- '要不然',
- '要么',
- '要是',
- '譬喻',
- '譬如',
- '让',
- '许多',
- '论',
- '设使',
- '设或',
- '设若',
- '诚如',
- '诚然',
- '该',
- '说',
- '说来',
- '请',
- '诸',
- '诸位',
- '诸如',
- '谁',
- '谁人',
- '谁料',
- '谁知',
- '贼死',
- '赖以',
- '赶',
- '起',
- '起见',
- '趁',
- '趁着',
- '越是',
- '距',
- '跟',
- '较',
- '较之',
- '边',
- '过',
- '还',
- '还是',
- '还有',
- '还要',
- '这',
- '这一来',
- '这个',
- '这么',
- '这么些',
- '这么样',
- '这么点儿',
- '这些',
- '这会儿',
- '这儿',
- '这就是说',
- '这时',
- '这样',
- '这次',
- '这般',
- '这边',
- '这里',
- '进而',
- '连',
- '连同',
- '逐步',
- '通过',
- '遵循',
- '遵照',
- '那',
- '那个',
- '那么',
- '那么些',
- '那么样',
- '那些',
- '那会儿',
- '那儿',
- '那时',
- '那样',
- '那般',
- '那边',
- '那里',
- '都',
- '鄙人',
- '鉴于',
- '针对',
- '阿',
- '除',
- '除了',
- '除外',
- '除开',
- '除此之外',
- '除非',
- '随',
- '随后',
- '随时',
- '随着',
- '难道说',
- '零',
- '非',
- '非但',
- '非徒',
- '非特',
- '非独',
- '靠',
- '顺',
- '顺着',
- '首先',
- '︿',
- '!',
- '#',
- '$',
- '%',
- '&',
- '(',
- ')',
- '*',
- '+',
- ',',
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- ':',
- ';',
- '<',
- '>',
- '?',
- '@',
- '[',
- ']',
- '{',
- '|',
- '}',
- '~',
- '¥',
- ],
- hr: [
- 'a',
- 'ako',
- 'ali',
- 'bi',
- 'bih',
- 'bila',
- 'bili',
- 'bilo',
- 'bio',
- 'bismo',
- 'biste',
- 'biti',
- 'bumo',
- 'da',
- 'do',
- 'duž',
- 'ga',
- 'hoće',
- 'hoćemo',
- 'hoćete',
- 'hoćeš',
- 'hoću',
- 'i',
- 'iako',
- 'ih',
- 'ili',
- 'iz',
- 'ja',
- 'je',
- 'jedna',
- 'jedne',
- 'jedno',
- 'jer',
- 'jesam',
- 'jesi',
- 'jesmo',
- 'jest',
- 'jeste',
- 'jesu',
- 'jim',
- 'joj',
- 'još',
- 'ju',
- 'kada',
- 'kako',
- 'kao',
- 'koja',
- 'koje',
- 'koji',
- 'kojima',
- 'koju',
- 'kroz',
- 'li',
- 'me',
- 'mene',
- 'meni',
- 'mi',
- 'mimo',
- 'moj',
- 'moja',
- 'moje',
- 'mu',
- 'na',
- 'nad',
- 'nakon',
- 'nam',
- 'nama',
- 'nas',
- 'naš',
- 'naša',
- 'naše',
- 'našeg',
- 'ne',
- 'nego',
- 'neka',
- 'neki',
- 'nekog',
- 'neku',
- 'nema',
- 'netko',
- 'neće',
- 'nećemo',
- 'nećete',
- 'nećeš',
- 'neću',
- 'nešto',
- 'ni',
- 'nije',
- 'nikoga',
- 'nikoje',
- 'nikoju',
- 'nisam',
- 'nisi',
- 'nismo',
- 'niste',
- 'nisu',
- 'njega',
- 'njegov',
- 'njegova',
- 'njegovo',
- 'njemu',
- 'njezin',
- 'njezina',
- 'njezino',
- 'njih',
- 'njihov',
- 'njihova',
- 'njihovo',
- 'njim',
- 'njima',
- 'njoj',
- 'nju',
- 'no',
- 'o',
- 'od',
- 'odmah',
- 'on',
- 'ona',
- 'oni',
- 'ono',
- 'ova',
- 'pa',
- 'pak',
- 'po',
- 'pod',
- 'pored',
- 'prije',
- 's',
- 'sa',
- 'sam',
- 'samo',
- 'se',
- 'sebe',
- 'sebi',
- 'si',
- 'smo',
- 'ste',
- 'su',
- 'sve',
- 'svi',
- 'svog',
- 'svoj',
- 'svoja',
- 'svoje',
- 'svom',
- 'ta',
- 'tada',
- 'taj',
- 'tako',
- 'te',
- 'tebe',
- 'tebi',
- 'ti',
- 'to',
- 'toj',
- 'tome',
- 'tu',
- 'tvoj',
- 'tvoja',
- 'tvoje',
- 'u',
- 'uz',
- 'vam',
- 'vama',
- 'vas',
- 'vaš',
- 'vaša',
- 'vaše',
- 'već',
- 'vi',
- 'vrlo',
- 'za',
- 'zar',
- 'će',
- 'ćemo',
- 'ćete',
- 'ćeš',
- 'ću',
- 'što',
- ],
- cs: [
- 'a',
- 'aby',
- 'ahoj',
- 'aj',
- 'ale',
- 'anebo',
- 'ani',
- 'aniž',
- 'ano',
- 'asi',
- 'aspoň',
- 'atd',
- 'atp',
- 'az',
- 'ačkoli',
- 'až',
- 'bez',
- 'beze',
- 'blízko',
- 'bohužel',
- 'brzo',
- 'bude',
- 'budem',
- 'budeme',
- 'budes',
- 'budete',
- 'budeš',
- 'budou',
- 'budu',
- 'by',
- 'byl',
- 'byla',
- 'byli',
- 'bylo',
- 'byly',
- 'bys',
- 'byt',
- 'být',
- 'během',
- 'chce',
- 'chceme',
- 'chcete',
- 'chceš',
- 'chci',
- 'chtít',
- 'chtějí',
- "chut'",
- 'chuti',
- 'ci',
- 'clanek',
- 'clanku',
- 'clanky',
- 'co',
- 'coz',
- 'což',
- 'cz',
- 'daleko',
- 'dalsi',
- 'další',
- 'den',
- 'deset',
- 'design',
- 'devatenáct',
- 'devět',
- 'dnes',
- 'do',
- 'dobrý',
- 'docela',
- 'dva',
- 'dvacet',
- 'dvanáct',
- 'dvě',
- 'dál',
- 'dále',
- 'děkovat',
- 'děkujeme',
- 'děkuji',
- 'email',
- 'ho',
- 'hodně',
- 'i',
- 'jak',
- 'jakmile',
- 'jako',
- 'jakož',
- 'jde',
- 'je',
- 'jeden',
- 'jedenáct',
- 'jedna',
- 'jedno',
- 'jednou',
- 'jedou',
- 'jeho',
- 'jehož',
- 'jej',
- 'jeji',
- 'jejich',
- 'její',
- 'jelikož',
- 'jemu',
- 'jen',
- 'jenom',
- 'jenž',
- 'jeste',
- 'jestli',
- 'jestliže',
- 'ještě',
- 'jež',
- 'ji',
- 'jich',
- 'jimi',
- 'jinak',
- 'jine',
- 'jiné',
- 'jiz',
- 'již',
- 'jsem',
- 'jses',
- 'jseš',
- 'jsi',
- 'jsme',
- 'jsou',
- 'jste',
- 'já',
- 'jí',
- 'jím',
- 'jíž',
- 'jšte',
- 'k',
- 'kam',
- 'každý',
- 'kde',
- 'kdo',
- 'kdy',
- 'kdyz',
- 'když',
- 'ke',
- 'kolik',
- 'kromě',
- 'ktera',
- 'ktere',
- 'kteri',
- 'kterou',
- 'ktery',
- 'která',
- 'které',
- 'který',
- 'kteři',
- 'kteří',
- 'ku',
- 'kvůli',
- 'ma',
- 'mají',
- 'mate',
- 'me',
- 'mezi',
- 'mi',
- 'mit',
- 'mne',
- 'mnou',
- 'mně',
- 'moc',
- 'mohl',
- 'mohou',
- 'moje',
- 'moji',
- 'možná',
- 'muj',
- 'musí',
- 'muze',
- 'my',
- 'má',
- 'málo',
- 'mám',
- 'máme',
- 'máte',
- 'máš',
- 'mé',
- 'mí',
- 'mít',
- 'mě',
- 'můj',
- 'může',
- 'na',
- 'nad',
- 'nade',
- 'nam',
- 'napiste',
- 'napište',
- 'naproti',
- 'nas',
- 'nasi',
- 'načež',
- 'naše',
- 'naši',
- 'ne',
- 'nebo',
- 'nebyl',
- 'nebyla',
- 'nebyli',
- 'nebyly',
- 'nechť',
- 'nedělají',
- 'nedělá',
- 'nedělám',
- 'neděláme',
- 'neděláte',
- 'neděláš',
- 'neg',
- 'nejsi',
- 'nejsou',
- 'nemají',
- 'nemáme',
- 'nemáte',
- 'neměl',
- 'neni',
- 'není',
- 'nestačí',
- 'nevadí',
- 'nez',
- 'než',
- 'nic',
- 'nich',
- 'nimi',
- 'nove',
- 'novy',
- 'nové',
- 'nový',
- 'nula',
- 'ná',
- 'nám',
- 'námi',
- 'nás',
- 'náš',
- 'ní',
- 'ním',
- 'ně',
- 'něco',
- 'nějak',
- 'někde',
- 'někdo',
- 'němu',
- 'němuž',
- 'o',
- 'od',
- 'ode',
- 'on',
- 'ona',
- 'oni',
- 'ono',
- 'ony',
- 'osm',
- 'osmnáct',
- 'pak',
- 'patnáct',
- 'po',
- 'pod',
- 'podle',
- 'pokud',
- 'potom',
- 'pouze',
- 'pozdě',
- 'pořád',
- 'prave',
- 'pravé',
- 'pred',
- 'pres',
- 'pri',
- 'pro',
- 'proc',
- 'prostě',
- 'prosím',
- 'proti',
- 'proto',
- 'protoze',
- 'protože',
- 'proč',
- 'prvni',
- 'první',
- 'práve',
- 'pta',
- 'pět',
- 'před',
- 'přede',
- 'přes',
- 'přese',
- 'při',
- 'přičemž',
- 're',
- 'rovně',
- 's',
- 'se',
- 'sedm',
- 'sedmnáct',
- 'si',
- 'sice',
- 'skoro',
- 'smí',
- 'smějí',
- 'snad',
- 'spolu',
- 'sta',
- 'sto',
- 'strana',
- 'sté',
- 'sve',
- 'svych',
- 'svym',
- 'svymi',
- 'své',
- 'svých',
- 'svým',
- 'svými',
- 'svůj',
- 'ta',
- 'tady',
- 'tak',
- 'take',
- 'takhle',
- 'taky',
- 'takze',
- 'také',
- 'takže',
- 'tam',
- 'tamhle',
- 'tamhleto',
- 'tamto',
- 'tato',
- 'te',
- 'tebe',
- 'tebou',
- "ted'",
- 'tedy',
- 'tema',
- 'ten',
- 'tento',
- 'teto',
- 'ti',
- 'tim',
- 'timto',
- 'tipy',
- 'tisíc',
- 'tisíce',
- 'to',
- 'tobě',
- 'tohle',
- 'toho',
- 'tohoto',
- 'tom',
- 'tomto',
- 'tomu',
- 'tomuto',
- 'toto',
- 'trošku',
- 'tu',
- 'tuto',
- 'tvoje',
- 'tvá',
- 'tvé',
- 'tvůj',
- 'ty',
- 'tyto',
- 'téma',
- 'této',
- 'tím',
- 'tímto',
- 'tě',
- 'těm',
- 'těma',
- 'těmu',
- 'třeba',
- 'tři',
- 'třináct',
- 'u',
- 'určitě',
- 'uz',
- 'už',
- 'v',
- 'vam',
- 'vas',
- 'vase',
- 'vaše',
- 'vaši',
- 've',
- 'vedle',
- 'večer',
- 'vice',
- 'vlastně',
- 'vsak',
- 'vy',
- 'vám',
- 'vámi',
- 'vás',
- 'váš',
- 'více',
- 'však',
- 'všechen',
- 'všechno',
- 'všichni',
- 'vůbec',
- 'vždy',
- 'z',
- 'za',
- 'zatímco',
- 'zač',
- 'zda',
- 'zde',
- 'ze',
- 'zpet',
- 'zpravy',
- 'zprávy',
- 'zpět',
- 'čau',
- 'či',
- 'článek',
- 'článku',
- 'články',
- 'čtrnáct',
- 'čtyři',
- 'šest',
- 'šestnáct',
- 'že',
- ],
- da: [
- 'ad',
- 'af',
- 'aldrig',
- 'alle',
- 'alt',
- 'anden',
- 'andet',
- 'andre',
- 'at',
- 'bare',
- 'begge',
- 'blev',
- 'blive',
- 'bliver',
- 'da',
- 'de',
- 'dem',
- 'den',
- 'denne',
- 'der',
- 'deres',
- 'det',
- 'dette',
- 'dig',
- 'din',
- 'dine',
- 'disse',
- 'dit',
- 'dog',
- 'du',
- 'efter',
- 'ej',
- 'eller',
- 'en',
- 'end',
- 'ene',
- 'eneste',
- 'enhver',
- 'er',
- 'et',
- 'far',
- 'fem',
- 'fik',
- 'fire',
- 'flere',
- 'fleste',
- 'for',
- 'fordi',
- 'forrige',
- 'fra',
- 'få',
- 'får',
- 'før',
- 'god',
- 'godt',
- 'ham',
- 'han',
- 'hans',
- 'har',
- 'havde',
- 'have',
- 'hej',
- 'helt',
- 'hende',
- 'hendes',
- 'her',
- 'hos',
- 'hun',
- 'hvad',
- 'hvem',
- 'hver',
- 'hvilken',
- 'hvis',
- 'hvor',
- 'hvordan',
- 'hvorfor',
- 'hvornår',
- 'i',
- 'ikke',
- 'ind',
- 'ingen',
- 'intet',
- 'ja',
- 'jeg',
- 'jer',
- 'jeres',
- 'jo',
- 'kan',
- 'kom',
- 'komme',
- 'kommer',
- 'kun',
- 'kunne',
- 'lad',
- 'lav',
- 'lidt',
- 'lige',
- 'lille',
- 'man',
- 'mand',
- 'mange',
- 'med',
- 'meget',
- 'men',
- 'mens',
- 'mere',
- 'mig',
- 'min',
- 'mine',
- 'mit',
- 'mod',
- 'må',
- 'ned',
- 'nej',
- 'ni',
- 'nogen',
- 'noget',
- 'nogle',
- 'nu',
- 'ny',
- 'nyt',
- 'når',
- 'nær',
- 'næste',
- 'næsten',
- 'og',
- 'også',
- 'okay',
- 'om',
- 'op',
- 'os',
- 'otte',
- 'over',
- 'på',
- 'se',
- 'seks',
- 'selv',
- 'ser',
- 'ses',
- 'sig',
- 'sige',
- 'sin',
- 'sine',
- 'sit',
- 'skal',
- 'skulle',
- 'som',
- 'stor',
- 'store',
- 'syv',
- 'så',
- 'sådan',
- 'tag',
- 'tage',
- 'thi',
- 'ti',
- 'til',
- 'to',
- 'tre',
- 'ud',
- 'under',
- 'var',
- 'ved',
- 'vi',
- 'vil',
- 'ville',
- 'vor',
- 'vores',
- 'være',
- 'været',
- ],
- nl: [
- 'aan',
- 'aangaande',
- 'aangezien',
- 'achte',
- 'achter',
- 'achterna',
- 'af',
- 'afgelopen',
- 'al',
- 'aldaar',
- 'aldus',
- 'alhoewel',
- 'alias',
- 'alle',
- 'allebei',
- 'alleen',
- 'alles',
- 'als',
- 'alsnog',
- 'altijd',
- 'altoos',
- 'ander',
- 'andere',
- 'anders',
- 'anderszins',
- 'beetje',
- 'behalve',
- 'behoudens',
- 'beide',
- 'beiden',
- 'ben',
- 'beneden',
- 'bent',
- 'bepaald',
- 'betreffende',
- 'bij',
- 'bijna',
- 'bijv',
- 'binnen',
- 'binnenin',
- 'blijkbaar',
- 'blijken',
- 'boven',
- 'bovenal',
- 'bovendien',
- 'bovengenoemd',
- 'bovenstaand',
- 'bovenvermeld',
- 'buiten',
- 'bv',
- 'daar',
- 'daardoor',
- 'daarheen',
- 'daarin',
- 'daarna',
- 'daarnet',
- 'daarom',
- 'daarop',
- 'daaruit',
- 'daarvanlangs',
- 'dan',
- 'dat',
- 'de',
- 'deden',
- 'deed',
- 'der',
- 'derde',
- 'derhalve',
- 'dertig',
- 'deze',
- 'dhr',
- 'die',
- 'dikwijls',
- 'dit',
- 'doch',
- 'doe',
- 'doen',
- 'doet',
- 'door',
- 'doorgaand',
- 'drie',
- 'duizend',
- 'dus',
- 'echter',
- 'een',
- 'eens',
- 'eer',
- 'eerdat',
- 'eerder',
- 'eerlang',
- 'eerst',
- 'eerste',
- 'eigen',
- 'eigenlijk',
- 'elk',
- 'elke',
- 'en',
- 'enig',
- 'enige',
- 'enigszins',
- 'enkel',
- 'er',
- 'erdoor',
- 'erg',
- 'ergens',
- 'etc',
- 'etcetera',
- 'even',
- 'eveneens',
- 'evenwel',
- 'gauw',
- 'ge',
- 'gedurende',
- 'geen',
- 'gehad',
- 'gekund',
- 'geleden',
- 'gelijk',
- 'gemoeten',
- 'gemogen',
- 'genoeg',
- 'geweest',
- 'gewoon',
- 'gewoonweg',
- 'haar',
- 'haarzelf',
- 'had',
- 'hadden',
- 'hare',
- 'heb',
- 'hebben',
- 'hebt',
- 'hedden',
- 'heeft',
- 'heel',
- 'hem',
- 'hemzelf',
- 'hen',
- 'het',
- 'hetzelfde',
- 'hier',
- 'hierbeneden',
- 'hierboven',
- 'hierin',
- 'hierna',
- 'hierom',
- 'hij',
- 'hijzelf',
- 'hoe',
- 'hoewel',
- 'honderd',
- 'hun',
- 'hunne',
- 'ieder',
- 'iedere',
- 'iedereen',
- 'iemand',
- 'iets',
- 'ik',
- 'ikzelf',
- 'in',
- 'inderdaad',
- 'inmiddels',
- 'intussen',
- 'inzake',
- 'is',
- 'ja',
- 'je',
- 'jezelf',
- 'jij',
- 'jijzelf',
- 'jou',
- 'jouw',
- 'jouwe',
- 'juist',
- 'jullie',
- 'kan',
- 'klaar',
- 'kon',
- 'konden',
- 'krachtens',
- 'kun',
- 'kunnen',
- 'kunt',
- 'laatst',
- 'later',
- 'liever',
- 'lijken',
- 'lijkt',
- 'maak',
- 'maakt',
- 'maakte',
- 'maakten',
- 'maar',
- 'mag',
- 'maken',
- 'me',
- 'meer',
- 'meest',
- 'meestal',
- 'men',
- 'met',
- 'mevr',
- 'mezelf',
- 'mij',
- 'mijn',
- 'mijnent',
- 'mijner',
- 'mijzelf',
- 'minder',
- 'miss',
- 'misschien',
- 'missen',
- 'mits',
- 'mocht',
- 'mochten',
- 'moest',
- 'moesten',
- 'moet',
- 'moeten',
- 'mogen',
- 'mr',
- 'mrs',
- 'mw',
- 'na',
- 'naar',
- 'nadat',
- 'nam',
- 'namelijk',
- 'nee',
- 'neem',
- 'negen',
- 'nemen',
- 'nergens',
- 'net',
- 'niemand',
- 'niet',
- 'niets',
- 'niks',
- 'noch',
- 'nochtans',
- 'nog',
- 'nogal',
- 'nooit',
- 'nu',
- 'nv',
- 'of',
- 'ofschoon',
- 'om',
- 'omdat',
- 'omhoog',
- 'omlaag',
- 'omstreeks',
- 'omtrent',
- 'omver',
- 'ondanks',
- 'onder',
- 'ondertussen',
- 'ongeveer',
- 'ons',
- 'onszelf',
- 'onze',
- 'onzeker',
- 'ooit',
- 'ook',
- 'op',
- 'opnieuw',
- 'opzij',
- 'over',
- 'overal',
- 'overeind',
- 'overige',
- 'overigens',
- 'paar',
- 'pas',
- 'per',
- 'precies',
- 'recent',
- 'redelijk',
- 'reeds',
- 'rond',
- 'rondom',
- 'samen',
- 'sedert',
- 'sinds',
- 'sindsdien',
- 'slechts',
- 'sommige',
- 'spoedig',
- 'steeds',
- 'tamelijk',
- 'te',
- 'tegen',
- 'tegenover',
- 'tenzij',
- 'terwijl',
- 'thans',
- 'tien',
- 'tiende',
- 'tijdens',
- 'tja',
- 'toch',
- 'toe',
- 'toen',
- 'toenmaals',
- 'toenmalig',
- 'tot',
- 'totdat',
- 'tussen',
- 'twee',
- 'tweede',
- 'u',
- 'uit',
- 'uitgezonderd',
- 'uw',
- 'vaak',
- 'vaakwat',
- 'van',
- 'vanaf',
- 'vandaan',
- 'vanuit',
- 'vanwege',
- 'veel',
- 'veeleer',
- 'veertig',
- 'verder',
- 'verscheidene',
- 'verschillende',
- 'vervolgens',
- 'via',
- 'vier',
- 'vierde',
- 'vijf',
- 'vijfde',
- 'vijftig',
- 'vol',
- 'volgend',
- 'volgens',
- 'voor',
- 'vooraf',
- 'vooral',
- 'vooralsnog',
- 'voorbij',
- 'voordat',
- 'voordezen',
- 'voordien',
- 'voorheen',
- 'voorop',
- 'voorts',
- 'vooruit',
- 'vrij',
- 'vroeg',
- 'waar',
- 'waarom',
- 'waarschijnlijk',
- 'wanneer',
- 'want',
- 'waren',
- 'was',
- 'wat',
- 'we',
- 'wederom',
- 'weer',
- 'weg',
- 'wegens',
- 'weinig',
- 'wel',
- 'weldra',
- 'welk',
- 'welke',
- 'werd',
- 'werden',
- 'werder',
- 'wezen',
- 'whatever',
- 'wie',
- 'wiens',
- 'wier',
- 'wij',
- 'wijzelf',
- 'wil',
- 'wilden',
- 'willen',
- 'word',
- 'worden',
- 'wordt',
- 'zal',
- 'ze',
- 'zei',
- 'zeker',
- 'zelf',
- 'zelfde',
- 'zelfs',
- 'zes',
- 'zeven',
- 'zich',
- 'zichzelf',
- 'zij',
- 'zijn',
- 'zijne',
- 'zijzelf',
- 'zo',
- 'zoals',
- 'zodat',
- 'zodra',
- 'zonder',
- 'zou',
- 'zouden',
- 'zowat',
- 'zulk',
- 'zulke',
- 'zullen',
- 'zult',
- ],
- en: [
- "'ll",
- "'tis",
- "'twas",
- "'ve",
- '10',
- '39',
- 'a',
- "a's",
- 'able',
- 'ableabout',
- 'about',
- 'above',
- 'abroad',
- 'abst',
- 'accordance',
- 'according',
- 'accordingly',
- 'across',
- 'act',
- 'actually',
- 'ad',
- 'added',
- 'adj',
- 'adopted',
- 'ae',
- 'af',
- 'affected',
- 'affecting',
- 'affects',
- 'after',
- 'afterwards',
- 'ag',
- 'again',
- 'against',
- 'ago',
- 'ah',
- 'ahead',
- 'ai',
- "ain't",
- 'aint',
- 'al',
- 'all',
- 'allow',
- 'allows',
- 'almost',
- 'alone',
- 'along',
- 'alongside',
- 'already',
- 'also',
- 'although',
- 'always',
- 'am',
- 'amid',
- 'amidst',
- 'among',
- 'amongst',
- 'amoungst',
- 'amount',
- 'an',
- 'and',
- 'announce',
- 'another',
- 'any',
- 'anybody',
- 'anyhow',
- 'anymore',
- 'anyone',
- 'anything',
- 'anyway',
- 'anyways',
- 'anywhere',
- 'ao',
- 'apart',
- 'apparently',
- 'appear',
- 'appreciate',
- 'appropriate',
- 'approximately',
- 'aq',
- 'ar',
- 'are',
- 'area',
- 'areas',
- 'aren',
- "aren't",
- 'arent',
- 'arise',
- 'around',
- 'arpa',
- 'as',
- 'aside',
- 'ask',
- 'asked',
- 'asking',
- 'asks',
- 'associated',
- 'at',
- 'au',
- 'auth',
- 'available',
- 'aw',
- 'away',
- 'awfully',
- 'az',
- 'b',
- 'ba',
- 'back',
- 'backed',
- 'backing',
- 'backs',
- 'backward',
- 'backwards',
- 'bb',
- 'bd',
- 'be',
- 'became',
- 'because',
- 'become',
- 'becomes',
- 'becoming',
- 'been',
- 'before',
- 'beforehand',
- 'began',
- 'begin',
- 'beginning',
- 'beginnings',
- 'begins',
- 'behind',
- 'being',
- 'beings',
- 'believe',
- 'below',
- 'beside',
- 'besides',
- 'best',
- 'better',
- 'between',
- 'beyond',
- 'bf',
- 'bg',
- 'bh',
- 'bi',
- 'big',
- 'bill',
- 'billion',
- 'biol',
- 'bj',
- 'bm',
- 'bn',
- 'bo',
- 'both',
- 'bottom',
- 'br',
- 'brief',
- 'briefly',
- 'bs',
- 'bt',
- 'but',
- 'buy',
- 'bv',
- 'bw',
- 'by',
- 'bz',
- 'c',
- "c'mon",
- "c's",
- 'ca',
- 'call',
- 'came',
- 'can',
- "can't",
- 'cannot',
- 'cant',
- 'caption',
- 'case',
- 'cases',
- 'cause',
- 'causes',
- 'cc',
- 'cd',
- 'certain',
- 'certainly',
- 'cf',
- 'cg',
- 'ch',
- 'changes',
- 'ci',
- 'ck',
- 'cl',
- 'clear',
- 'clearly',
- 'click',
- 'cm',
- 'cmon',
- 'cn',
- 'co',
- 'co.',
- 'com',
- 'come',
- 'comes',
- 'computer',
- 'con',
- 'concerning',
- 'consequently',
- 'consider',
- 'considering',
- 'contain',
- 'containing',
- 'contains',
- 'copy',
- 'corresponding',
- 'could',
- "could've",
- 'couldn',
- "couldn't",
- 'couldnt',
- 'course',
- 'cr',
- 'cry',
- 'cs',
- 'cu',
- 'currently',
- 'cv',
- 'cx',
- 'cy',
- 'cz',
- 'd',
- 'dare',
- "daren't",
- 'darent',
- 'date',
- 'de',
- 'dear',
- 'definitely',
- 'describe',
- 'described',
- 'despite',
- 'detail',
- 'did',
- 'didn',
- "didn't",
- 'didnt',
- 'differ',
- 'different',
- 'differently',
- 'directly',
- 'dj',
- 'dk',
- 'dm',
- 'do',
- 'does',
- 'doesn',
- "doesn't",
- 'doesnt',
- 'doing',
- 'don',
- "don't",
- 'done',
- 'dont',
- 'doubtful',
- 'down',
- 'downed',
- 'downing',
- 'downs',
- 'downwards',
- 'due',
- 'during',
- 'dz',
- 'e',
- 'each',
- 'early',
- 'ec',
- 'ed',
- 'edu',
- 'ee',
- 'effect',
- 'eg',
- 'eh',
- 'eight',
- 'eighty',
- 'either',
- 'eleven',
- 'else',
- 'elsewhere',
- 'empty',
- 'end',
- 'ended',
- 'ending',
- 'ends',
- 'enough',
- 'entirely',
- 'er',
- 'es',
- 'especially',
- 'et',
- 'et-al',
- 'etc',
- 'even',
- 'evenly',
- 'ever',
- 'evermore',
- 'every',
- 'everybody',
- 'everyone',
- 'everything',
- 'everywhere',
- 'ex',
- 'exactly',
- 'example',
- 'except',
- 'f',
- 'face',
- 'faces',
- 'fact',
- 'facts',
- 'fairly',
- 'far',
- 'farther',
- 'felt',
- 'few',
- 'fewer',
- 'ff',
- 'fi',
- 'fifteen',
- 'fifth',
- 'fifty',
- 'fify',
- 'fill',
- 'find',
- 'finds',
- 'fire',
- 'first',
- 'five',
- 'fix',
- 'fj',
- 'fk',
- 'fm',
- 'fo',
- 'followed',
- 'following',
- 'follows',
- 'for',
- 'forever',
- 'former',
- 'formerly',
- 'forth',
- 'forty',
- 'forward',
- 'found',
- 'four',
- 'fr',
- 'free',
- 'from',
- 'front',
- 'full',
- 'fully',
- 'further',
- 'furthered',
- 'furthering',
- 'furthermore',
- 'furthers',
- 'fx',
- 'g',
- 'ga',
- 'gave',
- 'gb',
- 'gd',
- 'ge',
- 'general',
- 'generally',
- 'get',
- 'gets',
- 'getting',
- 'gf',
- 'gg',
- 'gh',
- 'gi',
- 'give',
- 'given',
- 'gives',
- 'giving',
- 'gl',
- 'gm',
- 'gmt',
- 'gn',
- 'go',
- 'goes',
- 'going',
- 'gone',
- 'good',
- 'goods',
- 'got',
- 'gotten',
- 'gov',
- 'gp',
- 'gq',
- 'gr',
- 'great',
- 'greater',
- 'greatest',
- 'greetings',
- 'group',
- 'grouped',
- 'grouping',
- 'groups',
- 'gs',
- 'gt',
- 'gu',
- 'gw',
- 'gy',
- 'h',
- 'had',
- "hadn't",
- 'hadnt',
- 'half',
- 'happens',
- 'hardly',
- 'has',
- 'hasn',
- "hasn't",
- 'hasnt',
- 'have',
- 'haven',
- "haven't",
- 'havent',
- 'having',
- 'he',
- "he'd",
- "he'll",
- "he's",
- 'hed',
- 'hell',
- 'hello',
- 'help',
- 'hence',
- 'her',
- 'here',
- "here's",
- 'hereafter',
- 'hereby',
- 'herein',
- 'heres',
- 'hereupon',
- 'hers',
- 'herself',
- 'herse”',
- 'hes',
- 'hi',
- 'hid',
- 'high',
- 'higher',
- 'highest',
- 'him',
- 'himself',
- 'himse”',
- 'his',
- 'hither',
- 'hk',
- 'hm',
- 'hn',
- 'home',
- 'homepage',
- 'hopefully',
- 'how',
- "how'd",
- "how'll",
- "how's",
- 'howbeit',
- 'however',
- 'hr',
- 'ht',
- 'htm',
- 'html',
- 'http',
- 'hu',
- 'hundred',
- 'i',
- "i'd",
- "i'll",
- "i'm",
- "i've",
- 'i.e.',
- 'id',
- 'ie',
- 'if',
- 'ignored',
- 'ii',
- 'il',
- 'ill',
- 'im',
- 'immediate',
- 'immediately',
- 'importance',
- 'important',
- 'in',
- 'inasmuch',
- 'inc',
- 'inc.',
- 'indeed',
- 'index',
- 'indicate',
- 'indicated',
- 'indicates',
- 'information',
- 'inner',
- 'inside',
- 'insofar',
- 'instead',
- 'int',
- 'interest',
- 'interested',
- 'interesting',
- 'interests',
- 'into',
- 'invention',
- 'inward',
- 'io',
- 'iq',
- 'ir',
- 'is',
- 'isn',
- "isn't",
- 'isnt',
- 'it',
- "it'd",
- "it'll",
- "it's",
- 'itd',
- 'itll',
- 'its',
- 'itself',
- 'itse”',
- 'ive',
- 'j',
- 'je',
- 'jm',
- 'jo',
- 'join',
- 'jp',
- 'just',
- 'k',
- 'ke',
- 'keep',
- 'keeps',
- 'kept',
- 'keys',
- 'kg',
- 'kh',
- 'ki',
- 'kind',
- 'km',
- 'kn',
- 'knew',
- 'know',
- 'known',
- 'knows',
- 'kp',
- 'kr',
- 'kw',
- 'ky',
- 'kz',
- 'l',
- 'la',
- 'large',
- 'largely',
- 'last',
- 'lately',
- 'later',
- 'latest',
- 'latter',
- 'latterly',
- 'lb',
- 'lc',
- 'least',
- 'length',
- 'less',
- 'lest',
- 'let',
- "let's",
- 'lets',
- 'li',
- 'like',
- 'liked',
- 'likely',
- 'likewise',
- 'line',
- 'little',
- 'lk',
- 'll',
- 'long',
- 'longer',
- 'longest',
- 'look',
- 'looking',
- 'looks',
- 'low',
- 'lower',
- 'lr',
- 'ls',
- 'lt',
- 'ltd',
- 'lu',
- 'lv',
- 'ly',
- 'm',
- 'ma',
- 'made',
- 'mainly',
- 'make',
- 'makes',
- 'making',
- 'man',
- 'many',
- 'may',
- 'maybe',
- "mayn't",
- 'maynt',
- 'mc',
- 'md',
- 'me',
- 'mean',
- 'means',
- 'meantime',
- 'meanwhile',
- 'member',
- 'members',
- 'men',
- 'merely',
- 'mg',
- 'mh',
- 'microsoft',
- 'might',
- "might've",
- "mightn't",
- 'mightnt',
- 'mil',
- 'mill',
- 'million',
- 'mine',
- 'minus',
- 'miss',
- 'mk',
- 'ml',
- 'mm',
- 'mn',
- 'mo',
- 'more',
- 'moreover',
- 'most',
- 'mostly',
- 'move',
- 'mp',
- 'mq',
- 'mr',
- 'mrs',
- 'ms',
- 'msie',
- 'mt',
- 'mu',
- 'much',
- 'mug',
- 'must',
- "must've",
- "mustn't",
- 'mustnt',
- 'mv',
- 'mw',
- 'mx',
- 'my',
- 'myself',
- 'myse”',
- 'mz',
- 'n',
- 'na',
- 'name',
- 'namely',
- 'nay',
- 'nc',
- 'nd',
- 'ne',
- 'near',
- 'nearly',
- 'necessarily',
- 'necessary',
- 'need',
- 'needed',
- 'needing',
- "needn't",
- 'neednt',
- 'needs',
- 'neither',
- 'net',
- 'netscape',
- 'never',
- 'neverf',
- 'neverless',
- 'nevertheless',
- 'new',
- 'newer',
- 'newest',
- 'next',
- 'nf',
- 'ng',
- 'ni',
- 'nine',
- 'ninety',
- 'nl',
- 'no',
- 'no-one',
- 'nobody',
- 'non',
- 'none',
- 'nonetheless',
- 'noone',
- 'nor',
- 'normally',
- 'nos',
- 'not',
- 'noted',
- 'nothing',
- 'notwithstanding',
- 'novel',
- 'now',
- 'nowhere',
- 'np',
- 'nr',
- 'nu',
- 'null',
- 'number',
- 'numbers',
- 'nz',
- 'o',
- 'obtain',
- 'obtained',
- 'obviously',
- 'of',
- 'off',
- 'often',
- 'oh',
- 'ok',
- 'okay',
- 'old',
- 'older',
- 'oldest',
- 'om',
- 'omitted',
- 'on',
- 'once',
- 'one',
- "one's",
- 'ones',
- 'only',
- 'onto',
- 'open',
- 'opened',
- 'opening',
- 'opens',
- 'opposite',
- 'or',
- 'ord',
- 'order',
- 'ordered',
- 'ordering',
- 'orders',
- 'org',
- 'other',
- 'others',
- 'otherwise',
- 'ought',
- "oughtn't",
- 'oughtnt',
- 'our',
- 'ours',
- 'ourselves',
- 'out',
- 'outside',
- 'over',
- 'overall',
- 'owing',
- 'own',
- 'p',
- 'pa',
- 'page',
- 'pages',
- 'part',
- 'parted',
- 'particular',
- 'particularly',
- 'parting',
- 'parts',
- 'past',
- 'pe',
- 'per',
- 'perhaps',
- 'pf',
- 'pg',
- 'ph',
- 'pk',
- 'pl',
- 'place',
- 'placed',
- 'places',
- 'please',
- 'plus',
- 'pm',
- 'pmid',
- 'pn',
- 'point',
- 'pointed',
- 'pointing',
- 'points',
- 'poorly',
- 'possible',
- 'possibly',
- 'potentially',
- 'pp',
- 'pr',
- 'predominantly',
- 'present',
- 'presented',
- 'presenting',
- 'presents',
- 'presumably',
- 'previously',
- 'primarily',
- 'probably',
- 'problem',
- 'problems',
- 'promptly',
- 'proud',
- 'provided',
- 'provides',
- 'pt',
- 'put',
- 'puts',
- 'pw',
- 'py',
- 'q',
- 'qa',
- 'que',
- 'quickly',
- 'quite',
- 'qv',
- 'r',
- 'ran',
- 'rather',
- 'rd',
- 're',
- 'readily',
- 'really',
- 'reasonably',
- 'recent',
- 'recently',
- 'ref',
- 'refs',
- 'regarding',
- 'regardless',
- 'regards',
- 'related',
- 'relatively',
- 'research',
- 'reserved',
- 'respectively',
- 'resulted',
- 'resulting',
- 'results',
- 'right',
- 'ring',
- 'ro',
- 'room',
- 'rooms',
- 'round',
- 'ru',
- 'run',
- 'rw',
- 's',
- 'sa',
- 'said',
- 'same',
- 'saw',
- 'say',
- 'saying',
- 'says',
- 'sb',
- 'sc',
- 'sd',
- 'se',
- 'sec',
- 'second',
- 'secondly',
- 'seconds',
- 'section',
- 'see',
- 'seeing',
- 'seem',
- 'seemed',
- 'seeming',
- 'seems',
- 'seen',
- 'sees',
- 'self',
- 'selves',
- 'sensible',
- 'sent',
- 'serious',
- 'seriously',
- 'seven',
- 'seventy',
- 'several',
- 'sg',
- 'sh',
- 'shall',
- "shan't",
- 'shant',
- 'she',
- "she'd",
- "she'll",
- "she's",
- 'shed',
- 'shell',
- 'shes',
- 'should',
- "should've",
- 'shouldn',
- "shouldn't",
- 'shouldnt',
- 'show',
- 'showed',
- 'showing',
- 'shown',
- 'showns',
- 'shows',
- 'si',
- 'side',
- 'sides',
- 'significant',
- 'significantly',
- 'similar',
- 'similarly',
- 'since',
- 'sincere',
- 'site',
- 'six',
- 'sixty',
- 'sj',
- 'sk',
- 'sl',
- 'slightly',
- 'sm',
- 'small',
- 'smaller',
- 'smallest',
- 'sn',
- 'so',
- 'some',
- 'somebody',
- 'someday',
- 'somehow',
- 'someone',
- 'somethan',
- 'something',
- 'sometime',
- 'sometimes',
- 'somewhat',
- 'somewhere',
- 'soon',
- 'sorry',
- 'specifically',
- 'specified',
- 'specify',
- 'specifying',
- 'sr',
- 'st',
- 'state',
- 'states',
- 'still',
- 'stop',
- 'strongly',
- 'su',
- 'sub',
- 'substantially',
- 'successfully',
- 'such',
- 'sufficiently',
- 'suggest',
- 'sup',
- 'sure',
- 'sv',
- 'sy',
- 'system',
- 'sz',
- 't',
- "t's",
- 'take',
- 'taken',
- 'taking',
- 'tc',
- 'td',
- 'tell',
- 'ten',
- 'tends',
- 'test',
- 'text',
- 'tf',
- 'tg',
- 'th',
- 'than',
- 'thank',
- 'thanks',
- 'thanx',
- 'that',
- "that'll",
- "that's",
- "that've",
- 'thatll',
- 'thats',
- 'thatve',
- 'the',
- 'their',
- 'theirs',
- 'them',
- 'themselves',
- 'then',
- 'thence',
- 'there',
- "there'd",
- "there'll",
- "there're",
- "there's",
- "there've",
- 'thereafter',
- 'thereby',
- 'thered',
- 'therefore',
- 'therein',
- 'therell',
- 'thereof',
- 'therere',
- 'theres',
- 'thereto',
- 'thereupon',
- 'thereve',
- 'these',
- 'they',
- "they'd",
- "they'll",
- "they're",
- "they've",
- 'theyd',
- 'theyll',
- 'theyre',
- 'theyve',
- 'thick',
- 'thin',
- 'thing',
- 'things',
- 'think',
- 'thinks',
- 'third',
- 'thirty',
- 'this',
- 'thorough',
- 'thoroughly',
- 'those',
- 'thou',
- 'though',
- 'thoughh',
- 'thought',
- 'thoughts',
- 'thousand',
- 'three',
- 'throug',
- 'through',
- 'throughout',
- 'thru',
- 'thus',
- 'til',
- 'till',
- 'tip',
- 'tis',
- 'tj',
- 'tk',
- 'tm',
- 'tn',
- 'to',
- 'today',
- 'together',
- 'too',
- 'took',
- 'top',
- 'toward',
- 'towards',
- 'tp',
- 'tr',
- 'tried',
- 'tries',
- 'trillion',
- 'truly',
- 'try',
- 'trying',
- 'ts',
- 'tt',
- 'turn',
- 'turned',
- 'turning',
- 'turns',
- 'tv',
- 'tw',
- 'twas',
- 'twelve',
- 'twenty',
- 'twice',
- 'two',
- 'tz',
- 'u',
- 'ua',
- 'ug',
- 'uk',
- 'um',
- 'un',
- 'under',
- 'underneath',
- 'undoing',
- 'unfortunately',
- 'unless',
- 'unlike',
- 'unlikely',
- 'until',
- 'unto',
- 'up',
- 'upon',
- 'ups',
- 'upwards',
- 'us',
- 'use',
- 'used',
- 'useful',
- 'usefully',
- 'usefulness',
- 'uses',
- 'using',
- 'usually',
- 'uucp',
- 'uy',
- 'uz',
- 'v',
- 'va',
- 'value',
- 'various',
- 'vc',
- 've',
- 'versus',
- 'very',
- 'vg',
- 'vi',
- 'via',
- 'viz',
- 'vn',
- 'vol',
- 'vols',
- 'vs',
- 'vu',
- 'w',
- 'want',
- 'wanted',
- 'wanting',
- 'wants',
- 'was',
- 'wasn',
- "wasn't",
- 'wasnt',
- 'way',
- 'ways',
- 'we',
- "we'd",
- "we'll",
- "we're",
- "we've",
- 'web',
- 'webpage',
- 'website',
- 'wed',
- 'welcome',
- 'well',
- 'wells',
- 'went',
- 'were',
- 'weren',
- "weren't",
- 'werent',
- 'weve',
- 'wf',
- 'what',
- "what'd",
- "what'll",
- "what's",
- "what've",
- 'whatever',
- 'whatll',
- 'whats',
- 'whatve',
- 'when',
- "when'd",
- "when'll",
- "when's",
- 'whence',
- 'whenever',
- 'where',
- "where'd",
- "where'll",
- "where's",
- 'whereafter',
- 'whereas',
- 'whereby',
- 'wherein',
- 'wheres',
- 'whereupon',
- 'wherever',
- 'whether',
- 'which',
- 'whichever',
- 'while',
- 'whilst',
- 'whim',
- 'whither',
- 'who',
- "who'd",
- "who'll",
- "who's",
- 'whod',
- 'whoever',
- 'whole',
- 'wholl',
- 'whom',
- 'whomever',
- 'whos',
- 'whose',
- 'why',
- "why'd",
- "why'll",
- "why's",
- 'widely',
- 'width',
- 'will',
- 'willing',
- 'wish',
- 'with',
- 'within',
- 'without',
- 'won',
- "won't",
- 'wonder',
- 'wont',
- 'words',
- 'work',
- 'worked',
- 'working',
- 'works',
- 'world',
- 'would',
- "would've",
- 'wouldn',
- "wouldn't",
- 'wouldnt',
- 'ws',
- 'www',
- 'x',
- 'y',
- 'ye',
- 'year',
- 'years',
- 'yes',
- 'yet',
- 'you',
- "you'd",
- "you'll",
- "you're",
- "you've",
- 'youd',
- 'youll',
- 'young',
- 'younger',
- 'youngest',
- 'your',
- 'youre',
- 'yours',
- 'yourself',
- 'yourselves',
- 'youve',
- 'yt',
- 'yu',
- 'z',
- 'za',
- 'zero',
- 'zm',
- 'zr',
- ],
- eo: [
- 'adiaŭ',
- 'ajn',
- 'al',
- 'ankoraŭ',
- 'antaŭ',
- 'aŭ',
- 'bonan',
- 'bonvole',
- 'bonvolu',
- 'bv',
- 'ci',
- 'cia',
- 'cian',
- 'cin',
- 'd-ro',
- 'da',
- 'de',
- 'dek',
- 'deka',
- 'do',
- "doktor'",
- 'doktoro',
- 'du',
- 'dua',
- 'dum',
- 'eble',
- 'ekz',
- 'ekzemple',
- 'en',
- 'estas',
- 'estis',
- 'estos',
- 'estu',
- 'estus',
- 'eĉ',
- 'f-no',
- 'feliĉan',
- 'for',
- 'fraŭlino',
- 'ha',
- 'havas',
- 'havis',
- 'havos',
- 'havu',
- 'havus',
- 'he',
- 'ho',
- 'hu',
- 'ili',
- 'ilia',
- 'ilian',
- 'ilin',
- 'inter',
- 'io',
- 'ion',
- 'iu',
- 'iujn',
- 'iun',
- 'ja',
- 'jam',
- 'je',
- 'jes',
- 'k',
- 'kaj',
- 'ke',
- 'kio',
- 'kion',
- 'kiu',
- 'kiujn',
- 'kiun',
- 'kvankam',
- 'kvar',
- 'kvara',
- 'kvazaŭ',
- 'kvin',
- 'kvina',
- 'la',
- 'li',
- 'lia',
- 'lian',
- 'lin',
- 'malantaŭ',
- 'male',
- 'malgraŭ',
- 'mem',
- 'mi',
- 'mia',
- 'mian',
- 'min',
- 'minus',
- 'naŭ',
- 'naŭa',
- 'ne',
- 'nek',
- 'nenio',
- 'nenion',
- 'neniu',
- 'neniun',
- 'nepre',
- 'ni',
- 'nia',
- 'nian',
- 'nin',
- 'nu',
- 'nun',
- 'nur',
- 'ok',
- 'oka',
- 'oni',
- 'onia',
- 'onian',
- 'onin',
- 'plej',
- 'pli',
- 'plu',
- 'plus',
- 'por',
- 'post',
- 'preter',
- 's-no',
- 's-ro',
- 'se',
- 'sed',
- 'sep',
- 'sepa',
- 'ses',
- 'sesa',
- 'si',
- 'sia',
- 'sian',
- 'sin',
- "sinjor'",
- 'sinjorino',
- 'sinjoro',
- 'sub',
- 'super',
- 'supren',
- 'sur',
- 'tamen',
- 'tio',
- 'tion',
- 'tiu',
- 'tiujn',
- 'tiun',
- 'tra',
- 'tri',
- 'tria',
- 'tuj',
- 'tute',
- 'unu',
- 'unua',
- 've',
- 'verŝajne',
- 'vi',
- 'via',
- 'vian',
- 'vin',
- 'ĉi',
- 'ĉio',
- 'ĉion',
- 'ĉiu',
- 'ĉiujn',
- 'ĉiun',
- 'ĉu',
- 'ĝi',
- 'ĝia',
- 'ĝian',
- 'ĝin',
- 'ĝis',
- 'ĵus',
- 'ŝi',
- 'ŝia',
- 'ŝin',
- ],
- et: [
- 'aga',
- 'ei',
- 'et',
- 'ja',
- 'jah',
- 'kas',
- 'kui',
- 'kõik',
- 'ma',
- 'me',
- 'mida',
- 'midagi',
- 'mind',
- 'minu',
- 'mis',
- 'mu',
- 'mul',
- 'mulle',
- 'nad',
- 'nii',
- 'oled',
- 'olen',
- 'oli',
- 'oma',
- 'on',
- 'pole',
- 'sa',
- 'seda',
- 'see',
- 'selle',
- 'siin',
- 'siis',
- 'ta',
- 'te',
- 'ära',
- ],
- fi: [
- 'aiemmin',
- 'aika',
- 'aikaa',
- 'aikaan',
- 'aikaisemmin',
- 'aikaisin',
- 'aikajen',
- 'aikana',
- 'aikoina',
- 'aikoo',
- 'aikovat',
- 'aina',
- 'ainakaan',
- 'ainakin',
- 'ainoa',
- 'ainoat',
- 'aiomme',
- 'aion',
- 'aiotte',
- 'aist',
- 'aivan',
- 'ajan',
- 'alas',
- 'alemmas',
- 'alkuisin',
- 'alkuun',
- 'alla',
- 'alle',
- 'aloitamme',
- 'aloitan',
- 'aloitat',
- 'aloitatte',
- 'aloitattivat',
- 'aloitettava',
- 'aloitettevaksi',
- 'aloitettu',
- 'aloitimme',
- 'aloitin',
- 'aloitit',
- 'aloititte',
- 'aloittaa',
- 'aloittamatta',
- 'aloitti',
- 'aloittivat',
- 'alta',
- 'aluksi',
- 'alussa',
- 'alusta',
- 'annettavaksi',
- 'annetteva',
- 'annettu',
- 'ansiosta',
- 'antaa',
- 'antamatta',
- 'antoi',
- 'aoua',
- 'apu',
- 'asia',
- 'asiaa',
- 'asian',
- 'asiasta',
- 'asiat',
- 'asioiden',
- 'asioihin',
- 'asioita',
- 'asti',
- 'avuksi',
- 'avulla',
- 'avun',
- 'avutta',
- 'edelle',
- 'edelleen',
- 'edellä',
- 'edeltä',
- 'edemmäs',
- 'edes',
- 'edessä',
- 'edestä',
- 'ehkä',
- 'ei',
- 'eikä',
- 'eilen',
- 'eivät',
- 'eli',
- 'ellei',
- 'elleivät',
- 'ellemme',
- 'ellen',
- 'ellet',
- 'ellette',
- 'emme',
- 'en',
- 'enemmän',
- 'eniten',
- 'ennen',
- 'ensi',
- 'ensimmäinen',
- 'ensimmäiseksi',
- 'ensimmäisen',
- 'ensimmäisenä',
- 'ensimmäiset',
- 'ensimmäisiksi',
- 'ensimmäisinä',
- 'ensimmäisiä',
- 'ensimmäistä',
- 'ensin',
- 'entinen',
- 'entisen',
- 'entisiä',
- 'entisten',
- 'entistä',
- 'enää',
- 'eri',
- 'erittäin',
- 'erityisesti',
- 'eräiden',
- 'eräs',
- 'eräät',
- 'esi',
- 'esiin',
- 'esillä',
- 'esimerkiksi',
- 'et',
- 'eteen',
- 'etenkin',
- 'etessa',
- 'ette',
- 'ettei',
- 'että',
- 'haikki',
- 'halua',
- 'haluaa',
- 'haluamatta',
- 'haluamme',
- 'haluan',
- 'haluat',
- 'haluatte',
- 'haluavat',
- 'halunnut',
- 'halusi',
- 'halusimme',
- 'halusin',
- 'halusit',
- 'halusitte',
- 'halusivat',
- 'halutessa',
- 'haluton',
- 'he',
- 'hei',
- 'heidän',
- 'heidät',
- 'heihin',
- 'heille',
- 'heillä',
- 'heiltä',
- 'heissä',
- 'heistä',
- 'heitä',
- 'helposti',
- 'heti',
- 'hetkellä',
- 'hieman',
- 'hitaasti',
- 'hoikein',
- 'huolimatta',
- 'huomenna',
- 'hyvien',
- 'hyviin',
- 'hyviksi',
- 'hyville',
- 'hyviltä',
- 'hyvin',
- 'hyvinä',
- 'hyvissä',
- 'hyvistä',
- 'hyviä',
- 'hyvä',
- 'hyvät',
- 'hyvää',
- 'hän',
- 'häneen',
- 'hänelle',
- 'hänellä',
- 'häneltä',
- 'hänen',
- 'hänessä',
- 'hänestä',
- 'hänet',
- 'häntä',
- 'ihan',
- 'ilman',
- 'ilmeisesti',
- 'itse',
- 'itsensä',
- 'itseään',
- 'ja',
- 'jo',
- 'johon',
- 'joiden',
- 'joihin',
- 'joiksi',
- 'joilla',
- 'joille',
- 'joilta',
- 'joina',
- 'joissa',
- 'joista',
- 'joita',
- 'joka',
- 'jokainen',
- 'jokin',
- 'joko',
- 'joksi',
- 'joku',
- 'jolla',
- 'jolle',
- 'jolloin',
- 'jolta',
- 'jompikumpi',
- 'jona',
- 'jonka',
- 'jonkin',
- 'jonne',
- 'joo',
- 'jopa',
- 'jos',
- 'joskus',
- 'jossa',
- 'josta',
- 'jota',
- 'jotain',
- 'joten',
- 'jotenkin',
- 'jotenkuten',
- 'jotka',
- 'jotta',
- 'jouduimme',
- 'jouduin',
- 'jouduit',
- 'jouduitte',
- 'joudumme',
- 'joudun',
- 'joudutte',
- 'joukkoon',
- 'joukossa',
- 'joukosta',
- 'joutua',
- 'joutui',
- 'joutuivat',
- 'joutumaan',
- 'joutuu',
- 'joutuvat',
- 'juuri',
- 'jälkeen',
- 'jälleen',
- 'jää',
- 'kahdeksan',
- 'kahdeksannen',
- 'kahdella',
- 'kahdelle',
- 'kahdelta',
- 'kahden',
- 'kahdessa',
- 'kahdesta',
- 'kahta',
- 'kahteen',
- 'kai',
- 'kaiken',
- 'kaikille',
- 'kaikilta',
- 'kaikkea',
- 'kaikki',
- 'kaikkia',
- 'kaikkiaan',
- 'kaikkialla',
- 'kaikkialle',
- 'kaikkialta',
- 'kaikkien',
- 'kaikkin',
- 'kaksi',
- 'kannalta',
- 'kannattaa',
- 'kanssa',
- 'kanssaan',
- 'kanssamme',
- 'kanssani',
- 'kanssanne',
- 'kanssasi',
- 'kauan',
- 'kauemmas',
- 'kaukana',
- 'kautta',
- 'kehen',
- 'keiden',
- 'keihin',
- 'keiksi',
- 'keille',
- 'keillä',
- 'keiltä',
- 'keinä',
- 'keissä',
- 'keistä',
- 'keitten',
- 'keittä',
- 'keitä',
- 'keneen',
- 'keneksi',
- 'kenelle',
- 'kenellä',
- 'keneltä',
- 'kenen',
- 'kenenä',
- 'kenessä',
- 'kenestä',
- 'kenet',
- 'kenettä',
- 'kennessästä',
- 'kenties',
- 'kerran',
- 'kerta',
- 'kertaa',
- 'keskellä',
- 'kesken',
- 'keskimäärin',
- 'ketkä',
- 'ketä',
- 'kiitos',
- 'kohti',
- 'koko',
- 'kokonaan',
- 'kolmas',
- 'kolme',
- 'kolmen',
- 'kolmesti',
- 'koska',
- 'koskaan',
- 'kovin',
- 'kuin',
- 'kuinka',
- 'kuinkan',
- 'kuitenkaan',
- 'kuitenkin',
- 'kuka',
- 'kukaan',
- 'kukin',
- 'kukka',
- 'kumpainen',
- 'kumpainenkaan',
- 'kumpi',
- 'kumpikaan',
- 'kumpikin',
- 'kun',
- 'kuten',
- 'kuuden',
- 'kuusi',
- 'kuutta',
- 'kylliksi',
- 'kyllä',
- 'kymmenen',
- 'kyse',
- 'liian',
- 'liki',
- 'lisäksi',
- 'lisää',
- 'lla',
- 'luo',
- 'luona',
- 'lähekkäin',
- 'lähelle',
- 'lähellä',
- 'läheltä',
- 'lähemmäs',
- 'lähes',
- 'lähinnä',
- 'lähtien',
- 'läpi',
- 'mahdollisimman',
- 'mahdollista',
- 'me',
- 'meidän',
- 'meidät',
- 'meihin',
- 'meille',
- 'meillä',
- 'meiltä',
- 'meissä',
- 'meistä',
- 'meitä',
- 'melkein',
- 'melko',
- 'menee',
- 'meneet',
- 'menemme',
- 'menen',
- 'menet',
- 'menette',
- 'menevät',
- 'meni',
- 'menimme',
- 'menin',
- 'menit',
- 'menivät',
- 'mennessä',
- 'mennyt',
- 'menossa',
- 'mihin',
- 'mikin',
- 'miksi',
- 'mikä',
- 'mikäli',
- 'mikään',
- 'mille',
- 'milloin',
- 'milloinkan',
- 'millä',
- 'miltä',
- 'minkä',
- 'minne',
- 'minua',
- 'minulla',
- 'minulle',
- 'minulta',
- 'minun',
- 'minussa',
- 'minusta',
- 'minut',
- 'minuun',
- 'minä',
- 'missä',
- 'mistä',
- 'miten',
- 'mitkä',
- 'mitä',
- 'mitään',
- 'moi',
- 'molemmat',
- 'mones',
- 'monesti',
- 'monet',
- 'moni',
- 'moniaalla',
- 'moniaalle',
- 'moniaalta',
- 'monta',
- 'muassa',
- 'muiden',
- 'muita',
- 'muka',
- 'mukaan',
- 'mukaansa',
- 'mukana',
- 'mutta',
- 'muu',
- 'muualla',
- 'muualle',
- 'muualta',
- 'muuanne',
- 'muulloin',
- 'muun',
- 'muut',
- 'muuta',
- 'muutama',
- 'muutaman',
- 'muuten',
- 'myöhemmin',
- 'myös',
- 'myöskin',
- 'myöskään',
- 'myötä',
- 'ne',
- 'neljä',
- 'neljän',
- 'neljää',
- 'niiden',
- 'niihin',
- 'niiksi',
- 'niille',
- 'niillä',
- 'niiltä',
- 'niin',
- 'niinä',
- 'niissä',
- 'niistä',
- 'niitä',
- 'noiden',
- 'noihin',
- 'noiksi',
- 'noilla',
- 'noille',
- 'noilta',
- 'noin',
- 'noina',
- 'noissa',
- 'noista',
- 'noita',
- 'nopeammin',
- 'nopeasti',
- 'nopeiten',
- 'nro',
- 'nuo',
- 'nyt',
- 'näiden',
- 'näihin',
- 'näiksi',
- 'näille',
- 'näillä',
- 'näiltä',
- 'näin',
- 'näinä',
- 'näissä',
- 'näissähin',
- 'näissälle',
- 'näissältä',
- 'näissästä',
- 'näistä',
- 'näitä',
- 'nämä',
- 'ohi',
- 'oikea',
- 'oikealla',
- 'oikein',
- 'ole',
- 'olemme',
- 'olen',
- 'olet',
- 'olette',
- 'oleva',
- 'olevan',
- 'olevat',
- 'oli',
- 'olimme',
- 'olin',
- 'olisi',
- 'olisimme',
- 'olisin',
- 'olisit',
- 'olisitte',
- 'olisivat',
- 'olit',
- 'olitte',
- 'olivat',
- 'olla',
- 'olleet',
- 'olli',
- 'ollut',
- 'oma',
- 'omaa',
- 'omaan',
- 'omaksi',
- 'omalle',
- 'omalta',
- 'oman',
- 'omassa',
- 'omat',
- 'omia',
- 'omien',
- 'omiin',
- 'omiksi',
- 'omille',
- 'omilta',
- 'omissa',
- 'omista',
- 'on',
- 'onkin',
- 'onko',
- 'ovat',
- 'paikoittain',
- 'paitsi',
- 'pakosti',
- 'paljon',
- 'paremmin',
- 'parempi',
- 'parhaillaan',
- 'parhaiten',
- 'perusteella',
- 'peräti',
- 'pian',
- 'pieneen',
- 'pieneksi',
- 'pienelle',
- 'pienellä',
- 'pieneltä',
- 'pienempi',
- 'pienestä',
- 'pieni',
- 'pienin',
- 'poikki',
- 'puolesta',
- 'puolestaan',
- 'päälle',
- 'runsaasti',
- 'saakka',
- 'sadam',
- 'sama',
- 'samaa',
- 'samaan',
- 'samalla',
- 'samallalta',
- 'samallassa',
- 'samallasta',
- 'saman',
- 'samat',
- 'samoin',
- 'sata',
- 'sataa',
- 'satojen',
- 'se',
- 'seitsemän',
- 'sekä',
- 'sen',
- 'seuraavat',
- 'siellä',
- 'sieltä',
- 'siihen',
- 'siinä',
- 'siis',
- 'siitä',
- 'sijaan',
- 'siksi',
- 'sille',
- 'silloin',
- 'sillä',
- 'silti',
- 'siltä',
- 'sinne',
- 'sinua',
- 'sinulla',
- 'sinulle',
- 'sinulta',
- 'sinun',
- 'sinussa',
- 'sinusta',
- 'sinut',
- 'sinuun',
- 'sinä',
- 'sisäkkäin',
- 'sisällä',
- 'siten',
- 'sitten',
- 'sitä',
- 'ssa',
- 'sta',
- 'suoraan',
- 'suuntaan',
- 'suuren',
- 'suuret',
- 'suuri',
- 'suuria',
- 'suurin',
- 'suurten',
- 'taa',
- 'taas',
- 'taemmas',
- 'tahansa',
- 'tai',
- 'takaa',
- 'takaisin',
- 'takana',
- 'takia',
- 'tallä',
- 'tapauksessa',
- 'tarpeeksi',
- 'tavalla',
- 'tavoitteena',
- 'te',
- 'teidän',
- 'teidät',
- 'teihin',
- 'teille',
- 'teillä',
- 'teiltä',
- 'teissä',
- 'teistä',
- 'teitä',
- 'tietysti',
- 'todella',
- 'toinen',
- 'toisaalla',
- 'toisaalle',
- 'toisaalta',
- 'toiseen',
- 'toiseksi',
- 'toisella',
- 'toiselle',
- 'toiselta',
- 'toisemme',
- 'toisen',
- 'toisensa',
- 'toisessa',
- 'toisesta',
- 'toista',
- 'toistaiseksi',
- 'toki',
- 'tosin',
- 'tuhannen',
- 'tuhat',
- 'tule',
- 'tulee',
- 'tulemme',
- 'tulen',
- 'tulet',
- 'tulette',
- 'tulevat',
- 'tulimme',
- 'tulin',
- 'tulisi',
- 'tulisimme',
- 'tulisin',
- 'tulisit',
- 'tulisitte',
- 'tulisivat',
- 'tulit',
- 'tulitte',
- 'tulivat',
- 'tulla',
- 'tulleet',
- 'tullut',
- 'tuntuu',
- 'tuo',
- 'tuohon',
- 'tuoksi',
- 'tuolla',
- 'tuolle',
- 'tuolloin',
- 'tuolta',
- 'tuon',
- 'tuona',
- 'tuonne',
- 'tuossa',
- 'tuosta',
- 'tuota',
- 'tuotä',
- 'tuskin',
- 'tykö',
- 'tähän',
- 'täksi',
- 'tälle',
- 'tällä',
- 'tällöin',
- 'tältä',
- 'tämä',
- 'tämän',
- 'tänne',
- 'tänä',
- 'tänään',
- 'tässä',
- 'tästä',
- 'täten',
- 'tätä',
- 'täysin',
- 'täytyvät',
- 'täytyy',
- 'täällä',
- 'täältä',
- 'ulkopuolella',
- 'usea',
- 'useasti',
- 'useimmiten',
- 'usein',
- 'useita',
- 'uudeksi',
- 'uudelleen',
- 'uuden',
- 'uudet',
- 'uusi',
- 'uusia',
- 'uusien',
- 'uusinta',
- 'uuteen',
- 'uutta',
- 'vaan',
- 'vahemmän',
- 'vai',
- 'vaiheessa',
- 'vaikea',
- 'vaikean',
- 'vaikeat',
- 'vaikeilla',
- 'vaikeille',
- 'vaikeilta',
- 'vaikeissa',
- 'vaikeista',
- 'vaikka',
- 'vain',
- 'varmasti',
- 'varsin',
- 'varsinkin',
- 'varten',
- 'vasen',
- 'vasenmalla',
- 'vasta',
- 'vastaan',
- 'vastakkain',
- 'vastan',
- 'verran',
- 'vielä',
- 'vierekkäin',
- 'vieressä',
- 'vieri',
- 'viiden',
- 'viime',
- 'viimeinen',
- 'viimeisen',
- 'viimeksi',
- 'viisi',
- 'voi',
- 'voidaan',
- 'voimme',
- 'voin',
- 'voisi',
- 'voit',
- 'voitte',
- 'voivat',
- 'vuoden',
- 'vuoksi',
- 'vuosi',
- 'vuosien',
- 'vuosina',
- 'vuotta',
- 'vähemmän',
- 'vähintään',
- 'vähiten',
- 'vähän',
- 'välillä',
- 'yhdeksän',
- 'yhden',
- 'yhdessä',
- 'yhteen',
- 'yhteensä',
- 'yhteydessä',
- 'yhteyteen',
- 'yhtä',
- 'yhtäälle',
- 'yhtäällä',
- 'yhtäältä',
- 'yhtään',
- 'yhä',
- 'yksi',
- 'yksin',
- 'yksittäin',
- 'yleensä',
- 'ylemmäs',
- 'yli',
- 'ylös',
- 'ympäri',
- 'älköön',
- 'älä',
- ],
- fr: [
- 'a',
- 'abord',
- 'absolument',
- 'afin',
- 'ah',
- 'ai',
- 'aie',
- 'aient',
- 'aies',
- 'ailleurs',
- 'ainsi',
- 'ait',
- 'allaient',
- 'allo',
- 'allons',
- 'allô',
- 'alors',
- 'anterieur',
- 'anterieure',
- 'anterieures',
- 'apres',
- 'après',
- 'as',
- 'assez',
- 'attendu',
- 'au',
- 'aucun',
- 'aucune',
- 'aucuns',
- 'aujourd',
- "aujourd'hui",
- 'aupres',
- 'auquel',
- 'aura',
- 'aurai',
- 'auraient',
- 'aurais',
- 'aurait',
- 'auras',
- 'aurez',
- 'auriez',
- 'aurions',
- 'aurons',
- 'auront',
- 'aussi',
- 'autant',
- 'autre',
- 'autrefois',
- 'autrement',
- 'autres',
- 'autrui',
- 'aux',
- 'auxquelles',
- 'auxquels',
- 'avaient',
- 'avais',
- 'avait',
- 'avant',
- 'avec',
- 'avez',
- 'aviez',
- 'avions',
- 'avoir',
- 'avons',
- 'ayant',
- 'ayez',
- 'ayons',
- 'b',
- 'bah',
- 'bas',
- 'basee',
- 'bat',
- 'beau',
- 'beaucoup',
- 'bien',
- 'bigre',
- 'bon',
- 'boum',
- 'bravo',
- 'brrr',
- 'c',
- 'car',
- 'ce',
- 'ceci',
- 'cela',
- 'celle',
- 'celle-ci',
- 'celle-là',
- 'celles',
- 'celles-ci',
- 'celles-là',
- 'celui',
- 'celui-ci',
- 'celui-là',
- 'celà',
- 'cent',
- 'cependant',
- 'certain',
- 'certaine',
- 'certaines',
- 'certains',
- 'certes',
- 'ces',
- 'cet',
- 'cette',
- 'ceux',
- 'ceux-ci',
- 'ceux-là',
- 'chacun',
- 'chacune',
- 'chaque',
- 'cher',
- 'chers',
- 'chez',
- 'chiche',
- 'chut',
- 'chère',
- 'chères',
- 'ci',
- 'cinq',
- 'cinquantaine',
- 'cinquante',
- 'cinquantième',
- 'cinquième',
- 'clac',
- 'clic',
- 'combien',
- 'comme',
- 'comment',
- 'comparable',
- 'comparables',
- 'compris',
- 'concernant',
- 'contre',
- 'couic',
- 'crac',
- 'd',
- 'da',
- 'dans',
- 'de',
- 'debout',
- 'dedans',
- 'dehors',
- 'deja',
- 'delà',
- 'depuis',
- 'dernier',
- 'derniere',
- 'derriere',
- 'derrière',
- 'des',
- 'desormais',
- 'desquelles',
- 'desquels',
- 'dessous',
- 'dessus',
- 'deux',
- 'deuxième',
- 'deuxièmement',
- 'devant',
- 'devers',
- 'devra',
- 'devrait',
- 'different',
- 'differentes',
- 'differents',
- 'différent',
- 'différente',
- 'différentes',
- 'différents',
- 'dire',
- 'directe',
- 'directement',
- 'dit',
- 'dite',
- 'dits',
- 'divers',
- 'diverse',
- 'diverses',
- 'dix',
- 'dix-huit',
- 'dix-neuf',
- 'dix-sept',
- 'dixième',
- 'doit',
- 'doivent',
- 'donc',
- 'dont',
- 'dos',
- 'douze',
- 'douzième',
- 'dring',
- 'droite',
- 'du',
- 'duquel',
- 'durant',
- 'dès',
- 'début',
- 'désormais',
- 'e',
- 'effet',
- 'egale',
- 'egalement',
- 'egales',
- 'eh',
- 'elle',
- 'elle-même',
- 'elles',
- 'elles-mêmes',
- 'en',
- 'encore',
- 'enfin',
- 'entre',
- 'envers',
- 'environ',
- 'es',
- 'essai',
- 'est',
- 'et',
- 'etant',
- 'etc',
- 'etre',
- 'eu',
- 'eue',
- 'eues',
- 'euh',
- 'eurent',
- 'eus',
- 'eusse',
- 'eussent',
- 'eusses',
- 'eussiez',
- 'eussions',
- 'eut',
- 'eux',
- 'eux-mêmes',
- 'exactement',
- 'excepté',
- 'extenso',
- 'exterieur',
- 'eûmes',
- 'eût',
- 'eûtes',
- 'f',
- 'fais',
- 'faisaient',
- 'faisant',
- 'fait',
- 'faites',
- 'façon',
- 'feront',
- 'fi',
- 'flac',
- 'floc',
- 'fois',
- 'font',
- 'force',
- 'furent',
- 'fus',
- 'fusse',
- 'fussent',
- 'fusses',
- 'fussiez',
- 'fussions',
- 'fut',
- 'fûmes',
- 'fût',
- 'fûtes',
- 'g',
- 'gens',
- 'h',
- 'ha',
- 'haut',
- 'hein',
- 'hem',
- 'hep',
- 'hi',
- 'ho',
- 'holà',
- 'hop',
- 'hormis',
- 'hors',
- 'hou',
- 'houp',
- 'hue',
- 'hui',
- 'huit',
- 'huitième',
- 'hum',
- 'hurrah',
- 'hé',
- 'hélas',
- 'i',
- 'ici',
- 'il',
- 'ils',
- 'importe',
- 'j',
- 'je',
- 'jusqu',
- 'jusque',
- 'juste',
- 'k',
- 'l',
- 'la',
- 'laisser',
- 'laquelle',
- 'las',
- 'le',
- 'lequel',
- 'les',
- 'lesquelles',
- 'lesquels',
- 'leur',
- 'leurs',
- 'longtemps',
- 'lors',
- 'lorsque',
- 'lui',
- 'lui-meme',
- 'lui-même',
- 'là',
- 'lès',
- 'm',
- 'ma',
- 'maint',
- 'maintenant',
- 'mais',
- 'malgre',
- 'malgré',
- 'maximale',
- 'me',
- 'meme',
- 'memes',
- 'merci',
- 'mes',
- 'mien',
- 'mienne',
- 'miennes',
- 'miens',
- 'mille',
- 'mince',
- 'mine',
- 'minimale',
- 'moi',
- 'moi-meme',
- 'moi-même',
- 'moindres',
- 'moins',
- 'mon',
- 'mot',
- 'moyennant',
- 'multiple',
- 'multiples',
- 'même',
- 'mêmes',
- 'n',
- 'na',
- 'naturel',
- 'naturelle',
- 'naturelles',
- 'ne',
- 'neanmoins',
- 'necessaire',
- 'necessairement',
- 'neuf',
- 'neuvième',
- 'ni',
- 'nombreuses',
- 'nombreux',
- 'nommés',
- 'non',
- 'nos',
- 'notamment',
- 'notre',
- 'nous',
- 'nous-mêmes',
- 'nouveau',
- 'nouveaux',
- 'nul',
- 'néanmoins',
- 'nôtre',
- 'nôtres',
- 'o',
- 'oh',
- 'ohé',
- 'ollé',
- 'olé',
- 'on',
- 'ont',
- 'onze',
- 'onzième',
- 'ore',
- 'ou',
- 'ouf',
- 'ouias',
- 'oust',
- 'ouste',
- 'outre',
- 'ouvert',
- 'ouverte',
- 'ouverts',
- 'o|',
- 'où',
- 'p',
- 'paf',
- 'pan',
- 'par',
- 'parce',
- 'parfois',
- 'parle',
- 'parlent',
- 'parler',
- 'parmi',
- 'parole',
- 'parseme',
- 'partant',
- 'particulier',
- 'particulière',
- 'particulièrement',
- 'pas',
- 'passé',
- 'pendant',
- 'pense',
- 'permet',
- 'personne',
- 'personnes',
- 'peu',
- 'peut',
- 'peuvent',
- 'peux',
- 'pff',
- 'pfft',
- 'pfut',
- 'pif',
- 'pire',
- 'pièce',
- 'plein',
- 'plouf',
- 'plupart',
- 'plus',
- 'plusieurs',
- 'plutôt',
- 'possessif',
- 'possessifs',
- 'possible',
- 'possibles',
- 'pouah',
- 'pour',
- 'pourquoi',
- 'pourrais',
- 'pourrait',
- 'pouvait',
- 'prealable',
- 'precisement',
- 'premier',
- 'première',
- 'premièrement',
- 'pres',
- 'probable',
- 'probante',
- 'procedant',
- 'proche',
- 'près',
- 'psitt',
- 'pu',
- 'puis',
- 'puisque',
- 'pur',
- 'pure',
- 'q',
- 'qu',
- 'quand',
- 'quant',
- 'quant-à-soi',
- 'quanta',
- 'quarante',
- 'quatorze',
- 'quatre',
- 'quatre-vingt',
- 'quatrième',
- 'quatrièmement',
- 'que',
- 'quel',
- 'quelconque',
- 'quelle',
- 'quelles',
- "quelqu'un",
- 'quelque',
- 'quelques',
- 'quels',
- 'qui',
- 'quiconque',
- 'quinze',
- 'quoi',
- 'quoique',
- 'r',
- 'rare',
- 'rarement',
- 'rares',
- 'relative',
- 'relativement',
- 'remarquable',
- 'rend',
- 'rendre',
- 'restant',
- 'reste',
- 'restent',
- 'restrictif',
- 'retour',
- 'revoici',
- 'revoilà',
- 'rien',
- 's',
- 'sa',
- 'sacrebleu',
- 'sait',
- 'sans',
- 'sapristi',
- 'sauf',
- 'se',
- 'sein',
- 'seize',
- 'selon',
- 'semblable',
- 'semblaient',
- 'semble',
- 'semblent',
- 'sent',
- 'sept',
- 'septième',
- 'sera',
- 'serai',
- 'seraient',
- 'serais',
- 'serait',
- 'seras',
- 'serez',
- 'seriez',
- 'serions',
- 'serons',
- 'seront',
- 'ses',
- 'seul',
- 'seule',
- 'seulement',
- 'si',
- 'sien',
- 'sienne',
- 'siennes',
- 'siens',
- 'sinon',
- 'six',
- 'sixième',
- 'soi',
- 'soi-même',
- 'soient',
- 'sois',
- 'soit',
- 'soixante',
- 'sommes',
- 'son',
- 'sont',
- 'sous',
- 'souvent',
- 'soyez',
- 'soyons',
- 'specifique',
- 'specifiques',
- 'speculatif',
- 'stop',
- 'strictement',
- 'subtiles',
- 'suffisant',
- 'suffisante',
- 'suffit',
- 'suis',
- 'suit',
- 'suivant',
- 'suivante',
- 'suivantes',
- 'suivants',
- 'suivre',
- 'sujet',
- 'superpose',
- 'sur',
- 'surtout',
- 't',
- 'ta',
- 'tac',
- 'tandis',
- 'tant',
- 'tardive',
- 'te',
- 'tel',
- 'telle',
- 'tellement',
- 'telles',
- 'tels',
- 'tenant',
- 'tend',
- 'tenir',
- 'tente',
- 'tes',
- 'tic',
- 'tien',
- 'tienne',
- 'tiennes',
- 'tiens',
- 'toc',
- 'toi',
- 'toi-même',
- 'ton',
- 'touchant',
- 'toujours',
- 'tous',
- 'tout',
- 'toute',
- 'toutefois',
- 'toutes',
- 'treize',
- 'trente',
- 'tres',
- 'trois',
- 'troisième',
- 'troisièmement',
- 'trop',
- 'très',
- 'tsoin',
- 'tsouin',
- 'tu',
- 'té',
- 'u',
- 'un',
- 'une',
- 'unes',
- 'uniformement',
- 'unique',
- 'uniques',
- 'uns',
- 'v',
- 'va',
- 'vais',
- 'valeur',
- 'vas',
- 'vers',
- 'via',
- 'vif',
- 'vifs',
- 'vingt',
- 'vivat',
- 'vive',
- 'vives',
- 'vlan',
- 'voici',
- 'voie',
- 'voient',
- 'voilà',
- 'voire',
- 'vont',
- 'vos',
- 'votre',
- 'vous',
- 'vous-mêmes',
- 'vu',
- 'vé',
- 'vôtre',
- 'vôtres',
- 'w',
- 'x',
- 'y',
- 'z',
- 'zut',
- 'à',
- 'â',
- 'ça',
- 'ès',
- 'étaient',
- 'étais',
- 'était',
- 'étant',
- 'état',
- 'étiez',
- 'étions',
- 'été',
- 'étée',
- 'étées',
- 'étés',
- 'êtes',
- 'être',
- 'ô',
- ],
- gl: [
- 'a',
- 'alí',
- 'ao',
- 'aos',
- 'aquel',
- 'aquela',
- 'aquelas',
- 'aqueles',
- 'aquilo',
- 'aquí',
- 'as',
- 'así',
- 'aínda',
- 'ben',
- 'cando',
- 'che',
- 'co',
- 'coa',
- 'coas',
- 'comigo',
- 'con',
- 'connosco',
- 'contigo',
- 'convosco',
- 'cos',
- 'cun',
- 'cunha',
- 'cunhas',
- 'cuns',
- 'da',
- 'dalgunha',
- 'dalgunhas',
- 'dalgún',
- 'dalgúns',
- 'das',
- 'de',
- 'del',
- 'dela',
- 'delas',
- 'deles',
- 'desde',
- 'deste',
- 'do',
- 'dos',
- 'dun',
- 'dunha',
- 'dunhas',
- 'duns',
- 'e',
- 'el',
- 'ela',
- 'elas',
- 'eles',
- 'en',
- 'era',
- 'eran',
- 'esa',
- 'esas',
- 'ese',
- 'eses',
- 'esta',
- 'estaba',
- 'estar',
- 'este',
- 'estes',
- 'estiven',
- 'estou',
- 'está',
- 'están',
- 'eu',
- 'facer',
- 'foi',
- 'foron',
- 'fun',
- 'había',
- 'hai',
- 'iso',
- 'isto',
- 'la',
- 'las',
- 'lle',
- 'lles',
- 'lo',
- 'los',
- 'mais',
- 'me',
- 'meu',
- 'meus',
- 'min',
- 'miña',
- 'miñas',
- 'moi',
- 'na',
- 'nas',
- 'neste',
- 'nin',
- 'no',
- 'non',
- 'nos',
- 'nosa',
- 'nosas',
- 'noso',
- 'nosos',
- 'nun',
- 'nunha',
- 'nunhas',
- 'nuns',
- 'nós',
- 'o',
- 'os',
- 'ou',
- 'para',
- 'pero',
- 'pode',
- 'pois',
- 'pola',
- 'polas',
- 'polo',
- 'polos',
- 'por',
- 'que',
- 'se',
- 'senón',
- 'ser',
- 'seu',
- 'seus',
- 'sexa',
- 'sido',
- 'sobre',
- 'súa',
- 'súas',
- 'tamén',
- 'tan',
- 'te',
- 'ten',
- 'ter',
- 'teu',
- 'teus',
- 'teñen',
- 'teño',
- 'ti',
- 'tido',
- 'tiven',
- 'tiña',
- 'túa',
- 'túas',
- 'un',
- 'unha',
- 'unhas',
- 'uns',
- 'vos',
- 'vosa',
- 'vosas',
- 'voso',
- 'vosos',
- 'vós',
- 'á',
- 'é',
- 'ó',
- 'ós',
- ],
- de: [
- 'a',
- 'ab',
- 'aber',
- 'ach',
- 'acht',
- 'achte',
- 'achten',
- 'achter',
- 'achtes',
- 'ag',
- 'alle',
- 'allein',
- 'allem',
- 'allen',
- 'aller',
- 'allerdings',
- 'alles',
- 'allgemeinen',
- 'als',
- 'also',
- 'am',
- 'an',
- 'ander',
- 'andere',
- 'anderem',
- 'anderen',
- 'anderer',
- 'anderes',
- 'anderm',
- 'andern',
- 'anderr',
- 'anders',
- 'au',
- 'auch',
- 'auf',
- 'aus',
- 'ausser',
- 'ausserdem',
- 'außer',
- 'außerdem',
- 'b',
- 'bald',
- 'bei',
- 'beide',
- 'beiden',
- 'beim',
- 'beispiel',
- 'bekannt',
- 'bereits',
- 'besonders',
- 'besser',
- 'besten',
- 'bin',
- 'bis',
- 'bisher',
- 'bist',
- 'c',
- 'd',
- 'd.h',
- 'da',
- 'dabei',
- 'dadurch',
- 'dafür',
- 'dagegen',
- 'daher',
- 'dahin',
- 'dahinter',
- 'damals',
- 'damit',
- 'danach',
- 'daneben',
- 'dank',
- 'dann',
- 'daran',
- 'darauf',
- 'daraus',
- 'darf',
- 'darfst',
- 'darin',
- 'darum',
- 'darunter',
- 'darüber',
- 'das',
- 'dasein',
- 'daselbst',
- 'dass',
- 'dasselbe',
- 'davon',
- 'davor',
- 'dazu',
- 'dazwischen',
- 'daß',
- 'dein',
- 'deine',
- 'deinem',
- 'deinen',
- 'deiner',
- 'deines',
- 'dem',
- 'dementsprechend',
- 'demgegenüber',
- 'demgemäss',
- 'demgemäß',
- 'demselben',
- 'demzufolge',
- 'den',
- 'denen',
- 'denn',
- 'denselben',
- 'der',
- 'deren',
- 'derer',
- 'derjenige',
- 'derjenigen',
- 'dermassen',
- 'dermaßen',
- 'derselbe',
- 'derselben',
- 'des',
- 'deshalb',
- 'desselben',
- 'dessen',
- 'deswegen',
- 'dich',
- 'die',
- 'diejenige',
- 'diejenigen',
- 'dies',
- 'diese',
- 'dieselbe',
- 'dieselben',
- 'diesem',
- 'diesen',
- 'dieser',
- 'dieses',
- 'dir',
- 'doch',
- 'dort',
- 'drei',
- 'drin',
- 'dritte',
- 'dritten',
- 'dritter',
- 'drittes',
- 'du',
- 'durch',
- 'durchaus',
- 'durfte',
- 'durften',
- 'dürfen',
- 'dürft',
- 'e',
- 'eben',
- 'ebenso',
- 'ehrlich',
- 'ei',
- 'ei,',
- 'eigen',
- 'eigene',
- 'eigenen',
- 'eigener',
- 'eigenes',
- 'ein',
- 'einander',
- 'eine',
- 'einem',
- 'einen',
- 'einer',
- 'eines',
- 'einig',
- 'einige',
- 'einigem',
- 'einigen',
- 'einiger',
- 'einiges',
- 'einmal',
- 'eins',
- 'elf',
- 'en',
- 'ende',
- 'endlich',
- 'entweder',
- 'er',
- 'ernst',
- 'erst',
- 'erste',
- 'ersten',
- 'erster',
- 'erstes',
- 'es',
- 'etwa',
- 'etwas',
- 'euch',
- 'euer',
- 'eure',
- 'eurem',
- 'euren',
- 'eurer',
- 'eures',
- 'f',
- 'folgende',
- 'früher',
- 'fünf',
- 'fünfte',
- 'fünften',
- 'fünfter',
- 'fünftes',
- 'für',
- 'g',
- 'gab',
- 'ganz',
- 'ganze',
- 'ganzen',
- 'ganzer',
- 'ganzes',
- 'gar',
- 'gedurft',
- 'gegen',
- 'gegenüber',
- 'gehabt',
- 'gehen',
- 'geht',
- 'gekannt',
- 'gekonnt',
- 'gemacht',
- 'gemocht',
- 'gemusst',
- 'genug',
- 'gerade',
- 'gern',
- 'gesagt',
- 'geschweige',
- 'gewesen',
- 'gewollt',
- 'geworden',
- 'gibt',
- 'ging',
- 'gleich',
- 'gott',
- 'gross',
- 'grosse',
- 'grossen',
- 'grosser',
- 'grosses',
- 'groß',
- 'große',
- 'großen',
- 'großer',
- 'großes',
- 'gut',
- 'gute',
- 'guter',
- 'gutes',
- 'h',
- 'hab',
- 'habe',
- 'haben',
- 'habt',
- 'hast',
- 'hat',
- 'hatte',
- 'hatten',
- 'hattest',
- 'hattet',
- 'heisst',
- 'her',
- 'heute',
- 'hier',
- 'hin',
- 'hinter',
- 'hoch',
- 'hätte',
- 'hätten',
- 'i',
- 'ich',
- 'ihm',
- 'ihn',
- 'ihnen',
- 'ihr',
- 'ihre',
- 'ihrem',
- 'ihren',
- 'ihrer',
- 'ihres',
- 'im',
- 'immer',
- 'in',
- 'indem',
- 'infolgedessen',
- 'ins',
- 'irgend',
- 'ist',
- 'j',
- 'ja',
- 'jahr',
- 'jahre',
- 'jahren',
- 'je',
- 'jede',
- 'jedem',
- 'jeden',
- 'jeder',
- 'jedermann',
- 'jedermanns',
- 'jedes',
- 'jedoch',
- 'jemand',
- 'jemandem',
- 'jemanden',
- 'jene',
- 'jenem',
- 'jenen',
- 'jener',
- 'jenes',
- 'jetzt',
- 'k',
- 'kam',
- 'kann',
- 'kannst',
- 'kaum',
- 'kein',
- 'keine',
- 'keinem',
- 'keinen',
- 'keiner',
- 'keines',
- 'kleine',
- 'kleinen',
- 'kleiner',
- 'kleines',
- 'kommen',
- 'kommt',
- 'konnte',
- 'konnten',
- 'kurz',
- 'können',
- 'könnt',
- 'könnte',
- 'l',
- 'lang',
- 'lange',
- 'leicht',
- 'leide',
- 'lieber',
- 'los',
- 'm',
- 'machen',
- 'macht',
- 'machte',
- 'mag',
- 'magst',
- 'mahn',
- 'mal',
- 'man',
- 'manche',
- 'manchem',
- 'manchen',
- 'mancher',
- 'manches',
- 'mann',
- 'mehr',
- 'mein',
- 'meine',
- 'meinem',
- 'meinen',
- 'meiner',
- 'meines',
- 'mensch',
- 'menschen',
- 'mich',
- 'mir',
- 'mit',
- 'mittel',
- 'mochte',
- 'mochten',
- 'morgen',
- 'muss',
- 'musst',
- 'musste',
- 'mussten',
- 'muß',
- 'mußt',
- 'möchte',
- 'mögen',
- 'möglich',
- 'mögt',
- 'müssen',
- 'müsst',
- 'müßt',
- 'n',
- 'na',
- 'nach',
- 'nachdem',
- 'nahm',
- 'natürlich',
- 'neben',
- 'nein',
- 'neue',
- 'neuen',
- 'neun',
- 'neunte',
- 'neunten',
- 'neunter',
- 'neuntes',
- 'nicht',
- 'nichts',
- 'nie',
- 'niemand',
- 'niemandem',
- 'niemanden',
- 'noch',
- 'nun',
- 'nur',
- 'o',
- 'ob',
- 'oben',
- 'oder',
- 'offen',
- 'oft',
- 'ohne',
- 'ordnung',
- 'p',
- 'q',
- 'r',
- 'recht',
- 'rechte',
- 'rechten',
- 'rechter',
- 'rechtes',
- 'richtig',
- 'rund',
- 's',
- 'sa',
- 'sache',
- 'sagt',
- 'sagte',
- 'sah',
- 'satt',
- 'schlecht',
- 'schluss',
- 'schon',
- 'sechs',
- 'sechste',
- 'sechsten',
- 'sechster',
- 'sechstes',
- 'sehr',
- 'sei',
- 'seid',
- 'seien',
- 'sein',
- 'seine',
- 'seinem',
- 'seinen',
- 'seiner',
- 'seines',
- 'seit',
- 'seitdem',
- 'selbst',
- 'sich',
- 'sie',
- 'sieben',
- 'siebente',
- 'siebenten',
- 'siebenter',
- 'siebentes',
- 'sind',
- 'so',
- 'solang',
- 'solche',
- 'solchem',
- 'solchen',
- 'solcher',
- 'solches',
- 'soll',
- 'sollen',
- 'sollst',
- 'sollt',
- 'sollte',
- 'sollten',
- 'sondern',
- 'sonst',
- 'soweit',
- 'sowie',
- 'später',
- 'startseite',
- 'statt',
- 'steht',
- 'suche',
- 't',
- 'tag',
- 'tage',
- 'tagen',
- 'tat',
- 'teil',
- 'tel',
- 'tritt',
- 'trotzdem',
- 'tun',
- 'u',
- 'uhr',
- 'um',
- 'und',
- 'uns',
- 'unse',
- 'unsem',
- 'unsen',
- 'unser',
- 'unsere',
- 'unserer',
- 'unses',
- 'unter',
- 'v',
- 'vergangenen',
- 'viel',
- 'viele',
- 'vielem',
- 'vielen',
- 'vielleicht',
- 'vier',
- 'vierte',
- 'vierten',
- 'vierter',
- 'viertes',
- 'vom',
- 'von',
- 'vor',
- 'w',
- 'wahr',
- 'wann',
- 'war',
- 'waren',
- 'warst',
- 'wart',
- 'warum',
- 'was',
- 'weg',
- 'wegen',
- 'weil',
- 'weit',
- 'weiter',
- 'weitere',
- 'weiteren',
- 'weiteres',
- 'welche',
- 'welchem',
- 'welchen',
- 'welcher',
- 'welches',
- 'wem',
- 'wen',
- 'wenig',
- 'wenige',
- 'weniger',
- 'weniges',
- 'wenigstens',
- 'wenn',
- 'wer',
- 'werde',
- 'werden',
- 'werdet',
- 'weshalb',
- 'wessen',
- 'wie',
- 'wieder',
- 'wieso',
- 'will',
- 'willst',
- 'wir',
- 'wird',
- 'wirklich',
- 'wirst',
- 'wissen',
- 'wo',
- 'woher',
- 'wohin',
- 'wohl',
- 'wollen',
- 'wollt',
- 'wollte',
- 'wollten',
- 'worden',
- 'wurde',
- 'wurden',
- 'während',
- 'währenddem',
- 'währenddessen',
- 'wäre',
- 'würde',
- 'würden',
- 'x',
- 'y',
- 'z',
- 'z.b',
- 'zehn',
- 'zehnte',
- 'zehnten',
- 'zehnter',
- 'zehntes',
- 'zeit',
- 'zu',
- 'zuerst',
- 'zugleich',
- 'zum',
- 'zunächst',
- 'zur',
- 'zurück',
- 'zusammen',
- 'zwanzig',
- 'zwar',
- 'zwei',
- 'zweite',
- 'zweiten',
- 'zweiter',
- 'zweites',
- 'zwischen',
- 'zwölf',
- 'über',
- 'überhaupt',
- 'übrigens',
- ],
- el: [
- 'ένα',
- 'έναν',
- 'ένας',
- 'αι',
- 'ακομα',
- 'ακομη',
- 'ακριβως',
- 'αληθεια',
- 'αληθινα',
- 'αλλα',
- 'αλλαχου',
- 'αλλες',
- 'αλλη',
- 'αλλην',
- 'αλλης',
- 'αλλιως',
- 'αλλιωτικα',
- 'αλλο',
- 'αλλοι',
- 'αλλοιως',
- 'αλλοιωτικα',
- 'αλλον',
- 'αλλος',
- 'αλλοτε',
- 'αλλου',
- 'αλλους',
- 'αλλων',
- 'αμα',
- 'αμεσα',
- 'αμεσως',
- 'αν',
- 'ανα',
- 'αναμεσα',
- 'αναμεταξυ',
- 'ανευ',
- 'αντι',
- 'αντιπερα',
- 'αντις',
- 'ανω',
- 'ανωτερω',
- 'αξαφνα',
- 'απ',
- 'απεναντι',
- 'απο',
- 'αποψε',
- 'από',
- 'αρα',
- 'αραγε',
- 'αργα',
- 'αργοτερο',
- 'αριστερα',
- 'αρκετα',
- 'αρχικα',
- 'ας',
- 'αυριο',
- 'αυτα',
- 'αυτες',
- 'αυτεσ',
- 'αυτη',
- 'αυτην',
- 'αυτης',
- 'αυτο',
- 'αυτοι',
- 'αυτον',
- 'αυτος',
- 'αυτοσ',
- 'αυτου',
- 'αυτους',
- 'αυτουσ',
- 'αυτων',
- 'αφοτου',
- 'αφου',
- 'αἱ',
- 'αἳ',
- 'αἵ',
- 'αὐτόσ',
- 'αὐτὸς',
- 'αὖ',
- 'α∆ιακοπα',
- 'βεβαια',
- 'βεβαιοτατα',
- 'γάρ',
- 'γα',
- 'γα^',
- 'γε',
- 'γι',
- 'για',
- 'γοῦν',
- 'γρηγορα',
- 'γυρω',
- 'γὰρ',
- "δ'",
- 'δέ',
- 'δή',
- 'δαί',
- 'δαίσ',
- 'δαὶ',
- 'δαὶς',
- 'δε',
- 'δεν',
- 'δι',
- "δι'",
- 'διά',
- 'δια',
- 'διὰ',
- 'δὲ',
- 'δὴ',
- 'δ’',
- 'εαν',
- 'εαυτο',
- 'εαυτον',
- 'εαυτου',
- 'εαυτους',
- 'εαυτων',
- 'εγκαιρα',
- 'εγκαιρως',
- 'εγω',
- 'ειθε',
- 'ειμαι',
- 'ειμαστε',
- 'ειναι',
- 'εις',
- 'εισαι',
- 'εισαστε',
- 'ειστε',
- 'ειτε',
- 'ειχα',
- 'ειχαμε',
- 'ειχαν',
- 'ειχατε',
- 'ειχε',
- 'ειχες',
- 'ει∆εμη',
- 'εκ',
- 'εκαστα',
- 'εκαστες',
- 'εκαστη',
- 'εκαστην',
- 'εκαστης',
- 'εκαστο',
- 'εκαστοι',
- 'εκαστον',
- 'εκαστος',
- 'εκαστου',
- 'εκαστους',
- 'εκαστων',
- 'εκει',
- 'εκεινα',
- 'εκεινες',
- 'εκεινεσ',
- 'εκεινη',
- 'εκεινην',
- 'εκεινης',
- 'εκεινο',
- 'εκεινοι',
- 'εκεινον',
- 'εκεινος',
- 'εκεινοσ',
- 'εκεινου',
- 'εκεινους',
- 'εκεινουσ',
- 'εκεινων',
- 'εκτος',
- 'εμας',
- 'εμεις',
- 'εμενα',
- 'εμπρος',
- 'εν',
- 'ενα',
- 'εναν',
- 'ενας',
- 'ενος',
- 'εντελως',
- 'εντος',
- 'εντωμεταξυ',
- 'ενω',
- 'ενός',
- 'εξ',
- 'εξαφνα',
- 'εξης',
- 'εξισου',
- 'εξω',
- 'επ',
- 'επί',
- 'επανω',
- 'επειτα',
- 'επει∆η',
- 'επι',
- 'επισης',
- 'επομενως',
- 'εσας',
- 'εσεις',
- 'εσενα',
- 'εστω',
- 'εσυ',
- 'ετερα',
- 'ετεραι',
- 'ετερας',
- 'ετερες',
- 'ετερη',
- 'ετερης',
- 'ετερο',
- 'ετεροι',
- 'ετερον',
- 'ετερος',
- 'ετερου',
- 'ετερους',
- 'ετερων',
- 'ετουτα',
- 'ετουτες',
- 'ετουτη',
- 'ετουτην',
- 'ετουτης',
- 'ετουτο',
- 'ετουτοι',
- 'ετουτον',
- 'ετουτος',
- 'ετουτου',
- 'ετουτους',
- 'ετουτων',
- 'ετσι',
- 'ευγε',
- 'ευθυς',
- 'ευτυχως',
- 'εφεξης',
- 'εχει',
- 'εχεις',
- 'εχετε',
- 'εχθες',
- 'εχομε',
- 'εχουμε',
- 'εχουν',
- 'εχτες',
- 'εχω',
- 'εως',
- 'εἰ',
- 'εἰμί',
- 'εἰμὶ',
- 'εἰς',
- 'εἰσ',
- 'εἴ',
- 'εἴμι',
- 'εἴτε',
- 'ε∆ω',
- 'η',
- 'ημασταν',
- 'ημαστε',
- 'ημουν',
- 'ησασταν',
- 'ησαστε',
- 'ησουν',
- 'ηταν',
- 'ητανε',
- 'ητοι',
- 'ηττον',
- 'η∆η',
- 'θα',
- 'ι',
- 'ιι',
- 'ιιι',
- 'ισαμε',
- 'ισια',
- 'ισως',
- 'ισωσ',
- 'ι∆ια',
- 'ι∆ιαν',
- 'ι∆ιας',
- 'ι∆ιες',
- 'ι∆ιο',
- 'ι∆ιοι',
- 'ι∆ιον',
- 'ι∆ιος',
- 'ι∆ιου',
- 'ι∆ιους',
- 'ι∆ιων',
- 'ι∆ιως',
- 'κ',
- 'καί',
- 'καίτοι',
- 'καθ',
- 'καθε',
- 'καθεμια',
- 'καθεμιας',
- 'καθενα',
- 'καθενας',
- 'καθενος',
- 'καθετι',
- 'καθολου',
- 'καθως',
- 'και',
- 'κακα',
- 'κακως',
- 'καλα',
- 'καλως',
- 'καμια',
- 'καμιαν',
- 'καμιας',
- 'καμποσα',
- 'καμποσες',
- 'καμποση',
- 'καμποσην',
- 'καμποσης',
- 'καμποσο',
- 'καμποσοι',
- 'καμποσον',
- 'καμποσος',
- 'καμποσου',
- 'καμποσους',
- 'καμποσων',
- 'κανεις',
- 'κανεν',
- 'κανενα',
- 'κανεναν',
- 'κανενας',
- 'κανενος',
- 'καποια',
- 'καποιαν',
- 'καποιας',
- 'καποιες',
- 'καποιο',
- 'καποιοι',
- 'καποιον',
- 'καποιος',
- 'καποιου',
- 'καποιους',
- 'καποιων',
- 'καποτε',
- 'καπου',
- 'καπως',
- 'κατ',
- 'κατά',
- 'κατα',
- 'κατι',
- 'κατιτι',
- 'κατοπιν',
- 'κατω',
- 'κατὰ',
- 'καὶ',
- 'κι',
- 'κιολας',
- 'κλπ',
- 'κοντα',
- 'κτλ',
- 'κυριως',
- 'κἀν',
- 'κἂν',
- 'λιγακι',
- 'λιγο',
- 'λιγωτερο',
- 'λογω',
- 'λοιπα',
- 'λοιπον',
- 'μέν',
- 'μέσα',
- 'μή',
- 'μήτε',
- 'μία',
- 'μα',
- 'μαζι',
- 'μακαρι',
- 'μακρυα',
- 'μαλιστα',
- 'μαλλον',
- 'μας',
- 'με',
- 'μεθ',
- 'μεθαυριο',
- 'μειον',
- 'μελει',
- 'μελλεται',
- 'μεμιας',
- 'μεν',
- 'μερικα',
- 'μερικες',
- 'μερικοι',
- 'μερικους',
- 'μερικων',
- 'μεσα',
- 'μετ',
- 'μετά',
- 'μετα',
- 'μεταξυ',
- 'μετὰ',
- 'μεχρι',
- 'μη',
- 'μην',
- 'μηπως',
- 'μητε',
- 'μη∆ε',
- 'μιά',
- 'μια',
- 'μιαν',
- 'μιας',
- 'μολις',
- 'μολονοτι',
- 'μοναχα',
- 'μονες',
- 'μονη',
- 'μονην',
- 'μονης',
- 'μονο',
- 'μονοι',
- 'μονομιας',
- 'μονος',
- 'μονου',
- 'μονους',
- 'μονων',
- 'μου',
- 'μπορει',
- 'μπορουν',
- 'μπραβο',
- 'μπρος',
- 'μἐν',
- 'μὲν',
- 'μὴ',
- 'μὴν',
- 'να',
- 'ναι',
- 'νωρις',
- 'ξανα',
- 'ξαφνικα',
- 'ο',
- 'οι',
- 'ολα',
- 'ολες',
- 'ολη',
- 'ολην',
- 'ολης',
- 'ολο',
- 'ολογυρα',
- 'ολοι',
- 'ολον',
- 'ολονεν',
- 'ολος',
- 'ολοτελα',
- 'ολου',
- 'ολους',
- 'ολων',
- 'ολως',
- 'ολως∆ιολου',
- 'ομως',
- 'ομωσ',
- 'οποια',
- 'οποιαν',
- 'οποιαν∆ηποτε',
- 'οποιας',
- 'οποιας∆ηποτε',
- 'οποια∆ηποτε',
- 'οποιες',
- 'οποιες∆ηποτε',
- 'οποιο',
- 'οποιοι',
- 'οποιον',
- 'οποιον∆ηποτε',
- 'οποιος',
- 'οποιος∆ηποτε',
- 'οποιου',
- 'οποιους',
- 'οποιους∆ηποτε',
- 'οποιου∆ηποτε',
- 'οποιο∆ηποτε',
- 'οποιων',
- 'οποιων∆ηποτε',
- 'οποι∆ηποτε',
- 'οποτε',
- 'οποτε∆ηποτε',
- 'οπου',
- 'οπου∆ηποτε',
- 'οπως',
- 'οπωσ',
- 'ορισμενα',
- 'ορισμενες',
- 'ορισμενων',
- 'ορισμενως',
- 'οσα',
- 'οσα∆ηποτε',
- 'οσες',
- 'οσες∆ηποτε',
- 'οση',
- 'οσην',
- 'οσην∆ηποτε',
- 'οσης',
- 'οσης∆ηποτε',
- 'οση∆ηποτε',
- 'οσο',
- 'οσοι',
- 'οσοι∆ηποτε',
- 'οσον',
- 'οσον∆ηποτε',
- 'οσος',
- 'οσος∆ηποτε',
- 'οσου',
- 'οσους',
- 'οσους∆ηποτε',
- 'οσου∆ηποτε',
- 'οσο∆ηποτε',
- 'οσων',
- 'οσων∆ηποτε',
- 'οταν',
- 'οτι',
- 'οτι∆ηποτε',
- 'οτου',
- 'ου',
- 'ουτε',
- 'ου∆ε',
- 'οχι',
- 'οἱ',
- 'οἳ',
- 'οἷς',
- 'οὐ',
- 'οὐδ',
- 'οὐδέ',
- 'οὐδείσ',
- 'οὐδεὶς',
- 'οὐδὲ',
- 'οὐδὲν',
- 'οὐκ',
- 'οὐχ',
- 'οὐχὶ',
- 'οὓς',
- 'οὔτε',
- 'οὕτω',
- 'οὕτως',
- 'οὕτωσ',
- 'οὖν',
- 'οὗ',
- 'οὗτος',
- 'οὗτοσ',
- 'παλι',
- 'παντοτε',
- 'παντου',
- 'παντως',
- 'παρ',
- 'παρά',
- 'παρα',
- 'παρὰ',
- 'περί',
- 'περα',
- 'περι',
- 'περιπου',
- 'περισσοτερο',
- 'περσι',
- 'περυσι',
- 'περὶ',
- 'πια',
- 'πιθανον',
- 'πιο',
- 'πισω',
- 'πλαι',
- 'πλεον',
- 'πλην',
- 'ποια',
- 'ποιαν',
- 'ποιας',
- 'ποιες',
- 'ποιεσ',
- 'ποιο',
- 'ποιοι',
- 'ποιον',
- 'ποιος',
- 'ποιοσ',
- 'ποιου',
- 'ποιους',
- 'ποιουσ',
- 'ποιων',
- 'πολυ',
- 'ποσες',
- 'ποση',
- 'ποσην',
- 'ποσης',
- 'ποσοι',
- 'ποσος',
- 'ποσους',
- 'ποτε',
- 'που',
- 'πουθε',
- 'πουθενα',
- 'ποῦ',
- 'πρεπει',
- 'πριν',
- 'προ',
- 'προκειμενου',
- 'προκειται',
- 'προπερσι',
- 'προς',
- 'προσ',
- 'προτου',
- 'προχθες',
- 'προχτες',
- 'πρωτυτερα',
- 'πρόσ',
- 'πρὸ',
- 'πρὸς',
- 'πως',
- 'πωσ',
- 'σαν',
- 'σας',
- 'σε',
- 'σεις',
- 'σημερα',
- 'σιγα',
- 'σου',
- 'στα',
- 'στη',
- 'στην',
- 'στης',
- 'στις',
- 'στο',
- 'στον',
- 'στου',
- 'στους',
- 'στων',
- 'συγχρονως',
- 'συν',
- 'συναμα',
- 'συνεπως',
- 'συνηθως',
- 'συχνα',
- 'συχνας',
- 'συχνες',
- 'συχνη',
- 'συχνην',
- 'συχνης',
- 'συχνο',
- 'συχνοι',
- 'συχνον',
- 'συχνος',
- 'συχνου',
- 'συχνους',
- 'συχνων',
- 'συχνως',
- 'σχε∆ον',
- 'σωστα',
- 'σόσ',
- 'σύ',
- 'σύν',
- 'σὸς',
- 'σὺ',
- 'σὺν',
- 'τά',
- 'τήν',
- 'τί',
- 'τίς',
- 'τίσ',
- 'τα',
- 'ταυτα',
- 'ταυτες',
- 'ταυτη',
- 'ταυτην',
- 'ταυτης',
- 'ταυτο,ταυτον',
- 'ταυτος',
- 'ταυτου',
- 'ταυτων',
- 'ταχα',
- 'ταχατε',
- 'ταῖς',
- 'τα∆ε',
- 'τε',
- 'τελικα',
- 'τελικως',
- 'τες',
- 'τετοια',
- 'τετοιαν',
- 'τετοιας',
- 'τετοιες',
- 'τετοιο',
- 'τετοιοι',
- 'τετοιον',
- 'τετοιος',
- 'τετοιου',
- 'τετοιους',
- 'τετοιων',
- 'τη',
- 'την',
- 'της',
- 'τησ',
- 'τι',
- 'τινα',
- 'τιποτα',
- 'τιποτε',
- 'τις',
- 'τισ',
- 'το',
- 'τοί',
- 'τοι',
- 'τοιοῦτος',
- 'τοιοῦτοσ',
- 'τον',
- 'τος',
- 'τοσα',
- 'τοσες',
- 'τοση',
- 'τοσην',
- 'τοσης',
- 'τοσο',
- 'τοσοι',
- 'τοσον',
- 'τοσος',
- 'τοσου',
- 'τοσους',
- 'τοσων',
- 'τοτε',
- 'του',
- 'τουλαχιστο',
- 'τουλαχιστον',
- 'τους',
- 'τουτα',
- 'τουτες',
- 'τουτη',
- 'τουτην',
- 'τουτης',
- 'τουτο',
- 'τουτοι',
- 'τουτοις',
- 'τουτον',
- 'τουτος',
- 'τουτου',
- 'τουτους',
- 'τουτων',
- 'τούσ',
- 'τοὺς',
- 'τοῖς',
- 'τοῦ',
- 'τυχον',
- 'των',
- 'τωρα',
- 'τό',
- 'τόν',
- 'τότε',
- 'τὰ',
- 'τὰς',
- 'τὴν',
- 'τὸ',
- 'τὸν',
- 'τῆς',
- 'τῆσ',
- 'τῇ',
- 'τῶν',
- 'τῷ',
- 'υπ',
- 'υπερ',
- 'υπο',
- 'υποψη',
- 'υποψιν',
- 'υπό',
- 'υστερα',
- 'φετος',
- 'χαμηλα',
- 'χθες',
- 'χτες',
- 'χωρις',
- 'χωριστα',
- 'ψηλα',
- 'ω',
- 'ωραια',
- 'ως',
- 'ωσ',
- 'ωσαν',
- 'ωσοτου',
- 'ωσπου',
- 'ωστε',
- 'ωστοσο',
- 'ωχ',
- "ἀλλ'",
- 'ἀλλά',
- 'ἀλλὰ',
- 'ἀλλ’',
- 'ἀπ',
- 'ἀπό',
- 'ἀπὸ',
- 'ἀφ',
- 'ἂν',
- 'ἃ',
- 'ἄλλος',
- 'ἄλλοσ',
- 'ἄν',
- 'ἄρα',
- 'ἅμα',
- 'ἐάν',
- 'ἐγώ',
- 'ἐγὼ',
- 'ἐκ',
- 'ἐμόσ',
- 'ἐμὸς',
- 'ἐν',
- 'ἐξ',
- 'ἐπί',
- 'ἐπεὶ',
- 'ἐπὶ',
- 'ἐστι',
- 'ἐφ',
- 'ἐὰν',
- 'ἑαυτοῦ',
- 'ἔτι',
- 'ἡ',
- 'ἢ',
- 'ἣ',
- 'ἤ',
- 'ἥ',
- 'ἧς',
- 'ἵνα',
- 'ὁ',
- 'ὃ',
- 'ὃν',
- 'ὃς',
- 'ὅ',
- 'ὅδε',
- 'ὅθεν',
- 'ὅπερ',
- 'ὅς',
- 'ὅσ',
- 'ὅστις',
- 'ὅστισ',
- 'ὅτε',
- 'ὅτι',
- 'ὑμόσ',
- 'ὑπ',
- 'ὑπέρ',
- 'ὑπό',
- 'ὑπὲρ',
- 'ὑπὸ',
- 'ὡς',
- 'ὡσ',
- 'ὥς',
- 'ὥστε',
- 'ὦ',
- 'ᾧ',
- '∆α',
- '∆ε',
- '∆εινα',
- '∆εν',
- '∆εξια',
- '∆ηθεν',
- '∆ηλα∆η',
- '∆ι',
- '∆ια',
- '∆ιαρκως',
- '∆ικα',
- '∆ικο',
- '∆ικοι',
- '∆ικος',
- '∆ικου',
- '∆ικους',
- '∆ιολου',
- '∆ιπλα',
- '∆ιχως',
- ],
- gu: [
- 'અંગે',
- 'અંદર',
- 'અથવા',
- 'અને',
- 'અમને',
- 'અમારું',
- 'અમે',
- 'અહીં',
- 'આ',
- 'આગળ',
- 'આથી',
- 'આનું',
- 'આને',
- 'આપણને',
- 'આપણું',
- 'આપણે',
- 'આપી',
- 'આર',
- 'આવી',
- 'આવે',
- 'ઉપર',
- 'ઉભા',
- 'ઊંચે',
- 'ઊભું',
- 'એ',
- 'એક',
- 'એન',
- 'એના',
- 'એનાં',
- 'એની',
- 'એનું',
- 'એને',
- 'એનો',
- 'એમ',
- 'એવા',
- 'એવાં',
- 'એવી',
- 'એવું',
- 'એવો',
- 'ઓછું',
- 'કંઈક',
- 'કઈ',
- 'કયું',
- 'કયો',
- 'કરતાં',
- 'કરવું',
- 'કરી',
- 'કરીએ',
- 'કરું',
- 'કરે',
- 'કરેલું',
- 'કર્યા',
- 'કર્યાં',
- 'કર્યું',
- 'કર્યો',
- 'કાંઈ',
- 'કે',
- 'કેટલું',
- 'કેમ',
- 'કેવી',
- 'કેવું',
- 'કોઈ',
- 'કોઈક',
- 'કોણ',
- 'કોણે',
- 'કોને',
- 'ક્યાં',
- 'ક્યારે',
- 'ખૂબ',
- 'ગઈ',
- 'ગયા',
- 'ગયાં',
- 'ગયું',
- 'ગયો',
- 'ઘણું',
- 'છ',
- 'છતાં',
- 'છીએ',
- 'છું',
- 'છે',
- 'છેક',
- 'છો',
- 'જ',
- 'જાય',
- 'જી',
- 'જે',
- 'જેટલું',
- 'જેને',
- 'જેમ',
- 'જેવી',
- 'જેવું',
- 'જેવો',
- 'જો',
- 'જોઈએ',
- 'જ્યાં',
- 'જ્યારે',
- 'ઝાઝું',
- 'તને',
- 'તમને',
- 'તમારું',
- 'તમે',
- 'તા',
- 'તારાથી',
- 'તારામાં',
- 'તારું',
- 'તું',
- 'તે',
- 'તેં',
- 'તેઓ',
- 'તેણે',
- 'તેથી',
- 'તેના',
- 'તેની',
- 'તેનું',
- 'તેને',
- 'તેમ',
- 'તેમનું',
- 'તેમને',
- 'તેવી',
- 'તેવું',
- 'તો',
- 'ત્યાં',
- 'ત્યારે',
- 'થઇ',
- 'થઈ',
- 'થઈએ',
- 'થતા',
- 'થતાં',
- 'થતી',
- 'થતું',
- 'થતો',
- 'થયા',
- 'થયાં',
- 'થયું',
- 'થયેલું',
- 'થયો',
- 'થવું',
- 'થાઉં',
- 'થાઓ',
- 'થાય',
- 'થી',
- 'થોડું',
- 'દરેક',
- 'ન',
- 'નં',
- 'નં.',
- 'નથી',
- 'નહિ',
- 'નહી',
- 'નહીં',
- 'ના',
- 'ની',
- 'નીચે',
- 'નું',
- 'ને',
- 'નો',
- 'પછી',
- 'પણ',
- 'પર',
- 'પરંતુ',
- 'પહેલાં',
- 'પાછળ',
- 'પાસે',
- 'પોતાનું',
- 'પ્રત્યેક',
- 'ફક્ત',
- 'ફરી',
- 'ફરીથી',
- 'બંને',
- 'બધા',
- 'બધું',
- 'બની',
- 'બહાર',
- 'બહુ',
- 'બાદ',
- 'બે',
- 'મને',
- 'મા',
- 'માં',
- 'માટે',
- 'માત્ર',
- 'મારું',
- 'મી',
- 'મૂકવું',
- 'મૂકી',
- 'મૂક્યા',
- 'મૂક્યાં',
- 'મૂક્યું',
- 'મેં',
- 'રહી',
- 'રહે',
- 'રહેવું',
- 'રહ્યા',
- 'રહ્યાં',
- 'રહ્યો',
- 'રીતે',
- 'રૂ.',
- 'રૂા',
- 'લેતા',
- 'લેતું',
- 'લેવા',
- 'વગેરે',
- 'વધુ',
- 'શકે',
- 'શા',
- 'શું',
- 'સરખું',
- 'સામે',
- 'સુધી',
- 'હતા',
- 'હતાં',
- 'હતી',
- 'હતું',
- 'હવે',
- 'હશે',
- 'હશો',
- 'હા',
- 'હું',
- 'હો',
- 'હોઈ',
- 'હોઈશ',
- 'હોઈશું',
- 'હોય',
- 'હોવા',
- ],
- ha: [
- 'a',
- 'amma',
- 'ba',
- 'ban',
- 'ce',
- 'cikin',
- 'da',
- 'don',
- 'ga',
- 'in',
- 'ina',
- 'ita',
- 'ji',
- 'ka',
- 'ko',
- 'kuma',
- 'lokacin',
- 'ma',
- 'mai',
- 'na',
- 'ne',
- 'ni',
- 'sai',
- 'shi',
- 'su',
- 'suka',
- 'sun',
- 'ta',
- 'tafi',
- 'take',
- 'tana',
- 'wani',
- 'wannan',
- 'wata',
- 'ya',
- 'yake',
- 'yana',
- 'yi',
- 'za',
- ],
- he: [
- 'אבל',
- 'או',
- 'אולי',
- 'אותה',
- 'אותו',
- 'אותי',
- 'אותך',
- 'אותם',
- 'אותן',
- 'אותנו',
- 'אז',
- 'אחר',
- 'אחרות',
- 'אחרי',
- 'אחריכן',
- 'אחרים',
- 'אחרת',
- 'אי',
- 'איזה',
- 'איך',
- 'אין',
- 'איפה',
- 'איתה',
- 'איתו',
- 'איתי',
- 'איתך',
- 'איתכם',
- 'איתכן',
- 'איתם',
- 'איתן',
- 'איתנו',
- 'אך',
- 'אל',
- 'אלה',
- 'אלו',
- 'אם',
- 'אנחנו',
- 'אני',
- 'אס',
- 'אף',
- 'אצל',
- 'אשר',
- 'את',
- 'אתה',
- 'אתכם',
- 'אתכן',
- 'אתם',
- 'אתן',
- 'באיזומידה',
- 'באמצע',
- 'באמצעות',
- 'בגלל',
- 'בין',
- 'בלי',
- 'במידה',
- 'במקוםשבו',
- 'ברם',
- 'בשביל',
- 'בשעהש',
- 'בתוך',
- 'גם',
- 'דרך',
- 'הוא',
- 'היא',
- 'היה',
- 'היכן',
- 'היתה',
- 'היתי',
- 'הם',
- 'הן',
- 'הנה',
- 'הסיבהשבגללה',
- 'הרי',
- 'ואילו',
- 'ואת',
- 'זאת',
- 'זה',
- 'זות',
- 'יהיה',
- 'יוכל',
- 'יוכלו',
- 'יותרמדי',
- 'יכול',
- 'יכולה',
- 'יכולות',
- 'יכולים',
- 'יכל',
- 'יכלה',
- 'יכלו',
- 'יש',
- 'כאן',
- 'כאשר',
- 'כולם',
- 'כולן',
- 'כזה',
- 'כי',
- 'כיצד',
- 'כך',
- 'ככה',
- 'כל',
- 'כלל',
- 'כמו',
- 'כן',
- 'כפי',
- 'כש',
- 'לא',
- 'לאו',
- 'לאיזותכלית',
- 'לאן',
- 'לבין',
- 'לה',
- 'להיות',
- 'להם',
- 'להן',
- 'לו',
- 'לי',
- 'לכם',
- 'לכן',
- 'למה',
- 'למטה',
- 'למעלה',
- 'למקוםשבו',
- 'למרות',
- 'לנו',
- 'לעבר',
- 'לעיכן',
- 'לפיכך',
- 'לפני',
- 'מאד',
- 'מאחורי',
- 'מאיזוסיבה',
- 'מאין',
- 'מאיפה',
- 'מבלי',
- 'מבעד',
- 'מדוע',
- 'מה',
- 'מהיכן',
- 'מול',
- 'מחוץ',
- 'מי',
- 'מכאן',
- 'מכיוון',
- 'מלבד',
- 'מן',
- 'מנין',
- 'מסוגל',
- 'מעט',
- 'מעטים',
- 'מעל',
- 'מצד',
- 'מקוםבו',
- 'מתחת',
- 'מתי',
- 'נגד',
- 'נגר',
- 'נו',
- 'עד',
- 'עז',
- 'על',
- 'עלי',
- 'עליה',
- 'עליהם',
- 'עליהן',
- 'עליו',
- 'עליך',
- 'עליכם',
- 'עלינו',
- 'עם',
- 'עצמה',
- 'עצמהם',
- 'עצמהן',
- 'עצמו',
- 'עצמי',
- 'עצמם',
- 'עצמן',
- 'עצמנו',
- 'פה',
- 'רק',
- 'שוב',
- 'של',
- 'שלה',
- 'שלהם',
- 'שלהן',
- 'שלו',
- 'שלי',
- 'שלך',
- 'שלכה',
- 'שלכם',
- 'שלכן',
- 'שלנו',
- 'שם',
- 'תהיה',
- 'תחת',
- ],
- hi: [
- 'अंदर',
- 'अत',
- 'अदि',
- 'अप',
- 'अपना',
- 'अपनि',
- 'अपनी',
- 'अपने',
- 'अभि',
- 'अभी',
- 'आदि',
- 'आप',
- 'इंहिं',
- 'इंहें',
- 'इंहों',
- 'इतयादि',
- 'इत्यादि',
- 'इन',
- 'इनका',
- 'इन्हीं',
- 'इन्हें',
- 'इन्हों',
- 'इस',
- 'इसका',
- 'इसकि',
- 'इसकी',
- 'इसके',
- 'इसमें',
- 'इसि',
- 'इसी',
- 'इसे',
- 'उंहिं',
- 'उंहें',
- 'उंहों',
- 'उन',
- 'उनका',
- 'उनकि',
- 'उनकी',
- 'उनके',
- 'उनको',
- 'उन्हीं',
- 'उन्हें',
- 'उन्हों',
- 'उस',
- 'उसके',
- 'उसि',
- 'उसी',
- 'उसे',
- 'एक',
- 'एवं',
- 'एस',
- 'एसे',
- 'ऐसे',
- 'ओर',
- 'और',
- 'कइ',
- 'कई',
- 'कर',
- 'करता',
- 'करते',
- 'करना',
- 'करने',
- 'करें',
- 'कहते',
- 'कहा',
- 'का',
- 'काफि',
- 'काफ़ी',
- 'कि',
- 'किंहें',
- 'किंहों',
- 'कितना',
- 'किन्हें',
- 'किन्हों',
- 'किया',
- 'किर',
- 'किस',
- 'किसि',
- 'किसी',
- 'किसे',
- 'की',
- 'कुछ',
- 'कुल',
- 'के',
- 'को',
- 'कोइ',
- 'कोई',
- 'कोन',
- 'कोनसा',
- 'कौन',
- 'कौनसा',
- 'गया',
- 'घर',
- 'जब',
- 'जहाँ',
- 'जहां',
- 'जा',
- 'जिंहें',
- 'जिंहों',
- 'जितना',
- 'जिधर',
- 'जिन',
- 'जिन्हें',
- 'जिन्हों',
- 'जिस',
- 'जिसे',
- 'जीधर',
- 'जेसा',
- 'जेसे',
- 'जैसा',
- 'जैसे',
- 'जो',
- 'तक',
- 'तब',
- 'तरह',
- 'तिंहें',
- 'तिंहों',
- 'तिन',
- 'तिन्हें',
- 'तिन्हों',
- 'तिस',
- 'तिसे',
- 'तो',
- 'था',
- 'थि',
- 'थी',
- 'थे',
- 'दबारा',
- 'दवारा',
- 'दिया',
- 'दुसरा',
- 'दुसरे',
- 'दूसरे',
- 'दो',
- 'द्वारा',
- 'न',
- 'नहिं',
- 'नहीं',
- 'ना',
- 'निचे',
- 'निहायत',
- 'नीचे',
- 'ने',
- 'पर',
- 'पहले',
- 'पुरा',
- 'पूरा',
- 'पे',
- 'फिर',
- 'बनि',
- 'बनी',
- 'बहि',
- 'बही',
- 'बहुत',
- 'बाद',
- 'बाला',
- 'बिलकुल',
- 'भि',
- 'भितर',
- 'भी',
- 'भीतर',
- 'मगर',
- 'मानो',
- 'मे',
- 'में',
- 'यदि',
- 'यह',
- 'यहाँ',
- 'यहां',
- 'यहि',
- 'यही',
- 'या',
- 'यिह',
- 'ये',
- 'रखें',
- 'रवासा',
- 'रहा',
- 'रहे',
- 'ऱ्वासा',
- 'लिए',
- 'लिये',
- 'लेकिन',
- 'व',
- 'वगेरह',
- 'वरग',
- 'वर्ग',
- 'वह',
- 'वहाँ',
- 'वहां',
- 'वहिं',
- 'वहीं',
- 'वाले',
- 'वुह',
- 'वे',
- 'वग़ैरह',
- 'संग',
- 'सकता',
- 'सकते',
- 'सबसे',
- 'सभि',
- 'सभी',
- 'साथ',
- 'साबुत',
- 'साभ',
- 'सारा',
- 'से',
- 'सो',
- 'हि',
- 'ही',
- 'हुअ',
- 'हुआ',
- 'हुइ',
- 'हुई',
- 'हुए',
- 'हे',
- 'हें',
- 'है',
- 'हैं',
- 'हो',
- 'होता',
- 'होति',
- 'होती',
- 'होते',
- 'होना',
- 'होने',
- ],
- hu: [
- 'a',
- 'abba',
- 'abban',
- 'abból',
- 'addig',
- 'ahhoz',
- 'ahogy',
- 'ahol',
- 'aki',
- 'akik',
- 'akkor',
- 'akár',
- 'alapján',
- 'alatt',
- 'alatta',
- 'alattad',
- 'alattam',
- 'alattatok',
- 'alattuk',
- 'alattunk',
- 'alá',
- 'alád',
- 'alájuk',
- 'alám',
- 'alánk',
- 'alátok',
- 'alól',
- 'alóla',
- 'alólad',
- 'alólam',
- 'alólatok',
- 'alóluk',
- 'alólunk',
- 'amely',
- 'amelybol',
- 'amelyek',
- 'amelyekben',
- 'amelyeket',
- 'amelyet',
- 'amelyik',
- 'amelynek',
- 'ami',
- 'amikor',
- 'amit',
- 'amolyan',
- 'amott',
- 'amíg',
- 'annak',
- 'annál',
- 'arra',
- 'arról',
- 'attól',
- 'az',
- 'aznap',
- 'azok',
- 'azokat',
- 'azokba',
- 'azokban',
- 'azokból',
- 'azokhoz',
- 'azokig',
- 'azokkal',
- 'azokká',
- 'azoknak',
- 'azoknál',
- 'azokon',
- 'azokra',
- 'azokról',
- 'azoktól',
- 'azokért',
- 'azon',
- 'azonban',
- 'azonnal',
- 'azt',
- 'aztán',
- 'azután',
- 'azzal',
- 'azzá',
- 'azért',
- 'bal',
- 'balra',
- 'ban',
- 'be',
- 'belé',
- 'beléd',
- 'beléjük',
- 'belém',
- 'belénk',
- 'belétek',
- 'belül',
- 'belőle',
- 'belőled',
- 'belőlem',
- 'belőletek',
- 'belőlük',
- 'belőlünk',
- 'ben',
- 'benne',
- 'benned',
- 'bennem',
- 'bennetek',
- 'bennük',
- 'bennünk',
- 'bár',
- 'bárcsak',
- 'bármilyen',
- 'búcsú',
- 'cikk',
- 'cikkek',
- 'cikkeket',
- 'csak',
- 'csakhogy',
- 'csupán',
- 'de',
- 'dehogy',
- 'e',
- 'ebbe',
- 'ebben',
- 'ebből',
- 'eddig',
- 'egy',
- 'egyebek',
- 'egyebet',
- 'egyedül',
- 'egyelőre',
- 'egyes',
- 'egyet',
- 'egyetlen',
- 'egyik',
- 'egymás',
- 'egyre',
- 'egyszerre',
- 'egyéb',
- 'együtt',
- 'egész',
- 'egészen',
- 'ehhez',
- 'ekkor',
- 'el',
- 'eleinte',
- 'ellen',
- 'ellenes',
- 'elleni',
- 'ellenére',
- 'elmondta',
- 'elsõ',
- 'első',
- 'elsők',
- 'elsősorban',
- 'elsőt',
- 'elé',
- 'eléd',
- 'elég',
- 'eléjük',
- 'elém',
- 'elénk',
- 'elétek',
- 'elõ',
- 'elõször',
- 'elõtt',
- 'elő',
- 'előbb',
- 'elől',
- 'előle',
- 'előled',
- 'előlem',
- 'előletek',
- 'előlük',
- 'előlünk',
- 'először',
- 'előtt',
- 'előtte',
- 'előtted',
- 'előttem',
- 'előttetek',
- 'előttük',
- 'előttünk',
- 'előző',
- 'emilyen',
- 'engem',
- 'ennek',
- 'ennyi',
- 'ennél',
- 'enyém',
- 'erre',
- 'erről',
- 'esetben',
- 'ettől',
- 'ez',
- 'ezek',
- 'ezekbe',
- 'ezekben',
- 'ezekből',
- 'ezeken',
- 'ezeket',
- 'ezekhez',
- 'ezekig',
- 'ezekkel',
- 'ezekké',
- 'ezeknek',
- 'ezeknél',
- 'ezekre',
- 'ezekről',
- 'ezektől',
- 'ezekért',
- 'ezen',
- 'ezentúl',
- 'ezer',
- 'ezret',
- 'ezt',
- 'ezután',
- 'ezzel',
- 'ezzé',
- 'ezért',
- 'fel',
- 'fele',
- 'felek',
- 'felet',
- 'felett',
- 'felé',
- 'fent',
- 'fenti',
- 'fél',
- 'fölé',
- 'gyakran',
- 'ha',
- 'halló',
- 'hamar',
- 'hanem',
- 'harmadik',
- 'harmadikat',
- 'harminc',
- 'hat',
- 'hatodik',
- 'hatodikat',
- 'hatot',
- 'hatvan',
- 'helyett',
- 'hetedik',
- 'hetediket',
- 'hetet',
- 'hetven',
- 'hirtelen',
- 'hiszen',
- 'hiába',
- 'hogy',
- 'hogyan',
- 'hol',
- 'holnap',
- 'holnapot',
- 'honnan',
- 'hova',
- 'hozzá',
- 'hozzád',
- 'hozzájuk',
- 'hozzám',
- 'hozzánk',
- 'hozzátok',
- 'hurrá',
- 'huszadik',
- 'hány',
- 'hányszor',
- 'hármat',
- 'három',
- 'hát',
- 'hátha',
- 'hátulsó',
- 'hét',
- 'húsz',
- 'ide',
- 'ide-оda',
- 'idén',
- 'igazán',
- 'igen',
- 'ill',
- 'ill.',
- 'illetve',
- 'ilyen',
- 'ilyenkor',
- 'immár',
- 'inkább',
- 'is',
- 'ismét',
- 'ison',
- 'itt',
- 'jelenleg',
- 'jobban',
- 'jobbra',
- 'jó',
- 'jól',
- 'jólesik',
- 'jóval',
- 'jövőre',
- 'kell',
- 'kellene',
- 'kellett',
- 'kelljen',
- 'keressünk',
- 'keresztül',
- 'ketten',
- 'kettő',
- 'kettőt',
- 'kevés',
- 'ki',
- 'kiben',
- 'kiből',
- 'kicsit',
- 'kicsoda',
- 'kihez',
- 'kik',
- 'kikbe',
- 'kikben',
- 'kikből',
- 'kiken',
- 'kiket',
- 'kikhez',
- 'kikkel',
- 'kikké',
- 'kiknek',
- 'kiknél',
- 'kikre',
- 'kikről',
- 'kiktől',
- 'kikért',
- 'kilenc',
- 'kilencedik',
- 'kilencediket',
- 'kilencet',
- 'kilencven',
- 'kin',
- 'kinek',
- 'kinél',
- 'kire',
- 'kiről',
- 'kit',
- 'kitől',
- 'kivel',
- 'kivé',
- 'kié',
- 'kiért',
- 'korábban',
- 'képest',
- 'kérem',
- 'kérlek',
- 'kész',
- 'késő',
- 'később',
- 'későn',
- 'két',
- 'kétszer',
- 'kívül',
- 'körül',
- 'köszönhetően',
- 'köszönöm',
- 'közben',
- 'közel',
- 'közepesen',
- 'közepén',
- 'közé',
- 'között',
- 'közül',
- 'külön',
- 'különben',
- 'különböző',
- 'különbözőbb',
- 'különbözőek',
- 'lassan',
- 'le',
- 'legalább',
- 'legyen',
- 'lehet',
- 'lehetetlen',
- 'lehetett',
- 'lehetőleg',
- 'lehetőség',
- 'lenne',
- 'lenni',
- 'lennék',
- 'lennének',
- 'lesz',
- 'leszek',
- 'lesznek',
- 'leszünk',
- 'lett',
- 'lettek',
- 'lettem',
- 'lettünk',
- 'lévő',
- 'ma',
- 'maga',
- 'magad',
- 'magam',
- 'magatokat',
- 'magukat',
- 'magunkat',
- 'magát',
- 'mai',
- 'majd',
- 'majdnem',
- 'manapság',
- 'meg',
- 'megcsinál',
- 'megcsinálnak',
- 'megint',
- 'megvan',
- 'mellett',
- 'mellette',
- 'melletted',
- 'mellettem',
- 'mellettetek',
- 'mellettük',
- 'mellettünk',
- 'mellé',
- 'melléd',
- 'melléjük',
- 'mellém',
- 'mellénk',
- 'mellétek',
- 'mellől',
- 'mellőle',
- 'mellőled',
- 'mellőlem',
- 'mellőletek',
- 'mellőlük',
- 'mellőlünk',
- 'mely',
- 'melyek',
- 'melyik',
- 'mennyi',
- 'mert',
- 'mi',
- 'miatt',
- 'miatta',
- 'miattad',
- 'miattam',
- 'miattatok',
- 'miattuk',
- 'miattunk',
- 'mibe',
- 'miben',
- 'miből',
- 'mihez',
- 'mik',
- 'mikbe',
- 'mikben',
- 'mikből',
- 'miken',
- 'miket',
- 'mikhez',
- 'mikkel',
- 'mikké',
- 'miknek',
- 'miknél',
- 'mikor',
- 'mikre',
- 'mikről',
- 'miktől',
- 'mikért',
- 'milyen',
- 'min',
- 'mind',
- 'mindegyik',
- 'mindegyiket',
- 'minden',
- 'mindenesetre',
- 'mindenki',
- 'mindent',
- 'mindenütt',
- 'mindig',
- 'mindketten',
- 'minek',
- 'minket',
- 'mint',
- 'mintha',
- 'minél',
- 'mire',
- 'miről',
- 'mit',
- 'mitől',
- 'mivel',
- 'mivé',
- 'miért',
- 'mondta',
- 'most',
- 'mostanáig',
- 'már',
- 'más',
- 'másik',
- 'másikat',
- 'másnap',
- 'második',
- 'másodszor',
- 'mások',
- 'másokat',
- 'mást',
- 'még',
- 'mégis',
- 'míg',
- 'mögé',
- 'mögéd',
- 'mögéjük',
- 'mögém',
- 'mögénk',
- 'mögétek',
- 'mögött',
- 'mögötte',
- 'mögötted',
- 'mögöttem',
- 'mögöttetek',
- 'mögöttük',
- 'mögöttünk',
- 'mögül',
- 'mögüle',
- 'mögüled',
- 'mögülem',
- 'mögületek',
- 'mögülük',
- 'mögülünk',
- 'múltkor',
- 'múlva',
- 'na',
- 'nagy',
- 'nagyobb',
- 'nagyon',
- 'naponta',
- 'napot',
- 'ne',
- 'negyedik',
- 'negyediket',
- 'negyven',
- 'neked',
- 'nekem',
- 'neki',
- 'nekik',
- 'nektek',
- 'nekünk',
- 'nem',
- 'nemcsak',
- 'nemrég',
- 'nincs',
- 'nyolc',
- 'nyolcadik',
- 'nyolcadikat',
- 'nyolcat',
- 'nyolcvan',
- 'nála',
- 'nálad',
- 'nálam',
- 'nálatok',
- 'náluk',
- 'nálunk',
- 'négy',
- 'négyet',
- 'néha',
- 'néhány',
- 'nélkül',
- 'o',
- 'oda',
- 'ok',
- 'olyan',
- 'onnan',
- 'ott',
- 'pedig',
- 'persze',
- 'pár',
- 'például',
- 'rajta',
- 'rajtad',
- 'rajtam',
- 'rajtatok',
- 'rajtuk',
- 'rajtunk',
- 'rendben',
- 'rosszul',
- 'rá',
- 'rád',
- 'rájuk',
- 'rám',
- 'ránk',
- 'rátok',
- 'régen',
- 'régóta',
- 'részére',
- 'róla',
- 'rólad',
- 'rólam',
- 'rólatok',
- 'róluk',
- 'rólunk',
- 'rögtön',
- 's',
- 'saját',
- 'se',
- 'sem',
- 'semmi',
- 'semmilyen',
- 'semmiség',
- 'senki',
- 'soha',
- 'sok',
- 'sokan',
- 'sokat',
- 'sokkal',
- 'sokszor',
- 'sokáig',
- 'során',
- 'stb.',
- 'szemben',
- 'szerbusz',
- 'szerint',
- 'szerinte',
- 'szerinted',
- 'szerintem',
- 'szerintetek',
- 'szerintük',
- 'szerintünk',
- 'szervusz',
- 'szinte',
- 'számára',
- 'száz',
- 'századik',
- 'százat',
- 'szépen',
- 'szét',
- 'szíves',
- 'szívesen',
- 'szíveskedjék',
- 'sőt',
- 'talán',
- 'tavaly',
- 'te',
- 'tegnap',
- 'tegnapelőtt',
- 'tehát',
- 'tele',
- 'teljes',
- 'tessék',
- 'ti',
- 'tied',
- 'titeket',
- 'tizedik',
- 'tizediket',
- 'tizenegy',
- 'tizenegyedik',
- 'tizenhat',
- 'tizenhárom',
- 'tizenhét',
- 'tizenkettedik',
- 'tizenkettő',
- 'tizenkilenc',
- 'tizenkét',
- 'tizennyolc',
- 'tizennégy',
- 'tizenöt',
- 'tizet',
- 'tovább',
- 'további',
- 'továbbá',
- 'távol',
- 'téged',
- 'tényleg',
- 'tíz',
- 'több',
- 'többi',
- 'többször',
- 'túl',
- 'tőle',
- 'tőled',
- 'tőlem',
- 'tőletek',
- 'tőlük',
- 'tőlünk',
- 'ugyanakkor',
- 'ugyanez',
- 'ugyanis',
- 'ugye',
- 'urak',
- 'uram',
- 'urat',
- 'utoljára',
- 'utolsó',
- 'után',
- 'utána',
- 'vagy',
- 'vagyis',
- 'vagyok',
- 'vagytok',
- 'vagyunk',
- 'vajon',
- 'valahol',
- 'valaki',
- 'valakit',
- 'valamelyik',
- 'valami',
- 'valamint',
- 'való',
- 'van',
- 'vannak',
- 'vele',
- 'veled',
- 'velem',
- 'veletek',
- 'velük',
- 'velünk',
- 'vissza',
- 'viszlát',
- 'viszont',
- 'viszontlátásra',
- 'volna',
- 'volnának',
- 'volnék',
- 'volt',
- 'voltak',
- 'voltam',
- 'voltunk',
- 'végre',
- 'végén',
- 'végül',
- 'által',
- 'általában',
- 'ám',
- 'át',
- 'éljen',
- 'én',
- 'éppen',
- 'érte',
- 'érted',
- 'értem',
- 'értetek',
- 'értük',
- 'értünk',
- 'és',
- 'év',
- 'évben',
- 'éve',
- 'évek',
- 'éves',
- 'évi',
- 'évvel',
- 'így',
- 'óta',
- 'õ',
- 'õk',
- 'õket',
- 'ön',
- 'önbe',
- 'önben',
- 'önből',
- 'önhöz',
- 'önnek',
- 'önnel',
- 'önnél',
- 'önre',
- 'önről',
- 'önt',
- 'öntől',
- 'önért',
- 'önök',
- 'önökbe',
- 'önökben',
- 'önökből',
- 'önöket',
- 'önökhöz',
- 'önökkel',
- 'önöknek',
- 'önöknél',
- 'önökre',
- 'önökről',
- 'önöktől',
- 'önökért',
- 'önökön',
- 'önön',
- 'össze',
- 'öt',
- 'ötven',
- 'ötödik',
- 'ötödiket',
- 'ötöt',
- 'úgy',
- 'úgyis',
- 'úgynevezett',
- 'új',
- 'újabb',
- 'újra',
- 'úr',
- 'ő',
- 'ők',
- 'őket',
- 'őt',
- ],
- id: [
- 'ada',
- 'adalah',
- 'adanya',
- 'adapun',
- 'agak',
- 'agaknya',
- 'agar',
- 'akan',
- 'akankah',
- 'akhir',
- 'akhiri',
- 'akhirnya',
- 'aku',
- 'akulah',
- 'amat',
- 'amatlah',
- 'anda',
- 'andalah',
- 'antar',
- 'antara',
- 'antaranya',
- 'apa',
- 'apaan',
- 'apabila',
- 'apakah',
- 'apalagi',
- 'apatah',
- 'artinya',
- 'asal',
- 'asalkan',
- 'atas',
- 'atau',
- 'ataukah',
- 'ataupun',
- 'awal',
- 'awalnya',
- 'bagai',
- 'bagaikan',
- 'bagaimana',
- 'bagaimanakah',
- 'bagaimanapun',
- 'bagi',
- 'bagian',
- 'bahkan',
- 'bahwa',
- 'bahwasanya',
- 'baik',
- 'bakal',
- 'bakalan',
- 'balik',
- 'banyak',
- 'bapak',
- 'baru',
- 'bawah',
- 'beberapa',
- 'begini',
- 'beginian',
- 'beginikah',
- 'beginilah',
- 'begitu',
- 'begitukah',
- 'begitulah',
- 'begitupun',
- 'bekerja',
- 'belakang',
- 'belakangan',
- 'belum',
- 'belumlah',
- 'benar',
- 'benarkah',
- 'benarlah',
- 'berada',
- 'berakhir',
- 'berakhirlah',
- 'berakhirnya',
- 'berapa',
- 'berapakah',
- 'berapalah',
- 'berapapun',
- 'berarti',
- 'berawal',
- 'berbagai',
- 'berdatangan',
- 'beri',
- 'berikan',
- 'berikut',
- 'berikutnya',
- 'berjumlah',
- 'berkali-kali',
- 'berkata',
- 'berkehendak',
- 'berkeinginan',
- 'berkenaan',
- 'berlainan',
- 'berlalu',
- 'berlangsung',
- 'berlebihan',
- 'bermacam',
- 'bermacam-macam',
- 'bermaksud',
- 'bermula',
- 'bersama',
- 'bersama-sama',
- 'bersiap',
- 'bersiap-siap',
- 'bertanya',
- 'bertanya-tanya',
- 'berturut',
- 'berturut-turut',
- 'bertutur',
- 'berujar',
- 'berupa',
- 'besar',
- 'betul',
- 'betulkah',
- 'biasa',
- 'biasanya',
- 'bila',
- 'bilakah',
- 'bisa',
- 'bisakah',
- 'boleh',
- 'bolehkah',
- 'bolehlah',
- 'buat',
- 'bukan',
- 'bukankah',
- 'bukanlah',
- 'bukannya',
- 'bulan',
- 'bung',
- 'cara',
- 'caranya',
- 'cukup',
- 'cukupkah',
- 'cukuplah',
- 'cuma',
- 'dahulu',
- 'dalam',
- 'dan',
- 'dapat',
- 'dari',
- 'daripada',
- 'datang',
- 'dekat',
- 'demi',
- 'demikian',
- 'demikianlah',
- 'dengan',
- 'depan',
- 'di',
- 'dia',
- 'diakhiri',
- 'diakhirinya',
- 'dialah',
- 'diantara',
- 'diantaranya',
- 'diberi',
- 'diberikan',
- 'diberikannya',
- 'dibuat',
- 'dibuatnya',
- 'didapat',
- 'didatangkan',
- 'digunakan',
- 'diibaratkan',
- 'diibaratkannya',
- 'diingat',
- 'diingatkan',
- 'diinginkan',
- 'dijawab',
- 'dijelaskan',
- 'dijelaskannya',
- 'dikarenakan',
- 'dikatakan',
- 'dikatakannya',
- 'dikerjakan',
- 'diketahui',
- 'diketahuinya',
- 'dikira',
- 'dilakukan',
- 'dilalui',
- 'dilihat',
- 'dimaksud',
- 'dimaksudkan',
- 'dimaksudkannya',
- 'dimaksudnya',
- 'diminta',
- 'dimintai',
- 'dimisalkan',
- 'dimulai',
- 'dimulailah',
- 'dimulainya',
- 'dimungkinkan',
- 'dini',
- 'dipastikan',
- 'diperbuat',
- 'diperbuatnya',
- 'dipergunakan',
- 'diperkirakan',
- 'diperlihatkan',
- 'diperlukan',
- 'diperlukannya',
- 'dipersoalkan',
- 'dipertanyakan',
- 'dipunyai',
- 'diri',
- 'dirinya',
- 'disampaikan',
- 'disebut',
- 'disebutkan',
- 'disebutkannya',
- 'disini',
- 'disinilah',
- 'ditambahkan',
- 'ditandaskan',
- 'ditanya',
- 'ditanyai',
- 'ditanyakan',
- 'ditegaskan',
- 'ditujukan',
- 'ditunjuk',
- 'ditunjuki',
- 'ditunjukkan',
- 'ditunjukkannya',
- 'ditunjuknya',
- 'dituturkan',
- 'dituturkannya',
- 'diucapkan',
- 'diucapkannya',
- 'diungkapkan',
- 'dong',
- 'dua',
- 'dulu',
- 'empat',
- 'enggak',
- 'enggaknya',
- 'entah',
- 'entahlah',
- 'guna',
- 'gunakan',
- 'hal',
- 'hampir',
- 'hanya',
- 'hanyalah',
- 'hari',
- 'harus',
- 'haruslah',
- 'harusnya',
- 'hendak',
- 'hendaklah',
- 'hendaknya',
- 'hingga',
- 'ia',
- 'ialah',
- 'ibarat',
- 'ibaratkan',
- 'ibaratnya',
- 'ibu',
- 'ikut',
- 'ingat',
- 'ingat-ingat',
- 'ingin',
- 'inginkah',
- 'inginkan',
- 'ini',
- 'inikah',
- 'inilah',
- 'itu',
- 'itukah',
- 'itulah',
- 'jadi',
- 'jadilah',
- 'jadinya',
- 'jangan',
- 'jangankan',
- 'janganlah',
- 'jauh',
- 'jawab',
- 'jawaban',
- 'jawabnya',
- 'jelas',
- 'jelaskan',
- 'jelaslah',
- 'jelasnya',
- 'jika',
- 'jikalau',
- 'juga',
- 'jumlah',
- 'jumlahnya',
- 'justru',
- 'kala',
- 'kalau',
- 'kalaulah',
- 'kalaupun',
- 'kalian',
- 'kami',
- 'kamilah',
- 'kamu',
- 'kamulah',
- 'kan',
- 'kapan',
- 'kapankah',
- 'kapanpun',
- 'karena',
- 'karenanya',
- 'kasus',
- 'kata',
- 'katakan',
- 'katakanlah',
- 'katanya',
- 'ke',
- 'keadaan',
- 'kebetulan',
- 'kecil',
- 'kedua',
- 'keduanya',
- 'keinginan',
- 'kelamaan',
- 'kelihatan',
- 'kelihatannya',
- 'kelima',
- 'keluar',
- 'kembali',
- 'kemudian',
- 'kemungkinan',
- 'kemungkinannya',
- 'kenapa',
- 'kepada',
- 'kepadanya',
- 'kesampaian',
- 'keseluruhan',
- 'keseluruhannya',
- 'keterlaluan',
- 'ketika',
- 'khususnya',
- 'kini',
- 'kinilah',
- 'kira',
- 'kira-kira',
- 'kiranya',
- 'kita',
- 'kitalah',
- 'kok',
- 'kurang',
- 'lagi',
- 'lagian',
- 'lah',
- 'lain',
- 'lainnya',
- 'lalu',
- 'lama',
- 'lamanya',
- 'lanjut',
- 'lanjutnya',
- 'lebih',
- 'lewat',
- 'lima',
- 'luar',
- 'macam',
- 'maka',
- 'makanya',
- 'makin',
- 'malah',
- 'malahan',
- 'mampu',
- 'mampukah',
- 'mana',
- 'manakala',
- 'manalagi',
- 'masa',
- 'masalah',
- 'masalahnya',
- 'masih',
- 'masihkah',
- 'masing',
- 'masing-masing',
- 'mau',
- 'maupun',
- 'melainkan',
- 'melakukan',
- 'melalui',
- 'melihat',
- 'melihatnya',
- 'memang',
- 'memastikan',
- 'memberi',
- 'memberikan',
- 'membuat',
- 'memerlukan',
- 'memihak',
- 'meminta',
- 'memintakan',
- 'memisalkan',
- 'memperbuat',
- 'mempergunakan',
- 'memperkirakan',
- 'memperlihatkan',
- 'mempersiapkan',
- 'mempersoalkan',
- 'mempertanyakan',
- 'mempunyai',
- 'memulai',
- 'memungkinkan',
- 'menaiki',
- 'menambahkan',
- 'menandaskan',
- 'menanti',
- 'menanti-nanti',
- 'menantikan',
- 'menanya',
- 'menanyai',
- 'menanyakan',
- 'mendapat',
- 'mendapatkan',
- 'mendatang',
- 'mendatangi',
- 'mendatangkan',
- 'menegaskan',
- 'mengakhiri',
- 'mengapa',
- 'mengatakan',
- 'mengatakannya',
- 'mengenai',
- 'mengerjakan',
- 'mengetahui',
- 'menggunakan',
- 'menghendaki',
- 'mengibaratkan',
- 'mengibaratkannya',
- 'mengingat',
- 'mengingatkan',
- 'menginginkan',
- 'mengira',
- 'mengucapkan',
- 'mengucapkannya',
- 'mengungkapkan',
- 'menjadi',
- 'menjawab',
- 'menjelaskan',
- 'menuju',
- 'menunjuk',
- 'menunjuki',
- 'menunjukkan',
- 'menunjuknya',
- 'menurut',
- 'menuturkan',
- 'menyampaikan',
- 'menyangkut',
- 'menyatakan',
- 'menyebutkan',
- 'menyeluruh',
- 'menyiapkan',
- 'merasa',
- 'mereka',
- 'merekalah',
- 'merupakan',
- 'meski',
- 'meskipun',
- 'meyakini',
- 'meyakinkan',
- 'minta',
- 'mirip',
- 'misal',
- 'misalkan',
- 'misalnya',
- 'mula',
- 'mulai',
- 'mulailah',
- 'mulanya',
- 'mungkin',
- 'mungkinkah',
- 'nah',
- 'naik',
- 'namun',
- 'nanti',
- 'nantinya',
- 'nyaris',
- 'nyatanya',
- 'oleh',
- 'olehnya',
- 'pada',
- 'padahal',
- 'padanya',
- 'pak',
- 'paling',
- 'panjang',
- 'pantas',
- 'para',
- 'pasti',
- 'pastilah',
- 'penting',
- 'pentingnya',
- 'per',
- 'percuma',
- 'perlu',
- 'perlukah',
- 'perlunya',
- 'pernah',
- 'persoalan',
- 'pertama',
- 'pertama-tama',
- 'pertanyaan',
- 'pertanyakan',
- 'pihak',
- 'pihaknya',
- 'pukul',
- 'pula',
- 'pun',
- 'punya',
- 'rasa',
- 'rasanya',
- 'rata',
- 'rupanya',
- 'saat',
- 'saatnya',
- 'saja',
- 'sajalah',
- 'saling',
- 'sama',
- 'sama-sama',
- 'sambil',
- 'sampai',
- 'sampai-sampai',
- 'sampaikan',
- 'sana',
- 'sangat',
- 'sangatlah',
- 'satu',
- 'saya',
- 'sayalah',
- 'se',
- 'sebab',
- 'sebabnya',
- 'sebagai',
- 'sebagaimana',
- 'sebagainya',
- 'sebagian',
- 'sebaik',
- 'sebaik-baiknya',
- 'sebaiknya',
- 'sebaliknya',
- 'sebanyak',
- 'sebegini',
- 'sebegitu',
- 'sebelum',
- 'sebelumnya',
- 'sebenarnya',
- 'seberapa',
- 'sebesar',
- 'sebetulnya',
- 'sebisanya',
- 'sebuah',
- 'sebut',
- 'sebutlah',
- 'sebutnya',
- 'secara',
- 'secukupnya',
- 'sedang',
- 'sedangkan',
- 'sedemikian',
- 'sedikit',
- 'sedikitnya',
- 'seenaknya',
- 'segala',
- 'segalanya',
- 'segera',
- 'seharusnya',
- 'sehingga',
- 'seingat',
- 'sejak',
- 'sejauh',
- 'sejenak',
- 'sejumlah',
- 'sekadar',
- 'sekadarnya',
- 'sekali',
- 'sekali-kali',
- 'sekalian',
- 'sekaligus',
- 'sekalipun',
- 'sekarang',
- 'sekecil',
- 'seketika',
- 'sekiranya',
- 'sekitar',
- 'sekitarnya',
- 'sekurang-kurangnya',
- 'sekurangnya',
- 'sela',
- 'selagi',
- 'selain',
- 'selaku',
- 'selalu',
- 'selama',
- 'selama-lamanya',
- 'selamanya',
- 'selanjutnya',
- 'seluruh',
- 'seluruhnya',
- 'semacam',
- 'semakin',
- 'semampu',
- 'semampunya',
- 'semasa',
- 'semasih',
- 'semata',
- 'semata-mata',
- 'semaunya',
- 'sementara',
- 'semisal',
- 'semisalnya',
- 'sempat',
- 'semua',
- 'semuanya',
- 'semula',
- 'sendiri',
- 'sendirian',
- 'sendirinya',
- 'seolah',
- 'seolah-olah',
- 'seorang',
- 'sepanjang',
- 'sepantasnya',
- 'sepantasnyalah',
- 'seperlunya',
- 'seperti',
- 'sepertinya',
- 'sepihak',
- 'sering',
- 'seringnya',
- 'serta',
- 'serupa',
- 'sesaat',
- 'sesama',
- 'sesampai',
- 'sesegera',
- 'sesekali',
- 'seseorang',
- 'sesuatu',
- 'sesuatunya',
- 'sesudah',
- 'sesudahnya',
- 'setelah',
- 'setempat',
- 'setengah',
- 'seterusnya',
- 'setiap',
- 'setiba',
- 'setibanya',
- 'setidak-tidaknya',
- 'setidaknya',
- 'setinggi',
- 'seusai',
- 'sewaktu',
- 'siap',
- 'siapa',
- 'siapakah',
- 'siapapun',
- 'sini',
- 'sinilah',
- 'soal',
- 'soalnya',
- 'suatu',
- 'sudah',
- 'sudahkah',
- 'sudahlah',
- 'supaya',
- 'tadi',
- 'tadinya',
- 'tahu',
- 'tahun',
- 'tak',
- 'tambah',
- 'tambahnya',
- 'tampak',
- 'tampaknya',
- 'tandas',
- 'tandasnya',
- 'tanpa',
- 'tanya',
- 'tanyakan',
- 'tanyanya',
- 'tapi',
- 'tegas',
- 'tegasnya',
- 'telah',
- 'tempat',
- 'tengah',
- 'tentang',
- 'tentu',
- 'tentulah',
- 'tentunya',
- 'tepat',
- 'terakhir',
- 'terasa',
- 'terbanyak',
- 'terdahulu',
- 'terdapat',
- 'terdiri',
- 'terhadap',
- 'terhadapnya',
- 'teringat',
- 'teringat-ingat',
- 'terjadi',
- 'terjadilah',
- 'terjadinya',
- 'terkira',
- 'terlalu',
- 'terlebih',
- 'terlihat',
- 'termasuk',
- 'ternyata',
- 'tersampaikan',
- 'tersebut',
- 'tersebutlah',
- 'tertentu',
- 'tertuju',
- 'terus',
- 'terutama',
- 'tetap',
- 'tetapi',
- 'tiap',
- 'tiba',
- 'tiba-tiba',
- 'tidak',
- 'tidakkah',
- 'tidaklah',
- 'tiga',
- 'tinggi',
- 'toh',
- 'tunjuk',
- 'turut',
- 'tutur',
- 'tuturnya',
- 'ucap',
- 'ucapnya',
- 'ujar',
- 'ujarnya',
- 'umum',
- 'umumnya',
- 'ungkap',
- 'ungkapnya',
- 'untuk',
- 'usah',
- 'usai',
- 'waduh',
- 'wah',
- 'wahai',
- 'waktu',
- 'waktunya',
- 'walau',
- 'walaupun',
- 'wong',
- 'yaitu',
- 'yakin',
- 'yakni',
- 'yang',
- ],
- ga: [
- 'a',
- 'ach',
- 'ag',
- 'agus',
- 'an',
- 'aon',
- 'ar',
- 'arna',
- 'as',
- "b'",
- 'ba',
- 'beirt',
- 'bhúr',
- 'caoga',
- 'ceathair',
- 'ceathrar',
- 'chomh',
- 'chtó',
- 'chuig',
- 'chun',
- 'cois',
- 'céad',
- 'cúig',
- 'cúigear',
- "d'",
- 'daichead',
- 'dar',
- 'de',
- 'deich',
- 'deichniúr',
- 'den',
- 'dhá',
- 'do',
- 'don',
- 'dtí',
- 'dá',
- 'dár',
- 'dó',
- 'faoi',
- 'faoin',
- 'faoina',
- 'faoinár',
- 'fara',
- 'fiche',
- 'gach',
- 'gan',
- 'go',
- 'gur',
- 'haon',
- 'hocht',
- 'i',
- 'iad',
- 'idir',
- 'in',
- 'ina',
- 'ins',
- 'inár',
- 'is',
- 'le',
- 'leis',
- 'lena',
- 'lenár',
- "m'",
- 'mar',
- 'mo',
- 'mé',
- 'na',
- 'nach',
- 'naoi',
- 'naonúr',
- 'ná',
- 'ní',
- 'níor',
- 'nó',
- 'nócha',
- 'ocht',
- 'ochtar',
- 'os',
- 'roimh',
- 'sa',
- 'seacht',
- 'seachtar',
- 'seachtó',
- 'seasca',
- 'seisear',
- 'siad',
- 'sibh',
- 'sinn',
- 'sna',
- 'sé',
- 'sí',
- 'tar',
- 'thar',
- 'thú',
- 'triúr',
- 'trí',
- 'trína',
- 'trínár',
- 'tríocha',
- 'tú',
- 'um',
- 'ár',
- 'é',
- 'éis',
- 'í',
- 'ó',
- 'ón',
- 'óna',
- 'ónár',
- ],
- it: [
- 'a',
- 'abbastanza',
- 'abbia',
- 'abbiamo',
- 'abbiano',
- 'abbiate',
- 'accidenti',
- 'ad',
- 'adesso',
- 'affinché',
- 'agl',
- 'agli',
- 'ahime',
- 'ahimè',
- 'ai',
- 'al',
- 'alcuna',
- 'alcuni',
- 'alcuno',
- 'all',
- 'alla',
- 'alle',
- 'allo',
- 'allora',
- 'altre',
- 'altri',
- 'altrimenti',
- 'altro',
- 'altrove',
- 'altrui',
- 'anche',
- 'ancora',
- 'anni',
- 'anno',
- 'ansa',
- 'anticipo',
- 'assai',
- 'attesa',
- 'attraverso',
- 'avanti',
- 'avemmo',
- 'avendo',
- 'avente',
- 'aver',
- 'avere',
- 'averlo',
- 'avesse',
- 'avessero',
- 'avessi',
- 'avessimo',
- 'aveste',
- 'avesti',
- 'avete',
- 'aveva',
- 'avevamo',
- 'avevano',
- 'avevate',
- 'avevi',
- 'avevo',
- 'avrai',
- 'avranno',
- 'avrebbe',
- 'avrebbero',
- 'avrei',
- 'avremmo',
- 'avremo',
- 'avreste',
- 'avresti',
- 'avrete',
- 'avrà',
- 'avrò',
- 'avuta',
- 'avute',
- 'avuti',
- 'avuto',
- 'basta',
- 'ben',
- 'bene',
- 'benissimo',
- 'brava',
- 'bravo',
- 'buono',
- 'c',
- 'caso',
- 'cento',
- 'certa',
- 'certe',
- 'certi',
- 'certo',
- 'che',
- 'chi',
- 'chicchessia',
- 'chiunque',
- 'ci',
- 'ciascuna',
- 'ciascuno',
- 'cima',
- 'cinque',
- 'cio',
- 'cioe',
- 'cioè',
- 'circa',
- 'citta',
- 'città',
- 'ciò',
- 'co',
- 'codesta',
- 'codesti',
- 'codesto',
- 'cogli',
- 'coi',
- 'col',
- 'colei',
- 'coll',
- 'coloro',
- 'colui',
- 'come',
- 'cominci',
- 'comprare',
- 'comunque',
- 'con',
- 'concernente',
- 'conclusione',
- 'consecutivi',
- 'consecutivo',
- 'consiglio',
- 'contro',
- 'cortesia',
- 'cos',
- 'cosa',
- 'cosi',
- 'così',
- 'cui',
- 'd',
- 'da',
- 'dagl',
- 'dagli',
- 'dai',
- 'dal',
- 'dall',
- 'dalla',
- 'dalle',
- 'dallo',
- 'dappertutto',
- 'davanti',
- 'degl',
- 'degli',
- 'dei',
- 'del',
- 'dell',
- 'della',
- 'delle',
- 'dello',
- 'dentro',
- 'detto',
- 'deve',
- 'devo',
- 'di',
- 'dice',
- 'dietro',
- 'dire',
- 'dirimpetto',
- 'diventa',
- 'diventare',
- 'diventato',
- 'dopo',
- 'doppio',
- 'dov',
- 'dove',
- 'dovra',
- 'dovrà',
- 'dovunque',
- 'due',
- 'dunque',
- 'durante',
- 'e',
- 'ebbe',
- 'ebbero',
- 'ebbi',
- 'ecc',
- 'ecco',
- 'ed',
- 'effettivamente',
- 'egli',
- 'ella',
- 'entrambi',
- 'eppure',
- 'era',
- 'erano',
- 'eravamo',
- 'eravate',
- 'eri',
- 'ero',
- 'esempio',
- 'esse',
- 'essendo',
- 'esser',
- 'essere',
- 'essi',
- 'ex',
- 'fa',
- 'faccia',
- 'facciamo',
- 'facciano',
- 'facciate',
- 'faccio',
- 'facemmo',
- 'facendo',
- 'facesse',
- 'facessero',
- 'facessi',
- 'facessimo',
- 'faceste',
- 'facesti',
- 'faceva',
- 'facevamo',
- 'facevano',
- 'facevate',
- 'facevi',
- 'facevo',
- 'fai',
- 'fanno',
- 'farai',
- 'faranno',
- 'fare',
- 'farebbe',
- 'farebbero',
- 'farei',
- 'faremmo',
- 'faremo',
- 'fareste',
- 'faresti',
- 'farete',
- 'farà',
- 'farò',
- 'fatto',
- 'favore',
- 'fece',
- 'fecero',
- 'feci',
- 'fin',
- 'finalmente',
- 'finche',
- 'fine',
- 'fino',
- 'forse',
- 'forza',
- 'fosse',
- 'fossero',
- 'fossi',
- 'fossimo',
- 'foste',
- 'fosti',
- 'fra',
- 'frattempo',
- 'fu',
- 'fui',
- 'fummo',
- 'fuori',
- 'furono',
- 'futuro',
- 'generale',
- 'gente',
- 'gia',
- 'giacche',
- 'giorni',
- 'giorno',
- 'giu',
- 'già',
- 'gli',
- 'gliela',
- 'gliele',
- 'glieli',
- 'glielo',
- 'gliene',
- 'grande',
- 'grazie',
- 'gruppo',
- 'ha',
- 'haha',
- 'hai',
- 'hanno',
- 'ho',
- 'i',
- 'ie',
- 'ieri',
- 'il',
- 'improvviso',
- 'in',
- 'inc',
- 'indietro',
- 'infatti',
- 'inoltre',
- 'insieme',
- 'intanto',
- 'intorno',
- 'invece',
- 'io',
- 'l',
- 'la',
- 'lasciato',
- 'lato',
- 'le',
- 'lei',
- 'li',
- 'lo',
- 'lontano',
- 'loro',
- 'lui',
- 'lungo',
- 'luogo',
- 'là',
- 'ma',
- 'macche',
- 'magari',
- 'maggior',
- 'mai',
- 'male',
- 'malgrado',
- 'malissimo',
- 'me',
- 'medesimo',
- 'mediante',
- 'meglio',
- 'meno',
- 'mentre',
- 'mesi',
- 'mezzo',
- 'mi',
- 'mia',
- 'mie',
- 'miei',
- 'mila',
- 'miliardi',
- 'milioni',
- 'minimi',
- 'mio',
- 'modo',
- 'molta',
- 'molti',
- 'moltissimo',
- 'molto',
- 'momento',
- 'mondo',
- 'ne',
- 'negl',
- 'negli',
- 'nei',
- 'nel',
- 'nell',
- 'nella',
- 'nelle',
- 'nello',
- 'nemmeno',
- 'neppure',
- 'nessun',
- 'nessuna',
- 'nessuno',
- 'niente',
- 'no',
- 'noi',
- 'nome',
- 'non',
- 'nondimeno',
- 'nonostante',
- 'nonsia',
- 'nostra',
- 'nostre',
- 'nostri',
- 'nostro',
- 'novanta',
- 'nove',
- 'nulla',
- 'nuovi',
- 'nuovo',
- 'o',
- 'od',
- 'oggi',
- 'ogni',
- 'ognuna',
- 'ognuno',
- 'oltre',
- 'oppure',
- 'ora',
- 'ore',
- 'osi',
- 'ossia',
- 'ottanta',
- 'otto',
- 'paese',
- 'parecchi',
- 'parecchie',
- 'parecchio',
- 'parte',
- 'partendo',
- 'peccato',
- 'peggio',
- 'per',
- 'perche',
- 'perchè',
- 'perché',
- 'percio',
- 'perciò',
- 'perfino',
- 'pero',
- 'persino',
- 'persone',
- 'però',
- 'piedi',
- 'pieno',
- 'piglia',
- 'piu',
- 'piuttosto',
- 'più',
- 'po',
- 'pochissimo',
- 'poco',
- 'poi',
- 'poiche',
- 'possa',
- 'possedere',
- 'posteriore',
- 'posto',
- 'potrebbe',
- 'preferibilmente',
- 'presa',
- 'press',
- 'prima',
- 'primo',
- 'principalmente',
- 'probabilmente',
- 'promesso',
- 'proprio',
- 'puo',
- 'pure',
- 'purtroppo',
- 'può',
- 'qua',
- 'qualche',
- 'qualcosa',
- 'qualcuna',
- 'qualcuno',
- 'quale',
- 'quali',
- 'qualunque',
- 'quando',
- 'quanta',
- 'quante',
- 'quanti',
- 'quanto',
- 'quantunque',
- 'quarto',
- 'quasi',
- 'quattro',
- 'quel',
- 'quella',
- 'quelle',
- 'quelli',
- 'quello',
- 'quest',
- 'questa',
- 'queste',
- 'questi',
- 'questo',
- 'qui',
- 'quindi',
- 'quinto',
- 'realmente',
- 'recente',
- 'recentemente',
- 'registrazione',
- 'relativo',
- 'riecco',
- 'rispetto',
- 'salvo',
- 'sara',
- 'sarai',
- 'saranno',
- 'sarebbe',
- 'sarebbero',
- 'sarei',
- 'saremmo',
- 'saremo',
- 'sareste',
- 'saresti',
- 'sarete',
- 'sarà',
- 'sarò',
- 'scola',
- 'scopo',
- 'scorso',
- 'se',
- 'secondo',
- 'seguente',
- 'seguito',
- 'sei',
- 'sembra',
- 'sembrare',
- 'sembrato',
- 'sembrava',
- 'sembri',
- 'sempre',
- 'senza',
- 'sette',
- 'si',
- 'sia',
- 'siamo',
- 'siano',
- 'siate',
- 'siete',
- 'sig',
- 'solito',
- 'solo',
- 'soltanto',
- 'sono',
- 'sopra',
- 'soprattutto',
- 'sotto',
- 'spesso',
- 'sta',
- 'stai',
- 'stando',
- 'stanno',
- 'starai',
- 'staranno',
- 'starebbe',
- 'starebbero',
- 'starei',
- 'staremmo',
- 'staremo',
- 'stareste',
- 'staresti',
- 'starete',
- 'starà',
- 'starò',
- 'stata',
- 'state',
- 'stati',
- 'stato',
- 'stava',
- 'stavamo',
- 'stavano',
- 'stavate',
- 'stavi',
- 'stavo',
- 'stemmo',
- 'stessa',
- 'stesse',
- 'stessero',
- 'stessi',
- 'stessimo',
- 'stesso',
- 'steste',
- 'stesti',
- 'stette',
- 'stettero',
- 'stetti',
- 'stia',
- 'stiamo',
- 'stiano',
- 'stiate',
- 'sto',
- 'su',
- 'sua',
- 'subito',
- 'successivamente',
- 'successivo',
- 'sue',
- 'sugl',
- 'sugli',
- 'sui',
- 'sul',
- 'sull',
- 'sulla',
- 'sulle',
- 'sullo',
- 'suo',
- 'suoi',
- 'tale',
- 'tali',
- 'talvolta',
- 'tanto',
- 'te',
- 'tempo',
- 'terzo',
- 'th',
- 'ti',
- 'titolo',
- 'tra',
- 'tranne',
- 'tre',
- 'trenta',
- 'triplo',
- 'troppo',
- 'trovato',
- 'tu',
- 'tua',
- 'tue',
- 'tuo',
- 'tuoi',
- 'tutta',
- 'tuttavia',
- 'tutte',
- 'tutti',
- 'tutto',
- 'uguali',
- 'ulteriore',
- 'ultimo',
- 'un',
- 'una',
- 'uno',
- 'uomo',
- 'va',
- 'vai',
- 'vale',
- 'vari',
- 'varia',
- 'varie',
- 'vario',
- 'verso',
- 'vi',
- 'vicino',
- 'visto',
- 'vita',
- 'voi',
- 'volta',
- 'volte',
- 'vostra',
- 'vostre',
- 'vostri',
- 'vostro',
- 'è',
- ],
- ja: [
- 'あそこ',
- 'あっ',
- 'あの',
- 'あのかた',
- 'あの人',
- 'あり',
- 'あります',
- 'ある',
- 'あれ',
- 'い',
- 'いう',
- 'います',
- 'いる',
- 'う',
- 'うち',
- 'え',
- 'お',
- 'および',
- 'おり',
- 'おります',
- 'か',
- 'かつて',
- 'から',
- 'が',
- 'き',
- 'ここ',
- 'こちら',
- 'こと',
- 'この',
- 'これ',
- 'これら',
- 'さ',
- 'さらに',
- 'し',
- 'しかし',
- 'する',
- 'ず',
- 'せ',
- 'せる',
- 'そこ',
- 'そして',
- 'その',
- 'その他',
- 'その後',
- 'それ',
- 'それぞれ',
- 'それで',
- 'た',
- 'ただし',
- 'たち',
- 'ため',
- 'たり',
- 'だ',
- 'だっ',
- 'だれ',
- 'つ',
- 'て',
- 'で',
- 'でき',
- 'できる',
- 'です',
- 'では',
- 'でも',
- 'と',
- 'という',
- 'といった',
- 'とき',
- 'ところ',
- 'として',
- 'とともに',
- 'とも',
- 'と共に',
- 'どこ',
- 'どの',
- 'な',
- 'ない',
- 'なお',
- 'なかっ',
- 'ながら',
- 'なく',
- 'なっ',
- 'など',
- 'なに',
- 'なら',
- 'なり',
- 'なる',
- 'なん',
- 'に',
- 'において',
- 'における',
- 'について',
- 'にて',
- 'によって',
- 'により',
- 'による',
- 'に対して',
- 'に対する',
- 'に関する',
- 'の',
- 'ので',
- 'のみ',
- 'は',
- 'ば',
- 'へ',
- 'ほか',
- 'ほとんど',
- 'ほど',
- 'ます',
- 'また',
- 'または',
- 'まで',
- 'も',
- 'もの',
- 'ものの',
- 'や',
- 'よう',
- 'より',
- 'ら',
- 'られ',
- 'られる',
- 'れ',
- 'れる',
- 'を',
- 'ん',
- '何',
- '及び',
- '彼',
- '彼女',
- '我々',
- '特に',
- '私',
- '私達',
- '貴方',
- '貴方方',
- ],
- ko: [
- '!',
- '"',
- '$',
- '%',
- '&',
- "'",
- '(',
- ')',
- '*',
- '+',
- ',',
- '-',
- '.',
- '...',
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- ';',
- '<',
- '=',
- '>',
- '?',
- '@',
- '\\',
- '^',
- '_',
- '`',
- '|',
- '~',
- '·',
- '—',
- '——',
- '‘',
- '’',
- '“',
- '”',
- '…',
- '、',
- '。',
- '〈',
- '〉',
- '《',
- '》',
- '가',
- '가까스로',
- '가령',
- '각',
- '각각',
- '각자',
- '각종',
- '갖고말하자면',
- '같다',
- '같이',
- '개의치않고',
- '거니와',
- '거바',
- '거의',
- '것',
- '것과 같이',
- '것들',
- '게다가',
- '게우다',
- '겨우',
- '견지에서',
- '결과에 이르다',
- '결국',
- '결론을 낼 수 있다',
- '겸사겸사',
- '고려하면',
- '고로',
- '곧',
- '공동으로',
- '과',
- '과연',
- '관계가 있다',
- '관계없이',
- '관련이 있다',
- '관하여',
- '관한',
- '관해서는',
- '구',
- '구체적으로',
- '구토하다',
- '그',
- '그들',
- '그때',
- '그래',
- '그래도',
- '그래서',
- '그러나',
- '그러니',
- '그러니까',
- '그러면',
- '그러므로',
- '그러한즉',
- '그런 까닭에',
- '그런데',
- '그런즉',
- '그럼',
- '그럼에도 불구하고',
- '그렇게 함으로써',
- '그렇지',
- '그렇지 않다면',
- '그렇지 않으면',
- '그렇지만',
- '그렇지않으면',
- '그리고',
- '그리하여',
- '그만이다',
- '그에 따르는',
- '그위에',
- '그저',
- '그중에서',
- '그치지 않다',
- '근거로',
- '근거하여',
- '기대여',
- '기점으로',
- '기준으로',
- '기타',
- '까닭으로',
- '까악',
- '까지',
- '까지 미치다',
- '까지도',
- '꽈당',
- '끙끙',
- '끼익',
- '나',
- '나머지는',
- '남들',
- '남짓',
- '너',
- '너희',
- '너희들',
- '네',
- '넷',
- '년',
- '논하지 않다',
- '놀라다',
- '누가 알겠는가',
- '누구',
- '다른',
- '다른 방면으로',
- '다만',
- '다섯',
- '다소',
- '다수',
- '다시 말하자면',
- '다시말하면',
- '다음',
- '다음에',
- '다음으로',
- '단지',
- '답다',
- '당신',
- '당장',
- '대로 하다',
- '대하면',
- '대하여',
- '대해 말하자면',
- '대해서',
- '댕그',
- '더구나',
- '더군다나',
- '더라도',
- '더불어',
- '더욱더',
- '더욱이는',
- '도달하다',
- '도착하다',
- '동시에',
- '동안',
- '된바에야',
- '된이상',
- '두번째로',
- '둘',
- '둥둥',
- '뒤따라',
- '뒤이어',
- '든간에',
- '들',
- '등',
- '등등',
- '딩동',
- '따라',
- '따라서',
- '따위',
- '따지지 않다',
- '딱',
- '때',
- '때가 되어',
- '때문에',
- '또',
- '또한',
- '뚝뚝',
- '라 해도',
- '령',
- '로',
- '로 인하여',
- '로부터',
- '로써',
- '륙',
- '를',
- '마음대로',
- '마저',
- '마저도',
- '마치',
- '막론하고',
- '만 못하다',
- '만약',
- '만약에',
- '만은 아니다',
- '만이 아니다',
- '만일',
- '만큼',
- '말하자면',
- '말할것도 없고',
- '매',
- '매번',
- '메쓰겁다',
- '몇',
- '모',
- '모두',
- '무렵',
- '무릎쓰고',
- '무슨',
- '무엇',
- '무엇때문에',
- '물론',
- '및',
- '바꾸어말하면',
- '바꾸어말하자면',
- '바꾸어서 말하면',
- '바꾸어서 한다면',
- '바꿔 말하면',
- '바로',
- '바와같이',
- '밖에 안된다',
- '반대로',
- '반대로 말하자면',
- '반드시',
- '버금',
- '보는데서',
- '보다더',
- '보드득',
- '본대로',
- '봐',
- '봐라',
- '부류의 사람들',
- '부터',
- '불구하고',
- '불문하고',
- '붕붕',
- '비걱거리다',
- '비교적',
- '비길수 없다',
- '비로소',
- '비록',
- '비슷하다',
- '비추어 보아',
- '비하면',
- '뿐만 아니라',
- '뿐만아니라',
- '뿐이다',
- '삐걱',
- '삐걱거리다',
- '사',
- '삼',
- '상대적으로 말하자면',
- '생각한대로',
- '설령',
- '설마',
- '설사',
- '셋',
- '소생',
- '소인',
- '솨',
- '쉿',
- '습니까',
- '습니다',
- '시각',
- '시간',
- '시작하여',
- '시초에',
- '시키다',
- '실로',
- '심지어',
- '아',
- '아니',
- '아니나다를가',
- '아니라면',
- '아니면',
- '아니었다면',
- '아래윗',
- '아무거나',
- '아무도',
- '아야',
- '아울러',
- '아이',
- '아이고',
- '아이구',
- '아이야',
- '아이쿠',
- '아하',
- '아홉',
- '안 그러면',
- '않기 위하여',
- '않기 위해서',
- '알 수 있다',
- '알았어',
- '앗',
- '앞에서',
- '앞의것',
- '야',
- '약간',
- '양자',
- '어',
- '어기여차',
- '어느',
- '어느 년도',
- '어느것',
- '어느곳',
- '어느때',
- '어느쪽',
- '어느해',
- '어디',
- '어때',
- '어떠한',
- '어떤',
- '어떤것',
- '어떤것들',
- '어떻게',
- '어떻해',
- '어이',
- '어째서',
- '어쨋든',
- '어쩔수 없다',
- '어찌',
- '어찌됏든',
- '어찌됏어',
- '어찌하든지',
- '어찌하여',
- '언제',
- '언젠가',
- '얼마',
- '얼마 안 되는 것',
- '얼마간',
- '얼마나',
- '얼마든지',
- '얼마만큼',
- '얼마큼',
- '엉엉',
- '에',
- '에 가서',
- '에 달려 있다',
- '에 대해',
- '에 있다',
- '에 한하다',
- '에게',
- '에서',
- '여',
- '여기',
- '여덟',
- '여러분',
- '여보시오',
- '여부',
- '여섯',
- '여전히',
- '여차',
- '연관되다',
- '연이서',
- '영',
- '영차',
- '옆사람',
- '예',
- '예를 들면',
- '예를 들자면',
- '예컨대',
- '예하면',
- '오',
- '오로지',
- '오르다',
- '오자마자',
- '오직',
- '오호',
- '오히려',
- '와',
- '와 같은 사람들',
- '와르르',
- '와아',
- '왜',
- '왜냐하면',
- '외에도',
- '요만큼',
- '요만한 것',
- '요만한걸',
- '요컨대',
- '우르르',
- '우리',
- '우리들',
- '우선',
- '우에 종합한것과같이',
- '운운',
- '월',
- '위에서 서술한바와같이',
- '위하여',
- '위해서',
- '윙윙',
- '육',
- '으로',
- '으로 인하여',
- '으로서',
- '으로써',
- '을',
- '응',
- '응당',
- '의',
- '의거하여',
- '의지하여',
- '의해',
- '의해되다',
- '의해서',
- '이',
- '이 되다',
- '이 때문에',
- '이 밖에',
- '이 외에',
- '이 정도의',
- '이것',
- '이곳',
- '이때',
- '이라면',
- '이래',
- '이러이러하다',
- '이러한',
- '이런',
- '이럴정도로',
- '이렇게 많은 것',
- '이렇게되면',
- '이렇게말하자면',
- '이렇구나',
- '이로 인하여',
- '이르기까지',
- '이리하여',
- '이만큼',
- '이번',
- '이봐',
- '이상',
- '이어서',
- '이었다',
- '이와 같다',
- '이와 같은',
- '이와 반대로',
- '이와같다면',
- '이외에도',
- '이용하여',
- '이유만으로',
- '이젠',
- '이지만',
- '이쪽',
- '이천구',
- '이천육',
- '이천칠',
- '이천팔',
- '인 듯하다',
- '인젠',
- '일',
- '일것이다',
- '일곱',
- '일단',
- '일때',
- '일반적으로',
- '일지라도',
- '임에 틀림없다',
- '입각하여',
- '입장에서',
- '잇따라',
- '있다',
- '자',
- '자기',
- '자기집',
- '자마자',
- '자신',
- '잠깐',
- '잠시',
- '저',
- '저것',
- '저것만큼',
- '저기',
- '저쪽',
- '저희',
- '전부',
- '전자',
- '전후',
- '점에서 보아',
- '정도에 이르다',
- '제',
- '제각기',
- '제외하고',
- '조금',
- '조차',
- '조차도',
- '졸졸',
- '좀',
- '좋아',
- '좍좍',
- '주룩주룩',
- '주저하지 않고',
- '줄은 몰랏다',
- '줄은모른다',
- '중에서',
- '중의하나',
- '즈음하여',
- '즉',
- '즉시',
- '지든지',
- '지만',
- '지말고',
- '진짜로',
- '쪽으로',
- '차라리',
- '참',
- '참나',
- '첫번째로',
- '쳇',
- '총적으로',
- '총적으로 말하면',
- '총적으로 보면',
- '칠',
- '콸콸',
- '쾅쾅',
- '쿵',
- '타다',
- '타인',
- '탕탕',
- '토하다',
- '통하여',
- '툭',
- '퉤',
- '틈타',
- '팍',
- '팔',
- '퍽',
- '펄렁',
- '하',
- '하게될것이다',
- '하게하다',
- '하겠는가',
- '하고 있다',
- '하고있었다',
- '하곤하였다',
- '하구나',
- '하기 때문에',
- '하기 위하여',
- '하기는한데',
- '하기만 하면',
- '하기보다는',
- '하기에',
- '하나',
- '하느니',
- '하는 김에',
- '하는 편이 낫다',
- '하는것도',
- '하는것만 못하다',
- '하는것이 낫다',
- '하는바',
- '하더라도',
- '하도다',
- '하도록시키다',
- '하도록하다',
- '하든지',
- '하려고하다',
- '하마터면',
- '하면 할수록',
- '하면된다',
- '하면서',
- '하물며',
- '하여금',
- '하여야',
- '하자마자',
- '하지 않는다면',
- '하지 않도록',
- '하지마',
- '하지마라',
- '하지만',
- '하하',
- '한 까닭에',
- '한 이유는',
- '한 후',
- '한다면',
- '한다면 몰라도',
- '한데',
- '한마디',
- '한적이있다',
- '한켠으로는',
- '한항목',
- '할 따름이다',
- '할 생각이다',
- '할 줄 안다',
- '할 지경이다',
- '할 힘이 있다',
- '할때',
- '할만하다',
- '할망정',
- '할뿐',
- '할수있다',
- '할수있어',
- '할줄알다',
- '할지라도',
- '할지언정',
- '함께',
- '해도된다',
- '해도좋다',
- '해봐요',
- '해서는 안된다',
- '해야한다',
- '해요',
- '했어요',
- '향하다',
- '향하여',
- '향해서',
- '허',
- '허걱',
- '허허',
- '헉',
- '헉헉',
- '헐떡헐떡',
- '형식으로 쓰여',
- '혹시',
- '혹은',
- '혼자',
- '훨씬',
- '휘익',
- '휴',
- '흐흐',
- '흥',
- '힘입어',
- '︿',
- '!',
- '#',
- '$',
- '%',
- '&',
- '(',
- ')',
- '*',
- '+',
- ',',
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- ':',
- ';',
- '<',
- '>',
- '?',
- '@',
- '[',
- ']',
- '{',
- '|',
- '}',
- '~',
- '¥',
- ],
- ku: [
- 'ئێمە',
- 'ئێوە',
- 'ئەم',
- 'ئەو',
- 'ئەوان',
- 'ئەوەی',
- 'بۆ',
- 'بێ',
- 'بێجگە',
- 'بە',
- 'بەبێ',
- 'بەدەم',
- 'بەردەم',
- 'بەرلە',
- 'بەرەوی',
- 'بەرەوە',
- 'بەلای',
- 'بەپێی',
- 'تۆ',
- 'تێ',
- 'جگە',
- 'دوای',
- 'دوو',
- 'دە',
- 'دەکات',
- 'دەگەڵ',
- 'سەر',
- 'لێ',
- 'لە',
- 'لەبابەت',
- 'لەباتی',
- 'لەبارەی',
- 'لەبرێتی',
- 'لەبن',
- 'لەبەر',
- 'لەبەینی',
- 'لەدەم',
- 'لەرێ',
- 'لەرێگا',
- 'لەرەوی',
- 'لەسەر',
- 'لەلایەن',
- 'لەناو',
- 'لەنێو',
- 'لەو',
- 'لەپێناوی',
- 'لەژێر',
- 'لەگەڵ',
- 'من',
- 'ناو',
- 'نێوان',
- 'هەر',
- 'هەروەها',
- 'و',
- 'وەک',
- 'پاش',
- 'پێ',
- 'پێش',
- 'چەند',
- 'کرد',
- 'کە',
- 'ی',
- ],
- la: [
- 'a',
- 'ab',
- 'ac',
- 'ad',
- 'at',
- 'atque',
- 'aut',
- 'autem',
- 'cum',
- 'de',
- 'dum',
- 'e',
- 'erant',
- 'erat',
- 'est',
- 'et',
- 'etiam',
- 'ex',
- 'haec',
- 'hic',
- 'hoc',
- 'in',
- 'ita',
- 'me',
- 'nec',
- 'neque',
- 'non',
- 'per',
- 'qua',
- 'quae',
- 'quam',
- 'qui',
- 'quibus',
- 'quidem',
- 'quo',
- 'quod',
- 're',
- 'rebus',
- 'rem',
- 'res',
- 'sed',
- 'si',
- 'sic',
- 'sunt',
- 'tamen',
- 'tandem',
- 'te',
- 'ut',
- 'vel',
- ],
- lt: [
- 'abi',
- 'abidvi',
- 'abiejose',
- 'abiejuose',
- 'abiejø',
- 'abiem',
- 'abigaliai',
- 'abipus',
- 'abu',
- 'abudu',
- 'ai',
- 'ana',
- 'anaiptol',
- 'anaisiais',
- 'anajai',
- 'anajam',
- 'anajame',
- 'anapus',
- 'anas',
- 'anasai',
- 'anasis',
- 'anei',
- 'aniedvi',
- 'anieji',
- 'aniesiems',
- 'anoji',
- 'anojo',
- 'anojoje',
- 'anokia',
- 'anoks',
- 'anosiomis',
- 'anosioms',
- 'anosios',
- 'anosiose',
- 'anot',
- 'ant',
- 'antai',
- 'anuodu',
- 'anuoju',
- 'anuosiuose',
- 'anuosius',
- 'anàja',
- 'anàjà',
- 'anàjá',
- 'anàsias',
- 'anøjø',
- 'apie',
- 'aplink',
- 'ar',
- 'arba',
- 'argi',
- 'arti',
- 'aukðèiau',
- 'að',
- 'be',
- 'bei',
- 'beje',
- 'bemaþ',
- 'bent',
- 'bet',
- 'betgi',
- 'beveik',
- 'dar',
- 'dargi',
- 'daugmaþ',
- 'deja',
- 'dëka',
- 'dël',
- 'dëlei',
- 'dëlto',
- 'ech',
- 'et',
- 'gal',
- 'galbût',
- 'galgi',
- 'gan',
- 'gana',
- 'gi',
- 'greta',
- 'idant',
- 'iki',
- 'ir',
- 'irgi',
- 'it',
- 'itin',
- 'ið',
- 'iðilgai',
- 'iðvis',
- 'jaisiais',
- 'jajai',
- 'jajam',
- 'jajame',
- 'jei',
- 'jeigu',
- 'ji',
- 'jiedu',
- 'jiedvi',
- 'jieji',
- 'jiesiems',
- 'jinai',
- 'jis',
- 'jisai',
- 'jog',
- 'joji',
- 'jojo',
- 'jojoje',
- 'jokia',
- 'joks',
- 'josiomis',
- 'josioms',
- 'josios',
- 'josiose',
- 'judu',
- 'judvi',
- 'juk',
- 'jumis',
- 'jums',
- 'jumyse',
- 'juodu',
- 'juoju',
- 'juosiuose',
- 'juosius',
- 'jus',
- 'jàja',
- 'jàjà',
- 'jàsias',
- 'jájá',
- 'jøjø',
- 'jûs',
- 'jûsiðkis',
- 'jûsiðkë',
- 'jûsø',
- 'kad',
- 'kada',
- 'kadangi',
- 'kai',
- 'kaip',
- 'kaipgi',
- 'kas',
- 'katra',
- 'katras',
- 'katriedvi',
- 'katruodu',
- 'kaþin',
- 'kaþkas',
- 'kaþkatra',
- 'kaþkatras',
- 'kaþkokia',
- 'kaþkoks',
- 'kaþkuri',
- 'kaþkuris',
- 'kiaurai',
- 'kiek',
- 'kiekvienas',
- 'kieno',
- 'kita',
- 'kitas',
- 'kitokia',
- 'kitoks',
- 'kodël',
- 'kokia',
- 'koks',
- 'kol',
- 'kolei',
- 'kone',
- 'kuomet',
- 'kur',
- 'kurgi',
- 'kuri',
- 'kuriedvi',
- 'kuris',
- 'kuriuodu',
- 'lai',
- 'lig',
- 'ligi',
- 'link',
- 'lyg',
- 'man',
- 'manaisiais',
- 'manajai',
- 'manajam',
- 'manajame',
- 'manas',
- 'manasai',
- 'manasis',
- 'mane',
- 'manieji',
- 'maniesiems',
- 'manim',
- 'manimi',
- 'maniðkis',
- 'maniðkë',
- 'mano',
- 'manoji',
- 'manojo',
- 'manojoje',
- 'manosiomis',
- 'manosioms',
- 'manosios',
- 'manosiose',
- 'manuoju',
- 'manuosiuose',
- 'manuosius',
- 'manyje',
- 'manàja',
- 'manàjà',
- 'manàjá',
- 'manàsias',
- 'manæs',
- 'manøjø',
- 'mat',
- 'maþdaug',
- 'maþne',
- 'mes',
- 'mudu',
- 'mudvi',
- 'mumis',
- 'mums',
- 'mumyse',
- 'mus',
- 'mûsiðkis',
- 'mûsiðkë',
- 'mûsø',
- 'na',
- 'nagi',
- 'ne',
- 'nebe',
- 'nebent',
- 'negi',
- 'negu',
- 'nei',
- 'nejau',
- 'nejaugi',
- 'nekaip',
- 'nelyginant',
- 'nes',
- 'net',
- 'netgi',
- 'netoli',
- 'neva',
- 'nors',
- 'nuo',
- 'në',
- 'o',
- 'ogi',
- 'oi',
- 'paeiliui',
- 'pagal',
- 'pakeliui',
- 'palaipsniui',
- 'palei',
- 'pas',
- 'pasak',
- 'paskos',
- 'paskui',
- 'paskum',
- 'pat',
- 'pati',
- 'patiems',
- 'paties',
- 'pats',
- 'patys',
- 'patá',
- 'paèiais',
- 'paèiam',
- 'paèiame',
- 'paèiu',
- 'paèiuose',
- 'paèius',
- 'paèiø',
- 'per',
- 'pernelyg',
- 'pirm',
- 'pirma',
- 'pirmiau',
- 'po',
- 'prie',
- 'prieð',
- 'prieðais',
- 'pro',
- 'pusiau',
- 'rasi',
- 'rodos',
- 'sau',
- 'savaisiais',
- 'savajai',
- 'savajam',
- 'savajame',
- 'savas',
- 'savasai',
- 'savasis',
- 'save',
- 'savieji',
- 'saviesiems',
- 'savimi',
- 'saviðkis',
- 'saviðkë',
- 'savo',
- 'savoji',
- 'savojo',
- 'savojoje',
- 'savosiomis',
- 'savosioms',
- 'savosios',
- 'savosiose',
- 'savuoju',
- 'savuosiuose',
- 'savuosius',
- 'savyje',
- 'savàja',
- 'savàjà',
- 'savàjá',
- 'savàsias',
- 'savæs',
- 'savøjø',
- 'skersai',
- 'skradþiai',
- 'staèiai',
- 'su',
- 'sulig',
- 'ta',
- 'tad',
- 'tai',
- 'taigi',
- 'taip',
- 'taipogi',
- 'taisiais',
- 'tajai',
- 'tajam',
- 'tajame',
- 'tamsta',
- 'tarp',
- 'tarsi',
- 'tartum',
- 'tarytum',
- 'tas',
- 'tasai',
- 'tau',
- 'tavaisiais',
- 'tavajai',
- 'tavajam',
- 'tavajame',
- 'tavas',
- 'tavasai',
- 'tavasis',
- 'tave',
- 'tavieji',
- 'taviesiems',
- 'tavimi',
- 'taviðkis',
- 'taviðkë',
- 'tavo',
- 'tavoji',
- 'tavojo',
- 'tavojoje',
- 'tavosiomis',
- 'tavosioms',
- 'tavosios',
- 'tavosiose',
- 'tavuoju',
- 'tavuosiuose',
- 'tavuosius',
- 'tavyje',
- 'tavàja',
- 'tavàjà',
- 'tavàjá',
- 'tavàsias',
- 'tavæs',
- 'tavøjø',
- 'taèiau',
- 'te',
- 'tegu',
- 'tegul',
- 'tiedvi',
- 'tieji',
- 'ties',
- 'tiesiems',
- 'tiesiog',
- 'tik',
- 'tikriausiai',
- 'tiktai',
- 'toji',
- 'tojo',
- 'tojoje',
- 'tokia',
- 'toks',
- 'tol',
- 'tolei',
- 'toliau',
- 'tosiomis',
- 'tosioms',
- 'tosios',
- 'tosiose',
- 'tu',
- 'tuodu',
- 'tuoju',
- 'tuosiuose',
- 'tuosius',
- 'turbût',
- 'tàja',
- 'tàjà',
- 'tàjá',
- 'tàsias',
- 'tøjø',
- 'tûlas',
- 'uþ',
- 'uþtat',
- 'uþvis',
- 'va',
- 'vai',
- 'viduj',
- 'vidury',
- 'vien',
- 'vienas',
- 'vienokia',
- 'vienoks',
- 'vietoj',
- 'virð',
- 'virðuj',
- 'virðum',
- 'vis',
- 'vis dëlto',
- 'visa',
- 'visas',
- 'visgi',
- 'visokia',
- 'visoks',
- 'vos',
- 'vël',
- 'vëlgi',
- 'ypaè',
- 'á',
- 'ákypai',
- 'ástriþai',
- 'ðalia',
- 'ðe',
- 'ði',
- 'ðiaisiais',
- 'ðiajai',
- 'ðiajam',
- 'ðiajame',
- 'ðiapus',
- 'ðiedvi',
- 'ðieji',
- 'ðiesiems',
- 'ðioji',
- 'ðiojo',
- 'ðiojoje',
- 'ðiokia',
- 'ðioks',
- 'ðiosiomis',
- 'ðiosioms',
- 'ðiosios',
- 'ðiosiose',
- 'ðis',
- 'ðisai',
- 'ðit',
- 'ðita',
- 'ðitas',
- 'ðitiedvi',
- 'ðitokia',
- 'ðitoks',
- 'ðituodu',
- 'ðiuodu',
- 'ðiuoju',
- 'ðiuosiuose',
- 'ðiuosius',
- 'ðiàja',
- 'ðiàjà',
- 'ðiàsias',
- 'ðiøjø',
- 'ðtai',
- 'ðájá',
- 'þemiau',
- ],
- lv: [
- 'aiz',
- 'ap',
- 'apakš',
- 'apakšpus',
- 'ar',
- 'arī',
- 'augšpus',
- 'bet',
- 'bez',
- 'bija',
- 'biji',
- 'biju',
- 'bijām',
- 'bijāt',
- 'būs',
- 'būsi',
- 'būsiet',
- 'būsim',
- 'būt',
- 'būšu',
- 'caur',
- 'diemžēl',
- 'diezin',
- 'droši',
- 'dēļ',
- 'esam',
- 'esat',
- 'esi',
- 'esmu',
- 'gan',
- 'gar',
- 'iekam',
- 'iekams',
- 'iekām',
- 'iekāms',
- 'iekš',
- 'iekšpus',
- 'ik',
- 'ir',
- 'it',
- 'itin',
- 'iz',
- 'ja',
- 'jau',
- 'jeb',
- 'jebšu',
- 'jel',
- 'jo',
- 'jā',
- 'ka',
- 'kamēr',
- 'kaut',
- 'kolīdz',
- 'kopš',
- 'kā',
- 'kļuva',
- 'kļuvi',
- 'kļuvu',
- 'kļuvām',
- 'kļuvāt',
- 'kļūs',
- 'kļūsi',
- 'kļūsiet',
- 'kļūsim',
- 'kļūst',
- 'kļūstam',
- 'kļūstat',
- 'kļūsti',
- 'kļūstu',
- 'kļūt',
- 'kļūšu',
- 'labad',
- 'lai',
- 'lejpus',
- 'līdz',
- 'līdzko',
- 'ne',
- 'nebūt',
- 'nedz',
- 'nekā',
- 'nevis',
- 'nezin',
- 'no',
- 'nu',
- 'nē',
- 'otrpus',
- 'pa',
- 'par',
- 'pat',
- 'pie',
- 'pirms',
- 'pret',
- 'priekš',
- 'pār',
- 'pēc',
- 'starp',
- 'tad',
- 'tak',
- 'tapi',
- 'taps',
- 'tapsi',
- 'tapsiet',
- 'tapsim',
- 'tapt',
- 'tapāt',
- 'tapšu',
- 'taču',
- 'te',
- 'tiec',
- 'tiek',
- 'tiekam',
- 'tiekat',
- 'tieku',
- 'tik',
- 'tika',
- 'tikai',
- 'tiki',
- 'tikko',
- 'tiklab',
- 'tiklīdz',
- 'tiks',
- 'tiksiet',
- 'tiksim',
- 'tikt',
- 'tiku',
- 'tikvien',
- 'tikām',
- 'tikāt',
- 'tikšu',
- 'tomēr',
- 'topat',
- 'turpretim',
- 'turpretī',
- 'tā',
- 'tādēļ',
- 'tālab',
- 'tāpēc',
- 'un',
- 'uz',
- 'vai',
- 'var',
- 'varat',
- 'varēja',
- 'varēji',
- 'varēju',
- 'varējām',
- 'varējāt',
- 'varēs',
- 'varēsi',
- 'varēsiet',
- 'varēsim',
- 'varēt',
- 'varēšu',
- 'vien',
- 'virs',
- 'virspus',
- 'vis',
- 'viņpus',
- 'zem',
- 'ārpus',
- 'šaipus',
- ],
- ms: [
- 'abdul',
- 'abdullah',
- 'acara',
- 'ada',
- 'adalah',
- 'ahmad',
- 'air',
- 'akan',
- 'akhbar',
- 'akhir',
- 'aktiviti',
- 'alam',
- 'amat',
- 'amerika',
- 'anak',
- 'anggota',
- 'antara',
- 'antarabangsa',
- 'apa',
- 'apabila',
- 'april',
- 'as',
- 'asas',
- 'asean',
- 'asia',
- 'asing',
- 'atas',
- 'atau',
- 'australia',
- 'awal',
- 'awam',
- 'bagaimanapun',
- 'bagi',
- 'bahagian',
- 'bahan',
- 'baharu',
- 'bahawa',
- 'baik',
- 'bandar',
- 'bank',
- 'banyak',
- 'barangan',
- 'baru',
- 'baru-baru',
- 'bawah',
- 'beberapa',
- 'bekas',
- 'beliau',
- 'belum',
- 'berada',
- 'berakhir',
- 'berbanding',
- 'berdasarkan',
- 'berharap',
- 'berikutan',
- 'berjaya',
- 'berjumlah',
- 'berkaitan',
- 'berkata',
- 'berkenaan',
- 'berlaku',
- 'bermula',
- 'bernama',
- 'bernilai',
- 'bersama',
- 'berubah',
- 'besar',
- 'bhd',
- 'bidang',
- 'bilion',
- 'bn',
- 'boleh',
- 'bukan',
- 'bulan',
- 'bursa',
- 'cadangan',
- 'china',
- 'dagangan',
- 'dalam',
- 'dan',
- 'dana',
- 'dapat',
- 'dari',
- 'daripada',
- 'dasar',
- 'datang',
- 'datuk',
- 'demikian',
- 'dengan',
- 'depan',
- 'derivatives',
- 'dewan',
- 'di',
- 'diadakan',
- 'dibuka',
- 'dicatatkan',
- 'dijangka',
- 'diniagakan',
- 'dis',
- 'disember',
- 'ditutup',
- 'dolar',
- 'dr',
- 'dua',
- 'dunia',
- 'ekonomi',
- 'eksekutif',
- 'eksport',
- 'empat',
- 'enam',
- 'faedah',
- 'feb',
- 'global',
- 'hadapan',
- 'hanya',
- 'harga',
- 'hari',
- 'hasil',
- 'hingga',
- 'hubungan',
- 'ia',
- 'iaitu',
- 'ialah',
- 'indeks',
- 'india',
- 'indonesia',
- 'industri',
- 'ini',
- 'islam',
- 'isnin',
- 'isu',
- 'itu',
- 'jabatan',
- 'jalan',
- 'jan',
- 'jawatan',
- 'jawatankuasa',
- 'jepun',
- 'jika',
- 'jualan',
- 'juga',
- 'julai',
- 'jumaat',
- 'jumlah',
- 'jun',
- 'juta',
- 'kadar',
- 'kalangan',
- 'kali',
- 'kami',
- 'kata',
- 'katanya',
- 'kaunter',
- 'kawasan',
- 'ke',
- 'keadaan',
- 'kecil',
- 'kedua',
- 'kedua-dua',
- 'kedudukan',
- 'kekal',
- 'kementerian',
- 'kemudahan',
- 'kenaikan',
- 'kenyataan',
- 'kepada',
- 'kepentingan',
- 'keputusan',
- 'kerajaan',
- 'kerana',
- 'kereta',
- 'kerja',
- 'kerjasama',
- 'kes',
- 'keselamatan',
- 'keseluruhan',
- 'kesihatan',
- 'ketika',
- 'ketua',
- 'keuntungan',
- 'kewangan',
- 'khamis',
- 'kini',
- 'kira-kira',
- 'kita',
- 'klci',
- 'klibor',
- 'komposit',
- 'kontrak',
- 'kos',
- 'kuala',
- 'kuasa',
- 'kukuh',
- 'kumpulan',
- 'lagi',
- 'lain',
- 'langkah',
- 'laporan',
- 'lebih',
- 'lepas',
- 'lima',
- 'lot',
- 'luar',
- 'lumpur',
- 'mac',
- 'mahkamah',
- 'mahu',
- 'majlis',
- 'makanan',
- 'maklumat',
- 'malam',
- 'malaysia',
- 'mana',
- 'manakala',
- 'masa',
- 'masalah',
- 'masih',
- 'masing-masing',
- 'masyarakat',
- 'mata',
- 'media',
- 'mei',
- 'melalui',
- 'melihat',
- 'memandangkan',
- 'memastikan',
- 'membantu',
- 'membawa',
- 'memberi',
- 'memberikan',
- 'membolehkan',
- 'membuat',
- 'mempunyai',
- 'menambah',
- 'menarik',
- 'menawarkan',
- 'mencapai',
- 'mencatatkan',
- 'mendapat',
- 'mendapatkan',
- 'menerima',
- 'menerusi',
- 'mengadakan',
- 'mengambil',
- 'mengenai',
- 'menggalakkan',
- 'menggunakan',
- 'mengikut',
- 'mengumumkan',
- 'mengurangkan',
- 'meningkat',
- 'meningkatkan',
- 'menjadi',
- 'menjelang',
- 'menokok',
- 'menteri',
- 'menunjukkan',
- 'menurut',
- 'menyaksikan',
- 'menyediakan',
- 'mereka',
- 'merosot',
- 'merupakan',
- 'mesyuarat',
- 'minat',
- 'minggu',
- 'minyak',
- 'modal',
- 'mohd',
- 'mudah',
- 'mungkin',
- 'naik',
- 'najib',
- 'nasional',
- 'negara',
- 'negara-negara',
- 'negeri',
- 'niaga',
- 'nilai',
- 'nov',
- 'ogos',
- 'okt',
- 'oleh',
- 'operasi',
- 'orang',
- 'pada',
- 'pagi',
- 'paling',
- 'pameran',
- 'papan',
- 'para',
- 'paras',
- 'parlimen',
- 'parti',
- 'pasaran',
- 'pasukan',
- 'pegawai',
- 'pejabat',
- 'pekerja',
- 'pelabur',
- 'pelaburan',
- 'pelancongan',
- 'pelanggan',
- 'pelbagai',
- 'peluang',
- 'pembangunan',
- 'pemberita',
- 'pembinaan',
- 'pemimpin',
- 'pendapatan',
- 'pendidikan',
- 'penduduk',
- 'penerbangan',
- 'pengarah',
- 'pengeluaran',
- 'pengerusi',
- 'pengguna',
- 'pengurusan',
- 'peniaga',
- 'peningkatan',
- 'penting',
- 'peratus',
- 'perdagangan',
- 'perdana',
- 'peringkat',
- 'perjanjian',
- 'perkara',
- 'perkhidmatan',
- 'perladangan',
- 'perlu',
- 'permintaan',
- 'perniagaan',
- 'persekutuan',
- 'persidangan',
- 'pertama',
- 'pertubuhan',
- 'pertumbuhan',
- 'perusahaan',
- 'peserta',
- 'petang',
- 'pihak',
- 'pilihan',
- 'pinjaman',
- 'polis',
- 'politik',
- 'presiden',
- 'prestasi',
- 'produk',
- 'program',
- 'projek',
- 'proses',
- 'proton',
- 'pukul',
- 'pula',
- 'pusat',
- 'rabu',
- 'rakan',
- 'rakyat',
- 'ramai',
- 'rantau',
- 'raya',
- 'rendah',
- 'ringgit',
- 'rumah',
- 'sabah',
- 'sahaja',
- 'saham',
- 'sama',
- 'sarawak',
- 'satu',
- 'sawit',
- 'saya',
- 'sdn',
- 'sebagai',
- 'sebahagian',
- 'sebanyak',
- 'sebarang',
- 'sebelum',
- 'sebelumnya',
- 'sebuah',
- 'secara',
- 'sedang',
- 'segi',
- 'sehingga',
- 'sejak',
- 'sekarang',
- 'sektor',
- 'sekuriti',
- 'selain',
- 'selama',
- 'selasa',
- 'selatan',
- 'selepas',
- 'seluruh',
- 'semakin',
- 'semalam',
- 'semasa',
- 'sementara',
- 'semua',
- 'semula',
- 'sen',
- 'sendiri',
- 'seorang',
- 'sepanjang',
- 'seperti',
- 'sept',
- 'september',
- 'serantau',
- 'seri',
- 'serta',
- 'sesi',
- 'setiap',
- 'setiausaha',
- 'sidang',
- 'singapura',
- 'sini',
- 'sistem',
- 'sokongan',
- 'sri',
- 'sudah',
- 'sukan',
- 'suku',
- 'sumber',
- 'supaya',
- 'susut',
- 'syarikat',
- 'syed',
- 'tahap',
- 'tahun',
- 'tan',
- 'tanah',
- 'tanpa',
- 'tawaran',
- 'teknologi',
- 'telah',
- 'tempat',
- 'tempatan',
- 'tempoh',
- 'tenaga',
- 'tengah',
- 'tentang',
- 'terbaik',
- 'terbang',
- 'terbesar',
- 'terbuka',
- 'terdapat',
- 'terhadap',
- 'termasuk',
- 'tersebut',
- 'terus',
- 'tetapi',
- 'thailand',
- 'tiada',
- 'tidak',
- 'tiga',
- 'timbalan',
- 'timur',
- 'tindakan',
- 'tinggi',
- 'tun',
- 'tunai',
- 'turun',
- 'turut',
- 'umno',
- 'unit',
- 'untuk',
- 'untung',
- 'urus',
- 'usaha',
- 'utama',
- 'walaupun',
- 'wang',
- 'wanita',
- 'wilayah',
- 'yang',
- ],
- mr: [
- 'अधिक',
- 'अनेक',
- 'अशी',
- 'असलयाचे',
- 'असलेल्या',
- 'असा',
- 'असून',
- 'असे',
- 'आज',
- 'आणि',
- 'आता',
- 'आपल्या',
- 'आला',
- 'आली',
- 'आले',
- 'आहे',
- 'आहेत',
- 'एक',
- 'एका',
- 'कमी',
- 'करणयात',
- 'करून',
- 'का',
- 'काम',
- 'काय',
- 'काही',
- 'किवा',
- 'की',
- 'केला',
- 'केली',
- 'केले',
- 'कोटी',
- 'गेल्या',
- 'घेऊन',
- 'जात',
- 'झाला',
- 'झाली',
- 'झाले',
- 'झालेल्या',
- 'टा',
- 'डॉ',
- 'तर',
- 'तरी',
- 'तसेच',
- 'ता',
- 'ती',
- 'तीन',
- 'ते',
- 'तो',
- 'त्या',
- 'त्याचा',
- 'त्याची',
- 'त्याच्या',
- 'त्याना',
- 'त्यानी',
- 'त्यामुळे',
- 'त्री',
- 'दिली',
- 'दोन',
- 'न',
- 'नाही',
- 'निर्ण्य',
- 'पण',
- 'पम',
- 'परयतन',
- 'पाटील',
- 'म',
- 'मात्र',
- 'माहिती',
- 'मी',
- 'मुबी',
- 'म्हणजे',
- 'म्हणाले',
- 'म्हणून',
- 'या',
- 'याचा',
- 'याची',
- 'याच्या',
- 'याना',
- 'यानी',
- 'येणार',
- 'येत',
- 'येथील',
- 'येथे',
- 'लाख',
- 'व',
- 'व्यकत',
- 'सर्व',
- 'सागित्ले',
- 'सुरू',
- 'हजार',
- 'हा',
- 'ही',
- 'हे',
- 'होणार',
- 'होत',
- 'होता',
- 'होती',
- 'होते',
- ],
- no: [
- 'alle',
- 'andre',
- 'arbeid',
- 'at',
- 'av',
- 'bare',
- 'begge',
- 'ble',
- 'blei',
- 'bli',
- 'blir',
- 'blitt',
- 'bort',
- 'bra',
- 'bruke',
- 'både',
- 'båe',
- 'da',
- 'de',
- 'deg',
- 'dei',
- 'deim',
- 'deira',
- 'deires',
- 'dem',
- 'den',
- 'denne',
- 'der',
- 'dere',
- 'deres',
- 'det',
- 'dette',
- 'di',
- 'din',
- 'disse',
- 'ditt',
- 'du',
- 'dykk',
- 'dykkar',
- 'då',
- 'eg',
- 'ein',
- 'eit',
- 'eitt',
- 'eller',
- 'elles',
- 'en',
- 'ene',
- 'eneste',
- 'enhver',
- 'enn',
- 'er',
- 'et',
- 'ett',
- 'etter',
- 'folk',
- 'for',
- 'fordi',
- 'forsûke',
- 'fra',
- 'få',
- 'før',
- 'fûr',
- 'fûrst',
- 'gjorde',
- 'gjûre',
- 'god',
- 'gå',
- 'ha',
- 'hadde',
- 'han',
- 'hans',
- 'har',
- 'hennar',
- 'henne',
- 'hennes',
- 'her',
- 'hjå',
- 'ho',
- 'hoe',
- 'honom',
- 'hoss',
- 'hossen',
- 'hun',
- 'hva',
- 'hvem',
- 'hver',
- 'hvilke',
- 'hvilken',
- 'hvis',
- 'hvor',
- 'hvordan',
- 'hvorfor',
- 'i',
- 'ikke',
- 'ikkje',
- 'ingen',
- 'ingi',
- 'inkje',
- 'inn',
- 'innen',
- 'inni',
- 'ja',
- 'jeg',
- 'kan',
- 'kom',
- 'korleis',
- 'korso',
- 'kun',
- 'kunne',
- 'kva',
- 'kvar',
- 'kvarhelst',
- 'kven',
- 'kvi',
- 'kvifor',
- 'lage',
- 'lang',
- 'lik',
- 'like',
- 'makt',
- 'man',
- 'mange',
- 'me',
- 'med',
- 'medan',
- 'meg',
- 'meget',
- 'mellom',
- 'men',
- 'mens',
- 'mer',
- 'mest',
- 'mi',
- 'min',
- 'mine',
- 'mitt',
- 'mot',
- 'mye',
- 'mykje',
- 'må',
- 'måte',
- 'navn',
- 'ned',
- 'nei',
- 'no',
- 'noe',
- 'noen',
- 'noka',
- 'noko',
- 'nokon',
- 'nokor',
- 'nokre',
- 'ny',
- 'nå',
- 'når',
- 'og',
- 'også',
- 'om',
- 'opp',
- 'oss',
- 'over',
- 'part',
- 'punkt',
- 'på',
- 'rett',
- 'riktig',
- 'samme',
- 'sant',
- 'seg',
- 'selv',
- 'si',
- 'sia',
- 'sidan',
- 'siden',
- 'sin',
- 'sine',
- 'sist',
- 'sitt',
- 'sjøl',
- 'skal',
- 'skulle',
- 'slik',
- 'slutt',
- 'so',
- 'som',
- 'somme',
- 'somt',
- 'start',
- 'stille',
- 'så',
- 'sånn',
- 'tid',
- 'til',
- 'tilbake',
- 'tilstand',
- 'um',
- 'under',
- 'upp',
- 'ut',
- 'uten',
- 'var',
- 'vart',
- 'varte',
- 'ved',
- 'verdi',
- 'vere',
- 'verte',
- 'vi',
- 'vil',
- 'ville',
- 'vite',
- 'vore',
- 'vors',
- 'vort',
- 'vår',
- 'være',
- 'vært',
- 'vöre',
- 'vört',
- 'å',
- ],
- fa: [
- '!',
- ',',
- '.',
- ':',
- ';',
- '،',
- '؛',
- '؟',
- 'آباد',
- 'آره',
- 'آری',
- 'آمد',
- 'آمده',
- 'آن',
- 'آنان',
- 'آنجا',
- 'آنطور',
- 'آنقدر',
- 'آنكه',
- 'آنها',
- 'آنچه',
- 'آنکه',
- 'آورد',
- 'آورده',
- 'آيد',
- 'آی',
- 'آیا',
- 'آیند',
- 'اتفاقا',
- 'اثرِ',
- 'احتراما',
- 'احتمالا',
- 'اخیر',
- 'اری',
- 'از',
- 'ازجمله',
- 'اساسا',
- 'است',
- 'استفاد',
- 'استفاده',
- 'اش',
- 'اشکارا',
- 'اصلا',
- 'اصولا',
- 'اعلام',
- 'اغلب',
- 'اكنون',
- 'الان',
- 'البته',
- 'البتّه',
- 'ام',
- 'اما',
- 'امروز',
- 'امروزه',
- 'امسال',
- 'امشب',
- 'امور',
- 'ان',
- 'انجام',
- 'اند',
- 'انشاالله',
- 'انصافا',
- 'انطور',
- 'انقدر',
- 'انها',
- 'انچنان',
- 'انکه',
- 'انگار',
- 'او',
- 'اول',
- 'اولا',
- 'اي',
- 'ايشان',
- 'ايم',
- 'اين',
- 'اينكه',
- 'اکثرا',
- 'اکنون',
- 'اگر',
- 'ای',
- 'ایا',
- 'اید',
- 'ایشان',
- 'ایم',
- 'این',
- 'اینجا',
- 'ایند',
- 'اینطور',
- 'اینقدر',
- 'اینها',
- 'اینچنین',
- 'اینک',
- 'اینکه',
- 'اینگونه',
- 'با',
- 'بار',
- 'بارة',
- 'باره',
- 'بارها',
- 'باز',
- 'بازهم',
- 'باش',
- 'باشد',
- 'باشم',
- 'باشند',
- 'باشيم',
- 'باشی',
- 'باشید',
- 'باشیم',
- 'بالا',
- 'بالاخره',
- 'بالایِ',
- 'بالطبع',
- 'بايد',
- 'باید',
- 'بتوان',
- 'بتواند',
- 'بتوانی',
- 'بتوانیم',
- 'بخش',
- 'بخشی',
- 'بخواه',
- 'بخواهد',
- 'بخواهم',
- 'بخواهند',
- 'بخواهی',
- 'بخواهید',
- 'بخواهیم',
- 'بد',
- 'بدون',
- 'بر',
- 'برابر',
- 'برابرِ',
- 'براحتی',
- 'براساس',
- 'براستی',
- 'براي',
- 'برای',
- 'برایِ',
- 'برخوردار',
- 'برخي',
- 'برخی',
- 'برداري',
- 'برعکس',
- 'بروز',
- 'بزرگ',
- 'بزودی',
- 'بسا',
- 'بسيار',
- 'بسياري',
- 'بسیار',
- 'بسیاری',
- 'بطور',
- 'بعد',
- 'بعدا',
- 'بعدها',
- 'بعری',
- 'بعضا',
- 'بعضي',
- 'بلافاصله',
- 'بلكه',
- 'بله',
- 'بلکه',
- 'بلی',
- 'بنابراين',
- 'بنابراین',
- 'بندي',
- 'به',
- 'بهتر',
- 'بهترين',
- 'بود',
- 'بودم',
- 'بودن',
- 'بودند',
- 'بوده',
- 'بودی',
- 'بودید',
- 'بودیم',
- 'بویژه',
- 'بي',
- 'بيست',
- 'بيش',
- 'بيشتر',
- 'بيشتري',
- 'بين',
- 'بکن',
- 'بکند',
- 'بکنم',
- 'بکنند',
- 'بکنی',
- 'بکنید',
- 'بکنیم',
- 'بگو',
- 'بگوید',
- 'بگویم',
- 'بگویند',
- 'بگویی',
- 'بگویید',
- 'بگوییم',
- 'بگیر',
- 'بگیرد',
- 'بگیرم',
- 'بگیرند',
- 'بگیری',
- 'بگیرید',
- 'بگیریم',
- 'بی',
- 'بیا',
- 'بیاب',
- 'بیابد',
- 'بیابم',
- 'بیابند',
- 'بیابی',
- 'بیابید',
- 'بیابیم',
- 'بیاور',
- 'بیاورد',
- 'بیاورم',
- 'بیاورند',
- 'بیاوری',
- 'بیاورید',
- 'بیاوریم',
- 'بیاید',
- 'بیایم',
- 'بیایند',
- 'بیایی',
- 'بیایید',
- 'بیاییم',
- 'بیرون',
- 'بیرونِ',
- 'بیش',
- 'بیشتر',
- 'بیشتری',
- 'بین',
- 'ت',
- 'تا',
- 'تازه',
- 'تاكنون',
- 'تان',
- 'تاکنون',
- 'تحت',
- 'تر',
- 'تر براساس',
- 'ترين',
- 'تقریبا',
- 'تلویحا',
- 'تمام',
- 'تماما',
- 'تمامي',
- 'تنها',
- 'تو',
- 'تواند',
- 'توانست',
- 'توانستم',
- 'توانستن',
- 'توانستند',
- 'توانسته',
- 'توانستی',
- 'توانستیم',
- 'توانم',
- 'توانند',
- 'توانی',
- 'توانید',
- 'توانیم',
- 'توسط',
- 'تولِ',
- 'تویِ',
- 'ثانیا',
- 'جا',
- 'جاي',
- 'جايي',
- 'جای',
- 'جدا',
- 'جديد',
- 'جدید',
- 'جريان',
- 'جریان',
- 'جز',
- 'جلوگيري',
- 'جلویِ',
- 'جمعا',
- 'جناح',
- 'جهت',
- 'حاضر',
- 'حال',
- 'حالا',
- 'حتما',
- 'حتي',
- 'حتی',
- 'حداکثر',
- 'حدودا',
- 'حدودِ',
- 'حق',
- 'خارجِ',
- 'خب',
- 'خدمات',
- 'خصوصا',
- 'خلاصه',
- 'خواست',
- 'خواستم',
- 'خواستن',
- 'خواستند',
- 'خواسته',
- 'خواستی',
- 'خواستید',
- 'خواستیم',
- 'خواهد',
- 'خواهم',
- 'خواهند',
- 'خواهيم',
- 'خواهی',
- 'خواهید',
- 'خواهیم',
- 'خوب',
- 'خود',
- 'خودت',
- 'خودتان',
- 'خودش',
- 'خودشان',
- 'خودم',
- 'خودمان',
- 'خوشبختانه',
- 'خويش',
- 'خویش',
- 'خویشتن',
- 'خیاه',
- 'خیر',
- 'خیلی',
- 'داد',
- 'دادم',
- 'دادن',
- 'دادند',
- 'داده',
- 'دادی',
- 'دادید',
- 'دادیم',
- 'دار',
- 'دارد',
- 'دارم',
- 'دارند',
- 'داريم',
- 'داری',
- 'دارید',
- 'داریم',
- 'داشت',
- 'داشتم',
- 'داشتن',
- 'داشتند',
- 'داشته',
- 'داشتی',
- 'داشتید',
- 'داشتیم',
- 'دانست',
- 'دانند',
- 'دایم',
- 'دایما',
- 'در',
- 'درباره',
- 'درمجموع',
- 'درون',
- 'دریغ',
- 'دقیقا',
- 'دنبالِ',
- 'ده',
- 'دهد',
- 'دهم',
- 'دهند',
- 'دهی',
- 'دهید',
- 'دهیم',
- 'دو',
- 'دوباره',
- 'دوم',
- 'ديده',
- 'ديروز',
- 'ديگر',
- 'ديگران',
- 'ديگري',
- 'دیر',
- 'دیروز',
- 'دیگر',
- 'دیگران',
- 'دیگری',
- 'را',
- 'راحت',
- 'راسا',
- 'راستی',
- 'راه',
- 'رسما',
- 'رسید',
- 'رفت',
- 'رفته',
- 'رو',
- 'روب',
- 'روز',
- 'روزانه',
- 'روزهاي',
- 'روي',
- 'روی',
- 'رویِ',
- 'ريزي',
- 'زمان',
- 'زمانی',
- 'زمینه',
- 'زود',
- 'زياد',
- 'زير',
- 'زيرا',
- 'زیر',
- 'زیرِ',
- 'سابق',
- 'ساخته',
- 'سازي',
- 'سالانه',
- 'سالیانه',
- 'سایر',
- 'سراسر',
- 'سرانجام',
- 'سریعا',
- 'سریِ',
- 'سعي',
- 'سمتِ',
- 'سوم',
- 'سوي',
- 'سوی',
- 'سویِ',
- 'سپس',
- 'شان',
- 'شايد',
- 'شاید',
- 'شخصا',
- 'شد',
- 'شدم',
- 'شدن',
- 'شدند',
- 'شده',
- 'شدی',
- 'شدید',
- 'شدیدا',
- 'شدیم',
- 'شش',
- 'شش نداشته',
- 'شما',
- 'شناسي',
- 'شود',
- 'شوم',
- 'شوند',
- 'شونده',
- 'شوی',
- 'شوید',
- 'شویم',
- 'صرفا',
- 'صورت',
- 'ضدِّ',
- 'ضدِّ',
- 'ضمن',
- 'طبعا',
- 'طبقِ',
- 'طبیعتا',
- 'طرف',
- 'طريق',
- 'طریق',
- 'طور',
- 'طي',
- 'طی',
- 'ظاهرا',
- 'عدم',
- 'عقبِ',
- 'علّتِ',
- 'علیه',
- 'عمدا',
- 'عمدتا',
- 'عمل',
- 'عملا',
- 'عنوان',
- 'عنوانِ',
- 'غالبا',
- 'غير',
- 'غیر',
- 'فردا',
- 'فعلا',
- 'فقط',
- 'فكر',
- 'فوق',
- 'قابل',
- 'قبل',
- 'قبلا',
- 'قدری',
- 'قصدِ',
- 'قطعا',
- 'كرد',
- 'كردم',
- 'كردن',
- 'كردند',
- 'كرده',
- 'كسي',
- 'كل',
- 'كمتر',
- 'كند',
- 'كنم',
- 'كنند',
- 'كنيد',
- 'كنيم',
- 'كه',
- 'لااقل',
- 'لطفا',
- 'لطفاً',
- 'ما',
- 'مان',
- 'مانند',
- 'مانندِ',
- 'مبادا',
- 'متاسفانه',
- 'متعاقبا',
- 'مثل',
- 'مثلا',
- 'مثلِ',
- 'مجانی',
- 'مجددا',
- 'مجموعا',
- 'مختلف',
- 'مدام',
- 'مدت',
- 'مدّتی',
- 'مردم',
- 'مرسی',
- 'مستقیما',
- 'مسلما',
- 'مطمینا',
- 'معمولا',
- 'مقابل',
- 'ممکن',
- 'من',
- 'موارد',
- 'مورد',
- 'موقتا',
- 'مي',
- 'ميليارد',
- 'ميليون',
- 'مگر',
- 'می',
- 'می شود',
- 'میان',
- 'میرسد',
- 'میرود',
- 'میشود',
- 'میکنیم',
- 'ناشي',
- 'نام',
- 'ناگاه',
- 'ناگهان',
- 'ناگهانی',
- 'نبايد',
- 'نباید',
- 'نبود',
- 'نخست',
- 'نخستين',
- 'نخواهد',
- 'نخواهم',
- 'نخواهند',
- 'نخواهی',
- 'نخواهید',
- 'نخواهیم',
- 'ندارد',
- 'ندارم',
- 'ندارند',
- 'نداری',
- 'ندارید',
- 'نداریم',
- 'نداشت',
- 'نداشتم',
- 'نداشتند',
- 'نداشته',
- 'نداشتی',
- 'نداشتید',
- 'نداشتیم',
- 'نزديك',
- 'نزدِ',
- 'نزدیکِ',
- 'نسبتا',
- 'نشان',
- 'نشده',
- 'نظير',
- 'نظیر',
- 'نكرده',
- 'نمايد',
- 'نمي',
- 'نمی',
- 'نمیشود',
- 'نه',
- 'نهایتا',
- 'نوع',
- 'نوعي',
- 'نوعی',
- 'نيز',
- 'نيست',
- 'نگاه',
- 'نیز',
- 'نیست',
- 'ها',
- 'هاي',
- 'هايي',
- 'های',
- 'هایی',
- 'هبچ',
- 'هر',
- 'هرچه',
- 'هرگز',
- 'هزار',
- 'هست',
- 'هستم',
- 'هستند',
- 'هستيم',
- 'هستی',
- 'هستید',
- 'هستیم',
- 'هفت',
- 'هم',
- 'همان',
- 'همه',
- 'همواره',
- 'همين',
- 'همچنان',
- 'همچنين',
- 'همچنین',
- 'همچون',
- 'همیشه',
- 'همین',
- 'هنوز',
- 'هنگام',
- 'هنگامِ',
- 'هنگامی',
- 'هيچ',
- 'هیچ',
- 'هیچگاه',
- 'و',
- 'واقعا',
- 'واقعی',
- 'وجود',
- 'وسطِ',
- 'وضع',
- 'وقتي',
- 'وقتی',
- 'وقتیکه',
- 'ولی',
- 'وي',
- 'وگو',
- 'وی',
- 'ویژه',
- 'يا',
- 'يابد',
- 'يك',
- 'يكديگر',
- 'يكي',
- 'ّه',
- '٪',
- 'پارسال',
- 'پاعینِ',
- 'پس',
- 'پنج',
- 'پيش',
- 'پیدا',
- 'پیش',
- 'پیشاپیش',
- 'پیشتر',
- 'پیشِ',
- 'چرا',
- 'چطور',
- 'چقدر',
- 'چنان',
- 'چنانچه',
- 'چنانکه',
- 'چند',
- 'چندین',
- 'چنين',
- 'چنین',
- 'چه',
- 'چهار',
- 'چو',
- 'چون',
- 'چيزي',
- 'چگونه',
- 'چیز',
- 'چیزی',
- 'چیست',
- 'کاش',
- 'کامل',
- 'کاملا',
- 'کتبا',
- 'کجا',
- 'کجاست',
- 'کدام',
- 'کرد',
- 'کردم',
- 'کردن',
- 'کردند',
- 'کرده',
- 'کردی',
- 'کردید',
- 'کردیم',
- 'کس',
- 'کسانی',
- 'کسی',
- 'کل',
- 'کلا',
- 'کم',
- 'کماکان',
- 'کمتر',
- 'کمتری',
- 'کمی',
- 'کن',
- 'کنار',
- 'کنارِ',
- 'کند',
- 'کنم',
- 'کنند',
- 'کننده',
- 'کنون',
- 'کنونی',
- 'کنی',
- 'کنید',
- 'کنیم',
- 'که',
- 'کو',
- 'کَی',
- 'کی',
- 'گاه',
- 'گاهی',
- 'گذاري',
- 'گذاشته',
- 'گذشته',
- 'گردد',
- 'گرفت',
- 'گرفتم',
- 'گرفتن',
- 'گرفتند',
- 'گرفته',
- 'گرفتی',
- 'گرفتید',
- 'گرفتیم',
- 'گروهي',
- 'گفت',
- 'گفتم',
- 'گفتن',
- 'گفتند',
- 'گفته',
- 'گفتی',
- 'گفتید',
- 'گفتیم',
- 'گه',
- 'گهگاه',
- 'گو',
- 'گويد',
- 'گويند',
- 'گویا',
- 'گوید',
- 'گویم',
- 'گویند',
- 'گویی',
- 'گویید',
- 'گوییم',
- 'گيرد',
- 'گيري',
- 'گیرد',
- 'گیرم',
- 'گیرند',
- 'گیری',
- 'گیرید',
- 'گیریم',
- 'ی',
- 'یا',
- 'یابد',
- 'یابم',
- 'یابند',
- 'یابی',
- 'یابید',
- 'یابیم',
- 'یافت',
- 'یافتم',
- 'یافتن',
- 'یافته',
- 'یافتی',
- 'یافتید',
- 'یافتیم',
- 'یعنی',
- 'یقینا',
- 'یه',
- 'یک',
- 'یکی',
- '۰',
- '۱',
- '۲',
- '۳',
- '۴',
- '۵',
- '۶',
- '۷',
- '۸',
- '۹',
- ],
- pl: [
- 'a',
- 'aby',
- 'ach',
- 'acz',
- 'aczkolwiek',
- 'aj',
- 'albo',
- 'ale',
- 'ależ',
- 'ani',
- 'aż',
- 'bardziej',
- 'bardzo',
- 'bez',
- 'bo',
- 'bowiem',
- 'by',
- 'byli',
- 'bym',
- 'bynajmniej',
- 'być',
- 'był',
- 'była',
- 'było',
- 'były',
- 'będzie',
- 'będą',
- 'cali',
- 'cała',
- 'cały',
- 'chce',
- 'choć',
- 'ci',
- 'ciebie',
- 'cię',
- 'co',
- 'cokolwiek',
- 'coraz',
- 'coś',
- 'czasami',
- 'czasem',
- 'czemu',
- 'czy',
- 'czyli',
- 'często',
- 'daleko',
- 'dla',
- 'dlaczego',
- 'dlatego',
- 'do',
- 'dobrze',
- 'dokąd',
- 'dość',
- 'dr',
- 'dużo',
- 'dwa',
- 'dwaj',
- 'dwie',
- 'dwoje',
- 'dzisiaj',
- 'dziś',
- 'gdy',
- 'gdyby',
- 'gdyż',
- 'gdzie',
- 'gdziekolwiek',
- 'gdzieś',
- 'go',
- 'godz',
- 'hab',
- 'i',
- 'ich',
- 'ii',
- 'iii',
- 'ile',
- 'im',
- 'inna',
- 'inne',
- 'inny',
- 'innych',
- 'inż',
- 'iv',
- 'ix',
- 'iż',
- 'ja',
- 'jak',
- 'jakaś',
- 'jakby',
- 'jaki',
- 'jakichś',
- 'jakie',
- 'jakiś',
- 'jakiż',
- 'jakkolwiek',
- 'jako',
- 'jakoś',
- 'je',
- 'jeden',
- 'jedna',
- 'jednak',
- 'jednakże',
- 'jedno',
- 'jednym',
- 'jedynie',
- 'jego',
- 'jej',
- 'jemu',
- 'jest',
- 'jestem',
- 'jeszcze',
- 'jeśli',
- 'jeżeli',
- 'już',
- 'ją',
- 'każdy',
- 'kiedy',
- 'kierunku',
- 'kilka',
- 'kilku',
- 'kimś',
- 'kto',
- 'ktokolwiek',
- 'ktoś',
- 'która',
- 'które',
- 'którego',
- 'której',
- 'który',
- 'których',
- 'którym',
- 'którzy',
- 'ku',
- 'lat',
- 'lecz',
- 'lub',
- 'ma',
- 'mają',
- 'mam',
- 'mamy',
- 'mało',
- 'mgr',
- 'mi',
- 'miał',
- 'mimo',
- 'między',
- 'mnie',
- 'mną',
- 'mogą',
- 'moi',
- 'moim',
- 'moja',
- 'moje',
- 'może',
- 'możliwe',
- 'można',
- 'mu',
- 'musi',
- 'my',
- 'mój',
- 'na',
- 'nad',
- 'nam',
- 'nami',
- 'nas',
- 'nasi',
- 'nasz',
- 'nasza',
- 'nasze',
- 'naszego',
- 'naszych',
- 'natomiast',
- 'natychmiast',
- 'nawet',
- 'nic',
- 'nich',
- 'nie',
- 'niech',
- 'niego',
- 'niej',
- 'niemu',
- 'nigdy',
- 'nim',
- 'nimi',
- 'nią',
- 'niż',
- 'no',
- 'nowe',
- 'np',
- 'nr',
- 'o',
- 'o.o.',
- 'obok',
- 'od',
- 'ok',
- 'około',
- 'on',
- 'ona',
- 'one',
- 'oni',
- 'ono',
- 'oraz',
- 'oto',
- 'owszem',
- 'pan',
- 'pana',
- 'pani',
- 'pl',
- 'po',
- 'pod',
- 'podczas',
- 'pomimo',
- 'ponad',
- 'ponieważ',
- 'powinien',
- 'powinna',
- 'powinni',
- 'powinno',
- 'poza',
- 'prawie',
- 'prof',
- 'przecież',
- 'przed',
- 'przede',
- 'przedtem',
- 'przez',
- 'przy',
- 'raz',
- 'razie',
- 'roku',
- 'również',
- 'sam',
- 'sama',
- 'się',
- 'skąd',
- 'sobie',
- 'sobą',
- 'sposób',
- 'swoje',
- 'są',
- 'ta',
- 'tak',
- 'taka',
- 'taki',
- 'takich',
- 'takie',
- 'także',
- 'tam',
- 'te',
- 'tego',
- 'tej',
- 'tel',
- 'temu',
- 'ten',
- 'teraz',
- 'też',
- 'to',
- 'tobie',
- 'tobą',
- 'toteż',
- 'totobą',
- 'trzeba',
- 'tu',
- 'tutaj',
- 'twoi',
- 'twoim',
- 'twoja',
- 'twoje',
- 'twym',
- 'twój',
- 'ty',
- 'tych',
- 'tylko',
- 'tym',
- 'tys',
- 'tzw',
- 'tę',
- 'u',
- 'ul',
- 'vi',
- 'vii',
- 'viii',
- 'vol',
- 'w',
- 'wam',
- 'wami',
- 'was',
- 'wasi',
- 'wasz',
- 'wasza',
- 'wasze',
- 'we',
- 'według',
- 'wie',
- 'wiele',
- 'wielu',
- 'więc',
- 'więcej',
- 'wszyscy',
- 'wszystkich',
- 'wszystkie',
- 'wszystkim',
- 'wszystko',
- 'wtedy',
- 'www',
- 'wy',
- 'właśnie',
- 'wśród',
- 'xi',
- 'xii',
- 'xiii',
- 'xiv',
- 'xv',
- 'z',
- 'za',
- 'zapewne',
- 'zawsze',
- 'zaś',
- 'ze',
- 'zeznowu',
- 'znowu',
- 'znów',
- 'został',
- 'zł',
- 'żaden',
- 'żadna',
- 'żadne',
- 'żadnych',
- 'że',
- 'żeby',
- ],
- pt: [
- 'a',
- 'acerca',
- 'adeus',
- 'agora',
- 'ainda',
- 'alem',
- 'algmas',
- 'algo',
- 'algumas',
- 'alguns',
- 'ali',
- 'além',
- 'ambas',
- 'ambos',
- 'ano',
- 'anos',
- 'antes',
- 'ao',
- 'aonde',
- 'aos',
- 'apenas',
- 'apoio',
- 'apontar',
- 'apos',
- 'após',
- 'aquela',
- 'aquelas',
- 'aquele',
- 'aqueles',
- 'aqui',
- 'aquilo',
- 'as',
- 'assim',
- 'através',
- 'atrás',
- 'até',
- 'aí',
- 'baixo',
- 'bastante',
- 'bem',
- 'boa',
- 'boas',
- 'bom',
- 'bons',
- 'breve',
- 'cada',
- 'caminho',
- 'catorze',
- 'cedo',
- 'cento',
- 'certamente',
- 'certeza',
- 'cima',
- 'cinco',
- 'coisa',
- 'com',
- 'como',
- 'comprido',
- 'conhecido',
- 'conselho',
- 'contra',
- 'contudo',
- 'corrente',
- 'cuja',
- 'cujas',
- 'cujo',
- 'cujos',
- 'custa',
- 'cá',
- 'da',
- 'daquela',
- 'daquelas',
- 'daquele',
- 'daqueles',
- 'dar',
- 'das',
- 'de',
- 'debaixo',
- 'dela',
- 'delas',
- 'dele',
- 'deles',
- 'demais',
- 'dentro',
- 'depois',
- 'desde',
- 'desligado',
- 'dessa',
- 'dessas',
- 'desse',
- 'desses',
- 'desta',
- 'destas',
- 'deste',
- 'destes',
- 'deve',
- 'devem',
- 'deverá',
- 'dez',
- 'dezanove',
- 'dezasseis',
- 'dezassete',
- 'dezoito',
- 'dia',
- 'diante',
- 'direita',
- 'dispoe',
- 'dispoem',
- 'diversa',
- 'diversas',
- 'diversos',
- 'diz',
- 'dizem',
- 'dizer',
- 'do',
- 'dois',
- 'dos',
- 'doze',
- 'duas',
- 'durante',
- 'dá',
- 'dão',
- 'dúvida',
- 'e',
- 'ela',
- 'elas',
- 'ele',
- 'eles',
- 'em',
- 'embora',
- 'enquanto',
- 'entao',
- 'entre',
- 'então',
- 'era',
- 'eram',
- 'essa',
- 'essas',
- 'esse',
- 'esses',
- 'esta',
- 'estado',
- 'estamos',
- 'estar',
- 'estará',
- 'estas',
- 'estava',
- 'estavam',
- 'este',
- 'esteja',
- 'estejam',
- 'estejamos',
- 'estes',
- 'esteve',
- 'estive',
- 'estivemos',
- 'estiver',
- 'estivera',
- 'estiveram',
- 'estiverem',
- 'estivermos',
- 'estivesse',
- 'estivessem',
- 'estiveste',
- 'estivestes',
- 'estivéramos',
- 'estivéssemos',
- 'estou',
- 'está',
- 'estás',
- 'estávamos',
- 'estão',
- 'eu',
- 'exemplo',
- 'falta',
- 'fará',
- 'favor',
- 'faz',
- 'fazeis',
- 'fazem',
- 'fazemos',
- 'fazer',
- 'fazes',
- 'fazia',
- 'faço',
- 'fez',
- 'fim',
- 'final',
- 'foi',
- 'fomos',
- 'for',
- 'fora',
- 'foram',
- 'forem',
- 'forma',
- 'formos',
- 'fosse',
- 'fossem',
- 'foste',
- 'fostes',
- 'fui',
- 'fôramos',
- 'fôssemos',
- 'geral',
- 'grande',
- 'grandes',
- 'grupo',
- 'ha',
- 'haja',
- 'hajam',
- 'hajamos',
- 'havemos',
- 'havia',
- 'hei',
- 'hoje',
- 'hora',
- 'horas',
- 'houve',
- 'houvemos',
- 'houver',
- 'houvera',
- 'houveram',
- 'houverei',
- 'houverem',
- 'houveremos',
- 'houveria',
- 'houveriam',
- 'houvermos',
- 'houverá',
- 'houverão',
- 'houveríamos',
- 'houvesse',
- 'houvessem',
- 'houvéramos',
- 'houvéssemos',
- 'há',
- 'hão',
- 'iniciar',
- 'inicio',
- 'ir',
- 'irá',
- 'isso',
- 'ista',
- 'iste',
- 'isto',
- 'já',
- 'lado',
- 'lhe',
- 'lhes',
- 'ligado',
- 'local',
- 'logo',
- 'longe',
- 'lugar',
- 'lá',
- 'maior',
- 'maioria',
- 'maiorias',
- 'mais',
- 'mal',
- 'mas',
- 'me',
- 'mediante',
- 'meio',
- 'menor',
- 'menos',
- 'meses',
- 'mesma',
- 'mesmas',
- 'mesmo',
- 'mesmos',
- 'meu',
- 'meus',
- 'mil',
- 'minha',
- 'minhas',
- 'momento',
- 'muito',
- 'muitos',
- 'máximo',
- 'mês',
- 'na',
- 'nada',
- 'nao',
- 'naquela',
- 'naquelas',
- 'naquele',
- 'naqueles',
- 'nas',
- 'nem',
- 'nenhuma',
- 'nessa',
- 'nessas',
- 'nesse',
- 'nesses',
- 'nesta',
- 'nestas',
- 'neste',
- 'nestes',
- 'no',
- 'noite',
- 'nome',
- 'nos',
- 'nossa',
- 'nossas',
- 'nosso',
- 'nossos',
- 'nova',
- 'novas',
- 'nove',
- 'novo',
- 'novos',
- 'num',
- 'numa',
- 'numas',
- 'nunca',
- 'nuns',
- 'não',
- 'nível',
- 'nós',
- 'número',
- 'o',
- 'obra',
- 'obrigada',
- 'obrigado',
- 'oitava',
- 'oitavo',
- 'oito',
- 'onde',
- 'ontem',
- 'onze',
- 'os',
- 'ou',
- 'outra',
- 'outras',
- 'outro',
- 'outros',
- 'para',
- 'parece',
- 'parte',
- 'partir',
- 'paucas',
- 'pegar',
- 'pela',
- 'pelas',
- 'pelo',
- 'pelos',
- 'perante',
- 'perto',
- 'pessoas',
- 'pode',
- 'podem',
- 'poder',
- 'poderá',
- 'podia',
- 'pois',
- 'ponto',
- 'pontos',
- 'por',
- 'porque',
- 'porquê',
- 'portanto',
- 'posição',
- 'possivelmente',
- 'posso',
- 'possível',
- 'pouca',
- 'pouco',
- 'poucos',
- 'povo',
- 'primeira',
- 'primeiras',
- 'primeiro',
- 'primeiros',
- 'promeiro',
- 'propios',
- 'proprio',
- 'própria',
- 'próprias',
- 'próprio',
- 'próprios',
- 'próxima',
- 'próximas',
- 'próximo',
- 'próximos',
- 'puderam',
- 'pôde',
- 'põe',
- 'põem',
- 'quais',
- 'qual',
- 'qualquer',
- 'quando',
- 'quanto',
- 'quarta',
- 'quarto',
- 'quatro',
- 'que',
- 'quem',
- 'quer',
- 'quereis',
- 'querem',
- 'queremas',
- 'queres',
- 'quero',
- 'questão',
- 'quieto',
- 'quinta',
- 'quinto',
- 'quinze',
- 'quáis',
- 'quê',
- 'relação',
- 'sabe',
- 'sabem',
- 'saber',
- 'se',
- 'segunda',
- 'segundo',
- 'sei',
- 'seis',
- 'seja',
- 'sejam',
- 'sejamos',
- 'sem',
- 'sempre',
- 'sendo',
- 'ser',
- 'serei',
- 'seremos',
- 'seria',
- 'seriam',
- 'será',
- 'serão',
- 'seríamos',
- 'sete',
- 'seu',
- 'seus',
- 'sexta',
- 'sexto',
- 'sim',
- 'sistema',
- 'sob',
- 'sobre',
- 'sois',
- 'somente',
- 'somos',
- 'sou',
- 'sua',
- 'suas',
- 'são',
- 'sétima',
- 'sétimo',
- 'só',
- 'tal',
- 'talvez',
- 'tambem',
- 'também',
- 'tanta',
- 'tantas',
- 'tanto',
- 'tarde',
- 'te',
- 'tem',
- 'temos',
- 'tempo',
- 'tendes',
- 'tenha',
- 'tenham',
- 'tenhamos',
- 'tenho',
- 'tens',
- 'tentar',
- 'tentaram',
- 'tente',
- 'tentei',
- 'ter',
- 'terceira',
- 'terceiro',
- 'terei',
- 'teremos',
- 'teria',
- 'teriam',
- 'terá',
- 'terão',
- 'teríamos',
- 'teu',
- 'teus',
- 'teve',
- 'tinha',
- 'tinham',
- 'tipo',
- 'tive',
- 'tivemos',
- 'tiver',
- 'tivera',
- 'tiveram',
- 'tiverem',
- 'tivermos',
- 'tivesse',
- 'tivessem',
- 'tiveste',
- 'tivestes',
- 'tivéramos',
- 'tivéssemos',
- 'toda',
- 'todas',
- 'todo',
- 'todos',
- 'trabalhar',
- 'trabalho',
- 'treze',
- 'três',
- 'tu',
- 'tua',
- 'tuas',
- 'tudo',
- 'tão',
- 'tém',
- 'têm',
- 'tínhamos',
- 'um',
- 'uma',
- 'umas',
- 'uns',
- 'usa',
- 'usar',
- 'vai',
- 'vais',
- 'valor',
- 'veja',
- 'vem',
- 'vens',
- 'ver',
- 'verdade',
- 'verdadeiro',
- 'vez',
- 'vezes',
- 'viagem',
- 'vindo',
- 'vinte',
- 'você',
- 'vocês',
- 'vos',
- 'vossa',
- 'vossas',
- 'vosso',
- 'vossos',
- 'vários',
- 'vão',
- 'vêm',
- 'vós',
- 'zero',
- 'à',
- 'às',
- 'área',
- 'é',
- 'éramos',
- 'és',
- 'último',
- ],
- ro: [
- 'a',
- 'abia',
- 'acea',
- 'aceasta',
- 'această',
- 'aceea',
- 'aceeasi',
- 'acei',
- 'aceia',
- 'acel',
- 'acela',
- 'acelasi',
- 'acele',
- 'acelea',
- 'acest',
- 'acesta',
- 'aceste',
- 'acestea',
- 'acestei',
- 'acestia',
- 'acestui',
- 'aceşti',
- 'aceştia',
- 'acolo',
- 'acord',
- 'acum',
- 'adica',
- 'ai',
- 'aia',
- 'aibă',
- 'aici',
- 'aiurea',
- 'al',
- 'ala',
- 'alaturi',
- 'ale',
- 'alea',
- 'alt',
- 'alta',
- 'altceva',
- 'altcineva',
- 'alte',
- 'altfel',
- 'alti',
- 'altii',
- 'altul',
- 'am',
- 'anume',
- 'apoi',
- 'ar',
- 'are',
- 'as',
- 'asa',
- 'asemenea',
- 'asta',
- 'astazi',
- 'astea',
- 'astfel',
- 'astăzi',
- 'asupra',
- 'atare',
- 'atat',
- 'atata',
- 'atatea',
- 'atatia',
- 'ati',
- 'atit',
- 'atita',
- 'atitea',
- 'atitia',
- 'atunci',
- 'au',
- 'avea',
- 'avem',
- 'aveţi',
- 'avut',
- 'azi',
- 'aş',
- 'aşadar',
- 'aţi',
- 'b',
- 'ba',
- 'bine',
- 'bucur',
- 'bună',
- 'c',
- 'ca',
- 'cam',
- 'cand',
- 'capat',
- 'care',
- 'careia',
- 'carora',
- 'caruia',
- 'cat',
- 'catre',
- 'caut',
- 'ce',
- 'cea',
- 'ceea',
- 'cei',
- 'ceilalti',
- 'cel',
- 'cele',
- 'celor',
- 'ceva',
- 'chiar',
- 'ci',
- 'cinci',
- 'cind',
- 'cine',
- 'cineva',
- 'cit',
- 'cita',
- 'cite',
- 'citeva',
- 'citi',
- 'citiva',
- 'conform',
- 'contra',
- 'cu',
- 'cui',
- 'cum',
- 'cumva',
- 'curând',
- 'curînd',
- 'când',
- 'cât',
- 'câte',
- 'câtva',
- 'câţi',
- 'cînd',
- 'cît',
- 'cîte',
- 'cîtva',
- 'cîţi',
- 'că',
- 'căci',
- 'cărei',
- 'căror',
- 'cărui',
- 'către',
- 'd',
- 'da',
- 'daca',
- 'dacă',
- 'dar',
- 'dat',
- 'datorită',
- 'dată',
- 'dau',
- 'de',
- 'deasupra',
- 'deci',
- 'decit',
- 'degraba',
- 'deja',
- 'deoarece',
- 'departe',
- 'desi',
- 'despre',
- 'deşi',
- 'din',
- 'dinaintea',
- 'dintr',
- 'dintr-',
- 'dintre',
- 'doar',
- 'doi',
- 'doilea',
- 'două',
- 'drept',
- 'dupa',
- 'după',
- 'dă',
- 'e',
- 'ea',
- 'ei',
- 'el',
- 'ele',
- 'era',
- 'eram',
- 'este',
- 'eu',
- 'exact',
- 'eşti',
- 'f',
- 'face',
- 'fara',
- 'fata',
- 'fel',
- 'fi',
- 'fie',
- 'fiecare',
- 'fii',
- 'fim',
- 'fiu',
- 'fiţi',
- 'foarte',
- 'fost',
- 'frumos',
- 'fără',
- 'g',
- 'geaba',
- 'graţie',
- 'h',
- 'halbă',
- 'i',
- 'ia',
- 'iar',
- 'ieri',
- 'ii',
- 'il',
- 'imi',
- 'in',
- 'inainte',
- 'inapoi',
- 'inca',
- 'incit',
- 'insa',
- 'intr',
- 'intre',
- 'isi',
- 'iti',
- 'j',
- 'k',
- 'l',
- 'la',
- 'le',
- 'li',
- 'lor',
- 'lui',
- 'lângă',
- 'lîngă',
- 'm',
- 'ma',
- 'mai',
- 'mare',
- 'mea',
- 'mei',
- 'mele',
- 'mereu',
- 'meu',
- 'mi',
- 'mie',
- 'mine',
- 'mod',
- 'mult',
- 'multa',
- 'multe',
- 'multi',
- 'multă',
- 'mulţi',
- 'mulţumesc',
- 'mâine',
- 'mîine',
- 'mă',
- 'n',
- 'ne',
- 'nevoie',
- 'ni',
- 'nici',
- 'niciodata',
- 'nicăieri',
- 'nimeni',
- 'nimeri',
- 'nimic',
- 'niste',
- 'nişte',
- 'noastre',
- 'noastră',
- 'noi',
- 'noroc',
- 'nostri',
- 'nostru',
- 'nou',
- 'noua',
- 'nouă',
- 'noştri',
- 'nu',
- 'numai',
- 'o',
- 'opt',
- 'or',
- 'ori',
- 'oricare',
- 'orice',
- 'oricine',
- 'oricum',
- 'oricând',
- 'oricât',
- 'oricînd',
- 'oricît',
- 'oriunde',
- 'p',
- 'pai',
- 'parca',
- 'patra',
- 'patru',
- 'patrulea',
- 'pe',
- 'pentru',
- 'peste',
- 'pic',
- 'pina',
- 'plus',
- 'poate',
- 'pot',
- 'prea',
- 'prima',
- 'primul',
- 'prin',
- 'printr-',
- 'putini',
- 'puţin',
- 'puţina',
- 'puţină',
- 'până',
- 'pînă',
- 'r',
- 'rog',
- 's',
- 'sa',
- 'sa-mi',
- 'sa-ti',
- 'sai',
- 'sale',
- 'sau',
- 'se',
- 'si',
- 'sint',
- 'sintem',
- 'spate',
- 'spre',
- 'sub',
- 'sunt',
- 'suntem',
- 'sunteţi',
- 'sus',
- 'sută',
- 'sînt',
- 'sîntem',
- 'sînteţi',
- 'să',
- 'săi',
- 'său',
- 't',
- 'ta',
- 'tale',
- 'te',
- 'ti',
- 'timp',
- 'tine',
- 'toata',
- 'toate',
- 'toată',
- 'tocmai',
- 'tot',
- 'toti',
- 'totul',
- 'totusi',
- 'totuşi',
- 'toţi',
- 'trei',
- 'treia',
- 'treilea',
- 'tu',
- 'tuturor',
- 'tăi',
- 'tău',
- 'u',
- 'ul',
- 'ului',
- 'un',
- 'una',
- 'unde',
- 'undeva',
- 'unei',
- 'uneia',
- 'unele',
- 'uneori',
- 'unii',
- 'unor',
- 'unora',
- 'unu',
- 'unui',
- 'unuia',
- 'unul',
- 'v',
- 'va',
- 'vi',
- 'voastre',
- 'voastră',
- 'voi',
- 'vom',
- 'vor',
- 'vostru',
- 'vouă',
- 'voştri',
- 'vreme',
- 'vreo',
- 'vreun',
- 'vă',
- 'x',
- 'z',
- 'zece',
- 'zero',
- 'zi',
- 'zice',
- 'îi',
- 'îl',
- 'îmi',
- 'împotriva',
- 'în',
- 'înainte',
- 'înaintea',
- 'încotro',
- 'încât',
- 'încît',
- 'între',
- 'întrucât',
- 'întrucît',
- 'îţi',
- 'ăla',
- 'ălea',
- 'ăsta',
- 'ăstea',
- 'ăştia',
- 'şapte',
- 'şase',
- 'şi',
- 'ştiu',
- 'ţi',
- 'ţie',
- ],
- ru: [
- 'c',
- 'а',
- 'алло',
- 'без',
- 'белый',
- 'близко',
- 'более',
- 'больше',
- 'большой',
- 'будем',
- 'будет',
- 'будете',
- 'будешь',
- 'будто',
- 'буду',
- 'будут',
- 'будь',
- 'бы',
- 'бывает',
- 'бывь',
- 'был',
- 'была',
- 'были',
- 'было',
- 'быть',
- 'в',
- 'важная',
- 'важное',
- 'важные',
- 'важный',
- 'вам',
- 'вами',
- 'вас',
- 'ваш',
- 'ваша',
- 'ваше',
- 'ваши',
- 'вверх',
- 'вдали',
- 'вдруг',
- 'ведь',
- 'везде',
- 'вернуться',
- 'весь',
- 'вечер',
- 'взгляд',
- 'взять',
- 'вид',
- 'видел',
- 'видеть',
- 'вместе',
- 'вне',
- 'вниз',
- 'внизу',
- 'во',
- 'вода',
- 'война',
- 'вокруг',
- 'вон',
- 'вообще',
- 'вопрос',
- 'восемнадцатый',
- 'восемнадцать',
- 'восемь',
- 'восьмой',
- 'вот',
- 'впрочем',
- 'времени',
- 'время',
- 'все',
- 'все еще',
- 'всегда',
- 'всего',
- 'всем',
- 'всеми',
- 'всему',
- 'всех',
- 'всею',
- 'всю',
- 'всюду',
- 'вся',
- 'всё',
- 'второй',
- 'вы',
- 'выйти',
- 'г',
- 'где',
- 'главный',
- 'глаз',
- 'говорил',
- 'говорит',
- 'говорить',
- 'год',
- 'года',
- 'году',
- 'голова',
- 'голос',
- 'город',
- 'да',
- 'давать',
- 'давно',
- 'даже',
- 'далекий',
- 'далеко',
- 'дальше',
- 'даром',
- 'дать',
- 'два',
- 'двадцатый',
- 'двадцать',
- 'две',
- 'двенадцатый',
- 'двенадцать',
- 'дверь',
- 'двух',
- 'девятнадцатый',
- 'девятнадцать',
- 'девятый',
- 'девять',
- 'действительно',
- 'дел',
- 'делал',
- 'делать',
- 'делаю',
- 'дело',
- 'день',
- 'деньги',
- 'десятый',
- 'десять',
- 'для',
- 'до',
- 'довольно',
- 'долго',
- 'должен',
- 'должно',
- 'должный',
- 'дом',
- 'дорога',
- 'друг',
- 'другая',
- 'другие',
- 'других',
- 'друго',
- 'другое',
- 'другой',
- 'думать',
- 'душа',
- 'е',
- 'его',
- 'ее',
- 'ей',
- 'ему',
- 'если',
- 'есть',
- 'еще',
- 'ещё',
- 'ею',
- 'её',
- 'ж',
- 'ждать',
- 'же',
- 'жена',
- 'женщина',
- 'жизнь',
- 'жить',
- 'за',
- 'занят',
- 'занята',
- 'занято',
- 'заняты',
- 'затем',
- 'зато',
- 'зачем',
- 'здесь',
- 'земля',
- 'знать',
- 'значит',
- 'значить',
- 'и',
- 'иди',
- 'идти',
- 'из',
- 'или',
- 'им',
- 'имеет',
- 'имел',
- 'именно',
- 'иметь',
- 'ими',
- 'имя',
- 'иногда',
- 'их',
- 'к',
- 'каждая',
- 'каждое',
- 'каждые',
- 'каждый',
- 'кажется',
- 'казаться',
- 'как',
- 'какая',
- 'какой',
- 'кем',
- 'книга',
- 'когда',
- 'кого',
- 'ком',
- 'комната',
- 'кому',
- 'конец',
- 'конечно',
- 'которая',
- 'которого',
- 'которой',
- 'которые',
- 'который',
- 'которых',
- 'кроме',
- 'кругом',
- 'кто',
- 'куда',
- 'лежать',
- 'лет',
- 'ли',
- 'лицо',
- 'лишь',
- 'лучше',
- 'любить',
- 'люди',
- 'м',
- 'маленький',
- 'мало',
- 'мать',
- 'машина',
- 'между',
- 'меля',
- 'менее',
- 'меньше',
- 'меня',
- 'место',
- 'миллионов',
- 'мимо',
- 'минута',
- 'мир',
- 'мира',
- 'мне',
- 'много',
- 'многочисленная',
- 'многочисленное',
- 'многочисленные',
- 'многочисленный',
- 'мной',
- 'мною',
- 'мог',
- 'могу',
- 'могут',
- 'мож',
- 'может',
- 'может быть',
- 'можно',
- 'можхо',
- 'мои',
- 'мой',
- 'мор',
- 'москва',
- 'мочь',
- 'моя',
- 'моё',
- 'мы',
- 'на',
- 'наверху',
- 'над',
- 'надо',
- 'назад',
- 'наиболее',
- 'найти',
- 'наконец',
- 'нам',
- 'нами',
- 'народ',
- 'нас',
- 'начала',
- 'начать',
- 'наш',
- 'наша',
- 'наше',
- 'наши',
- 'не',
- 'него',
- 'недавно',
- 'недалеко',
- 'нее',
- 'ней',
- 'некоторый',
- 'нельзя',
- 'нем',
- 'немного',
- 'нему',
- 'непрерывно',
- 'нередко',
- 'несколько',
- 'нет',
- 'нею',
- 'неё',
- 'ни',
- 'нибудь',
- 'ниже',
- 'низко',
- 'никакой',
- 'никогда',
- 'никто',
- 'никуда',
- 'ним',
- 'ними',
- 'них',
- 'ничего',
- 'ничто',
- 'но',
- 'новый',
- 'нога',
- 'ночь',
- 'ну',
- 'нужно',
- 'нужный',
- 'нх',
- 'о',
- 'об',
- 'оба',
- 'обычно',
- 'один',
- 'одиннадцатый',
- 'одиннадцать',
- 'однажды',
- 'однако',
- 'одного',
- 'одной',
- 'оказаться',
- 'окно',
- 'около',
- 'он',
- 'она',
- 'они',
- 'оно',
- 'опять',
- 'особенно',
- 'остаться',
- 'от',
- 'ответить',
- 'отец',
- 'откуда',
- 'отовсюду',
- 'отсюда',
- 'очень',
- 'первый',
- 'перед',
- 'писать',
- 'плечо',
- 'по',
- 'под',
- 'подойди',
- 'подумать',
- 'пожалуйста',
- 'позже',
- 'пойти',
- 'пока',
- 'пол',
- 'получить',
- 'помнить',
- 'понимать',
- 'понять',
- 'пор',
- 'пора',
- 'после',
- 'последний',
- 'посмотреть',
- 'посреди',
- 'потом',
- 'потому',
- 'почему',
- 'почти',
- 'правда',
- 'прекрасно',
- 'при',
- 'про',
- 'просто',
- 'против',
- 'процентов',
- 'путь',
- 'пятнадцатый',
- 'пятнадцать',
- 'пятый',
- 'пять',
- 'работа',
- 'работать',
- 'раз',
- 'разве',
- 'рано',
- 'раньше',
- 'ребенок',
- 'решить',
- 'россия',
- 'рука',
- 'русский',
- 'ряд',
- 'рядом',
- 'с',
- 'с кем',
- 'сам',
- 'сама',
- 'сами',
- 'самим',
- 'самими',
- 'самих',
- 'само',
- 'самого',
- 'самой',
- 'самом',
- 'самому',
- 'саму',
- 'самый',
- 'свет',
- 'свое',
- 'своего',
- 'своей',
- 'свои',
- 'своих',
- 'свой',
- 'свою',
- 'сделать',
- 'сеаой',
- 'себе',
- 'себя',
- 'сегодня',
- 'седьмой',
- 'сейчас',
- 'семнадцатый',
- 'семнадцать',
- 'семь',
- 'сидеть',
- 'сила',
- 'сих',
- 'сказал',
- 'сказала',
- 'сказать',
- 'сколько',
- 'слишком',
- 'слово',
- 'случай',
- 'смотреть',
- 'сначала',
- 'снова',
- 'со',
- 'собой',
- 'собою',
- 'советский',
- 'совсем',
- 'спасибо',
- 'спросить',
- 'сразу',
- 'стал',
- 'старый',
- 'стать',
- 'стол',
- 'сторона',
- 'стоять',
- 'страна',
- 'суть',
- 'считать',
- 'т',
- 'та',
- 'так',
- 'такая',
- 'также',
- 'таки',
- 'такие',
- 'такое',
- 'такой',
- 'там',
- 'твои',
- 'твой',
- 'твоя',
- 'твоё',
- 'те',
- 'тебе',
- 'тебя',
- 'тем',
- 'теми',
- 'теперь',
- 'тех',
- 'то',
- 'тобой',
- 'тобою',
- 'товарищ',
- 'тогда',
- 'того',
- 'тоже',
- 'только',
- 'том',
- 'тому',
- 'тот',
- 'тою',
- 'третий',
- 'три',
- 'тринадцатый',
- 'тринадцать',
- 'ту',
- 'туда',
- 'тут',
- 'ты',
- 'тысяч',
- 'у',
- 'увидеть',
- 'уж',
- 'уже',
- 'улица',
- 'уметь',
- 'утро',
- 'хороший',
- 'хорошо',
- 'хотел бы',
- 'хотеть',
- 'хоть',
- 'хотя',
- 'хочешь',
- 'час',
- 'часто',
- 'часть',
- 'чаще',
- 'чего',
- 'человек',
- 'чем',
- 'чему',
- 'через',
- 'четвертый',
- 'четыре',
- 'четырнадцатый',
- 'четырнадцать',
- 'что',
- 'чтоб',
- 'чтобы',
- 'чуть',
- 'шестнадцатый',
- 'шестнадцать',
- 'шестой',
- 'шесть',
- 'эта',
- 'эти',
- 'этим',
- 'этими',
- 'этих',
- 'это',
- 'этого',
- 'этой',
- 'этом',
- 'этому',
- 'этот',
- 'эту',
- 'я',
- 'являюсь',
- ],
- sk: [
- 'a',
- 'aby',
- 'aj',
- 'ak',
- 'akej',
- 'akejže',
- 'ako',
- 'akom',
- 'akomže',
- 'akou',
- 'akouže',
- 'akože',
- 'aká',
- 'akáže',
- 'aké',
- 'akého',
- 'akéhože',
- 'akému',
- 'akémuže',
- 'akéže',
- 'akú',
- 'akúže',
- 'aký',
- 'akých',
- 'akýchže',
- 'akým',
- 'akými',
- 'akýmiže',
- 'akýmže',
- 'akýže',
- 'ale',
- 'alebo',
- 'ani',
- 'asi',
- 'avšak',
- 'až',
- 'ba',
- 'bez',
- 'bezo',
- 'bol',
- 'bola',
- 'boli',
- 'bolo',
- 'bude',
- 'budem',
- 'budeme',
- 'budete',
- 'budeš',
- 'budú',
- 'buď',
- 'by',
- 'byť',
- 'cez',
- 'cezo',
- 'dnes',
- 'do',
- 'ešte',
- 'ho',
- 'hoci',
- 'i',
- 'iba',
- 'ich',
- 'im',
- 'inej',
- 'inom',
- 'iná',
- 'iné',
- 'iného',
- 'inému',
- 'iní',
- 'inú',
- 'iný',
- 'iných',
- 'iným',
- 'inými',
- 'ja',
- 'je',
- 'jeho',
- 'jej',
- 'jemu',
- 'ju',
- 'k',
- 'kam',
- 'kamže',
- 'každou',
- 'každá',
- 'každé',
- 'každého',
- 'každému',
- 'každí',
- 'každú',
- 'každý',
- 'každých',
- 'každým',
- 'každými',
- 'kde',
- 'kej',
- 'kejže',
- 'keď',
- 'keďže',
- 'kie',
- 'kieho',
- 'kiehože',
- 'kiemu',
- 'kiemuže',
- 'kieže',
- 'koho',
- 'kom',
- 'komu',
- 'kou',
- 'kouže',
- 'kto',
- 'ktorej',
- 'ktorou',
- 'ktorá',
- 'ktoré',
- 'ktorí',
- 'ktorú',
- 'ktorý',
- 'ktorých',
- 'ktorým',
- 'ktorými',
- 'ku',
- 'ká',
- 'káže',
- 'ké',
- 'kéže',
- 'kú',
- 'kúže',
- 'ký',
- 'kýho',
- 'kýhože',
- 'kým',
- 'kýmu',
- 'kýmuže',
- 'kýže',
- 'lebo',
- 'leda',
- 'ledaže',
- 'len',
- 'ma',
- 'majú',
- 'mal',
- 'mala',
- 'mali',
- 'mať',
- 'medzi',
- 'mi',
- 'mne',
- 'mnou',
- 'moja',
- 'moje',
- 'mojej',
- 'mojich',
- 'mojim',
- 'mojimi',
- 'mojou',
- 'moju',
- 'možno',
- 'mu',
- 'musia',
- 'musieť',
- 'musí',
- 'musím',
- 'musíme',
- 'musíte',
- 'musíš',
- 'my',
- 'má',
- 'mám',
- 'máme',
- 'máte',
- 'máš',
- 'môcť',
- 'môj',
- 'môjho',
- 'môže',
- 'môžem',
- 'môžeme',
- 'môžete',
- 'môžeš',
- 'môžu',
- 'mňa',
- 'na',
- 'nad',
- 'nado',
- 'najmä',
- 'nami',
- 'naša',
- 'naše',
- 'našej',
- 'naši',
- 'našich',
- 'našim',
- 'našimi',
- 'našou',
- 'ne',
- 'nech',
- 'neho',
- 'nej',
- 'nejakej',
- 'nejakom',
- 'nejakou',
- 'nejaká',
- 'nejaké',
- 'nejakého',
- 'nejakému',
- 'nejakú',
- 'nejaký',
- 'nejakých',
- 'nejakým',
- 'nejakými',
- 'nemu',
- 'než',
- 'nich',
- 'nie',
- 'niektorej',
- 'niektorom',
- 'niektorou',
- 'niektorá',
- 'niektoré',
- 'niektorého',
- 'niektorému',
- 'niektorú',
- 'niektorý',
- 'niektorých',
- 'niektorým',
- 'niektorými',
- 'nielen',
- 'niečo',
- 'nim',
- 'nimi',
- 'nič',
- 'ničoho',
- 'ničom',
- 'ničomu',
- 'ničím',
- 'no',
- 'nám',
- 'nás',
- 'náš',
- 'nášho',
- 'ním',
- 'o',
- 'od',
- 'odo',
- 'on',
- 'ona',
- 'oni',
- 'ono',
- 'ony',
- 'oň',
- 'oňho',
- 'po',
- 'pod',
- 'podo',
- 'podľa',
- 'pokiaľ',
- 'popod',
- 'popri',
- 'potom',
- 'poza',
- 'pre',
- 'pred',
- 'predo',
- 'preto',
- 'pretože',
- 'prečo',
- 'pri',
- 'práve',
- 's',
- 'sa',
- 'seba',
- 'sebe',
- 'sebou',
- 'sem',
- 'si',
- 'sme',
- 'so',
- 'som',
- 'ste',
- 'svoj',
- 'svoja',
- 'svoje',
- 'svojho',
- 'svojich',
- 'svojim',
- 'svojimi',
- 'svojou',
- 'svoju',
- 'svojím',
- 'sú',
- 'ta',
- 'tak',
- 'takej',
- 'takejto',
- 'taká',
- 'takáto',
- 'také',
- 'takého',
- 'takéhoto',
- 'takému',
- 'takémuto',
- 'takéto',
- 'takí',
- 'takú',
- 'takúto',
- 'taký',
- 'takýto',
- 'takže',
- 'tam',
- 'teba',
- 'tebe',
- 'tebou',
- 'teda',
- 'tej',
- 'tejto',
- 'ten',
- 'tento',
- 'ti',
- 'tie',
- 'tieto',
- 'tiež',
- 'to',
- 'toho',
- 'tohoto',
- 'tohto',
- 'tom',
- 'tomto',
- 'tomu',
- 'tomuto',
- 'toto',
- 'tou',
- 'touto',
- 'tu',
- 'tvoj',
- 'tvoja',
- 'tvoje',
- 'tvojej',
- 'tvojho',
- 'tvoji',
- 'tvojich',
- 'tvojim',
- 'tvojimi',
- 'tvojím',
- 'ty',
- 'tá',
- 'táto',
- 'tí',
- 'títo',
- 'tú',
- 'túto',
- 'tých',
- 'tým',
- 'tými',
- 'týmto',
- 'u',
- 'už',
- 'v',
- 'vami',
- 'vaša',
- 'vaše',
- 'vašej',
- 'vaši',
- 'vašich',
- 'vašim',
- 'vaším',
- 'veď',
- 'viac',
- 'vo',
- 'vy',
- 'vám',
- 'vás',
- 'váš',
- 'vášho',
- 'však',
- 'všetci',
- 'všetka',
- 'všetko',
- 'všetky',
- 'všetok',
- 'z',
- 'za',
- 'začo',
- 'začože',
- 'zo',
- 'áno',
- 'čej',
- 'či',
- 'čia',
- 'čie',
- 'čieho',
- 'čiemu',
- 'čiu',
- 'čo',
- 'čoho',
- 'čom',
- 'čomu',
- 'čou',
- 'čože',
- 'čí',
- 'čím',
- 'čími',
- 'ďalšia',
- 'ďalšie',
- 'ďalšieho',
- 'ďalšiemu',
- 'ďalšiu',
- 'ďalšom',
- 'ďalšou',
- 'ďalší',
- 'ďalších',
- 'ďalším',
- 'ďalšími',
- 'ňom',
- 'ňou',
- 'ňu',
- 'že',
- ],
- sl: [
- 'a',
- 'ali',
- 'april',
- 'avgust',
- 'b',
- 'bi',
- 'bil',
- 'bila',
- 'bile',
- 'bili',
- 'bilo',
- 'biti',
- 'blizu',
- 'bo',
- 'bodo',
- 'bojo',
- 'bolj',
- 'bom',
- 'bomo',
- 'boste',
- 'bova',
- 'boš',
- 'brez',
- 'c',
- 'cel',
- 'cela',
- 'celi',
- 'celo',
- 'd',
- 'da',
- 'daleč',
- 'dan',
- 'danes',
- 'datum',
- 'december',
- 'deset',
- 'deseta',
- 'deseti',
- 'deseto',
- 'devet',
- 'deveta',
- 'deveti',
- 'deveto',
- 'do',
- 'dober',
- 'dobra',
- 'dobri',
- 'dobro',
- 'dokler',
- 'dol',
- 'dolg',
- 'dolga',
- 'dolgi',
- 'dovolj',
- 'drug',
- 'druga',
- 'drugi',
- 'drugo',
- 'dva',
- 'dve',
- 'e',
- 'eden',
- 'en',
- 'ena',
- 'ene',
- 'eni',
- 'enkrat',
- 'eno',
- 'etc.',
- 'f',
- 'februar',
- 'g',
- 'g.',
- 'ga',
- 'ga.',
- 'gor',
- 'gospa',
- 'gospod',
- 'h',
- 'halo',
- 'i',
- 'idr.',
- 'ii',
- 'iii',
- 'in',
- 'iv',
- 'ix',
- 'iz',
- 'j',
- 'januar',
- 'jaz',
- 'je',
- 'ji',
- 'jih',
- 'jim',
- 'jo',
- 'julij',
- 'junij',
- 'jutri',
- 'k',
- 'kadarkoli',
- 'kaj',
- 'kajti',
- 'kako',
- 'kakor',
- 'kamor',
- 'kamorkoli',
- 'kar',
- 'karkoli',
- 'katerikoli',
- 'kdaj',
- 'kdo',
- 'kdorkoli',
- 'ker',
- 'ki',
- 'kje',
- 'kjer',
- 'kjerkoli',
- 'ko',
- 'koder',
- 'koderkoli',
- 'koga',
- 'komu',
- 'kot',
- 'kratek',
- 'kratka',
- 'kratke',
- 'kratki',
- 'l',
- 'lahka',
- 'lahke',
- 'lahki',
- 'lahko',
- 'le',
- 'lep',
- 'lepa',
- 'lepe',
- 'lepi',
- 'lepo',
- 'leto',
- 'm',
- 'maj',
- 'majhen',
- 'majhna',
- 'majhni',
- 'malce',
- 'malo',
- 'manj',
- 'marec',
- 'me',
- 'med',
- 'medtem',
- 'mene',
- 'mesec',
- 'mi',
- 'midva',
- 'midve',
- 'mnogo',
- 'moj',
- 'moja',
- 'moje',
- 'mora',
- 'morajo',
- 'moram',
- 'moramo',
- 'morate',
- 'moraš',
- 'morem',
- 'mu',
- 'n',
- 'na',
- 'nad',
- 'naj',
- 'najina',
- 'najino',
- 'najmanj',
- 'naju',
- 'največ',
- 'nam',
- 'narobe',
- 'nas',
- 'nato',
- 'nazaj',
- 'naš',
- 'naša',
- 'naše',
- 'ne',
- 'nedavno',
- 'nedelja',
- 'nek',
- 'neka',
- 'nekaj',
- 'nekatere',
- 'nekateri',
- 'nekatero',
- 'nekdo',
- 'neke',
- 'nekega',
- 'neki',
- 'nekje',
- 'neko',
- 'nekoga',
- 'nekoč',
- 'ni',
- 'nikamor',
- 'nikdar',
- 'nikjer',
- 'nikoli',
- 'nič',
- 'nje',
- 'njega',
- 'njegov',
- 'njegova',
- 'njegovo',
- 'njej',
- 'njemu',
- 'njen',
- 'njena',
- 'njeno',
- 'nji',
- 'njih',
- 'njihov',
- 'njihova',
- 'njihovo',
- 'njiju',
- 'njim',
- 'njo',
- 'njun',
- 'njuna',
- 'njuno',
- 'no',
- 'nocoj',
- 'november',
- 'npr.',
- 'o',
- 'ob',
- 'oba',
- 'obe',
- 'oboje',
- 'od',
- 'odprt',
- 'odprta',
- 'odprti',
- 'okoli',
- 'oktober',
- 'on',
- 'onadva',
- 'one',
- 'oni',
- 'onidve',
- 'osem',
- 'osma',
- 'osmi',
- 'osmo',
- 'oz.',
- 'p',
- 'pa',
- 'pet',
- 'peta',
- 'petek',
- 'peti',
- 'peto',
- 'po',
- 'pod',
- 'pogosto',
- 'poleg',
- 'poln',
- 'polna',
- 'polni',
- 'polno',
- 'ponavadi',
- 'ponedeljek',
- 'ponovno',
- 'potem',
- 'povsod',
- 'pozdravljen',
- 'pozdravljeni',
- 'prav',
- 'prava',
- 'prave',
- 'pravi',
- 'pravo',
- 'prazen',
- 'prazna',
- 'prazno',
- 'prbl.',
- 'precej',
- 'pred',
- 'prej',
- 'preko',
- 'pri',
- 'pribl.',
- 'približno',
- 'primer',
- 'pripravljen',
- 'pripravljena',
- 'pripravljeni',
- 'proti',
- 'prva',
- 'prvi',
- 'prvo',
- 'r',
- 'ravno',
- 'redko',
- 'res',
- 'reč',
- 's',
- 'saj',
- 'sam',
- 'sama',
- 'same',
- 'sami',
- 'samo',
- 'se',
- 'sebe',
- 'sebi',
- 'sedaj',
- 'sedem',
- 'sedma',
- 'sedmi',
- 'sedmo',
- 'sem',
- 'september',
- 'seveda',
- 'si',
- 'sicer',
- 'skoraj',
- 'skozi',
- 'slab',
- 'smo',
- 'so',
- 'sobota',
- 'spet',
- 'sreda',
- 'srednja',
- 'srednji',
- 'sta',
- 'ste',
- 'stran',
- 'stvar',
- 'sva',
- 't',
- 'ta',
- 'tak',
- 'taka',
- 'take',
- 'taki',
- 'tako',
- 'takoj',
- 'tam',
- 'te',
- 'tebe',
- 'tebi',
- 'tega',
- 'težak',
- 'težka',
- 'težki',
- 'težko',
- 'ti',
- 'tista',
- 'tiste',
- 'tisti',
- 'tisto',
- 'tj.',
- 'tja',
- 'to',
- 'toda',
- 'torek',
- 'tretja',
- 'tretje',
- 'tretji',
- 'tri',
- 'tu',
- 'tudi',
- 'tukaj',
- 'tvoj',
- 'tvoja',
- 'tvoje',
- 'u',
- 'v',
- 'vaju',
- 'vam',
- 'vas',
- 'vaš',
- 'vaša',
- 'vaše',
- 've',
- 'vedno',
- 'velik',
- 'velika',
- 'veliki',
- 'veliko',
- 'vendar',
- 'ves',
- 'več',
- 'vi',
- 'vidva',
- 'vii',
- 'viii',
- 'visok',
- 'visoka',
- 'visoke',
- 'visoki',
- 'vsa',
- 'vsaj',
- 'vsak',
- 'vsaka',
- 'vsakdo',
- 'vsake',
- 'vsaki',
- 'vsakomur',
- 'vse',
- 'vsega',
- 'vsi',
- 'vso',
- 'včasih',
- 'včeraj',
- 'x',
- 'z',
- 'za',
- 'zadaj',
- 'zadnji',
- 'zakaj',
- 'zaprta',
- 'zaprti',
- 'zaprto',
- 'zdaj',
- 'zelo',
- 'zunaj',
- 'č',
- 'če',
- 'često',
- 'četrta',
- 'četrtek',
- 'četrti',
- 'četrto',
- 'čez',
- 'čigav',
- 'š',
- 'šest',
- 'šesta',
- 'šesti',
- 'šesto',
- 'štiri',
- 'ž',
- 'že',
- ],
- so: [
- 'aad',
- 'albaabkii',
- 'atabo',
- 'ay',
- 'ayaa',
- 'ayee',
- 'ayuu',
- 'dhan',
- 'hadana',
- 'in',
- 'inuu',
- 'isku',
- 'jiray',
- 'jirtay',
- 'ka',
- 'kale',
- 'kasoo',
- 'ku',
- 'kuu',
- 'lakin',
- 'markii',
- 'oo',
- 'si',
- 'soo',
- 'uga',
- 'ugu',
- 'uu',
- 'waa',
- 'waxa',
- 'waxuu',
- ],
- st: [
- 'a',
- 'ba',
- 'bane',
- 'bona',
- 'e',
- 'ea',
- 'eaba',
- 'empa',
- 'ena',
- 'ha',
- 'hae',
- 'hape',
- 'ho',
- 'hore',
- 'ka',
- 'ke',
- 'la',
- 'le',
- 'li',
- 'me',
- 'mo',
- 'moo',
- 'ne',
- 'o',
- 'oa',
- 're',
- 'sa',
- 'se',
- 'tloha',
- 'tsa',
- 'tse',
- ],
- es: [
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '_',
- 'a',
- 'actualmente',
- 'acuerdo',
- 'adelante',
- 'ademas',
- 'además',
- 'adrede',
- 'afirmó',
- 'agregó',
- 'ahi',
- 'ahora',
- 'ahí',
- 'al',
- 'algo',
- 'alguna',
- 'algunas',
- 'alguno',
- 'algunos',
- 'algún',
- 'alli',
- 'allí',
- 'alrededor',
- 'ambos',
- 'ampleamos',
- 'antano',
- 'antaño',
- 'ante',
- 'anterior',
- 'antes',
- 'apenas',
- 'aproximadamente',
- 'aquel',
- 'aquella',
- 'aquellas',
- 'aquello',
- 'aquellos',
- 'aqui',
- 'aquél',
- 'aquélla',
- 'aquéllas',
- 'aquéllos',
- 'aquí',
- 'arriba',
- 'arribaabajo',
- 'aseguró',
- 'asi',
- 'así',
- 'atras',
- 'aun',
- 'aunque',
- 'ayer',
- 'añadió',
- 'aún',
- 'b',
- 'bajo',
- 'bastante',
- 'bien',
- 'breve',
- 'buen',
- 'buena',
- 'buenas',
- 'bueno',
- 'buenos',
- 'c',
- 'cada',
- 'casi',
- 'cerca',
- 'cierta',
- 'ciertas',
- 'cierto',
- 'ciertos',
- 'cinco',
- 'claro',
- 'comentó',
- 'como',
- 'con',
- 'conmigo',
- 'conocer',
- 'conseguimos',
- 'conseguir',
- 'considera',
- 'consideró',
- 'consigo',
- 'consigue',
- 'consiguen',
- 'consigues',
- 'contigo',
- 'contra',
- 'cosas',
- 'creo',
- 'cual',
- 'cuales',
- 'cualquier',
- 'cuando',
- 'cuanta',
- 'cuantas',
- 'cuanto',
- 'cuantos',
- 'cuatro',
- 'cuenta',
- 'cuál',
- 'cuáles',
- 'cuándo',
- 'cuánta',
- 'cuántas',
- 'cuánto',
- 'cuántos',
- 'cómo',
- 'd',
- 'da',
- 'dado',
- 'dan',
- 'dar',
- 'de',
- 'debajo',
- 'debe',
- 'deben',
- 'debido',
- 'decir',
- 'dejó',
- 'del',
- 'delante',
- 'demasiado',
- 'demás',
- 'dentro',
- 'deprisa',
- 'desde',
- 'despacio',
- 'despues',
- 'después',
- 'detras',
- 'detrás',
- 'dia',
- 'dias',
- 'dice',
- 'dicen',
- 'dicho',
- 'dieron',
- 'diferente',
- 'diferentes',
- 'dijeron',
- 'dijo',
- 'dio',
- 'donde',
- 'dos',
- 'durante',
- 'día',
- 'días',
- 'dónde',
- 'e',
- 'ejemplo',
- 'el',
- 'ella',
- 'ellas',
- 'ello',
- 'ellos',
- 'embargo',
- 'empleais',
- 'emplean',
- 'emplear',
- 'empleas',
- 'empleo',
- 'en',
- 'encima',
- 'encuentra',
- 'enfrente',
- 'enseguida',
- 'entonces',
- 'entre',
- 'era',
- 'erais',
- 'eramos',
- 'eran',
- 'eras',
- 'eres',
- 'es',
- 'esa',
- 'esas',
- 'ese',
- 'eso',
- 'esos',
- 'esta',
- 'estaba',
- 'estabais',
- 'estaban',
- 'estabas',
- 'estad',
- 'estada',
- 'estadas',
- 'estado',
- 'estados',
- 'estais',
- 'estamos',
- 'estan',
- 'estando',
- 'estar',
- 'estaremos',
- 'estará',
- 'estarán',
- 'estarás',
- 'estaré',
- 'estaréis',
- 'estaría',
- 'estaríais',
- 'estaríamos',
- 'estarían',
- 'estarías',
- 'estas',
- 'este',
- 'estemos',
- 'esto',
- 'estos',
- 'estoy',
- 'estuve',
- 'estuviera',
- 'estuvierais',
- 'estuvieran',
- 'estuvieras',
- 'estuvieron',
- 'estuviese',
- 'estuvieseis',
- 'estuviesen',
- 'estuvieses',
- 'estuvimos',
- 'estuviste',
- 'estuvisteis',
- 'estuviéramos',
- 'estuviésemos',
- 'estuvo',
- 'está',
- 'estábamos',
- 'estáis',
- 'están',
- 'estás',
- 'esté',
- 'estéis',
- 'estén',
- 'estés',
- 'ex',
- 'excepto',
- 'existe',
- 'existen',
- 'explicó',
- 'expresó',
- 'f',
- 'fin',
- 'final',
- 'fue',
- 'fuera',
- 'fuerais',
- 'fueran',
- 'fueras',
- 'fueron',
- 'fuese',
- 'fueseis',
- 'fuesen',
- 'fueses',
- 'fui',
- 'fuimos',
- 'fuiste',
- 'fuisteis',
- 'fuéramos',
- 'fuésemos',
- 'g',
- 'general',
- 'gran',
- 'grandes',
- 'gueno',
- 'h',
- 'ha',
- 'haber',
- 'habia',
- 'habida',
- 'habidas',
- 'habido',
- 'habidos',
- 'habiendo',
- 'habla',
- 'hablan',
- 'habremos',
- 'habrá',
- 'habrán',
- 'habrás',
- 'habré',
- 'habréis',
- 'habría',
- 'habríais',
- 'habríamos',
- 'habrían',
- 'habrías',
- 'habéis',
- 'había',
- 'habíais',
- 'habíamos',
- 'habían',
- 'habías',
- 'hace',
- 'haceis',
- 'hacemos',
- 'hacen',
- 'hacer',
- 'hacerlo',
- 'haces',
- 'hacia',
- 'haciendo',
- 'hago',
- 'han',
- 'has',
- 'hasta',
- 'hay',
- 'haya',
- 'hayamos',
- 'hayan',
- 'hayas',
- 'hayáis',
- 'he',
- 'hecho',
- 'hemos',
- 'hicieron',
- 'hizo',
- 'horas',
- 'hoy',
- 'hube',
- 'hubiera',
- 'hubierais',
- 'hubieran',
- 'hubieras',
- 'hubieron',
- 'hubiese',
- 'hubieseis',
- 'hubiesen',
- 'hubieses',
- 'hubimos',
- 'hubiste',
- 'hubisteis',
- 'hubiéramos',
- 'hubiésemos',
- 'hubo',
- 'i',
- 'igual',
- 'incluso',
- 'indicó',
- 'informo',
- 'informó',
- 'intenta',
- 'intentais',
- 'intentamos',
- 'intentan',
- 'intentar',
- 'intentas',
- 'intento',
- 'ir',
- 'j',
- 'junto',
- 'k',
- 'l',
- 'la',
- 'lado',
- 'largo',
- 'las',
- 'le',
- 'lejos',
- 'les',
- 'llegó',
- 'lleva',
- 'llevar',
- 'lo',
- 'los',
- 'luego',
- 'lugar',
- 'm',
- 'mal',
- 'manera',
- 'manifestó',
- 'mas',
- 'mayor',
- 'me',
- 'mediante',
- 'medio',
- 'mejor',
- 'mencionó',
- 'menos',
- 'menudo',
- 'mi',
- 'mia',
- 'mias',
- 'mientras',
- 'mio',
- 'mios',
- 'mis',
- 'misma',
- 'mismas',
- 'mismo',
- 'mismos',
- 'modo',
- 'momento',
- 'mucha',
- 'muchas',
- 'mucho',
- 'muchos',
- 'muy',
- 'más',
- 'mí',
- 'mía',
- 'mías',
- 'mío',
- 'míos',
- 'n',
- 'nada',
- 'nadie',
- 'ni',
- 'ninguna',
- 'ningunas',
- 'ninguno',
- 'ningunos',
- 'ningún',
- 'no',
- 'nos',
- 'nosotras',
- 'nosotros',
- 'nuestra',
- 'nuestras',
- 'nuestro',
- 'nuestros',
- 'nueva',
- 'nuevas',
- 'nuevo',
- 'nuevos',
- 'nunca',
- 'o',
- 'ocho',
- 'os',
- 'otra',
- 'otras',
- 'otro',
- 'otros',
- 'p',
- 'pais',
- 'para',
- 'parece',
- 'parte',
- 'partir',
- 'pasada',
- 'pasado',
- 'paìs',
- 'peor',
- 'pero',
- 'pesar',
- 'poca',
- 'pocas',
- 'poco',
- 'pocos',
- 'podeis',
- 'podemos',
- 'poder',
- 'podria',
- 'podriais',
- 'podriamos',
- 'podrian',
- 'podrias',
- 'podrá',
- 'podrán',
- 'podría',
- 'podrían',
- 'poner',
- 'por',
- 'por qué',
- 'porque',
- 'posible',
- 'primer',
- 'primera',
- 'primero',
- 'primeros',
- 'principalmente',
- 'pronto',
- 'propia',
- 'propias',
- 'propio',
- 'propios',
- 'proximo',
- 'próximo',
- 'próximos',
- 'pudo',
- 'pueda',
- 'puede',
- 'pueden',
- 'puedo',
- 'pues',
- 'q',
- 'qeu',
- 'que',
- 'quedó',
- 'queremos',
- 'quien',
- 'quienes',
- 'quiere',
- 'quiza',
- 'quizas',
- 'quizá',
- 'quizás',
- 'quién',
- 'quiénes',
- 'qué',
- 'r',
- 'raras',
- 'realizado',
- 'realizar',
- 'realizó',
- 'repente',
- 'respecto',
- 's',
- 'sabe',
- 'sabeis',
- 'sabemos',
- 'saben',
- 'saber',
- 'sabes',
- 'sal',
- 'salvo',
- 'se',
- 'sea',
- 'seamos',
- 'sean',
- 'seas',
- 'segun',
- 'segunda',
- 'segundo',
- 'según',
- 'seis',
- 'ser',
- 'sera',
- 'seremos',
- 'será',
- 'serán',
- 'serás',
- 'seré',
- 'seréis',
- 'sería',
- 'seríais',
- 'seríamos',
- 'serían',
- 'serías',
- 'seáis',
- 'señaló',
- 'si',
- 'sido',
- 'siempre',
- 'siendo',
- 'siete',
- 'sigue',
- 'siguiente',
- 'sin',
- 'sino',
- 'sobre',
- 'sois',
- 'sola',
- 'solamente',
- 'solas',
- 'solo',
- 'solos',
- 'somos',
- 'son',
- 'soy',
- 'soyos',
- 'su',
- 'supuesto',
- 'sus',
- 'suya',
- 'suyas',
- 'suyo',
- 'suyos',
- 'sé',
- 'sí',
- 'sólo',
- 't',
- 'tal',
- 'tambien',
- 'también',
- 'tampoco',
- 'tan',
- 'tanto',
- 'tarde',
- 'te',
- 'temprano',
- 'tendremos',
- 'tendrá',
- 'tendrán',
- 'tendrás',
- 'tendré',
- 'tendréis',
- 'tendría',
- 'tendríais',
- 'tendríamos',
- 'tendrían',
- 'tendrías',
- 'tened',
- 'teneis',
- 'tenemos',
- 'tener',
- 'tenga',
- 'tengamos',
- 'tengan',
- 'tengas',
- 'tengo',
- 'tengáis',
- 'tenida',
- 'tenidas',
- 'tenido',
- 'tenidos',
- 'teniendo',
- 'tenéis',
- 'tenía',
- 'teníais',
- 'teníamos',
- 'tenían',
- 'tenías',
- 'tercera',
- 'ti',
- 'tiempo',
- 'tiene',
- 'tienen',
- 'tienes',
- 'toda',
- 'todas',
- 'todavia',
- 'todavía',
- 'todo',
- 'todos',
- 'total',
- 'trabaja',
- 'trabajais',
- 'trabajamos',
- 'trabajan',
- 'trabajar',
- 'trabajas',
- 'trabajo',
- 'tras',
- 'trata',
- 'través',
- 'tres',
- 'tu',
- 'tus',
- 'tuve',
- 'tuviera',
- 'tuvierais',
- 'tuvieran',
- 'tuvieras',
- 'tuvieron',
- 'tuviese',
- 'tuvieseis',
- 'tuviesen',
- 'tuvieses',
- 'tuvimos',
- 'tuviste',
- 'tuvisteis',
- 'tuviéramos',
- 'tuviésemos',
- 'tuvo',
- 'tuya',
- 'tuyas',
- 'tuyo',
- 'tuyos',
- 'tú',
- 'u',
- 'ultimo',
- 'un',
- 'una',
- 'unas',
- 'uno',
- 'unos',
- 'usa',
- 'usais',
- 'usamos',
- 'usan',
- 'usar',
- 'usas',
- 'uso',
- 'usted',
- 'ustedes',
- 'v',
- 'va',
- 'vais',
- 'valor',
- 'vamos',
- 'van',
- 'varias',
- 'varios',
- 'vaya',
- 'veces',
- 'ver',
- 'verdad',
- 'verdadera',
- 'verdadero',
- 'vez',
- 'vosotras',
- 'vosotros',
- 'voy',
- 'vuestra',
- 'vuestras',
- 'vuestro',
- 'vuestros',
- 'w',
- 'x',
- 'y',
- 'ya',
- 'yo',
- 'z',
- 'él',
- 'éramos',
- 'ésa',
- 'ésas',
- 'ése',
- 'ésos',
- 'ésta',
- 'éstas',
- 'éste',
- 'éstos',
- 'última',
- 'últimas',
- 'último',
- 'últimos',
- ],
- sw: [
- 'akasema',
- 'alikuwa',
- 'alisema',
- 'baada',
- 'basi',
- 'bila',
- 'cha',
- 'chini',
- 'hadi',
- 'hapo',
- 'hata',
- 'hivyo',
- 'hiyo',
- 'huku',
- 'huo',
- 'ili',
- 'ilikuwa',
- 'juu',
- 'kama',
- 'karibu',
- 'katika',
- 'kila',
- 'kima',
- 'kisha',
- 'kubwa',
- 'kutoka',
- 'kuwa',
- 'kwa',
- 'kwamba',
- 'kwenda',
- 'kwenye',
- 'la',
- 'lakini',
- 'mara',
- 'mdogo',
- 'mimi',
- 'mkubwa',
- 'mmoja',
- 'moja',
- 'muda',
- 'mwenye',
- 'na',
- 'naye',
- 'ndani',
- 'ng',
- 'ni',
- 'nini',
- 'nonkungu',
- 'pamoja',
- 'pia',
- 'sana',
- 'sasa',
- 'sauti',
- 'tafadhali',
- 'tena',
- 'tu',
- 'vile',
- 'wa',
- 'wakati',
- 'wake',
- 'walikuwa',
- 'wao',
- 'watu',
- 'wengine',
- 'wote',
- 'ya',
- 'yake',
- 'yangu',
- 'yao',
- 'yeye',
- 'yule',
- 'za',
- 'zaidi',
- 'zake',
- ],
- sv: [
- 'aderton',
- 'adertonde',
- 'adjö',
- 'aldrig',
- 'alla',
- 'allas',
- 'allt',
- 'alltid',
- 'alltså',
- 'andra',
- 'andras',
- 'annan',
- 'annat',
- 'artonde',
- 'artonn',
- 'att',
- 'av',
- 'bakom',
- 'bara',
- 'behöva',
- 'behövas',
- 'behövde',
- 'behövt',
- 'beslut',
- 'beslutat',
- 'beslutit',
- 'bland',
- 'blev',
- 'bli',
- 'blir',
- 'blivit',
- 'bort',
- 'borta',
- 'bra',
- 'bäst',
- 'bättre',
- 'båda',
- 'bådas',
- 'dag',
- 'dagar',
- 'dagarna',
- 'dagen',
- 'de',
- 'del',
- 'delen',
- 'dem',
- 'den',
- 'denna',
- 'deras',
- 'dess',
- 'dessa',
- 'det',
- 'detta',
- 'dig',
- 'din',
- 'dina',
- 'dit',
- 'ditt',
- 'dock',
- 'dom',
- 'du',
- 'där',
- 'därför',
- 'då',
- 'e',
- 'efter',
- 'eftersom',
- 'ej',
- 'elfte',
- 'eller',
- 'elva',
- 'emot',
- 'en',
- 'enkel',
- 'enkelt',
- 'enkla',
- 'enligt',
- 'ens',
- 'er',
- 'era',
- 'ers',
- 'ert',
- 'ett',
- 'ettusen',
- 'fanns',
- 'fem',
- 'femte',
- 'femtio',
- 'femtionde',
- 'femton',
- 'femtonde',
- 'fick',
- 'fin',
- 'finnas',
- 'finns',
- 'fjorton',
- 'fjortonde',
- 'fjärde',
- 'fler',
- 'flera',
- 'flesta',
- 'fram',
- 'framför',
- 'från',
- 'fyra',
- 'fyrtio',
- 'fyrtionde',
- 'få',
- 'får',
- 'fått',
- 'följande',
- 'för',
- 'före',
- 'förlåt',
- 'förra',
- 'första',
- 'genast',
- 'genom',
- 'gick',
- 'gjorde',
- 'gjort',
- 'god',
- 'goda',
- 'godare',
- 'godast',
- 'gott',
- 'gälla',
- 'gäller',
- 'gällt',
- 'gärna',
- 'gå',
- 'går',
- 'gått',
- 'gör',
- 'göra',
- 'ha',
- 'hade',
- 'haft',
- 'han',
- 'hans',
- 'har',
- 'heller',
- 'hellre',
- 'helst',
- 'helt',
- 'henne',
- 'hennes',
- 'hit',
- 'hon',
- 'honom',
- 'hundra',
- 'hundraen',
- 'hundraett',
- 'hur',
- 'här',
- 'hög',
- 'höger',
- 'högre',
- 'högst',
- 'i',
- 'ibland',
- 'icke',
- 'idag',
- 'igen',
- 'igår',
- 'imorgon',
- 'in',
- 'inför',
- 'inga',
- 'ingen',
- 'ingenting',
- 'inget',
- 'innan',
- 'inne',
- 'inom',
- 'inte',
- 'inuti',
- 'ja',
- 'jag',
- 'jo',
- 'ju',
- 'just',
- 'jämfört',
- 'kan',
- 'kanske',
- 'knappast',
- 'kom',
- 'komma',
- 'kommer',
- 'kommit',
- 'kr',
- 'kunde',
- 'kunna',
- 'kunnat',
- 'kvar',
- 'legat',
- 'ligga',
- 'ligger',
- 'lika',
- 'likställd',
- 'likställda',
- 'lilla',
- 'lite',
- 'liten',
- 'litet',
- 'länge',
- 'längre',
- 'längst',
- 'lätt',
- 'lättare',
- 'lättast',
- 'långsam',
- 'långsammare',
- 'långsammast',
- 'långsamt',
- 'långt',
- 'låt',
- 'man',
- 'med',
- 'mej',
- 'mellan',
- 'men',
- 'mer',
- 'mera',
- 'mest',
- 'mig',
- 'min',
- 'mina',
- 'mindre',
- 'minst',
- 'mitt',
- 'mittemot',
- 'mot',
- 'mycket',
- 'många',
- 'måste',
- 'möjlig',
- 'möjligen',
- 'möjligt',
- 'möjligtvis',
- 'ned',
- 'nederst',
- 'nedersta',
- 'nedre',
- 'nej',
- 'ner',
- 'ni',
- 'nio',
- 'nionde',
- 'nittio',
- 'nittionde',
- 'nitton',
- 'nittonde',
- 'nog',
- 'noll',
- 'nr',
- 'nu',
- 'nummer',
- 'när',
- 'nästa',
- 'någon',
- 'någonting',
- 'något',
- 'några',
- 'nån',
- 'nånting',
- 'nåt',
- 'nödvändig',
- 'nödvändiga',
- 'nödvändigt',
- 'nödvändigtvis',
- 'och',
- 'också',
- 'ofta',
- 'oftast',
- 'olika',
- 'olikt',
- 'om',
- 'oss',
- 'på',
- 'rakt',
- 'redan',
- 'rätt',
- 'sa',
- 'sade',
- 'sagt',
- 'samma',
- 'sedan',
- 'senare',
- 'senast',
- 'sent',
- 'sex',
- 'sextio',
- 'sextionde',
- 'sexton',
- 'sextonde',
- 'sig',
- 'sin',
- 'sina',
- 'sist',
- 'sista',
- 'siste',
- 'sitt',
- 'sitta',
- 'sju',
- 'sjunde',
- 'sjuttio',
- 'sjuttionde',
- 'sjutton',
- 'sjuttonde',
- 'själv',
- 'sjätte',
- 'ska',
- 'skall',
- 'skulle',
- 'slutligen',
- 'små',
- 'smått',
- 'snart',
- 'som',
- 'stor',
- 'stora',
- 'stort',
- 'större',
- 'störst',
- 'säga',
- 'säger',
- 'sämre',
- 'sämst',
- 'så',
- 'sådan',
- 'sådana',
- 'sådant',
- 'ta',
- 'tack',
- 'tar',
- 'tidig',
- 'tidigare',
- 'tidigast',
- 'tidigt',
- 'till',
- 'tills',
- 'tillsammans',
- 'tio',
- 'tionde',
- 'tjugo',
- 'tjugoen',
- 'tjugoett',
- 'tjugonde',
- 'tjugotre',
- 'tjugotvå',
- 'tjungo',
- 'tolfte',
- 'tolv',
- 'tre',
- 'tredje',
- 'trettio',
- 'trettionde',
- 'tretton',
- 'trettonde',
- 'två',
- 'tvåhundra',
- 'under',
- 'upp',
- 'ur',
- 'ursäkt',
- 'ut',
- 'utan',
- 'utanför',
- 'ute',
- 'va',
- 'vad',
- 'var',
- 'vara',
- 'varför',
- 'varifrån',
- 'varit',
- 'varje',
- 'varken',
- 'vars',
- 'varsågod',
- 'vart',
- 'vem',
- 'vems',
- 'verkligen',
- 'vi',
- 'vid',
- 'vidare',
- 'viktig',
- 'viktigare',
- 'viktigast',
- 'viktigt',
- 'vilka',
- 'vilkas',
- 'vilken',
- 'vilket',
- 'vill',
- 'väl',
- 'vänster',
- 'vänstra',
- 'värre',
- 'vår',
- 'våra',
- 'vårt',
- 'än',
- 'ännu',
- 'är',
- 'även',
- 'åt',
- 'åtminstone',
- 'åtta',
- 'åttio',
- 'åttionde',
- 'åttonde',
- 'över',
- 'övermorgon',
- 'överst',
- 'övre',
- ],
- th: [
- 'กล่าว',
- 'กว่า',
- 'กัน',
- 'กับ',
- 'การ',
- 'ก็',
- 'ก่อน',
- 'ขณะ',
- 'ขอ',
- 'ของ',
- 'ขึ้น',
- 'คง',
- 'ครั้ง',
- 'ความ',
- 'คือ',
- 'จะ',
- 'จัด',
- 'จาก',
- 'จึง',
- 'ช่วง',
- 'ซึ่ง',
- 'ดัง',
- 'ด้วย',
- 'ด้าน',
- 'ตั้ง',
- 'ตั้งแต่',
- 'ตาม',
- 'ต่อ',
- 'ต่าง',
- 'ต่างๆ',
- 'ต้อง',
- 'ถึง',
- 'ถูก',
- 'ถ้า',
- 'ทั้ง',
- 'ทั้งนี้',
- 'ทาง',
- 'ที่',
- 'ที่สุด',
- 'ทุก',
- 'ทํา',
- 'ทําให้',
- 'นอกจาก',
- 'นัก',
- 'นั้น',
- 'นี้',
- 'น่า',
- 'นํา',
- 'บาง',
- 'ผล',
- 'ผ่าน',
- 'พบ',
- 'พร้อม',
- 'มา',
- 'มาก',
- 'มี',
- 'ยัง',
- 'รวม',
- 'ระหว่าง',
- 'รับ',
- 'ราย',
- 'ร่วม',
- 'ลง',
- 'วัน',
- 'ว่า',
- 'สุด',
- 'ส่ง',
- 'ส่วน',
- 'สําหรับ',
- 'หนึ่ง',
- 'หรือ',
- 'หลัง',
- 'หลังจาก',
- 'หลาย',
- 'หาก',
- 'อยาก',
- 'อยู่',
- 'อย่าง',
- 'ออก',
- 'อะไร',
- 'อาจ',
- 'อีก',
- 'เขา',
- 'เข้า',
- 'เคย',
- 'เฉพาะ',
- 'เช่น',
- 'เดียว',
- 'เดียวกัน',
- 'เนื่องจาก',
- 'เปิด',
- 'เปิดเผย',
- 'เป็น',
- 'เป็นการ',
- 'เพราะ',
- 'เพื่อ',
- 'เมื่อ',
- 'เรา',
- 'เริ่ม',
- 'เลย',
- 'เห็น',
- 'เอง',
- 'แต่',
- 'แบบ',
- 'แรก',
- 'และ',
- 'แล้ว',
- 'แห่ง',
- 'โดย',
- 'ใน',
- 'ให้',
- 'ได้',
- 'ไป',
- 'ไม่',
- 'ไว้',
- '้ง',
- ],
- tl: [
- 'akin',
- 'aking',
- 'ako',
- 'alin',
- 'am',
- 'amin',
- 'aming',
- 'ang',
- 'ano',
- 'anumang',
- 'apat',
- 'at',
- 'atin',
- 'ating',
- 'ay',
- 'bababa',
- 'bago',
- 'bakit',
- 'bawat',
- 'bilang',
- 'dahil',
- 'dalawa',
- 'dapat',
- 'din',
- 'dito',
- 'doon',
- 'gagawin',
- 'gayunman',
- 'ginagawa',
- 'ginawa',
- 'ginawang',
- 'gumawa',
- 'gusto',
- 'habang',
- 'hanggang',
- 'hindi',
- 'huwag',
- 'iba',
- 'ibaba',
- 'ibabaw',
- 'ibig',
- 'ikaw',
- 'ilagay',
- 'ilalim',
- 'ilan',
- 'inyong',
- 'isa',
- 'isang',
- 'itaas',
- 'ito',
- 'iyo',
- 'iyon',
- 'iyong',
- 'ka',
- 'kahit',
- 'kailangan',
- 'kailanman',
- 'kami',
- 'kanila',
- 'kanilang',
- 'kanino',
- 'kanya',
- 'kanyang',
- 'kapag',
- 'kapwa',
- 'karamihan',
- 'katiyakan',
- 'katulad',
- 'kaya',
- 'kaysa',
- 'ko',
- 'kong',
- 'kulang',
- 'kumuha',
- 'kung',
- 'laban',
- 'lahat',
- 'lamang',
- 'likod',
- 'lima',
- 'maaari',
- 'maaaring',
- 'maging',
- 'mahusay',
- 'makita',
- 'marami',
- 'marapat',
- 'masyado',
- 'may',
- 'mayroon',
- 'mga',
- 'minsan',
- 'mismo',
- 'mula',
- 'muli',
- 'na',
- 'nabanggit',
- 'naging',
- 'nagkaroon',
- 'nais',
- 'nakita',
- 'namin',
- 'napaka',
- 'narito',
- 'nasaan',
- 'ng',
- 'ngayon',
- 'ni',
- 'nila',
- 'nilang',
- 'nito',
- 'niya',
- 'niyang',
- 'noon',
- 'o',
- 'pa',
- 'paano',
- 'pababa',
- 'paggawa',
- 'pagitan',
- 'pagkakaroon',
- 'pagkatapos',
- 'palabas',
- 'pamamagitan',
- 'panahon',
- 'pangalawa',
- 'para',
- 'paraan',
- 'pareho',
- 'pataas',
- 'pero',
- 'pumunta',
- 'pumupunta',
- 'sa',
- 'saan',
- 'sabi',
- 'sabihin',
- 'sarili',
- 'sila',
- 'sino',
- 'siya',
- 'tatlo',
- 'tayo',
- 'tulad',
- 'tungkol',
- 'una',
- 'walang',
- ],
- tr: [
- 'acaba',
- 'acep',
- 'adamakıllı',
- 'adeta',
- 'ait',
- 'altmýþ',
- 'altmış',
- 'altý',
- 'altı',
- 'ama',
- 'amma',
- 'anca',
- 'ancak',
- 'arada',
- 'artýk',
- 'aslında',
- 'aynen',
- 'ayrıca',
- 'az',
- 'açıkça',
- 'açıkçası',
- 'bana',
- 'bari',
- 'bazen',
- 'bazý',
- 'bazı',
- 'başkası',
- 'baţka',
- 'belki',
- 'ben',
- 'benden',
- 'beni',
- 'benim',
- 'beri',
- 'beriki',
- 'beþ',
- 'beş',
- 'beţ',
- 'bilcümle',
- 'bile',
- 'bin',
- 'binaen',
- 'binaenaleyh',
- 'bir',
- 'biraz',
- 'birazdan',
- 'birbiri',
- 'birden',
- 'birdenbire',
- 'biri',
- 'birice',
- 'birileri',
- 'birisi',
- 'birkaç',
- 'birkaçı',
- 'birkez',
- 'birlikte',
- 'birçok',
- 'birçoğu',
- 'birþey',
- 'birþeyi',
- 'birşey',
- 'birşeyi',
- 'birţey',
- 'bitevi',
- 'biteviye',
- 'bittabi',
- 'biz',
- 'bizatihi',
- 'bizce',
- 'bizcileyin',
- 'bizden',
- 'bize',
- 'bizi',
- 'bizim',
- 'bizimki',
- 'bizzat',
- 'boşuna',
- 'bu',
- 'buna',
- 'bunda',
- 'bundan',
- 'bunlar',
- 'bunları',
- 'bunların',
- 'bunu',
- 'bunun',
- 'buracıkta',
- 'burada',
- 'buradan',
- 'burası',
- 'böyle',
- 'böylece',
- 'böylecene',
- 'böylelikle',
- 'böylemesine',
- 'böylesine',
- 'büsbütün',
- 'bütün',
- 'cuk',
- 'cümlesi',
- 'da',
- 'daha',
- 'dahi',
- 'dahil',
- 'dahilen',
- 'daima',
- 'dair',
- 'dayanarak',
- 'de',
- 'defa',
- 'dek',
- 'demin',
- 'demincek',
- 'deminden',
- 'denli',
- 'derakap',
- 'derhal',
- 'derken',
- 'deđil',
- 'değil',
- 'değin',
- 'diye',
- 'diđer',
- 'diğer',
- 'diğeri',
- 'doksan',
- 'dokuz',
- 'dolayı',
- 'dolayısıyla',
- 'doğru',
- 'dört',
- 'edecek',
- 'eden',
- 'ederek',
- 'edilecek',
- 'ediliyor',
- 'edilmesi',
- 'ediyor',
- 'elbet',
- 'elbette',
- 'elli',
- 'emme',
- 'en',
- 'enikonu',
- 'epey',
- 'epeyce',
- 'epeyi',
- 'esasen',
- 'esnasında',
- 'etmesi',
- 'etraflı',
- 'etraflıca',
- 'etti',
- 'ettiği',
- 'ettiğini',
- 'evleviyetle',
- 'evvel',
- 'evvela',
- 'evvelce',
- 'evvelden',
- 'evvelemirde',
- 'evveli',
- 'eđer',
- 'eğer',
- 'fakat',
- 'filanca',
- 'gah',
- 'gayet',
- 'gayetle',
- 'gayri',
- 'gayrı',
- 'gelgelelim',
- 'gene',
- 'gerek',
- 'gerçi',
- 'geçende',
- 'geçenlerde',
- 'gibi',
- 'gibilerden',
- 'gibisinden',
- 'gine',
- 'göre',
- 'gırla',
- 'hakeza',
- 'halbuki',
- 'halen',
- 'halihazırda',
- 'haliyle',
- 'handiyse',
- 'hangi',
- 'hangisi',
- 'hani',
- 'hariç',
- 'hasebiyle',
- 'hasılı',
- 'hatta',
- 'hele',
- 'hem',
- 'henüz',
- 'hep',
- 'hepsi',
- 'her',
- 'herhangi',
- 'herkes',
- 'herkesin',
- 'hiç',
- 'hiçbir',
- 'hiçbiri',
- 'hoş',
- 'hulasaten',
- 'iken',
- 'iki',
- 'ila',
- 'ile',
- 'ilen',
- 'ilgili',
- 'ilk',
- 'illa',
- 'illaki',
- 'imdi',
- 'indinde',
- 'inen',
- 'insermi',
- 'ise',
- 'ister',
- 'itibaren',
- 'itibariyle',
- 'itibarıyla',
- 'iyi',
- 'iyice',
- 'iyicene',
- 'için',
- 'iş',
- 'işte',
- 'iţte',
- 'kadar',
- 'kaffesi',
- 'kah',
- 'kala',
- 'kanýmca',
- 'karşın',
- 'katrilyon',
- 'kaynak',
- 'kaçı',
- 'kelli',
- 'kendi',
- 'kendilerine',
- 'kendini',
- 'kendisi',
- 'kendisine',
- 'kendisini',
- 'kere',
- 'kez',
- 'keza',
- 'kezalik',
- 'keşke',
- 'keţke',
- 'ki',
- 'kim',
- 'kimden',
- 'kime',
- 'kimi',
- 'kimisi',
- 'kimse',
- 'kimsecik',
- 'kimsecikler',
- 'külliyen',
- 'kýrk',
- 'kýsaca',
- 'kırk',
- 'kısaca',
- 'lakin',
- 'leh',
- 'lütfen',
- 'maada',
- 'madem',
- 'mademki',
- 'mamafih',
- 'mebni',
- 'međer',
- 'meğer',
- 'meğerki',
- 'meğerse',
- 'milyar',
- 'milyon',
- 'mu',
- 'mü',
- 'mý',
- 'mı',
- 'nasýl',
- 'nasıl',
- 'nasılsa',
- 'nazaran',
- 'naşi',
- 'ne',
- 'neden',
- 'nedeniyle',
- 'nedenle',
- 'nedense',
- 'nerde',
- 'nerden',
- 'nerdeyse',
- 'nere',
- 'nerede',
- 'nereden',
- 'neredeyse',
- 'neresi',
- 'nereye',
- 'netekim',
- 'neye',
- 'neyi',
- 'neyse',
- 'nice',
- 'nihayet',
- 'nihayetinde',
- 'nitekim',
- 'niye',
- 'niçin',
- 'o',
- 'olan',
- 'olarak',
- 'oldu',
- 'olduklarını',
- 'oldukça',
- 'olduğu',
- 'olduğunu',
- 'olmadı',
- 'olmadığı',
- 'olmak',
- 'olması',
- 'olmayan',
- 'olmaz',
- 'olsa',
- 'olsun',
- 'olup',
- 'olur',
- 'olursa',
- 'oluyor',
- 'on',
- 'ona',
- 'onca',
- 'onculayın',
- 'onda',
- 'ondan',
- 'onlar',
- 'onlardan',
- 'onlari',
- 'onlarýn',
- 'onları',
- 'onların',
- 'onu',
- 'onun',
- 'oracık',
- 'oracıkta',
- 'orada',
- 'oradan',
- 'oranca',
- 'oranla',
- 'oraya',
- 'otuz',
- 'oysa',
- 'oysaki',
- 'pek',
- 'pekala',
- 'peki',
- 'pekçe',
- 'peyderpey',
- 'rağmen',
- 'sadece',
- 'sahi',
- 'sahiden',
- 'sana',
- 'sanki',
- 'sekiz',
- 'seksen',
- 'sen',
- 'senden',
- 'seni',
- 'senin',
- 'siz',
- 'sizden',
- 'sizi',
- 'sizin',
- 'sonra',
- 'sonradan',
- 'sonraları',
- 'sonunda',
- 'tabii',
- 'tam',
- 'tamam',
- 'tamamen',
- 'tamamıyla',
- 'tarafından',
- 'tek',
- 'trilyon',
- 'tüm',
- 'var',
- 'vardı',
- 'vasıtasıyla',
- 've',
- 'velev',
- 'velhasıl',
- 'velhasılıkelam',
- 'veya',
- 'veyahut',
- 'ya',
- 'yahut',
- 'yakinen',
- 'yakında',
- 'yakından',
- 'yakınlarda',
- 'yalnız',
- 'yalnızca',
- 'yani',
- 'yapacak',
- 'yapmak',
- 'yaptı',
- 'yaptıkları',
- 'yaptığı',
- 'yaptığını',
- 'yapılan',
- 'yapılması',
- 'yapıyor',
- 'yedi',
- 'yeniden',
- 'yenilerde',
- 'yerine',
- 'yetmiþ',
- 'yetmiş',
- 'yetmiţ',
- 'yine',
- 'yirmi',
- 'yok',
- 'yoksa',
- 'yoluyla',
- 'yüz',
- 'yüzünden',
- 'zarfında',
- 'zaten',
- 'zati',
- 'zira',
- 'çabuk',
- 'çabukça',
- 'çeşitli',
- 'çok',
- 'çokları',
- 'çoklarınca',
- 'çokluk',
- 'çoklukla',
- 'çokça',
- 'çoğu',
- 'çoğun',
- 'çoğunca',
- 'çoğunlukla',
- 'çünkü',
- 'öbür',
- 'öbürkü',
- 'öbürü',
- 'önce',
- 'önceden',
- 'önceleri',
- 'öncelikle',
- 'öteki',
- 'ötekisi',
- 'öyle',
- 'öylece',
- 'öylelikle',
- 'öylemesine',
- 'öz',
- 'üzere',
- 'üç',
- 'þey',
- 'þeyden',
- 'þeyi',
- 'þeyler',
- 'þu',
- 'þuna',
- 'þunda',
- 'þundan',
- 'þunu',
- 'şayet',
- 'şey',
- 'şeyden',
- 'şeyi',
- 'şeyler',
- 'şu',
- 'şuna',
- 'şuncacık',
- 'şunda',
- 'şundan',
- 'şunlar',
- 'şunları',
- 'şunu',
- 'şunun',
- 'şura',
- 'şuracık',
- 'şuracıkta',
- 'şurası',
- 'şöyle',
- 'ţayet',
- 'ţimdi',
- 'ţu',
- 'ţöyle',
- ],
- uk: [
- 'авжеж',
- 'адже',
- 'але',
- 'б',
- 'без',
- 'був',
- 'була',
- 'були',
- 'було',
- 'бути',
- 'більш',
- 'вам',
- 'вас',
- 'весь',
- 'вздовж',
- 'ви',
- 'вниз',
- 'внизу',
- 'вона',
- 'вони',
- 'воно',
- 'все',
- 'всередині',
- 'всіх',
- 'від',
- 'він',
- 'да',
- 'давай',
- 'давати',
- 'де',
- 'дещо',
- 'для',
- 'до',
- 'з',
- 'завжди',
- 'замість',
- 'й',
- 'коли',
- 'ледве',
- 'майже',
- 'ми',
- 'навколо',
- 'навіть',
- 'нам',
- 'от',
- 'отже',
- 'отож',
- 'поза',
- 'про',
- 'під',
- 'та',
- 'так',
- 'такий',
- 'також',
- 'те',
- 'ти',
- 'тобто',
- 'тож',
- 'тощо',
- 'хоча',
- 'це',
- 'цей',
- 'чи',
- 'чого',
- 'що',
- 'як',
- 'який',
- 'якої',
- 'є',
- 'із',
- 'інших',
- 'їх',
- 'її',
- ],
- ur: [
- 'آئی',
- 'آئے',
- 'آج',
- 'آخر',
- 'آخرکبر',
- 'آدهی',
- 'آًب',
- 'آٹھ',
- 'آیب',
- 'اة',
- 'اخبزت',
- 'اختتبم',
- 'ادھر',
- 'ارد',
- 'اردگرد',
- 'ارکبى',
- 'اش',
- 'اضتعوبل',
- 'اضتعوبلات',
- 'اضطرذ',
- 'اضکب',
- 'اضکی',
- 'اضکے',
- 'اطراف',
- 'اغیب',
- 'افراد',
- 'الگ',
- 'اور',
- 'اوًچب',
- 'اوًچبئی',
- 'اوًچی',
- 'اوًچے',
- 'اى',
- 'اً',
- 'اًذر',
- 'اًہیں',
- 'اٹھبًب',
- 'اپٌب',
- 'اپٌے',
- 'اچھب',
- 'اچھی',
- 'اچھے',
- 'اکثر',
- 'اکٹھب',
- 'اکٹھی',
- 'اکٹھے',
- 'اکیلا',
- 'اکیلی',
- 'اکیلے',
- 'اگرچہ',
- 'اہن',
- 'ایطے',
- 'ایک',
- 'ب',
- 'ت',
- 'تبزٍ',
- 'تت',
- 'تر',
- 'ترتیت',
- 'تریي',
- 'تعذاد',
- 'تن',
- 'تو',
- 'توبم',
- 'توہی',
- 'توہیں',
- 'تٌہب',
- 'تک',
- 'تھب',
- 'تھوڑا',
- 'تھوڑی',
- 'تھوڑے',
- 'تھی',
- 'تھے',
- 'تیي',
- 'ثب',
- 'ثبئیں',
- 'ثبترتیت',
- 'ثبری',
- 'ثبرے',
- 'ثبعث',
- 'ثبلا',
- 'ثبلترتیت',
- 'ثبہر',
- 'ثدبئے',
- 'ثرآں',
- 'ثراں',
- 'ثرش',
- 'ثعذ',
- 'ثغیر',
- 'ثلٌذ',
- 'ثلٌذوثبلا',
- 'ثلکہ',
- 'ثي',
- 'ثٌب',
- 'ثٌبرہب',
- 'ثٌبرہی',
- 'ثٌبرہے',
- 'ثٌبًب',
- 'ثٌذ',
- 'ثٌذکرو',
- 'ثٌذکرًب',
- 'ثٌذی',
- 'ثڑا',
- 'ثڑوں',
- 'ثڑی',
- 'ثڑے',
- 'ثھر',
- 'ثھرا',
- 'ثھراہوا',
- 'ثھرپور',
- 'ثھی',
- 'ثہت',
- 'ثہتر',
- 'ثہتری',
- 'ثہتریي',
- 'ثیچ',
- 'ج',
- 'خب',
- 'خبرہب',
- 'خبرہی',
- 'خبرہے',
- 'خبهوظ',
- 'خبًب',
- 'خبًتب',
- 'خبًتی',
- 'خبًتے',
- 'خبًٌب',
- 'خت',
- 'ختن',
- 'خجکہ',
- 'خص',
- 'خططرذ',
- 'خلذی',
- 'خو',
- 'خواى',
- 'خوًہی',
- 'خوکہ',
- 'خٌبة',
- 'خگہ',
- 'خگہوں',
- 'خگہیں',
- 'خیطب',
- 'خیطبکہ',
- 'در',
- 'درخبت',
- 'درخہ',
- 'درخے',
- 'درزقیقت',
- 'درضت',
- 'دش',
- 'دفعہ',
- 'دلچطپ',
- 'دلچطپی',
- 'دلچطپیبں',
- 'دو',
- 'دور',
- 'دوراى',
- 'دوضرا',
- 'دوضروں',
- 'دوضری',
- 'دوضرے',
- 'دوًوں',
- 'دکھبئیں',
- 'دکھبتب',
- 'دکھبتی',
- 'دکھبتے',
- 'دکھبو',
- 'دکھبًب',
- 'دکھبیب',
- 'دی',
- 'دیب',
- 'دیتب',
- 'دیتی',
- 'دیتے',
- 'دیر',
- 'دیٌب',
- 'دیکھو',
- 'دیکھٌب',
- 'دیکھی',
- 'دیکھیں',
- 'دے',
- 'ر',
- 'راضتوں',
- 'راضتہ',
- 'راضتے',
- 'رریعہ',
- 'رریعے',
- 'رکي',
- 'رکھ',
- 'رکھب',
- 'رکھتب',
- 'رکھتبہوں',
- 'رکھتی',
- 'رکھتے',
- 'رکھی',
- 'رکھے',
- 'رہب',
- 'رہی',
- 'رہے',
- 'ز',
- 'زبصل',
- 'زبضر',
- 'زبل',
- 'زبلات',
- 'زبلیہ',
- 'زصوں',
- 'زصہ',
- 'زصے',
- 'زقبئق',
- 'زقیتیں',
- 'زقیقت',
- 'زکن',
- 'زکویہ',
- 'زیبدٍ',
- 'صبف',
- 'صسیر',
- 'صفر',
- 'صورت',
- 'صورتسبل',
- 'صورتوں',
- 'صورتیں',
- 'ض',
- 'ضبت',
- 'ضبتھ',
- 'ضبدٍ',
- 'ضبرا',
- 'ضبرے',
- 'ضبل',
- 'ضبلوں',
- 'ضت',
- 'ضرور',
- 'ضرورت',
- 'ضروری',
- 'ضلطلہ',
- 'ضوچ',
- 'ضوچب',
- 'ضوچتب',
- 'ضوچتی',
- 'ضوچتے',
- 'ضوچو',
- 'ضوچٌب',
- 'ضوچی',
- 'ضوچیں',
- 'ضکب',
- 'ضکتب',
- 'ضکتی',
- 'ضکتے',
- 'ضکٌب',
- 'ضکی',
- 'ضکے',
- 'ضیذھب',
- 'ضیذھی',
- 'ضیذھے',
- 'ضیکٌڈ',
- 'ضے',
- 'طرف',
- 'طریق',
- 'طریقوں',
- 'طریقہ',
- 'طریقے',
- 'طور',
- 'طورپر',
- 'ظبہر',
- 'ع',
- 'عذد',
- 'عظین',
- 'علاقوں',
- 'علاقہ',
- 'علاقے',
- 'علاوٍ',
- 'عووهی',
- 'غبیذ',
- 'غخص',
- 'غذ',
- 'غروع',
- 'غروعبت',
- 'غے',
- 'فرد',
- 'فی',
- 'ق',
- 'قجل',
- 'قجیلہ',
- 'قطن',
- 'لئے',
- 'لا',
- 'لازهی',
- 'لو',
- 'لوجب',
- 'لوجی',
- 'لوجے',
- 'لوسبت',
- 'لوسہ',
- 'لوگ',
- 'لوگوں',
- 'لڑکپي',
- 'لگتب',
- 'لگتی',
- 'لگتے',
- 'لگٌب',
- 'لگی',
- 'لگیں',
- 'لگے',
- 'لی',
- 'لیب',
- 'لیٌب',
- 'لیں',
- 'لے',
- 'ه',
- 'هتعلق',
- 'هختلف',
- 'هسترم',
- 'هسترهہ',
- 'هسطوش',
- 'هسیذ',
- 'هطئلہ',
- 'هطئلے',
- 'هطبئل',
- 'هطتعول',
- 'هطلق',
- 'هعلوم',
- 'هػتول',
- 'هلا',
- 'هوکي',
- 'هوکٌبت',
- 'هوکٌہ',
- 'هٌبضت',
- 'هڑا',
- 'هڑًب',
- 'هڑے',
- 'هکول',
- 'هگر',
- 'هہرثبى',
- 'هیرا',
- 'هیری',
- 'هیرے',
- 'هیں',
- 'و',
- 'وار',
- 'والے',
- 'وٍ',
- 'ًئی',
- 'ًئے',
- 'ًب',
- 'ًبپطٌذ',
- 'ًبگسیر',
- 'ًطجت',
- 'ًقطہ',
- 'ًو',
- 'ًوخواى',
- 'ًکبلٌب',
- 'ًکتہ',
- 'ًہ',
- 'ًہیں',
- 'ًیب',
- 'ًے',
- 'ٓ آش',
- 'ٹھیک',
- 'پبئے',
- 'پبش',
- 'پبًب',
- 'پبًچ',
- 'پر',
- 'پراًب',
- 'پطٌذ',
- 'پل',
- 'پورا',
- 'پوچھب',
- 'پوچھتب',
- 'پوچھتی',
- 'پوچھتے',
- 'پوچھو',
- 'پوچھوں',
- 'پوچھٌب',
- 'پوچھیں',
- 'پچھلا',
- 'پھر',
- 'پہلا',
- 'پہلی',
- 'پہلےضی',
- 'پہلےضے',
- 'پہلےضےہی',
- 'پیع',
- 'چبر',
- 'چبہب',
- 'چبہٌب',
- 'چبہے',
- 'چلا',
- 'چلو',
- 'چلیں',
- 'چلے',
- 'چکب',
- 'چکی',
- 'چکیں',
- 'چکے',
- 'چھوٹب',
- 'چھوٹوں',
- 'چھوٹی',
- 'چھوٹے',
- 'چھہ',
- 'چیسیں',
- 'ڈھوًڈا',
- 'ڈھوًڈلیب',
- 'ڈھوًڈو',
- 'ڈھوًڈًب',
- 'ڈھوًڈی',
- 'ڈھوًڈیں',
- 'ک',
- 'کئی',
- 'کئے',
- 'کب',
- 'کبفی',
- 'کبم',
- 'کت',
- 'کجھی',
- 'کرا',
- 'کرتب',
- 'کرتبہوں',
- 'کرتی',
- 'کرتے',
- 'کرتےہو',
- 'کررہب',
- 'کررہی',
- 'کررہے',
- 'کرو',
- 'کرًب',
- 'کریں',
- 'کرے',
- 'کطی',
- 'کل',
- 'کن',
- 'کوئی',
- 'کوتر',
- 'کورا',
- 'کوروں',
- 'کورٍ',
- 'کورے',
- 'کوطي',
- 'کوى',
- 'کوًطب',
- 'کوًطی',
- 'کوًطے',
- 'کھولا',
- 'کھولو',
- 'کھولٌب',
- 'کھولی',
- 'کھولیں',
- 'کھولے',
- 'کہ',
- 'کہب',
- 'کہتب',
- 'کہتی',
- 'کہتے',
- 'کہو',
- 'کہوں',
- 'کہٌب',
- 'کہی',
- 'کہیں',
- 'کہے',
- 'کی',
- 'کیب',
- 'کیطب',
- 'کیطرف',
- 'کیطے',
- 'کیلئے',
- 'کیوًکہ',
- 'کیوں',
- 'کیے',
- 'کے',
- 'کےثعذ',
- 'کےرریعے',
- 'گئی',
- 'گئے',
- 'گب',
- 'گرد',
- 'گروٍ',
- 'گروپ',
- 'گروہوں',
- 'گٌتی',
- 'گی',
- 'گیب',
- 'گے',
- 'ہر',
- 'ہن',
- 'ہو',
- 'ہوئی',
- 'ہوئے',
- 'ہوا',
- 'ہوبرا',
- 'ہوبری',
- 'ہوبرے',
- 'ہوتب',
- 'ہوتی',
- 'ہوتے',
- 'ہورہب',
- 'ہورہی',
- 'ہورہے',
- 'ہوضکتب',
- 'ہوضکتی',
- 'ہوضکتے',
- 'ہوًب',
- 'ہوًی',
- 'ہوًے',
- 'ہوچکب',
- 'ہوچکی',
- 'ہوچکے',
- 'ہوگئی',
- 'ہوگئے',
- 'ہوگیب',
- 'ہوں',
- 'ہی',
- 'ہیں',
- 'ہے',
- 'ی',
- 'یقیٌی',
- 'یہ',
- 'یہبں',
- ],
- vi: [
- 'a ha',
- 'a-lô',
- 'ai',
- 'ai ai',
- 'ai nấy',
- 'alô',
- 'amen',
- 'anh',
- 'bao giờ',
- 'bao lâu',
- 'bao nhiêu',
- 'bao nả',
- 'bay biến',
- 'biết',
- 'biết bao',
- 'biết bao nhiêu',
- 'biết chừng nào',
- 'biết mấy',
- 'biết đâu',
- 'biết đâu chừng',
- 'biết đâu đấy',
- 'bà',
- 'bài',
- 'bác',
- 'bây bẩy',
- 'bây chừ',
- 'bây giờ',
- 'bây nhiêu',
- 'bèn',
- 'béng',
- 'bông',
- 'bạn',
- 'bản',
- 'bất chợt',
- 'bất cứ',
- 'bất giác',
- 'bất kì',
- 'bất kể',
- 'bất kỳ',
- 'bất luận',
- 'bất nhược',
- 'bất quá',
- 'bất thình lình',
- 'bất tử',
- 'bất đồ',
- 'bấy',
- 'bấy chầy',
- 'bấy chừ',
- 'bấy giờ',
- 'bấy lâu',
- 'bấy lâu nay',
- 'bấy nay',
- 'bấy nhiêu',
- 'bập bà bập bõm',
- 'bập bõm',
- 'bắt đầu từ',
- 'bằng',
- 'bằng không',
- 'bằng nấy',
- 'bằng ấy',
- 'bển',
- 'bệt',
- 'bị',
- 'bỏ mẹ',
- 'bỗng',
- 'bỗng chốc',
- 'bỗng dưng',
- 'bỗng không',
- 'bỗng nhiên',
- 'bỗng đâu',
- 'bộ',
- 'bội phần',
- 'bớ',
- 'bởi',
- 'bởi chưng',
- 'bởi nhưng',
- 'bởi thế',
- 'bởi vì',
- 'bởi vậy',
- 'bức',
- 'cao',
- 'cha',
- 'cha chả',
- 'chao ôi',
- 'chiếc',
- 'cho',
- 'cho nên',
- 'cho tới',
- 'cho tới khi',
- 'cho đến',
- 'cho đến khi',
- 'choa',
- 'chu cha',
- 'chui cha',
- 'chung cục',
- 'chung qui',
- 'chung quy',
- 'chung quy lại',
- 'chuyện',
- 'chành chạnh',
- 'chí chết',
- 'chính',
- 'chính là',
- 'chính thị',
- 'chùn chùn',
- 'chùn chũn',
- 'chú',
- 'chú mày',
- 'chú mình',
- 'chúng mình',
- 'chúng ta',
- 'chúng tôi',
- 'chăn chắn',
- 'chăng',
- 'chưa',
- 'chầm chập',
- 'chậc',
- 'chắc',
- 'chắc hẳn',
- 'chẳng lẽ',
- 'chẳng những',
- 'chẳng nữa',
- 'chẳng phải',
- 'chết nỗi',
- 'chết thật',
- 'chết tiệt',
- 'chỉ',
- 'chỉn',
- 'chốc chốc',
- 'chớ',
- 'chớ chi',
- 'chợt',
- 'chủn',
- 'chứ',
- 'chứ lị',
- 'coi bộ',
- 'coi mòi',
- 'con',
- 'cu cậu',
- 'cuốn',
- 'cuộc',
- 'càng',
- 'các',
- 'cái',
- 'cây',
- 'còn',
- 'có',
- 'có chăng là',
- 'có dễ',
- 'có thể',
- 'có vẻ',
- 'cóc khô',
- 'cô',
- 'cô mình',
- 'công nhiên',
- 'cùng',
- 'cùng cực',
- 'cùng nhau',
- 'cùng với',
- 'căn',
- 'căn cắt',
- 'cũng',
- 'cũng như',
- 'cũng vậy',
- 'cũng vậy thôi',
- 'cơ',
- 'cơ chừng',
- 'cơ hồ',
- 'cơ mà',
- 'cơn',
- 'cả',
- 'cả thảy',
- 'cả thể',
- 'cảm ơn',
- 'cần',
- 'cật lực',
- 'cật sức',
- 'cậu',
- 'cổ lai',
- 'của',
- 'cứ',
- 'cứ việc',
- 'cực lực',
- 'do',
- 'do vì',
- 'do vậy',
- 'do đó',
- 'duy',
- 'dào',
- 'dì',
- 'dù cho',
- 'dù rằng',
- 'dưới',
- 'dạ',
- 'dần dà',
- 'dần dần',
- 'dầu sao',
- 'dẫu',
- 'dẫu sao',
- 'dễ sợ',
- 'dễ thường',
- 'dở chừng',
- 'dữ',
- 'em',
- 'giữa',
- 'gì',
- 'hay',
- 'hoàn toàn',
- 'hoặc',
- 'hơn',
- 'hầu hết',
- 'họ',
- 'hỏi',
- 'khi',
- 'khác',
- 'không',
- 'luôn',
- 'là',
- 'làm',
- 'lên',
- 'lúc',
- 'lại',
- 'lần',
- 'lớn',
- 'muốn',
- 'mà',
- 'mình',
- 'mỗi',
- 'một',
- 'một cách',
- 'mới',
- 'mợ',
- 'ngay',
- 'ngay cả',
- 'ngay khi',
- 'ngay lúc',
- 'ngay lập tức',
- 'ngay tức khắc',
- 'ngay từ',
- 'nghe chừng',
- 'nghe đâu',
- 'nghen',
- 'nghiễm nhiên',
- 'nghỉm',
- 'ngoài',
- 'ngoài ra',
- 'ngoải',
- 'ngày',
- 'ngày càng',
- 'ngày ngày',
- 'ngày xưa',
- 'ngày xửa',
- 'ngôi',
- 'ngõ hầu',
- 'ngăn ngắt',
- 'ngươi',
- 'người',
- 'ngọn',
- 'ngọt',
- 'ngộ nhỡ',
- 'nh',
- 'nhau',
- 'nhiên hậu',
- 'nhiều',
- 'nhiệt liệt',
- 'nhung nhăng',
- 'nhà',
- 'nhân dịp',
- 'nhân tiện',
- 'nhé',
- 'nhón nhén',
- 'như',
- 'như chơi',
- 'như không',
- 'như quả',
- 'như thể',
- 'như tuồng',
- 'như vậy',
- 'nhưng',
- 'nhưng mà',
- 'nhược bằng',
- 'nhất',
- 'nhất loạt',
- 'nhất luật',
- 'nhất mực',
- 'nhất nhất',
- 'nhất quyết',
- 'nhất sinh',
- 'nhất thiết',
- 'nhất tâm',
- 'nhất tề',
- 'nhất đán',
- 'nhất định',
- 'nhận',
- 'nhỉ',
- 'nhỡ ra',
- 'những',
- 'những ai',
- 'những như',
- 'nào',
- 'này',
- 'nên',
- 'nên chi',
- 'nó',
- 'nóc',
- 'nói',
- 'năm',
- 'nơi',
- 'nấy',
- 'nếu',
- 'nếu như',
- 'nền',
- 'nọ',
- 'nớ',
- 'nức nở',
- 'nữa',
- 'oai oái',
- 'oái',
- 'pho',
- 'phè',
- 'phóc',
- 'phót',
- 'phăn phắt',
- 'phương chi',
- 'phải',
- 'phải chi',
- 'phải chăng',
- 'phắt',
- 'phỉ phui',
- 'phỏng',
- 'phỏng như',
- 'phốc',
- 'phụt',
- 'phứt',
- 'qua',
- 'qua quít',
- 'qua quýt',
- 'quyết',
- 'quyết nhiên',
- 'quyển',
- 'quá',
- 'quá chừng',
- 'quá lắm',
- 'quá sá',
- 'quá thể',
- 'quá trời',
- 'quá xá',
- 'quá đỗi',
- 'quá độ',
- 'quá ư',
- 'quý hồ',
- 'quả',
- 'quả là',
- 'quả tang',
- 'quả thật',
- 'quả tình',
- 'quả vậy',
- 'quả đúng',
- 'ra',
- 'ra phết',
- 'ra sao',
- 'ra trò',
- 'ren rén',
- 'riu ríu',
- 'riêng',
- 'riệt',
- 'rày',
- 'ráo',
- 'ráo trọi',
- 'rén',
- 'rích',
- 'rón rén',
- 'rút cục',
- 'răng',
- 'rất',
- 'rằng',
- 'rằng là',
- 'rốt cuộc',
- 'rốt cục',
- 'rồi',
- 'rứa',
- 'sa sả',
- 'sao',
- 'sau',
- 'sau chót',
- 'sau cuối',
- 'sau cùng',
- 'sau đó',
- 'so',
- 'song le',
- 'suýt',
- 'sì',
- 'sạch',
- 'sất',
- 'sắp',
- 'sẽ',
- 'số',
- 'số là',
- 'sốt sột',
- 'sở dĩ',
- 'sự',
- 'tanh',
- 'tha hồ',
- 'than ôi',
- 'thanh',
- 'theo',
- 'thi thoảng',
- 'thoạt',
- 'thoạt nhiên',
- 'thoắt',
- 'thuần',
- 'thà',
- 'thà là',
- 'thà rằng',
- 'thành ra',
- 'thành thử',
- 'thái quá',
- 'tháng',
- 'thì',
- 'thì thôi',
- 'thình lình',
- 'thím',
- 'thôi',
- 'thúng thắng',
- 'thương ôi',
- 'thường',
- 'thảo hèn',
- 'thảo nào',
- 'thấy',
- 'thẩy',
- 'thậm',
- 'thậm chí',
- 'thật lực',
- 'thật ra',
- 'thật vậy',
- 'thế',
- 'thế là',
- 'thế mà',
- 'thế nào',
- 'thế nên',
- 'thế ra',
- 'thế thì',
- 'thế à',
- 'thếch',
- 'thỉnh thoảng',
- 'thỏm',
- 'thốc',
- 'thốc tháo',
- 'thốt',
- 'thốt nhiên',
- 'thộc',
- 'thời gian',
- 'thục mạng',
- 'thửa',
- 'thực ra',
- 'thực sự',
- 'thực vậy',
- 'tiếp theo',
- 'tiếp đó',
- 'tiện thể',
- 'toà',
- 'toé khói',
- 'toẹt',
- 'trong',
- 'trên',
- 'trước',
- 'trước kia',
- 'trước nay',
- 'trước tiên',
- 'trước đây',
- 'trước đó',
- 'trếu tráo',
- 'trển',
- 'trệt',
- 'trệu trạo',
- 'trỏng',
- 'trời đất ơi',
- 'trừ phi',
- 'tuy',
- 'tuy nhiên',
- 'tuy rằng',
- 'tuy thế',
- 'tuy vậy',
- 'tuyệt nhiên',
- 'tuần tự',
- 'tuốt luốt',
- 'tuốt tuồn tuột',
- 'tuốt tuột',
- 'tà tà',
- 'tênh',
- 'tít mù',
- 'tò te',
- 'tôi',
- 'tông tốc',
- 'tù tì',
- 'tăm tắp',
- 'tại',
- 'tại vì',
- 'tấm',
- 'tấn',
- 'tất cả',
- 'tất thảy',
- 'tất tần tật',
- 'tất tật',
- 'tắp',
- 'tắp lự',
- 'tọt',
- 'tỏ ra',
- 'tỏ vẻ',
- 'tốc tả',
- 'tối ư',
- 'tột',
- 'tớ',
- 'tới',
- 'tức thì',
- 'tức tốc',
- 'từ',
- 'từng',
- 'tự vì',
- 'tựu trung',
- 'veo',
- 'veo veo',
- 'việc',
- 'vung thiên địa',
- 'vung tàn tán',
- 'vung tán tàn',
- 'và',
- 'vào',
- 'vâng',
- 'vèo',
- 'vì',
- 'vì chưng',
- 'vì thế',
- 'vì vậy',
- 'ví bằng',
- 'ví dù',
- 'ví phỏng',
- 'ví thử',
- 'vô hình trung',
- 'vô kể',
- 'vô luận',
- 'vô vàn',
- 'văng tê',
- 'vạn nhất',
- 'vả chăng',
- 'vả lại',
- 'vẫn',
- 'vậy',
- 'vậy là',
- 'vậy thì',
- 'về',
- 'vị tất',
- 'vốn dĩ',
- 'với',
- 'với lại',
- 'vở',
- 'vụt',
- 'vừa',
- 'vừa mới',
- 'xa xả',
- 'xiết bao',
- 'xon xón',
- 'xoành xoạch',
- 'xoét',
- 'xoẳn',
- 'xoẹt',
- 'xuất kì bất ý',
- 'xuất kỳ bất ý',
- 'xuể',
- 'xuống',
- 'xăm xúi',
- 'xăm xăm',
- 'xăm xắm',
- 'xềnh xệch',
- 'xệp',
- 'à',
- 'à ơi',
- 'ào',
- 'á',
- 'á à',
- 'ái',
- 'ái chà',
- 'ái dà',
- 'áng',
- 'âu là',
- 'ô hay',
- 'ô hô',
- 'ô kê',
- 'ô kìa',
- 'ôi chao',
- 'ôi thôi',
- 'ông',
- 'úi',
- 'úi chà',
- 'úi dào',
- 'ý',
- 'ý chừng',
- 'ý da',
- 'đang',
- 'đi',
- 'điều',
- 'đành đạch',
- 'đáng lí',
- 'đáng lý',
- 'đáng lẽ',
- 'đánh đùng',
- 'đáo để',
- 'đây',
- 'đã',
- 'đó',
- 'được',
- 'đại loại',
- 'đại nhân',
- 'đại phàm',
- 'đại để',
- 'đến',
- 'đến nỗi',
- 'đều',
- 'để',
- 'ơ',
- 'ơ hay',
- 'ơ kìa',
- 'ơi',
- 'ư',
- 'ạ',
- 'ạ ơi',
- 'ấy',
- 'ầu ơ',
- 'ắt',
- 'ắt hẳn',
- 'ắt là',
- 'ối dào',
- 'ối giời',
- 'ối giời ơi',
- 'ồ',
- 'ổng',
- 'ớ',
- 'ờ',
- 'ở',
- 'ở trên',
- 'ủa',
- 'ứ hự',
- 'ứ ừ',
- 'ừ',
- 'ử',
- ],
- yo: [
- 'a',
- 'an',
- 'bá',
- 'bí',
- 'bẹ̀rẹ̀',
- 'fún',
- 'fẹ́',
- 'gbogbo',
- 'inú',
- 'jù',
- 'jẹ',
- 'jẹ́',
- 'kan',
- 'kì',
- 'kí',
- 'kò',
- 'láti',
- 'lè',
- 'lọ',
- 'mi',
- 'mo',
- 'máa',
- 'mọ̀',
- 'ni',
- 'náà',
- 'ní',
- 'nígbà',
- 'nítorí',
- 'nǹkan',
- 'o',
- 'padà',
- 'pé',
- 'púpọ̀',
- 'pẹ̀lú',
- 'rẹ̀',
- 'sì',
- 'sí',
- 'sínú',
- 'ṣ',
- 'ti',
- 'tí',
- 'wà',
- 'wá',
- 'wọn',
- 'wọ́n',
- 'yìí',
- 'àti',
- 'àwọn',
- 'é',
- 'í',
- 'òun',
- 'ó',
- 'ń',
- 'ńlá',
- 'ṣe',
- 'ṣé',
- 'ṣùgbọ́n',
- 'ẹmọ́',
- 'ọjọ́',
- 'ọ̀pọ̀lọpọ̀',
- ],
- zu: [
- 'futhi',
- 'kahle',
- 'kakhulu',
- 'kanye',
- 'khona',
- 'kodwa',
- 'kungani',
- 'kusho',
- 'la',
- 'lakhe',
- 'lapho',
- 'mina',
- 'ngesikhathi',
- 'nje',
- 'phansi',
- 'phezulu',
- 'u',
- 'ukuba',
- 'ukuthi',
- 'ukuze',
- 'uma',
- 'wahamba',
- 'wakhe',
- 'wami',
- 'wase',
- 'wathi',
- 'yakhe',
- 'zakhe',
- 'zonke',
- ]
-};
-//# sourceMappingURL=utils.js.map
\ No newline at end of file
diff --git a/build/indexing_pipeline/utils.js.map b/build/indexing_pipeline/utils.js.map
deleted file mode 100644
index 4ae6fe5..0000000
--- a/build/indexing_pipeline/utils.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/indexing_pipeline/utils.ts"],"names":[],"mappings":"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IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,GAAG;QACH,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,MAAM;QACN,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,GAAG;QACH,IAAI;QACJ,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;KACN;IACD,EAAE,EAAE;QACA,GAAG;QACH,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,GAAG;QACH,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;KACR;IACD,EAAE,EAAE;QACA,GAAG;QACH,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,SAAS;QACT,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,OAAO;QACP,MAAM;QACN,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,SAAS;QACT,KAAK;QACL,KAAK;QACL,MAAM;QACN,SAAS;QACT,UAAU;QACV,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,OAAO;QACP,GAAG;QACH,KAAK;QACL,SAAS;QACT,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,OAAO;QACP,UAAU;QACV,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,GAAG;QACH,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,SAAS;QACT,SAAS;QACT,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,SAAS;QACT,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,GAAG;QACH,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,SAAS;QACT,KAAK;QACL,SAAS;QACT,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,SAAS;QACT,IAAI;QACJ,OAAO;QACP,GAAG;QACH,IAAI;QACJ,MAAM;QACN,UAAU;QACV,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,UAAU;QACV,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,SAAS;QACT,GAAG;QACH,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;QACP,MAAM;QACN,SAAS;QACT,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,GAAG;QACH,IAAI;QACJ,SAAS;QACT,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,OAAO;QACP,MAAM;QACN,UAAU;QACV,IAAI;KACP;IACD,EAAE,EAAE;QACA,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,SAAS;QACT,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,SAAS;QACT,SAAS;QACT,SAAS;QACT,GAAG;QACH,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;KACV;IACD,EAAE,EAAE;QACA,KAAK;QACL,WAAW;QACX,WAAW;QACX,OAAO;QACP,QAAQ;QACR,UAAU;QACV,IAAI;QACJ,WAAW;QACX,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,UAAU;QACV,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,OAAO;QACP,QAAQ;QACR,KAAK;QACL,SAAS;QACT,MAAM;QACN,SAAS;QACT,aAAa;QACb,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;QACV,WAAW;QACX,SAAS;QACT,OAAO;QACP,SAAS;QACT,WAAW;QACX,cAAc;QACd,aAAa;QACb,cAAc;QACd,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,cAAc;QACd,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,UAAU;QACV,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,UAAU;QACV,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,WAAW;QACX,MAAM;QACN,SAAS;QACT,KAAK;QACL,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;QACP,WAAW;QACX,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,WAAW;QACX,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,KAAK;QACL,UAAU;QACV,MAAM;QACN,UAAU;QACV,SAAS;QACT,MAAM;QACN,IAAI;QACJ,WAAW;QACX,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,UAAU;QACV,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,WAAW;QACX,MAAM;QACN,UAAU;QACV,KAAK;QACL,QAAQ;QACR,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,SAAS;QACT,KAAK;QACL,KAAK;QACL,WAAW;QACX,MAAM;QACN,aAAa;QACb,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,SAAS;QACT,KAAK;QACL,QAAQ;QACR,SAAS;QACT,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,WAAW;QACX,WAAW;QACX,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,KAAK;QACL,QAAQ;QACR,WAAW;QACX,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,SAAS;QACT,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,MAAM;QACN,WAAW;QACX,QAAQ;QACR,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,MAAM;QACN,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,UAAU;QACV,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,KAAK;QACL,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,UAAU;QACV,KAAK;QACL,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,SAAS;QACT,OAAO;QACP,SAAS;QACT,OAAO;QACP,aAAa;QACb,UAAU;QACV,KAAK;QACL,SAAS;QACT,MAAM;QACN,SAAS;QACT,MAAM;QACN,KAAK;QACL,IAAI;QACJ,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;QACV,SAAS;QACT,WAAW;QACX,MAAM;QACN,KAAK;QACL,KAAK;QACL,SAAS;QACT,QAAQ;QACR,UAAU;QACV,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,UAAU;QACV,IAAI;QACJ,OAAO;QACP,WAAW;QACX,QAAQ;QACR,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,WAAW;QACX,WAAW;QACX,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,GAAG;QACH,KAAK;QACL,cAAc;QACd,IAAI;QACJ,MAAM;QACN,SAAS;QACT,KAAK;QACL,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,MAAM;QACN,SAAS;QACT,SAAS;QACT,QAAQ;QACR,cAAc;QACd,eAAe;QACf,YAAY;QACZ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS;QACT,KAAK;QACL,SAAS;QACT,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,SAAS;QACT,WAAW;QACX,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,gBAAgB;QAChB,SAAS;QACT,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,SAAS;QACT,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,SAAS;QACT,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,UAAU;QACV,KAAK;QACL,MAAM;QACN,OAAO;QACP,SAAS;QACT,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;KACT;IACD,EAAE,EAAE;QACA,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,MAAM;QACN,WAAW;QACX,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,WAAW;QACX,aAAa;QACb,QAAQ;QACR,KAAK;QACL,UAAU;QACV,IAAI;QACJ,OAAO;QACP,KAAK;QACL,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,WAAW;QACX,SAAS;QACT,OAAO;QACP,YAAY;QACZ,IAAI;QACJ,OAAO;QACP,SAAS;QACT,KAAK;QACL,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,WAAW;QACX,SAAS;QACT,MAAM;QACN,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,OAAO;QACP,SAAS;QACT,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,UAAU;QACV,SAAS;QACT,KAAK;QACL,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,UAAU;QACV,IAAI;QACJ,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,eAAe;QACf,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,WAAW;QACX,IAAI;QACJ,MAAM;QACN,SAAS;QACT,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,UAAU;QACV,WAAW;QACX,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,OAAO;QACP,OAAO;QACP,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,WAAW;QACX,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,SAAS;QACT,OAAO;QACP,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,KAAK;QACL,YAAY;QACZ,cAAc;QACd,UAAU;QACV,aAAa;QACb,SAAS;QACT,YAAY;QACZ,UAAU;QACV,MAAM;QACN,eAAe;QACf,OAAO;QACP,UAAU;QACV,QAAQ;QACR,UAAU;QACV,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,WAAW;QACX,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,MAAM;QACN,SAAS;QACT,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,MAAM;QACN,YAAY;QACZ,UAAU;QACV,WAAW;QACX,SAAS;QACT,QAAQ;QACR,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,WAAW;QACX,aAAa;QACb,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,UAAU;QACV,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,WAAW;QACX,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,WAAW;QACX,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,YAAY;QACZ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,UAAU;QACV,OAAO;QACP,WAAW;QACX,UAAU;QACV,YAAY;QACZ,YAAY;QACZ,IAAI;QACJ,SAAS;QACT,SAAS;QACT,QAAQ;QACR,GAAG;QACH,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,SAAS;QACT,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,WAAW;QACX,SAAS;QACT,KAAK;QACL,SAAS;QACT,QAAQ;QACR,UAAU;QACV,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,WAAW;QACX,YAAY;QACZ,aAAa;QACb,UAAU;QACV,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,WAAW;QACX,KAAK;QACL,MAAM;QACN,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,SAAS;QACT,UAAU;QACV,WAAW;QACX,OAAO;QACP,SAAS;QACT,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,MAAM;QACN,SAAS;QACT,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,SAAS;QACT,KAAK;QACL,SAAS;QACT,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,UAAU;QACV,WAAW;QACX,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,SAAS;QACT,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,SAAS;QACT,GAAG;QACH,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,WAAW;QACX,aAAa;QACb,YAAY;QACZ,WAAW;QACX,IAAI;QACJ,UAAU;QACV,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,UAAU;QACV,WAAW;QACX,WAAW;QACX,aAAa;QACb,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,KAAK;QACL,UAAU;QACV,YAAY;QACZ,aAAa;QACb,WAAW;QACX,MAAM;QACN,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,GAAG;QACH,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,OAAO;QACP,SAAS;QACT,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,UAAU;QACV,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,OAAO;QACP,UAAU;QACV,WAAW;QACX,QAAQ;QACR,SAAS;QACT,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,WAAW;QACX,OAAO;QACP,UAAU;QACV,UAAU;QACV,SAAS;QACT,KAAK;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,UAAU;QACV,MAAM;QACN,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,aAAa;QACb,WAAW;QACX,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,OAAO;QACP,SAAS;QACT,KAAK;QACL,UAAU;QACV,OAAO;QACP,QAAQ;QACR,WAAW;QACX,cAAc;QACd,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,aAAa;QACb,OAAO;QACP,KAAK;QACL,UAAU;QACV,KAAK;QACL,KAAK;QACL,OAAO;QACP,SAAS;QACT,iBAAiB;QACjB,OAAO;QACP,KAAK;QACL,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,UAAU;QACV,WAAW;QACX,IAAI;QACJ,KAAK;QACL,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,SAAS;QACT,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,UAAU;QACV,IAAI;QACJ,KAAK;QACL,OAAO;QACP,SAAS;QACT,UAAU;QACV,QAAQ;QACR,KAAK;QACL,OAAO;QACP,QAAQ;QACR,WAAW;QACX,OAAO;QACP,UAAU;QACV,SAAS;QACT,KAAK;QACL,MAAM;QACN,WAAW;QACX,KAAK;QACL,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,cAAc;QACd,SAAS;QACT,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,OAAO;QACP,SAAS;QACT,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,aAAa;QACb,IAAI;QACJ,IAAI;QACJ,eAAe;QACf,SAAS;QACT,WAAW;QACX,YAAY;QACZ,UAAU;QACV,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,UAAU;QACV,SAAS;QACT,UAAU;QACV,UAAU;QACV,OAAO;QACP,UAAU;QACV,UAAU;QACV,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,SAAS;QACT,OAAO;QACP,IAAI;QACJ,GAAG;QACH,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,KAAK;QACL,MAAM;QACN,WAAW;QACX,YAAY;QACZ,SAAS;QACT,SAAS;QACT,YAAY;QACZ,UAAU;QACV,UAAU;QACV,cAAc;QACd,UAAU;QACV,WAAW;QACX,SAAS;QACT,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,UAAU;QACV,SAAS;QACT,SAAS;QACT,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,UAAU;QACV,MAAM;QACN,SAAS;QACT,WAAW;QACX,OAAO;QACP,SAAS;QACT,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,WAAW;QACX,SAAS;QACT,WAAW;QACX,UAAU;QACV,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,aAAa;QACb,eAAe;QACf,SAAS;QACT,WAAW;QACX,OAAO;QACP,SAAS;QACT,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,OAAO;QACP,SAAS;QACT,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,UAAU;QACV,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,WAAW;QACX,UAAU;QACV,WAAW;QACX,UAAU;QACV,WAAW;QACX,MAAM;QACN,OAAO;QACP,cAAc;QACd,WAAW;QACX,SAAS;QACT,YAAY;QACZ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,UAAU;QACV,IAAI;QACJ,KAAK;QACL,eAAe;QACf,cAAc;QACd,MAAM;QACN,cAAc;QACd,SAAS;QACT,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,OAAO;QACP,SAAS;QACT,UAAU;QACV,UAAU;QACV,SAAS;QACT,UAAU;QACV,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,WAAW;QACX,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,UAAU;QACV,YAAY;QACZ,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,UAAU;QACV,UAAU;QACV,OAAO;QACP,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,UAAU;QACV,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,YAAY;QACZ,SAAS;QACT,eAAe;QACf,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,SAAS;QACT,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,MAAM;QACN,OAAO;QACP,SAAS;QACT,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,OAAO;QACP,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,SAAS;QACT,SAAS;QACT,KAAK;QACL,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;QACP,SAAS;QACT,UAAU;QACV,SAAS;QACT,YAAY;QACZ,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,WAAW;QACX,UAAU;QACV,SAAS;QACT,OAAO;QACP,WAAW;QACX,OAAO;QACP,QAAQ;QACR,MAAM;QACN,SAAS;QACT,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,MAAM;QACN,UAAU;QACV,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;QACV,QAAQ;QACR,UAAU;QACV,SAAS;QACT,IAAI;QACJ,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,UAAU;QACV,YAAY;QACZ,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;KACP;IACD,EAAE,EAAE;QACA,OAAO;QACP,KAAK;QACL,IAAI;QACJ,SAAS;QACT,OAAO;QACP,IAAI;QACJ,OAAO;QACP,SAAS;QACT,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,SAAS;QACT,SAAS;QACT,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,UAAU;QACV,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,MAAM;QACN,SAAS;QACT,KAAK;QACL,UAAU;QACV,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,GAAG;QACH,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,UAAU;QACV,MAAM;QACN,SAAS;QACT,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,SAAS;QACT,WAAW;QACX,SAAS;QACT,KAAK;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;KACR;IACD,EAAE,EAAE;QACA,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;KACR;IACD,EAAE,EAAE;QACA,SAAS;QACT,MAAM;QACN,OAAO;QACP,QAAQ;QACR,aAAa;QACb,UAAU;QACV,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,SAAS;QACT,MAAM;QACN,UAAU;QACV,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,UAAU;QACV,QAAQ;QACR,MAAM;QACN,MAAM;QACN,WAAW;QACX,SAAS;QACT,SAAS;QACT,WAAW;QACX,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,WAAW;QACX,WAAW;QACX,SAAS;QACT,SAAS;QACT,WAAW;QACX,UAAU;QACV,cAAc;QACd,SAAS;QACT,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,WAAW;QACX,SAAS;QACT,UAAU;QACV,OAAO;QACP,WAAW;QACX,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,UAAU;QACV,UAAU;QACV,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,UAAU;QACV,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,MAAM;QACN,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,OAAO;QACP,MAAM;QACN,aAAa;QACb,eAAe;QACf,aAAa;QACb,cAAc;QACd,aAAa;QACb,eAAe;QACf,cAAc;QACd,aAAa;QACb,aAAa;QACb,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,MAAM;QACN,KAAK;QACL,UAAU;QACV,aAAa;QACb,SAAS;QACT,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,aAAa;QACb,IAAI;QACJ,OAAO;QACP,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,WAAW;QACX,SAAS;QACT,SAAS;QACT,WAAW;QACX,WAAW;QACX,WAAW;QACX,SAAS;QACT,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,MAAM;QACN,UAAU;QACV,QAAQ;QACR,UAAU;QACV,SAAS;QACT,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,YAAY;QACZ,MAAM;QACN,SAAS;QACT,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,UAAU;QACV,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,YAAY;QACZ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,UAAU;QACV,YAAY;QACZ,OAAO;QACP,OAAO;QACP,WAAW;QACX,SAAS;QACT,SAAS;QACT,WAAW;QACX,UAAU;QACV,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,WAAW;QACX,QAAQ;QACR,UAAU;QACV,OAAO;QACP,SAAS;QACT,SAAS;QACT,KAAK;QACL,WAAW;QACX,cAAc;QACd,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,UAAU;QACV,UAAU;QACV,OAAO;QACP,SAAS;QACT,KAAK;QACL,QAAQ;QACR,UAAU;QACV,UAAU;QACV,SAAS;QACT,QAAQ;QACR,SAAS;QACT,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,SAAS;QACT,OAAO;QACP,UAAU;QACV,WAAW;QACX,QAAQ;QACR,UAAU;QACV,WAAW;QACX,UAAU;QACV,WAAW;QACX,UAAU;QACV,OAAO;QACP,UAAU;QACV,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,SAAS;QACT,aAAa;QACb,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,aAAa;QACb,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,UAAU;QACV,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,WAAW;QACX,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,WAAW;QACX,eAAe;QACf,OAAO;QACP,WAAW;QACX,UAAU;QACV,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,UAAU;QACV,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACT,SAAS;QACT,MAAM;QACN,gBAAgB;QAChB,aAAa;QACb,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,UAAU;QACV,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,YAAY;QACZ,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,UAAU;QACV,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,WAAW;QACX,WAAW;QACX,WAAW;QACX,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,OAAO;QACP,KAAK;QACL,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,QAAQ;QACR,WAAW;QACX,MAAM;QACN,SAAS;QACT,UAAU;QACV,OAAO;QACP,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,WAAW;QACX,UAAU;QACV,UAAU;QACV,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,UAAU;QACV,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,MAAM;QACN,MAAM;QACN,aAAa;QACb,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,UAAU;QACV,SAAS;QACT,aAAa;QACb,WAAW;QACX,aAAa;QACb,QAAQ;QACR,MAAM;QACN,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,SAAS;QACT,IAAI;QACJ,WAAW;QACX,MAAM;QACN,KAAK;QACL,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,WAAW;QACX,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,SAAS;QACT,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,KAAK;QACL,MAAM;QACN,SAAS;QACT,SAAS;QACT,KAAK;QACL,OAAO;QACP,UAAU;QACV,QAAQ;QACR,OAAO;QACP,OAAO;QACP,aAAa;QACb,WAAW;QACX,SAAS;QACT,aAAa;QACb,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,SAAS;QACT,QAAQ;QACR,WAAW;QACX,WAAW;QACX,WAAW;QACX,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,cAAc;QACd,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,WAAW;QACX,SAAS;QACT,SAAS;QACT,WAAW;QACX,WAAW;QACX,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,MAAM;QACN,SAAS;QACT,YAAY;QACZ,OAAO;QACP,QAAQ;QACR,SAAS;QACT,WAAW;QACX,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,MAAM;QACN,UAAU;QACV,KAAK;QACL,WAAW;QACX,QAAQ;QACR,SAAS;QACT,SAAS;QACT,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,QAAQ;QACR,MAAM;QACN,UAAU;QACV,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,OAAO;QACP,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,UAAU;QACV,OAAO;QACP,QAAQ;QACR,OAAO;QACP,WAAW;QACX,WAAW;QACX,UAAU;QACV,OAAO;QACP,KAAK;QACL,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,SAAS;QACT,QAAQ;QACR,UAAU;QACV,WAAW;QACX,SAAS;QACT,OAAO;QACP,SAAS;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACT,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,WAAW;QACX,MAAM;QACN,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,WAAW;QACX,SAAS;QACT,SAAS;QACT,KAAK;QACL,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,KAAK;KACR;IACD,EAAE,EAAE;QACA,GAAG;QACH,OAAO;QACP,YAAY;QACZ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,UAAU;QACV,OAAO;QACP,KAAK;QACL,UAAU;QACV,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,WAAW;QACX,YAAY;QACZ,aAAa;QACb,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,SAAS;QACT,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,aAAa;QACb,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,WAAW;QACX,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,YAAY;QACZ,UAAU;QACV,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,GAAG;QACH,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,UAAU;QACV,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,GAAG;QACH,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU;QACV,QAAQ;QACR,WAAW;QACX,WAAW;QACX,OAAO;QACP,UAAU;QACV,UAAU;QACV,MAAM;QACN,MAAM;QACN,WAAW;QACX,SAAS;QACT,UAAU;QACV,WAAW;QACX,UAAU;QACV,QAAQ;QACR,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,cAAc;QACd,WAAW;QACX,cAAc;QACd,WAAW;QACX,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,SAAS;QACT,YAAY;QACZ,aAAa;QACb,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,OAAO;QACP,MAAM;QACN,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,KAAK;QACL,WAAW;QACX,YAAY;QACZ,UAAU;QACV,SAAS;QACT,QAAQ;QACR,MAAM;QACN,UAAU;QACV,cAAc;QACd,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,WAAW;QACX,aAAa;QACb,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,MAAM;QACN,SAAS;QACT,aAAa;QACb,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,UAAU;QACV,KAAK;QACL,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,UAAU;QACV,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,OAAO;QACP,WAAW;QACX,GAAG;QACH,OAAO;QACP,OAAO;QACP,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,WAAW;QACX,OAAO;QACP,aAAa;QACb,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,OAAO;QACP,KAAK;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,KAAK;QACL,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,KAAK;QACL,KAAK;QACL,WAAW;QACX,YAAY;QACZ,SAAS;QACT,SAAS;QACT,WAAW;QACX,OAAO;QACP,KAAK;QACL,OAAO;QACP,GAAG;QACH,MAAM;QACN,WAAW;QACX,SAAS;QACT,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,GAAG;QACH,MAAM;QACN,GAAG;QACH,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,UAAU;QACV,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,GAAG;QACH,KAAK;QACL,IAAI;QACJ,KAAK;QACL,SAAS;QACT,GAAG;QACH,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,GAAG;QACH,GAAG;QACH,IAAI;QACJ,SAAS;QACT,UAAU;QACV,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,YAAY;QACZ,UAAU;QACV,MAAM;QACN,OAAO;QACP,WAAW;QACX,MAAM;QACN,SAAS;QACT,KAAK;QACL,UAAU;QACV,UAAU;QACV,IAAI;QACJ,KAAK;QACL,GAAG;QACH,IAAI;QACJ,OAAO;QACP,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,UAAU;QACV,KAAK;QACL,UAAU;QACV,UAAU;QACV,UAAU;QACV,OAAO;QACP,KAAK;QACL,KAAK;QACL,WAAW;QACX,UAAU;QACV,WAAW;QACX,MAAM;QACN,OAAO;QACP,GAAG;QACH,IAAI;QACJ,SAAS;QACT,WAAW;QACX,YAAY;QACZ,IAAI;QACJ,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,MAAM;QACN,UAAU;QACV,IAAI;QACJ,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,KAAK;QACL,KAAK;QACL,WAAW;QACX,OAAO;QACP,MAAM;QACN,YAAY;QACZ,SAAS;QACT,UAAU;QACV,KAAK;QACL,WAAW;QACX,OAAO;QACP,QAAQ;QACR,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,SAAS;QACT,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,UAAU;QACV,WAAW;QACX,KAAK;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,MAAM;QACN,WAAW;QACX,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,UAAU;QACV,WAAW;QACX,OAAO;QACP,MAAM;QACN,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,WAAW;QACX,aAAa;QACb,SAAS;QACT,UAAU;QACV,cAAc;QACd,MAAM;QACN,UAAU;QACV,UAAU;QACV,WAAW;QACX,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,MAAM;QACN,SAAS;QACT,KAAK;QACL,MAAM;QACN,GAAG;QACH,IAAI;QACJ,OAAO;QACP,OAAO;QACP,aAAa;QACb,QAAQ;QACR,UAAU;QACV,UAAU;QACV,QAAQ;QACR,cAAc;QACd,WAAW;QACX,eAAe;QACf,KAAK;QACL,MAAM;QACN,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW;QACX,SAAS;QACT,UAAU;QACV,OAAO;QACP,KAAK;QACL,WAAW;QACX,QAAQ;QACR,MAAM;QACN,SAAS;QACT,GAAG;QACH,MAAM;QACN,UAAU;QACV,OAAO;QACP,UAAU;QACV,cAAc;QACd,aAAa;QACb,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,MAAM;QACN,GAAG;QACH,IAAI;QACJ,WAAW;QACX,MAAM;QACN,MAAM;QACN,UAAU;QACV,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,MAAM;QACN,MAAM;QACN,UAAU;QACV,MAAM;QACN,OAAO;QACP,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,WAAW;QACX,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,KAAK;QACL,SAAS;QACT,KAAK;QACL,UAAU;QACV,QAAQ;QACR,MAAM;QACN,MAAM;QACN,UAAU;QACV,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,MAAM;QACN,aAAa;QACb,UAAU;QACV,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,MAAM;QACN,MAAM;QACN,SAAS;QACT,UAAU;QACV,WAAW;QACX,UAAU;QACV,QAAQ;QACR,OAAO;QACP,WAAW;QACX,KAAK;QACL,SAAS;QACT,GAAG;QACH,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,MAAM;QACN,SAAS;QACT,IAAI;QACJ,KAAK;QACL,OAAO;QACP,WAAW;QACX,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,KAAK;QACL,KAAK;QACL,UAAU;QACV,KAAK;QACL,UAAU;QACV,UAAU;QACV,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,WAAW;QACX,eAAe;QACf,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,cAAc;QACd,QAAQ;QACR,SAAS;QACT,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,YAAY;QACZ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,GAAG;KACN;IACD,EAAE,EAAE;QACA,GAAG;QACH,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,UAAU;QACV,SAAS;QACT,UAAU;QACV,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,UAAU;QACV,WAAW;QACX,QAAQ;QACR,SAAS;QACT,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;KACP;IACD,EAAE,EAAE;QACA,GAAG;QACH,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,YAAY;QACZ,OAAO;QACP,aAAa;QACb,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,QAAQ;QACR,WAAW;QACX,OAAO;QACP,UAAU;QACV,GAAG;QACH,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,UAAU;QACV,SAAS;QACT,SAAS;QACT,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,GAAG;QACH,GAAG;QACH,KAAK;QACL,IAAI;QACJ,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,UAAU;QACV,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;QACV,SAAS;QACT,KAAK;QACL,QAAQ;QACR,UAAU;QACV,MAAM;QACN,UAAU;QACV,OAAO;QACP,OAAO;QACP,MAAM;QACN,YAAY;QACZ,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,iBAAiB;QACjB,cAAc;QACd,WAAW;QACX,UAAU;QACV,WAAW;QACX,YAAY;QACZ,KAAK;QACL,OAAO;QACP,MAAM;QACN,WAAW;QACX,KAAK;QACL,OAAO;QACP,OAAO;QACP,WAAW;QACX,YAAY;QACZ,WAAW;QACX,UAAU;QACV,UAAU;QACV,WAAW;QACX,KAAK;QACL,SAAS;QACT,WAAW;QACX,QAAQ;QACR,UAAU;QACV,MAAM;QACN,KAAK;QACL,WAAW;QACX,YAAY;QACZ,MAAM;QACN,OAAO;QACP,UAAU;QACV,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,IAAI;QACJ,OAAO;QACP,UAAU;QACV,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,GAAG;QACH,MAAM;QACN,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,KAAK;QACL,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,SAAS;QACT,UAAU;QACV,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG;QACH,UAAU;QACV,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,KAAK;QACL,GAAG;QACH,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,SAAS;QACT,OAAO;QACP,WAAW;QACX,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,SAAS;QACT,UAAU;QACV,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,GAAG;QACH,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,GAAG;QACH,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,OAAO;QACP,eAAe;QACf,KAAK;QACL,QAAQ;QACR,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,WAAW;QACX,YAAY;QACZ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG;QACH,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,GAAG;QACH,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,GAAG;QACH,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,MAAM;QACN,KAAK;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,SAAS;QACT,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,GAAG;QACH,IAAI;QACJ,MAAM;QACN,SAAS;QACT,MAAM;QACN,WAAW;QACX,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,KAAK;QACL,SAAS;QACT,WAAW;QACX,WAAW;QACX,MAAM;QACN,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,SAAS;QACT,GAAG;QACH,GAAG;QACH,GAAG;QACH,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,GAAG;QACH,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,UAAU;QACV,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,SAAS;QACT,QAAQ;QACR,MAAM;QACN,KAAK;QACL,QAAQ;QACR,UAAU;QACV,WAAW;QACX,WAAW;QACX,WAAW;QACX,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG;QACH,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,UAAU;QACV,KAAK;QACL,GAAG;QACH,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,GAAG;QACH,aAAa;QACb,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,KAAK;QACL,KAAK;QACL,KAAK;QACL,GAAG;QACH,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,YAAY;QACZ,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,eAAe;QACf,MAAM;QACN,OAAO;QACP,QAAQ;QACR,GAAG;QACH,GAAG;QACH,GAAG;QACH,KAAK;QACL,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,UAAU;QACV,KAAK;QACL,UAAU;QACV,KAAK;QACL,QAAQ;QACR,UAAU;QACV,SAAS;QACT,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,OAAO;QACP,MAAM;QACN,WAAW;QACX,UAAU;KACb;IACD,EAAE,EAAE;QACA,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,WAAW;QACX,MAAM;QACN,OAAO;QACP,SAAS;QACT,YAAY;QACZ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,SAAS;QACT,WAAW;QACX,MAAM;QACN,MAAM;QACN,UAAU;QACV,OAAO;QACP,KAAK;QACL,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,UAAU;QACV,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,OAAO;QACP,IAAI;QACJ,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,KAAK;QACL,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,UAAU;QACV,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,YAAY;QACZ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,SAAS;QACT,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,GAAG;QACH,KAAK;QACL,QAAQ;QACR,KAAK;QACL,MAAM;QACN,SAAS;QACT,UAAU;QACV,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,UAAU;QACV,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,WAAW;QACX,UAAU;QACV,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,OAAO;QACP,KAAK;QACL,QAAQ;QACR,KAAK;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,UAAU;QACV,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,KAAK;QACL,UAAU;QACV,OAAO;QACP,OAAO;QACP,UAAU;QACV,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,UAAU;QACV,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,SAAS;QACT,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,YAAY;QACZ,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,cAAc;QACd,QAAQ;QACR,cAAc;QACd,aAAa;QACb,QAAQ;QACR,cAAc;QACd,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,QAAQ;QACR,cAAc;QACd,QAAQ;QACR,SAAS;QACT,eAAe;QACf,cAAc;QACd,aAAa;QACb,QAAQ;QACR,cAAc;QACd,YAAY;QACZ,OAAO;QACP,aAAa;QACb,MAAM;QACN,YAAY;QACZ,MAAM;QACN,MAAM;QACN,UAAU;QACV,WAAW;QACX,WAAW;QACX,WAAW;QACX,KAAK;QACL,WAAW;QACX,MAAM;QACN,YAAY;QACZ,KAAK;QACL,MAAM;QACN,YAAY;QACZ,MAAM;QACN,YAAY;QACZ,WAAW;QACX,KAAK;QACL,MAAM;QACN,YAAY;QACZ,MAAM;QACN,YAAY;QACZ,MAAM;QACN,YAAY;QACZ,MAAM;QACN,OAAO;QACP,aAAa;QACb,YAAY;QACZ,WAAW;QACX,MAAM;QACN,YAAY;QACZ,MAAM;QACN,KAAK;QACL,WAAW;QACX,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,aAAa;QACb,OAAO;QACP,QAAQ;QACR,MAAM;QACN,KAAK;QACL,SAAS;QACT,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,KAAK;QACL,OAAO;QACP,SAAS;QACT,KAAK;QACL,QAAQ;QACR,MAAM;QACN,KAAK;QACL,aAAa;QACb,WAAW;QACX,UAAU;QACV,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,WAAW;QACX,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,WAAW;QACX,KAAK;QACL,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,KAAK;QACL,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,UAAU;QACV,UAAU;QACV,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,YAAY;QACZ,aAAa;QACb,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,MAAM;QACN,GAAG;QACH,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,KAAK;QACL,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,SAAS;QACT,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;KACV;IACD,EAAE,EAAE;QACA,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,GAAG;QACH,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,GAAG;QACH,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,GAAG;QACH,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,MAAM;QACN,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,SAAS;QACT,UAAU;QACV,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;KACT;IACD,EAAE,EAAE;QACA,GAAG;QACH,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,SAAS;QACT,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;KACP;IACD,EAAE,EAAE;QACA,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,WAAW;QACX,OAAO;QACP,SAAS;QACT,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,UAAU;QACV,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,aAAa;QACb,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,YAAY;QACZ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,QAAQ;QACR,WAAW;QACX,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;KACR;IACD,EAAE,EAAE;QACA,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,SAAS;QACT,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,SAAS;QACT,SAAS;QACT,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,SAAS;QACT,SAAS;QACT,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,GAAG;QACH,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,GAAG;QACH,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;KACT;IACD,EAAE,EAAE;QACA,GAAG;QACH,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,WAAW;QACX,SAAS;QACT,UAAU;QACV,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,OAAO;QACP,UAAU;QACV,SAAS;QACT,YAAY;QACZ,WAAW;QACX,SAAS;QACT,SAAS;QACT,UAAU;QACV,KAAK;QACL,QAAQ;QACR,MAAM;QACN,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,SAAS;QACT,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,WAAW;QACX,SAAS;QACT,UAAU;QACV,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,KAAK;QACL,SAAS;QACT,WAAW;QACX,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;QACV,MAAM;QACN,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,GAAG;QACH,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,QAAQ;QACR,OAAO;QACP,WAAW;QACX,OAAO;QACP,QAAQ;QACR,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,IAAI;QACJ,SAAS;QACT,OAAO;QACP,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,MAAM;QACN,MAAM;QACN,OAAO;QACP,YAAY;QACZ,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,WAAW;QACX,SAAS;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,SAAS;QACT,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;QACV,YAAY;QACZ,SAAS;QACT,KAAK;QACL,SAAS;QACT,WAAW;QACX,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,WAAW;QACX,OAAO;QACP,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,UAAU;QACV,OAAO;QACP,UAAU;QACV,MAAM;QACN,UAAU;QACV,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,KAAK;QACL,MAAM;QACN,KAAK;QACL,SAAS;QACT,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,OAAO;QACP,UAAU;QACV,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,MAAM;QACN,KAAK;QACL,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,WAAW;QACX,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,cAAc;QACd,UAAU;QACV,WAAW;QACX,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,UAAU;QACV,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,SAAS;QACT,OAAO;QACP,OAAO;QACP,cAAc;QACd,UAAU;QACV,QAAQ;QACR,OAAO;QACP,WAAW;QACX,SAAS;QACT,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;QACV,WAAW;QACX,aAAa;QACb,aAAa;QACb,QAAQ;QACR,IAAI;QACJ,UAAU;QACV,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,UAAU;QACV,WAAW;QACX,WAAW;QACX,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,WAAW;QACX,SAAS;QACT,UAAU;QACV,OAAO;QACP,KAAK;QACL,MAAM;QACN,SAAS;QACT,UAAU;QACV,KAAK;QACL,WAAW;QACX,cAAc;QACd,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;QACV,WAAW;QACX,WAAW;QACX,aAAa;QACb,WAAW;QACX,YAAY;QACZ,OAAO;QACP,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,UAAU;QACV,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,YAAY;QACZ,UAAU;QACV,WAAW;QACX,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,WAAW;QACX,SAAS;QACT,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,WAAW;QACX,aAAa;QACb,QAAQ;QACR,cAAc;QACd,UAAU;QACV,SAAS;QACT,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,WAAW;QACX,KAAK;QACL,KAAK;QACL,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,WAAW;QACX,OAAO;QACP,SAAS;QACT,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,YAAY;QACZ,UAAU;QACV,WAAW;QACX,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,WAAW;QACX,SAAS;QACT,UAAU;QACV,SAAS;QACT,OAAO;QACP,IAAI;QACJ,MAAM;QACN,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,IAAI;QACJ,UAAU;QACV,YAAY;QACZ,SAAS;QACT,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,SAAS;QACT,QAAQ;QACR,OAAO;QACP,OAAO;QACP,WAAW;QACX,aAAa;QACb,SAAS;QACT,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,GAAG;QACH,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,GAAG;QACH,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,WAAW;QACX,UAAU;QACV,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,WAAW;QACX,aAAa;QACb,WAAW;QACX,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,SAAS;QACT,MAAM;QACN,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,UAAU;QACV,cAAc;QACd,KAAK;QACL,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,aAAa;QACb,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,SAAS;QACT,SAAS;QACT,WAAW;QACX,UAAU;QACV,cAAc;QACd,UAAU;QACV,YAAY;QACZ,UAAU;QACV,eAAe;QACf,YAAY;QACZ,aAAa;QACb,UAAU;QACV,YAAY;QACZ,WAAW;QACX,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,SAAS;QACT,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,UAAU;QACV,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,gBAAgB;QAChB,OAAO;QACP,UAAU;QACV,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,WAAW;QACX,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,UAAU;QACV,MAAM;QACN,KAAK;QACL,OAAO;QACP,aAAa;QACb,IAAI;QACJ,OAAO;QACP,MAAM;QACN,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;KACP;IACD,EAAE,EAAE;QACA,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,QAAQ;QACR,UAAU;QACV,KAAK;QACL,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,QAAQ;QACR,WAAW;QACX,KAAK;QACL,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,UAAU;QACV,WAAW;QACX,cAAc;QACd,cAAc;QACd,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,UAAU;QACV,QAAQ;QACR,UAAU;QACV,WAAW;QACX,WAAW;QACX,QAAQ;QACR,WAAW;QACX,WAAW;QACX,WAAW;QACX,SAAS;QACT,UAAU;QACV,YAAY;QACZ,OAAO;QACP,UAAU;QACV,OAAO;QACP,UAAU;QACV,UAAU;QACV,QAAQ;QACR,UAAU;QACV,aAAa;QACb,aAAa;QACb,QAAQ;QACR,WAAW;QACX,WAAW;QACX,WAAW;QACX,SAAS;QACT,SAAS;QACT,UAAU;QACV,aAAa;QACb,MAAM;QACN,SAAS;QACT,SAAS;QACT,YAAY;QACZ,WAAW;QACX,cAAc;QACd,SAAS;QACT,aAAa;QACb,cAAc;QACd,WAAW;QACX,WAAW;QACX,SAAS;QACT,aAAa;QACb,YAAY;QACZ,UAAU;QACV,gBAAgB;QAChB,WAAW;QACX,SAAS;QACT,SAAS;QACT,cAAc;QACd,SAAS;QACT,cAAc;QACd,UAAU;QACV,gBAAgB;QAChB,UAAU;QACV,gBAAgB;QAChB,UAAU;QACV,SAAS;QACT,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,UAAU;QACV,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,UAAU;QACV,UAAU;QACV,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,UAAU;QACV,UAAU;QACV,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,UAAU;QACV,QAAQ;QACR,OAAO;QACP,MAAM;QACN,UAAU;QACV,aAAa;QACb,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,KAAK;QACL,UAAU;QACV,aAAa;QACb,QAAQ;QACR,UAAU;QACV,aAAa;QACb,QAAQ;QACR,WAAW;QACX,cAAc;QACd,QAAQ;QACR,WAAW;QACX,SAAS;QACT,aAAa;QACb,WAAW;QACX,aAAa;QACb,gBAAgB;QAChB,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,eAAe;QACf,aAAa;QACb,WAAW;QACX,cAAc;QACd,YAAY;QACZ,WAAW;QACX,cAAc;QACd,QAAQ;QACR,WAAW;QACX,SAAS;QACT,SAAS;QACT,UAAU;QACV,aAAa;QACb,gBAAgB;QAChB,aAAa;QACb,SAAS;QACT,UAAU;QACV,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,cAAc;QACd,MAAM;QACN,YAAY;QACZ,WAAW;QACX,cAAc;QACd,cAAc;QACd,cAAc;QACd,eAAe;QACf,YAAY;QACZ,eAAe;QACf,cAAc;QACd,eAAe;QACf,UAAU;QACV,MAAM;QACN,SAAS;QACT,aAAa;QACb,SAAS;QACT,YAAY;QACZ,eAAe;QACf,QAAQ;QACR,WAAW;QACX,aAAa;QACb,aAAa;QACb,SAAS;QACT,UAAU;QACV,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,UAAU;QACV,WAAW;QACX,aAAa;QACb,gBAAgB;QAChB,aAAa;QACb,YAAY;QACZ,eAAe;QACf,WAAW;QACX,cAAc;QACd,aAAa;QACb,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,WAAW;QACX,OAAO;QACP,UAAU;QACV,MAAM;QACN,SAAS;QACT,KAAK;QACL,QAAQ;QACR,OAAO;QACP,UAAU;QACV,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU;QACV,QAAQ;QACR,WAAW;QACX,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,WAAW;QACX,WAAW;QACX,KAAK;QACL,MAAM;QACN,OAAO;QACP,aAAa;QACb,OAAO;QACP,UAAU;QACV,UAAU;QACV,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,SAAS;QACT,SAAS;QACT,QAAQ;QACR,WAAW;QACX,WAAW;QACX,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,OAAO;QACP,UAAU;QACV,UAAU;QACV,UAAU;QACV,MAAM;QACN,SAAS;QACT,MAAM;QACN,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU;QACV,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,KAAK;QACL,OAAO;QACP,UAAU;QACV,UAAU;QACV,QAAQ;QACR,WAAW;QACX,OAAO;QACP,MAAM;QACN,SAAS;QACT,YAAY;QACZ,SAAS;QACT,IAAI;QACJ,SAAS;QACT,WAAW;QACX,OAAO;QACP,OAAO;QACP,UAAU;QACV,WAAW;QACX,UAAU;QACV,WAAW;QACX,cAAc;QACd,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;QACV,aAAa;QACb,gBAAgB;QAChB,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,aAAa;QACb,QAAQ;QACR,WAAW;QACX,MAAM;QACN,SAAS;QACT,MAAM;QACN,WAAW;QACX,SAAS;QACT,MAAM;QACN,SAAS;QACT,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,WAAW;QACX,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,UAAU;QACV,MAAM;QACN,UAAU;QACV,UAAU;QACV,MAAM;QACN,SAAS;QACT,YAAY;QACZ,OAAO;QACP,UAAU;QACV,QAAQ;QACR,eAAe;QACf,KAAK;QACL,QAAQ;QACR,WAAW;QACX,WAAW;QACX,SAAS;QACT,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,SAAS;QACT,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,WAAW;QACX,SAAS;QACT,cAAc;QACd,SAAS;QACT,aAAa;QACb,aAAa;QACb,SAAS;QACT,eAAe;QACf,YAAY;QACZ,SAAS;QACT,UAAU;QACV,YAAY;QACZ,UAAU;QACV,aAAa;QACb,WAAW;QACX,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,eAAe;QACf,UAAU;QACV,aAAa;QACb,YAAY;QACZ,aAAa;QACb,aAAa;QACb,eAAe;QACf,kBAAkB;QAClB,WAAW;QACX,cAAc;QACd,cAAc;QACd,SAAS;QACT,aAAa;QACb,gBAAgB;QAChB,eAAe;QACf,SAAS;QACT,UAAU;QACV,aAAa;QACb,QAAQ;QACR,UAAU;QACV,WAAW;QACX,aAAa;QACb,aAAa;QACb,SAAS;QACT,YAAY;QACZ,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,WAAW;QACX,OAAO;QACP,UAAU;QACV,UAAU;QACV,YAAY;QACZ,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;QACV,UAAU;QACV,MAAM;QACN,OAAO;QACP,UAAU;QACV,SAAS;QACT,SAAS;QACT,YAAY;QACZ,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,UAAU;QACV,QAAQ;QACR,UAAU;QACV,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,SAAS;QACT,KAAK;QACL,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,UAAU;QACV,SAAS;QACT,YAAY;QACZ,KAAK;QACL,SAAS;QACT,OAAO;QACP,UAAU;QACV,UAAU;QACV,QAAQ;QACR,WAAW;QACX,SAAS;QACT,cAAc;QACd,YAAY;QACZ,aAAa;QACb,OAAO;QACP,UAAU;QACV,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,QAAQ;QACR,MAAM;QACN,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,eAAe;QACf,WAAW;QACX,MAAM;QACN,QAAQ;QACR,WAAW;QACX,MAAM;QACN,MAAM;QACN,SAAS;QACT,IAAI;QACJ,OAAO;QACP,UAAU;QACV,SAAS;QACT,aAAa;QACb,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,gBAAgB;QAChB,WAAW;QACX,YAAY;QACZ,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,SAAS;QACT,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,OAAO;QACP,UAAU;QACV,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,UAAU;QACV,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,UAAU;QACV,WAAW;QACX,WAAW;QACX,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,SAAS;QACT,YAAY;QACZ,oBAAoB;QACpB,aAAa;QACb,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,gBAAgB;QAChB,WAAW;QACX,aAAa;QACb,SAAS;QACT,YAAY;QACZ,SAAS;QACT,SAAS;QACT,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,aAAa;QACb,UAAU;QACV,WAAW;QACX,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,OAAO;QACP,UAAU;QACV,QAAQ;QACR,SAAS;QACT,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,SAAS;QACT,WAAW;QACX,aAAa;QACb,gBAAgB;QAChB,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,WAAW;QACX,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,WAAW;QACX,SAAS;QACT,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,SAAS;QACT,UAAU;QACV,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,kBAAkB;QAClB,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,SAAS;QACT,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU;QACV,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,UAAU;QACV,UAAU;QACV,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,WAAW;QACX,OAAO;QACP,OAAO;QACP,UAAU;QACV,UAAU;QACV,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,OAAO;QACP,UAAU;QACV,UAAU;QACV,OAAO;QACP,UAAU;QACV,QAAQ;QACR,WAAW;QACX,WAAW;QACX,UAAU;QACV,SAAS;QACT,UAAU;QACV,aAAa;QACb,UAAU;QACV,gBAAgB;QAChB,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,cAAc;QACd,UAAU;QACV,aAAa;QACb,UAAU;QACV,SAAS;QACT,OAAO;QACP,UAAU;QACV,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,WAAW;QACX,OAAO;QACP,UAAU;QACV,UAAU;QACV,MAAM;QACN,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,QAAQ;QACR,WAAW;QACX,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;KACT;IACD,EAAE,EAAE;QACA,GAAG;QACH,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,IAAI;QACJ,UAAU;QACV,KAAK;QACL,IAAI;QACJ,OAAO;QACP,WAAW;QACX,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,GAAG;QACH,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,UAAU;QACV,SAAS;QACT,QAAQ;QACR,SAAS;QACT,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;KACT;IACD,EAAE,EAAE;QACA,GAAG;QACH,YAAY;QACZ,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,IAAI;QACJ,QAAQ;QACR,UAAU;QACV,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,YAAY;QACZ,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,WAAW;QACX,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,WAAW;QACX,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG;QACH,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,aAAa;QACb,UAAU;QACV,IAAI;QACJ,UAAU;QACV,UAAU;QACV,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,UAAU;QACV,UAAU;QACV,KAAK;QACL,aAAa;QACb,aAAa;QACb,aAAa;QACb,aAAa;QACb,WAAW;QACX,QAAQ;QACR,UAAU;QACV,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,aAAa;QACb,SAAS;QACT,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,SAAS;QACT,WAAW;QACX,WAAW;QACX,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,UAAU;QACV,KAAK;QACL,QAAQ;QACR,SAAS;QACT,GAAG;QACH,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,gBAAgB;QAChB,MAAM;QACN,MAAM;QACN,UAAU;QACV,QAAQ;QACR,KAAK;QACL,OAAO;QACP,SAAS;QACT,SAAS;QACT,KAAK;QACL,KAAK;QACL,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,SAAS;QACT,WAAW;QACX,SAAS;QACT,SAAS;QACT,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,OAAO;QACP,OAAO;QACP,SAAS;QACT,MAAM;QACN,SAAS;QACT,WAAW;QACX,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,YAAY;QACZ,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,KAAK;QACL,WAAW;QACX,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;QACP,KAAK;QACL,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,YAAY;QACZ,IAAI;QACJ,KAAK;QACL,UAAU;QACV,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,UAAU;QACV,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,KAAK;QACL,MAAM;QACN,UAAU;QACV,WAAW;QACX,IAAI;QACJ,UAAU;QACV,UAAU;QACV,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,UAAU;QACV,SAAS;QACT,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,YAAY;QACZ,OAAO;QACP,SAAS;QACT,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG;QACH,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,SAAS;QACT,MAAM;QACN,OAAO;QACP,UAAU;QACV,WAAW;QACX,WAAW;QACX,OAAO;QACP,UAAU;QACV,SAAS;QACT,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,SAAS;QACT,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,KAAK;QACL,WAAW;QACX,KAAK;QACL,IAAI;QACJ,YAAY;QACZ,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,WAAW;QACX,YAAY;QACZ,OAAO;QACP,UAAU;QACV,iBAAiB;QACjB,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,gBAAgB;QAChB,eAAe;QACf,UAAU;QACV,SAAS;QACT,KAAK;QACL,MAAM;QACN,WAAW;QACX,KAAK;QACL,KAAK;QACL,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,OAAO;QACP,OAAO;QACP,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,OAAO;QACP,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,SAAS;QACT,cAAc;QACd,eAAe;QACf,UAAU;QACV,QAAQ;QACR,UAAU;QACV,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,WAAW;QACX,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,SAAS;QACT,UAAU;QACV,SAAS;QACT,KAAK;QACL,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,QAAQ;QACR,MAAM;QACN,UAAU;QACV,MAAM;QACN,OAAO;QACP,aAAa;QACb,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,SAAS;QACT,UAAU;QACV,UAAU;QACV,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,iBAAiB;QACjB,YAAY;QACZ,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,UAAU;QACV,OAAO;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,GAAG;KACN;IACD,EAAE,EAAE;QACA,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,KAAK;QACL,IAAI;QACJ,MAAM;QACN,GAAG;QACH,KAAK;QACL,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,GAAG;QACH,KAAK;QACL,GAAG;QACH,KAAK;QACL,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,GAAG;QACH,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;KACR;IACD,EAAE,EAAE;QACA,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,KAAK;QACL,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,MAAM;QACN,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,SAAS;QACT,IAAI;QACJ,YAAY;QACZ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,GAAG;QACH,MAAM;QACN,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,MAAM;QACN,GAAG;QACH,OAAO;QACP,MAAM;QACN,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,KAAK;QACL,IAAI;QACJ,WAAW;QACX,UAAU;QACV,KAAK;QACL,SAAS;QACT,SAAS;QACT,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,GAAG;QACH,GAAG;QACH,GAAG;QACH,QAAQ;QACR,KAAK;QACL,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,KAAK;QACL,SAAS;QACT,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,GAAG;QACH,GAAG;QACH,OAAO;QACP,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,GAAG;QACH,GAAG;QACH,OAAO;QACP,KAAK;QACL,IAAI;QACJ,GAAG;QACH,GAAG;QACH,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,SAAS;QACT,GAAG;QACH,IAAI;QACJ,MAAM;QACN,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,UAAU;QACV,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QACJ,SAAS;QACT,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,KAAK;QACL,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,OAAO;QACP,KAAK;QACL,IAAI;QACJ,OAAO;QACP,GAAG;QACH,GAAG;QACH,YAAY;QACZ,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,GAAG;QACH,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,MAAM;QACN,IAAI;QACJ,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,WAAW;QACX,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,GAAG;QACH,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,GAAG;QACH,IAAI;QACJ,KAAK;QACL,GAAG;QACH,OAAO;QACP,QAAQ;QACR,KAAK;QACL,KAAK;QACL,GAAG;QACH,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,GAAG;QACH,UAAU;QACV,KAAK;QACL,IAAI;QACJ,GAAG;QACH,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,YAAY;QACZ,IAAI;QACJ,GAAG;QACH,aAAa;QACb,KAAK;QACL,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,GAAG;QACH,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,OAAO;QACP,UAAU;QACV,OAAO;QACP,SAAS;QACT,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,IAAI;QACJ,GAAG;QACH,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,GAAG;QACH,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,SAAS;QACT,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,GAAG;QACH,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,GAAG;QACH,MAAM;QACN,UAAU;QACV,SAAS;QACT,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,UAAU;QACV,MAAM;QACN,UAAU;QACV,SAAS;QACT,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,SAAS;QACT,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,SAAS;QACT,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,SAAS;QACT,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,MAAM;QACN,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,GAAG;QACH,KAAK;QACL,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;KACN;IACD,EAAE,EAAE;QACA,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,KAAK;QACL,UAAU;QACV,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,SAAS;QACT,GAAG;QACH,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,GAAG;KACN;IACD,EAAE,EAAE;QACA,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,GAAG;QACH,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,IAAI;QACJ,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,KAAK;KACR;IACD,EAAE,EAAE;QACA,KAAK;QACL,QAAQ;QACR,UAAU;QACV,WAAW;QACX,QAAQ;QACR,OAAO;QACP,WAAW;QACX,QAAQ;QACR,KAAK;QACL,OAAO;QACP,IAAI;QACJ,KAAK;QACL,UAAU;QACV,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,SAAS;QACT,QAAQ;QACR,WAAW;QACX,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,WAAW;QACX,UAAU;QACV,SAAS;QACT,UAAU;QACV,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,SAAS;QACT,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,SAAS;QACT,OAAO;QACP,UAAU;QACV,OAAO;QACP,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,UAAU;QACV,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,UAAU;QACV,SAAS;QACT,QAAQ;QACR,SAAS;QACT,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,WAAW;QACX,SAAS;QACT,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,UAAU;QACV,SAAS;QACT,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,OAAO;QACP,QAAQ;QACR,WAAW;QACX,UAAU;QACV,OAAO;QACP,QAAQ;QACR,UAAU;QACV,WAAW;QACX,UAAU;QACV,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,MAAM;QACN,YAAY;QACZ,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,OAAO;QACP,MAAM;QACN,UAAU;QACV,OAAO;QACP,UAAU;QACV,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,YAAY;QACZ,SAAS;QACT,SAAS;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,YAAY;QACZ,OAAO;QACP,QAAQ;QACR,UAAU;QACV,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,WAAW;QACX,UAAU;QACV,WAAW;QACX,SAAS;QACT,aAAa;QACb,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,KAAK;QACL,SAAS;QACT,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,UAAU;QACV,SAAS;QACT,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,GAAG;QACH,KAAK;QACL,IAAI;QACJ,UAAU;QACV,OAAO;QACP,UAAU;QACV,aAAa;QACb,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,UAAU;QACV,QAAQ;QACR,OAAO;QACP,KAAK;QACL,UAAU;QACV,MAAM;QACN,OAAO;QACP,SAAS;QACT,IAAI;QACJ,MAAM;QACN,OAAO;QACP,UAAU;QACV,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,YAAY;QACZ,SAAS;QACT,SAAS;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,WAAW;QACX,UAAU;QACV,WAAW;QACX,SAAS;QACT,aAAa;QACb,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,SAAS;QACT,WAAW;QACX,SAAS;QACT,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,UAAU;QACV,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,KAAK;QACL,OAAO;QACP,KAAK;QACL,YAAY;QACZ,SAAS;QACT,SAAS;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACT,SAAS;QACT,MAAM;QACN,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,SAAS;QACT,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,WAAW;QACX,UAAU;QACV,WAAW;QACX,SAAS;QACT,aAAa;QACb,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,UAAU;QACV,SAAS;QACT,KAAK;QACL,aAAa;QACb,QAAQ;QACR,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,UAAU;QACV,SAAS;QACT,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,OAAO;QACP,OAAO;QACP,WAAW;QACX,SAAS;QACT,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,UAAU;QACV,SAAS;QACT,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,WAAW;QACX,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,GAAG;QACH,QAAQ;QACR,UAAU;QACV,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,WAAW;QACX,UAAU;QACV,SAAS;QACT,UAAU;QACV,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;KACX;IACD,EAAE,EAAE;QACA,KAAK;QACL,IAAI;QACJ,OAAO;QACP,UAAU;QACV,IAAI;QACJ,KAAK;QACL,SAAS;QACT,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,SAAS;QACT,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,SAAS;QACT,QAAQ;QACR,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,WAAW;QACX,UAAU;QACV,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,UAAU;QACV,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,SAAS;QACT,KAAK;QACL,QAAQ;QACR,KAAK;QACL,OAAO;QACP,QAAQ;KACX;IACD,EAAE,EAAE;QACA,OAAO;QACP,UAAU;QACV,OAAO;QACP,KAAK;QACL,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,UAAU;QACV,MAAM;QACN,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,QAAQ;QACR,cAAc;QACd,KAAK;QACL,SAAS;QACT,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,WAAW;QACX,MAAM;QACN,MAAM;QACN,cAAc;QACd,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,UAAU;QACV,MAAM;QACN,WAAW;QACX,OAAO;QACP,UAAU;QACV,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,aAAa;QACb,UAAU;QACV,WAAW;QACX,SAAS;QACT,WAAW;QACX,WAAW;QACX,SAAS;QACT,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,SAAS;QACT,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,UAAU;QACV,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;QACR,OAAO;QACP,UAAU;QACV,QAAQ;QACR,OAAO;QACP,aAAa;QACb,OAAO;QACP,IAAI;QACJ,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,UAAU;QACV,YAAY;QACZ,KAAK;QACL,UAAU;QACV,SAAS;QACT,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,SAAS;QACT,WAAW;QACX,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,UAAU;QACV,IAAI;QACJ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,WAAW;QACX,UAAU;QACV,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,SAAS;QACT,OAAO;QACP,KAAK;QACL,SAAS;QACT,cAAc;QACd,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,SAAS;QACT,SAAS;QACT,IAAI;QACJ,SAAS;QACT,OAAO;QACP,OAAO;QACP,WAAW;QACX,WAAW;QACX,OAAO;QACP,aAAa;QACb,WAAW;QACX,UAAU;QACV,WAAW;QACX,QAAQ;QACR,aAAa;QACb,WAAW;QACX,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,WAAW;QACX,KAAK;QACL,aAAa;QACb,aAAa;QACb,WAAW;QACX,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,MAAM;QACN,WAAW;QACX,MAAM;QACN,MAAM;QACN,QAAQ;QACR,UAAU;QACV,SAAS;QACT,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,MAAM;QACN,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,UAAU;QACV,MAAM;QACN,QAAQ;QACR,SAAS;QACT,UAAU;QACV,OAAO;QACP,UAAU;QACV,MAAM;QACN,UAAU;QACV,MAAM;QACN,SAAS;QACT,OAAO;QACP,eAAe;QACf,YAAY;QACZ,MAAM;QACN,OAAO;QACP,KAAK;QACL,SAAS;QACT,SAAS;QACT,cAAc;QACd,YAAY;QACZ,UAAU;QACV,SAAS;QACT,SAAS;QACT,YAAY;QACZ,aAAa;QACb,SAAS;QACT,WAAW;QACX,UAAU;QACV,SAAS;QACT,YAAY;QACZ,UAAU;QACV,aAAa;QACb,UAAU;QACV,aAAa;QACb,UAAU;QACV,UAAU;QACV,YAAY;QACZ,WAAW;QACX,UAAU;QACV,cAAc;QACd,aAAa;QACb,UAAU;QACV,aAAa;QACb,cAAc;QACd,WAAW;QACX,cAAc;QACd,SAAS;QACT,WAAW;QACX,SAAS;QACT,SAAS;QACT,aAAa;QACb,SAAS;QACT,aAAa;QACb,aAAa;QACb,QAAQ;QACR,SAAS;QACT,WAAW;QACX,WAAW;QACX,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,MAAM;QACN,OAAO;QACP,UAAU;QACV,QAAQ;QACR,eAAe;QACf,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,aAAa;QACb,WAAW;QACX,UAAU;QACV,SAAS;QACT,aAAa;QACb,WAAW;QACX,WAAW;QACX,UAAU;QACV,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,aAAa;QACb,UAAU;QACV,aAAa;QACb,WAAW;QACX,UAAU;QACV,YAAY;QACZ,SAAS;QACT,aAAa;QACb,SAAS;QACT,SAAS;QACT,aAAa;QACb,SAAS;QACT,WAAW;QACX,YAAY;QACZ,SAAS;QACT,cAAc;QACd,aAAa;QACb,OAAO;QACP,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,aAAa;QACb,SAAS;QACT,YAAY;QACZ,aAAa;QACb,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,OAAO;QACP,SAAS;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACT,UAAU;QACV,UAAU;QACV,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,SAAS;QACT,YAAY;QACZ,UAAU;QACV,UAAU;QACV,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,UAAU;QACV,OAAO;QACP,UAAU;QACV,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,WAAW;QACX,OAAO;QACP,QAAQ;QACR,KAAK;QACL,SAAS;QACT,SAAS;QACT,WAAW;QACX,SAAS;QACT,MAAM;QACN,WAAW;QACX,UAAU;QACV,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,MAAM;QACN,QAAQ;QACR,UAAU;QACV,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,SAAS;QACT,WAAW;QACX,OAAO;QACP,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,OAAO;QACP,MAAM;QACN,UAAU;QACV,OAAO;QACP,UAAU;QACV,QAAQ;QACR,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,QAAQ;QACR,SAAS;QACT,MAAM;KACT;IACD,EAAE,EAAE;QACA,MAAM;QACN,MAAM;QACN,KAAK;QACL,SAAS;QACT,UAAU;QACV,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,MAAM;QACN,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,OAAO;QACP,GAAG;QACH,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,GAAG;QACH,OAAO;QACP,MAAM;QACN,UAAU;QACV,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;KACT;IACD,EAAE,EAAE;QACA,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,SAAS;QACT,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,MAAM;QACN,MAAM;QACN,SAAS;QACT,SAAS;QACT,GAAG;QACH,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,WAAW;QACX,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,SAAS;QACT,UAAU;QACV,IAAI;QACJ,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,GAAG;KACN;IACD,EAAE,EAAE;QACA,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,SAAS;QACT,SAAS;QACT,MAAM;QACN,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,KAAK;QACL,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,KAAK;QACL,UAAU;QACV,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,MAAM;QACN,OAAO;QACP,SAAS;QACT,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,UAAU;QACV,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,UAAU;QACV,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,UAAU;QACV,UAAU;QACV,MAAM;QACN,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,QAAQ;QACR,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,SAAS;QACT,UAAU;QACV,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,WAAW;QACX,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,YAAY;QACZ,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,UAAU;QACV,SAAS;QACT,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,SAAS;QACT,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,QAAQ;QACR,GAAG;QACH,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,SAAS;QACT,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,GAAG;QACH,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;KACN;IACD,EAAE,EAAE;QACA,GAAG;QACH,KAAK;QACL,KAAK;QACL,KAAK;QACL,YAAY;QACZ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,UAAU;QACV,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,YAAY;QACZ,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,WAAW;QACX,OAAO;QACP,KAAK;QACL,SAAS;QACT,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,UAAU;QACV,SAAS;QACT,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,cAAc;QACd,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,GAAG;QACH,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,YAAY;QACZ,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,YAAY;QACZ,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,WAAW;QACX,aAAa;QACb,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,SAAS;QACT,QAAQ;QACR,OAAO;QACP,UAAU;QACV,UAAU;QACV,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,QAAQ;QACR,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,GAAG;QACH,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,WAAW;QACX,WAAW;QACX,UAAU;QACV,OAAO;QACP,KAAK;QACL,IAAI;QACJ,SAAS;QACT,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,SAAS;QACT,OAAO;QACP,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,IAAI;QACJ,MAAM;KACT;IACD,EAAE,EAAE;QACA,GAAG;QACH,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,SAAS;QACT,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,KAAK;QACL,QAAQ;QACR,OAAO;QACP,SAAS;QACT,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,SAAS;QACT,OAAO;QACP,KAAK;QACL,IAAI;QACJ,OAAO;QACP,UAAU;QACV,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,SAAS;QACT,MAAM;QACN,OAAO;QACP,YAAY;QACZ,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,UAAU;QACV,WAAW;QACX,UAAU;QACV,QAAQ;QACR,SAAS;QACT,UAAU;QACV,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,KAAK;QACL,KAAK;QACL,IAAI;QACJ,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,WAAW;QACX,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,UAAU;QACV,WAAW;QACX,WAAW;QACX,SAAS;QACT,KAAK;QACL,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,UAAU;QACV,UAAU;QACV,KAAK;QACL,OAAO;QACP,OAAO;QACP,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,SAAS;QACT,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,GAAG;QACH,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,UAAU;QACV,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,QAAQ;QACR,SAAS;QACT,WAAW;QACX,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,SAAS;QACT,UAAU;QACV,WAAW;QACX,WAAW;QACX,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,aAAa;QACb,cAAc;QACd,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;QACX,OAAO;QACP,IAAI;QACJ,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,SAAS;QACT,UAAU;QACV,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,UAAU;QACV,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,YAAY;QACZ,UAAU;QACV,WAAW;QACX,WAAW;QACX,SAAS;QACT,UAAU;QACV,aAAa;QACb,UAAU;QACV,WAAW;QACX,YAAY;QACZ,aAAa;QACb,IAAI;QACJ,KAAK;QACL,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,SAAS;QACT,UAAU;QACV,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,KAAK;QACL,KAAK;QACL,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,QAAQ;QACR,GAAG;QACH,MAAM;QACN,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,SAAS;QACT,eAAe;QACf,OAAO;QACP,UAAU;QACV,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,UAAU;QACV,WAAW;QACX,UAAU;QACV,WAAW;QACX,UAAU;QACV,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,SAAS;QACT,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,KAAK;QACL,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,SAAS;QACT,SAAS;QACT,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,KAAK;QACL,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,UAAU;QACV,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,SAAS;QACT,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,KAAK;QACL,UAAU;QACV,UAAU;QACV,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,UAAU;QACV,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,YAAY;QACZ,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;QACX,UAAU;QACV,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,UAAU;QACV,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,SAAS;QACT,YAAY;QACZ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,GAAG;QACH,IAAI;QACJ,MAAM;QACN,GAAG;QACH,QAAQ;QACR,IAAI;QACJ,QAAQ;KACX;IACD,EAAE,EAAE;QACA,GAAG;QACH,MAAM;QACN,MAAM;QACN,SAAS;QACT,SAAS;QACT,OAAO;QACP,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,SAAS;QACT,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,WAAW;QACX,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,UAAU;QACV,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,UAAU;QACV,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG;QACH,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,UAAU;QACV,MAAM;QACN,KAAK;QACL,IAAI;QACJ,UAAU;QACV,MAAM;QACN,OAAO;QACP,SAAS;QACT,MAAM;QACN,UAAU;QACV,SAAS;QACT,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,WAAW;QACX,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM;QACN,GAAG;QACH,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,SAAS;QACT,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,MAAM;QACN,GAAG;QACH,OAAO;QACP,QAAQ;QACR,GAAG;QACH,OAAO;QACP,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,WAAW;QACX,OAAO;QACP,OAAO;QACP,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,WAAW;QACX,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,GAAG;QACH,KAAK;QACL,IAAI;QACJ,KAAK;QACL,SAAS;QACT,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,GAAG;QACH,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;QACV,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,GAAG;QACH,KAAK;QACL,GAAG;QACH,IAAI;QACJ,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,SAAS;QACT,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,IAAI;QACJ,SAAS;QACT,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,SAAS;QACT,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,GAAG;QACH,GAAG;QACH,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,WAAW;QACX,IAAI;QACJ,SAAS;QACT,UAAU;QACV,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;QACV,UAAU;QACV,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;KACR;IACD,EAAE,EAAE;QACA,GAAG;QACH,GAAG;QACH,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,GAAG;QACH,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;QACX,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,eAAe;QACf,cAAc;QACd,QAAQ;QACR,SAAS;QACT,KAAK;QACL,SAAS;QACT,SAAS;QACT,OAAO;QACP,KAAK;QACL,SAAS;QACT,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,GAAG;QACH,KAAK;QACL,SAAS;QACT,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;QACV,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,WAAW;QACX,UAAU;QACV,KAAK;QACL,aAAa;QACb,YAAY;QACZ,OAAO;QACP,MAAM;QACN,eAAe;QACf,cAAc;QACd,SAAS;QACT,QAAQ;QACR,eAAe;QACf,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,GAAG;QACH,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,OAAO;QACP,IAAI;QACJ,MAAM;QACN,SAAS;QACT,OAAO;QACP,MAAM;QACN,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,GAAG;QACH,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;QACV,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,SAAS;QACT,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,GAAG;QACH,WAAW;QACX,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,WAAW;QACX,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,YAAY;QACZ,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,SAAS;QACT,UAAU;QACV,KAAK;QACL,KAAK;QACL,WAAW;QACX,QAAQ;QACR,KAAK;QACL,SAAS;QACT,MAAM;QACN,YAAY;QACZ,SAAS;QACT,WAAW;QACX,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,MAAM;QACN,cAAc;QACd,aAAa;QACb,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,WAAW;QACX,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,UAAU;QACV,UAAU;QACV,IAAI;QACJ,UAAU;QACV,MAAM;QACN,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,KAAK;QACL,SAAS;QACT,UAAU;QACV,YAAY;QACZ,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,UAAU;QACV,SAAS;QACT,UAAU;QACV,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,WAAW;QACX,YAAY;QACZ,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,WAAW;QACX,KAAK;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,MAAM;QACN,aAAa;QACb,YAAY;QACZ,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;QACV,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,SAAS;QACT,KAAK;QACL,OAAO;QACP,GAAG;QACH,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,SAAS;QACT,QAAQ;QACR,aAAa;QACb,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,UAAU;QACV,SAAS;QACT,OAAO;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,WAAW;QACX,QAAQ;QACR,SAAS;QACT,UAAU;QACV,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,SAAS;QACT,GAAG;QACH,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,aAAa;QACb,YAAY;QACZ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,OAAO;QACP,GAAG;QACH,SAAS;QACT,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,SAAS;QACT,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO;QACP,WAAW;QACX,QAAQ;QACR,eAAe;QACf,cAAc;QACd,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,cAAc;QACd,aAAa;QACb,QAAQ;QACR,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,GAAG;QACH,SAAS;KACZ;IACD,EAAE,EAAE;QACA,GAAG;QACH,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,MAAM;QACN,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,GAAG;QACH,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,GAAG;QACH,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,SAAS;QACT,UAAU;QACV,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,WAAW;QACX,WAAW;QACX,WAAW;QACX,UAAU;QACV,UAAU;QACV,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,UAAU;QACV,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,GAAG;QACH,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,GAAG;QACH,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,OAAO;QACP,SAAS;QACT,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,GAAG;QACH,IAAI;QACJ,GAAG;QACH,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,GAAG;QACH,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;KACP;IACD,EAAE,EAAE;QACA,GAAG;QACH,KAAK;QACL,OAAO;QACP,QAAQ;QACR,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,GAAG;QACH,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,GAAG;QACH,IAAI;QACJ,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,GAAG;QACH,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,MAAM;QACN,GAAG;QACH,SAAS;QACT,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,GAAG;QACH,MAAM;QACN,GAAG;QACH,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG;QACH,WAAW;QACX,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,WAAW;QACX,KAAK;QACL,SAAS;QACT,YAAY;QACZ,MAAM;QACN,KAAK;QACL,UAAU;QACV,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,UAAU;QACV,IAAI;QACJ,OAAO;QACP,WAAW;QACX,MAAM;QACN,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,GAAG;QACH,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,GAAG;QACH,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,KAAK;QACL,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,SAAS;QACT,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,UAAU;QACV,MAAM;QACN,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,OAAO;QACP,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,UAAU;QACV,YAAY;QACZ,SAAS;QACT,OAAO;QACP,QAAQ;QACR,aAAa;QACb,cAAc;QACd,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,aAAa;QACb,cAAc;QACd,cAAc;QACd,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,GAAG;QACH,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,GAAG;QACH,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,WAAW;QACX,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,GAAG;QACH,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,GAAG;QACH,GAAG;QACH,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,UAAU;QACV,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,GAAG;QACH,GAAG;QACH,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAG;QACH,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,OAAO;QACP,GAAG;QACH,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG;QACH,IAAI;KACP;IACD,EAAE,EAAE;QACA,KAAK;QACL,WAAW;QACX,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;KACV;IACD,EAAE,EAAE;QACA,GAAG;QACH,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,KAAK;KACR;IACD,EAAE,EAAE;QACA,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,aAAa;QACb,SAAS;QACT,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,OAAO;QACP,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,WAAW;QACX,OAAO;QACP,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;QACR,iBAAiB;QACjB,OAAO;QACP,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,UAAU;QACV,MAAM;QACN,QAAQ;QACR,aAAa;QACb,SAAS;QACT,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,KAAK;QACL,GAAG;QACH,MAAM;QACN,UAAU;QACV,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,GAAG;QACH,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,MAAM;QACN,KAAK;QACL,SAAS;QACT,SAAS;QACT,aAAa;QACb,WAAW;QACX,WAAW;QACX,WAAW;QACX,SAAS;QACT,UAAU;QACV,WAAW;QACX,WAAW;QACX,SAAS;QACT,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,MAAM;QACN,GAAG;QACH,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,SAAS;QACT,WAAW;QACX,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,UAAU;QACV,SAAS;QACT,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,SAAS;QACT,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,SAAS;QACT,KAAK;QACL,MAAM;QACN,OAAO;QACP,GAAG;QACH,SAAS;QACT,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,UAAU;QACV,SAAS;QACT,SAAS;QACT,SAAS;QACT,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,WAAW;QACX,UAAU;QACV,WAAW;QACX,UAAU;QACV,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,UAAU;QACV,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,SAAS;QACT,OAAO;QACP,WAAW;QACX,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;QACZ,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,WAAW;QACX,aAAa;QACb,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,aAAa;QACb,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,WAAW;QACX,aAAa;QACb,cAAc;QACd,cAAc;QACd,QAAQ;QACR,MAAM;QACN,WAAW;QACX,QAAQ;QACR,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,GAAG;QACH,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,GAAG;QACH,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,GAAG;QACH,IAAI;QACJ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,UAAU;QACV,WAAW;QACX,SAAS;QACT,SAAS;QACT,QAAQ;QACR,OAAO;QACP,SAAS;QACT,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,SAAS;QACT,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,WAAW;QACX,UAAU;QACV,UAAU;QACV,SAAS;QACT,SAAS;QACT,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,MAAM;QACN,GAAG;QACH,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,YAAY;QACZ,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,IAAI;QACJ,GAAG;QACH,OAAO;QACP,GAAG;QACH,GAAG;QACH,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,IAAI;QACJ,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,GAAG;QACH,KAAK;QACL,QAAQ;QACR,WAAW;QACX,KAAK;QACL,OAAO;QACP,IAAI;QACJ,UAAU;QACV,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,UAAU;QACV,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,MAAM;QACN,SAAS;QACT,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,GAAG;QACH,MAAM;QACN,OAAO;QACP,IAAI;QACJ,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,UAAU;QACV,UAAU;QACV,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,GAAG;QACH,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,GAAG;QACH,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,QAAQ;QACR,UAAU;QACV,WAAW;QACX,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,OAAO;QACP,KAAK;QACL,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,UAAU;QACV,gBAAgB;QAChB,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;QACV,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,GAAG;QACH,KAAK;QACL,KAAK;QACL,OAAO;QACP,UAAU;QACV,OAAO;QACP,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,SAAS;QACT,KAAK;QACL,GAAG;QACH,OAAO;QACP,WAAW;QACX,UAAU;QACV,SAAS;QACT,SAAS;QACT,UAAU;QACV,GAAG;QACH,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,SAAS;QACT,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,SAAS;QACT,QAAQ;QACR,OAAO;QACP,OAAO;QACP,WAAW;QACX,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,WAAW;QACX,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,IAAI;QACJ,UAAU;QACV,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,GAAG;QACH,KAAK;QACL,SAAS;QACT,SAAS;QACT,SAAS;QACT,KAAK;QACL,OAAO;QACP,OAAO;QACP,IAAI;QACJ,UAAU;QACV,WAAW;QACX,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;QACZ,UAAU;QACV,UAAU;QACV,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,QAAQ;QACR,OAAO;QACP,SAAS;QACT,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,WAAW;QACX,YAAY;QACZ,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,KAAK;QACL,MAAM;QACN,SAAS;QACT,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,WAAW;QACX,UAAU;QACV,UAAU;QACV,SAAS;QACT,SAAS;QACT,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,SAAS;QACT,GAAG;QACH,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,WAAW;QACX,WAAW;QACX,KAAK;QACL,UAAU;QACV,UAAU;QACV,KAAK;QACL,SAAS;QACT,UAAU;QACV,SAAS;QACT,UAAU;QACV,GAAG;QACH,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;KACZ;IACD,EAAE,EAAE;QACA,SAAS;QACT,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,SAAS;QACT,KAAK;QACL,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,UAAU;QACV,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,WAAW;QACX,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,UAAU;QACV,KAAK;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM;KACT;IACD,EAAE,EAAE;QACA,SAAS;QACT,WAAW;QACX,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,OAAO;QACP,MAAM;QACN,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,IAAI;QACJ,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,OAAO;QACP,UAAU;QACV,IAAI;QACJ,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,UAAU;QACV,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,SAAS;QACT,WAAW;QACX,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,QAAQ;QACR,WAAW;QACX,IAAI;QACJ,KAAK;QACL,MAAM;QACN,UAAU;QACV,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,UAAU;QACV,WAAW;QACX,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,GAAG;QACH,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;QACX,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,SAAS;QACT,KAAK;QACL,QAAQ;QACR,UAAU;QACV,KAAK;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,WAAW;QACX,YAAY;QACZ,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,SAAS;QACT,SAAS;QACT,SAAS;QACT,aAAa;QACb,aAAa;QACb,UAAU;QACV,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,UAAU;QACV,KAAK;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,SAAS;QACT,YAAY;QACZ,KAAK;QACL,SAAS;QACT,UAAU;QACV,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,UAAU;QACV,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,OAAO;QACP,OAAO;QACP,WAAW;QACX,OAAO;QACP,OAAO;QACP,KAAK;QACL,SAAS;QACT,KAAK;QACL,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,eAAe;QACf,KAAK;QACL,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,KAAK;QACL,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,UAAU;QACV,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,SAAS;QACT,WAAW;QACX,OAAO;QACP,QAAQ;QACR,KAAK;QACL,OAAO;QACP,QAAQ;QACR,WAAW;QACX,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,UAAU;QACV,UAAU;QACV,QAAQ;QACR,MAAM;QACN,OAAO;QACP,aAAa;QACb,KAAK;QACL,QAAQ;QACR,OAAO;QACP,SAAS;QACT,UAAU;QACV,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,KAAK;QACL,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,SAAS;QACT,WAAW;QACX,KAAK;QACL,WAAW;QACX,OAAO;QACP,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,SAAS;QACT,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,UAAU;QACV,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,UAAU;QACV,MAAM;QACN,KAAK;QACL,MAAM;QACN,WAAW;QACX,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,WAAW;QACX,SAAS;QACT,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,KAAK;QACL,SAAS;QACT,SAAS;QACT,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,YAAY;QACZ,MAAM;QACN,OAAO;QACP,UAAU;QACV,SAAS;QACT,MAAM;QACN,YAAY;QACZ,QAAQ;QACR,MAAM;KACT;IACD,EAAE,EAAE;QACA,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,SAAS;QACT,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,SAAS;QACT,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,UAAU;QACV,WAAW;QACX,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;KACP;IACD,EAAE,EAAE;QACA,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,SAAS;QACT,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,SAAS;QACT,UAAU;QACV,UAAU;QACV,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,UAAU;QACV,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO;QACP,WAAW;QACX,WAAW;QACX,MAAM;QACN,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,WAAW;QACX,WAAW;QACX,SAAS;QACT,MAAM;QACN,OAAO;QACP,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,KAAK;QACL,SAAS;QACT,KAAK;QACL,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,IAAI;QACJ,WAAW;QACX,QAAQ;QACR,WAAW;QACX,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,GAAG;QACH,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,SAAS;QACT,SAAS;QACT,aAAa;QACb,YAAY;QACZ,SAAS;QACT,aAAa;QACb,SAAS;QACT,WAAW;QACX,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,SAAS;QACT,WAAW;QACX,IAAI;QACJ,MAAM;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,KAAK;QACL,QAAQ;KACX;IACD,EAAE,EAAE;QACA,OAAO;QACP,MAAM;QACN,YAAY;QACZ,OAAO;QACP,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,UAAU;QACV,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,MAAM;QACN,QAAQ;QACR,KAAK;QACL,KAAK;QACL,KAAK;QACL,UAAU;QACV,MAAM;QACN,KAAK;QACL,QAAQ;QACR,aAAa;QACb,KAAK;QACL,OAAO;QACP,UAAU;QACV,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,SAAS;QACT,KAAK;QACL,UAAU;QACV,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;QACV,MAAM;QACN,OAAO;QACP,WAAW;QACX,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,SAAS;QACT,WAAW;QACX,YAAY;QACZ,aAAa;QACb,WAAW;QACX,UAAU;QACV,OAAO;QACP,KAAK;QACL,SAAS;QACT,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,WAAW;QACX,IAAI;QACJ,MAAM;QACN,KAAK;QACL,OAAO;QACP,UAAU;QACV,UAAU;QACV,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,aAAa;QACb,OAAO;QACP,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,OAAO;QACP,SAAS;QACT,MAAM;QACN,MAAM;QACN,IAAI;QACJ,SAAS;QACT,MAAM;QACN,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,SAAS;QACT,WAAW;QACX,MAAM;QACN,QAAQ;QACR,UAAU;QACV,aAAa;QACb,OAAO;QACP,QAAQ;QACR,SAAS;QACT,UAAU;QACV,aAAa;QACb,QAAQ;QACR,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,YAAY;QACZ,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,YAAY;QACZ,MAAM;QACN,YAAY;QACZ,YAAY;QACZ,MAAM;QACN,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,aAAa;QACb,SAAS;QACT,UAAU;QACV,OAAO;QACP,SAAS;QACT,MAAM;QACN,OAAO;QACP,WAAW;QACX,QAAQ;QACR,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,KAAK;QACL,OAAO;QACP,KAAK;QACL,UAAU;QACV,QAAQ;QACR,UAAU;QACV,KAAK;QACL,QAAQ;QACR,SAAS;QACT,KAAK;QACL,WAAW;QACX,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,KAAK;QACL,MAAM;QACN,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,SAAS;QACT,KAAK;QACL,OAAO;QACP,UAAU;QACV,YAAY;QACZ,YAAY;QACZ,KAAK;QACL,OAAO;QACP,SAAS;QACT,MAAM;QACN,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,KAAK;QACL,MAAM;QACN,SAAS;QACT,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,aAAa;QACb,SAAS;QACT,SAAS;QACT,WAAW;QACX,WAAW;QACX,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,UAAU;QACV,aAAa;QACb,UAAU;QACV,MAAM;QACN,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,MAAM;QACN,IAAI;QACJ,OAAO;QACP,WAAW;QACX,SAAS;QACT,SAAS;QACT,OAAO;QACP,QAAQ;QACR,UAAU;QACV,MAAM;QACN,QAAQ;QACR,SAAS;QACT,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,aAAa;QACb,SAAS;QACT,MAAM;QACN,OAAO;QACP,GAAG;QACH,MAAM;QACN,QAAQ;QACR,MAAM;QACN,aAAa;QACb,SAAS;QACT,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,WAAW;QACX,MAAM;QACN,OAAO;QACP,OAAO;QACP,UAAU;QACV,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,KAAK;QACL,MAAM;QACN,QAAQ;QACR,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,UAAU;QACV,WAAW;QACX,SAAS;QACT,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,WAAW;QACX,YAAY;QACZ,KAAK;QACL,SAAS;QACT,KAAK;QACL,KAAK;QACL,OAAO;QACP,aAAa;QACb,IAAI;QACJ,OAAO;QACP,UAAU;QACV,gBAAgB;QAChB,MAAM;QACN,SAAS;QACT,IAAI;QACJ,OAAO;QACP,SAAS;QACT,SAAS;QACT,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,MAAM;QACN,SAAS;QACT,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,SAAS;QACT,WAAW;QACX,SAAS;QACT,WAAW;QACX,SAAS;QACT,MAAM;QACN,SAAS;QACT,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,KAAK;QACL,UAAU;QACV,UAAU;QACV,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,KAAK;QACL,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,YAAY;QACZ,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,MAAM;QACN,SAAS;QACT,UAAU;QACV,WAAW;QACX,OAAO;QACP,SAAS;QACT,MAAM;QACN,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,KAAK;QACL,QAAQ;QACR,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,UAAU;QACV,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,WAAW;QACX,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,OAAO;KACV;IACD,EAAE,EAAE;QACA,OAAO;QACP,MAAM;QACN,KAAK;QACL,GAAG;QACH,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,WAAW;QACX,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,SAAS;QACT,GAAG;QACH,MAAM;QACN,OAAO;QACP,OAAO;QACP,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,IAAI;KACP;IACD,EAAE,EAAE;QACA,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,SAAS;QACT,WAAW;QACX,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,KAAK;QACL,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;QACH,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,MAAM;QACN,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,SAAS;QACT,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,UAAU;QACV,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,WAAW;QACX,MAAM;QACN,IAAI;QACJ,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,KAAK;QACL,QAAQ;QACR,SAAS;QACT,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,SAAS;QACT,QAAQ;QACR,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,KAAK;QACL,GAAG;QACH,IAAI;QACJ,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,UAAU;QACV,IAAI;QACJ,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,GAAG;QACH,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,UAAU;QACV,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,GAAG;QACH,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,GAAG;QACH,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,IAAI;QACJ,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,GAAG;QACH,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,GAAG;QACH,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,GAAG;QACH,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,KAAK;QACL,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM;QACN,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,OAAO;QACP,KAAK;QACL,OAAO;QACP,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,SAAS;QACT,GAAG;QACH,KAAK;QACL,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,IAAI;QACJ,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,MAAM;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;QACR,MAAM;QACN,KAAK;QACL,IAAI;QACJ,OAAO;QACP,SAAS;QACT,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,GAAG;QACH,OAAO;QACP,IAAI;QACJ,MAAM;KACT;IACD,EAAE,EAAE;QACA,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,KAAK;QACL,SAAS;QACT,SAAS;QACT,WAAW;QACX,QAAQ;QACR,UAAU;QACV,MAAM;QACN,UAAU;QACV,gBAAgB;QAChB,gBAAgB;QAChB,UAAU;QACV,UAAU;QACV,gBAAgB;QAChB,cAAc;QACd,IAAI;QACJ,KAAK;QACL,KAAK;QACL,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,KAAK;QACL,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,UAAU;QACV,QAAQ;QACR,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,WAAW;QACX,SAAS;QACT,gBAAgB;QAChB,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,UAAU;QACV,SAAS;QACT,SAAS;QACT,SAAS;QACT,aAAa;QACb,SAAS;QACT,WAAW;QACX,gBAAgB;QAChB,SAAS;QACT,YAAY;QACZ,MAAM;QACN,YAAY;QACZ,UAAU;QACV,SAAS;QACT,KAAK;QACL,KAAK;QACL,IAAI;QACJ,OAAO;QACP,MAAM;QACN,WAAW;QACX,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,KAAK;QACL,WAAW;QACX,WAAW;QACX,SAAS;QACT,QAAQ;QACR,SAAS;QACT,KAAK;QACL,KAAK;QACL,KAAK;QACL,SAAS;QACT,SAAS;QACT,OAAO;QACP,KAAK;QACL,SAAS;QACT,SAAS;QACT,aAAa;QACb,SAAS;QACT,aAAa;QACb,MAAM;QACN,SAAS;QACT,UAAU;QACV,WAAW;QACX,WAAW;QACX,WAAW;QACX,eAAe;QACf,QAAQ;QACR,aAAa;QACb,UAAU;QACV,OAAO;QACP,UAAU;QACV,WAAW;QACX,WAAW;QACX,WAAW;QACX,KAAK;QACL,SAAS;QACT,UAAU;QACV,YAAY;QACZ,UAAU;QACV,WAAW;QACX,WAAW;QACX,OAAO;QACP,MAAM;QACN,WAAW;QACX,MAAM;QACN,MAAM;QACN,UAAU;QACV,UAAU;QACV,aAAa;QACb,WAAW;QACX,YAAY;QACZ,UAAU;QACV,WAAW;QACX,WAAW;QACX,KAAK;QACL,MAAM;QACN,WAAW;QACX,KAAK;QACL,SAAS;QACT,MAAM;QACN,MAAM;QACN,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,KAAK;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,aAAa;QACb,OAAO;QACP,QAAQ;QACR,OAAO;QACP,SAAS;QACT,IAAI;QACJ,SAAS;QACT,YAAY;QACZ,MAAM;QACN,UAAU;QACV,WAAW;QACX,UAAU;QACV,KAAK;QACL,SAAS;QACT,MAAM;QACN,UAAU;QACV,UAAU;QACV,eAAe;QACf,IAAI;QACJ,UAAU;QACV,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,SAAS;QACT,SAAS;QACT,KAAK;QACL,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,SAAS;QACT,SAAS;QACT,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,KAAK;QACL,SAAS;QACT,OAAO;QACP,WAAW;QACX,UAAU;QACV,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,KAAK;QACL,WAAW;QACX,MAAM;QACN,KAAK;QACL,SAAS;QACT,IAAI;QACJ,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;QACP,MAAM;QACN,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,UAAU;QACV,KAAK;QACL,IAAI;QACJ,MAAM;QACN,SAAS;QACT,UAAU;QACV,UAAU;QACV,cAAc;QACd,eAAe;QACf,SAAS;QACT,YAAY;QACZ,UAAU;QACV,OAAO;QACP,cAAc;QACd,OAAO;QACP,OAAO;QACP,UAAU;QACV,OAAO;QACP,MAAM;QACN,WAAW;QACX,WAAW;QACX,UAAU;QACV,UAAU;QACV,MAAM;QACN,SAAS;QACT,WAAW;QACX,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,SAAS;QACT,IAAI;QACJ,MAAM;QACN,WAAW;QACX,OAAO;QACP,YAAY;QACZ,aAAa;QACb,KAAK;QACL,UAAU;QACV,WAAW;QACX,KAAK;QACL,WAAW;QACX,KAAK;QACL,UAAU;QACV,WAAW;QACX,SAAS;QACT,SAAS;QACT,WAAW;QACX,SAAS;QACT,OAAO;QACP,UAAU;QACV,YAAY;QACZ,MAAM;QACN,WAAW;QACX,WAAW;QACX,UAAU;QACV,WAAW;QACX,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,UAAU;QACV,WAAW;QACX,KAAK;QACL,KAAK;QACL,KAAK;QACL,SAAS;QACT,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,SAAS;QACT,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,SAAS;QACT,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,WAAW;QACX,YAAY;QACZ,MAAM;QACN,UAAU;QACV,YAAY;QACZ,MAAM;QACN,UAAU;QACV,OAAO;QACP,WAAW;QACX,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,UAAU;QACV,UAAU;QACV,OAAO;QACP,aAAa;QACb,OAAO;QACP,KAAK;QACL,WAAW;QACX,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,UAAU;QACV,UAAU;QACV,UAAU;QACV,SAAS;QACT,UAAU;QACV,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,OAAO;QACP,MAAM;QACN,KAAK;QACL,KAAK;QACL,UAAU;QACV,KAAK;QACL,MAAM;QACN,SAAS;QACT,SAAS;QACT,MAAM;QACN,KAAK;QACL,MAAM;QACN,SAAS;QACT,UAAU;QACV,SAAS;QACT,KAAK;QACL,KAAK;QACL,OAAO;QACP,KAAK;QACL,KAAK;QACL,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,SAAS;QACT,MAAM;QACN,IAAI;QACJ,MAAM;QACN,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,SAAS;QACT,OAAO;QACP,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;QACP,MAAM;QACN,YAAY;QACZ,OAAO;QACP,aAAa;QACb,OAAO;QACP,OAAO;QACP,KAAK;QACL,QAAQ;QACR,UAAU;QACV,UAAU;QACV,WAAW;QACX,UAAU;QACV,OAAO;QACP,KAAK;QACL,UAAU;QACV,YAAY;QACZ,MAAM;QACN,MAAM;QACN,aAAa;QACb,WAAW;QACX,QAAQ;QACR,UAAU;QACV,UAAU;QACV,MAAM;QACN,MAAM;QACN,MAAM;QACN,UAAU;QACV,UAAU;QACV,SAAS;QACT,UAAU;QACV,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,SAAS;QACT,QAAQ;QACR,SAAS;QACT,OAAO;QACP,OAAO;QACP,cAAc;QACd,MAAM;QACN,MAAM;QACN,WAAW;QACX,MAAM;QACN,YAAY;QACZ,MAAM;QACN,WAAW;QACX,WAAW;QACX,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;QACV,WAAW;QACX,SAAS;QACT,UAAU;QACV,KAAK;QACL,UAAU;QACV,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,WAAW;QACX,WAAW;QACX,YAAY;QACZ,WAAW;QACX,UAAU;QACV,WAAW;QACX,MAAM;QACN,MAAM;QACN,WAAW;QACX,OAAO;QACP,aAAa;QACb,SAAS;QACT,KAAK;QACL,WAAW;QACX,UAAU;QACV,SAAS;QACT,SAAS;QACT,aAAa;QACb,SAAS;QACT,WAAW;QACX,gBAAgB;QAChB,WAAW;QACX,OAAO;QACP,MAAM;QACN,QAAQ;QACR,OAAO;QACP,KAAK;QACL,UAAU;QACV,OAAO;QACP,SAAS;QACT,KAAK;QACL,QAAQ;QACR,KAAK;QACL,KAAK;QACL,QAAQ;QACR,UAAU;QACV,aAAa;QACb,SAAS;QACT,KAAK;QACL,QAAQ;QACR,KAAK;QACL,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,IAAI;QACJ,KAAK;QACL,SAAS;QACT,SAAS;QACT,IAAI;QACJ,MAAM;QACN,OAAO;QACP,WAAW;QACX,KAAK;QACL,SAAS;QACT,MAAM;QACN,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,IAAI;QACJ,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,OAAO;QACP,UAAU;QACV,QAAQ;QACR,eAAe;QACf,OAAO;QACP,SAAS;QACT,QAAQ;QACR,SAAS;QACT,UAAU;QACV,UAAU;QACV,QAAQ;QACR,KAAK;QACL,KAAK;QACL,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,KAAK;QACL,SAAS;QACT,IAAI;QACJ,KAAK;QACL,KAAK;QACL,SAAS;QACT,OAAO;QACP,UAAU;QACV,SAAS;QACT,aAAa;QACb,MAAM;QACN,MAAM;QACN,MAAM;QACN,eAAe;QACf,eAAe;QACf,KAAK;QACL,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,KAAK;QACL,GAAG;QACH,MAAM;QACN,IAAI;QACJ,GAAG;QACH,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;QACT,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,GAAG;QACH,SAAS;QACT,MAAM;QACN,MAAM;QACN,IAAI;QACJ,MAAM;QACN,WAAW;QACX,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,UAAU;QACV,UAAU;QACV,UAAU;QACV,QAAQ;QACR,KAAK;QACL,SAAS;QACT,KAAK;QACL,IAAI;QACJ,GAAG;QACH,OAAO;QACP,OAAO;QACP,IAAI;QACJ,GAAG;QACH,GAAG;QACH,MAAM;QACN,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,GAAG;QACH,KAAK;QACL,GAAG;QACH,GAAG;QACH,GAAG;QACH,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;KACN;IACD,EAAE,EAAE;QACA,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,IAAI;QACJ,KAAK;QACL,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,OAAO;QACP,GAAG;QACH,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,GAAG;QACH,GAAG;QACH,KAAK;QACL,GAAG;QACH,GAAG;QACH,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,MAAM;QACN,MAAM;QACN,YAAY;KACf;IACD,EAAE,EAAE;QACA,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,OAAO;QACP,OAAO;QACP,SAAS;QACT,OAAO;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,MAAM;QACN,aAAa;QACb,KAAK;QACL,QAAQ;QACR,SAAS;QACT,GAAG;QACH,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO;QACP,OAAO;QACP,OAAO;KACV;CACJ,CAAA"}
\ No newline at end of file
diff --git a/build/loading.html b/build/loading.html
deleted file mode 100644
index 0d652df..0000000
--- a/build/loading.html
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
-
- Preparing Indexing
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Preparing the app
-
-
- We have to download a few things to enable the indexing of your
- content. Allow notifications to get notified even if you close or
- not focus on this screen.
-
-
-
-
diff --git a/build/preload.cjs b/build/preload.cjs
deleted file mode 100644
index 15bdfbb..0000000
--- a/build/preload.cjs
+++ /dev/null
@@ -1,19 +0,0 @@
-// src/preload.ts
-// See the Electron documentation for details on how to use preload scripts:
-// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts
-
-const { contextBridge, ipcRenderer } = require('electron')
-
-contextBridge.exposeInMainWorld('electron', {
- ipcRenderer: {
- send: function (channel, data) {
- ipcRenderer.send(channel, data)
- },
- on: function (channel, func) {
- ipcRenderer.on(channel, func)
- },
- getDbPath: async function () {
- return await ipcRenderer.invoke('get-db-path')
- },
- },
-})
diff --git a/build/preload.cjs.map b/build/preload.cjs.map
deleted file mode 100644
index db0d727..0000000
--- a/build/preload.cjs.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"preload.cjs","sourceRoot":"","sources":["../src/preload.cjs"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,4EAA4E;AAC5E,gFAAgF;AAE1E,IAAA,KAAiC,OAAO,CAAC,UAAU,CAAC,EAAlD,aAAa,mBAAA,EAAE,WAAW,iBAAwB,CAAA;AAE1D,aAAa,CAAC,iBAAiB,CAAC,UAAU,EAAE;IACxC,WAAW,EAAE;QACT,IAAI,EAAE,UAAU,OAAO,EAAE,IAAI;YACzB,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACnC,CAAC;QACD,EAAE,EAAE,UAAU,OAAO,EAAE,IAAI;YACvB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACjC,CAAC;QACD,SAAS,EAAE;YACP,OAAO,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAC5C,CAAC;KACJ;CACJ,CAAC,CAAA"}
\ No newline at end of file
diff --git a/build/preload.js b/build/preload.js
deleted file mode 100644
index 99bf8b1..0000000
--- a/build/preload.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// src/preload.ts
-// See the Electron documentation for details on how to use preload scripts:
-// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts
-
-const { contextBridge, ipcRenderer } = require('electron')
-
-contextBridge.exposeInMainWorld('electron', {
- ipcRenderer: {
- send: function (channel, data) {
- ipcRenderer.send(channel, data)
- },
- on: function (channel, func) {
- ipcRenderer.on(channel, func)
- },
- getDbPath: function () {
- return ipcRenderer.invoke('get-db-path')
- },
- },
-})
diff --git a/build/renderer.js b/build/renderer.js
deleted file mode 100644
index 22f0ac7..0000000
--- a/build/renderer.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * This file will automatically be loaded by webpack and run in the "renderer" context.
- * To learn more about the differences between the "main" and the "renderer" context in
- * Electron, visit:
- *
- * https://electronjs.org/docs/latest/tutorial/process-model
- *
- * By default, Node.js integration in this file is disabled. When enabling Node.js integration
- * in a renderer process, please be aware of potential security implications. You can read
- * more about security risks here:
- *
- * https://electronjs.org/docs/tutorial/security
- *
- * To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration`
- * flag:
- *
- * ```
- * // Create the browser window.
- * mainWindow = new BrowserWindow({
- * width: 800,
- * height: 600,
- * webPreferences: {
- * nodeIntegration: true
- * }
- * });
- * ```
- */
-import './index.css';
-console.log('👋 This message is being logged by "renderer.js", included via webpack');
-//# sourceMappingURL=renderer.js.map
\ No newline at end of file
diff --git a/build/renderer.js.map b/build/renderer.js.map
deleted file mode 100644
index bad75d1..0000000
--- a/build/renderer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,aAAa,CAAA;AAEpB,OAAO,CAAC,GAAG,CACP,wEAAwE,CAC3E,CAAA"}
\ No newline at end of file
diff --git a/build/search/find_similar.js b/build/search/find_similar.js
deleted file mode 100644
index b725bb5..0000000
--- a/build/search/find_similar.js
+++ /dev/null
@@ -1,129 +0,0 @@
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-import log from 'electron-log';
-function findSimilar(req, res, embedTextFunction, allTables, entityExtractionFunction) {
- return __awaiter(this, void 0, void 0, function () {
- var embeddedChunk, vectors, vectorDocsTable, result, filteredResult, endResults, error_1;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- _a.trys.push([0, 4, , 5]);
- return [4 /*yield*/, embedTextFunction(req.body.contentText)];
- case 1:
- embeddedChunk = _a.sent();
- vectors = embeddedChunk[0].data;
- vectorDocsTable = allTables.vectorDocsTable;
- return [4 /*yield*/, vectorDocsTable
- .search(Array.from(vectors))
- .where("fullurl != '".concat(req.body.fullUrl, "' AND createdwhen != 0"))
- .limit(30)
- .execute()];
- case 2:
- result = _a.sent();
- filteredResult = result.filter(function (item) {
- var _a;
- if (item.contenttype === 'annotation') {
- var splitUrl = (_a = item.fullurl) === null || _a === void 0 ? void 0 : _a.split('/#');
- if (splitUrl[0] === req.body.fullUrl) {
- return false;
- }
- }
- return item._distance < 1.25 && item.fullurl !== 'null';
- });
- filteredResult = Object.values(filteredResult.reduce(function (acc, item) {
- if (!acc[item.fullurl] ||
- acc[item.fullurl]._distance > item._distance) {
- acc[item.fullurl] = item;
- }
- return acc;
- }, {}));
- return [4 /*yield*/, Promise.all(filteredResult.map(function (item) {
- return __awaiter(this, void 0, void 0, function () {
- var path, topLevelFolder;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (!(item.sourceapplication === 'obsidian' ||
- item.sourceapplication === 'logseq')) return [3 /*break*/, 2];
- return [4 /*yield*/, allTables.sourcesDB.get("SELECT path FROM watchedFoldersTable WHERE sourceApplication = ?", [item.sourceapplication])];
- case 1:
- topLevelFolder = _a.sent();
- topLevelFolder = topLevelFolder.path.split('/').pop();
- _a.label = 2;
- case 2:
- if (!(item.contenttype === 'pdf')) return [3 /*break*/, 4];
- return [4 /*yield*/, allTables.sourcesDB.get("SELECT path FROM pdfTable WHERE fingerPrint = ?", [item.fullurl])];
- case 3:
- path = _a.sent();
- _a.label = 4;
- case 4:
- if (!(item.contenttype === 'markdown')) return [3 /*break*/, 6];
- return [4 /*yield*/, allTables.sourcesDB.get("SELECT path FROM markdownDocsTable WHERE fingerPrint = ?", [item.fullurl])];
- case 5:
- path = _a.sent();
- _a.label = 6;
- case 6: return [2 /*return*/, {
- fullUrl: item.fullurl,
- pageTitle: item.pagetitle,
- contentText: item.contenttext,
- createdWhen: item.createdwhen,
- contentType: item.contenttype,
- sourceApplication: item.sourceapplication,
- creatorId: item.creatorid,
- distance: item._distance,
- entities: item.entities,
- path: path === null || path === void 0 ? void 0 : path.path,
- topLevelFolder: topLevelFolder
- }];
- }
- });
- });
- }))];
- case 3:
- endResults = _a.sent();
- return [2 /*return*/, res.status(200).send(endResults)];
- case 4:
- error_1 = _a.sent();
- log.error('Error in /find_similar', error_1);
- return [2 /*return*/, res.status(500).json({ error: 'Internal server error' })];
- case 5: return [2 /*return*/];
- }
- });
- });
-}
-export { findSimilar };
-//# sourceMappingURL=find_similar.js.map
\ No newline at end of file
diff --git a/build/search/find_similar.js.map b/build/search/find_similar.js.map
deleted file mode 100644
index a2f7a42..0000000
--- a/build/search/find_similar.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"find_similar.js","sourceRoot":"","sources":["../../src/search/find_similar.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,GAAG,MAAM,cAAc,CAAA;AAoB9B,SAAe,WAAW,CACtB,GAAY,EACZ,GAAa,EACb,iBAA2B,EAC3B,SAAoB,EACpB,wBAAkC;;;;;;;oBAGR,qBAAM,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAA;;oBAA7D,aAAa,GAAG,SAA6C;oBAC7D,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;oBAE/B,eAAe,GAAG,SAAS,CAAC,eAAe,CAAA;oBAG5B,qBAAM,eAAe;6BACrC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;6BAC3B,KAAK,CAAC,sBAAe,GAAG,CAAC,IAAI,CAAC,OAAO,2BAAwB,CAAC;6BAC9D,KAAK,CAAC,EAAE,CAAC;6BACT,OAAO,EAAE,EAAA;;oBAJV,MAAM,GAAW,SAIP;oBAEV,cAAc,GAAW,MAAM,CAAC,MAAM,CAAC,UAAC,IAAU;;wBAClD,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;4BACnC,IAAI,QAAQ,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,CAAC,IAAI,CAAC,CAAA;4BACxC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;gCAClC,OAAO,KAAK,CAAA;6BACf;yBACJ;wBACD,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAA;oBAC3D,CAAC,CAAC,CAAA;oBAEF,cAAc,GAAG,MAAM,CAAC,MAAM,CAC1B,cAAc,CAAC,MAAM,CAAC,UAAC,GAAyB,EAAE,IAAU;wBACxD,IACI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;4BAClB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAC9C;4BACE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;yBAC3B;wBACD,OAAO,GAAG,CAAA;oBACd,CAAC,EAAE,EAAE,CAAC,CACT,CAAA;oBAEkB,qBAAM,OAAO,CAAC,GAAG,CAChC,cAAc,CAAC,GAAG,CAAC,UAAgB,IAAU;;;;;;iDAKrC,CAAA,IAAI,CAAC,iBAAiB,KAAK,UAAU;gDACrC,IAAI,CAAC,iBAAiB,KAAK,QAAQ,CAAA,EADnC,wBACmC;4CAElB,qBAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CAC1C,kEAAkE,EAClE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAC3B,EAAA;;4CAHD,cAAc,GAAG,SAGhB,CAAA;4CACD,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;;;iDAErD,CAAA,IAAI,CAAC,WAAW,KAAK,KAAK,CAAA,EAA1B,wBAA0B;4CACnB,qBAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CAChC,iDAAiD,EACjD,CAAC,IAAI,CAAC,OAAO,CAAC,CACjB,EAAA;;4CAHD,IAAI,GAAG,SAGN,CAAA;;;iDAED,CAAA,IAAI,CAAC,WAAW,KAAK,UAAU,CAAA,EAA/B,wBAA+B;4CACxB,qBAAM,SAAS,CAAC,SAAS,CAAC,GAAG,CAChC,0DAA0D,EAC1D,CAAC,IAAI,CAAC,OAAO,CAAC,CACjB,EAAA;;4CAHD,IAAI,GAAG,SAGN,CAAA;;gDAGL,sBAAO;gDACH,OAAO,EAAE,IAAI,CAAC,OAAO;gDACrB,SAAS,EAAE,IAAI,CAAC,SAAS;gDACzB,WAAW,EAAE,IAAI,CAAC,WAAW;gDAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gDAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gDAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gDACzC,SAAS,EAAE,IAAI,CAAC,SAAS;gDACzB,QAAQ,EAAE,IAAI,CAAC,SAAS;gDACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gDACvB,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI;gDAChB,cAAc,EAAE,cAAc;6CACjC,EAAA;;;;yBACJ,CAAC,CACL,EAAA;;oBA1CK,UAAU,GAAG,SA0ClB;oBAED,sBAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAA;;;oBAEvC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,OAAK,CAAC,CAAA;oBAC1C,sBAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,EAAA;;;;;CAEtE;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
\ No newline at end of file
diff --git a/package.json b/package.json
index 01521bb..1ea6961 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "memex-desktop",
"productName": "Memex Desktop",
- "version": "0.0.30",
+ "version": "0.0.36",
"description": "Backup and sync to your favorite PKM tools",
"main": "build/index.js",
"type": "module",
diff --git a/src/index.ts b/src/index.ts
index 39b1211..5845f87 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -47,6 +47,7 @@ import { Server } from 'http'
dotEnv.config()
const isPackaged = app.isPackaged
+let updateStage: 'pristine' | 'checking' | 'downloading' | string = 'pristine'
let tray: Tray | null = null
let mainWindow: BrowserWindow
let downloadProgress: number = 0
@@ -392,6 +393,15 @@ app.on('ready', async () => {
tray = new Tray(trayIcon)
tray.setImage(trayIcon)
+ let updateLabel = 'Check for Updates'
+
+ if (updateStage === 'checking') {
+ updateLabel = 'Checking for Updates'
+ }
+ if (updateStage === 'downloading') {
+ updateLabel = 'Update Downloading'
+ }
+
var updateMenuItem = {
label: 'Check for Updates',
click: function () {
@@ -419,12 +429,6 @@ app.on('ready', async () => {
store.delete('syncKey')
},
},
- {
- label: 'Add Local folder',
- click: async function () {
- await watchNewFolder()
- },
- },
updateMenuItem,
{
label: 'Exit',
@@ -444,12 +448,15 @@ app.on('ready', async () => {
try {
autoUpdater
.checkForUpdates()
- .then(function () {})
+ .then(function () {
+ updateStage = 'checking'
+ })
.catch(function (err) {
log.error('err', err)
})
autoUpdater.on('update-available', async function () {
log.info('update available')
+ updateStage = 'downloading'
log.info(autoUpdater.downloadUpdate())
})