initial commit
|
@ -0,0 +1,27 @@
|
|||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ '*' ]
|
||||
pull_request:
|
||||
branches: [ '*' ]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
LINGDOCS_DICTIONARY_URL: ${{ secrets.LINGDOCS_DICTIONARY_URL }}
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [12.x, 14.x, 15.x]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- run: yarn install
|
||||
- run: yarn build-website
|
||||
- run: yarn build-library
|
||||
- run: yarn test-ci
|
|
@ -0,0 +1,27 @@
|
|||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
/dist
|
||||
/dist-cjs
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
/src/verbs.ts
|
|
@ -0,0 +1,2 @@
|
|||
@lingdocs:registry=https://reg.lingdocs.com
|
||||
//reg.lingdocs.com/:_authToken=${LINGDOCS_NPM_TOKEN}
|
|
@ -0,0 +1,8 @@
|
|||
The MIT License (MIT)
|
||||
Copyright © 2021 lingdocs.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,36 @@
|
|||
# pashto-inflector
|
||||
|
||||
[![Netlify Status](https://api.netlify.com/api/v1/badges/ca3a7720-876f-4375-a77e-2e7bfdcee48a/deploy-status)](https://app.netlify.com/sites/pashto-verbs/deploys)
|
||||
![build](https://github.com/lingdocs/pashto-inflector/actions/workflows/main.yml/badge.svg)
|
||||
|
||||
A pashto inflection and verb conjugation engine, as well as functions and components for modifying and displaying Pashto text.
|
||||
|
||||
Also includes the [Pashto Verb Explorer](https://verbs.lingdocs.com) website.
|
||||
|
||||
## Development
|
||||
|
||||
The Pashto Verb Explorer website can be used to view and play with the verb conjugations and various components.
|
||||
|
||||
```
|
||||
yarn start
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
### Website
|
||||
|
||||
To build the Pashto [Pashto Verb Explorer](https://verbs.lingdocs.com) website:
|
||||
|
||||
```
|
||||
yarn build-website
|
||||
```
|
||||
|
||||
This outputs a site at `/build`
|
||||
|
||||
### Library
|
||||
|
||||
To build the `pashto-inflector` library ready for publishing to NPM:
|
||||
|
||||
```
|
||||
yarn build-library
|
||||
```
|
|
@ -0,0 +1,59 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const fs = require("fs");
|
||||
const fetch = require("node-fetch");
|
||||
const path = require("path");
|
||||
const collectionPath = path.join(".", "verbs");
|
||||
const verbTsFiles = fs.readdirSync(collectionPath)
|
||||
|
||||
const allTsS = [...new Set(verbTsFiles.reduce((arr, fileName) => {
|
||||
const TsS = require("./verbs/"+fileName);
|
||||
return [...arr, ...TsS];
|
||||
}, []))];
|
||||
|
||||
fetch(process.env.LINGDOCS_DICTIONARY_URL).then(res => res.json()).then(data => {
|
||||
const entries = data.entries;
|
||||
const allVerbs = getFromTsS(entries);
|
||||
const content = `
|
||||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { DictionaryEntry } from "./types";
|
||||
|
||||
const verbs: {
|
||||
entry: DictionaryEntry,
|
||||
complement?: DictionaryEntry,
|
||||
}[] = ${JSON.stringify(allVerbs)};
|
||||
export default verbs;`;
|
||||
fs.writeFileSync("./src/verbs.ts", content);
|
||||
console.log("fetched verbs from dictionary");
|
||||
});
|
||||
|
||||
function getFromTsS(entries) {
|
||||
return allTsS.map(ts => {
|
||||
const entry = entries.find(x => ts === x.ts);
|
||||
if (!entry) {
|
||||
console.log("couldn't find ts", ts);
|
||||
return undefined;
|
||||
}
|
||||
if (entry.c && entry.c.includes("comp.")) {
|
||||
const complement = entries.find(x => entry.l === x.ts);
|
||||
return {
|
||||
entry,
|
||||
complement,
|
||||
};
|
||||
}
|
||||
return { entry };
|
||||
}).filter(x => x);
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "es6",
|
||||
"lib": [
|
||||
"dom",
|
||||
"dom.iterable",
|
||||
"esnext"
|
||||
],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true,
|
||||
"downlevelIteration": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"module": "ES6",
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"declaration": true,
|
||||
"jsx": "react-jsx",
|
||||
"outDir": "dist"
|
||||
},
|
||||
"files": [
|
||||
"src/library.ts",
|
||||
"src/images.d.ts"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
[build]
|
||||
command = "yarn build-website"
|
||||
publish = "build"
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"name": "@lingdocs/pashto-inflector",
|
||||
"version": "0.1.7",
|
||||
"author": "lingdocs.com",
|
||||
"description": "A Pashto inflection and verb conjugation engine, inculding React components for displaying Pashto text, inflections, and conjugations",
|
||||
"homepage": "https://github.com/lingdocs/pashto-inflector#readme",
|
||||
"license": "MIT",
|
||||
"main": "dist-cjs/library.js",
|
||||
"module": "dist/library.js",
|
||||
"types": "dist/library.d.ts",
|
||||
"private": false,
|
||||
"files": [
|
||||
"dist",
|
||||
"dist-cjs",
|
||||
"README.md",
|
||||
"LICENSE"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lingdocs/pashto-inflector.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"classnames": "^2.2.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-commonjs": "^17.1.0",
|
||||
"@rollup/plugin-image": "^2.0.6",
|
||||
"@rollup/plugin-node-resolve": "^11.2.0",
|
||||
"@testing-library/jest-dom": "^5.11.4",
|
||||
"@testing-library/react": "^11.1.0",
|
||||
"@testing-library/user-event": "^12.1.10",
|
||||
"@types/jest": "^26.0.20",
|
||||
"@types/node": "^14.14.32",
|
||||
"@types/react": "^17.0.3",
|
||||
"@types/react-dom": "^17.0.2",
|
||||
"node-fetch": "^2.6.1",
|
||||
"react": "^17.0.1",
|
||||
"react-bootstrap": "^1.5.1",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-scripts": "4.0.3",
|
||||
"rimraf": "^3.0.2",
|
||||
"rollup": "^2.41.0",
|
||||
"typescript": "^4.2.3",
|
||||
"web-vitals": "^1.0.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^17.0.1",
|
||||
"react-bootstrap": "^1.5.1",
|
||||
"react-dom": "^17.0.1"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject",
|
||||
"build-website": "node get-verbs.js && npm run build",
|
||||
"build-library": "rimraf dist && rimraf dist-cjs && tsc --project library-tsconfig.json && cp src/components/verb-info/*.svg dist/components/verb-info && rollup -c",
|
||||
"test-ci": "npm run test -- --watchAll=false"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest"
|
||||
]
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 9.9 KiB |
After Width: | Height: | Size: 647 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="A playground for exploring Pashto verbs with all their forms and conjugations" />
|
||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/apple-touch-icon.png" />
|
||||
<meta name="keywords" content="Pashto, Verbs, Conjugation, Grammar, Linguistics" />
|
||||
<meta name="author" content="lingdocs.com" />
|
||||
<link rel="canonical" href="https://verbs.lingdocs.com/" />
|
||||
|
||||
<meta property="og:site_name" content="Pashto Verb Explorer"/>
|
||||
<meta property="og:title" content="Pashto Verb Explorer">
|
||||
<meta property="og:description" content="A playground for exploring Pashto verbs with all their forms and conjugations">
|
||||
<meta property="og:image" content="https://verbs.lingdocs.com/android-chrome-512x512.png">
|
||||
<meta property="og:url" content="https://verbs.lingdocs.com/">
|
||||
<meta property="og:author" content="lingdocs.com">
|
||||
<meta property="og:type" content="website">
|
||||
|
||||
<meta name="twitter:title" content="Pashto Verb Explorer">
|
||||
<meta name="twitter:description" content="A playground for exploring Pashto verbs with all their forms and conjugations">
|
||||
<meta name="twitter:image" content="https://verbs.lingdocs.com/android-chrome-512x512.png">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<title>Pashto Verb Explorer</title>
|
||||
</head>
|
||||
<body class="d-flex flex-column h-100" id="root">
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"short_name": "Verb Explorer",
|
||||
"name": "Pashto Verb Explorer",
|
||||
"icons": [
|
||||
{
|
||||
"src": "favicon.ico",
|
||||
"sizes": "64x64 32x32 24x24 16x16",
|
||||
"type": "image/x-icon"
|
||||
},
|
||||
{
|
||||
"src": "/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
|
@ -0,0 +1,34 @@
|
|||
import image from '@rollup/plugin-image';
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||
import commonjs from '@rollup/plugin-commonjs';
|
||||
import pkg from './package.json';
|
||||
|
||||
const banner = `
|
||||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
`;
|
||||
|
||||
export default {
|
||||
input: 'dist/library.js',
|
||||
external: ["react", "react-dom", "react-bootstrap"],
|
||||
output: [{
|
||||
file: pkg.main,
|
||||
format: 'cjs',
|
||||
sourcemap: true,
|
||||
banner,
|
||||
}],
|
||||
plugins: [
|
||||
// peerDepsExternal(),
|
||||
commonjs(),
|
||||
nodeResolve({
|
||||
resolveOnly: ['classnames'],
|
||||
}),
|
||||
// use base64 image inlining for the cjs version so that the .svg s can get cosumed by node 12 etc.
|
||||
image(),
|
||||
]
|
||||
}
|
|
@ -0,0 +1,263 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
:root {
|
||||
--secondary: #00c1fc;
|
||||
--primary: #ffda54;
|
||||
|
||||
/* change with theme */
|
||||
--theme-shade: #fefefe;
|
||||
--close: #f5f5f5;
|
||||
--closer: #eee;
|
||||
--farther: #555;
|
||||
--farthest: #333;
|
||||
--high-contrast: #444;
|
||||
|
||||
--input-bg: #fafafa;
|
||||
}
|
||||
|
||||
[data-theme="dark"] {
|
||||
--theme-shade: #121418;
|
||||
--close: #1d1f25;
|
||||
--closer: #2c3039;
|
||||
--farther: #bbb;
|
||||
--farthest: #999;
|
||||
--high-contrast: #cfcfcf;
|
||||
|
||||
--input-bg: #ccc;
|
||||
}
|
||||
|
||||
[data-p-text-size="larger"] {
|
||||
--p-text-size: 1.3rem
|
||||
}
|
||||
|
||||
[data-p-text-size="largest"] {
|
||||
--p-text-size: 1.6rem
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--theme-shade);
|
||||
color: var(--high-contrast);
|
||||
}
|
||||
|
||||
.p-text {
|
||||
font-size: var(--p-text-size);
|
||||
}
|
||||
|
||||
pre {
|
||||
color: var(--high-contrast);
|
||||
}
|
||||
|
||||
.card {
|
||||
background: var(--closer);
|
||||
}
|
||||
|
||||
.list-group {
|
||||
background: var(--closer);
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
background: var(--closer);
|
||||
}
|
||||
|
||||
hr {
|
||||
border-top: 1px solid var(--farther);
|
||||
}
|
||||
|
||||
/* maybe call .box-alt? */
|
||||
.bg-light {
|
||||
background-color: var(--closer) !important;
|
||||
color: var(--high-contrast);
|
||||
}
|
||||
.bg-white {
|
||||
background-color: var(--theme-shade) !important;
|
||||
}
|
||||
|
||||
/* TODO: better handling of modals across light and dark modes */
|
||||
.modal-body, .modal-title {
|
||||
color:#1d1f25;
|
||||
}
|
||||
|
||||
.table {
|
||||
color: var(--high-contrast);
|
||||
}
|
||||
|
||||
.width-limiter {
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
.thin-column {
|
||||
max-width: 1rem;
|
||||
}
|
||||
|
||||
.word {
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.word:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.word-non-clickable:hover {
|
||||
cursor: inherit;
|
||||
}
|
||||
|
||||
.word-extra-info {
|
||||
color: var(--farther);
|
||||
margin-left: 1rem;
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
|
||||
.definition {
|
||||
margin-top: 0.5rem;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
code {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
kbd {
|
||||
background-color: #eee;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #b4b4b4;
|
||||
box-shadow: 0 1px 1px rgba(0, 0, 0,
|
||||
.2), 0 2px 0 0 rgba(255, 255, 255,
|
||||
.7) inset;
|
||||
color: #333;
|
||||
display: inline-block;
|
||||
font-size: .85em;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
padding: 2px 4px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.recording-banner {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 16.5%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: rgb(244, 66, 66, 0.9);
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
/* Remove blue glow thing */
|
||||
textarea:focus,
|
||||
input[type="text"]:focus,
|
||||
input[type="search"]:focus,
|
||||
button:focus {
|
||||
border-color: var(--farther);
|
||||
box-shadow: none;
|
||||
outline: 0 none;
|
||||
}
|
||||
|
||||
.clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bottom-left {
|
||||
position: fixed;
|
||||
bottom: 2em;
|
||||
left: 2em;
|
||||
}
|
||||
|
||||
.bottom-right {
|
||||
position: fixed;
|
||||
bottom: 2em;
|
||||
right: 2em;
|
||||
}
|
||||
|
||||
.input-group {
|
||||
border-color: red !important;
|
||||
}
|
||||
|
||||
input {
|
||||
background-color: var(--input-bg) !important;
|
||||
}
|
||||
|
||||
.clear-search-button {
|
||||
background-color: var(--input-bg) !important;
|
||||
}
|
||||
|
||||
.clear-search-button:hover {
|
||||
color: inherit;
|
||||
cursor: pointer;
|
||||
background-color: var(--input-bg) !important;
|
||||
}
|
||||
|
||||
.clear-search-button:active {
|
||||
background-color: var(--input-bg) !important;
|
||||
color: var(--input-bg) !important;
|
||||
}
|
||||
|
||||
.form-control-clear:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.theme-toggle-button {
|
||||
position: fixed;
|
||||
top: 90px;
|
||||
right: 30px;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.back-button {
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
.bottom-nav-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.plain-link {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.plain-link:hover {
|
||||
text-decoration: none;
|
||||
color: var(--farther);
|
||||
}
|
||||
.clickable:hover {
|
||||
color: var(--farther);
|
||||
}
|
||||
|
||||
.clear-search-button {
|
||||
background-color: white;
|
||||
margin-left: -2px;
|
||||
color: #444;
|
||||
border-radius: 0;
|
||||
border-color: var(--farther);
|
||||
}
|
||||
.clear-search-button:hover {
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.btn.bg-white:active,
|
||||
.btn.bg-white:hover {
|
||||
color: #555 !important;
|
||||
}
|
||||
|
||||
.btn-group.full-width {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.full-width .btn {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.clickable:hover {
|
||||
cursor: pointer;
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
import { render, screen } from '@testing-library/react';
|
||||
import App from './App';
|
||||
|
||||
test('renders', () => {
|
||||
render(<App />);
|
||||
const linkElement = screen.getByText(/pashto verb explorer/i);
|
||||
expect(linkElement).toBeInTheDocument();
|
||||
});
|
|
@ -0,0 +1,395 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { useEffect, useState } from "react";
|
||||
import ConjugationViewer from "./components/ConjugationViewer";
|
||||
import verbs from "./verbs";
|
||||
import Pashto from "./components/Pashto";
|
||||
import Phonetics from "./components/Phonetics";
|
||||
import { conjugateVerb } from "./lib/verb-conjugation";
|
||||
import { getVerbInfo } from "./lib/verb-info";
|
||||
import ButtonSelect from "./components/ButtonSelect";
|
||||
import {
|
||||
clamp
|
||||
} from "./lib/p-text-helpers";
|
||||
import {
|
||||
randomNumber,
|
||||
} from "./lib/misc-helpers";
|
||||
import {
|
||||
Modal
|
||||
} from "react-bootstrap";
|
||||
import * as T from "./types";
|
||||
import defualtTextOptions from "./lib/default-text-options";
|
||||
import InlinePs from "./components/InlinePs";
|
||||
|
||||
type VerbType = "simple" | "stative compound" | "dynamic compound";
|
||||
const verbTypes: VerbType[] = [
|
||||
"simple",
|
||||
"stative compound",
|
||||
"dynamic compound",
|
||||
];
|
||||
|
||||
const transitivities: T.Transitivity[] = [
|
||||
"transitive",
|
||||
"intransitive",
|
||||
"grammatically transitive",
|
||||
];
|
||||
|
||||
const allVerbs = verbs.map((v: any) => ({
|
||||
verb: v,
|
||||
info: getVerbInfo(v.entry, v.complement),
|
||||
}));
|
||||
|
||||
function App() {
|
||||
const [verbTs, setVerbTs] = useState<number>(0);
|
||||
const [verbTypeShowing, setVerbTypeShowing] = useState<VerbType>("simple");
|
||||
const [regularIrregular, setRegularIrregular] = useState<"regular" | "irregular">("regular");
|
||||
const [transitivityShowing, setTransitivityShowing] = useState<T.Transitivity>("intransitive");
|
||||
const [showingTextOptions, setShowingTextOptions] = useState<boolean>(false);
|
||||
const [textOptions, setTextOptions] = useState<T.TextOptions>(defualtTextOptions);
|
||||
const [aayTailType, setAayTailType] = useState<T.AayTail>("aay");
|
||||
const [theme, setTheme] = useState<"light" | "dark">("light");
|
||||
// const onlyGrammTrans = (arr: Transitivity[]) => (
|
||||
// arr.length === 1 && arr[0] === "grammatically transitive"
|
||||
// );
|
||||
// const ensureSimpleVerbTypeSelected = () => {
|
||||
// if (!verbTypesShowing.includes["simple"]) {
|
||||
// setVerbTypesShowing([...verbTypesShowing, "simple"]);
|
||||
// }
|
||||
// }
|
||||
|
||||
useEffect(() => {
|
||||
const verbTsRaw = localStorage.getItem("verbTs");
|
||||
const verbTypeShowing = localStorage.getItem("verbTypeShowing") as undefined | VerbType;
|
||||
const regularIrregular = localStorage.getItem("regularIrregular") as "regular" | "irregular";
|
||||
const transitivitiyShowing = localStorage.getItem("transitivityShowing") as undefined | T.Transitivity;
|
||||
const theme = localStorage.getItem("theme");
|
||||
const textOptionst = localStorage.getItem("textOptions");
|
||||
const aayTailType = localStorage.getItem("aayType");
|
||||
if (regularIrregular) {
|
||||
setRegularIrregular(regularIrregular);
|
||||
}
|
||||
if (verbTsRaw) {
|
||||
setVerbTs(JSON.parse(verbTsRaw));
|
||||
}
|
||||
if (verbTypeShowing) {
|
||||
setVerbTypeShowing(verbTypeShowing);
|
||||
}
|
||||
if (transitivitiyShowing) {
|
||||
setTransitivityShowing(transitivitiyShowing);
|
||||
}
|
||||
if (theme) {
|
||||
setTheme(theme as "light" | "dark");
|
||||
}
|
||||
if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) {
|
||||
setTheme("dark");
|
||||
}
|
||||
if (textOptionst) {
|
||||
setTextOptions(JSON.parse(textOptionst) as T.TextOptions);
|
||||
}
|
||||
if (aayTailType) {
|
||||
setAayTailType(aayTailType as T.AayTail);
|
||||
}
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
localStorage.setItem("verbTs", verbTs.toString());
|
||||
localStorage.setItem("regularIrregular", regularIrregular);
|
||||
localStorage.setItem("verbTypeShowing", verbTypeShowing);
|
||||
localStorage.setItem("transitivityShowing", transitivityShowing);
|
||||
localStorage.setItem("textOptions", JSON.stringify(textOptions));
|
||||
localStorage.setItem("theme", theme);
|
||||
localStorage.setItem("aayType", aayTailType);
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
document.documentElement.setAttribute("data-theme", theme);
|
||||
}, [theme])
|
||||
|
||||
const handleVerbIndexChange = (e: any) => {
|
||||
console.log("changing to", e.target.value);
|
||||
setVerbTs(parseInt(e.target.value));
|
||||
}
|
||||
const handleTypeSelection = (e: any) => {
|
||||
const type = e.target.value as VerbType;
|
||||
if (type === "dynamic compound") {
|
||||
setTransitivityShowing("transitive");
|
||||
}
|
||||
if (type === "stative compound" && transitivityShowing === "grammatically transitive") {
|
||||
setTransitivityShowing("transitive");
|
||||
}
|
||||
setVerbTypeShowing(type);
|
||||
}
|
||||
const handleTransitivitySelection = (e: any) => {
|
||||
const transitivity = e.target.value as T.Transitivity;
|
||||
if (transitivity === "grammatically transitive") {
|
||||
setVerbTypeShowing("simple");
|
||||
}
|
||||
setTransitivityShowing(e.target.value as T.Transitivity);
|
||||
}
|
||||
const isRegularVerb = (entry: T.DictionaryEntry): boolean => (
|
||||
!entry.l && !entry.psp && !entry.ssp && !entry.prp && !entry.pprtp && !entry.noOo && !entry.sepOo
|
||||
);
|
||||
const verbsAvailable = allVerbs.filter((verb) => (
|
||||
(
|
||||
(verb.info.type === "transitive or grammatically transitive simple" && verbTypeShowing === "simple") && (transitivityShowing === "transitive" || transitivityShowing === "grammatically transitive")
|
||||
) ||
|
||||
((
|
||||
verbTypeShowing === verb.info.type ||
|
||||
(verbTypeShowing === "stative compound" && verb.info.type === "dynamic or stative compound") ||
|
||||
(verbTypeShowing === "dynamic compound" && verb.info.type === "dynamic or stative compound") ||
|
||||
(verbTypeShowing === "dynamic compound" && verb.info.type === "dynamic or generative stative compound") ||
|
||||
(verbTypeShowing === "stative compound" && verb.info.type === "dynamic or generative stative compound")
|
||||
)
|
||||
&& (
|
||||
transitivityShowing === verb.info.transitivity
|
||||
))
|
||||
)).filter((verb) => {
|
||||
if (verbTypeShowing !== "simple") {
|
||||
return true;
|
||||
}
|
||||
return regularIrregular === "regular"
|
||||
? isRegularVerb(verb.verb.entry)
|
||||
: !isRegularVerb(verb.verb.entry);
|
||||
}).sort((a, b) => a.verb.entry.p.localeCompare(b.verb.entry.p, "ps"));
|
||||
|
||||
const v = (() => {
|
||||
const vFound = verbsAvailable.find(v => v.verb.entry.ts === verbTs);
|
||||
if (vFound) return vFound;
|
||||
if (verbsAvailable.length === 0) return undefined;
|
||||
const vTopOfList = verbsAvailable[0];
|
||||
setVerbTs(vTopOfList.verb.entry.ts);
|
||||
return vTopOfList;
|
||||
})();
|
||||
|
||||
const pickRandomVerb = () => {
|
||||
let newIndex: number;
|
||||
do {
|
||||
newIndex = randomNumber(0, verbsAvailable.length);
|
||||
} while(verbsAvailable[newIndex].verb.entry.ts === verbTs);
|
||||
setVerbTs(verbsAvailable[newIndex].verb.entry.ts);
|
||||
};
|
||||
const makeVerbLabel = (entry: T.DictionaryEntry): string => (
|
||||
`${entry.p} - ${clamp(entry.e, 20)}`
|
||||
);
|
||||
|
||||
const conjugation = v
|
||||
? conjugateVerb(v.verb.entry, aayTailType, v.verb.complement)
|
||||
: undefined;
|
||||
if (v) {
|
||||
console.log("Verb chosen:");
|
||||
console.log(v.verb);
|
||||
console.log("Conjugation of verb:")
|
||||
console.log(conjugation);
|
||||
}
|
||||
console.log(verbTypeShowing);
|
||||
console.log(textOptions);
|
||||
return <>
|
||||
<main className="flex-shrink-0 mb-4">
|
||||
<div className="container">
|
||||
<div style={{ position: "absolute", top: "1.5rem", right: "1.5rem", display: "flex", flexDirection: "row" }}>
|
||||
<div
|
||||
className="clickable mr-3"
|
||||
onClick={() => setShowingTextOptions(true)}
|
||||
>
|
||||
<i className="fa-lg fas fa-cog" />
|
||||
</div>
|
||||
<div
|
||||
className="clickable"
|
||||
onClick={() => setTheme(theme === "light" ? "dark" : "light")}
|
||||
>
|
||||
<i className={`fa-lg fas fa-${theme === "light" ? "sun" : "moon"}`} />
|
||||
</div>
|
||||
</div>
|
||||
<div className="text-center" style={{ marginTop: "3rem", marginBottom: "1rem" }}>
|
||||
<h1 className="display-4 mt-2">Pashto Verb Explorer</h1>
|
||||
<p>by <a href="https://www.lingdocs.com">LingDocs</a></p>
|
||||
<p className="lead my-4">
|
||||
Each form is made from one simple <samp>formula</samp> which <a href="https://www.lingdocs.com/blog/pashto-verbs-master-chart">works for all verbs</a>. 👨🔬
|
||||
</p>
|
||||
<p>Choose a verb 👇, look at its roots and stems 🌳, see how all the forms are made and what they mean. 🤓</p>
|
||||
</div>
|
||||
<div className="d-block mx-auto card" style={{ maxWidth: "700px", background: "var(--closer)"}}>
|
||||
<div className="card-body">
|
||||
<div className="row">
|
||||
<div className="col-sm-6">
|
||||
{(v && conjugation) ?
|
||||
<div>
|
||||
<div className="mb-1">Select a verb:</div>
|
||||
<div className="input-group">
|
||||
<select className="custom-select" value={verbTs} onChange={handleVerbIndexChange}>
|
||||
{verbsAvailable.length
|
||||
? verbsAvailable.map((v, i) => (
|
||||
<option value={v.verb.entry.ts} key={i} dir="ltr">
|
||||
{"\u200E"}{makeVerbLabel(v.verb.entry)}
|
||||
</option>
|
||||
))
|
||||
: <option>Select a verb type</option>
|
||||
}
|
||||
</select>
|
||||
<div className="input-group-append">
|
||||
<button className="btn btn-secondary" onClick={pickRandomVerb}>
|
||||
<i className="fas fa-random" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="my-3">
|
||||
<div>
|
||||
<strong>
|
||||
<Pashto opts={textOptions}>{v.verb.entry}</Pashto>
|
||||
{` `}-{` `}
|
||||
<Phonetics opts={textOptions}>{v.verb.entry}</Phonetics>
|
||||
</strong>
|
||||
{` `}
|
||||
<em>{v.verb.entry.c}</em>
|
||||
</div>
|
||||
<div className="ml-3">{v.verb.entry.e}</div>
|
||||
</div>
|
||||
</div>
|
||||
: <div className="alert alert-warning mb-4" role="alert">
|
||||
No such verbs available...
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div className="col-sm-6">
|
||||
<h6>Verb type:</h6>
|
||||
<div onChange={handleTypeSelection}>
|
||||
{verbTypes.map((type) => (
|
||||
<div key={type} className="form-check">
|
||||
<input
|
||||
className="form-check-input"
|
||||
type="radio"
|
||||
name="verb-type"
|
||||
checked={verbTypeShowing === type}
|
||||
value={type}
|
||||
/>
|
||||
<label className="form-check-label">
|
||||
{type}
|
||||
</label>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
{verbTypeShowing === "simple" &&
|
||||
<div className="mt-2">
|
||||
<ButtonSelect
|
||||
small
|
||||
options={[
|
||||
{ label: "regular", value: "regular" },
|
||||
{ label: "irregular", value: "irregular" },
|
||||
]}
|
||||
value={regularIrregular}
|
||||
handleChange={(p) => {
|
||||
setRegularIrregular(p as "regular" | "irregular");
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
}
|
||||
<h6 className="mt-2">Transitivity:</h6>
|
||||
<div onChange={handleTransitivitySelection}>
|
||||
{transitivities.map((transitivity) => (
|
||||
<div key={transitivity} className="form-check">
|
||||
<input
|
||||
className="form-check-input"
|
||||
type="radio"
|
||||
name="transitivity"
|
||||
checked={transitivityShowing === transitivity}
|
||||
value={transitivity}
|
||||
/>
|
||||
<label className="form-check-label">
|
||||
{transitivity}
|
||||
</label>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{conjugation && <ConjugationViewer
|
||||
conjugation={conjugation}
|
||||
textOptions={textOptions}
|
||||
/>}
|
||||
</div>
|
||||
</main>
|
||||
<Modal show={showingTextOptions} onHide={() => setShowingTextOptions(false)}>
|
||||
<Modal.Header closeButton>
|
||||
<Modal.Title>Settings</Modal.Title>
|
||||
</Modal.Header>
|
||||
<Modal.Body>
|
||||
<h6>Pashto Spelling</h6>
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{ label: "🇦🇫 Afghan", value: "Afghan" },
|
||||
{ label: "🇵🇰 Pakistani", value: "Pakistani" },
|
||||
]}
|
||||
value={textOptions.spelling}
|
||||
handleChange={(p) => {
|
||||
setTextOptions({
|
||||
...textOptions,
|
||||
spelling: p as "Afghan" | "Pakistani",
|
||||
});
|
||||
if (p === "Pakistani") setAayTailType("ey");
|
||||
}}
|
||||
/>
|
||||
{textOptions.spelling !== "Pakistani" && <>
|
||||
<h6 className="mt-3">Non-Inflecting Tail Spelling</h6>
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{ label: <InlinePs opts={textOptions}>{{ p: "ی", f: "ey" }}</InlinePs>, value: "ey" },
|
||||
{ label: <InlinePs opts={textOptions}>{{ p: "ای", f: "aay" }}</InlinePs>, value: "aay" },
|
||||
]}
|
||||
value={aayTailType}
|
||||
handleChange={(p) => setAayTailType(p as "ey" | "aay")}
|
||||
/>
|
||||
</>}
|
||||
<h6 className="mt-3">Diacritics</h6>
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{ label: "On", value: "true" },
|
||||
{ label: "Off", value: "false" },
|
||||
]}
|
||||
value={textOptions.diacritics.toString()}
|
||||
handleChange={(p) => setTextOptions({ ...textOptions, diacritics: p === "true" })}
|
||||
/>
|
||||
<h6 className="mt-3">Pashto Text Size</h6>
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{ label: "Normal", value: "normal" },
|
||||
{ label: "Large", value: "larger" },
|
||||
{ label: "X-Large", value: "largest" },
|
||||
]}
|
||||
value={textOptions.pTextSize}
|
||||
handleChange={(p) => setTextOptions({ ...textOptions, pTextSize: p as "normal" | "larger" | "largest" })}
|
||||
/>
|
||||
<h6 className="mt-3">Phonetics</h6>
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{ label: "LingDocs", value: "lingdocs" },
|
||||
{ label: "IPA", value: "ipa" },
|
||||
{ label: "ALAC", value: "alalc" },
|
||||
{ label: "None", value: "none" },
|
||||
]}
|
||||
value={textOptions.phonetics}
|
||||
handleChange={(p) => setTextOptions({ ...textOptions, phonetics: p as "lingdocs" | "ipa" | "none" | "alalc" })}
|
||||
/>
|
||||
</Modal.Body>
|
||||
<Modal.Footer>
|
||||
<button type="button" className="btn btn-primary clb" onClick={() => setShowingTextOptions(false)}>
|
||||
Close
|
||||
</button>
|
||||
</Modal.Footer>
|
||||
</Modal>
|
||||
<footer className="footer mt-auto py-3" style={{ backgroundColor: "#f5f5f5" }}>
|
||||
<div className="container">
|
||||
<span className="text-muted">Copyright © 2020 <a href="https://www.lingdocs.com">lingdocs.com</a> all rights reserverd</span>
|
||||
</div>
|
||||
</footer>
|
||||
</>
|
||||
}
|
||||
|
||||
export default App;
|
|
@ -0,0 +1,46 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import classNames from "classnames";
|
||||
|
||||
type PickerProps = {
|
||||
options: { label: any, value: string }[],
|
||||
value: string,
|
||||
handleChange: (payload: string) => void,
|
||||
small?: boolean,
|
||||
xSmall?: boolean,
|
||||
}
|
||||
|
||||
function ButtonSelect(props: PickerProps) {
|
||||
return (
|
||||
<div className="d-inline-flex flex-row justify-content-center">
|
||||
<div className="btn-group">
|
||||
{props.options.map((option) => (
|
||||
<button
|
||||
key={option.value}
|
||||
type="button"
|
||||
className={classNames(
|
||||
"btn",
|
||||
"btn-outline-secondary",
|
||||
{ active: props.value === option.value },
|
||||
{ "btn-sm": props.small || props.xSmall }
|
||||
)}
|
||||
onClick={() => props.handleChange(option.value)}
|
||||
style={props.xSmall ? {
|
||||
fontSize: "small",
|
||||
} : {}}
|
||||
>
|
||||
{option.label}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default ButtonSelect;
|
|
@ -0,0 +1,41 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
type Props = {
|
||||
label: string,
|
||||
options: { label: any, name: string, disabled?: boolean }[],
|
||||
checked: string[],
|
||||
handleChange: (p: { name: string, checked: boolean }) => void;
|
||||
}
|
||||
|
||||
export default function (props: Props) {
|
||||
function handleCheck(e: any) {
|
||||
props.handleChange({
|
||||
name: e.target.name as string,
|
||||
checked: e.target.checked as boolean,
|
||||
});
|
||||
}
|
||||
return (
|
||||
<div className="text-center">
|
||||
<span className="mr-2">{props.label}</span>
|
||||
{props.options.map((option) => (
|
||||
<div className="form-check form-check-inline">
|
||||
<input
|
||||
className="form-check-input"
|
||||
type="checkbox"
|
||||
name={option.name}
|
||||
onChange={handleCheck}
|
||||
checked={props.checked.includes(option.name)}
|
||||
disabled={option.disabled}
|
||||
/>
|
||||
<label className="form-check-label">{option.label}</label>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
|
@ -0,0 +1,383 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { useEffect, useReducer } from "react";
|
||||
import VerbInfo from "./verb-info/VerbInfo";
|
||||
import VerbFormDisplay from "./VerbFormDisplay";
|
||||
import ButtonSelect from "./ButtonSelect";
|
||||
import Hider from "./Hider";
|
||||
import { getForms } from "../lib/conjugation-forms";
|
||||
import PersonSelection from "./PersonSelection";
|
||||
import {
|
||||
personIsAllowed,
|
||||
randomPerson,
|
||||
incrementPerson,
|
||||
} from "../lib/misc-helpers";
|
||||
import * as T from "../types";
|
||||
|
||||
const VerbChoiceWarning = () => (
|
||||
<>
|
||||
<div className="alert alert-warning d-block mx-auto mt-3" role="alert" style={{ maxWidth: "500px" }}>
|
||||
<i className="fas fa-exclamation-triangle" /> This verb can be used in different ways!
|
||||
</div>
|
||||
<p>Choose which way to use it:</p>
|
||||
</>
|
||||
);
|
||||
|
||||
const stateLocalStorageName = "explorerState6";
|
||||
|
||||
type Difficulty = "beginner" | "advanced";
|
||||
// remember to increment the stateLocalStorageName whenever changing
|
||||
// the State type
|
||||
type State = {
|
||||
mode: "chart" | "sentence";
|
||||
subject: T.Person,
|
||||
object: T.Person,
|
||||
negative: boolean,
|
||||
compoundTypeSelected: "stative" | "dynamic";
|
||||
transitivitySelected: "transitive" | "grammatically transitive";
|
||||
compoundComplementVersionSelected: "sing" | "plur";
|
||||
showingStemsAndRoots: boolean;
|
||||
difficulty: Difficulty;
|
||||
formsOpened: string[];
|
||||
showingFormInfo: boolean;
|
||||
}
|
||||
|
||||
type Action = {
|
||||
type: "choose compound type",
|
||||
payload: "stative" | "dynamic",
|
||||
} | {
|
||||
type: "set forms opened",
|
||||
payload: string,
|
||||
} | {
|
||||
type: "set difficulty",
|
||||
payload: Difficulty,
|
||||
} | {
|
||||
type: "set compound complement version",
|
||||
payload: "sing" | "plur",
|
||||
} | {
|
||||
type: "toggle showingStemsAndRoots",
|
||||
} | {
|
||||
type: "setState",
|
||||
payload: State,
|
||||
} | {
|
||||
type: "setMode",
|
||||
payload: "chart" | "sentence",
|
||||
} | {
|
||||
type: "setPerson",
|
||||
payload: { setting: "subject" | "object", person: T.Person },
|
||||
} | {
|
||||
type: "randomPerson",
|
||||
payload: "subject" | "object",
|
||||
} | {
|
||||
type: "setShowingFormInfo",
|
||||
payload: boolean,
|
||||
} | {
|
||||
type: "setTransitivitySelected",
|
||||
payload: "transitive" | "grammatically transitive",
|
||||
} | {
|
||||
type: "setNegative",
|
||||
payload: boolean,
|
||||
};
|
||||
|
||||
function oppositeRole(x: "subject" | "object"): "subject" | "object" {
|
||||
return x === "subject" ? "object" : "subject";
|
||||
}
|
||||
|
||||
function reducer(state: State, action: Action): State {
|
||||
function applyFormOpen(
|
||||
payload: string,
|
||||
formsOpened: string[],
|
||||
): string[] {
|
||||
if (formsOpened.includes(payload)) {
|
||||
return formsOpened.filter((f) => f !== payload);
|
||||
}
|
||||
return [...formsOpened, payload];
|
||||
}
|
||||
function setPerson({ setting, person }: { setting: "subject" | "object", person: T.Person }): State {
|
||||
let newPerson = person;
|
||||
let otherPerson = state[oppositeRole(setting)];
|
||||
let otherSetting = oppositeRole(setting);
|
||||
while (!personIsAllowed(newPerson, otherPerson)) {
|
||||
otherPerson = incrementPerson(otherPerson);
|
||||
}
|
||||
return { ...state, [setting]: newPerson, [otherSetting]: otherPerson };
|
||||
}
|
||||
|
||||
switch(action.type) {
|
||||
case "choose compound type":
|
||||
return { ...state, compoundTypeSelected: action.payload };
|
||||
case "set forms opened":
|
||||
return {
|
||||
...state,
|
||||
formsOpened: applyFormOpen(action.payload, state.formsOpened),
|
||||
};
|
||||
case "set difficulty":
|
||||
return { ...state, difficulty: action.payload };
|
||||
case "set compound complement version":
|
||||
return { ...state, compoundComplementVersionSelected: action.payload };
|
||||
case "toggle showingStemsAndRoots":
|
||||
return { ...state, showingStemsAndRoots: !state.showingStemsAndRoots };
|
||||
case "setState":
|
||||
return action.payload;
|
||||
case "setMode":
|
||||
return { ...state, mode: action.payload };
|
||||
case "setPerson":
|
||||
return setPerson(action.payload);
|
||||
case "randomPerson":
|
||||
return {
|
||||
...state,
|
||||
[action.payload]: randomPerson(
|
||||
state[action.payload === "subject" ? "object" : "subject"]
|
||||
),
|
||||
};
|
||||
case "setShowingFormInfo":
|
||||
return {
|
||||
...state,
|
||||
showingFormInfo: action.payload,
|
||||
};
|
||||
case "setTransitivitySelected":
|
||||
return {
|
||||
...state,
|
||||
transitivitySelected: action.payload,
|
||||
};
|
||||
case "setNegative":
|
||||
return {
|
||||
...state,
|
||||
negative: action.payload,
|
||||
};
|
||||
default:
|
||||
throw new Error();
|
||||
}
|
||||
}
|
||||
|
||||
const initialState: State = {
|
||||
subject: 0,
|
||||
object: 2,
|
||||
negative: false,
|
||||
compoundTypeSelected: "stative",
|
||||
transitivitySelected: "transitive",
|
||||
mode: "chart",
|
||||
compoundComplementVersionSelected: "plur",
|
||||
difficulty: "beginner",
|
||||
showingStemsAndRoots: false,
|
||||
showingFormInfo: false,
|
||||
formsOpened: [],
|
||||
};
|
||||
|
||||
function ConjugationViewer({ conjugation, textOptions }: {
|
||||
conjugation: T.VerbOutput,
|
||||
textOptions: T.TextOptions,
|
||||
}) {
|
||||
const [state, dispatch] = useReducer(reducer, initialState);
|
||||
useEffect(() => {
|
||||
const stateRaw = localStorage.getItem(stateLocalStorageName);
|
||||
if (stateRaw) {
|
||||
try {
|
||||
const payload = JSON.parse(stateRaw) as State;
|
||||
dispatch({ type: "setState", payload });
|
||||
} catch (e) {
|
||||
console.error("error parsing saved state JSON", e);
|
||||
}
|
||||
}
|
||||
}, []);
|
||||
const verbConj1 = ("dynamic" in conjugation)
|
||||
? conjugation[state.compoundTypeSelected]
|
||||
: ("transitive" in conjugation)
|
||||
? conjugation[state.transitivitySelected === "transitive" ? "transitive" : "grammaticallyTransitive"]
|
||||
: conjugation;
|
||||
const verbConj = (verbConj1.singularForm && state.compoundComplementVersionSelected === "sing")
|
||||
? verbConj1.singularForm
|
||||
: verbConj1;
|
||||
|
||||
useEffect(() => {
|
||||
localStorage.setItem(stateLocalStorageName, JSON.stringify(state));
|
||||
});
|
||||
|
||||
const filterDifficulty = (f: T.DisplayForm): boolean => (
|
||||
state.difficulty === "advanced" || !f.advanced
|
||||
);
|
||||
const forms = getForms({
|
||||
conj: verbConj,
|
||||
filterFunc: filterDifficulty,
|
||||
mode: state.mode,
|
||||
subject: state.subject,
|
||||
object: state.object,
|
||||
negative: state.negative,
|
||||
});
|
||||
return <div className="mb-4">
|
||||
{"transitive" in conjugation && <div className="text-center my-2">
|
||||
<VerbChoiceWarning />
|
||||
<div>
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{
|
||||
label: "Transitive", value: "transitive" },
|
||||
{
|
||||
label: "Grammatically Transitive",
|
||||
value: "grammatically transitive",
|
||||
},
|
||||
]}
|
||||
value={state.transitivitySelected}
|
||||
handleChange={(p) => dispatch({ type: "setTransitivitySelected", payload: p as "transitive" | "grammatically transitive" })}
|
||||
/>
|
||||
</div>
|
||||
</div>}
|
||||
{"dynamic" in conjugation && <div className="text-center my-2">
|
||||
<VerbChoiceWarning />
|
||||
<div>
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{ label: "Dynamic", value: "dynamic" },
|
||||
{
|
||||
label: `${conjugation.info.type === "dynamic or generative stative compound" ? "Generative " : ""}Stative`,
|
||||
value: "stative",
|
||||
},
|
||||
]}
|
||||
value={state.compoundTypeSelected}
|
||||
handleChange={(p) => dispatch({ type: "choose compound type", payload: p as "dynamic" | "stative" })}
|
||||
/>
|
||||
</div>
|
||||
</div>}
|
||||
{verbConj1.singularForm && <div className="text-center my-2">
|
||||
<VerbChoiceWarning />
|
||||
<div>
|
||||
<ButtonSelect
|
||||
small
|
||||
options={[
|
||||
// @ts-ignore - TODO - make this a bit safer
|
||||
{ label: `Sing. ${verbConj1.info.objComplement.entry.p}`, value: "sing" },
|
||||
// @ts-ignore - TODO - make this a bit safer
|
||||
{ label: `Plur. ${verbConj1.info.objComplement.plural.p}`, value: "plur" },
|
||||
]}
|
||||
value={state.compoundComplementVersionSelected}
|
||||
handleChange={(p) => dispatch({ type: "set compound complement version", payload: p as "sing" | "plur" })}
|
||||
/>
|
||||
</div>
|
||||
</div>}
|
||||
<VerbInfo
|
||||
info={verbConj.info}
|
||||
textOptions={textOptions}
|
||||
showingStemsAndRoots={state.showingStemsAndRoots}
|
||||
toggleShowingSar={() => dispatch({ type: "toggle showingStemsAndRoots" })}
|
||||
/>
|
||||
<div className="d-flex flex-row align-items-center justify-content-around flex-wrap mt-4 mb-2">
|
||||
<div className="mb-3">
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{ label: `Charts`, value: "chart" },
|
||||
{ label: `Sentences`, value: "sentence" },
|
||||
]}
|
||||
value={state.mode}
|
||||
handleChange={(p) => dispatch({ type: "setMode", payload: p as "chart" | "sentence" })}
|
||||
/>
|
||||
</div>
|
||||
<div className="mb-3">
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{ label: "👶 Beginner", value: "beginner" },
|
||||
{ label: "🤓 Advanced", value: "advanced" },
|
||||
]}
|
||||
value={state.difficulty}
|
||||
handleChange={(p) => dispatch({ type: "set difficulty", payload: p as Difficulty })}
|
||||
/>
|
||||
</div>
|
||||
<div className="form-group form-check">
|
||||
<input
|
||||
type="checkbox"
|
||||
className="form-check-input"
|
||||
checked={state.showingFormInfo}
|
||||
onChange={(e) => {
|
||||
dispatch({ type: "setShowingFormInfo", payload: e.target.checked })
|
||||
}}
|
||||
/>
|
||||
<label className="form-check-label">Show Form Info</label>
|
||||
</div>
|
||||
</div>
|
||||
{state.mode === "sentence" &&
|
||||
<div className="position-sticky pb-1" style={{ top: 0, background: "var(--theme-shade)", zIndex: 1000 }}>
|
||||
<PersonSelection
|
||||
subject={state.subject}
|
||||
object={state.object}
|
||||
info={verbConj.info}
|
||||
handleChange={(payload: { setting: "subject" | "object", person: T.Person }) => dispatch({
|
||||
type: "setPerson", payload,
|
||||
})}
|
||||
handleRandom={(payload: "subject" | "object") => dispatch({
|
||||
type: "randomPerson", payload,
|
||||
})}
|
||||
textOptions={textOptions}
|
||||
/>
|
||||
<div className="mt-2 text-center">
|
||||
<ButtonSelect
|
||||
options={[
|
||||
{ label: "Pos.", value: "false" },
|
||||
{ label: "Neg.", value: "true" },
|
||||
]}
|
||||
value={state.negative.toString()}
|
||||
handleChange={(p) => dispatch({ type: "setNegative", payload: p === "true" })}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<FormsDisplay
|
||||
forms={forms}
|
||||
state={state}
|
||||
handleChange={(payload: string) => dispatch({ type: "set forms opened", payload })}
|
||||
verbConj={verbConj}
|
||||
textOptions={textOptions}
|
||||
/>
|
||||
</div>;
|
||||
}
|
||||
|
||||
function FormsDisplay({ forms, state, handleChange, textOptions, verbConj }: {
|
||||
verbConj: T.VerbConjugation,
|
||||
forms: T.DisplayFormItem[],
|
||||
state: State,
|
||||
handleChange: (p: string) => void,
|
||||
textOptions: T.TextOptions,
|
||||
}) {
|
||||
function drawLevel(forms: T.DisplayFormItem[], level: number) {
|
||||
return <div className="mt-3">
|
||||
{forms.map((f, i) => {
|
||||
if ("content" in f && f.content.length === 0) {
|
||||
return null;
|
||||
}
|
||||
const showDividerLine = (item: T.DisplayFormItem, index: number): boolean => {
|
||||
return (index !== 0) && ("content" in item || !item.aspect || (item.aspect === "imperfective"));
|
||||
};
|
||||
return <div key={`level1-${i}`}>
|
||||
{showDividerLine(f, i) && <hr />}
|
||||
<Hider
|
||||
label={f.label}
|
||||
hLevel={5+level}
|
||||
aspect={"aspect" in f ? f.aspect : undefined}
|
||||
showing={state.formsOpened.includes(f.label)}
|
||||
handleChange={() => handleChange(f.label)}
|
||||
>
|
||||
{"content" in f ?
|
||||
drawLevel(f.content, level + 1)
|
||||
:
|
||||
<VerbFormDisplay
|
||||
displayForm={f}
|
||||
textOptions={textOptions}
|
||||
showingFormInfo={state.showingFormInfo}
|
||||
info={verbConj.info}
|
||||
/>
|
||||
}
|
||||
</Hider>
|
||||
</div>;
|
||||
})}
|
||||
</div>
|
||||
}
|
||||
return <div style={{ marginBottom: "5rem" }}>
|
||||
{drawLevel(forms, 0)}
|
||||
</div>;
|
||||
}
|
||||
|
||||
export default ConjugationViewer;
|
|
@ -0,0 +1,42 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import Pashto from "./Pashto";
|
||||
import Phonetics from "./Phonetics";
|
||||
import * as T from "../types";
|
||||
|
||||
export default function({
|
||||
children,
|
||||
ex,
|
||||
opts,
|
||||
}: {
|
||||
ex?: T.PsString | T.PsString[],
|
||||
children: T.PsString | T.PsString[],
|
||||
opts: T.TextOptions,
|
||||
}) {
|
||||
const examples = children || ex;
|
||||
const Example = ({ children: text }: { children: T.PsString }) => (
|
||||
<div className="mt-1 mb-3">
|
||||
<div>
|
||||
<Pashto opts={opts}>{text}</Pashto>
|
||||
</div>
|
||||
<div>
|
||||
<Phonetics opts={opts}>{text}</Phonetics>
|
||||
</div>
|
||||
{text.e && <div className="text-muted">
|
||||
{text.e}
|
||||
</div>}
|
||||
</div>
|
||||
);
|
||||
return Array.isArray(examples) ?
|
||||
<div>
|
||||
{examples.map((example, i) => <Example key={i}>{example}</Example>)}
|
||||
</div>
|
||||
:
|
||||
<Example>{examples}</Example>;
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { createElement } from "react";
|
||||
import classNames from "classnames";
|
||||
import * as T from "../types";
|
||||
|
||||
const caretRight = <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" className="bi bi-caret-right-fill" viewBox="0 0 16 16">
|
||||
<path d="M12.14 8.753l-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z"/>
|
||||
</svg>
|
||||
const caretDown = <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" className="bi bi-caret-down-fill" viewBox="0 0 16 16">
|
||||
<path d="M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z"/>
|
||||
</svg>
|
||||
|
||||
const defaultLevel = 4;
|
||||
const indentAfterLevel = 5;
|
||||
|
||||
function Hider(props: {
|
||||
label: string,
|
||||
showing: boolean,
|
||||
aspect?: T.Aspect,
|
||||
handleChange: () => void,
|
||||
children: React.ReactNode,
|
||||
hLevel?: number,
|
||||
}) {
|
||||
const hLev = Math.min((props.hLevel ? props.hLevel : defaultLevel), 6);
|
||||
const extraMargin = (props.hLevel && (props.hLevel > indentAfterLevel))
|
||||
? `ml-${(props.hLevel - indentAfterLevel) + 1}`
|
||||
: "";
|
||||
return <div className="mb-3">
|
||||
{createElement(
|
||||
`h${hLev}`,
|
||||
{
|
||||
onClick: props.handleChange,
|
||||
className: classNames(
|
||||
"clickable",
|
||||
extraMargin,
|
||||
),
|
||||
},
|
||||
<>
|
||||
{props.showing ? caretDown : caretRight}
|
||||
{` `}
|
||||
{props.aspect
|
||||
? <i className={`fas fa-${props.aspect === "imperfective" ? "video" : "camera"} mr-2`} />
|
||||
: ""}
|
||||
{props.label}
|
||||
</>,
|
||||
)}
|
||||
{props.showing && props.children}
|
||||
</div>
|
||||
}
|
||||
|
||||
export default Hider;
|
|
@ -0,0 +1,115 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { useState } from "react";
|
||||
import Pashto from "./Pashto";
|
||||
import Phonetics from "./Phonetics";
|
||||
import { Modal } from "react-bootstrap";
|
||||
import * as T from "../types";
|
||||
|
||||
const explanation = (inf: T.Inflections, textOptions: T.TextOptions) => {
|
||||
// @ts-ignore
|
||||
const w = inf["masc" in inf ? "masc" : "fem"][0][0];
|
||||
return <>
|
||||
<p>In Pashto, <strong>nouns, pronouns, and adjectives</strong> get inflected when they are either:</p>
|
||||
<ul>
|
||||
<li>Plural</li>
|
||||
<li>Sandwiched with a preposition/postposition (oblique), or</li>
|
||||
<li>The subject of a transitive past tense verb</li>
|
||||
</ul>
|
||||
<p>Whatever the reason, the inflection looks the same.</p>
|
||||
<h5>Double Inflection</h5>
|
||||
<p>If there are <em>2 reasons</em> to inflect (ie. if a noun is plural <em>and</em> the subject of a transitive past tense verb) then you use the <strong>second inflection</strong>.</p>
|
||||
<h5>Notes:</h5>
|
||||
<p><small>Pronouns don't get inflected for being plural. Instead, they have a seperate plural form.</small></p>
|
||||
<p><small>Not all nouns, pronouns, and adjectives can inflect. But if you're seeing this table here, it means that <Pashto opts={textOptions}>{w}</Pashto> does inflect.</small></p>
|
||||
<p><small>Irregular nouns like پښتون or مېلمه often only take the 1st inflection when they're plural, and not for the other two reasons, depending on dialect. When there are two reasons to inflect, these will always take the double inflection.</small></p>
|
||||
<p><small>For prepositional/postpositional sandwiches of location like په ... کې and په ... باندې the first inflection of nouns (not of adjectives/pronouns) often doesn't happen. The second one always will though.</small></p>
|
||||
</>
|
||||
}
|
||||
|
||||
const InflectionTable = ({ inf, textOptions }: {
|
||||
inf: T.Inflections,
|
||||
textOptions: T.TextOptions,
|
||||
}) => {
|
||||
const [showingExplanation, setShowingExplanation] = useState(false);
|
||||
/* istanbul ignore next */ // Insanely can't see the modal to close it
|
||||
const handleCloseExplanation = () => setShowingExplanation(false);
|
||||
const handleShowExplanation = () => setShowingExplanation(true);
|
||||
return (
|
||||
<div className="mt-4">
|
||||
<div style={{ display: "flex", justifyContent: "space-between" }}>
|
||||
<h5>Inflections:</h5>
|
||||
<div className="clickable mr-2" onClick={handleShowExplanation} data-testid="help-button">
|
||||
<i className={`fa fa-question-circle`}></i>
|
||||
</div>
|
||||
</div>
|
||||
<table className="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
{"masc" in inf && <th>Masculine</th>}
|
||||
{"fem" in inf && <th>Feminine</th>}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{["Plain", "1st", "2nd"].map((title, i) => (
|
||||
<tr key={title}>
|
||||
<th scope="row" className="thin-column">{title}</th>
|
||||
{"masc" in inf && <td>
|
||||
{inf.masc[i].map((w, j) => (
|
||||
<div key={`${i}-${j}-inflection-result`}>
|
||||
<div>
|
||||
<Pashto opts={textOptions}>
|
||||
{w}
|
||||
</Pashto>
|
||||
</div>
|
||||
<div>
|
||||
<Phonetics opts={textOptions}>
|
||||
{w}
|
||||
</Phonetics>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</td>}
|
||||
{"fem" in inf && <td>
|
||||
{inf.fem[i].map((w, j) => (
|
||||
<div key={`${i}-${j}-inflection-result`}>
|
||||
<div>
|
||||
<Pashto opts={textOptions}>
|
||||
{w}
|
||||
</Pashto>
|
||||
</div>
|
||||
<div>
|
||||
<Phonetics opts={textOptions}>
|
||||
{w}
|
||||
</Phonetics>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</td>}
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
<Modal show={showingExplanation} onHide={handleCloseExplanation}>
|
||||
<Modal.Header closeButton>
|
||||
<Modal.Title>About Inflections</Modal.Title>
|
||||
</Modal.Header>
|
||||
<Modal.Body>{explanation(inf, textOptions)}</Modal.Body>
|
||||
<Modal.Footer>
|
||||
<button type="button" className="btn btn-primary clb" onClick={handleCloseExplanation}>
|
||||
Close
|
||||
</button>
|
||||
</Modal.Footer>
|
||||
</Modal>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default InflectionTable;
|
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import Pashto from "./Pashto";
|
||||
import Phonetics from "./Phonetics";
|
||||
import * as T from "../types";
|
||||
|
||||
function InlinePs ({
|
||||
children,
|
||||
ps,
|
||||
opts,
|
||||
}: {
|
||||
ps?: T.PsString,
|
||||
children: T.PsString,
|
||||
opts: T.TextOptions,
|
||||
}) {
|
||||
const text = children || ps;
|
||||
return (
|
||||
<span>
|
||||
<Pashto opts={opts}>{text}</Pashto>
|
||||
{opts.phonetics !== "none" && " - "}
|
||||
<Phonetics opts={opts}>{text}</Phonetics>
|
||||
{text.e && <span className="text-muted"> ({text.e})</span>}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
||||
export default InlinePs;
|
|
@ -0,0 +1,34 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
convertAfToPkSpelling,
|
||||
} from "../lib/convert-spelling";
|
||||
import {
|
||||
phoneticsToDiacritics
|
||||
} from "../lib/phonetics-to-diacritics";
|
||||
import * as T from "../types";
|
||||
|
||||
const Pashto = ({ opts, children: text }: {
|
||||
opts: T.TextOptions,
|
||||
children: T.PsString,
|
||||
}) => {
|
||||
const p = opts.diacritics
|
||||
? (phoneticsToDiacritics(text.p, text.f) || text.p)
|
||||
: text.p;
|
||||
const style = opts.pTextSize === "normal"
|
||||
? undefined
|
||||
: { fontSize: opts.pTextSize === "larger" ? "large" : "larger" };
|
||||
return (
|
||||
<span className="p-text" dir="rtl" style={style}>
|
||||
{opts.spelling === "Afghan" ? p : convertAfToPkSpelling(p)}
|
||||
</span>
|
||||
);
|
||||
};
|
||||
|
||||
export default Pashto;
|
|
@ -0,0 +1,60 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import * as T from "../types";
|
||||
|
||||
const persInfs: {
|
||||
label: string;
|
||||
value: T.PersonInflectionsField;
|
||||
}[] = [
|
||||
{
|
||||
label: "masc. sing.",
|
||||
value: "mascSing",
|
||||
},
|
||||
{
|
||||
label: "fem. sing.",
|
||||
value: "femSing",
|
||||
},
|
||||
{
|
||||
label: "masc. plur.",
|
||||
value: "mascPlur",
|
||||
},
|
||||
{
|
||||
label: "fem. plur",
|
||||
value: "femPlur",
|
||||
}
|
||||
];
|
||||
|
||||
function PersInfsPicker(props: {
|
||||
transitivity: T.Transitivity,
|
||||
persInf: T.PersonInflectionsField,
|
||||
handleChange: (persInf: T.PersonInflectionsField) => void,
|
||||
}) {
|
||||
function hChange(e: any) {
|
||||
const newValue = e.target.value as T.PersonInflectionsField;
|
||||
props.handleChange(newValue);
|
||||
}
|
||||
return (
|
||||
<div className="my-2" style={{ display: "flex", flexDirection: "row", alignItems: "center", justifyContent: "center" }}>
|
||||
<div className="mr-2">
|
||||
When the <strong>{props.transitivity === "intransitive" ? "subject" : "object"}</strong> is
|
||||
</div>
|
||||
<div>
|
||||
<select className="form-control form-control-sm d-inline-block" value={props.persInf} id="verb_info_pers_select" onChange={hChange}>
|
||||
{persInfs.map((pers) => (
|
||||
<option key={pers.value} value={pers.value}>
|
||||
{pers.label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default PersInfsPicker;
|
|
@ -0,0 +1,107 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { persons } from "../lib/grammar-units";
|
||||
import InlinePs from "../components/InlinePs";
|
||||
import * as T from "../types";
|
||||
|
||||
function PersonSelect(props: {
|
||||
setting: "subject" | "object",
|
||||
value: T.Person,
|
||||
locked?: boolean,
|
||||
handleChange: (person: T.Person) => void,
|
||||
handleRandom: () => void,
|
||||
}) {
|
||||
return (
|
||||
!props.locked ? <div className="input-group" style={{ maxWidth: "30rem" }}>
|
||||
<select
|
||||
className="custom-select"
|
||||
value={props.value}
|
||||
onChange={(e: any) => props.handleChange(
|
||||
parseInt(e.target.value) as T.Person
|
||||
)}
|
||||
>
|
||||
{persons.map((p) => (
|
||||
<option value={p.person} key={"subject"+p.person}>
|
||||
{p.label[props.setting]}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
<div className="input-group-append" onClick={props.handleRandom}>
|
||||
<button className="btn btn-secondary">
|
||||
<i className="fas fa-random" />
|
||||
</button>
|
||||
</div>
|
||||
</div> : <input
|
||||
className="form-control"
|
||||
type="text"
|
||||
placeholder={persons[props.value].label[props.setting]}
|
||||
readOnly
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
function PersonSelection(props: {
|
||||
subject: T.Person,
|
||||
object: T.Person,
|
||||
info: T.NonComboVerbInfo,
|
||||
handleRandom: (setting: "subject" | "object") => void,
|
||||
handleChange: (payload: { setting: "subject" | "object", person: T.Person }) => void,
|
||||
textOptions: T.TextOptions,
|
||||
}) {
|
||||
function getComp(comp: T.ObjComplement) {
|
||||
const c = comp.plural
|
||||
? comp.plural
|
||||
: comp.entry;
|
||||
return <InlinePs opts={props.textOptions}>{c}</InlinePs>;
|
||||
}
|
||||
return (
|
||||
<div className="row align-items-baseline">
|
||||
<div className="col">
|
||||
<label className="form-label">
|
||||
<strong>{props.info.transitivity === "intransitive" ? "Subject" : "Subject/Agent"}</strong>
|
||||
</label>
|
||||
<PersonSelect
|
||||
setting="subject"
|
||||
value={props.subject}
|
||||
handleChange={(person: T.Person) => props.handleChange({ setting: "subject", person })}
|
||||
handleRandom={() => props.handleRandom("subject")}
|
||||
/>
|
||||
</div>
|
||||
{(props.info.type === "dynamic compound" || props.info.type === "generative stative compound") ? <div className="col">
|
||||
<label className="form-label"><strong>Object is the complement ({getComp(props.info.objComplement)})</strong></label>
|
||||
<PersonSelect
|
||||
setting="object"
|
||||
value={props.info.objComplement.person}
|
||||
locked
|
||||
handleChange={(person: T.Person) => props.handleChange({ setting: "object", person })}
|
||||
handleRandom={() => props.handleRandom("object")}
|
||||
/>
|
||||
</div> : props.info.transitivity === "transitive" ? <div className="col">
|
||||
<label className="form-label"><strong>Object</strong></label>
|
||||
<PersonSelect
|
||||
setting="object"
|
||||
value={props.object}
|
||||
handleChange={(person: T.Person) => props.handleChange({ setting: "object", person })}
|
||||
handleRandom={() => props.handleRandom("object")}
|
||||
/>
|
||||
</div> : props.info.transitivity === "grammatically transitive" ? <div className="col">
|
||||
<label className="form-label"><strong>Object is unspoken</strong></label>
|
||||
<PersonSelect
|
||||
setting="object"
|
||||
value={10}
|
||||
locked
|
||||
handleChange={(person: T.Person) => props.handleChange({ setting: "object", person })}
|
||||
handleRandom={() => props.handleRandom("object")}
|
||||
/>
|
||||
</div> : null}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default PersonSelection;
|
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
translatePhonetics,
|
||||
} from "../lib/translate-phonetics";
|
||||
import * as T from "../types";
|
||||
|
||||
const Phonetics = ({ opts, children: text }: {
|
||||
opts: T.TextOptions,
|
||||
children: T.PsString,
|
||||
}) => {
|
||||
if (opts.phonetics === "none") {
|
||||
return null;
|
||||
}
|
||||
return <span className="f-text">
|
||||
{opts.phonetics === "lingdocs"
|
||||
? text.f
|
||||
: translatePhonetics(text.f, {
|
||||
dialect: opts.dialect,
|
||||
system: opts.phonetics,
|
||||
})}
|
||||
</span>
|
||||
};
|
||||
|
||||
export default Phonetics;
|
|
@ -0,0 +1,26 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import Pashto from "./Pashto";
|
||||
import Phonetics from "./Phonetics";
|
||||
import * as T from "../types";
|
||||
|
||||
function SingleItemDisplay({ item, textOptions, english }: {
|
||||
item: T.PsString,
|
||||
textOptions: T.TextOptions,
|
||||
english?: T.EnglishBlock | string,
|
||||
}) {
|
||||
const eng = Array.isArray(english) ? english[0][0] : english;
|
||||
return <div className="text-center mt-3 mb-2">
|
||||
<div><Pashto opts={textOptions}>{item}</Pashto></div>
|
||||
<div><Phonetics opts={textOptions}>{item}</Phonetics></div>
|
||||
{eng && <div>{eng}</div>}
|
||||
</div>;
|
||||
}
|
||||
|
||||
export default SingleItemDisplay;
|
|
@ -0,0 +1,113 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { useEffect, useState } from "react";
|
||||
import PersonInfsPicker from "./PersInfsPicker";
|
||||
import InflectionsTable from "./InflectionsTable";
|
||||
import SingleItemDisplay from "./SingleItemDisplay";
|
||||
import ButtonSelect from "./ButtonSelect";
|
||||
import VerbTable from "./VerbTable";
|
||||
import {
|
||||
getEnglishPersonInfo,
|
||||
isSentenceForm,
|
||||
} from "../lib/misc-helpers";
|
||||
import {
|
||||
isAllOne,
|
||||
} from "../lib/p-text-helpers";
|
||||
import * as T from "../types";
|
||||
|
||||
function agreementInfo(info: T.NonComboVerbInfo, displayForm: T.DisplayForm): React.ReactNode {
|
||||
if (!displayForm.past) {
|
||||
return null;
|
||||
}
|
||||
const beginning = "Verb agrees with the ";
|
||||
const agreesWith = (info.transitivity !== "intransitive" && displayForm.past && !displayForm.passive)
|
||||
? "object"
|
||||
: "subject";
|
||||
const extraExplanation = (!displayForm.past)
|
||||
? ""
|
||||
: (info.transitivity === "grammatically transitive")
|
||||
? " which is an unwritten 3rd pers. masc. object."
|
||||
: (info.type === "generative stative compound" || info.type === "dynamic compound")
|
||||
? ` which is the complement ${info.objComplement.plural ? info.objComplement.plural.p : info.objComplement.entry.p} (${getEnglishPersonInfo(info.objComplement.person)})`
|
||||
: ""
|
||||
return <><strong>Note:</strong> {beginning}<strong>{agreesWith}</strong>{extraExplanation}</>
|
||||
}
|
||||
|
||||
function VerbFormDisplay({ displayForm, textOptions, info, showingFormInfo, english }: {
|
||||
displayForm: T.DisplayForm | T.VerbForm,
|
||||
english?: T.EnglishBlock | string,
|
||||
textOptions: T.TextOptions,
|
||||
showingFormInfo: boolean,
|
||||
info?: T.NonComboVerbInfo,
|
||||
}) {
|
||||
const [persInf, setPersInf] = useState<T.PersonInflectionsField>("mascSing");
|
||||
const [length, setLength] = useState<T.Length>("long");
|
||||
const [showingExplanation, setShowingExplanation] = useState<boolean>(false);
|
||||
const block = "label" in displayForm ? displayForm.form : displayForm;
|
||||
const chosenPersInf = "mascSing" in block
|
||||
? block[persInf]
|
||||
: block;
|
||||
const form = "long" in chosenPersInf
|
||||
? chosenPersInf[length] || chosenPersInf.short
|
||||
: chosenPersInf;
|
||||
useEffect(() => {
|
||||
if (length === "mini" && !("mini" in chosenPersInf)) {
|
||||
setLength("long");
|
||||
}
|
||||
setPersInf("mascSing");
|
||||
setShowingExplanation(false);
|
||||
}, [block]);
|
||||
const hasVariations = (!("masc" in form)) && (!("p" in form)) && (!isSentenceForm(form)) && !isAllOne(form as T.VerbBlock | T.ImperativeBlock);
|
||||
return <>
|
||||
{(("label" in displayForm && info) && showingFormInfo) && <>
|
||||
{(hasVariations || displayForm.past) && <p className="small text-muted">
|
||||
{agreementInfo(info, displayForm)}
|
||||
</p>}
|
||||
<div className="mb-1 d-flex justify-content-between align-items-center">
|
||||
<samp>Formula: {displayForm.formula}</samp>
|
||||
<button className="btn btn-sm btn-outline-secondary text-nowrap ml-2" onClick={() => setShowingExplanation(!showingExplanation)}>
|
||||
<i className={`fas fa-caret-${showingExplanation ? "down" : "right"}`} /> Meaning
|
||||
</button>
|
||||
</div>
|
||||
{showingExplanation && <div className="my-2">
|
||||
{displayForm.explanation}
|
||||
</div>}
|
||||
</>}
|
||||
{"long" in chosenPersInf &&
|
||||
<div className="text-center">
|
||||
<ButtonSelect
|
||||
small
|
||||
options={[
|
||||
{ label: "Long", value: "long" },
|
||||
{ label: "Short", value: "short" },
|
||||
..."mini" in chosenPersInf ? [{
|
||||
label: "Mini", value: "mini",
|
||||
}] : [],
|
||||
]}
|
||||
value={length}
|
||||
handleChange={(p) => setLength(p as T.Length)}
|
||||
/>
|
||||
</div>
|
||||
}
|
||||
{("mascSing" in block && info) && <PersonInfsPicker
|
||||
persInf={persInf}
|
||||
handleChange={(p) => setPersInf(p)}
|
||||
transitivity={info.transitivity}
|
||||
/>}
|
||||
{"masc" in form ?
|
||||
<InflectionsTable inf={form} textOptions={textOptions} />
|
||||
: "p" in form ?
|
||||
<SingleItemDisplay item={form} english={english} textOptions={textOptions} />
|
||||
:
|
||||
<VerbTable block={form} english={english} textOptions={textOptions} />
|
||||
}
|
||||
</>
|
||||
}
|
||||
|
||||
export default VerbFormDisplay;
|
|
@ -0,0 +1,159 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { useState, useEffect } from "react";
|
||||
import Pashto from "./Pashto";
|
||||
import Phonetics from "./Phonetics";
|
||||
import {
|
||||
psStringEquals,
|
||||
isAllOne,
|
||||
addEnglish,
|
||||
} from "../lib/p-text-helpers";
|
||||
import { isSentenceForm } from "../lib/misc-helpers";
|
||||
import * as T from "../types";
|
||||
|
||||
const arrowDown = <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" className="bi bi-caret-down" viewBox="0 0 20 20">
|
||||
<path fillRule="evenodd" d="M3.204 5L8 10.481 12.796 5H3.204zm-.753.659l4.796 5.48a1 1 0 0 0 1.506 0l4.796-5.48c.566-.647.106-1.659-.753-1.659H3.204a1 1 0 0 0-.753 1.659z"/>
|
||||
</svg>;
|
||||
|
||||
const genderAbbrev = (gender: "masc" | "fem" | undefined): " m." | " f." | "" => (
|
||||
gender === "masc"
|
||||
? " m."
|
||||
: gender === "fem"
|
||||
? " f."
|
||||
: ""
|
||||
);
|
||||
|
||||
const minifyTableGender = (block: T.VerbBlock | T.ImperativeBlock): Array<T.PersonLine | {
|
||||
masc: T.PersonLine,
|
||||
fem: T.PersonLine,
|
||||
}> => {
|
||||
// @ts-ignore
|
||||
return block.reduce((table, person, i, src) => {
|
||||
const isFem = i % 2 !== 0;
|
||||
if (isFem) {
|
||||
return table;
|
||||
}
|
||||
const femPersAhead = src[i+1];
|
||||
const femPersIsTheSame = (
|
||||
psStringEquals(person[0][0], femPersAhead[0][0]) &&
|
||||
psStringEquals(person[1][0], femPersAhead[1][0])
|
||||
);
|
||||
if (femPersAhead && !femPersIsTheSame) {
|
||||
return [...table, {
|
||||
masc: person,
|
||||
fem: femPersAhead,
|
||||
}];
|
||||
}
|
||||
return [...table, person];
|
||||
}, []);
|
||||
};
|
||||
|
||||
function Cell({ item, textOptions, center, noBorder }: {
|
||||
item: T.ArrayOneOrMore<T.PsString>,
|
||||
textOptions: T.TextOptions,
|
||||
center?: boolean,
|
||||
noBorder?: boolean,
|
||||
}) {
|
||||
const [version, setVersion] = useState(0);
|
||||
useEffect(() => setVersion(0), [item]);
|
||||
function advanceVersion() {
|
||||
setVersion((version + 1) % item.length);
|
||||
}
|
||||
const w = item[version] || item[0];
|
||||
return (
|
||||
<td style={noBorder ? { border: "none" } : {}}>
|
||||
<div style={{
|
||||
display: "flex",
|
||||
flexDirection: "row",
|
||||
flexWrap: "wrap",
|
||||
justifyContent: center ? "center" : "space-between",
|
||||
alignItems: "center",
|
||||
}}>
|
||||
<div>
|
||||
<div>
|
||||
<Pashto opts={textOptions}>{w}</Pashto>
|
||||
</div>
|
||||
<div>
|
||||
<Phonetics opts={textOptions}>{w}</Phonetics>
|
||||
</div>
|
||||
{w.e && <div className="text-muted">{w.e}</div>}
|
||||
</div>
|
||||
{item.length > 1 &&
|
||||
<button className="btn btn-sm btn-light mx-2" onClick={advanceVersion}>
|
||||
ver. {version + 1}/{item.length} {arrowDown}
|
||||
</button>
|
||||
}
|
||||
</div>
|
||||
</td>
|
||||
);
|
||||
}
|
||||
|
||||
function VerbTable({ block, textOptions, english }: {
|
||||
block: T.VerbBlock | T.ImperativeBlock | T.ArrayOneOrMore<T.PsString>,
|
||||
english?: T.EnglishBlock | string,
|
||||
textOptions: T.TextOptions,
|
||||
}) {
|
||||
const blockWEng = english ? addEnglish(english, block) : block;
|
||||
if (isSentenceForm(blockWEng) || isAllOne(blockWEng as T.VerbBlock | T.ImperativeBlock)) {
|
||||
const item = isSentenceForm(blockWEng)
|
||||
? block as unknown as T.ArrayOneOrMore<T.PsString>
|
||||
: (() => {
|
||||
const b = block as T.ImperativeBlock | T.VerbBlock
|
||||
return b[0][0];
|
||||
})();
|
||||
return <table className="table text-center">
|
||||
<tbody>
|
||||
<tr>
|
||||
<Cell item={item} textOptions={textOptions} center noBorder />
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
const bl = blockWEng as T.VerbBlock | T.ImperativeBlock;
|
||||
const b = minifyTableGender(bl);
|
||||
return <table className="table mt-2" style={{ tableLayout: "fixed" }}>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" style={{ width: "3rem" }}></th>
|
||||
<th scope="col">Singular</th>
|
||||
<th scope="col">Plural</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{b.reduce((rows: React.ReactNode[], person, i, arr) => {
|
||||
function drawRow({ line, gender }: { line: T.PersonLine, gender?: "masc" | "fem" }) {
|
||||
const pers = arr.length > 1 ? ["1st", "2nd", "3rd"] : ["2nd"];
|
||||
const rowLabel = `${pers[i]}${genderAbbrev(gender)}`;
|
||||
const color = !gender
|
||||
? "inherit"
|
||||
: gender === "masc"
|
||||
? "#78c8ed"
|
||||
: "#ff99aa";
|
||||
|
||||
return (
|
||||
<tr key={`${i}${gender}`}>
|
||||
<th scope="row" style={{ color }}>{rowLabel}</th>
|
||||
<Cell item={line[0]} textOptions={textOptions} />
|
||||
<Cell item={line[1]} textOptions={textOptions} />
|
||||
</tr>
|
||||
);
|
||||
}
|
||||
return "masc" in person
|
||||
? [
|
||||
...rows,
|
||||
drawRow({ line: person.masc, gender: "masc" }),
|
||||
drawRow({ line: person.fem, gender: "fem" }),
|
||||
]
|
||||
: [...rows, drawRow({ line: person })];
|
||||
}, [])}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
|
||||
export default VerbTable;
|
|
@ -0,0 +1,198 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
CSSProperties,
|
||||
useState,
|
||||
} from "react";
|
||||
import {
|
||||
pickPersInf,
|
||||
hasPersInfs,
|
||||
noPersInfs,
|
||||
} from "../../lib/misc-helpers";
|
||||
import VerbInfoItemDisplay from "./VerbInfoItemDisplay";
|
||||
import PersonInfsPicker from "../PersInfsPicker";
|
||||
import VerbTypeInfo from "./VerbTypeInfo";
|
||||
import Hider from "../Hider";
|
||||
import * as T from "../../types";
|
||||
import fadedTree from "./faded-tree.svg";
|
||||
|
||||
// import camera from "../icons/camera-fill";
|
||||
// import video from "../icons/camera-video-fill";
|
||||
|
||||
const indentR = {
|
||||
paddingLeft: "1rem",
|
||||
};
|
||||
|
||||
const title: CSSProperties = {
|
||||
fontWeight: "bolder",
|
||||
marginBottom: "0.5rem",
|
||||
marginTop: "0.5rem",
|
||||
};
|
||||
|
||||
export function RootsAndStems({ textOptions, info }: {
|
||||
textOptions: T.TextOptions,
|
||||
info: T.NonComboVerbInfo,
|
||||
}) {
|
||||
const hasPerfectiveSplit = !!(info.root.perfectiveSplit || info.stem.perfectiveSplit);
|
||||
const showPersInf = hasPersInfs(info);
|
||||
const [persInf, setPersInf] = useState<T.PersonInflectionsField>("mascSing");
|
||||
const [split, setSplit] = useState<boolean>(false);
|
||||
const perfectiveStem = (info.stem.perfectiveSplit && split)
|
||||
? info.stem.perfectiveSplit
|
||||
: info.stem.perfective;
|
||||
const perfectiveRoot = (info.root.perfectiveSplit && split)
|
||||
? info.root.perfectiveSplit
|
||||
: info.root.perfective;
|
||||
const colClass = "col col-md-5 px-0 mb-1";
|
||||
const rowClass = "row justify-content-between";
|
||||
return (
|
||||
<div className="mt-3">
|
||||
{showPersInf && <PersonInfsPicker
|
||||
persInf={persInf}
|
||||
handleChange={(p) => setPersInf(p)}
|
||||
transitivity={info.transitivity}
|
||||
/>}
|
||||
<div className="verb-info" style={{
|
||||
textAlign: "center",
|
||||
maxWidth: "500px",
|
||||
margin: "0 auto",
|
||||
backgroundImage: `url(${fadedTree})`,
|
||||
backgroundRepeat: "no-repeat",
|
||||
backgroundPosition: "50% 35%",
|
||||
backgroundSize: "50%",
|
||||
}}>
|
||||
{/* <div style={{
|
||||
fontSize: "larger",
|
||||
}}>
|
||||
{info.def}
|
||||
</div>
|
||||
{info.subDef &&
|
||||
<div style={{ fontSize: "smaller", color: "grey" }}>
|
||||
{info.subDef}
|
||||
</div>
|
||||
} */}
|
||||
<div style={{
|
||||
border: "2px solid black",
|
||||
padding: "1rem",
|
||||
margin: "0.25rem",
|
||||
}} className="container">
|
||||
<div className={rowClass + " align-items-center"}>
|
||||
<div className={colClass}>
|
||||
<i className="fas fa-video fa-lg" />
|
||||
</div>
|
||||
<div className={colClass}>
|
||||
<div className="d-flex flex-row justify-content-center align-items-center">
|
||||
<div>
|
||||
<i className="fas fa-camera fa-lg mx-3" />
|
||||
</div>
|
||||
{hasPerfectiveSplit && <div>
|
||||
<button
|
||||
className="btn btn-sm btn-outline-secondary"
|
||||
onClick={() => setSplit(!split)}
|
||||
>
|
||||
split
|
||||
</button>
|
||||
</div>}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={rowClass}>
|
||||
<div className={colClass}>
|
||||
<div style={title}>
|
||||
<div>Imperfective Stem</div>
|
||||
</div>
|
||||
<div style={indentR}>
|
||||
<VerbInfoItemDisplay
|
||||
item={pickPersInf(info.stem.imperfective, persInf)}
|
||||
textOptions={textOptions}
|
||||
tails
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className={colClass}>
|
||||
<div style={title}>
|
||||
<div>Perfective Stem</div>
|
||||
</div>
|
||||
<div style={indentR}>
|
||||
<VerbInfoItemDisplay
|
||||
item={pickPersInf(perfectiveStem, persInf)}
|
||||
textOptions={textOptions}
|
||||
tails
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className={rowClass}>
|
||||
<div className={colClass}>
|
||||
<div style={title}>
|
||||
<div>Imperfective Root</div>
|
||||
</div>
|
||||
<div style={indentR}>
|
||||
<VerbInfoItemDisplay
|
||||
item={pickPersInf(info.root.imperfective, persInf)}
|
||||
textOptions={textOptions}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className={colClass}>
|
||||
<div>
|
||||
<div style={title}>
|
||||
<div>Perfective Root</div>
|
||||
</div>
|
||||
<div style={indentR}>
|
||||
<VerbInfoItemDisplay
|
||||
item={pickPersInf(perfectiveRoot, persInf)}
|
||||
textOptions={textOptions}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="text-center">
|
||||
<div style={title}>Past Participle</div>
|
||||
<VerbInfoItemDisplay
|
||||
item={pickPersInf(info.participle.past, persInf)}
|
||||
textOptions={textOptions}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function VerbInfo({ info, textOptions, showingStemsAndRoots, toggleShowingSar }: {
|
||||
info: T.NonComboVerbInfo,
|
||||
textOptions: T.TextOptions,
|
||||
showingStemsAndRoots: boolean,
|
||||
toggleShowingSar: () => void,
|
||||
}) {
|
||||
const inf = noPersInfs(info.root.imperfective).long;
|
||||
return (
|
||||
<div className="my-3">
|
||||
<VerbTypeInfo
|
||||
info={info}
|
||||
textOptions={textOptions}
|
||||
/>
|
||||
<Hider
|
||||
showing={showingStemsAndRoots}
|
||||
label={`🌳 Roots and Stems for ${inf.p}`}
|
||||
handleChange={toggleShowingSar}
|
||||
hLevel={4}
|
||||
>
|
||||
<RootsAndStems
|
||||
textOptions={textOptions}
|
||||
info={info}
|
||||
/>
|
||||
</Hider>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default VerbInfo;
|
|
@ -0,0 +1,81 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { useEffect, useState } from "react";
|
||||
import ButtonSelect from "../ButtonSelect";
|
||||
import Pashto from "../Pashto";
|
||||
import Phonetics from "../Phonetics";
|
||||
import * as T from "../../types";
|
||||
import { concatPsString } from "../../lib/p-text-helpers";
|
||||
|
||||
type InputItem = T.SingleOrLengthOpts<T.PsString | [T.PsString, T.PsString]>;
|
||||
|
||||
function VerbInfoItemDisplay({ item, textOptions, tails }: {
|
||||
item: InputItem,
|
||||
textOptions: T.TextOptions,
|
||||
tails?: boolean,
|
||||
}) {
|
||||
const [length, setLength] = useState<T.Length>("long");
|
||||
const getL = (x: InputItem): T.PsString | [T.PsString, T.PsString] => (
|
||||
"long" in x
|
||||
? x[length] || x.short
|
||||
: x
|
||||
);
|
||||
useEffect(() => {
|
||||
setLength((length === "mini" && !("mini" in item)) ? "short" : length);
|
||||
}, [item]);
|
||||
// const lengthsAvailable = "long" in item
|
||||
// ? [...["long", "short"], ..."mini" in item ? ["mini"] : []]
|
||||
// : [];
|
||||
const text = getL(item);
|
||||
|
||||
function addTails(text: T.PsString): T.PsString {
|
||||
return concatPsString(text, { p: "ـ", f: "–"});
|
||||
}
|
||||
return <>
|
||||
{Array.isArray(text) ?
|
||||
<div>
|
||||
<div className="text-center" dir="rtl">
|
||||
<Pashto opts={textOptions}>{text[0]}</Pashto>
|
||||
<span className="mx-1"> __ </span>
|
||||
<Pashto opts={textOptions}>{tails ? addTails(text[1]) : text[1]}</Pashto>
|
||||
</div>
|
||||
<div className="text-center">
|
||||
<Phonetics opts={textOptions}>{text[0]}</Phonetics>
|
||||
<span className="mx-1"> __ </span>
|
||||
<Phonetics opts={textOptions}>{tails ? addTails(text[1]) : text[1]}</Phonetics>
|
||||
</div>
|
||||
</div>
|
||||
:
|
||||
<div>
|
||||
<div className="text-center">
|
||||
<Pashto opts={textOptions}>{tails ? addTails(text) : text}</Pashto>
|
||||
</div>
|
||||
<div className="text-center">
|
||||
<Phonetics opts={textOptions}>{tails ? addTails(text) : text}</Phonetics>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
{"long" in item && <div className="mt-2 text-center">
|
||||
<ButtonSelect
|
||||
xSmall
|
||||
options={[
|
||||
{ label: "Long", value: "long" },
|
||||
{ label: "Short", value: "short" },
|
||||
..."mini" in item ? [{
|
||||
label: "Mini", value: "mini",
|
||||
}] : [],
|
||||
]}
|
||||
value={length}
|
||||
handleChange={(p) => setLength(p as T.Length)}
|
||||
/>
|
||||
</div>}
|
||||
</>;
|
||||
}
|
||||
|
||||
export default VerbInfoItemDisplay;
|
|
@ -0,0 +1,297 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { useState } from "react";
|
||||
import InlinePs from "../InlinePs";
|
||||
import Pashto from "../Pashto";
|
||||
import Phonetics from "../Phonetics";
|
||||
import {
|
||||
makePsString
|
||||
} from "../../lib/p-text-helpers";
|
||||
import { Modal } from "react-bootstrap";
|
||||
import stativeCompTrans from "./stative-compound-transitive.svg";
|
||||
import stativeCompIntrans from "./stative-compound-intransitive.svg";
|
||||
import dynamicCompTrans from "./dynamic-compound-transitive.svg";
|
||||
import dynamicCompIntrans from "./dynamic-compound-intransitive.svg";
|
||||
import generativeStatCompTrans from "./generative-stative-compound-transitive.svg";
|
||||
import generativeStatCompIntrans from "./generative-stative-compound-intransitive.svg";
|
||||
import intransitiveDiagram from "./intransitive.svg";
|
||||
import transitiveDiagramPresent from "./transitive-present.svg";
|
||||
import transitiveDiagramPast from "./transitive-past.svg";
|
||||
import gramTransitiveDiagramPresent from "./grammatically-transitive-present.svg";
|
||||
import gramTransitiveDiagramPast from "./grammatically-transitive-past.svg";
|
||||
import * as T from "../../types";
|
||||
|
||||
function CompoundFormula({ a, b }: {
|
||||
a: React.ReactNode,
|
||||
b: React.ReactNode,
|
||||
}) {
|
||||
return (
|
||||
<div className="row align-items-center mb-3">
|
||||
<div className="col-5 text-center">
|
||||
{a}
|
||||
</div>
|
||||
<div className="col-2 text-center" style={{ fontSize: "2.5rem" }}>
|
||||
<strong>+</strong>
|
||||
</div>
|
||||
<div className="col-5 text-center">
|
||||
{b}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function ExplanationImage({ src, alt }: {
|
||||
src: any,
|
||||
alt?: string,
|
||||
}) {
|
||||
return (
|
||||
<img
|
||||
src={src}
|
||||
alt={alt}
|
||||
className="mx-auto d-block mb-2"
|
||||
style={{ maxWidth: "100%" }}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
const typeInfo = (
|
||||
type: string,
|
||||
opts: T.TextOptions,
|
||||
) => {
|
||||
return type === "simple"
|
||||
? <>
|
||||
<p>A <strong>simple verb</strong> is a verb that is just one piece. It can't be broken down into different words with different meanings, like compound verbs can.</p>
|
||||
</>
|
||||
: type === "stative compound"
|
||||
? <>
|
||||
<p>A <strong>stative compound</strong> talks about <strong>something changing from one state to another</strong>.</p>
|
||||
<CompoundFormula
|
||||
a={<>
|
||||
<div style={{ fontSize: "larger" }}>
|
||||
<strong>Complement</strong>
|
||||
</div>
|
||||
<div>Adjective, Noun, or Adverb</div>
|
||||
</>}
|
||||
b={<>
|
||||
<div style={{ fontSize: "larger" }}>
|
||||
<strong>Aux. Verb</strong>
|
||||
</div>
|
||||
<div>
|
||||
<div className="small text-muted">With transitive:</div>
|
||||
<div><InlinePs opts={opts}>{{ p: "کول", f: "kawul" }}</InlinePs> (to make)</div>
|
||||
<div className="small text-muted">With intransitive:</div>
|
||||
<div><InlinePs opts={opts}>{{ p: "کېدل", f: "kedul" }}</InlinePs> (to become)</div>
|
||||
</div>
|
||||
</>}
|
||||
/>
|
||||
<h4>Transitive stative compounds</h4>
|
||||
<ExplanationImage src={stativeCompTrans} />
|
||||
<h4>Intransitive stative compounds</h4>
|
||||
<ExplanationImage src={stativeCompIntrans} />
|
||||
<p>It's important to remember that the aux. verbs used for these compounds <InlinePs opts={opts}>{{ p: "کول", f: "kawul" }}</InlinePs> (to make) and <InlinePs opts={opts}>{{ p: "کېدل", f: "kedul" }}</InlinePs> (to become) will never, ever take a <InlinePs opts={opts}>{{ p: "و", f: "oo" }}</InlinePs> prefix. 🚫</p>
|
||||
<h5>A couple of other notes:</h5>
|
||||
<p>In the imperfective aspect, the complement and aux. verb are often fused together. For example: <InlinePs opts={opts}>{{ p: "پوخ", f: "pokh" }}</InlinePs> + <InlinePs opts={opts}>{{ p: "کول", f: "kawul" }}</InlinePs> = <InlinePs opts={opts}>{{ p: "بخول", f: "pakhawul" }}</InlinePs>. But they always stay broken apart in the perfective aspect.</p>
|
||||
<p>When complements are nouns or adverbs, they act (and carry a meaning) almost as if they were adjectives.</p>
|
||||
</>
|
||||
: type === "dynamic compound"
|
||||
? <>
|
||||
<p>A <strong>dynamic compound</strong> talks about <strong>some action being done</strong>.</p>
|
||||
<CompoundFormula
|
||||
a={<>
|
||||
<div style={{ fontSize: "larger" }}>
|
||||
<strong>Complement</strong>
|
||||
</div>
|
||||
<div>Noun (action or activity)</div>
|
||||
</>}
|
||||
b={<>
|
||||
<div style={{ fontSize: "larger" }}>
|
||||
<strong>Aux. Verb</strong>
|
||||
</div>
|
||||
</>}
|
||||
/>
|
||||
<h4>Transitive Dynamic Compounds</h4>
|
||||
<p>These talk about someone doing an action or activity.</p>
|
||||
<ExplanationImage src={dynamicCompTrans} />
|
||||
<p>There is a subject/agent doing the action, and <em>the action or activity is the object of the sentence</em>. It's important to remember that with these compounds, the object of the sentence is included inside the compound, and you can't have any other object in the sentence.</p>
|
||||
<h4>Intransitive Dynamic Compounds</h4>
|
||||
<p>These talk about an action or activity happening.</p>
|
||||
<ExplanationImage src={dynamicCompIntrans} />
|
||||
<p>Here the complement, the activity included in the compound, is the subject of the sentence.</p>
|
||||
<h6>Other notes:</h6>
|
||||
<p>Dynamic compounds made with <InlinePs opts={opts}>{{ p: "کول", f: "kawul" }}</InlinePs> (to do) will also have an intransitive version made with <InlinePs opts={opts}>{{ p: "کېدل", f: "kedul" }}</InlinePs> (to happen).</p>
|
||||
<p>Dynamic compounds made with <InlinePs opts={opts}>{{ p: "کول", f: "kawul" }}</InlinePs> (to do) or <InlinePs opts={opts}>{{ p: "کېدل", f: "kedul" }}</InlinePs> (to happen) will <em>always</em> take a <InlinePs opts={opts}>{{ p: "و", f: "oo" }}</InlinePs> prefix in the perfective aspect.</p>
|
||||
</>
|
||||
: type === "generative stative compound"
|
||||
? <>
|
||||
<p><strong>Generative stative compounds</strong> are strange compounds that seem to behave like a cross between a stative compound and a dynamic compound.</p>
|
||||
<ul>
|
||||
<li>The object is included in the compound... like with dynamic compounds</li>
|
||||
<li>But they also use <InlinePs opts={opts}>{{ p: "کول", f: "kawul" }}</InlinePs> (to make), the verb that never gets the <InlinePs opts={opts}>{{ p: "و", f: "oo" }}</InlinePs> prefix... like with stative compounds</li>
|
||||
</ul>
|
||||
<p>This may seem quite confusing at first.</p>
|
||||
<p>We can think of these verbs as <strong>stative compounds</strong> but <strong>with an implied complement</strong> meaning something like "existing." So they talk about some thing being created or brought out into existence.</p>
|
||||
<h4>Transitive Generative Stative Compounds</h4>
|
||||
<ExplanationImage src={generativeStatCompTrans} />
|
||||
<h4>Intransitive Generative Stative Compounds</h4>
|
||||
<ExplanationImage src={generativeStatCompIntrans} />
|
||||
</>
|
||||
: null;
|
||||
};
|
||||
|
||||
const transitivityInfo = (
|
||||
type: string,
|
||||
textOptions: T.TextOptions,
|
||||
) => {
|
||||
return type === "transitive"
|
||||
? <>
|
||||
<p><strong>Transitive</strong> verbs are <strong>verbs that take an object</strong>.</p>
|
||||
<p>Transitive verbs are especially difficult because <strong>they work totally differently in the past tense</strong>. (They are ergative in the past tense only.) This takes a lot of hard work for the learner to get used to!</p>
|
||||
<h4>In all non-past forms</h4>
|
||||
<ul>
|
||||
<li>The subject is not inflected</li>
|
||||
<li>The object is not inflected, or it can alse be an enclitic (mini) pronoun (exception: the object is inflected when it's a 1st or 2nd person pronoun)</li>
|
||||
<li>The verb agrees with the <strong>subject</strong></li>
|
||||
</ul>
|
||||
<ExplanationImage src={transitiveDiagramPresent} />
|
||||
<h4>In the past tense</h4>
|
||||
<ul>
|
||||
<li>The subject is inflected, or it can be an enclitic (mini) pronoun</li>
|
||||
<li>The object is not inflected</li>
|
||||
<li>The verb agrees with the <strong>object</strong></li>
|
||||
</ul>
|
||||
<ExplanationImage src={transitiveDiagramPast} />
|
||||
</>
|
||||
: type === "intransitive"
|
||||
? <>
|
||||
<p><strong>Intransitive</strong> verbs are <strong>verbs that don't take an object</strong>. They only take a subject, which is a person or thing that experiences the action of the verb.</p>
|
||||
<p>- The subject is always a <em>uninflected/plain</em> noun or pronoun.</p>
|
||||
<p>- The verb always agrees with the subject.</p>
|
||||
<ExplanationImage src={intransitiveDiagram} />
|
||||
</>
|
||||
: type === "grammatically transitive"
|
||||
? <>
|
||||
<p><strong>Gramatically transitive</strong> verbs are <strong>verbs that don't appear to have an object, but actually work as if they do</strong>!</p>
|
||||
<p>These work just like transitive verbs, except that the object is an implied (unspoken) 3rd person masculine plural entity.</p>
|
||||
<h4>In all non-past forms</h4>
|
||||
<ExplanationImage src={gramTransitiveDiagramPresent} />
|
||||
<h4>In the past tense</h4>
|
||||
<ExplanationImage src={gramTransitiveDiagramPast} />
|
||||
</>
|
||||
: null;
|
||||
}
|
||||
|
||||
function CompoundBreakdown({ info, textOptions }: {
|
||||
info: T.NonComboVerbInfo,
|
||||
textOptions: T.TextOptions,
|
||||
}) {
|
||||
const isComplement = ("complement" in info || "objComplement" in info);
|
||||
if (!isComplement) {
|
||||
return null;
|
||||
}
|
||||
const complement = ((): T.PsString => {
|
||||
if ("objComplement" in info) {
|
||||
return info.objComplement.plural
|
||||
? info.objComplement.plural
|
||||
: makePsString(info.objComplement.entry.p, info.objComplement.entry.f)
|
||||
}
|
||||
if ("complement" in info) {
|
||||
return info.complement.masc[0][0];
|
||||
}
|
||||
else return makePsString("aa", "aa");
|
||||
})();
|
||||
const aux = ((): { ps: T.PsString, e: string } => {
|
||||
if (info.type === "stative compound" || info.type === "generative stative compound") {
|
||||
return info.transitivity === "transitive"
|
||||
? { ps: { p: "کول", f: "kawul" }, e: "to make"}
|
||||
: { ps: { p: "کېدل", f: "kedul" }, e: "to become"};
|
||||
}
|
||||
if (!("auxVerb" in info)) return { ps: {p: "", f: ""}, e: ""};
|
||||
const kawulDyn = info.type === "dynamic compound" && info.auxVerb.p === "کول";
|
||||
return {
|
||||
ps: makePsString(info.auxVerb.p, info.auxVerb.f),
|
||||
e: kawulDyn ? "to do" : "",
|
||||
}
|
||||
})();
|
||||
return (
|
||||
<div className="d-block mx-auto my-3" style={{ maxWidth: "400px" }}>
|
||||
<CompoundFormula
|
||||
a={<div className="compound-breakdown">
|
||||
<div>
|
||||
<Pashto opts={textOptions}>{complement}</Pashto>
|
||||
</div>
|
||||
<div>
|
||||
<Phonetics opts={textOptions}>{complement}</Phonetics>
|
||||
</div>
|
||||
</div>}
|
||||
b={<div className="compound-breakdown">
|
||||
<div>
|
||||
<Pashto opts={textOptions}>{aux.ps}</Pashto>
|
||||
</div>
|
||||
<div>
|
||||
<Phonetics opts={textOptions}>{aux.ps}</Phonetics>
|
||||
</div>
|
||||
{aux.e && <div>{aux.e}</div>}
|
||||
</div>}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function VerbTypeInfo({ info, textOptions }: {
|
||||
info: T.NonComboVerbInfo,
|
||||
textOptions: T.TextOptions,
|
||||
}) {
|
||||
const [showingTypeModal, setShowingTypeModal] = useState<boolean>(false);
|
||||
const [showingTransModal, setShowingTransModal] = useState<boolean>(false);
|
||||
return (
|
||||
<div>
|
||||
<div className="text-center my-2">
|
||||
This is a
|
||||
<button
|
||||
className="btn btn-light mx-2 my-1"
|
||||
onClick={() => setShowingTypeModal(true)}
|
||||
>
|
||||
<strong>{info.type}</strong> <i className={`fa fa-question-circle`}></i>
|
||||
</button>
|
||||
verb and it's
|
||||
<button
|
||||
className="btn btn-light mx-2 my-1"
|
||||
onClick={() => setShowingTransModal(true)}
|
||||
>
|
||||
<strong>{info.transitivity}</strong> <i className={`fa fa-question-circle`}></i>
|
||||
</button>
|
||||
</div>
|
||||
<CompoundBreakdown info={info} textOptions={textOptions} />
|
||||
<Modal show={showingTypeModal} onHide={() => setShowingTypeModal(false)}>
|
||||
<Modal.Header closeButton>
|
||||
<Modal.Title>About {info.type} verbs</Modal.Title>
|
||||
</Modal.Header>
|
||||
<Modal.Body>{typeInfo(info.type, textOptions)}</Modal.Body>
|
||||
<Modal.Footer>
|
||||
<button type="button" className="btn btn-primary clb" onClick={() => setShowingTypeModal(false)}>
|
||||
Close
|
||||
</button>
|
||||
</Modal.Footer>
|
||||
</Modal>
|
||||
<Modal show={showingTransModal} onHide={() => setShowingTransModal(false)}>
|
||||
<Modal.Header closeButton>
|
||||
<Modal.Title>What does "{info.transitivity}" mean?</Modal.Title>
|
||||
</Modal.Header>
|
||||
<Modal.Body>{transitivityInfo(info.transitivity, textOptions)}</Modal.Body>
|
||||
<Modal.Footer>
|
||||
<button type="button" className="btn btn-primary clb" onClick={() => setShowingTransModal(false)}>
|
||||
Close
|
||||
</button>
|
||||
</Modal.Footer>
|
||||
</Modal>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default VerbTypeInfo;
|
|
@ -0,0 +1,324 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="297.34714"
|
||||
height="165.47572"
|
||||
viewBox="0 0 78.673093 43.78212"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="dynamic-compound-intransitive.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
id="rect892"
|
||||
height="29.132379"
|
||||
width="41.694046"
|
||||
y="54.62747"
|
||||
x="96.452177" />
|
||||
<rect
|
||||
x="0.59185642"
|
||||
y="111.02134"
|
||||
width="117.06405"
|
||||
height="47.573975"
|
||||
id="rect977" />
|
||||
<rect
|
||||
x="94.136192"
|
||||
y="43.13488"
|
||||
width="37.685005"
|
||||
height="23.786987"
|
||||
id="rect971" />
|
||||
<rect
|
||||
id="rect5078"
|
||||
height="23.20262"
|
||||
width="28.145405"
|
||||
y="66.437157"
|
||||
x="2.3806393" />
|
||||
<rect
|
||||
x="59.391151"
|
||||
y="69.861832"
|
||||
width="27.796032"
|
||||
height="20.045214"
|
||||
id="rect2967" />
|
||||
<rect
|
||||
x="70.349205"
|
||||
y="14.269771"
|
||||
width="25.123337"
|
||||
height="14.967094"
|
||||
id="rect2961" />
|
||||
<rect
|
||||
x="24.646114"
|
||||
y="17.477007"
|
||||
width="30.468725"
|
||||
height="12.294398"
|
||||
id="rect2180" />
|
||||
<rect
|
||||
x="58.322075"
|
||||
y="55.963818"
|
||||
width="37.685001"
|
||||
height="12.828937"
|
||||
id="rect2174" />
|
||||
<rect
|
||||
x="1.6609344"
|
||||
y="57.300163"
|
||||
width="42.228584"
|
||||
height="20.312485"
|
||||
id="rect2168" />
|
||||
<rect
|
||||
x="-6.9490075"
|
||||
y="37.952274"
|
||||
width="39.823158"
|
||||
height="16.036173"
|
||||
id="rect962" />
|
||||
<rect
|
||||
x="11.759859"
|
||||
y="56.126602"
|
||||
width="37.417732"
|
||||
height="23.519718"
|
||||
id="rect894" />
|
||||
<rect
|
||||
x="75.102737"
|
||||
y="14.432554"
|
||||
width="47.841248"
|
||||
height="13.363476"
|
||||
id="rect886" />
|
||||
<rect
|
||||
x="35.279579"
|
||||
y="23.252449"
|
||||
width="34.210499"
|
||||
height="13.363476"
|
||||
id="rect880" />
|
||||
<rect
|
||||
x="59.868374"
|
||||
y="102.89877"
|
||||
width="88.733482"
|
||||
height="34.477768"
|
||||
id="rect855" />
|
||||
<rect
|
||||
x="52.652096"
|
||||
y="99.691536"
|
||||
width="92.475258"
|
||||
height="33.94323"
|
||||
id="rect849" />
|
||||
<rect
|
||||
x="52.715843"
|
||||
y="47.507061"
|
||||
width="67.822716"
|
||||
height="20.112129"
|
||||
id="rect843" />
|
||||
<rect
|
||||
x="47.625"
|
||||
y="45.357143"
|
||||
width="92.98214"
|
||||
height="43.845238"
|
||||
id="rect835" />
|
||||
<rect
|
||||
id="rect886-3"
|
||||
height="38.060673"
|
||||
width="54.312309"
|
||||
y="14.432554"
|
||||
x="75.102737" />
|
||||
<rect
|
||||
id="rect925"
|
||||
height="13.363476"
|
||||
width="47.841248"
|
||||
y="14.432554"
|
||||
x="75.102737" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-left="10"
|
||||
fit-margin-top="10"
|
||||
lock-margins="true"
|
||||
units="px"
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:cx="165.53043"
|
||||
inkscape:cy="24.157692"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1541"
|
||||
inkscape:window-height="1030"
|
||||
inkscape:window-x="2512"
|
||||
inkscape:window-y="165"
|
||||
inkscape:window-maximized="0"
|
||||
showguides="false"
|
||||
inkscape:snap-global="false" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(-49.68001,-44.471228)"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text833"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect835);fill:#000000;fill-opacity:1;stroke:none;" />
|
||||
<path
|
||||
d="M 52.715843,47.507061 H 125.31727 V 85.217514 H 52.715843 Z"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:0.78;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect839" />
|
||||
<g
|
||||
aria-label="+"
|
||||
transform="translate(61.471991,43.252482)"
|
||||
id="text2178"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect2180);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 29.514389,20.205069 v 2.878369 h 2.878368 v 0.878496 h -2.878368 v 2.878368 h -0.868162 v -2.878368 h -2.878368 v -0.878496 h 2.878368 v -2.878369 z"
|
||||
id="path3000" />
|
||||
</g>
|
||||
<g
|
||||
id="g1048"
|
||||
transform="translate(0,0.87984573)">
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect2168);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text2166"
|
||||
transform="matrix(0.74399477,0,0,0.74399477,53.91504,10.288093)"
|
||||
aria-label="Subject">
|
||||
<path
|
||||
id="path2985"
|
||||
d="M 7.3238752,59.202468 V 60.22049 Q 6.7295981,59.936271 6.2025002,59.796745 5.6754023,59.657219 5.1844777,59.657219 q -0.8526584,0 -1.3177448,0.330728 -0.4599188,0.330728 -0.4599188,0.940508 0,0.511595 0.30489,0.775144 0.3100576,0.258382 1.1678836,0.418578 l 0.6304505,0.129191 q 1.1678836,0.222208 1.7208197,0.785479 0.5581037,0.558104 0.5581037,1.498612 0,1.121375 -0.7544735,1.700149 -0.7493059,0.578774 -2.201409,0.578774 -0.5477684,0 -1.1678837,-0.124023 -0.6149475,-0.124023 -1.2764038,-0.366901 v -1.074867 q 0.6356181,0.356566 1.2453981,0.537433 0.6097799,0.180867 1.1988894,0.180867 0.8939994,0 1.3797563,-0.351398 0.485757,-0.351399 0.485757,-1.00252 0,-0.568439 -0.3513987,-0.888832 -0.346231,-0.320393 -1.1420455,-0.480589 L 4.5695301,63.119529 Q 3.4016465,62.886986 2.8797162,62.390894 2.3577859,61.894801 2.3577859,61.011137 q 0,-1.02319 0.7183001,-1.612299 0.7234677,-0.58911 1.9895363,-0.58911 0.5426008,0 1.1058721,0.09819 0.5632713,0.09819 1.1523808,0.294555 z" />
|
||||
<path
|
||||
id="path2987"
|
||||
d="m 9.2772379,64.38043 v -3.503651 h 0.9508431 v 3.467478 q 0,0.821652 0.320393,1.235062 0.320393,0.408243 0.961179,0.408243 0.769976,0 1.214392,-0.490925 0.449583,-0.490924 0.449583,-1.338415 v -3.281443 h 0.950844 v 5.787742 h -0.950844 v -0.888832 q -0.346231,0.527098 -0.806149,0.785479 -0.454751,0.253214 -1.059364,0.253214 -0.997352,0 -1.5141144,-0.620115 Q 9.2772379,65.574152 9.2772379,64.38043 Z m 2.3926111,-3.643177 z" />
|
||||
<path
|
||||
id="path2989"
|
||||
d="m 20.248109,63.775818 q 0,-1.049029 -0.43408,-1.643306 -0.428913,-0.599444 -1.183387,-0.599444 -0.754473,0 -1.188554,0.599444 -0.428913,0.594277 -0.428913,1.643306 0,1.049028 0.428913,1.648473 0.434081,0.594277 1.188554,0.594277 0.754474,0 1.183387,-0.594277 0.43408,-0.599445 0.43408,-1.648473 z m -3.234934,-2.020542 q 0.299722,-0.516763 0.754473,-0.764809 0.459919,-0.253214 1.095537,-0.253214 1.054196,0 1.710485,0.837156 0.661456,0.837155 0.661456,2.201409 0,1.364253 -0.661456,2.201409 -0.656289,0.837155 -1.710485,0.837155 -0.635618,0 -1.095537,-0.248046 -0.454751,-0.253214 -0.754473,-0.769976 v 0.868161 h -0.956011 v -8.040827 h 0.956011 z" />
|
||||
<path
|
||||
id="path2991"
|
||||
d="m 22.811252,60.876779 h 0.950843 v 5.891095 q 0,1.105872 -0.423745,1.601964 -0.418578,0.496092 -1.353918,0.496092 h -0.361734 v -0.80615 h 0.253214 q 0.5426,0 0.73897,-0.253214 0.19637,-0.248046 0.19637,-1.038692 z m 0,-2.253085 h 0.950843 v 1.204057 h -0.950843 z" />
|
||||
<path
|
||||
id="path2993"
|
||||
d="m 30.69705,63.532939 v 0.465087 h -4.371813 q 0.06201,0.981849 0.58911,1.498611 0.532265,0.511595 1.477941,0.511595 0.547768,0 1.059364,-0.134358 0.516762,-0.134358 1.02319,-0.403075 v 0.899167 q -0.511595,0.217041 -1.049029,0.330728 -0.537433,0.113688 -1.090369,0.113688 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.806149 -0.80615,-2.180738 0,-1.421097 0.764809,-2.253085 0.769976,-0.837156 2.072218,-0.837156 1.167884,0 1.844843,0.754474 0.682127,0.749305 0.682127,2.041212 z m -0.950844,-0.279052 q -0.01034,-0.780311 -0.439248,-1.245398 -0.423745,-0.465086 -1.126543,-0.465086 -0.795814,0 -1.276403,0.449583 -0.475422,0.449584 -0.547769,1.266069 z" />
|
||||
<path
|
||||
id="path2995"
|
||||
d="m 36.422782,61.098987 v 0.888832 q -0.403075,-0.222208 -0.811318,-0.330728 -0.403075,-0.113688 -0.816485,-0.113688 -0.925005,0 -1.4366,0.589109 -0.511595,0.583942 -0.511595,1.643306 0,1.059363 0.511595,1.648473 0.511595,0.583941 1.4366,0.583941 0.41341,0 0.816485,-0.10852 0.408243,-0.113688 0.811318,-0.335896 v 0.878497 q -0.397908,0.186035 -0.826821,0.279052 -0.423745,0.09302 -0.904334,0.09302 -1.30741,0 -2.077386,-0.821653 -0.769977,-0.821652 -0.769977,-2.216911 0,-1.41593 0.775144,-2.227248 0.780312,-0.811317 2.13423,-0.811317 0.439249,0 0.857826,0.09302 0.418578,0.08785 0.811318,0.268717 z" />
|
||||
<path
|
||||
id="path2997"
|
||||
d="m 39.027265,59.233474 v 1.643305 h 1.958531 v 0.738971 h -1.958531 v 3.141917 q 0,0.707965 0.191202,0.909502 0.19637,0.201537 0.790647,0.201537 h 0.976682 v 0.795815 h -0.976682 q -1.100704,0 -1.519282,-0.408243 -0.418578,-0.41341 -0.418578,-1.498611 V 61.61575 h -0.697629 v -0.738971 h 0.697629 v -1.643305 z" />
|
||||
</g>
|
||||
<g
|
||||
aria-label="noun activity"
|
||||
transform="translate(-3.4745038,-5.8986082)"
|
||||
id="text2965"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0;font-family:sans-serif;white-space:pre;shape-inside:url(#rect2967);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 68.787012,73.066094 v 2.095996 h -0.570508 v -2.077393 q 0,-0.492993 -0.192236,-0.737939 -0.192237,-0.244947 -0.576709,-0.244947 -0.461988,0 -0.728638,0.294556 -0.26665,0.294556 -0.26665,0.803052 v 1.962671 h -0.573609 v -3.472657 h 0.573609 v 0.539502 q 0.204638,-0.313159 0.48059,-0.468188 0.279053,-0.155029 0.641822,-0.155029 0.598413,0 0.905371,0.37207 0.306958,0.36897 0.306958,1.088306 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3025" />
|
||||
<path
|
||||
d="m 71.276782,72.089409 q -0.458886,0 -0.725537,0.359668 -0.26665,0.356567 -0.26665,0.979785 0,0.623218 0.26355,0.982886 0.26665,0.356567 0.728637,0.356567 0.455786,0 0.722437,-0.359668 0.26665,-0.359668 0.26665,-0.979785 0,-0.617016 -0.26665,-0.976684 -0.266651,-0.362769 -0.722437,-0.362769 z m 0,-0.483691 q 0.744141,0 1.168921,0.483691 0.42478,0.483691 0.42478,1.339453 0,0.852661 -0.42478,1.339453 -0.42478,0.483692 -1.168921,0.483692 -0.747241,0 -1.172021,-0.483692 -0.42168,-0.486792 -0.42168,-1.339453 0,-0.855762 0.42168,-1.339453 0.42478,-0.483691 1.172021,-0.483691 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3027" />
|
||||
<path
|
||||
d="m 73.75415,73.791631 v -2.102198 h 0.570508 v 2.080494 q 0,0.492993 0.192236,0.74104 0.192237,0.244946 0.576709,0.244946 0.461988,0 0.728638,-0.294556 0.269751,-0.294555 0.269751,-0.803051 V 71.689433 H 76.6625 v 3.472657 h -0.570508 v -0.533301 q -0.207739,0.31626 -0.483692,0.471289 -0.272851,0.151929 -0.63562,0.151929 -0.598413,0 -0.908471,-0.372071 -0.310059,-0.37207 -0.310059,-1.088305 z m 1.435571,-2.185913 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3029" />
|
||||
<path
|
||||
d="m 80.730468,73.066094 v 2.095996 h -0.570507 v -2.077393 q 0,-0.492993 -0.192237,-0.737939 -0.192236,-0.244947 -0.576709,-0.244947 -0.461987,0 -0.728637,0.294556 -0.266651,0.294556 -0.266651,0.803052 v 1.962671 h -0.573608 v -3.472657 h 0.573608 v 0.539502 q 0.204639,-0.313159 0.480591,-0.468188 0.279053,-0.155029 0.641821,-0.155029 0.598413,0 0.905371,0.37207 0.306958,0.36897 0.306958,1.088306 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3031" />
|
||||
<path
|
||||
d="m 63.757861,80.718958 q -0.69143,0 -0.958081,0.15813 -0.26665,0.158129 -0.26665,0.539502 0,0.303857 0.198438,0.483691 0.201538,0.176733 0.545703,0.176733 0.474389,0 0.759643,-0.334863 0.288355,-0.337964 0.288355,-0.896069 v -0.127124 z m 1.137915,-0.235645 v 1.981275 h -0.570507 v -0.5271 q -0.195337,0.31626 -0.486792,0.468188 -0.291455,0.148829 -0.713135,0.148829 -0.533301,0 -0.849561,-0.297657 -0.313159,-0.300757 -0.313159,-0.803051 0,-0.586011 0.390674,-0.883667 0.393774,-0.297657 1.172022,-0.297657 h 0.799951 v -0.05581 q 0,-0.393775 -0.26045,-0.607715 -0.257348,-0.217041 -0.725537,-0.217041 -0.297656,0 -0.579809,0.07131 -0.282154,0.07131 -0.542603,0.213941 v -0.5271 q 0.313159,-0.120923 0.607715,-0.179834 0.294556,-0.06201 0.573609,-0.06201 0.753442,0 1.125512,0.390673 0.37207,0.390674 0.37207,1.184424 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3033" />
|
||||
<path
|
||||
d="m 68.573071,79.125257 v 0.5333 q -0.241845,-0.133325 -0.486792,-0.198437 -0.241845,-0.06821 -0.489892,-0.06821 -0.555005,0 -0.861963,0.353467 -0.306958,0.350366 -0.306958,0.985986 0,0.63562 0.306958,0.989087 0.306958,0.350366 0.861963,0.350366 0.248047,0 0.489892,-0.06511 0.244947,-0.06821 0.486792,-0.201538 v 0.527099 q -0.238745,0.111621 -0.496093,0.167432 -0.254248,0.05581 -0.542603,0.05581 -0.784448,0 -1.246435,-0.492994 -0.461988,-0.492993 -0.461988,-1.330151 0,-0.84956 0.465088,-1.336352 0.468189,-0.486792 1.280542,-0.486792 0.26355,0 0.514697,0.05581 0.251148,0.05271 0.486792,0.161231 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3035" />
|
||||
<path
|
||||
d="m 70.135767,78.005945 v 0.985986 h 1.175122 v 0.443384 h -1.175122 v 1.885156 q 0,0.424781 0.114722,0.545703 0.117822,0.120923 0.474389,0.120923 h 0.586011 v 0.477491 h -0.586011 q -0.660425,0 -0.911572,-0.244947 -0.251147,-0.248047 -0.251147,-0.89917 v -1.885156 h -0.41858 v -0.443384 h 0.41858 v -0.985986 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3037" />
|
||||
<path
|
||||
d="m 72.064332,78.991931 h 0.570507 v 3.472657 h -0.570507 z m 0,-1.351855 h 0.570507 v 0.722436 h -0.570507 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3039" />
|
||||
<path
|
||||
d="m 73.416187,78.991931 h 0.604614 l 1.085205,2.914551 1.085205,-2.914551 h 0.604614 l -1.302246,3.472657 h -0.775146 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3041" />
|
||||
<path
|
||||
d="m 77.583374,78.991931 h 0.570507 v 3.472657 h -0.570507 z m 0,-1.351855 h 0.570507 v 0.722436 h -0.570507 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3043" />
|
||||
<path
|
||||
d="m 79.908814,78.005945 v 0.985986 h 1.175122 v 0.443384 h -1.175122 v 1.885156 q 0,0.424781 0.114722,0.545703 0.117822,0.120923 0.47439,0.120923 h 0.58601 v 0.477491 h -0.58601 q -0.660425,0 -0.911573,-0.244947 -0.251147,-0.248047 -0.251147,-0.89917 v -1.885156 h -0.418579 v -0.443384 h 0.418579 v -0.985986 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3045" />
|
||||
<path
|
||||
d="m 83.282251,82.787048 q -0.241846,0.620118 -0.471289,0.809253 -0.229443,0.189136 -0.613916,0.189136 H 81.74126 v -0.47749 h 0.334863 q 0.235645,0 0.365869,-0.111621 0.130225,-0.111621 0.288355,-0.5271 l 0.102319,-0.260449 -1.404565,-3.416846 h 0.604614 l 1.085205,2.716114 1.085205,-2.716114 h 0.604614 z"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
id="path3047" />
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect5078);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text5076"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect892);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text890"
|
||||
transform="translate(-7.4835468,-1.3363476)"
|
||||
aria-label="aux.
|
||||
verb">
|
||||
<path
|
||||
id="path913"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m 109.50702,61.081319 q -1.15238,0 -1.59679,0.263549 -0.44442,0.263549 -0.44442,0.899167 0,0.506427 0.33073,0.80615 0.33589,0.294554 0.9095,0.294554 0.79065,0 1.26607,-0.558103 0.48059,-0.563272 0.48059,-1.493444 v -0.211873 z m 1.89652,-0.39274 v 3.302114 h -0.95084 v -0.878497 q -0.32556,0.527098 -0.81132,0.780312 -0.48576,0.248046 -1.18855,0.248046 -0.88883,0 -1.41593,-0.496092 -0.52193,-0.50126 -0.52193,-1.338415 0,-0.976682 0.65112,-1.472774 0.65629,-0.496092 1.95336,-0.496092 h 1.33325 v -0.09302 q 0,-0.656288 -0.43408,-1.012854 -0.42891,-0.361734 -1.20923,-0.361734 -0.49609,0 -0.96634,0.118855 -0.47026,0.118856 -0.90434,0.356566 V 58.4665 q 0.52193,-0.201538 1.01286,-0.299723 0.49092,-0.103352 0.95601,-0.103352 1.25573,0 1.87585,0.651121 0.62011,0.651121 0.62011,1.974033 z" />
|
||||
<path
|
||||
id="path915"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m 113.26906,61.706602 v -3.503651 h 0.95084 v 3.467477 q 0,0.821653 0.32039,1.235063 0.32039,0.408243 0.96118,0.408243 0.76998,0 1.21439,-0.490925 0.44959,-0.490924 0.44959,-1.338415 v -3.281443 h 0.95084 v 5.787742 h -0.95084 v -0.888832 q -0.34623,0.527098 -0.80615,0.785479 -0.45475,0.253214 -1.05937,0.253214 -0.99735,0 -1.51411,-0.620115 -0.51676,-0.620115 -0.51676,-1.813837 z m 2.39261,-3.643177 z" />
|
||||
<path
|
||||
id="path917"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m 124.89622,58.202951 -2.09289,2.816356 2.20141,2.971386 h -1.12138 l -1.68465,-2.273756 -1.68464,2.273756 h -1.12138 l 2.24792,-3.028229 -2.05671,-2.759513 h 1.12137 l 1.53479,2.061883 1.53478,-2.061883 z" />
|
||||
<path
|
||||
id="path919"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m 126.48268,62.678116 h 1.09037 v 1.312577 h -1.09037 z" />
|
||||
<path
|
||||
id="path921"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m 105.68815,71.432077 h 1.00768 l 1.80867,4.857569 1.80867,-4.857569 h 1.00769 l -2.1704,5.787742 h -1.29191 z" />
|
||||
<path
|
||||
id="path923"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m 117.58402,74.088237 v 0.465086 h -4.37181 q 0.062,0.981849 0.58911,1.498612 0.53227,0.511595 1.47794,0.511595 0.54777,0 1.05937,-0.134358 0.51676,-0.134358 1.02319,-0.403075 v 0.899167 q -0.5116,0.21704 -1.04903,0.330728 -0.53744,0.113688 -1.09037,0.113688 -1.38493,0 -2.19624,-0.80615 -0.80615,-0.80615 -0.80615,-2.180738 0,-1.421098 0.76481,-2.253086 0.76997,-0.837155 2.07221,-0.837155 1.16789,0 1.84485,0.754473 0.68212,0.749306 0.68212,2.041213 z m -0.95084,-0.279052 q -0.0103,-0.780311 -0.43925,-1.245398 -0.42374,-0.465086 -1.12654,-0.465086 -0.79581,0 -1.2764,0.449583 -0.47543,0.449584 -0.54777,1.266069 z" />
|
||||
<path
|
||||
id="path925"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m 122.49844,72.320909 q -0.1602,-0.09302 -0.3514,-0.134359 -0.18604,-0.04651 -0.41341,-0.04651 -0.80615,0 -1.24023,0.527098 -0.42891,0.52193 -0.42891,1.503779 v 3.0489 h -0.95602 v -5.787742 h 0.95602 v 0.899167 q 0.29972,-0.527098 0.78031,-0.780312 0.48059,-0.258381 1.16788,-0.258381 0.0982,0 0.21704,0.0155 0.11886,0.01033 0.26355,0.03617 z" />
|
||||
<path
|
||||
id="path927"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m 127.6609,74.331115 q 0,-1.049028 -0.43408,-1.643305 -0.42892,-0.599445 -1.18339,-0.599445 -0.75447,0 -1.18855,0.599445 -0.42892,0.594277 -0.42892,1.643305 0,1.049029 0.42892,1.648473 0.43408,0.594277 1.18855,0.594277 0.75447,0 1.18339,-0.594277 0.43408,-0.599444 0.43408,-1.648473 z m -3.23494,-2.020542 q 0.29972,-0.516762 0.75448,-0.764808 0.45991,-0.253214 1.09553,-0.253214 1.0542,0 1.71049,0.837155 0.66145,0.837156 0.66145,2.201409 0,1.364254 -0.66145,2.201409 -0.65629,0.837156 -1.71049,0.837156 -0.63562,0 -1.09553,-0.248046 -0.45476,-0.253214 -0.75448,-0.769976 v 0.868161 h -0.95601 v -8.040827 h 0.95601 z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 71 KiB |
|
@ -0,0 +1,639 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="generative-stative-compound-intransitive.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 183.52051 59.552219"
|
||||
height="59.552219mm"
|
||||
width="183.52051mm">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
x="154.42224"
|
||||
y="22.091473"
|
||||
width="121.33036"
|
||||
height="77.67411"
|
||||
id="rect1091" />
|
||||
<rect
|
||||
x="22.192841"
|
||||
y="58.108963"
|
||||
width="54.389351"
|
||||
height="16.570711"
|
||||
id="rect1013" />
|
||||
<rect
|
||||
id="rect1861"
|
||||
height="29.534964"
|
||||
width="51.949112"
|
||||
y="14.93006"
|
||||
x="13.418155" />
|
||||
<rect
|
||||
id="rect1855"
|
||||
height="27.025297"
|
||||
width="24.568453"
|
||||
y="60.098213"
|
||||
x="105.64435" />
|
||||
<rect
|
||||
id="rect1025"
|
||||
height="15.308036"
|
||||
width="48.947918"
|
||||
y="62.177082"
|
||||
x="137.77232" />
|
||||
<rect
|
||||
id="rect962"
|
||||
height="16.036173"
|
||||
width="39.823158"
|
||||
y="37.952274"
|
||||
x="-6.9490075" />
|
||||
<rect
|
||||
id="rect894"
|
||||
height="23.519718"
|
||||
width="37.417732"
|
||||
y="56.126602"
|
||||
x="11.759859" />
|
||||
<rect
|
||||
id="rect886"
|
||||
height="13.363476"
|
||||
width="47.841248"
|
||||
y="14.432554"
|
||||
x="75.102737" />
|
||||
<rect
|
||||
id="rect880"
|
||||
height="13.363476"
|
||||
width="34.210499"
|
||||
y="23.252449"
|
||||
x="35.279579" />
|
||||
<rect
|
||||
id="rect855"
|
||||
height="34.477768"
|
||||
width="88.733482"
|
||||
y="102.89877"
|
||||
x="59.868374" />
|
||||
<rect
|
||||
id="rect849"
|
||||
height="33.94323"
|
||||
width="92.475258"
|
||||
y="99.691536"
|
||||
x="52.652096" />
|
||||
<rect
|
||||
id="rect843"
|
||||
height="20.112129"
|
||||
width="67.822716"
|
||||
y="47.507061"
|
||||
x="52.715843" />
|
||||
<rect
|
||||
id="rect835"
|
||||
height="43.845238"
|
||||
width="92.98214"
|
||||
y="45.357143"
|
||||
x="47.625" />
|
||||
<rect
|
||||
x="75.102737"
|
||||
y="14.432554"
|
||||
width="54.312309"
|
||||
height="38.060673"
|
||||
id="rect886-3" />
|
||||
<rect
|
||||
x="75.102737"
|
||||
y="14.432554"
|
||||
width="47.841248"
|
||||
height="13.363476"
|
||||
id="rect925" />
|
||||
<rect
|
||||
x="11.759859"
|
||||
y="56.126602"
|
||||
width="37.417732"
|
||||
height="23.519718"
|
||||
id="rect894-9" />
|
||||
<rect
|
||||
x="11.759859"
|
||||
y="56.126602"
|
||||
width="37.417732"
|
||||
height="23.519718"
|
||||
id="rect1002" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
fit-margin-left="5"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-right="5"
|
||||
fit-margin-top="10"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-x="1911"
|
||||
inkscape:window-height="1361"
|
||||
inkscape:window-width="2560"
|
||||
showgrid="false"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:cy="278.38405"
|
||||
inkscape:cx="503.34881"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:snap-global="false" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(1.5880211,-41.935222)"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<g
|
||||
id="g1172">
|
||||
<g
|
||||
transform="translate(114.04453,0.80182124)"
|
||||
id="g994-1">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-81" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-57" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(130.0807,0.80182124)"
|
||||
id="g994-3">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-5" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-7" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(145.8496,0.80182124)"
|
||||
id="g994-8">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-2" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-8" />
|
||||
</g>
|
||||
<g
|
||||
id="g994-1-0"
|
||||
transform="translate(-9.7012598,0.80182124)">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-81-0" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-57-5" />
|
||||
</g>
|
||||
<g
|
||||
id="g994-3-9"
|
||||
transform="translate(6.3349112,0.80182124)">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-5-3" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-7-3" />
|
||||
</g>
|
||||
<g
|
||||
id="g994-8-7"
|
||||
transform="translate(22.103811,0.80182124)">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-2-1" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-8-6" />
|
||||
</g>
|
||||
<g
|
||||
id="g994-80-3"
|
||||
transform="translate(39.47633,0.80182124)">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-9-8" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-1-0" />
|
||||
</g>
|
||||
<path
|
||||
id="path1132"
|
||||
d="M 9.3549106,79.280506 H 164.83968"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 8.9769335,89.769346 H 164.99624"
|
||||
id="path1132-5"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect835);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text833"
|
||||
xml:space="preserve" />
|
||||
<path
|
||||
d="M 3.8019789,53.38699 H 119.30371 V 91.097443 H 3.8019789 Z"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:0.78;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect839"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
id="path890-6-2"
|
||||
d="m 123.65189,59.410552 8.42708,0.45043 0.13076,2.787304 4.14686,-4.474386 -4.86402,-5.89691 -0.19328,2.981903 -7.51927,0.327088 z"
|
||||
style="fill:#b3b3b3;stroke:#b3b3b3;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1025);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text1023"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0.75;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
id="text1031"
|
||||
aria-label="changed subject"
|
||||
transform="translate(-3.4017857,0.1889881)">
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1091);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1089"
|
||||
transform="translate(-56.129465,34.206845)"
|
||||
aria-label="subject
|
||||
brought into
|
||||
existence">
|
||||
<path
|
||||
id="path1835"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 205.41652,23.883937 v 0.599447 q -0.26871,-0.137804 -0.5581,-0.206706 -0.28939,-0.0689 -0.59945,-0.0689 -0.47198,0 -0.70969,0.144694 -0.23426,0.144694 -0.23426,0.434082 0,0.220486 0.1688,0.347955 0.16881,0.124024 0.67869,0.237712 l 0.21704,0.04823 q 0.67524,0.144694 0.95774,0.409967 0.28594,0.261827 0.28594,0.733806 0,0.537435 -0.42719,0.850939 -0.42375,0.313504 -1.16789,0.313504 -0.31006,0 -0.64768,-0.06201 -0.33417,-0.05857 -0.70624,-0.179145 V 26.83294 q 0.3514,0.18259 0.69246,0.275608 0.34107,0.08957 0.67524,0.08957 0.44786,0 0.68902,-0.151585 0.24116,-0.155029 0.24116,-0.434082 0,-0.258382 -0.1757,-0.396186 -0.17226,-0.137804 -0.76137,-0.265273 l -0.22049,-0.05168 q -0.58911,-0.124024 -0.85093,-0.378961 -0.26183,-0.258382 -0.26183,-0.706245 0,-0.544326 0.38585,-0.840604 0.38585,-0.296278 1.09554,-0.296278 0.3514,0 0.66146,0.05168 0.31006,0.05168 0.57188,0.15503 z" />
|
||||
<path
|
||||
id="path1837"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 206.57063,26.106025 v -2.335777 h 0.6339 v 2.311661 q 0,0.54777 0.2136,0.823378 0.21359,0.272163 0.64078,0.272163 0.51332,0 0.8096,-0.327284 0.29973,-0.327285 0.29973,-0.892281 v -2.187637 h 0.63389 v 3.85851 h -0.63389 v -0.592557 q -0.23083,0.3514 -0.53744,0.523655 -0.30317,0.16881 -0.70624,0.16881 -0.66491,0 -1.00942,-0.413412 -0.34451,-0.413412 -0.34451,-1.209229 z m 1.59508,-2.428794 z" />
|
||||
<path
|
||||
id="path1839"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 213.88457,25.702948 q 0,-0.699355 -0.28938,-1.095541 -0.28595,-0.399631 -0.78893,-0.399631 -0.50298,0 -0.79237,0.399631 -0.28595,0.396186 -0.28595,1.095541 0,0.699355 0.28595,1.098986 0.28939,0.396187 0.79237,0.396187 0.50298,0 0.78893,-0.396187 0.28938,-0.399631 0.28938,-1.098986 z m -2.15663,-1.347033 q 0.19982,-0.34451 0.50299,-0.509875 0.30661,-0.168809 0.73036,-0.168809 0.7028,0 1.14033,0.558106 0.44097,0.558105 0.44097,1.467611 0,0.909506 -0.44097,1.467612 -0.43753,0.558106 -1.14033,0.558106 -0.42375,0 -0.73036,-0.165365 -0.30317,-0.16881 -0.50299,-0.51332 v 0.578777 h -0.63734 v -5.360572 h 0.63734 z" />
|
||||
<path
|
||||
id="path1841"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 215.59334,23.770248 h 0.6339 v 3.927412 q 0,0.737251 -0.2825,1.06798 -0.27905,0.330729 -0.90261,0.330729 h -0.24116 v -0.537435 h 0.16881 q 0.36174,0 0.49265,-0.16881 0.13091,-0.165364 0.13091,-0.692464 z m 0,-1.502062 h 0.6339 v 0.802707 h -0.6339 z" />
|
||||
<path
|
||||
id="path1843"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 220.85056,25.541029 v 0.310058 h -2.91455 q 0.0413,0.654569 0.39274,0.999079 0.35485,0.341064 0.9853,0.341064 0.36518,0 0.70624,-0.08957 0.34451,-0.08957 0.68213,-0.268718 v 0.599447 q -0.34106,0.144694 -0.69935,0.220486 -0.35829,0.07579 -0.72692,0.07579 -0.92328,0 -1.46416,-0.537436 -0.53744,-0.537435 -0.53744,-1.453831 0,-0.947402 0.50988,-1.502062 0.51332,-0.558106 1.38148,-0.558106 0.77859,0 1.2299,0.502984 0.45475,0.499539 0.45475,1.360814 z m -0.6339,-0.186036 q -0.007,-0.520209 -0.29283,-0.830268 -0.2825,-0.310059 -0.75103,-0.310059 -0.53054,0 -0.85094,0.299723 -0.31695,0.299724 -0.36518,0.844049 z" />
|
||||
<path
|
||||
id="path1845"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 224.66773,23.918388 v 0.592556 q -0.26872,-0.148139 -0.54088,-0.220486 -0.26872,-0.07579 -0.54432,-0.07579 -0.61668,0 -0.95774,0.392741 -0.34107,0.389296 -0.34107,1.095541 0,0.706245 0.34107,1.098986 0.34106,0.389296 0.95774,0.389296 0.2756,0 0.54432,-0.07235 0.27216,-0.07579 0.54088,-0.223931 v 0.585667 q -0.26527,0.124023 -0.55121,0.186035 -0.2825,0.06201 -0.6029,0.06201 -0.87161,0 -1.38493,-0.547771 -0.51332,-0.54777 -0.51332,-1.477947 0,-0.943957 0.51677,-1.484837 0.52021,-0.54088 1.42282,-0.54088 0.29284,0 0.57189,0.06201 0.27905,0.05857 0.54088,0.179146 z" />
|
||||
<path
|
||||
id="path1847"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 226.40406,22.674707 v 1.095541 h 1.30569 v 0.492649 h -1.30569 v 2.09462 q 0,0.471978 0.12747,0.606337 0.13091,0.134359 0.5271,0.134359 h 0.65112 v 0.530545 h -0.65112 q -0.73381,0 -1.01286,-0.272163 -0.27905,-0.275608 -0.27905,-0.999078 v -2.09462 h -0.46509 v -0.492649 h 0.46509 v -1.095541 z" />
|
||||
<path
|
||||
id="path1849"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 196.76244,33.111285 q 0,-0.699355 -0.28939,-1.095541 -0.28594,-0.399632 -0.78893,-0.399632 -0.50298,0 -0.79237,0.399632 -0.28594,0.396186 -0.28594,1.095541 0,0.699355 0.28594,1.098986 0.28939,0.396186 0.79237,0.396186 0.50299,0 0.78893,-0.396186 0.28939,-0.399631 0.28939,-1.098986 z m -2.15663,-1.347033 q 0.19981,-0.34451 0.50298,-0.509875 0.30662,-0.16881 0.73036,-0.16881 0.7028,0 1.14033,0.558106 0.44097,0.558106 0.44097,1.467612 0,0.909506 -0.44097,1.467611 -0.43753,0.558106 -1.14033,0.558106 -0.42374,0 -0.73036,-0.165364 -0.30317,-0.16881 -0.50298,-0.51332 v 0.578776 h -0.63734 v -5.360572 h 0.63734 z" />
|
||||
<path
|
||||
id="path1851"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 200.70708,31.771142 q -0.1068,-0.06201 -0.23427,-0.08957 -0.12402,-0.03101 -0.27561,-0.03101 -0.53743,0 -0.82682,0.3514 -0.28594,0.347955 -0.28594,1.002524 v 2.032607 h -0.63735 v -3.858509 h 0.63735 v 0.599447 q 0.19981,-0.3514 0.52021,-0.52021 0.32039,-0.172255 0.77859,-0.172255 0.0654,0 0.14469,0.01034 0.0792,0.0069 0.1757,0.02412 z" />
|
||||
<path
|
||||
id="path1853"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 202.72246,31.623003 q -0.50988,0 -0.80615,0.399631 -0.29628,0.396186 -0.29628,1.088651 0,0.692464 0.29283,1.092096 0.29628,0.396186 0.8096,0.396186 0.50643,0 0.80271,-0.399631 0.29627,-0.399632 0.29627,-1.088651 0,-0.685575 -0.29627,-1.085206 -0.29628,-0.403076 -0.80271,-0.403076 z m 0,-0.537436 q 0.82682,0 1.2988,0.537436 0.47198,0.537435 0.47198,1.488282 0,0.947402 -0.47198,1.488282 -0.47198,0.537435 -1.2988,0.537435 -0.83027,0 -1.30225,-0.537435 -0.46853,-0.54088 -0.46853,-1.488282 0,-0.950847 0.46853,-1.488282 0.47198,-0.537436 1.30225,-0.537436 z" />
|
||||
<path
|
||||
id="path1855"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 205.47509,33.514361 v -2.335776 h 0.6339 v 2.311661 q 0,0.54777 0.2136,0.823378 0.21359,0.272163 0.64078,0.272163 0.51332,0 0.8096,-0.327285 0.29973,-0.327284 0.29973,-0.89228 v -2.187637 h 0.63389 v 3.858509 h -0.63389 v -0.592556 q -0.23083,0.3514 -0.53744,0.523654 -0.30317,0.16881 -0.70624,0.16881 -0.66491,0 -1.00942,-0.413412 -0.34451,-0.413411 -0.34451,-1.209229 z m 1.59508,-2.428794 z" />
|
||||
<path
|
||||
id="path1857"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 212.55821,33.063053 q 0,-0.689019 -0.28594,-1.06798 -0.2825,-0.378961 -0.79582,-0.378961 -0.50987,0 -0.79581,0.378961 -0.2825,0.378961 -0.2825,1.06798 0,0.685575 0.2825,1.064536 0.28594,0.37896 0.79581,0.37896 0.51332,0 0.79582,-0.37896 0.28594,-0.378961 0.28594,-1.064536 z m 0.6339,1.495173 q 0,0.985298 -0.43753,1.464166 -0.43752,0.482314 -1.34014,0.482314 -0.33417,0 -0.63045,-0.05168 -0.29628,-0.04823 -0.57533,-0.151585 v -0.616672 q 0.27905,0.151584 0.55121,0.223931 0.27217,0.07235 0.55466,0.07235 0.62357,0 0.93363,-0.327284 0.31005,-0.323839 0.31005,-0.981853 V 34.35841 q -0.19637,0.341065 -0.50298,0.509875 -0.30661,0.168809 -0.73381,0.168809 -0.70969,0 -1.14377,-0.54088 -0.43408,-0.54088 -0.43408,-1.433161 0,-0.895725 0.43408,-1.436605 0.43408,-0.540881 1.14377,-0.540881 0.4272,0 0.73381,0.16881 0.30661,0.16881 0.50298,0.509875 v -0.585667 h 0.6339 z" />
|
||||
<path
|
||||
id="path1859"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 217.70519,32.708208 v 2.328886 h -0.6339 v -2.308215 q 0,-0.547771 -0.21359,-0.819933 -0.2136,-0.272163 -0.64079,-0.272163 -0.51332,0 -0.8096,0.327284 -0.29628,0.327285 -0.29628,0.892281 v 2.180746 h -0.63734 v -5.360572 h 0.63734 v 2.10151 q 0.22738,-0.347955 0.53399,-0.52021 0.31006,-0.172255 0.71314,-0.172255 0.6649,0 1.00596,0.413412 0.34107,0.409967 0.34107,1.209229 z" />
|
||||
<path
|
||||
id="path1861"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 219.60344,30.083044 v 1.095541 h 1.30569 v 0.492649 h -1.30569 v 2.094619 q 0,0.471979 0.12747,0.606338 0.13091,0.134358 0.5271,0.134358 h 0.65112 v 0.530545 h -0.65112 q -0.73381,0 -1.01286,-0.272162 -0.27906,-0.275608 -0.27906,-0.999079 v -2.094619 h -0.46508 v -0.492649 h 0.46508 v -1.095541 z" />
|
||||
<path
|
||||
id="path1863"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 223.99249,31.178585 h 0.6339 v 3.858509 h -0.6339 z m 0,-1.502063 h 0.6339 v 0.802708 h -0.6339 z" />
|
||||
<path
|
||||
id="path1865"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 229.15669,32.708208 v 2.328886 h -0.63389 v -2.308215 q 0,-0.547771 -0.2136,-0.819933 -0.2136,-0.272163 -0.64079,-0.272163 -0.51332,0 -0.8096,0.327284 -0.29627,0.327285 -0.29627,0.892281 v 2.180746 h -0.63735 v -3.858509 h 0.63735 v 0.599447 q 0.22737,-0.347955 0.53399,-0.52021 0.31006,-0.172255 0.71313,-0.172255 0.66491,0 1.00597,0.413412 0.34106,0.409967 0.34106,1.209229 z" />
|
||||
<path
|
||||
id="path1867"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 231.05494,30.083044 v 1.095541 h 1.3057 v 0.492649 h -1.3057 v 2.094619 q 0,0.471979 0.12747,0.606338 0.13092,0.134358 0.5271,0.134358 h 0.65113 v 0.530545 h -0.65113 q -0.7338,0 -1.01286,-0.272162 -0.27905,-0.275608 -0.27905,-0.999079 v -2.094619 h -0.46509 v -0.492649 h 0.46509 v -1.095541 z" />
|
||||
<path
|
||||
id="path1869"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 234.69296,31.623003 q -0.50987,0 -0.80615,0.399631 -0.29628,0.396186 -0.29628,1.088651 0,0.692464 0.29284,1.092096 0.29628,0.396186 0.80959,0.396186 0.50643,0 0.80271,-0.399631 0.29628,-0.399632 0.29628,-1.088651 0,-0.685575 -0.29628,-1.085206 -0.29628,-0.403076 -0.80271,-0.403076 z m 0,-0.537436 q 0.82683,0 1.29881,0.537436 0.47198,0.537435 0.47198,1.488282 0,0.947402 -0.47198,1.488282 -0.47198,0.537435 -1.29881,0.537435 -0.83026,0 -1.30224,-0.537435 -0.46854,-0.54088 -0.46854,-1.488282 0,-0.950847 0.46854,-1.488282 0.47198,-0.537436 1.30224,-0.537436 z" />
|
||||
<path
|
||||
id="path1871"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 202.1299,40.357702 v 0.310059 h -2.91455 q 0.0413,0.654568 0.39274,0.999078 0.35485,0.341065 0.9853,0.341065 0.36518,0 0.70624,-0.08957 0.34451,-0.08957 0.68213,-0.268718 v 0.599447 q -0.34106,0.144695 -0.69935,0.220487 -0.35829,0.07579 -0.72692,0.07579 -0.92328,0 -1.46416,-0.537435 -0.53744,-0.537436 -0.53744,-1.453832 0,-0.947401 0.50987,-1.502062 0.51332,-0.558106 1.38149,-0.558106 0.77859,0 1.2299,0.502984 0.45475,0.499539 0.45475,1.360814 z m -0.6339,-0.186035 q -0.007,-0.52021 -0.29283,-0.830269 -0.2825,-0.310059 -0.75103,-0.310059 -0.53055,0 -0.85094,0.299724 -0.31695,0.299723 -0.36518,0.844049 z" />
|
||||
<path
|
||||
id="path1873"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 206.25368,38.586922 -1.39526,1.877578 1.46761,1.980931 h -0.74759 l -1.1231,-1.515843 -1.1231,1.515843 h -0.74759 l 1.49862,-2.018827 -1.37115,-1.839682 h 0.74759 l 1.02319,1.374594 1.0232,-1.374594 z" />
|
||||
<path
|
||||
id="path1875"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 207.22176,38.586922 h 0.63389 v 3.858509 h -0.63389 z m 0,-1.502063 h 0.63389 v 0.802708 h -0.63389 z" />
|
||||
<path
|
||||
id="path1877"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 211.63837,38.70061 v 0.599447 q -0.26872,-0.137804 -0.5581,-0.206706 -0.28939,-0.0689 -0.59945,-0.0689 -0.47198,0 -0.70969,0.144694 -0.23427,0.144694 -0.23427,0.434082 0,0.220487 0.16881,0.347955 0.16881,0.124024 0.67869,0.237712 l 0.21704,0.04823 q 0.67524,0.144694 0.95773,0.409967 0.28595,0.261827 0.28595,0.733806 0,0.537435 -0.4272,0.850939 -0.42374,0.313504 -1.16788,0.313504 -0.31006,0 -0.64768,-0.06201 -0.33418,-0.05857 -0.70625,-0.179145 v -0.654569 q 0.3514,0.182591 0.69247,0.275608 0.34106,0.08957 0.67524,0.08957 0.44786,0 0.68902,-0.151584 0.24115,-0.15503 0.24115,-0.434083 0,-0.258382 -0.1757,-0.396186 -0.17225,-0.137804 -0.76136,-0.265273 l -0.22049,-0.05168 q -0.58911,-0.124024 -0.85094,-0.378961 -0.26183,-0.258382 -0.26183,-0.706245 0,-0.544325 0.38586,-0.840604 0.38585,-0.296278 1.09554,-0.296278 0.3514,0 0.66145,0.05168 0.31006,0.05168 0.57189,0.15503 z" />
|
||||
<path
|
||||
id="path1879"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 213.48494,37.491381 v 1.095541 h 1.3057 v 0.492649 h -1.3057 v 2.094619 q 0,0.471978 0.12747,0.606337 0.13092,0.134359 0.5271,0.134359 h 0.65113 v 0.530545 h -0.65113 q -0.7338,0 -1.01286,-0.272163 -0.27905,-0.275608 -0.27905,-0.999078 v -2.094619 h -0.46509 v -0.492649 h 0.46509 v -1.095541 z" />
|
||||
<path
|
||||
id="path1881"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 218.9282,40.357702 v 0.310059 h -2.91456 q 0.0413,0.654568 0.39275,0.999078 0.35484,0.341065 0.98529,0.341065 0.36518,0 0.70625,-0.08957 0.34451,-0.08957 0.68213,-0.268718 v 0.599447 q -0.34107,0.144695 -0.69936,0.220487 -0.35829,0.07579 -0.72691,0.07579 -0.92329,0 -1.46417,-0.537435 -0.53743,-0.537436 -0.53743,-1.453832 0,-0.947401 0.50987,-1.502062 0.51332,-0.558106 1.38148,-0.558106 0.7786,0 1.2299,0.502984 0.45476,0.499539 0.45476,1.360814 z m -0.6339,-0.186035 q -0.007,-0.52021 -0.29283,-0.830269 -0.2825,-0.310059 -0.75104,-0.310059 -0.53054,0 -0.85093,0.299724 -0.31695,0.299723 -0.36518,0.844049 z" />
|
||||
<path
|
||||
id="path1883"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 223.176,40.116545 v 2.328886 h -0.63389 v -2.308215 q 0,-0.547771 -0.2136,-0.819934 -0.2136,-0.272162 -0.64079,-0.272162 -0.51332,0 -0.8096,0.327284 -0.29627,0.327284 -0.29627,0.89228 v 2.180747 h -0.63735 v -3.858509 h 0.63735 v 0.599447 q 0.22737,-0.347955 0.53399,-0.52021 0.31005,-0.172255 0.71313,-0.172255 0.6649,0 1.00597,0.413412 0.34106,0.409966 0.34106,1.209229 z" />
|
||||
<path
|
||||
id="path1885"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 227.22399,38.735061 v 0.592557 q -0.26871,-0.14814 -0.54088,-0.220487 -0.26871,-0.07579 -0.54432,-0.07579 -0.61668,0 -0.95774,0.392741 -0.34106,0.389296 -0.34106,1.095541 0,0.706245 0.34106,1.098987 0.34106,0.389296 0.95774,0.389296 0.27561,0 0.54432,-0.07235 0.27217,-0.07579 0.54088,-0.223932 v 0.585667 q -0.26527,0.124023 -0.55121,0.186035 -0.2825,0.06201 -0.60289,0.06201 -0.87161,0 -1.38493,-0.547771 -0.51332,-0.54777 -0.51332,-1.477947 0,-0.943956 0.51676,-1.484837 0.52021,-0.54088 1.42283,-0.54088 0.29283,0 0.57188,0.06201 0.27906,0.05857 0.54088,0.179145 z" />
|
||||
<path
|
||||
id="path1887"
|
||||
style="font-size:7.05556px;line-height:1.05;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 231.63372,40.357702 v 0.310059 h -2.91455 q 0.0413,0.654568 0.39274,0.999078 0.35484,0.341065 0.98529,0.341065 0.36518,0 0.70625,-0.08957 0.34451,-0.08957 0.68213,-0.268718 v 0.599447 q -0.34107,0.144695 -0.69936,0.220487 -0.35829,0.07579 -0.72691,0.07579 -0.92329,0 -1.46417,-0.537435 -0.53743,-0.537436 -0.53743,-1.453832 0,-0.947401 0.50987,-1.502062 0.51332,-0.558106 1.38149,-0.558106 0.77859,0 1.2299,0.502984 0.45475,0.499539 0.45475,1.360814 z m -0.6339,-0.186035 q -0.007,-0.52021 -0.29283,-0.830269 -0.2825,-0.310059 -0.75103,-0.310059 -0.53055,0 -0.85094,0.299724 -0.31695,0.299723 -0.36518,0.844049 z" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
aria-label="+"
|
||||
transform="translate(52.088462,45.532048)"
|
||||
id="text1124"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1126);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 34.687306,24.561394 v 2.302703 h 2.302703 v 0.702799 h -2.302703 v 2.302703 h -0.694531 v -2.302703 h -2.302703 v -0.702799 h 2.302703 v -2.302703 z"
|
||||
style="font-size:8.46667px"
|
||||
id="path1226" />
|
||||
</g>
|
||||
<g
|
||||
id="g1065"
|
||||
transform="translate(-12.428033)">
|
||||
<g
|
||||
aria-label="کېدل"
|
||||
transform="translate(0.56696429,-0.18898803)"
|
||||
id="text1853"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1855);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 123.70022,69.461396 h -1.70532 v -0.950843 h 1.60197 q 0.76481,0 0.99735,-0.537434 0.0827,-0.186034 0.0827,-0.372069 0,-0.356566 -0.27905,-0.697629 l -1.60197,-1.963698 q -0.25838,-0.315226 -0.25838,-0.733803 0,-0.180867 0.0517,-0.351399 0.1602,-0.60978 0.69763,-0.831988 l 3.84988,-1.601964 v 0.961178 l -3.07474,1.291907 q -0.3669,0.155029 -0.47542,0.361734 -0.031,0.05684 -0.031,0.186034 0,0.165364 0.16019,0.356567 l 1.4211,1.705317 q 0.5271,0.635618 0.5271,1.271236 0,0.583942 -0.3204,1.105872 -0.49092,0.800982 -1.6433,0.800982 z"
|
||||
id="path1926" />
|
||||
<path
|
||||
d="m 120.43945,69.01698 q -0.39791,0.444416 -1.18339,0.444416 h -0.46509 v -0.950843 h 0.18087 q 0.5116,0 0.73897,-0.227376 0.25321,-0.253214 0.25321,-0.800982 V 66.36082 h 0.95085 v 1.121375 q 0,0.547768 0.25321,0.800982 0.22738,0.227376 0.73897,0.227376 h 0.28422 v 0.950843 h -0.56844 q -0.77514,0 -1.18338,-0.444416 z m -0.38758,2.253085 h 0.77515 v 0.775144 h -0.77515 z m 0,-1.291906 h 0.77515 v 0.775144 h -0.77515 z"
|
||||
id="path1928" />
|
||||
<path
|
||||
d="m 116.15548,66.490011 q -0.29455,-0.630451 -1.23506,-1.421098 h 1.17305 q 0.50126,0.403075 0.92501,1.11104 0.41858,0.692462 0.41858,1.297074 0,0.377237 0.42891,0.80615 0.22737,0.227376 0.73897,0.227376 h 0.38757 v 0.950843 h -0.67179 q -0.75964,0 -1.2609,-0.671792 -0.48059,0.661457 -1.55029,0.831988 -0.23771,0.03617 -0.47025,0.03617 -0.5271,0 -1.05937,-0.19637 v -0.950843 q 0.59428,0.21704 1.02836,0.21704 0.17053,0 0.34623,-0.04651 0.88883,-0.253213 1.0697,-0.831988 0.0413,-0.139526 0.0413,-0.356566 0,-0.351398 -0.31006,-1.002519 z"
|
||||
id="path1930" />
|
||||
<path
|
||||
d="m 111.0292,69.084159 q 0.40307,-0.651121 0.40307,-1.824172 v -5.839418 h 0.95085 v 5.839418 q 0,1.638138 -0.50643,2.382276 -0.62528,0.91467 -1.97403,1.255733 -0.69247,0.1757 -1.13171,0.1757 -0.49093,0 -0.86817,-0.113688 -1.50894,-0.475422 -1.51411,-1.886184 -0.005,-0.713133 0.32556,-1.188554 h 0.95084 q -0.33589,0.594277 -0.33589,1.188554 0,0.671791 0.85782,0.992184 0.20671,0.08268 0.58395,0.08268 0.41341,0 0.97668,-0.175699 0.89916,-0.273884 1.28157,-0.888832 z"
|
||||
id="path1932" />
|
||||
</g>
|
||||
<g
|
||||
aria-label="to become"
|
||||
transform="matrix(0.96154424,0,0,0.96154424,78.952615,57.256132)"
|
||||
id="text1859"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0.65;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1861);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 37.367896,16.659795 v 0.985986 h 1.175122 v 0.443384 h -1.175122 v 1.885156 q 0,0.42478 0.114721,0.545703 0.117822,0.120923 0.47439,0.120923 h 0.586011 v 0.47749 h -0.586011 q -0.660425,0 -0.911572,-0.244946 -0.251148,-0.248047 -0.251148,-0.89917 v -1.885156 h -0.418579 v -0.443384 h 0.418579 v -0.985986 z"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
id="path1935" />
|
||||
<path
|
||||
d="m 40.642114,18.045757 q -0.458886,0 -0.725537,0.359668 -0.26665,0.356567 -0.26665,0.979785 0,0.623217 0.26355,0.982885 0.26665,0.356568 0.728637,0.356568 0.455786,0 0.722437,-0.359668 0.26665,-0.359668 0.26665,-0.979785 0,-0.617017 -0.26665,-0.976685 -0.266651,-0.362768 -0.722437,-0.362768 z m 0,-0.483692 q 0.744141,0 1.168921,0.483692 0.42478,0.483691 0.42478,1.339453 0,0.852661 -0.42478,1.339453 -0.42478,0.483691 -1.168921,0.483691 -0.747241,0 -1.172021,-0.483691 -0.42168,-0.486792 -0.42168,-1.339453 0,-0.855762 0.42168,-1.339453 0.42478,-0.483692 1.172021,-0.483692 z"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
id="path1937" />
|
||||
<path
|
||||
d="m 29.777661,26.264354 q 0,-0.629419 -0.260449,-0.985986 -0.257349,-0.359668 -0.710034,-0.359668 -0.452686,0 -0.713135,0.359668 -0.257348,0.356567 -0.257348,0.985986 0,0.629419 0.257348,0.989087 0.260449,0.356568 0.713135,0.356568 0.452685,0 0.710034,-0.356568 0.260449,-0.359668 0.260449,-0.989087 z m -1.940966,-1.212329 q 0.179833,-0.310058 0.452685,-0.458886 0.275952,-0.151929 0.657324,-0.151929 0.63252,0 1.026294,0.502295 0.396875,0.502295 0.396875,1.320849 0,0.818555 -0.396875,1.32085 -0.393774,0.502295 -1.026294,0.502295 -0.381372,0 -0.657324,-0.148828 -0.272852,-0.151929 -0.452685,-0.461988 v 0.520899 H 27.263086 V 23.17307 h 0.573609 z"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
id="path1939" />
|
||||
<path
|
||||
d="m 34.285913,26.118627 v 0.279053 h -2.623095 q 0.03721,0.589111 0.353466,0.899169 0.319361,0.306958 0.886768,0.306958 0.328662,0 0.63562,-0.08061 0.310059,-0.08062 0.613916,-0.241845 v 0.539501 q -0.306958,0.130225 -0.629419,0.198438 -0.322461,0.06821 -0.654224,0.06821 -0.830957,0 -1.317749,-0.483692 -0.483691,-0.483691 -0.483691,-1.308447 0,-0.852661 0.458887,-1.351855 0.461987,-0.502295 1.243335,-0.502295 0.700732,0 1.106909,0.452685 0.409277,0.449585 0.409277,1.224732 z m -0.570508,-0.167432 q -0.0062,-0.468188 -0.263549,-0.747241 -0.254248,-0.279053 -0.675928,-0.279053 -0.47749,0 -0.765845,0.269751 -0.285254,0.269751 -0.328662,0.759644 z"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
id="path1941" />
|
||||
<path
|
||||
d="m 37.721362,24.658251 v 0.533301 q -0.241845,-0.133326 -0.486792,-0.198438 -0.241845,-0.06821 -0.489892,-0.06821 -0.555005,0 -0.861963,0.353467 -0.306958,0.350366 -0.306958,0.985986 0,0.63562 0.306958,0.989087 0.306958,0.350366 0.861963,0.350366 0.248047,0 0.489892,-0.06511 0.244947,-0.06821 0.486792,-0.201538 v 0.5271 q -0.238745,0.111621 -0.496093,0.167431 -0.254248,0.05581 -0.542603,0.05581 -0.784448,0 -1.246435,-0.492993 -0.461988,-0.492993 -0.461988,-1.330152 0,-0.84956 0.465088,-1.336352 0.468189,-0.486792 1.280542,-0.486792 0.26355,0 0.514697,0.05581 0.251148,0.05271 0.486792,0.161231 z"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
id="path1943" />
|
||||
<path
|
||||
d="m 40.065406,24.924901 q -0.458887,0 -0.725537,0.359668 -0.266651,0.356568 -0.266651,0.979785 0,0.623218 0.26355,0.982886 0.266651,0.356567 0.728638,0.356567 0.455786,0 0.722436,-0.359668 0.266651,-0.359667 0.266651,-0.979785 0,-0.617016 -0.266651,-0.976684 -0.26665,-0.362769 -0.722436,-0.362769 z m 0,-0.483691 q 0.74414,0 1.168921,0.483691 0.42478,0.483692 0.42478,1.339453 0,0.852661 -0.42478,1.339453 -0.424781,0.483692 -1.168921,0.483692 -0.747241,0 -1.172022,-0.483692 -0.421679,-0.486792 -0.421679,-1.339453 0,-0.855761 0.421679,-1.339453 0.424781,-0.483691 1.172022,-0.483691 z"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
id="path1945" />
|
||||
<path
|
||||
d="m 45.305396,25.191552 q 0.21394,-0.384473 0.511596,-0.567408 0.297657,-0.182934 0.700733,-0.182934 0.542602,0 0.837158,0.381372 0.294556,0.378271 0.294556,1.079004 v 2.095996 H 47.07583 v -2.077393 q 0,-0.499194 -0.176733,-0.74104 -0.176734,-0.241845 -0.539502,-0.241845 -0.443384,0 -0.700733,0.294555 -0.257348,0.294556 -0.257348,0.803052 v 1.962671 h -0.573609 v -2.077393 q 0,-0.502295 -0.176733,-0.74104 -0.176733,-0.241845 -0.545703,-0.241845 -0.437183,0 -0.694531,0.297656 -0.257349,0.294555 -0.257349,0.799951 v 1.962671 h -0.573608 v -3.472656 h 0.573608 v 0.539502 q 0.195337,-0.319361 0.468189,-0.471289 0.272851,-0.151929 0.648022,-0.151929 0.378271,0 0.641821,0.192236 0.266651,0.192237 0.393775,0.558106 z"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
id="path1947" />
|
||||
<path
|
||||
d="m 51.760814,26.118627 v 0.279053 h -2.623095 q 0.03721,0.589111 0.353467,0.899169 0.31936,0.306958 0.886767,0.306958 0.328662,0 0.63562,-0.08061 0.310059,-0.08062 0.613916,-0.241845 v 0.539501 q -0.306958,0.130225 -0.629419,0.198438 -0.322461,0.06821 -0.654223,0.06821 -0.830957,0 -1.317749,-0.483692 -0.483692,-0.483691 -0.483692,-1.308447 0,-0.852661 0.458887,-1.351855 0.461987,-0.502295 1.243335,-0.502295 0.700732,0 1.106909,0.452685 0.409277,0.449585 0.409277,1.224732 z m -0.570507,-0.167432 q -0.0062,-0.468188 -0.26355,-0.747241 -0.254248,-0.279053 -0.675928,-0.279053 -0.47749,0 -0.765845,0.269751 -0.285254,0.269751 -0.328662,0.759644 z"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
id="path1949" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(-8.0007503,4.6950101)"
|
||||
id="g1005">
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect940);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text938"
|
||||
transform="translate(5.3453905,-0.80180863)"
|
||||
aria-label=""existing"">
|
||||
<path
|
||||
id="path1034"
|
||||
style="fill:#666666"
|
||||
d="m 53.313696,58.377759 v 1.720825 h -0.527099 v -1.720825 z m 1.172022,0 v 1.720825 h -0.5271 v -1.720825 z" />
|
||||
<path
|
||||
id="path1036"
|
||||
style="fill:#666666"
|
||||
d="m 58.671509,61.127978 v 0.279053 h -2.623096 q 0.03721,0.589112 0.353467,0.89917 0.31936,0.306958 0.886767,0.306958 0.328662,0 0.63562,-0.08062 0.310059,-0.08062 0.613916,-0.241846 V 62.8302 q -0.306958,0.130225 -0.629418,0.198438 -0.322461,0.06821 -0.654224,0.06821 -0.830957,0 -1.317749,-0.483692 -0.483691,-0.483691 -0.483691,-1.308447 0,-0.852661 0.458886,-1.351856 0.461988,-0.502295 1.243335,-0.502295 0.700733,0 1.106909,0.452686 0.409278,0.449585 0.409278,1.224731 z m -0.570508,-0.167431 q -0.0062,-0.468189 -0.26355,-0.747241 -0.254248,-0.279053 -0.675928,-0.279053 -0.47749,0 -0.765844,0.269751 -0.285254,0.269751 -0.328662,0.759643 z" />
|
||||
<path
|
||||
id="path1038"
|
||||
style="fill:#666666"
|
||||
d="m 62.38291,59.534277 -1.255737,1.68982 1.320849,1.782837 h -0.672827 l -1.010791,-1.364258 -1.010791,1.364258 h -0.672827 l 1.348755,-1.816944 -1.234033,-1.655713 h 0.672827 l 0.920874,1.237134 0.920874,-1.237134 z" />
|
||||
<path
|
||||
id="path1040"
|
||||
style="fill:#666666"
|
||||
d="m 63.254175,59.534277 h 0.570508 v 3.472657 h -0.570508 z m 0,-1.351855 h 0.570508 v 0.722436 h -0.570508 z" />
|
||||
<path
|
||||
id="path1042"
|
||||
style="fill:#666666"
|
||||
d="m 67.229125,59.636597 v 0.539502 q -0.241845,-0.124024 -0.502295,-0.186036 -0.260449,-0.06201 -0.539501,-0.06201 -0.424781,0 -0.638721,0.130224 -0.21084,0.130225 -0.21084,0.390674 0,0.198438 0.151929,0.313159 0.151928,0.111621 0.610815,0.213941 l 0.195337,0.04341 q 0.607715,0.130225 0.861963,0.36897 0.257349,0.235644 0.257349,0.660424 0,0.483692 -0.384473,0.765845 -0.381372,0.282154 -1.051099,0.282154 -0.279052,0 -0.58291,-0.05581 -0.300757,-0.05271 -0.63562,-0.161231 v -0.589111 q 0.31626,0.164331 0.623218,0.248047 0.306958,0.08062 0.607715,0.08062 0.403076,0 0.620117,-0.136426 0.217041,-0.139526 0.217041,-0.390673 0,-0.232544 -0.15813,-0.356568 -0.155029,-0.124023 -0.68523,-0.238745 l -0.198437,-0.04651 q -0.5302,-0.111621 -0.765845,-0.341064 -0.235644,-0.232544 -0.235644,-0.63562 0,-0.489893 0.347265,-0.756543 0.347266,-0.266651 0.985987,-0.266651 0.316259,0 0.595312,0.04651 0.279053,0.04651 0.514697,0.139527 z" />
|
||||
<path
|
||||
id="path1044"
|
||||
style="fill:#666666"
|
||||
d="m 68.89104,58.548291 v 0.985986 h 1.175122 v 0.443384 H 68.89104 v 1.885156 q 0,0.424781 0.114722,0.545703 0.117822,0.120923 0.474389,0.120923 h 0.586011 v 0.477491 h -0.586011 q -0.660425,0 -0.911572,-0.244947 -0.251148,-0.248047 -0.251148,-0.89917 v -1.885156 h -0.418579 v -0.443384 h 0.418579 v -0.985986 z" />
|
||||
<path
|
||||
id="path1046"
|
||||
style="fill:#666666"
|
||||
d="m 70.819604,59.534277 h 0.570508 v 3.472657 h -0.570508 z m 0,-1.351855 h 0.570508 v 0.722436 h -0.570508 z" />
|
||||
<path
|
||||
id="path1048"
|
||||
style="fill:#666666"
|
||||
d="m 75.467383,60.910937 v 2.095997 h -0.570508 v -2.077393 q 0,-0.492993 -0.192236,-0.737939 -0.192236,-0.244947 -0.576709,-0.244947 -0.461987,0 -0.728638,0.294556 -0.26665,0.294556 -0.26665,0.803052 v 1.962671 h -0.573608 v -3.472657 h 0.573608 v 0.539502 q 0.204639,-0.313159 0.480591,-0.468188 0.279053,-0.15503 0.641821,-0.15503 0.598413,0 0.905371,0.372071 0.306958,0.36897 0.306958,1.088305 z" />
|
||||
<path
|
||||
id="path1050"
|
||||
style="fill:#666666"
|
||||
d="m 78.896631,61.230298 q 0,-0.620117 -0.257348,-0.961182 -0.254248,-0.341064 -0.716236,-0.341064 -0.458886,0 -0.716235,0.341064 -0.254248,0.341065 -0.254248,0.961182 0,0.617016 0.254248,0.958081 0.257349,0.341064 0.716235,0.341064 0.461988,0 0.716236,-0.341064 0.257348,-0.341065 0.257348,-0.958081 z m 0.570508,1.345654 q 0,0.886768 -0.393774,1.317749 -0.393775,0.434082 -1.206128,0.434082 -0.300757,0 -0.567408,-0.04651 -0.26665,-0.04341 -0.517797,-0.136425 v -0.555005 q 0.251147,0.136425 0.496093,0.201538 0.244947,0.06511 0.499195,0.06511 0.561206,0 0.840258,-0.294556 0.279053,-0.291455 0.279053,-0.883667 v -0.282153 q -0.176733,0.306958 -0.452685,0.458887 -0.275952,0.151929 -0.660425,0.151929 -0.638721,0 -1.029395,-0.486792 -0.390673,-0.486792 -0.390673,-1.289844 0,-0.806153 0.390673,-1.292945 0.390674,-0.486792 1.029395,-0.486792 0.384473,0 0.660425,0.151929 0.275952,0.151929 0.452685,0.458887 v -0.5271 h 0.570508 z" />
|
||||
<path
|
||||
id="path1052"
|
||||
style="fill:#666666"
|
||||
d="m 81.181763,58.377759 v 1.720825 h -0.5271 v -1.720825 z m 1.172022,0 v 1.720825 h -0.5271 v -1.720825 z" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:0;font-family:sans-serif;white-space:pre;shape-inside:url(#rect940-0);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text938-4"
|
||||
transform="translate(-18.06801,9.7650822)"
|
||||
aria-label="implied complement">
|
||||
<path
|
||||
id="path1068"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 82.145606,59.057476 h 0.443729 v 2.700956 h -0.443729 z m 0,-1.051443 h 0.443729 v 0.561895 h -0.443729 z" />
|
||||
<path
|
||||
id="path1070"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 85.618263,59.575963 q 0.166398,-0.299034 0.397909,-0.441316 0.23151,-0.142283 0.545014,-0.142283 0.422024,0 0.651123,0.296623 0.229099,0.294211 0.229099,0.839225 v 1.63022 h -0.44614 v -1.61575 q 0,-0.388263 -0.137459,-0.576365 -0.137459,-0.188102 -0.419613,-0.188102 -0.344854,0 -0.545014,0.229099 -0.20016,0.229099 -0.20016,0.624596 v 1.526522 h -0.44614 v -1.61575 q 0,-0.390674 -0.137459,-0.576365 -0.13746,-0.188102 -0.424436,-0.188102 -0.340031,0 -0.540191,0.23151 -0.20016,0.229099 -0.20016,0.622185 v 1.526522 h -0.44614 v -2.700956 h 0.44614 v 0.419613 q 0.151928,-0.248391 0.364146,-0.366558 0.212218,-0.118167 0.504018,-0.118167 0.294211,0 0.499194,0.149517 0.207395,0.149518 0.306269,0.434082 z" />
|
||||
<path
|
||||
id="path1072"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 88.758124,61.353289 v 1.432471 h -0.44614 v -3.728284 h 0.44614 v 0.409967 q 0.139871,-0.241157 0.352089,-0.356912 0.21463,-0.118167 0.511252,-0.118167 0.49196,0 0.798229,0.390674 0.308681,0.390674 0.308681,1.027328 0,0.636654 -0.308681,1.027327 -0.306269,0.390674 -0.798229,0.390674 -0.296622,0 -0.511252,-0.115755 -0.212218,-0.118167 -0.352089,-0.359323 z m 1.509641,-0.942923 q 0,-0.489548 -0.202571,-0.766879 -0.20016,-0.279741 -0.552249,-0.279741 -0.352089,0 -0.554661,0.279741 -0.20016,0.277331 -0.20016,0.766879 0,0.489548 0.20016,0.76929 0.202572,0.27733 0.554661,0.27733 0.352089,0 0.552249,-0.27733 0.202571,-0.279742 0.202571,-0.76929 z" />
|
||||
<path
|
||||
id="path1074"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 91.463903,58.006033 h 0.443728 v 3.752399 h -0.443728 z" />
|
||||
<path
|
||||
id="path1076"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 92.833673,59.057476 h 0.443728 v 2.700956 h -0.443728 z m 0,-1.051443 h 0.443728 v 0.561895 h -0.443728 z" />
|
||||
<path
|
||||
id="path1078"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 96.513724,60.297022 v 0.217041 h -2.040186 q 0.02894,0.458198 0.274919,0.699355 0.248391,0.238745 0.689708,0.238745 0.255626,0 0.494372,-0.0627 0.241156,-0.0627 0.47749,-0.188102 v 0.419613 q -0.238745,0.101285 -0.489548,0.15434 -0.250803,0.05305 -0.508841,0.05305 -0.6463,0 -1.024916,-0.376204 -0.376205,-0.376205 -0.376205,-1.017682 0,-0.663181 0.356912,-1.051443 0.359324,-0.390674 0.967039,-0.390674 0.545014,0 0.860929,0.352089 0.318327,0.349677 0.318327,0.952569 z m -0.443728,-0.130225 q -0.0048,-0.364146 -0.204983,-0.581187 -0.197749,-0.217041 -0.525722,-0.217041 -0.371381,0 -0.595657,0.209806 -0.221864,0.209806 -0.255626,0.590834 z" />
|
||||
<path
|
||||
id="path1080"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 99.019343,59.467443 v -1.46141 h 0.443729 v 3.752399 h -0.443729 v -0.405143 q -0.139871,0.241156 -0.3545,0.359323 -0.212218,0.115755 -0.511253,0.115755 -0.489548,0 -0.798228,-0.390674 -0.306269,-0.390673 -0.306269,-1.027327 0,-0.636654 0.306269,-1.027328 0.30868,-0.390674 0.798228,-0.390674 0.299035,0 0.511253,0.118167 0.214629,0.115755 0.3545,0.356912 z m -1.512053,0.942923 q 0,0.489548 0.20016,0.76929 0.202572,0.27733 0.554661,0.27733 0.352089,0 0.55466,-0.27733 0.202572,-0.279742 0.202572,-0.76929 0,-0.489548 -0.202572,-0.766879 -0.202571,-0.279741 -0.55466,-0.279741 -0.352089,0 -0.554661,0.279741 -0.20016,0.277331 -0.20016,0.766879 z" />
|
||||
<path
|
||||
id="path1082"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 77.693853,65.334788 v 0.41479 q -0.188102,-0.103697 -0.378616,-0.15434 -0.188102,-0.05306 -0.381028,-0.05306 -0.43167,0 -0.670416,0.274919 -0.238745,0.272507 -0.238745,0.766878 0,0.494372 0.238745,0.76929 0.238746,0.272507 0.670416,0.272507 0.192926,0 0.381028,-0.05064 0.190514,-0.05305 0.378616,-0.156751 v 0.409966 q -0.185691,0.08682 -0.385851,0.130225 -0.197748,0.04341 -0.422024,0.04341 -0.610127,0 -0.96945,-0.383439 -0.359324,-0.38344 -0.359324,-1.034563 0,-0.660769 0.361735,-1.039385 0.364147,-0.378616 0.995978,-0.378616 0.204983,0 0.40032,0.04341 0.195337,0.041 0.378616,0.125401 z" />
|
||||
<path
|
||||
id="path1084"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 79.516998,65.542183 q -0.356912,0 -0.564307,0.279742 -0.207395,0.27733 -0.207395,0.762055 0,0.484725 0.204983,0.764467 0.207395,0.27733 0.566719,0.27733 0.3545,0 0.561895,-0.279741 0.207395,-0.279742 0.207395,-0.762056 0,-0.479902 -0.207395,-0.759643 -0.207395,-0.282154 -0.561895,-0.282154 z m 0,-0.376204 q 0.578776,0 0.909161,0.376204 0.330384,0.376205 0.330384,1.041797 0,0.663181 -0.330384,1.041797 -0.330385,0.376205 -0.909161,0.376205 -0.581188,0 -0.911573,-0.376205 -0.327973,-0.378616 -0.327973,-1.041797 0,-0.665592 0.327973,-1.041797 0.330385,-0.376204 0.911573,-0.376204 z" />
|
||||
<path
|
||||
id="path1086"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 83.592547,65.749578 q 0.166398,-0.299034 0.397909,-0.441317 0.23151,-0.142282 0.545014,-0.142282 0.422024,0 0.651123,0.296622 0.229099,0.294212 0.229099,0.839226 v 1.630219 h -0.44614 v -1.61575 q 0,-0.388262 -0.137459,-0.576364 -0.13746,-0.188103 -0.419613,-0.188103 -0.344854,0 -0.545014,0.229099 -0.200161,0.229099 -0.200161,0.624596 v 1.526522 h -0.446139 v -1.61575 q 0,-0.390674 -0.13746,-0.576364 -0.137459,-0.188103 -0.424436,-0.188103 -0.340031,0 -0.540191,0.231511 -0.20016,0.229099 -0.20016,0.622184 v 1.526522 h -0.44614 v -2.700955 h 0.44614 v 0.419613 q 0.151929,-0.248392 0.364147,-0.366559 0.212218,-0.118166 0.504017,-0.118166 0.294212,0 0.499195,0.149517 0.207395,0.149517 0.306269,0.434082 z" />
|
||||
<path
|
||||
id="path1088"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 86.732407,67.526903 v 1.432471 h -0.44614 v -3.728283 h 0.44614 v 0.409966 q 0.139871,-0.241156 0.352089,-0.356912 0.214629,-0.118166 0.511252,-0.118166 0.49196,0 0.798229,0.390674 0.308681,0.390674 0.308681,1.027327 0,0.636654 -0.308681,1.027328 -0.306269,0.390674 -0.798229,0.390674 -0.296623,0 -0.511252,-0.115755 -0.212218,-0.118167 -0.352089,-0.359324 z m 1.509641,-0.942923 q 0,-0.489548 -0.202571,-0.766878 -0.20016,-0.279742 -0.552249,-0.279742 -0.352089,0 -0.554661,0.279742 -0.20016,0.27733 -0.20016,0.766878 0,0.489548 0.20016,0.76929 0.202572,0.277331 0.554661,0.277331 0.352089,0 0.552249,-0.277331 0.202571,-0.279742 0.202571,-0.76929 z" />
|
||||
<path
|
||||
id="path1090"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 89.438187,64.179648 h 0.443728 v 3.752398 h -0.443728 z" />
|
||||
<path
|
||||
id="path1092"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 93.118238,66.470637 v 0.217041 h -2.040186 q 0.02894,0.458197 0.274919,0.699354 0.248391,0.238745 0.689708,0.238745 0.255626,0 0.494371,-0.0627 0.241157,-0.0627 0.477491,-0.188103 v 0.419613 q -0.238745,0.101286 -0.489548,0.15434 -0.250803,0.05306 -0.508841,0.05306 -0.6463,0 -1.024916,-0.376205 -0.376205,-0.376204 -0.376205,-1.017681 0,-0.663181 0.356912,-1.051443 0.359324,-0.390674 0.967039,-0.390674 0.545014,0 0.860929,0.352089 0.318327,0.349677 0.318327,0.952569 z M 92.67451,66.340412 q -0.0048,-0.364147 -0.204983,-0.581188 -0.197749,-0.217041 -0.525722,-0.217041 -0.371382,0 -0.595657,0.209807 -0.221865,0.209806 -0.255626,0.590834 z" />
|
||||
<path
|
||||
id="path1094"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 95.949418,65.749578 q 0.166398,-0.299034 0.397908,-0.441317 0.231511,-0.142282 0.545014,-0.142282 0.422025,0 0.651124,0.296622 0.229098,0.294212 0.229098,0.839226 v 1.630219 h -0.446139 v -1.61575 q 0,-0.388262 -0.13746,-0.576364 -0.137459,-0.188103 -0.419613,-0.188103 -0.344854,0 -0.545014,0.229099 -0.20016,0.229099 -0.20016,0.624596 v 1.526522 h -0.44614 v -1.61575 q 0,-0.390674 -0.137459,-0.576364 -0.137459,-0.188103 -0.424436,-0.188103 -0.340031,0 -0.540191,0.231511 -0.20016,0.229099 -0.20016,0.622184 v 1.526522 h -0.44614 v -2.700955 h 0.44614 v 0.419613 q 0.151929,-0.248392 0.364146,-0.366559 0.212218,-0.118166 0.504018,-0.118166 0.294211,0 0.499195,0.149517 0.207394,0.149517 0.306269,0.434082 z" />
|
||||
<path
|
||||
id="path1096"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 100.9703,66.470637 v 0.217041 h -2.040186 q 0.02894,0.458197 0.274919,0.699354 0.248391,0.238745 0.689708,0.238745 0.255629,0 0.494369,-0.0627 0.24116,-0.0627 0.47749,-0.188103 v 0.419613 q -0.23874,0.101286 -0.48955,0.15434 -0.2508,0.05306 -0.508836,0.05306 -0.6463,0 -1.024916,-0.376205 -0.376205,-0.376204 -0.376205,-1.017681 0,-0.663181 0.356912,-1.051443 0.359324,-0.390674 0.967039,-0.390674 0.545016,0 0.860926,0.352089 0.31833,0.349677 0.31833,0.952569 z m -0.44373,-0.130225 q -0.005,-0.364147 -0.20498,-0.581188 -0.19775,-0.217041 -0.525723,-0.217041 -0.371381,0 -0.595657,0.209807 -0.221864,0.209806 -0.255626,0.590834 z" />
|
||||
<path
|
||||
id="path1098"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 103.94376,66.301827 v 1.630219 h -0.44372 v -1.61575 q 0,-0.383439 -0.14952,-0.573953 -0.14952,-0.190514 -0.44855,-0.190514 -0.35933,0 -0.56672,0.229099 -0.2074,0.229099 -0.2074,0.624596 v 1.526522 h -0.44614 v -2.700955 h 0.44614 v 0.419613 q 0.15917,-0.243569 0.3738,-0.364147 0.21704,-0.120578 0.49919,-0.120578 0.46543,0 0.70418,0.289388 0.23874,0.286976 0.23874,0.84646 z" />
|
||||
<path
|
||||
id="path1100"
|
||||
style="font-size:4.93889px;line-height:1.25;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 105.27254,64.464213 v 0.766878 h 0.91398 v 0.344854 h -0.91398 v 1.466233 q 0,0.330385 0.0892,0.424436 0.0916,0.09405 0.36897,0.09405 h 0.45578 v 0.371381 h -0.45578 q -0.51367,0 -0.709,-0.190513 -0.19534,-0.192926 -0.19534,-0.699355 v -1.466233 h -0.32556 V 65.23109 h 0.32556 v -0.766878 z" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1013);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1011"
|
||||
transform="translate(-14.165285,7.4155566)"
|
||||
aria-label="subject">
|
||||
<path
|
||||
id="path1890"
|
||||
style="font-size:7.76111px"
|
||||
d="m 25.630531,63.353815 v 0.659391 q -0.29559,-0.151584 -0.613916,-0.227376 -0.318327,-0.07579 -0.659392,-0.07579 -0.519175,0 -0.780658,0.159163 -0.257693,0.159163 -0.257693,0.47749 0,0.242535 0.185691,0.38275 0.18569,0.136426 0.746552,0.261483 l 0.238745,0.05305 q 0.742762,0.159164 1.05351,0.450963 0.314537,0.28801 0.314537,0.807186 0,0.591178 -0.469911,0.936032 -0.466121,0.344854 -1.284676,0.344854 -0.341064,0 -0.712446,-0.06821 -0.367591,-0.06442 -0.776869,-0.197059 v -0.720025 q 0.38654,0.200849 0.761711,0.303168 0.375171,0.09853 0.742762,0.09853 0.492649,0 0.757921,-0.166742 0.265273,-0.170533 0.265273,-0.477491 0,-0.28422 -0.19327,-0.435804 -0.18948,-0.151584 -0.837503,-0.2918 l -0.242534,-0.05684 q -0.648023,-0.136425 -0.936033,-0.416856 -0.28801,-0.284221 -0.28801,-0.776869 0,-0.598758 0.424436,-0.924664 0.424436,-0.325906 1.205094,-0.325906 0.38654,0 0.727604,0.05685 0.341065,0.05684 0.629075,0.170532 z" />
|
||||
<path
|
||||
id="path1892"
|
||||
style="font-size:7.76111px"
|
||||
d="m 26.900048,65.79811 v -2.569352 h 0.697287 v 2.542824 q 0,0.602547 0.234956,0.905716 0.234955,0.299379 0.704866,0.299379 0.564651,0 0.890557,-0.360013 0.329696,-0.360012 0.329696,-0.981507 v -2.406399 h 0.697287 v 4.244357 H 29.75741 v -0.651812 q -0.253904,0.386539 -0.591179,0.57602 -0.333485,0.18569 -0.776868,0.18569 -0.731394,0 -1.110355,-0.454752 -0.37896,-0.454753 -0.37896,-1.330151 z m 1.754587,-2.671672 z" />
|
||||
<path
|
||||
id="path1894"
|
||||
style="font-size:7.76111px"
|
||||
d="m 34.945378,65.354726 q 0,-0.76929 -0.318326,-1.205094 -0.314537,-0.439594 -0.86782,-0.439594 -0.553282,0 -0.871609,0.439594 -0.314537,0.435804 -0.314537,1.205094 0,0.76929 0.314537,1.208884 0.318327,0.435804 0.871609,0.435804 0.553283,0 0.86782,-0.435804 0.318326,-0.439594 0.318326,-1.208884 z m -2.372292,-1.481735 q 0.219797,-0.378961 0.553282,-0.560862 0.337275,-0.185691 0.803396,-0.185691 0.77308,0 1.25436,0.613916 0.485069,0.613916 0.485069,1.614372 0,1.000455 -0.485069,1.614371 -0.48128,0.613916 -1.25436,0.613916 -0.466121,0 -0.803396,-0.181901 -0.333485,-0.18569 -0.553282,-0.564651 v 0.636654 H 31.872009 V 61.57649 h 0.701077 z" />
|
||||
<path
|
||||
id="path1896"
|
||||
style="font-size:7.76111px"
|
||||
d="m 36.825022,63.228758 h 0.697287 v 4.320149 q 0,0.810975 -0.310748,1.174777 -0.306958,0.363802 -0.992876,0.363802 h -0.265272 v -0.591178 h 0.18569 q 0.397909,0 0.541914,-0.185691 0.144005,-0.181901 0.144005,-0.76171 z m 0,-1.652268 h 0.697287 v 0.882978 h -0.697287 z" />
|
||||
<path
|
||||
id="path1898"
|
||||
style="font-size:7.76111px"
|
||||
d="m 42.607959,65.176614 v 0.341065 h -3.206005 q 0.04547,0.720025 0.432015,1.098985 0.390329,0.375171 1.083826,0.375171 0.401698,0 0.776869,-0.09853 0.378961,-0.09853 0.750342,-0.295589 v 0.659391 q -0.375171,0.159164 -0.76929,0.242535 -0.394119,0.08337 -0.799606,0.08337 -1.015614,0 -1.610582,-0.591178 -0.591178,-0.591178 -0.591178,-1.599213 0,-1.042141 0.560861,-1.652268 0.564651,-0.613916 1.519631,-0.613916 0.856451,0 1.352889,0.553283 0.500228,0.549492 0.500228,1.496893 z m -0.697287,-0.204638 q -0.0076,-0.57223 -0.322117,-0.913295 -0.310747,-0.341064 -0.826133,-0.341064 -0.583599,0 -0.936033,0.329695 -0.348643,0.329696 -0.401698,0.928453 z" />
|
||||
<path
|
||||
id="path1900"
|
||||
style="font-size:7.76111px"
|
||||
d="m 46.80684,63.391711 v 0.651812 q -0.29559,-0.162953 -0.594968,-0.242535 -0.29559,-0.08337 -0.598758,-0.08337 -0.678339,0 -1.05351,0.432015 -0.375171,0.428225 -0.375171,1.205094 0,0.776869 0.375171,1.208884 0.375171,0.428225 1.05351,0.428225 0.303168,0 0.598758,-0.07958 0.299378,-0.08337 0.594968,-0.246324 v 0.644233 q -0.2918,0.136425 -0.606337,0.204638 -0.310748,0.06821 -0.663181,0.06821 -0.95877,0 -1.523421,-0.602547 -0.564651,-0.602547 -0.564651,-1.62574 0,-1.038352 0.568441,-1.63332 0.57223,-0.594968 1.565106,-0.594968 0.322117,0 0.629075,0.06821 0.306958,0.06442 0.594968,0.19706 z" />
|
||||
<path
|
||||
id="path1902"
|
||||
style="font-size:7.76111px"
|
||||
d="m 48.7168,62.023664 v 1.205094 h 1.43626 v 0.541913 H 48.7168 v 2.30408 q 0,0.519175 0.140215,0.66697 0.144005,0.147795 0.57981,0.147795 h 0.716235 v 0.583599 h -0.716235 q -0.807186,0 -1.114144,-0.299379 -0.306958,-0.303168 -0.306958,-1.098985 v -2.30408 h -0.511597 v -0.541913 h 0.511597 v -1.205094 z" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1126);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1124-6"
|
||||
transform="translate(8.8376619,45.532048)"
|
||||
aria-label="+">
|
||||
<path
|
||||
id="path1226-9"
|
||||
style="font-size:8.46667px"
|
||||
d="m 34.687306,24.561394 v 2.302703 h 2.302703 v 0.702799 h -2.302703 v 2.302703 h -0.694531 v -2.302703 h -2.302703 v -0.702799 h 2.302703 v -2.302703 z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 87 KiB |
|
@ -0,0 +1,589 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="gramattically-transitive-past.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 212.46637 92.675973"
|
||||
height="350.27139"
|
||||
width="803.02252">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
x="10.841692"
|
||||
y="4.1634259"
|
||||
width="100.76061"
|
||||
height="33.408691"
|
||||
id="rect4499" />
|
||||
<rect
|
||||
id="rect1391"
|
||||
height="46.113094"
|
||||
width="93.738098"
|
||||
y="-70.55368"
|
||||
x="-15.096844" />
|
||||
<rect
|
||||
id="rect1385"
|
||||
height="25.324406"
|
||||
width="51.404762"
|
||||
y="-43.339394"
|
||||
x="39.331726" />
|
||||
<rect
|
||||
id="rect1379"
|
||||
height="25.324406"
|
||||
width="78.997025"
|
||||
y="35.657631"
|
||||
x="38.953751" />
|
||||
<rect
|
||||
id="rect1373"
|
||||
height="23.434525"
|
||||
width="29.104168"
|
||||
y="33.389771"
|
||||
x="57.474583" />
|
||||
<rect
|
||||
id="rect1360"
|
||||
height="77.422302"
|
||||
width="112.6993"
|
||||
y="6.553463"
|
||||
x="4.935894" />
|
||||
<rect
|
||||
id="rect1354"
|
||||
height="35.151787"
|
||||
width="93.738098"
|
||||
y="118.46915"
|
||||
x="35.83614" />
|
||||
<rect
|
||||
id="rect1348"
|
||||
height="28.348213"
|
||||
width="76.351189"
|
||||
y="116.23755"
|
||||
x="-56.012074" />
|
||||
<rect
|
||||
id="rect1165"
|
||||
height="44.73629"
|
||||
width="50.263763"
|
||||
y="61.904251"
|
||||
x="35.529755" />
|
||||
<rect
|
||||
id="rect1113"
|
||||
height="23.8125"
|
||||
width="56.69643"
|
||||
y="112.25893"
|
||||
x="37.041668" />
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible"
|
||||
id="Arrow1Lstart"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lstart">
|
||||
<path
|
||||
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||
style="fillRule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path841" />
|
||||
</marker>
|
||||
<rect
|
||||
x="37.041668"
|
||||
y="112.25893"
|
||||
width="56.69643"
|
||||
height="23.8125"
|
||||
id="rect1113-9" />
|
||||
<rect
|
||||
x="37.041668"
|
||||
y="112.25893"
|
||||
width="56.69643"
|
||||
height="23.8125"
|
||||
id="rect1141" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:window-y="118"
|
||||
inkscape:window-x="2167"
|
||||
inkscape:window-height="1080"
|
||||
inkscape:window-width="1515"
|
||||
fit-margin-left="10"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-top="10"
|
||||
units="px"
|
||||
showgrid="false"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:current-layer="text1358"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:cy="-1.8078828"
|
||||
inkscape:cx="406.88683"
|
||||
inkscape:zoom="0.9899495"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
inkscape:snap-global="false" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(52.843619,-52.585221)"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
d="m 122.9777,85.081856 h 33.44172 V 118.52357 H 122.9777 Z"
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.115;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect839-4" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1113-9);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1111-8"
|
||||
transform="translate(90.461538,-16.314846)"
|
||||
aria-label="verb">
|
||||
<path
|
||||
id="path1187"
|
||||
d="m 37.356241,115.83576 h 1.007687 l 1.808669,4.85757 1.80867,-4.85757 h 1.007687 l -2.170403,5.78775 h -1.291907 z" />
|
||||
<path
|
||||
id="path1189"
|
||||
d="m 49.252118,118.49192 v 0.46509 h -4.371813 q 0.06201,0.98185 0.58911,1.49861 0.532265,0.5116 1.477941,0.5116 0.547769,0 1.059364,-0.13436 0.516762,-0.13436 1.02319,-0.40308 v 0.89917 q -0.511595,0.21704 -1.049029,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.4211 0.764809,-2.25309 0.769976,-0.83715 2.072218,-0.83715 1.167884,0 1.844843,0.75447 0.682127,0.74931 0.682127,2.04121 z m -0.950844,-0.27905 q -0.01033,-0.78031 -0.439248,-1.2454 -0.423745,-0.46508 -1.126543,-0.46508 -0.795814,0 -1.276403,0.44958 -0.475422,0.44958 -0.547769,1.26607 z" />
|
||||
<path
|
||||
id="path1191"
|
||||
d="m 54.166531,116.7246 q -0.160196,-0.093 -0.351398,-0.13436 -0.186035,-0.0465 -0.41341,-0.0465 -0.80615,0 -1.240231,0.5271 -0.428913,0.52193 -0.428913,1.50378 v 3.0489 h -0.956011 v -5.78775 h 0.956011 v 0.89917 q 0.299723,-0.5271 0.780312,-0.78031 0.480589,-0.25838 1.167883,-0.25838 0.09819,0 0.217041,0.0155 0.118855,0.0103 0.263549,0.0362 z" />
|
||||
<path
|
||||
id="path1193"
|
||||
d="m 59.32899,118.7348 q 0,-1.04903 -0.43408,-1.6433 -0.428913,-0.59945 -1.183387,-0.59945 -0.754473,0 -1.188554,0.59945 -0.428913,0.59427 -0.428913,1.6433 0,1.04903 0.428913,1.64847 0.434081,0.59428 1.188554,0.59428 0.754474,0 1.183387,-0.59428 0.43408,-0.59944 0.43408,-1.64847 z m -3.234934,-2.02054 q 0.299722,-0.51676 0.754474,-0.76481 0.459918,-0.25321 1.095536,-0.25321 1.054196,0 1.710485,0.83715 0.661456,0.83716 0.661456,2.20141 0,1.36426 -0.661456,2.20141 -0.656289,0.83716 -1.710485,0.83716 -0.635618,0 -1.095536,-0.24805 -0.454752,-0.25321 -0.754474,-0.76998 v 0.86817 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(7.9375,-1.5481652)"
|
||||
id="g1333">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.965;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m -57.795068,100.26406 9.342265,9.28984 h 40.1025978 l 9.589407,-9.589405"
|
||||
id="path1169"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<g
|
||||
aria-label="subject / agent"
|
||||
transform="translate(-9.827381,-4.5357143)"
|
||||
id="text1346"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1348);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m -35.814111,119.98481 v 0.89917 q -0.403075,-0.20671 -0.837156,-0.31006 -0.43408,-0.10335 -0.899167,-0.10335 -0.707965,0 -1.064531,0.21704 -0.351398,0.21704 -0.351398,0.65112 0,0.33073 0.253213,0.52193 0.253214,0.18603 1.018023,0.35657 l 0.32556,0.0723 q 1.012855,0.21704 1.436601,0.61495 0.428913,0.39274 0.428913,1.1007 0,0.80615 -0.640786,1.27641 -0.635618,0.47025 -1.751826,0.47025 -0.465086,0 -0.971513,-0.093 -0.50126,-0.0878 -1.059364,-0.26871 v -0.98185 q 0.527098,0.27388 1.038693,0.41341 0.511595,0.13436 1.012855,0.13436 0.671791,0 1.033525,-0.22738 0.361734,-0.23254 0.361734,-0.65112 0,-0.38757 -0.263549,-0.59428 -0.258381,-0.2067 -1.142045,-0.3979 l -0.330729,-0.0775 q -0.883664,-0.18603 -1.276403,-0.56844 -0.39274,-0.38757 -0.39274,-1.05936 0,-0.81649 0.578774,-1.2609 0.578774,-0.44442 1.643306,-0.44442 0.527097,0 0.992184,0.0775 0.465086,0.0775 0.857826,0.23254 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3360" />
|
||||
<path
|
||||
d="m -34.082956,123.31793 v -3.50365 h 0.950843 v 3.46748 q 0,0.82165 0.320393,1.23506 0.320393,0.40824 0.961179,0.40824 0.769976,0 1.214392,-0.49092 0.449583,-0.49093 0.449583,-1.33842 v -3.28144 h 0.950844 v 5.78774 h -0.950844 v -0.88883 q -0.346231,0.5271 -0.806149,0.78548 -0.454751,0.25321 -1.059364,0.25321 -0.997352,0 -1.514114,-0.62011 -0.516763,-0.62012 -0.516763,-1.81384 z m 2.392611,-3.64318 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3362" />
|
||||
<path
|
||||
d="m -23.112084,122.71332 q 0,-1.04903 -0.434081,-1.64331 -0.428913,-0.59944 -1.183386,-0.59944 -0.754474,0 -1.188555,0.59944 -0.428913,0.59428 -0.428913,1.64331 0,1.04903 0.428913,1.64847 0.434081,0.59428 1.188555,0.59428 0.754473,0 1.183386,-0.59428 0.434081,-0.59944 0.434081,-1.64847 z m -3.234935,-2.02054 q 0.299723,-0.51677 0.754474,-0.76481 0.459919,-0.25322 1.095537,-0.25322 1.054196,0 1.710484,0.83716 0.661456,0.83715 0.661456,2.20141 0,1.36425 -0.661456,2.20141 -0.656288,0.83715 -1.710484,0.83715 -0.635618,0 -1.095537,-0.24804 -0.454751,-0.25322 -0.754474,-0.76998 v 0.86816 h -0.956011 v -8.04083 h 0.956011 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3364" />
|
||||
<path
|
||||
d="m -20.548942,119.81428 h 0.950844 v 5.89109 q 0,1.10588 -0.423746,1.60197 -0.418577,0.49609 -1.353918,0.49609 h -0.361734 v -0.80615 h 0.253214 q 0.542601,0 0.738971,-0.25321 0.196369,-0.24805 0.196369,-1.0387 z m 0,-2.25309 h 0.950844 v 1.20406 h -0.950844 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3366" />
|
||||
<path
|
||||
d="m -12.663144,122.47044 v 0.46509 h -4.371812 q 0.06201,0.98184 0.589109,1.49861 0.532266,0.51159 1.477941,0.51159 0.547769,0 1.059364,-0.13436 0.516763,-0.13435 1.02319,-0.40307 v 0.89917 q -0.511595,0.21704 -1.049028,0.33072 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196242,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.42109 0.764809,-2.25308 0.769977,-0.83716 2.072219,-0.83716 1.167883,0 1.844842,0.75448 0.682127,0.7493 0.682127,2.04121 z m -0.950843,-0.27905 q -0.01034,-0.78031 -0.439249,-1.2454 -0.423745,-0.46509 -1.126542,-0.46509 -0.795815,0 -1.276404,0.44959 -0.475422,0.44958 -0.547768,1.26606 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3368" />
|
||||
<path
|
||||
d="m -6.9374138,120.03649 v 0.88883 q -0.4030748,-0.22221 -0.8113174,-0.33073 -0.4030748,-0.11369 -0.816485,-0.11369 -0.9250052,0 -1.4365998,0.58911 -0.511595,0.58394 -0.511595,1.64331 0,1.05936 0.511595,1.64847 0.5115946,0.58394 1.4365998,0.58394 0.4134102,0 0.816485,-0.10852 0.4082426,-0.11369 0.8113174,-0.33589 v 0.87849 q -0.3979072,0.18604 -0.8268202,0.27905 -0.4237454,0.093 -0.9043347,0.093 -1.3074096,0 -2.0773863,-0.82165 -0.769976,-0.82165 -0.769976,-2.21691 0,-1.41593 0.775144,-2.22725 0.7803116,-0.81132 2.1342298,-0.81132 0.4392483,0 0.857826,0.093 0.4185778,0.0879 0.8113174,0.26872 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3370" />
|
||||
<path
|
||||
d="m -4.3329304,118.17097 v 1.64331 h 1.9585306 v 0.73897 h -1.9585306 v 3.14192 q 0,0.70796 0.1912022,0.9095 0.1963698,0.20154 0.7906469,0.20154 h 0.9766815 v 0.79581 h -0.9766815 q -1.1007045,0 -1.5192823,-0.40824 -0.4185777,-0.41341 -0.4185777,-1.49861 v -3.14192 h -0.6976296 v -0.73897 h 0.6976296 v -1.64331 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3372" />
|
||||
<path
|
||||
d="M 3.9404424,117.88675 H 4.818939 l -2.6871659,8.69712 H 1.2532765 Z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3374" />
|
||||
<path
|
||||
d="m -29.504439,135.92177 q -1.152381,0 -1.596796,0.26355 -0.444416,0.26355 -0.444416,0.89917 0,0.50643 0.330728,0.80615 0.335896,0.29455 0.909502,0.29455 0.790647,0 1.266069,-0.5581 0.480589,-0.56327 0.480589,-1.49344 v -0.21188 z m 1.896519,-0.39274 v 3.30212 h -0.950843 v -0.8785 q -0.325561,0.5271 -0.811317,0.78031 -0.485757,0.24805 -1.188555,0.24805 -0.888831,0 -1.415929,-0.49609 -0.521931,-0.50126 -0.521931,-1.33842 0,-0.97668 0.651121,-1.47277 0.656289,-0.4961 1.953363,-0.4961 h 1.333248 v -0.093 q 0,-0.65629 -0.434081,-1.01286 -0.428913,-0.36173 -1.209224,-0.36173 -0.496093,0 -0.966347,0.11885 -0.470254,0.11886 -0.904334,0.35657 v -0.8785 q 0.52193,-0.20153 1.012855,-0.29972 0.490924,-0.10335 0.956011,-0.10335 1.255733,0 1.875848,0.65112 0.620115,0.65112 0.620115,1.97403 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3376" />
|
||||
<path
|
||||
d="m -21.835681,135.8701 q 0,-1.03353 -0.428913,-1.60197 -0.423745,-0.56844 -1.193722,-0.56844 -0.764808,0 -1.193721,0.56844 -0.423746,0.56844 -0.423746,1.60197 0,1.02835 0.423746,1.59679 0.428913,0.56844 1.193721,0.56844 0.769977,0 1.193722,-0.56844 0.428913,-0.56844 0.428913,-1.59679 z m 0.950844,2.24275 q 0,1.47794 -0.656289,2.19624 -0.656289,0.72347 -2.010207,0.72347 -0.50126,0 -0.945676,-0.0775 -0.444415,-0.0724 -0.862993,-0.22737 v -0.92501 q 0.418578,0.22738 0.82682,0.3359 0.408243,0.10852 0.831988,0.10852 0.93534,0 1.400427,-0.49093 0.465086,-0.48575 0.465086,-1.47277 v -0.47026 q -0.294555,0.5116 -0.754473,0.76481 -0.459919,0.25322 -1.100705,0.25322 -1.064531,0 -1.715652,-0.81132 -0.651121,-0.81132 -0.651121,-2.14973 0,-1.34359 0.651121,-2.1549 0.651121,-0.81132 1.715652,-0.81132 0.640786,0 1.100705,0.25321 0.459918,0.25322 0.754473,0.76481 v -0.8785 h 0.950844 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3378" />
|
||||
<path
|
||||
d="m -13.97572,135.69957 v 0.46508 h -4.371812 q 0.06201,0.98185 0.589109,1.49861 0.532266,0.5116 1.477941,0.5116 0.547769,0 1.059364,-0.13436 0.516762,-0.13436 1.02319,-0.40307 v 0.89916 q -0.511595,0.21704 -1.049028,0.33073 -0.537434,0.11369 -1.09037,0.11369 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.4211 0.764809,-2.25309 0.769976,-0.83715 2.072218,-0.83715 1.167884,0 1.844843,0.75447 0.682127,0.74931 0.682127,2.04122 z m -0.950844,-0.27906 q -0.01033,-0.78031 -0.439248,-1.24539 -0.423745,-0.46509 -1.126542,-0.46509 -0.795815,0 -1.276404,0.44958 -0.475422,0.44959 -0.547769,1.26607 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3380" />
|
||||
<path
|
||||
d="m -7.6040366,135.33783 v 3.49332 H -8.55488 v -3.46231 q 0,-0.82166 -0.3203928,-1.2299 -0.3203929,-0.40824 -0.9611786,-0.40824 -0.7699766,0 -1.2143926,0.49092 -0.444416,0.49093 -0.444416,1.33842 v 3.27111 h -0.956011 v -5.78775 h 0.956011 v 0.89917 q 0.341064,-0.52193 0.800983,-0.78031 0.465086,-0.25838 1.0696983,-0.25838 0.997352,0 1.508947,0.62011 0.5115951,0.61495 0.5115951,1.81384 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3382" />
|
||||
<path
|
||||
d="m -4.7566745,131.4001 v 1.6433 h 1.9585305 v 0.73898 h -1.9585305 v 3.14191 q 0,0.70797 0.1912022,0.9095 0.1963698,0.20154 0.7906469,0.20154 h 0.9766814 v 0.79582 h -0.9766814 q -1.1007045,0 -1.5192823,-0.40825 -0.4185778,-0.41341 -0.4185778,-1.49861 v -3.14191 h -0.6976296 v -0.73898 h 0.6976296 v -1.6433 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path3384" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1360);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1358"
|
||||
transform="translate(-120.88099,10.440184)"
|
||||
aria-label="plain noun / pronoun ">
|
||||
<g
|
||||
aria-label="inflected noun / pronoun"
|
||||
transform="matrix(0.91075878,0,0,0.91075878,44.423281,40.361891)"
|
||||
id="text4497"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0.95;font-family:sans-serif;white-space:pre;shape-inside:url(#rect4499);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 28.822611,7.310097 h 0.760677 v 4.63021 h -0.760677 z m 0,-1.8024746 h 0.760677 v 0.963249 h -0.760677 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4503" />
|
||||
<path
|
||||
d="M 35.019651,9.1456446 V 11.940307 H 34.258974 V 9.1704493 q 0,-0.6573244 -0.256316,-0.9839196 -0.256315,-0.3265952 -0.768945,-0.3265952 -0.615984,0 -0.971518,0.392741 -0.355534,0.3927411 -0.355534,1.0707361 V 11.940307 H 31.14185 v -4.63021 h 0.764811 v 0.7193363 q 0.272852,-0.4175458 0.640788,-0.6242516 0.372071,-0.2067058 0.855762,-0.2067058 0.797885,0 1.207162,0.4960939 0.409278,0.4919599 0.409278,1.4510748 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4505" />
|
||||
<path
|
||||
d="m 38.169847,5.5076224 h 2.116668 V 11.940307 H 39.521703 V 6.1401421 h -1.360124 q -0.409277,0 -0.570508,0.1653647 -0.157096,0.1653646 -0.157096,0.5953127 V 7.310097 h 1.252637 V 7.9012757 H 37.433975 V 11.940307 H 36.669163 V 7.9012757 H 35.941559 V 7.310097 h 0.727604 V 6.987636 q 0,-0.7730798 0.359668,-1.1244796 0.359668,-0.355534 1.141016,-0.355534 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4507" />
|
||||
<path
|
||||
d="m 45.846901,9.4350328 v 0.3720704 h -3.497463 q 0.04961,0.7854818 0.47129,1.1988938 0.425814,0.409277 1.182357,0.409277 0.438216,0 0.847494,-0.107487 0.413411,-0.107487 0.818555,-0.322461 v 0.719337 q -0.409278,0.173632 -0.839226,0.264583 -0.429948,0.09095 -0.872298,0.09095 -1.107944,0 -1.757,-0.644923 -0.644922,-0.644922 -0.644922,-1.7445966 0,-1.136882 0.611849,-1.8024747 0.615984,-0.6697268 1.657781,-0.6697268 0.93431,0 1.475879,0.603581 0.545704,0.5994468 0.545704,1.6329759 z M 45.086223,9.2117905 q -0.0083,-0.6242516 -0.3514,-0.996322 -0.338997,-0.3720705 -0.901237,-0.3720705 -0.636654,0 -1.021127,0.3596681 -0.380338,0.3596682 -0.438216,1.0128585 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4509" />
|
||||
<path
|
||||
d="M 50.427501,7.487864 V 8.198932 Q 50.10504,8.021165 49.778445,7.9343486 49.455984,7.843398 49.125255,7.843398 q -0.740007,0 -1.149285,0.4712893 -0.409277,0.4671551 -0.409277,1.3146489 0,0.8474938 0.409277,1.3187828 0.409278,0.467155 1.149285,0.467155 0.330729,0 0.65319,-0.08682 0.326595,-0.09095 0.649056,-0.268718 v 0.7028 q -0.318327,0.148828 -0.661458,0.223242 -0.338998,0.07442 -0.723471,0.07442 -1.045931,0 -1.661914,-0.657325 -0.615984,-0.657324 -0.615984,-1.7735358 0,-1.1327478 0.620118,-1.7818041 0.624251,-0.6490562 1.70739,-0.6490562 0.3514,0 0.686263,0.074414 0.334863,0.07028 0.649056,0.214974 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4511" />
|
||||
<path
|
||||
d="M 52.511097,5.9954481 V 7.310097 h 1.56683 v 0.5911787 h -1.56683 v 2.5135423 q 0,0.566374 0.152962,0.727605 0.157097,0.16123 0.63252,0.16123 h 0.781348 v 0.636654 h -0.781348 q -0.880567,0 -1.21543,-0.326595 -0.334863,-0.330729 -0.334863,-1.198894 V 7.9012757 H 51.18818 V 7.310097 h 0.558106 V 5.9954481 Z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4513" />
|
||||
<path
|
||||
d="m 59.042999,9.4350328 v 0.3720704 h -3.497462 q 0.04961,0.7854818 0.471289,1.1988938 0.425814,0.409277 1.182357,0.409277 0.438216,0 0.847494,-0.107487 0.413412,-0.107487 0.818555,-0.322461 v 0.719337 q -0.409277,0.173632 -0.839226,0.264583 -0.429948,0.09095 -0.872298,0.09095 -1.107943,0 -1.757,-0.644923 -0.644922,-0.644922 -0.644922,-1.7445966 0,-1.136882 0.61185,-1.8024747 0.615983,-0.6697268 1.65778,-0.6697268 0.93431,0 1.47588,0.603581 0.545703,0.5994468 0.545703,1.6329759 z M 58.282322,9.2117905 q -0.0083,-0.6242516 -0.3514,-0.996322 -0.338998,-0.3720705 -0.901238,-0.3720705 -0.636653,0 -1.021126,0.3596681 -0.380339,0.3596682 -0.438217,1.0128585 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4515" />
|
||||
<path
|
||||
d="M 63.338346,8.0128968 V 5.5076224 h 0.760677 v 6.4326846 h -0.760677 v -0.694531 q -0.239779,0.413411 -0.607715,0.615983 -0.363803,0.198438 -0.876433,0.198438 -0.839226,0 -1.368393,-0.669727 -0.525032,-0.669727 -0.525032,-1.7611338 0,-1.0914066 0.525032,-1.7611335 0.529167,-0.6697268 1.368393,-0.6697268 0.51263,0 0.876433,0.2025717 0.367936,0.1984376 0.607715,0.6118492 z m -2.592091,1.6164394 q 0,0.8392258 0.343131,1.3187828 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.950847,-0.475424 0.347266,-0.479557 0.347266,-1.3187828 0,-0.8392256 -0.347266,-1.3146489 -0.347266,-0.4795575 -0.950847,-0.4795575 -0.603581,0 -0.950847,0.4795575 -0.343131,0.4754233 -0.343131,1.3146489 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4517" />
|
||||
<path
|
||||
d="M 72.210162,9.1456446 V 11.940307 H 71.449484 V 9.1704493 q 0,-0.6573244 -0.256315,-0.9839196 -0.256315,-0.3265952 -0.768946,-0.3265952 -0.615983,0 -0.971517,0.392741 -0.355534,0.3927411 -0.355534,1.0707361 v 2.6168954 h -0.764811 v -4.63021 h 0.764811 v 0.7193363 q 0.272852,-0.4175458 0.640788,-0.6242516 0.372071,-0.2067058 0.855762,-0.2067058 0.797885,0 1.207162,0.4960939 0.409278,0.4919599 0.409278,1.4510748 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4519" />
|
||||
<path
|
||||
d="m 75.529854,7.843398 q -0.61185,0 -0.967384,0.4795575 -0.355534,0.4754234 -0.355534,1.3063807 0,0.8309578 0.3514,1.3105148 0.355534,0.475423 0.971518,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.3063808 0,-0.8226891 -0.355534,-1.3022466 Q 76.137569,7.843398 75.529854,7.843398 Z m 0,-0.6449221 q 0.992187,0 1.558561,0.6449221 0.566374,0.6449222 0.566374,1.7859382 0,1.1368818 -0.566374,1.7859378 -0.566374,0.644923 -1.558561,0.644923 -0.996322,0 -1.562696,-0.644923 -0.56224,-0.649056 -0.56224,-1.7859378 0,-1.141016 0.56224,-1.7859382 0.566374,-0.6449221 1.562696,-0.6449221 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4521" />
|
||||
<path
|
||||
d="M 78.833014,10.113028 V 7.310097 h 0.760677 v 2.773992 q 0,0.657325 0.256315,0.988054 0.256316,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359668,-0.392741 0.359668,-1.0707362 V 7.310097 h 0.760678 v 4.63021 h -0.760678 v -0.711068 q -0.276985,0.42168 -0.644922,0.628386 -0.363802,0.202572 -0.847494,0.202572 -0.797884,0 -1.211296,-0.496094 -0.413411,-0.496094 -0.413411,-1.451075 z M 80.74711,7.1984759 Z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4523" />
|
||||
<path
|
||||
d="M 88.134776,9.1456446 V 11.940307 H 87.374098 V 9.1704493 q 0,-0.6573244 -0.256315,-0.9839196 -0.256315,-0.3265952 -0.768946,-0.3265952 -0.615983,0 -0.971517,0.392741 -0.355534,0.3927411 -0.355534,1.0707361 v 2.6168954 h -0.764811 v -4.63021 h 0.764811 v 0.7193363 q 0.272852,-0.4175458 0.640788,-0.6242516 0.372071,-0.2067058 0.855762,-0.2067058 0.797885,0 1.207162,0.4960939 0.409278,0.4919599 0.409278,1.4510748 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4525" />
|
||||
<path
|
||||
d="m 93.707563,5.7680717 h 0.7028 l -2.149741,6.9577173 h -0.702799 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4527" />
|
||||
<path
|
||||
d="m 45.177175,21.29991 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239778,-0.413411 0.603581,-0.611849 0.367936,-0.202572 0.876432,-0.202572 0.84336,0 1.368393,0.669727 0.529167,0.669727 0.529167,1.761134 0,1.091406 -0.529167,1.761133 -0.525033,0.669727 -1.368393,0.669727 -0.508496,0 -0.876432,-0.198438 -0.363803,-0.202571 -0.603581,-0.615983 z m 2.587956,-1.616439 q 0,-0.839226 -0.347265,-1.314649 -0.343132,-0.479558 -0.946713,-0.479558 -0.603581,0 -0.950847,0.479558 -0.343131,0.475423 -0.343131,1.314649 0,0.839225 0.343131,1.318783 0.347266,0.475423 0.950847,0.475423 0.603581,0 0.946713,-0.475423 0.347265,-0.479558 0.347265,-1.318783 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4529" />
|
||||
<path
|
||||
d="m 52.498694,18.075299 q -0.128157,-0.07441 -0.28112,-0.107487 -0.148828,-0.03721 -0.330729,-0.03721 -0.644922,0 -0.992188,0.42168 -0.343131,0.417546 -0.343131,1.203028 v 2.439129 h -0.764812 v -4.630211 h 0.764812 v 0.719337 q 0.239778,-0.42168 0.624251,-0.624252 0.384473,-0.206706 0.93431,-0.206706 0.07855,0 0.173633,0.0124 0.09508,0.0083 0.21084,0.02894 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4531" />
|
||||
<path
|
||||
d="m 54.917153,17.897532 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.351399,1.310514 0.355534,0.475424 0.971518,0.475424 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.30638 0,-0.82269 -0.355534,-1.302247 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644923 0.566374,1.785939 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785939 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4533" />
|
||||
<path
|
||||
d="m 62.147721,19.199779 v 2.794663 h -0.760677 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 H 58.26992 v -4.630211 h 0.764812 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4535" />
|
||||
<path
|
||||
d="m 65.467417,17.897532 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.3514,1.310514 0.355534,0.475424 0.971517,0.475424 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.30638 0,-0.82269 -0.355534,-1.302247 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644923 0.566374,1.785939 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785939 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4537" />
|
||||
<path
|
||||
d="m 68.770575,20.167162 v -2.802931 h 0.760678 v 2.773992 q 0,0.657325 0.256315,0.988054 0.256315,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359668,-0.392741 0.359668,-1.070736 v -2.625164 h 0.760677 v 4.630211 h -0.760677 v -0.711068 q -0.276986,0.421679 -0.644922,0.628385 -0.363802,0.202572 -0.847494,0.202572 -0.797884,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4539" />
|
||||
<path
|
||||
d="m 78.072337,19.199779 v 2.794663 H 77.31166 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764812 v -4.630211 h 0.764812 v 0.719337 q 0.272851,-0.417546 0.640788,-0.624252 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path4541" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect982);fill:#999999;fill-opacity:1;stroke:none"
|
||||
id="text980"
|
||||
transform="matrix(0.82417526,0,0,0.82417526,127.75251,22.723474)"
|
||||
aria-label="implied 3rd. pers. masc. sing.">
|
||||
<path
|
||||
id="path1035"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 50.656106,43.693185 h 0.950843 v 5.787742 h -0.950843 z m 0,-2.253085 h 0.950843 v 1.204057 h -0.950843 z" />
|
||||
<path
|
||||
id="path1037"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 58.097488,44.804225 q 0.356566,-0.640786 0.852658,-0.945676 0.496093,-0.30489 1.167884,-0.30489 0.904335,0 1.395259,0.635618 0.490925,0.630451 0.490925,1.798335 v 3.493315 h -0.956011 v -3.46231 q 0,-0.831988 -0.294555,-1.235063 -0.294555,-0.403074 -0.899167,-0.403074 -0.738971,0 -1.167884,0.490924 -0.428913,0.490925 -0.428913,1.338415 v 3.271108 h -0.956011 v -3.46231 q 0,-0.837155 -0.294554,-1.235063 -0.294555,-0.403074 -0.909503,-0.403074 -0.728635,0 -1.157548,0.496092 -0.428913,0.490924 -0.428913,1.333247 v 3.271108 h -0.956011 v -5.787742 h 0.956011 v 0.899167 q 0.325561,-0.532265 0.780312,-0.785479 0.454751,-0.253214 1.080034,-0.253214 0.63045,0 1.069698,0.320393 0.444416,0.320393 0.656289,0.930173 z" />
|
||||
<path
|
||||
id="path1039"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 64.825738,48.612766 v 3.06957 h -0.956011 v -7.989151 h 0.956011 v 0.878497 q 0.299722,-0.516763 0.754474,-0.764809 0.459918,-0.253214 1.095536,-0.253214 1.054196,0 1.710485,0.837156 0.661456,0.837155 0.661456,2.201409 0,1.364253 -0.661456,2.201409 -0.656289,0.837155 -1.710485,0.837155 -0.635618,0 -1.095536,-0.248046 -0.454752,-0.253213 -0.754474,-0.769976 z m 3.234934,-2.020542 q 0,-1.049028 -0.43408,-1.643305 -0.428913,-0.599445 -1.183387,-0.599445 -0.754473,0 -1.188554,0.599445 -0.428913,0.594277 -0.428913,1.643305 0,1.049028 0.428913,1.648473 0.434081,0.594277 1.188554,0.594277 0.754474,0 1.183387,-0.594277 0.43408,-0.599445 0.43408,-1.648473 z" />
|
||||
<path
|
||||
id="path1041"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 70.623814,41.4401 h 0.950843 v 8.040827 h -0.950843 z" />
|
||||
<path
|
||||
id="path1043"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 73.559027,43.693185 h 0.950844 v 5.787742 h -0.950844 z m 0,-2.253085 h 0.950844 v 1.204057 h -0.950844 z" />
|
||||
<path
|
||||
id="path1045"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 81.444825,46.349345 v 0.465087 h -4.371812 q 0.06201,0.981849 0.589109,1.498612 0.532266,0.511595 1.477941,0.511595 0.547769,0 1.059364,-0.134359 0.516763,-0.134358 1.02319,-0.403075 v 0.899167 q -0.511595,0.217041 -1.049028,0.330729 -0.537433,0.113687 -1.09037,0.113687 -1.384924,0 -2.196241,-0.806149 -0.80615,-0.80615 -0.80615,-2.180739 0,-1.421097 0.764809,-2.253085 0.769976,-0.837156 2.072218,-0.837156 1.167884,0 1.844843,0.754474 0.682127,0.749306 0.682127,2.041212 z m -0.950843,-0.279051 q -0.01034,-0.780312 -0.439249,-1.245399 -0.423745,-0.465086 -1.126542,-0.465086 -0.795815,0 -1.276404,0.449584 -0.475422,0.449583 -0.547769,1.266068 z" />
|
||||
<path
|
||||
id="path1047"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="M 86.813989,44.571682 V 41.4401 h 0.950843 v 8.040827 h -0.950843 v -0.868161 q -0.299723,0.516763 -0.759641,0.769976 -0.454751,0.248046 -1.095537,0.248046 -1.049028,0 -1.710485,-0.837155 -0.656288,-0.837156 -0.656288,-2.201409 0,-1.364254 0.656288,-2.201409 0.661457,-0.837156 1.710485,-0.837156 0.640786,0 1.095537,0.253214 0.459918,0.248046 0.759641,0.764809 z m -3.240102,2.020542 q 0,1.049028 0.428913,1.648473 0.434081,0.594277 1.188554,0.594277 0.754474,0 1.188554,-0.594277 0.434081,-0.599445 0.434081,-1.648473 0,-1.049028 -0.434081,-1.643305 -0.43408,-0.599445 -1.188554,-0.599445 -0.754473,0 -1.188554,0.599445 -0.428913,0.594277 -0.428913,1.643305 z" />
|
||||
<path
|
||||
id="path1049"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 48.061957,58.550114 q 0.749306,0.160196 1.167884,0.666623 0.423745,0.506428 0.423745,1.250566 0,1.142046 -0.785479,1.767329 -0.78548,0.625282 -2.232415,0.625282 -0.485757,0 -1.00252,-0.09819 -0.511595,-0.09302 -1.059363,-0.284219 v -1.007687 q 0.434081,0.253213 0.950843,0.382404 0.516763,0.129191 1.080034,0.129191 0.981849,0 1.493444,-0.387572 0.516763,-0.387572 0.516763,-1.126543 0,-0.682127 -0.480589,-1.064531 Q 47.658882,59.0152 46.806224,59.0152 h -0.899167 v -0.857826 h 0.940508 q 0.769976,0 1.178219,-0.30489 0.408242,-0.310058 0.408242,-0.888832 0,-0.594277 -0.423745,-0.909502 -0.418578,-0.320393 -1.204057,-0.320393 -0.428913,0 -0.919838,0.09302 -0.490924,0.09302 -1.080034,0.289387 v -0.930172 q 0.594277,-0.165364 1.11104,-0.248046 0.52193,-0.08268 0.981849,-0.08268 1.188554,0 1.881016,0.542601 0.692462,0.537433 0.692462,1.457271 0,0.640786 -0.366901,1.085202 -0.366902,0.439248 -1.043861,0.60978 z" />
|
||||
<path
|
||||
id="path1051"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 54.857386,57.811143 q -0.160196,-0.09302 -0.351398,-0.134358 -0.186035,-0.04651 -0.41341,-0.04651 -0.80615,0 -1.240231,0.527098 -0.428913,0.52193 -0.428913,1.503779 v 3.0489 H 51.467423 V 56.92231 h 0.956011 v 0.899167 q 0.299722,-0.527098 0.780312,-0.780311 0.480589,-0.258382 1.167883,-0.258382 0.09819,0 0.217041,0.0155 0.118855,0.01033 0.263549,0.03617 z" />
|
||||
<path
|
||||
id="path1053"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 59.48758,57.800808 v -3.131582 h 0.950843 v 8.040827 H 59.48758 v -0.868161 q -0.299722,0.516763 -0.759641,0.769976 -0.454751,0.248046 -1.095537,0.248046 -1.049028,0 -1.710484,-0.837155 -0.656289,-0.837156 -0.656289,-2.201409 0,-1.364254 0.656289,-2.201409 0.661456,-0.837156 1.710484,-0.837156 0.640786,0 1.095537,0.253214 0.459919,0.248046 0.759641,0.764809 z m -3.240102,2.020542 q 0,1.049028 0.428913,1.648473 0.434081,0.594277 1.188554,0.594277 0.754474,0 1.188554,-0.594277 0.434081,-0.599445 0.434081,-1.648473 0,-1.049028 -0.434081,-1.643305 -0.43408,-0.599445 -1.188554,-0.599445 -0.754473,0 -1.188554,0.599445 -0.428913,0.594277 -0.428913,1.643305 z" />
|
||||
<path
|
||||
id="path1055"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 62.531312,61.397476 h 1.090369 v 1.312577 h -1.090369 z" />
|
||||
<path
|
||||
id="path1057"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 70.055376,61.841892 v 3.06957 h -0.956011 v -7.989151 h 0.956011 v 0.878497 q 0.299722,-0.516763 0.754473,-0.764809 0.459919,-0.253214 1.095537,-0.253214 1.054196,0 1.710485,0.837156 0.661456,0.837155 0.661456,2.201409 0,1.364253 -0.661456,2.201409 -0.656289,0.837155 -1.710485,0.837155 -0.635618,0 -1.095537,-0.248046 -0.454751,-0.253213 -0.754473,-0.769976 z M 73.29031,59.82135 q 0,-1.049028 -0.43408,-1.643305 -0.428913,-0.599445 -1.183387,-0.599445 -0.754473,0 -1.188554,0.599445 -0.428913,0.594277 -0.428913,1.643305 0,1.049028 0.428913,1.648473 0.434081,0.594277 1.188554,0.594277 0.754474,0 1.183387,-0.594277 0.43408,-0.599445 0.43408,-1.648473 z" />
|
||||
<path
|
||||
id="path1059"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 80.804039,59.578471 v 0.465087 h -4.371812 q 0.06201,0.981849 0.58911,1.498612 0.532265,0.511595 1.477941,0.511595 0.547768,0 1.059363,-0.134359 0.516763,-0.134358 1.02319,-0.403075 v 0.899167 q -0.511595,0.217041 -1.049028,0.330729 -0.537433,0.113687 -1.090369,0.113687 -1.384924,0 -2.196241,-0.806149 -0.80615,-0.80615 -0.80615,-2.180739 0,-1.421097 0.764809,-2.253085 0.769976,-0.837156 2.072218,-0.837156 1.167884,0 1.844843,0.754474 0.682126,0.749306 0.682126,2.041212 z M 79.853196,59.29942 q -0.01033,-0.780312 -0.439248,-1.245399 -0.423746,-0.465086 -1.126543,-0.465086 -0.795814,0 -1.276404,0.449584 -0.475421,0.449583 -0.547768,1.266068 z" />
|
||||
<path
|
||||
id="path1061"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 85.718452,57.811143 q -0.160196,-0.09302 -0.351398,-0.134358 -0.186035,-0.04651 -0.413411,-0.04651 -0.806149,0 -1.24023,0.527098 -0.428913,0.52193 -0.428913,1.503779 v 3.0489 H 82.328489 V 56.922311 H 83.2845 v 0.899167 q 0.299722,-0.527098 0.780312,-0.780311 0.480589,-0.258382 1.167883,-0.258382 0.09818,0 0.217041,0.0155 0.118855,0.01033 0.263549,0.03617 z" />
|
||||
<path
|
||||
id="path1063"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="M 90.415825,57.092843 V 57.99201 Q 90.01275,57.785305 89.578669,57.681952 89.144589,57.5786 88.679502,57.5786 q -0.707965,0 -1.064531,0.21704 -0.351399,0.21704 -0.351399,0.651121 0,0.330728 0.253214,0.52193 0.253214,0.186035 1.018023,0.356567 l 0.32556,0.07235 q 1.012855,0.217041 1.4366,0.614948 0.428913,0.39274 0.428913,1.100705 0,0.806149 -0.640785,1.276403 -0.635618,0.470254 -1.751826,0.470254 -0.465086,0 -0.971514,-0.09302 -0.501259,-0.08785 -1.059363,-0.268717 v -0.981849 q 0.527098,0.273885 1.038693,0.413411 0.511595,0.134358 1.012855,0.134358 0.671791,0 1.033525,-0.227376 0.361734,-0.232543 0.361734,-0.651121 0,-0.387572 -0.263549,-0.594277 -0.258381,-0.206705 -1.142046,-0.397907 l -0.330728,-0.07751 q -0.883664,-0.186035 -1.276403,-0.568439 -0.39274,-0.387572 -0.39274,-1.059364 0,-0.816485 0.578774,-1.260901 0.578774,-0.444416 1.643305,-0.444416 0.527098,0 0.992185,0.07752 0.465086,0.07751 0.857826,0.232543 z" />
|
||||
<path
|
||||
id="path1065"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 92.379525,61.397476 h 1.09037 v 1.312577 h -1.09037 z" />
|
||||
<path
|
||||
id="path1067"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 44.620317,71.262477 q 0.356567,-0.640786 0.852659,-0.945676 0.496092,-0.30489 1.167884,-0.30489 0.904334,0 1.395259,0.635618 0.490924,0.630451 0.490924,1.798334 v 3.493316 h -0.956011 v -3.46231 q 0,-0.831988 -0.294554,-1.235063 -0.294555,-0.403074 -0.899167,-0.403074 -0.738971,0 -1.167884,0.490924 -0.428913,0.490925 -0.428913,1.338415 v 3.271108 h -0.956011 v -3.46231 q 0,-0.837155 -0.294555,-1.235063 -0.294554,-0.403074 -0.909502,-0.403074 -0.728635,0 -1.157548,0.496092 -0.428913,0.490924 -0.428913,1.333247 v 3.271108 h -0.956011 v -5.787742 h 0.956011 v 0.899167 q 0.32556,-0.532265 0.780311,-0.785479 0.454751,-0.253214 1.080034,-0.253214 0.630451,0 1.069699,0.320393 0.444416,0.320393 0.656288,0.930173 z" />
|
||||
<path
|
||||
id="path1069"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 53.059052,73.029805 q -1.152381,0 -1.596797,0.263549 -0.444416,0.263549 -0.444416,0.899167 0,0.506428 0.330728,0.80615 0.335896,0.294555 0.909503,0.294555 0.790647,0 1.266068,-0.558104 0.480589,-0.563271 0.480589,-1.493444 v -0.211873 z m 1.896519,-0.392739 v 3.302113 h -0.950844 v -0.878496 q -0.32556,0.527098 -0.811317,0.780311 -0.485757,0.248046 -1.188554,0.248046 -0.888832,0 -1.41593,-0.496092 -0.52193,-0.50126 -0.52193,-1.338415 0,-0.976682 0.651121,-1.472774 0.656288,-0.496092 1.953363,-0.496092 h 1.333247 v -0.09302 q 0,-0.656289 -0.43408,-1.012855 -0.428913,-0.361734 -1.209225,-0.361734 -0.496092,0 -0.966346,0.118855 -0.470254,0.118856 -0.904335,0.356567 v -0.878497 q 0.521931,-0.201537 1.012855,-0.299722 0.490925,-0.103353 0.956011,-0.103353 1.255733,0 1.875849,0.651121 0.620115,0.651121 0.620115,1.974034 z" />
|
||||
<path
|
||||
id="path1071"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 60.608955,70.321969 v 0.899167 q -0.403075,-0.206705 -0.837156,-0.310058 -0.43408,-0.103352 -0.899167,-0.103352 -0.707965,0 -1.064531,0.21704 -0.351398,0.21704 -0.351398,0.651121 0,0.330728 0.253213,0.52193 0.253214,0.186035 1.018023,0.356567 l 0.32556,0.07235 q 1.012855,0.217041 1.4366,0.614948 0.428913,0.39274 0.428913,1.100704 0,0.80615 -0.640785,1.276404 -0.635618,0.470254 -1.751826,0.470254 -0.465086,0 -0.971514,-0.09302 -0.501259,-0.08785 -1.059363,-0.268717 v -0.981849 q 0.527098,0.273885 1.038693,0.413411 0.511595,0.134358 1.012855,0.134358 0.671791,0 1.033525,-0.227376 0.361734,-0.232543 0.361734,-0.651121 0,-0.387572 -0.263549,-0.594277 -0.258381,-0.206705 -1.142045,-0.397907 l -0.330729,-0.07751 q -0.883664,-0.186035 -1.276403,-0.568439 -0.39274,-0.387572 -0.39274,-1.059364 0,-0.816485 0.578774,-1.260901 0.578774,-0.444416 1.643305,-0.444416 0.527098,0 0.992185,0.07752 0.465086,0.07751 0.857826,0.232543 z" />
|
||||
<path
|
||||
id="path1073"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 66.6034,70.373645 v 0.888832 q -0.403074,-0.222208 -0.811317,-0.330728 -0.403075,-0.113688 -0.816485,-0.113688 -0.925005,0 -1.4366,0.589109 -0.511595,0.583942 -0.511595,1.643306 0,1.059363 0.511595,1.648473 0.511595,0.583942 1.4366,0.583942 0.41341,0 0.816485,-0.108521 0.408243,-0.113687 0.811317,-0.335895 v 0.878496 q -0.397907,0.186035 -0.82682,0.279052 -0.423745,0.09302 -0.904335,0.09302 -1.307409,0 -2.077386,-0.821652 -0.769976,-0.821653 -0.769976,-2.216912 0,-1.41593 0.775144,-2.227247 0.780312,-0.811318 2.13423,-0.811318 0.439248,0 0.857826,0.09302 0.418578,0.08785 0.811317,0.268716 z" />
|
||||
<path
|
||||
id="path1075"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 68.401736,74.626602 h 1.090369 v 1.312577 h -1.090369 z" />
|
||||
<path
|
||||
id="path1077"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 78.695648,70.321969 v 0.899167 q -0.403075,-0.206705 -0.837156,-0.310058 -0.434081,-0.103352 -0.899167,-0.103352 -0.707965,0 -1.064531,0.21704 -0.351399,0.21704 -0.351399,0.651121 0,0.330728 0.253214,0.52193 0.253214,0.186035 1.018023,0.356567 l 0.32556,0.07235 q 1.012855,0.217041 1.4366,0.614948 0.428913,0.39274 0.428913,1.100704 0,0.80615 -0.640785,1.276404 -0.635619,0.470254 -1.751826,0.470254 -0.465086,0 -0.971514,-0.09302 -0.50126,-0.08785 -1.059363,-0.268717 v -0.981849 q 0.527098,0.273885 1.038693,0.413411 0.511595,0.134358 1.012855,0.134358 0.671791,0 1.033525,-0.227376 0.361734,-0.232543 0.361734,-0.651121 0,-0.387572 -0.263549,-0.594277 -0.258382,-0.206705 -1.142046,-0.397907 l -0.330728,-0.07751 q -0.883664,-0.186035 -1.276404,-0.568439 -0.392739,-0.387572 -0.392739,-1.059364 0,-0.816485 0.578774,-1.260901 0.578774,-0.444416 1.643305,-0.444416 0.527098,0 0.992185,0.07752 0.465086,0.07751 0.857826,0.232543 z" />
|
||||
<path
|
||||
id="path1079"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 80.52499,70.151437 h 0.950843 v 5.787742 H 80.52499 Z m 0,-2.253085 h 0.950843 v 1.204057 H 80.52499 Z" />
|
||||
<path
|
||||
id="path1081"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 88.271262,72.445863 v 3.493316 h -0.950844 v -3.46231 q 0,-0.821652 -0.320393,-1.229895 -0.320392,-0.408242 -0.961178,-0.408242 -0.769977,0 -1.214393,0.490924 -0.444415,0.490925 -0.444415,1.338415 v 3.271108 h -0.956011 v -5.787742 h 0.956011 v 0.899167 q 0.341063,-0.52193 0.800982,-0.780311 0.465086,-0.258382 1.069698,-0.258382 0.997352,0 1.508947,0.620115 0.511596,0.614948 0.511596,1.813837 z" />
|
||||
<path
|
||||
id="path1083"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 93.986657,72.978129 q 0,-1.033525 -0.428913,-1.601964 -0.423746,-0.568439 -1.193722,-0.568439 -0.764809,0 -1.193722,0.568439 -0.423745,0.568439 -0.423745,1.601964 0,1.028358 0.423745,1.596797 0.428913,0.568439 1.193722,0.568439 0.769976,0 1.193722,-0.568439 0.428913,-0.568439 0.428913,-1.596797 z m 0.950843,2.24275 q 0,1.477941 -0.656289,2.196241 -0.656288,0.723468 -2.010207,0.723468 -0.501259,0 -0.945675,-0.07751 -0.444416,-0.07235 -0.862994,-0.227376 v -0.925005 q 0.418578,0.227376 0.82682,0.335896 0.408243,0.10852 0.831988,0.10852 0.935341,0 1.400427,-0.490925 0.465087,-0.485757 0.465087,-1.472773 v -0.470254 q -0.294555,0.511595 -0.754474,0.764808 -0.459919,0.253214 -1.100704,0.253214 -1.064532,0 -1.715653,-0.811317 -0.651121,-0.811318 -0.651121,-2.149733 0,-1.343583 0.651121,-2.1549 0.651121,-0.811318 1.715653,-0.811318 0.640785,0 1.100704,0.253214 0.459919,0.253214 0.754474,0.764809 V 70.151437 H 94.9375 Z" />
|
||||
<path
|
||||
id="path1085"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 97.030388,74.626602 h 1.09037 v 1.312577 h -1.09037 z" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path1169-1"
|
||||
d="m 154.51473,89.585299 9.34226,9.289855 h 40.1026 L 213.549,89.28574"
|
||||
style="fill:none;stroke:#808080;stroke-width:0.964999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1354);fill:#808080;fill-opacity:1;stroke:none"
|
||||
id="text1352"
|
||||
transform="translate(131.61628,-14.422261)"
|
||||
aria-label="object">
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4403"
|
||||
d="m 39.076039,122.71137 q -0.764808,0 -1.209224,0.59945 -0.444416,0.59427 -0.444416,1.63297 0,1.03869 0.439248,1.63813 0.444416,0.59428 1.214392,0.59428 0.759642,0 1.204058,-0.59944 0.444415,-0.59945 0.444415,-1.63297 0,-1.02836 -0.444415,-1.62781 -0.444416,-0.60461 -1.204058,-0.60461 z m 0,-0.80615 q 1.240231,0 1.948196,0.80615 0.707965,0.80615 0.707965,2.23242 0,1.42109 -0.707965,2.23241 -0.707965,0.80615 -1.948196,0.80615 -1.245398,0 -1.953362,-0.80615 -0.702798,-0.81132 -0.702798,-2.23241 0,-1.42627 0.702798,-2.23242 0.707964,-0.80615 1.953362,-0.80615 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4405"
|
||||
d="m 47.45793,124.94379 q 0,-1.04903 -0.434081,-1.64331 -0.428913,-0.59944 -1.183386,-0.59944 -0.754474,0 -1.188554,0.59944 -0.428913,0.59428 -0.428913,1.64331 0,1.04902 0.428913,1.64847 0.43408,0.59428 1.188554,0.59428 0.754473,0 1.183386,-0.59428 0.434081,-0.59945 0.434081,-1.64847 z m -3.234934,-2.02055 q 0.299722,-0.51676 0.754473,-0.7648 0.459919,-0.25322 1.095537,-0.25322 1.054196,0 1.710485,0.83716 0.661456,0.83715 0.661456,2.20141 0,1.36425 -0.661456,2.20141 -0.656289,0.83715 -1.710485,0.83715 -0.635618,0 -1.095537,-0.24805 -0.454751,-0.25321 -0.754473,-0.76997 v 0.86816 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4407"
|
||||
d="m 50.021073,122.04475 h 0.950843 v 5.89109 q 0,1.10587 -0.423745,1.60197 -0.418578,0.49609 -1.353919,0.49609 h -0.361733 v -0.80615 h 0.253213 q 0.542601,0 0.738971,-0.25321 0.19637,-0.24805 0.19637,-1.0387 z m 0,-2.25309 h 0.950843 v 1.20406 h -0.950843 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4409"
|
||||
d="m 57.906871,124.70091 v 0.46508 h -4.371812 q 0.06201,0.98185 0.589109,1.49862 0.532266,0.51159 1.477942,0.51159 0.547768,0 1.059363,-0.13436 0.516763,-0.13436 1.02319,-0.40307 v 0.89916 q -0.511595,0.21705 -1.049028,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196242,-0.80615 -0.806149,-0.80615 -0.806149,-2.18074 0,-1.42109 0.764808,-2.25308 0.769977,-0.83716 2.072219,-0.83716 1.167883,0 1.844843,0.75448 0.682126,0.7493 0.682126,2.04121 z m -0.950843,-0.27905 q -0.01034,-0.78032 -0.439248,-1.2454 -0.423746,-0.46509 -1.126543,-0.46509 -0.795814,0 -1.276404,0.44959 -0.475421,0.44958 -0.547768,1.26606 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4411"
|
||||
d="m 63.632602,122.26696 v 0.88883 q -0.403075,-0.22221 -0.811318,-0.33073 -0.403075,-0.11369 -0.816485,-0.11369 -0.925005,0 -1.4366,0.58911 -0.511595,0.58394 -0.511595,1.64331 0,1.05936 0.511595,1.64847 0.511595,0.58394 1.4366,0.58394 0.41341,0 0.816485,-0.10852 0.408243,-0.11369 0.811318,-0.33589 v 0.87849 q -0.397908,0.18604 -0.826821,0.27905 -0.423745,0.093 -0.904334,0.093 -1.30741,0 -2.077386,-0.82165 -0.769977,-0.82165 -0.769977,-2.21691 0,-1.41593 0.775144,-2.22725 0.780312,-0.81132 2.13423,-0.81132 0.439248,0 0.857826,0.093 0.418578,0.0879 0.811318,0.26872 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4413"
|
||||
d="m 66.237085,120.40144 v 1.64331 h 1.95853 v 0.73897 h -1.95853 v 3.14192 q 0,0.70796 0.191202,0.9095 0.19637,0.20154 0.790647,0.20154 h 0.976681 v 0.79581 h -0.976681 q -1.100705,0 -1.519282,-0.40824 -0.418578,-0.41341 -0.418578,-1.49861 v -3.14192 h -0.69763 v -0.73897 h 0.69763 v -1.64331 z" />
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text1371"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1373);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
transform="translate(5.342511,1.1060936)" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1385);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1383"
|
||||
transform="matrix(0.91075878,0,0,0.91075878,-60.316824,112.33249)"
|
||||
aria-label="or">
|
||||
<path
|
||||
id="path3493"
|
||||
style="shape-inside:url(#rect1385)"
|
||||
d="m 41.924122,-39.945734 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path3495"
|
||||
style="shape-inside:url(#rect1385)"
|
||||
d="m 47.98887,-39.767967 q -0.128157,-0.07441 -0.281119,-0.107487 -0.148829,-0.03721 -0.33073,-0.03721 -0.644922,0 -0.992188,0.421679 -0.343131,0.417546 -0.343131,1.203028 v 2.439129 H 45.27689 v -4.63021 h 0.764812 v 0.719336 q 0.239778,-0.42168 0.624251,-0.624252 0.384473,-0.206705 0.934311,-0.206705 0.07855,0 0.173632,0.0124 0.09508,0.0083 0.21084,0.02894 z" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0.85;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1391);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1389"
|
||||
transform="matrix(0.91075878,0,0,0.91075878,-49.155624,146.73253)"
|
||||
aria-label="enclitic (mini) pronoun">
|
||||
<path
|
||||
id="path3498"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 7.5745021,-65.810929 v 0.372071 H 4.0770398 q 0.049609,0.785482 0.4712892,1.198893 0.425814,0.409278 1.1823573,0.409278 0.4382163,0 0.8474938,-0.107487 0.4134116,-0.107487 0.818555,-0.322461 v 0.719336 q -0.4092775,0.173633 -0.8392256,0.264583 -0.4299481,0.09095 -0.8722985,0.09095 -1.1079432,0 -1.7569994,-0.644922 -0.6449222,-0.644922 -0.6449222,-1.744597 0,-1.136882 0.6118492,-1.802475 0.6159834,-0.669727 1.6577807,-0.669727 0.9343102,0 1.4758794,0.603581 0.5457034,0.599447 0.5457034,1.632977 z m -0.7606774,-0.223242 q -0.00827,-0.624252 -0.3513999,-0.996322 -0.3389975,-0.372071 -0.9012373,-0.372071 -0.6366539,0 -1.0211267,0.359668 -0.3803387,0.359669 -0.4382163,1.012859 z" />
|
||||
<path
|
||||
id="path3500"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 12.671867,-66.100317 v 2.794663 H 11.91119 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.9715173,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 H 8.7940662 v -4.630211 h 0.7648115 v 0.719337 q 0.2728517,-0.417546 0.6407883,-0.624252 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z" />
|
||||
<path
|
||||
id="path3502"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 17.529454,-67.758098 v 0.711068 q -0.322461,-0.177767 -0.649056,-0.264583 -0.322461,-0.09095 -0.65319,-0.09095 -0.740007,0 -1.149285,0.47129 -0.409277,0.467155 -0.409277,1.314649 0,0.847493 0.409277,1.318783 0.409278,0.467155 1.149285,0.467155 0.330729,0 0.65319,-0.08682 0.326595,-0.09095 0.649056,-0.268717 v 0.7028 q -0.318327,0.148828 -0.661458,0.223242 -0.338998,0.07441 -0.723471,0.07441 -1.045931,0 -1.661914,-0.657325 -0.615984,-0.657324 -0.615984,-1.773535 0,-1.132748 0.620118,-1.781805 0.624251,-0.649056 1.70739,-0.649056 0.3514,0 0.686263,0.07441 0.334863,0.07028 0.649056,0.214974 z" />
|
||||
<path
|
||||
id="path3504"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 18.860639,-69.738339 h 0.760677 v 6.432685 h -0.760677 z" />
|
||||
<path
|
||||
id="path3506"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 21.208818,-67.935865 h 0.760677 v 4.630211 h -0.760677 z m 0,-1.802474 h 0.760677 v 0.963249 h -0.760677 z" />
|
||||
<path
|
||||
id="path3508"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 24.309404,-69.250514 v 1.314649 h 1.56683 v 0.591179 h -1.56683 v 2.513543 q 0,0.566374 0.152962,0.727604 0.157097,0.161231 0.63252,0.161231 h 0.781348 v 0.636654 h -0.781348 q -0.880567,0 -1.21543,-0.326596 -0.334864,-0.330729 -0.334864,-1.198893 v -2.513543 h -0.558105 v -0.591179 h 0.558105 v -1.314649 z" />
|
||||
<path
|
||||
id="path3510"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 26.880824,-67.935865 h 0.760678 v 4.630211 h -0.760678 z m 0,-1.802474 h 0.760678 v 0.963249 h -0.760678 z" />
|
||||
<path
|
||||
id="path3512"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 32.561099,-67.758098 v 0.711068 q -0.322461,-0.177767 -0.649056,-0.264583 -0.322461,-0.09095 -0.653191,-0.09095 -0.740006,0 -1.149284,0.47129 -0.409277,0.467155 -0.409277,1.314649 0,0.847493 0.409277,1.318783 0.409278,0.467155 1.149284,0.467155 0.33073,0 0.653191,-0.08682 0.326595,-0.09095 0.649056,-0.268717 v 0.7028 q -0.318327,0.148828 -0.661459,0.223242 -0.338997,0.07441 -0.72347,0.07441 -1.045931,0 -1.661915,-0.657325 -0.615983,-0.657324 -0.615983,-1.773535 0,-1.132748 0.620117,-1.781805 0.624252,-0.649056 1.70739,-0.649056 0.3514,0 0.686264,0.07441 0.334863,0.07028 0.649056,0.214974 z" />
|
||||
<path
|
||||
id="path3514"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 38.415007,-69.730071 q -0.553971,0.950847 -0.822689,1.881023 -0.268717,0.930176 -0.268717,1.885157 0,0.954981 0.268717,1.893425 0.272852,0.93431 0.822689,1.881023 h -0.661458 q -0.620118,-0.971517 -0.930177,-1.909962 -0.305924,-0.938444 -0.305924,-1.864486 0,-0.921908 0.305924,-1.856218 0.305925,-0.934311 0.930177,-1.909962 z" />
|
||||
<path
|
||||
id="path3516"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 43.49997,-67.04703 q 0.285254,-0.51263 0.682129,-0.756543 0.396875,-0.243913 0.934311,-0.243913 0.72347,0 1.116211,0.508497 0.392741,0.504362 0.392741,1.438672 v 2.794663 h -0.764811 v -2.769858 q 0,-0.665593 -0.235645,-0.988054 -0.235645,-0.322461 -0.719336,-0.322461 -0.591179,0 -0.934311,0.392741 -0.343131,0.392741 -0.343131,1.070736 v 2.616896 h -0.764812 v -2.769858 q 0,-0.669727 -0.235644,-0.988054 -0.235645,-0.322461 -0.727605,-0.322461 -0.58291,0 -0.926042,0.396875 -0.343132,0.392741 -0.343132,1.066602 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.26045,-0.425814 0.624252,-0.628386 0.363802,-0.202572 0.86403,-0.202572 0.504362,0 0.855762,0.256315 0.355534,0.256316 0.525033,0.744141 z" />
|
||||
<path
|
||||
id="path3518"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 48.146718,-67.935865 h 0.760678 v 4.630211 h -0.760678 z m 0,-1.802474 h 0.760678 v 0.963249 h -0.760678 z" />
|
||||
<path
|
||||
id="path3520"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 54.343756,-66.100317 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
<path
|
||||
id="path3522"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 55.869245,-67.935865 h 0.760677 v 4.630211 h -0.760677 z m 0,-1.802474 h 0.760677 v 0.963249 h -0.760677 z" />
|
||||
<path
|
||||
id="path3524"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 58.097534,-69.730071 h 0.661459 q 0.620117,0.975651 0.926042,1.909962 0.310059,0.93431 0.310059,1.856218 0,0.926042 -0.310059,1.864486 -0.305925,0.938445 -0.926042,1.909962 h -0.661459 q 0.549838,-0.946713 0.818555,-1.881023 0.272852,-0.938444 0.272852,-1.893425 0,-0.954981 -0.272852,-1.885157 -0.268717,-0.930176 -0.818555,-1.881023 z" />
|
||||
<path
|
||||
id="path3526"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 15.726979,-55.004382 v 2.455665 h -0.764811 v -6.391344 h 0.764811 v 0.7028 q 0.239779,-0.413412 0.603581,-0.611849 0.367937,-0.202572 0.876433,-0.202572 0.84336,0 1.368392,0.669727 0.529167,0.669727 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525032,0.669727 -1.368392,0.669727 -0.508496,0 -0.876433,-0.198438 -0.363802,-0.202572 -0.603581,-0.615983 z m 2.587957,-1.61644 q 0,-0.839225 -0.347266,-1.314649 -0.343131,-0.479557 -0.946712,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343132,0.475424 -0.343132,1.314649 0,0.839226 0.343132,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946712,-0.475424 0.347266,-0.479557 0.347266,-1.318783 z" />
|
||||
<path
|
||||
id="path3528"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 23.048499,-58.228993 q -0.128158,-0.07441 -0.28112,-0.107487 -0.148828,-0.03721 -0.330729,-0.03721 -0.644922,0 -0.992188,0.42168 -0.343132,0.417546 -0.343132,1.203028 v 2.439128 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.239779,-0.421679 0.624252,-0.624251 0.384473,-0.206706 0.93431,-0.206706 0.07855,0 0.173633,0.0124 0.09508,0.0083 0.21084,0.02894 z" />
|
||||
<path
|
||||
id="path3530"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 25.466957,-58.40676 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.30638 0,0.830958 0.3514,1.310515 0.355534,0.475424 0.971517,0.475424 0.607716,0 0.96325,-0.479558 0.355534,-0.479557 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302246 -0.355534,-0.483692 -0.96325,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785939 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562695,-0.644922 -0.56224,-0.649057 -0.56224,-1.785939 0,-1.141016 0.56224,-1.785938 0.566373,-0.644922 1.562695,-0.644922 z" />
|
||||
<path
|
||||
id="path3532"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 32.697526,-57.104513 v 2.794662 h -0.760677 v -2.769857 q 0,-0.657325 -0.256315,-0.98392 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272851,-0.417545 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z" />
|
||||
<path
|
||||
id="path3534"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 36.017222,-58.40676 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.30638 0,0.830958 0.3514,1.310515 0.355534,0.475424 0.971517,0.475424 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302246 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785939 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649057 -0.56224,-1.785939 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path3536"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 39.32038,-56.13713 v -2.802931 h 0.760677 v 2.773992 q 0,0.657325 0.256316,0.988054 0.256315,0.326595 0.768945,0.326595 0.615984,0 0.971518,-0.392741 0.359668,-0.392741 0.359668,-1.070736 v -2.625164 h 0.760677 v 4.63021 h -0.760677 v -0.711068 q -0.276986,0.42168 -0.644922,0.628386 -0.363803,0.202572 -0.847494,0.202572 -0.797885,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z" />
|
||||
<path
|
||||
id="path3538"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 48.622142,-57.104513 v 2.794662 h -0.760677 v -2.769857 q 0,-0.657325 -0.256316,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.272852,-0.417545 0.640788,-0.624251 0.372071,-0.206706 0.855763,-0.206706 0.797884,0 1.207161,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
</g>
|
||||
<path
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.05;font-family:sans-serif;white-space:pre;fill:none;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.865;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.46, 1.73;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 65.472822,127.48303 -10e-7,14.69983 H 141.1101 v -18.4416"
|
||||
id="path1161"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 61 KiB |
|
@ -0,0 +1,472 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="803.02252"
|
||||
height="309.53973"
|
||||
viewBox="0 0 212.46637 81.899055"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="grammatirally-transitive-present.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
id="rect982"
|
||||
height="72.949402"
|
||||
width="64.255951"
|
||||
y="40.11702"
|
||||
x="37.063869" />
|
||||
<rect
|
||||
x="-15.096844"
|
||||
y="-70.55368"
|
||||
width="93.738098"
|
||||
height="46.113094"
|
||||
id="rect1391" />
|
||||
<rect
|
||||
x="39.331726"
|
||||
y="-43.339394"
|
||||
width="51.404762"
|
||||
height="25.324406"
|
||||
id="rect1385" />
|
||||
<rect
|
||||
x="38.953751"
|
||||
y="35.657631"
|
||||
width="78.997025"
|
||||
height="25.324406"
|
||||
id="rect1379" />
|
||||
<rect
|
||||
x="57.474583"
|
||||
y="33.389771"
|
||||
width="29.104168"
|
||||
height="23.434525"
|
||||
id="rect1373" />
|
||||
<rect
|
||||
x="4.935894"
|
||||
y="6.553463"
|
||||
width="112.6993"
|
||||
height="77.422302"
|
||||
id="rect1360" />
|
||||
<rect
|
||||
x="35.83614"
|
||||
y="118.46915"
|
||||
width="93.738098"
|
||||
height="35.151787"
|
||||
id="rect1354" />
|
||||
<rect
|
||||
x="-56.012074"
|
||||
y="116.23755"
|
||||
width="76.351189"
|
||||
height="28.348213"
|
||||
id="rect1348" />
|
||||
<rect
|
||||
x="35.529755"
|
||||
y="61.904251"
|
||||
width="50.263763"
|
||||
height="44.73629"
|
||||
id="rect1165" />
|
||||
<rect
|
||||
x="37.041668"
|
||||
y="112.25893"
|
||||
width="56.69643"
|
||||
height="23.8125"
|
||||
id="rect1113" />
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path841"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fillRule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<rect
|
||||
id="rect1113-9"
|
||||
height="23.8125"
|
||||
width="56.69643"
|
||||
y="112.25893"
|
||||
x="37.041668" />
|
||||
<rect
|
||||
id="rect1141"
|
||||
height="23.8125"
|
||||
width="56.69643"
|
||||
y="112.25893"
|
||||
x="37.041668" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="724.65767"
|
||||
inkscape:cy="182.77907"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="text1163-1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
fit-margin-top="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-left="10"
|
||||
inkscape:window-width="1515"
|
||||
inkscape:window-height="1080"
|
||||
inkscape:window-x="2167"
|
||||
inkscape:window-y="118"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(52.843619,-63.362142)">
|
||||
<path
|
||||
id="rect839-4"
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.115;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 122.9777,85.081856 h 33.44172 V 118.52357 H 122.9777 Z" />
|
||||
<g
|
||||
aria-label="verb"
|
||||
transform="translate(90.461538,-16.314846)"
|
||||
id="text1111-8"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1113-9);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 37.356241,115.83576 h 1.007687 l 1.808669,4.85757 1.80867,-4.85757 h 1.007687 l -2.170403,5.78775 h -1.291907 z"
|
||||
id="path1187" />
|
||||
<path
|
||||
d="m 49.252118,118.49192 v 0.46509 h -4.371813 q 0.06201,0.98185 0.58911,1.49861 0.532265,0.5116 1.477941,0.5116 0.547769,0 1.059364,-0.13436 0.516762,-0.13436 1.02319,-0.40308 v 0.89917 q -0.511595,0.21704 -1.049029,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.4211 0.764809,-2.25309 0.769976,-0.83715 2.072218,-0.83715 1.167884,0 1.844843,0.75447 0.682127,0.74931 0.682127,2.04121 z m -0.950844,-0.27905 q -0.01033,-0.78031 -0.439248,-1.2454 -0.423745,-0.46508 -1.126543,-0.46508 -0.795814,0 -1.276403,0.44958 -0.475422,0.44958 -0.547769,1.26607 z"
|
||||
id="path1189" />
|
||||
<path
|
||||
d="m 54.166531,116.7246 q -0.160196,-0.093 -0.351398,-0.13436 -0.186035,-0.0465 -0.41341,-0.0465 -0.80615,0 -1.240231,0.5271 -0.428913,0.52193 -0.428913,1.50378 v 3.0489 h -0.956011 v -5.78775 h 0.956011 v 0.89917 q 0.299723,-0.5271 0.780312,-0.78031 0.480589,-0.25838 1.167883,-0.25838 0.09819,0 0.217041,0.0155 0.118855,0.0103 0.263549,0.0362 z"
|
||||
id="path1191" />
|
||||
<path
|
||||
d="m 59.32899,118.7348 q 0,-1.04903 -0.43408,-1.6433 -0.428913,-0.59945 -1.183387,-0.59945 -0.754473,0 -1.188554,0.59945 -0.428913,0.59427 -0.428913,1.6433 0,1.04903 0.428913,1.64847 0.434081,0.59428 1.188554,0.59428 0.754474,0 1.183387,-0.59428 0.43408,-0.59944 0.43408,-1.64847 z m -3.234934,-2.02054 q 0.299722,-0.51676 0.754474,-0.76481 0.459918,-0.25321 1.095536,-0.25321 1.054196,0 1.710485,0.83715 0.661456,0.83716 0.661456,2.20141 0,1.36426 -0.661456,2.20141 -0.656289,0.83716 -1.710485,0.83716 -0.635618,0 -1.095536,-0.24805 -0.454752,-0.25321 -0.754474,-0.76998 v 0.86817 h -0.956011 v -8.04083 h 0.956011 z"
|
||||
id="path1193" />
|
||||
</g>
|
||||
<g
|
||||
aria-label="plain noun / pronoun"
|
||||
transform="translate(-81.650166,5.4265352)"
|
||||
id="text1163"
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.05;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1165);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 51.876136,67.854117 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239779,-0.413412 0.603581,-0.611849 0.367936,-0.202572 0.876432,-0.202572 0.84336,0 1.368393,0.669727 0.529167,0.669727 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525033,0.669727 -1.368393,0.669727 -0.508496,0 -0.876432,-0.198438 -0.363802,-0.202572 -0.603581,-0.615983 z m 2.587957,-1.61644 q 0,-0.839225 -0.347266,-1.314649 -0.343132,-0.479557 -0.946713,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343131,0.475424 -0.343131,1.314649 0,0.839226 0.343131,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946713,-0.475424 0.347266,-0.479557 0.347266,-1.318783 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1196" />
|
||||
<path
|
||||
d="m 56.514614,62.115963 h 0.760678 v 6.432685 h -0.760678 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1198" />
|
||||
<path
|
||||
d="m 60.967057,66.221141 q -0.921908,0 -1.277442,0.21084 -0.355534,0.21084 -0.355534,0.719336 0,0.405143 0.264584,0.644922 0.268717,0.235645 0.727604,0.235645 0.63252,0 1.012859,-0.446485 0.384473,-0.450618 0.384473,-1.194759 v -0.169499 z m 1.517221,-0.314193 v 2.6417 h -0.760677 v -0.702799 q -0.26045,0.421679 -0.649057,0.624251 -0.388607,0.198438 -0.950846,0.198438 -0.711068,0 -1.132748,-0.396876 -0.417546,-0.401009 -0.417546,-1.070736 0,-0.781348 0.520899,-1.178223 0.525032,-0.396875 1.562696,-0.396875 h 1.066602 v -0.07441 q 0,-0.525033 -0.347266,-0.810287 -0.343132,-0.289388 -0.967383,-0.289388 -0.396876,0 -0.77308,0.09508 -0.376205,0.09508 -0.723471,0.285254 v -0.7028 q 0.417546,-0.161231 0.810287,-0.239779 0.392741,-0.08268 0.764812,-0.08268 1.00459,0 1.500684,0.520899 0.496094,0.520898 0.496094,1.579231 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1200" />
|
||||
<path
|
||||
d="m 64.055242,63.918438 h 0.760678 v 4.63021 h -0.760678 z m 0,-1.802475 h 0.760678 v 0.96325 h -0.760678 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1202" />
|
||||
<path
|
||||
d="m 70.252282,65.753986 v 2.794662 H 69.491605 V 65.77879 q 0,-0.657324 -0.256315,-0.983919 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272851,-0.417545 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1204" />
|
||||
<path
|
||||
d="m 51.88027,74.643985 v 2.794663 H 51.119593 V 74.66879 q 0,-0.657325 -0.256316,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1206" />
|
||||
<path
|
||||
d="m 55.199965,73.341738 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.30638 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644923 0.566374,1.785939 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785939 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1208" />
|
||||
<path
|
||||
d="m 58.503124,75.611368 v -2.802931 h 0.760677 v 2.773992 q 0,0.657325 0.256315,0.988054 0.256316,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359669,-0.392741 0.359669,-1.070736 v -2.625164 h 0.760677 v 4.630211 H 61.620248 V 76.72758 q -0.276986,0.42168 -0.644923,0.628385 -0.363802,0.202572 -0.847493,0.202572 -0.797885,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1210" />
|
||||
<path
|
||||
d="m 67.804886,74.643985 v 2.794663 H 67.044208 V 74.66879 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1212" />
|
||||
<path
|
||||
d="m 73.377673,71.266412 h 0.7028 l -2.14974,6.957718 h -0.7028 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1214" />
|
||||
<path
|
||||
d="m 44.616628,85.634116 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239778,-0.413412 0.603581,-0.61185 0.367936,-0.202571 0.876432,-0.202571 0.84336,0 1.368393,0.669727 0.529167,0.669726 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525033,0.669726 -1.368393,0.669726 -0.508496,0 -0.876432,-0.198437 -0.363803,-0.202572 -0.603581,-0.615983 z m 2.587956,-1.61644 q 0,-0.839226 -0.347265,-1.314649 -0.343132,-0.479557 -0.946713,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343131,0.475423 -0.343131,1.314649 0,0.839226 0.343131,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946713,-0.475424 0.347265,-0.479557 0.347265,-1.318783 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1216" />
|
||||
<path
|
||||
d="m 51.938147,82.409505 q -0.128157,-0.07441 -0.281119,-0.107487 -0.148829,-0.03721 -0.33073,-0.03721 -0.644922,0 -0.992188,0.42168 -0.343131,0.417545 -0.343131,1.203027 v 2.439129 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.239778,-0.42168 0.624251,-0.624251 0.384473,-0.206706 0.934311,-0.206706 0.07855,0 0.173632,0.0124 0.09508,0.0083 0.21084,0.02894 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1218" />
|
||||
<path
|
||||
d="m 54.356606,82.231738 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1220" />
|
||||
<path
|
||||
d="m 61.587175,83.533984 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657324 -0.256315,-0.983919 -0.256315,-0.326596 -0.768946,-0.326596 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624251 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451074 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1222" />
|
||||
<path
|
||||
d="m 64.90687,82.231738 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.562239,-0.649056 -0.562239,-1.785938 0,-1.141016 0.562239,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1224" />
|
||||
<path
|
||||
d="m 68.210028,84.501368 v -2.802931 h 0.760678 v 2.773992 q 0,0.657324 0.256315,0.988054 0.256315,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359668,-0.392741 0.359668,-1.070736 v -2.625164 h 0.760678 v 4.63021 h -0.760678 v -0.711068 q -0.276986,0.42168 -0.644922,0.628386 -0.363802,0.202571 -0.847494,0.202571 -0.797884,0 -1.211296,-0.496094 -0.413412,-0.496093 -0.413412,-1.451074 z m 1.914096,-2.914552 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1226" />
|
||||
<path
|
||||
d="m 77.51179,83.533984 v 2.794663 h -0.760677 v -2.769858 q 0,-0.657324 -0.256315,-0.983919 -0.256315,-0.326596 -0.768946,-0.326596 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451074 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1228" />
|
||||
</g>
|
||||
<g
|
||||
id="g1333"
|
||||
transform="translate(7.9375,-1.5481652)">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path1169"
|
||||
d="m -57.795068,100.26406 9.342265,9.28984 h 40.1025978 l 9.589407,-9.589405"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.965;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<g
|
||||
aria-label="subject / agent"
|
||||
transform="translate(-9.827381,-4.5357143)"
|
||||
id="text1346"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1348);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m -35.814111,119.98481 v 0.89917 q -0.403075,-0.20671 -0.837156,-0.31006 -0.43408,-0.10335 -0.899167,-0.10335 -0.707965,0 -1.064531,0.21704 -0.351398,0.21704 -0.351398,0.65112 0,0.33073 0.253213,0.52193 0.253214,0.18603 1.018023,0.35657 l 0.32556,0.0723 q 1.012855,0.21704 1.436601,0.61495 0.428913,0.39274 0.428913,1.1007 0,0.80615 -0.640786,1.27641 -0.635618,0.47025 -1.751826,0.47025 -0.465086,0 -0.971513,-0.093 -0.50126,-0.0878 -1.059364,-0.26871 v -0.98185 q 0.527098,0.27388 1.038693,0.41341 0.511595,0.13436 1.012855,0.13436 0.671791,0 1.033525,-0.22738 0.361734,-0.23254 0.361734,-0.65112 0,-0.38757 -0.263549,-0.59428 -0.258381,-0.2067 -1.142045,-0.3979 l -0.330729,-0.0775 q -0.883664,-0.18603 -1.276403,-0.56844 -0.39274,-0.38757 -0.39274,-1.05936 0,-0.81649 0.578774,-1.2609 0.578774,-0.44442 1.643306,-0.44442 0.527097,0 0.992184,0.0775 0.465086,0.0775 0.857826,0.23254 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4222" />
|
||||
<path
|
||||
d="m -34.082956,123.31793 v -3.50365 h 0.950843 v 3.46748 q 0,0.82165 0.320393,1.23506 0.320393,0.40824 0.961179,0.40824 0.769976,0 1.214392,-0.49092 0.449583,-0.49093 0.449583,-1.33842 v -3.28144 h 0.950844 v 5.78774 h -0.950844 v -0.88883 q -0.346231,0.5271 -0.806149,0.78548 -0.454751,0.25321 -1.059364,0.25321 -0.997352,0 -1.514114,-0.62011 -0.516763,-0.62012 -0.516763,-1.81384 z m 2.392611,-3.64318 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4224" />
|
||||
<path
|
||||
d="m -23.112084,122.71332 q 0,-1.04903 -0.434081,-1.64331 -0.428913,-0.59944 -1.183386,-0.59944 -0.754474,0 -1.188555,0.59944 -0.428913,0.59428 -0.428913,1.64331 0,1.04903 0.428913,1.64847 0.434081,0.59428 1.188555,0.59428 0.754473,0 1.183386,-0.59428 0.434081,-0.59944 0.434081,-1.64847 z m -3.234935,-2.02054 q 0.299723,-0.51677 0.754474,-0.76481 0.459919,-0.25322 1.095537,-0.25322 1.054196,0 1.710484,0.83716 0.661456,0.83715 0.661456,2.20141 0,1.36425 -0.661456,2.20141 -0.656288,0.83715 -1.710484,0.83715 -0.635618,0 -1.095537,-0.24804 -0.454751,-0.25322 -0.754474,-0.76998 v 0.86816 h -0.956011 v -8.04083 h 0.956011 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4226" />
|
||||
<path
|
||||
d="m -20.548942,119.81428 h 0.950844 v 5.89109 q 0,1.10588 -0.423746,1.60197 -0.418577,0.49609 -1.353918,0.49609 h -0.361734 v -0.80615 h 0.253214 q 0.542601,0 0.738971,-0.25321 0.196369,-0.24805 0.196369,-1.0387 z m 0,-2.25309 h 0.950844 v 1.20406 h -0.950844 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4228" />
|
||||
<path
|
||||
d="m -12.663144,122.47044 v 0.46509 h -4.371812 q 0.06201,0.98184 0.589109,1.49861 0.532266,0.51159 1.477941,0.51159 0.547769,0 1.059364,-0.13436 0.516763,-0.13435 1.02319,-0.40307 v 0.89917 q -0.511595,0.21704 -1.049028,0.33072 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196242,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.42109 0.764809,-2.25308 0.769977,-0.83716 2.072219,-0.83716 1.167883,0 1.844842,0.75448 0.682127,0.7493 0.682127,2.04121 z m -0.950843,-0.27905 q -0.01034,-0.78031 -0.439249,-1.2454 -0.423745,-0.46509 -1.126542,-0.46509 -0.795815,0 -1.276404,0.44959 -0.475422,0.44958 -0.547768,1.26606 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4230" />
|
||||
<path
|
||||
d="m -6.9374138,120.03649 v 0.88883 q -0.4030748,-0.22221 -0.8113174,-0.33073 -0.4030748,-0.11369 -0.816485,-0.11369 -0.9250052,0 -1.4365998,0.58911 -0.511595,0.58394 -0.511595,1.64331 0,1.05936 0.511595,1.64847 0.5115946,0.58394 1.4365998,0.58394 0.4134102,0 0.816485,-0.10852 0.4082426,-0.11369 0.8113174,-0.33589 v 0.87849 q -0.3979072,0.18604 -0.8268202,0.27905 -0.4237454,0.093 -0.9043347,0.093 -1.3074096,0 -2.0773863,-0.82165 -0.769976,-0.82165 -0.769976,-2.21691 0,-1.41593 0.775144,-2.22725 0.7803116,-0.81132 2.1342298,-0.81132 0.4392483,0 0.857826,0.093 0.4185778,0.0879 0.8113174,0.26872 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4232" />
|
||||
<path
|
||||
d="m -4.3329304,118.17097 v 1.64331 h 1.9585306 v 0.73897 h -1.9585306 v 3.14192 q 0,0.70796 0.1912022,0.9095 0.1963698,0.20154 0.7906469,0.20154 h 0.9766815 v 0.79581 h -0.9766815 q -1.1007045,0 -1.5192823,-0.40824 -0.4185777,-0.41341 -0.4185777,-1.49861 v -3.14192 h -0.6976296 v -0.73897 h 0.6976296 v -1.64331 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4234" />
|
||||
<path
|
||||
d="M 3.9404424,117.88675 H 4.818939 l -2.6871659,8.69712 H 1.2532765 Z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4236" />
|
||||
<path
|
||||
d="m -29.504439,135.92177 q -1.152381,0 -1.596796,0.26355 -0.444416,0.26355 -0.444416,0.89917 0,0.50643 0.330728,0.80615 0.335896,0.29455 0.909502,0.29455 0.790647,0 1.266069,-0.5581 0.480589,-0.56327 0.480589,-1.49344 v -0.21188 z m 1.896519,-0.39274 v 3.30212 h -0.950843 v -0.8785 q -0.325561,0.5271 -0.811317,0.78031 -0.485757,0.24805 -1.188555,0.24805 -0.888831,0 -1.415929,-0.49609 -0.521931,-0.50126 -0.521931,-1.33842 0,-0.97668 0.651121,-1.47277 0.656289,-0.4961 1.953363,-0.4961 h 1.333248 v -0.093 q 0,-0.65629 -0.434081,-1.01286 -0.428913,-0.36173 -1.209224,-0.36173 -0.496093,0 -0.966347,0.11885 -0.470254,0.11886 -0.904334,0.35657 v -0.8785 q 0.52193,-0.20153 1.012855,-0.29972 0.490924,-0.10335 0.956011,-0.10335 1.255733,0 1.875848,0.65112 0.620115,0.65112 0.620115,1.97403 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4238" />
|
||||
<path
|
||||
d="m -21.835681,135.8701 q 0,-1.03353 -0.428913,-1.60197 -0.423745,-0.56844 -1.193722,-0.56844 -0.764808,0 -1.193721,0.56844 -0.423746,0.56844 -0.423746,1.60197 0,1.02835 0.423746,1.59679 0.428913,0.56844 1.193721,0.56844 0.769977,0 1.193722,-0.56844 0.428913,-0.56844 0.428913,-1.59679 z m 0.950844,2.24275 q 0,1.47794 -0.656289,2.19624 -0.656289,0.72347 -2.010207,0.72347 -0.50126,0 -0.945676,-0.0775 -0.444415,-0.0724 -0.862993,-0.22737 v -0.92501 q 0.418578,0.22738 0.82682,0.3359 0.408243,0.10852 0.831988,0.10852 0.93534,0 1.400427,-0.49093 0.465086,-0.48575 0.465086,-1.47277 v -0.47026 q -0.294555,0.5116 -0.754473,0.76481 -0.459919,0.25322 -1.100705,0.25322 -1.064531,0 -1.715652,-0.81132 -0.651121,-0.81132 -0.651121,-2.14973 0,-1.34359 0.651121,-2.1549 0.651121,-0.81132 1.715652,-0.81132 0.640786,0 1.100705,0.25321 0.459918,0.25322 0.754473,0.76481 v -0.8785 h 0.950844 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4240" />
|
||||
<path
|
||||
d="m -13.97572,135.69957 v 0.46508 h -4.371812 q 0.06201,0.98185 0.589109,1.49861 0.532266,0.5116 1.477941,0.5116 0.547769,0 1.059364,-0.13436 0.516762,-0.13436 1.02319,-0.40307 v 0.89916 q -0.511595,0.21704 -1.049028,0.33073 -0.537434,0.11369 -1.09037,0.11369 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.4211 0.764809,-2.25309 0.769976,-0.83715 2.072218,-0.83715 1.167884,0 1.844843,0.75447 0.682127,0.74931 0.682127,2.04122 z m -0.950844,-0.27906 q -0.01033,-0.78031 -0.439248,-1.24539 -0.423745,-0.46509 -1.126542,-0.46509 -0.795815,0 -1.276404,0.44958 -0.475422,0.44959 -0.547769,1.26607 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4242" />
|
||||
<path
|
||||
d="m -7.6040366,135.33783 v 3.49332 H -8.55488 v -3.46231 q 0,-0.82166 -0.3203928,-1.2299 -0.3203929,-0.40824 -0.9611786,-0.40824 -0.7699766,0 -1.2143926,0.49092 -0.444416,0.49093 -0.444416,1.33842 v 3.27111 h -0.956011 v -5.78775 h 0.956011 v 0.89917 q 0.341064,-0.52193 0.800983,-0.78031 0.465086,-0.25838 1.0696983,-0.25838 0.997352,0 1.508947,0.62011 0.5115951,0.61495 0.5115951,1.81384 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4244" />
|
||||
<path
|
||||
d="m -4.7566745,131.4001 v 1.6433 h 1.9585305 v 0.73898 h -1.9585305 v 3.14191 q 0,0.70797 0.1912022,0.9095 0.1963698,0.20154 0.7906469,0.20154 h 0.9766814 v 0.79582 h -0.9766814 q -1.1007045,0 -1.5192823,-0.40825 -0.4185778,-0.41341 -0.4185778,-1.49861 v -3.14191 h -0.6976296 v -0.73898 h 0.6976296 v -1.6433 z"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
id="path4246" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.05;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1165);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1163-1"
|
||||
transform="translate(5.342511,1.1060936)"
|
||||
aria-label="plain noun / pronoun">
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect982);fill:#999999;fill-opacity:1;stroke:none"
|
||||
id="text980"
|
||||
transform="matrix(0.82417527,0,0,0.82417527,4.7788419,30.747976)"
|
||||
aria-label="implied
|
||||
3rd. pers. masc. sing.">
|
||||
<path
|
||||
id="path1035"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 50.656106,43.693185 h 0.950843 v 5.787742 h -0.950843 z m 0,-2.253085 h 0.950843 v 1.204057 h -0.950843 z" />
|
||||
<path
|
||||
id="path1037"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 58.097488,44.804225 q 0.356566,-0.640786 0.852658,-0.945676 0.496093,-0.30489 1.167884,-0.30489 0.904335,0 1.395259,0.635618 0.490925,0.630451 0.490925,1.798335 v 3.493315 h -0.956011 v -3.46231 q 0,-0.831988 -0.294555,-1.235063 -0.294555,-0.403074 -0.899167,-0.403074 -0.738971,0 -1.167884,0.490924 -0.428913,0.490925 -0.428913,1.338415 v 3.271108 h -0.956011 v -3.46231 q 0,-0.837155 -0.294554,-1.235063 -0.294555,-0.403074 -0.909503,-0.403074 -0.728635,0 -1.157548,0.496092 -0.428913,0.490924 -0.428913,1.333247 v 3.271108 h -0.956011 v -5.787742 h 0.956011 v 0.899167 q 0.325561,-0.532265 0.780312,-0.785479 0.454751,-0.253214 1.080034,-0.253214 0.63045,0 1.069698,0.320393 0.444416,0.320393 0.656289,0.930173 z" />
|
||||
<path
|
||||
id="path1039"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 64.825738,48.612766 v 3.06957 h -0.956011 v -7.989151 h 0.956011 v 0.878497 q 0.299722,-0.516763 0.754474,-0.764809 0.459918,-0.253214 1.095536,-0.253214 1.054196,0 1.710485,0.837156 0.661456,0.837155 0.661456,2.201409 0,1.364253 -0.661456,2.201409 -0.656289,0.837155 -1.710485,0.837155 -0.635618,0 -1.095536,-0.248046 -0.454752,-0.253213 -0.754474,-0.769976 z m 3.234934,-2.020542 q 0,-1.049028 -0.43408,-1.643305 -0.428913,-0.599445 -1.183387,-0.599445 -0.754473,0 -1.188554,0.599445 -0.428913,0.594277 -0.428913,1.643305 0,1.049028 0.428913,1.648473 0.434081,0.594277 1.188554,0.594277 0.754474,0 1.183387,-0.594277 0.43408,-0.599445 0.43408,-1.648473 z" />
|
||||
<path
|
||||
id="path1041"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 70.623814,41.4401 h 0.950843 v 8.040827 h -0.950843 z" />
|
||||
<path
|
||||
id="path1043"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 73.559027,43.693185 h 0.950844 v 5.787742 h -0.950844 z m 0,-2.253085 h 0.950844 v 1.204057 h -0.950844 z" />
|
||||
<path
|
||||
id="path1045"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 81.444825,46.349345 v 0.465087 h -4.371812 q 0.06201,0.981849 0.589109,1.498612 0.532266,0.511595 1.477941,0.511595 0.547769,0 1.059364,-0.134359 0.516763,-0.134358 1.02319,-0.403075 v 0.899167 q -0.511595,0.217041 -1.049028,0.330729 -0.537433,0.113687 -1.09037,0.113687 -1.384924,0 -2.196241,-0.806149 -0.80615,-0.80615 -0.80615,-2.180739 0,-1.421097 0.764809,-2.253085 0.769976,-0.837156 2.072218,-0.837156 1.167884,0 1.844843,0.754474 0.682127,0.749306 0.682127,2.041212 z m -0.950843,-0.279051 q -0.01034,-0.780312 -0.439249,-1.245399 -0.423745,-0.465086 -1.126542,-0.465086 -0.795815,0 -1.276404,0.449584 -0.475422,0.449583 -0.547769,1.266068 z" />
|
||||
<path
|
||||
id="path1047"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="M 86.813989,44.571682 V 41.4401 h 0.950843 v 8.040827 h -0.950843 v -0.868161 q -0.299723,0.516763 -0.759641,0.769976 -0.454751,0.248046 -1.095537,0.248046 -1.049028,0 -1.710485,-0.837155 -0.656288,-0.837156 -0.656288,-2.201409 0,-1.364254 0.656288,-2.201409 0.661457,-0.837156 1.710485,-0.837156 0.640786,0 1.095537,0.253214 0.459918,0.248046 0.759641,0.764809 z m -3.240102,2.020542 q 0,1.049028 0.428913,1.648473 0.434081,0.594277 1.188554,0.594277 0.754474,0 1.188554,-0.594277 0.434081,-0.599445 0.434081,-1.648473 0,-1.049028 -0.434081,-1.643305 -0.43408,-0.599445 -1.188554,-0.599445 -0.754473,0 -1.188554,0.599445 -0.428913,0.594277 -0.428913,1.643305 z" />
|
||||
<path
|
||||
id="path1049"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 48.061957,58.550114 q 0.749306,0.160196 1.167884,0.666623 0.423745,0.506428 0.423745,1.250566 0,1.142046 -0.785479,1.767329 -0.78548,0.625282 -2.232415,0.625282 -0.485757,0 -1.00252,-0.09819 -0.511595,-0.09302 -1.059363,-0.284219 v -1.007687 q 0.434081,0.253213 0.950843,0.382404 0.516763,0.129191 1.080034,0.129191 0.981849,0 1.493444,-0.387572 0.516763,-0.387572 0.516763,-1.126543 0,-0.682127 -0.480589,-1.064531 Q 47.658882,59.0152 46.806224,59.0152 h -0.899167 v -0.857826 h 0.940508 q 0.769976,0 1.178219,-0.30489 0.408242,-0.310058 0.408242,-0.888832 0,-0.594277 -0.423745,-0.909502 -0.418578,-0.320393 -1.204057,-0.320393 -0.428913,0 -0.919838,0.09302 -0.490924,0.09302 -1.080034,0.289387 v -0.930172 q 0.594277,-0.165364 1.11104,-0.248046 0.52193,-0.08268 0.981849,-0.08268 1.188554,0 1.881016,0.542601 0.692462,0.537433 0.692462,1.457271 0,0.640786 -0.366901,1.085202 -0.366902,0.439248 -1.043861,0.60978 z" />
|
||||
<path
|
||||
id="path1051"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 54.857386,57.811143 q -0.160196,-0.09302 -0.351398,-0.134358 -0.186035,-0.04651 -0.41341,-0.04651 -0.80615,0 -1.240231,0.527098 -0.428913,0.52193 -0.428913,1.503779 v 3.0489 h -0.956011 v -5.787742 h 0.956011 v 0.899167 q 0.299722,-0.527098 0.780312,-0.780311 0.480589,-0.258382 1.167883,-0.258382 0.09819,0 0.217041,0.0155 0.118855,0.01033 0.263549,0.03617 z" />
|
||||
<path
|
||||
id="path1053"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 59.48758,57.800808 v -3.131582 h 0.950843 v 8.040827 H 59.48758 v -0.868161 q -0.299722,0.516763 -0.759641,0.769976 -0.454751,0.248046 -1.095537,0.248046 -1.049028,0 -1.710484,-0.837155 -0.656289,-0.837156 -0.656289,-2.201409 0,-1.364254 0.656289,-2.201409 0.661456,-0.837156 1.710484,-0.837156 0.640786,0 1.095537,0.253214 0.459919,0.248046 0.759641,0.764809 z m -3.240102,2.020542 q 0,1.049028 0.428913,1.648473 0.434081,0.594277 1.188554,0.594277 0.754474,0 1.188554,-0.594277 0.434081,-0.599445 0.434081,-1.648473 0,-1.049028 -0.434081,-1.643305 -0.43408,-0.599445 -1.188554,-0.599445 -0.754473,0 -1.188554,0.599445 -0.428913,0.594277 -0.428913,1.643305 z" />
|
||||
<path
|
||||
id="path1055"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 62.531312,61.397476 h 1.090369 v 1.312577 h -1.090369 z" />
|
||||
<path
|
||||
id="path1057"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 70.055376,61.841892 v 3.06957 h -0.956011 v -7.989151 h 0.956011 v 0.878497 q 0.299722,-0.516763 0.754473,-0.764809 0.459919,-0.253214 1.095537,-0.253214 1.054196,0 1.710485,0.837156 0.661456,0.837155 0.661456,2.201409 0,1.364253 -0.661456,2.201409 -0.656289,0.837155 -1.710485,0.837155 -0.635618,0 -1.095537,-0.248046 -0.454751,-0.253213 -0.754473,-0.769976 z M 73.29031,59.82135 q 0,-1.049028 -0.43408,-1.643305 -0.428913,-0.599445 -1.183387,-0.599445 -0.754473,0 -1.188554,0.599445 -0.428913,0.594277 -0.428913,1.643305 0,1.049028 0.428913,1.648473 0.434081,0.594277 1.188554,0.594277 0.754474,0 1.183387,-0.594277 0.43408,-0.599445 0.43408,-1.648473 z" />
|
||||
<path
|
||||
id="path1059"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 80.804039,59.578471 v 0.465087 h -4.371812 q 0.06201,0.981849 0.58911,1.498612 0.532265,0.511595 1.477941,0.511595 0.547768,0 1.059363,-0.134359 0.516763,-0.134358 1.02319,-0.403075 v 0.899167 q -0.511595,0.217041 -1.049028,0.330729 -0.537433,0.113687 -1.090369,0.113687 -1.384924,0 -2.196241,-0.806149 -0.80615,-0.80615 -0.80615,-2.180739 0,-1.421097 0.764809,-2.253085 0.769976,-0.837156 2.072218,-0.837156 1.167884,0 1.844843,0.754474 0.682126,0.749306 0.682126,2.041212 z M 79.853196,59.29942 q -0.01033,-0.780312 -0.439248,-1.245399 -0.423746,-0.465086 -1.126543,-0.465086 -0.795814,0 -1.276404,0.449584 -0.475421,0.449583 -0.547768,1.266068 z" />
|
||||
<path
|
||||
id="path1061"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 85.718452,57.811143 q -0.160196,-0.09302 -0.351398,-0.134358 -0.186035,-0.04651 -0.413411,-0.04651 -0.806149,0 -1.24023,0.527098 -0.428913,0.52193 -0.428913,1.503779 v 3.0489 H 82.328489 V 56.922311 H 83.2845 v 0.899167 q 0.299722,-0.527098 0.780312,-0.780311 0.480589,-0.258382 1.167883,-0.258382 0.09818,0 0.217041,0.0155 0.118855,0.01033 0.263549,0.03617 z" />
|
||||
<path
|
||||
id="path1063"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="M 90.415825,57.092843 V 57.99201 Q 90.01275,57.785305 89.578669,57.681952 89.144589,57.5786 88.679502,57.5786 q -0.707965,0 -1.064531,0.21704 -0.351399,0.21704 -0.351399,0.651121 0,0.330728 0.253214,0.52193 0.253214,0.186035 1.018023,0.356567 l 0.32556,0.07235 q 1.012855,0.217041 1.4366,0.614948 0.428913,0.39274 0.428913,1.100705 0,0.806149 -0.640785,1.276403 -0.635618,0.470254 -1.751826,0.470254 -0.465086,0 -0.971514,-0.09302 -0.501259,-0.08785 -1.059363,-0.268717 v -0.981849 q 0.527098,0.273885 1.038693,0.413411 0.511595,0.134358 1.012855,0.134358 0.671791,0 1.033525,-0.227376 0.361734,-0.232543 0.361734,-0.651121 0,-0.387572 -0.263549,-0.594277 -0.258381,-0.206705 -1.142046,-0.397907 l -0.330728,-0.07751 q -0.883664,-0.186035 -1.276403,-0.568439 -0.39274,-0.387572 -0.39274,-1.059364 0,-0.816485 0.578774,-1.260901 0.578774,-0.444416 1.643305,-0.444416 0.527098,0 0.992185,0.07752 0.465086,0.07751 0.857826,0.232543 z" />
|
||||
<path
|
||||
id="path1065"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 92.379525,61.397476 h 1.09037 v 1.312577 h -1.09037 z" />
|
||||
<path
|
||||
id="path1067"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 44.620317,71.262477 q 0.356567,-0.640786 0.852659,-0.945676 0.496092,-0.30489 1.167884,-0.30489 0.904334,0 1.395259,0.635618 0.490924,0.630451 0.490924,1.798334 v 3.493316 h -0.956011 v -3.46231 q 0,-0.831988 -0.294554,-1.235063 -0.294555,-0.403074 -0.899167,-0.403074 -0.738971,0 -1.167884,0.490924 -0.428913,0.490925 -0.428913,1.338415 v 3.271108 h -0.956011 v -3.46231 q 0,-0.837155 -0.294555,-1.235063 -0.294554,-0.403074 -0.909502,-0.403074 -0.728635,0 -1.157548,0.496092 -0.428913,0.490924 -0.428913,1.333247 v 3.271108 h -0.956011 v -5.787742 h 0.956011 v 0.899167 q 0.32556,-0.532265 0.780311,-0.785479 0.454751,-0.253214 1.080034,-0.253214 0.630451,0 1.069699,0.320393 0.444416,0.320393 0.656288,0.930173 z" />
|
||||
<path
|
||||
id="path1069"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 53.059052,73.029805 q -1.152381,0 -1.596797,0.263549 -0.444416,0.263549 -0.444416,0.899167 0,0.506428 0.330728,0.80615 0.335896,0.294555 0.909503,0.294555 0.790647,0 1.266068,-0.558104 0.480589,-0.563271 0.480589,-1.493444 v -0.211873 z m 1.896519,-0.392739 v 3.302113 h -0.950844 v -0.878496 q -0.32556,0.527098 -0.811317,0.780311 -0.485757,0.248046 -1.188554,0.248046 -0.888832,0 -1.41593,-0.496092 -0.52193,-0.50126 -0.52193,-1.338415 0,-0.976682 0.651121,-1.472774 0.656288,-0.496092 1.953363,-0.496092 h 1.333247 v -0.09302 q 0,-0.656289 -0.43408,-1.012855 -0.428913,-0.361734 -1.209225,-0.361734 -0.496092,0 -0.966346,0.118855 -0.470254,0.118856 -0.904335,0.356567 v -0.878497 q 0.521931,-0.201537 1.012855,-0.299722 0.490925,-0.103353 0.956011,-0.103353 1.255733,0 1.875849,0.651121 0.620115,0.651121 0.620115,1.974034 z" />
|
||||
<path
|
||||
id="path1071"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 60.608955,70.321969 v 0.899167 q -0.403075,-0.206705 -0.837156,-0.310058 -0.43408,-0.103352 -0.899167,-0.103352 -0.707965,0 -1.064531,0.21704 -0.351398,0.21704 -0.351398,0.651121 0,0.330728 0.253213,0.52193 0.253214,0.186035 1.018023,0.356567 l 0.32556,0.07235 q 1.012855,0.217041 1.4366,0.614948 0.428913,0.39274 0.428913,1.100704 0,0.80615 -0.640785,1.276404 -0.635618,0.470254 -1.751826,0.470254 -0.465086,0 -0.971514,-0.09302 -0.501259,-0.08785 -1.059363,-0.268717 v -0.981849 q 0.527098,0.273885 1.038693,0.413411 0.511595,0.134358 1.012855,0.134358 0.671791,0 1.033525,-0.227376 0.361734,-0.232543 0.361734,-0.651121 0,-0.387572 -0.263549,-0.594277 -0.258381,-0.206705 -1.142045,-0.397907 l -0.330729,-0.07751 q -0.883664,-0.186035 -1.276403,-0.568439 -0.39274,-0.387572 -0.39274,-1.059364 0,-0.816485 0.578774,-1.260901 0.578774,-0.444416 1.643305,-0.444416 0.527098,0 0.992185,0.07752 0.465086,0.07751 0.857826,0.232543 z" />
|
||||
<path
|
||||
id="path1073"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 66.6034,70.373645 v 0.888832 q -0.403074,-0.222208 -0.811317,-0.330728 -0.403075,-0.113688 -0.816485,-0.113688 -0.925005,0 -1.4366,0.589109 -0.511595,0.583942 -0.511595,1.643306 0,1.059363 0.511595,1.648473 0.511595,0.583942 1.4366,0.583942 0.41341,0 0.816485,-0.108521 0.408243,-0.113687 0.811317,-0.335895 v 0.878496 q -0.397907,0.186035 -0.82682,0.279052 -0.423745,0.09302 -0.904335,0.09302 -1.307409,0 -2.077386,-0.821652 -0.769976,-0.821653 -0.769976,-2.216912 0,-1.41593 0.775144,-2.227247 0.780312,-0.811318 2.13423,-0.811318 0.439248,0 0.857826,0.09302 0.418578,0.08785 0.811317,0.268716 z" />
|
||||
<path
|
||||
id="path1075"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 68.401736,74.626602 h 1.090369 v 1.312577 h -1.090369 z" />
|
||||
<path
|
||||
id="path1077"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 78.695648,70.321969 v 0.899167 q -0.403075,-0.206705 -0.837156,-0.310058 -0.434081,-0.103352 -0.899167,-0.103352 -0.707965,0 -1.064531,0.21704 -0.351399,0.21704 -0.351399,0.651121 0,0.330728 0.253214,0.52193 0.253214,0.186035 1.018023,0.356567 l 0.32556,0.07235 q 1.012855,0.217041 1.4366,0.614948 0.428913,0.39274 0.428913,1.100704 0,0.80615 -0.640785,1.276404 -0.635619,0.470254 -1.751826,0.470254 -0.465086,0 -0.971514,-0.09302 -0.50126,-0.08785 -1.059363,-0.268717 v -0.981849 q 0.527098,0.273885 1.038693,0.413411 0.511595,0.134358 1.012855,0.134358 0.671791,0 1.033525,-0.227376 0.361734,-0.232543 0.361734,-0.651121 0,-0.387572 -0.263549,-0.594277 -0.258382,-0.206705 -1.142046,-0.397907 l -0.330728,-0.07751 q -0.883664,-0.186035 -1.276404,-0.568439 -0.392739,-0.387572 -0.392739,-1.059364 0,-0.816485 0.578774,-1.260901 0.578774,-0.444416 1.643305,-0.444416 0.527098,0 0.992185,0.07752 0.465086,0.07751 0.857826,0.232543 z" />
|
||||
<path
|
||||
id="path1079"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 80.52499,70.151437 h 0.950843 v 5.787742 H 80.52499 Z m 0,-2.253085 h 0.950843 v 1.204057 H 80.52499 Z" />
|
||||
<path
|
||||
id="path1081"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 88.271262,72.445863 v 3.493316 h -0.950844 v -3.46231 q 0,-0.821652 -0.320393,-1.229895 -0.320392,-0.408242 -0.961178,-0.408242 -0.769977,0 -1.214393,0.490924 -0.444415,0.490925 -0.444415,1.338415 v 3.271108 h -0.956011 v -5.787742 h 0.956011 v 0.899167 q 0.341063,-0.52193 0.800982,-0.780311 0.465086,-0.258382 1.069698,-0.258382 0.997352,0 1.508947,0.620115 0.511596,0.614948 0.511596,1.813837 z" />
|
||||
<path
|
||||
id="path1083"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 93.986657,72.978129 q 0,-1.033525 -0.428913,-1.601964 -0.423746,-0.568439 -1.193722,-0.568439 -0.764809,0 -1.193722,0.568439 -0.423745,0.568439 -0.423745,1.601964 0,1.028358 0.423745,1.596797 0.428913,0.568439 1.193722,0.568439 0.769976,0 1.193722,-0.568439 0.428913,-0.568439 0.428913,-1.596797 z m 0.950843,2.24275 q 0,1.477941 -0.656289,2.196241 -0.656288,0.723468 -2.010207,0.723468 -0.501259,0 -0.945675,-0.07751 -0.444416,-0.07235 -0.862994,-0.227376 v -0.925005 q 0.418578,0.227376 0.82682,0.335896 0.408243,0.10852 0.831988,0.10852 0.935341,0 1.400427,-0.490925 0.465087,-0.485757 0.465087,-1.472773 v -0.470254 q -0.294555,0.511595 -0.754474,0.764808 -0.459919,0.253214 -1.100704,0.253214 -1.064532,0 -1.715653,-0.811317 -0.651121,-0.811318 -0.651121,-2.149733 0,-1.343583 0.651121,-2.1549 0.651121,-0.811318 1.715653,-0.811318 0.640785,0 1.100704,0.253214 0.459919,0.253214 0.754474,0.764809 V 70.151437 H 94.9375 Z" />
|
||||
<path
|
||||
id="path1085"
|
||||
style="text-align:center;text-anchor:middle;fill:#999999"
|
||||
d="m 97.030388,74.626602 h 1.09037 v 1.312577 h -1.09037 z" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text1371"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1373);fill:#000000;fill-opacity:1;stroke:none;" />
|
||||
<path
|
||||
style="fill:none;stroke:#4d4d4d;stroke-width:0.865;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.46, 1.73;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m -25.930477,134.12776 v 6.94901 H 135.76759 v -18.4416"
|
||||
id="path1161"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path1169-1"
|
||||
d="m 36.883574,98.715892 9.342265,9.289858 h 40.102596 l 9.589405,-9.589418"
|
||||
style="fill:none;stroke:#808080;stroke-width:0.964999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1354);fill:#808080;fill-opacity:1;stroke:none"
|
||||
id="text1352"
|
||||
transform="translate(13.985119,-5.2916667)"
|
||||
aria-label="object">
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4403"
|
||||
d="m 39.076039,122.71137 q -0.764808,0 -1.209224,0.59945 -0.444416,0.59427 -0.444416,1.63297 0,1.03869 0.439248,1.63813 0.444416,0.59428 1.214392,0.59428 0.759642,0 1.204058,-0.59944 0.444415,-0.59945 0.444415,-1.63297 0,-1.02836 -0.444415,-1.62781 -0.444416,-0.60461 -1.204058,-0.60461 z m 0,-0.80615 q 1.240231,0 1.948196,0.80615 0.707965,0.80615 0.707965,2.23242 0,1.42109 -0.707965,2.23241 -0.707965,0.80615 -1.948196,0.80615 -1.245398,0 -1.953362,-0.80615 -0.702798,-0.81132 -0.702798,-2.23241 0,-1.42627 0.702798,-2.23242 0.707964,-0.80615 1.953362,-0.80615 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4405"
|
||||
d="m 47.45793,124.94379 q 0,-1.04903 -0.434081,-1.64331 -0.428913,-0.59944 -1.183386,-0.59944 -0.754474,0 -1.188554,0.59944 -0.428913,0.59428 -0.428913,1.64331 0,1.04902 0.428913,1.64847 0.43408,0.59428 1.188554,0.59428 0.754473,0 1.183386,-0.59428 0.434081,-0.59945 0.434081,-1.64847 z m -3.234934,-2.02055 q 0.299722,-0.51676 0.754473,-0.7648 0.459919,-0.25322 1.095537,-0.25322 1.054196,0 1.710485,0.83716 0.661456,0.83715 0.661456,2.20141 0,1.36425 -0.661456,2.20141 -0.656289,0.83715 -1.710485,0.83715 -0.635618,0 -1.095537,-0.24805 -0.454751,-0.25321 -0.754473,-0.76997 v 0.86816 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4407"
|
||||
d="m 50.021073,122.04475 h 0.950843 v 5.89109 q 0,1.10587 -0.423745,1.60197 -0.418578,0.49609 -1.353919,0.49609 h -0.361733 v -0.80615 h 0.253213 q 0.542601,0 0.738971,-0.25321 0.19637,-0.24805 0.19637,-1.0387 z m 0,-2.25309 h 0.950843 v 1.20406 h -0.950843 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4409"
|
||||
d="m 57.906871,124.70091 v 0.46508 h -4.371812 q 0.06201,0.98185 0.589109,1.49862 0.532266,0.51159 1.477942,0.51159 0.547768,0 1.059363,-0.13436 0.516763,-0.13436 1.02319,-0.40307 v 0.89916 q -0.511595,0.21705 -1.049028,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196242,-0.80615 -0.806149,-0.80615 -0.806149,-2.18074 0,-1.42109 0.764808,-2.25308 0.769977,-0.83716 2.072219,-0.83716 1.167883,0 1.844843,0.75448 0.682126,0.7493 0.682126,2.04121 z m -0.950843,-0.27905 q -0.01034,-0.78032 -0.439248,-1.2454 -0.423746,-0.46509 -1.126543,-0.46509 -0.795814,0 -1.276404,0.44959 -0.475421,0.44958 -0.547768,1.26606 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4411"
|
||||
d="m 63.632602,122.26696 v 0.88883 q -0.403075,-0.22221 -0.811318,-0.33073 -0.403075,-0.11369 -0.816485,-0.11369 -0.925005,0 -1.4366,0.58911 -0.511595,0.58394 -0.511595,1.64331 0,1.05936 0.511595,1.64847 0.511595,0.58394 1.4366,0.58394 0.41341,0 0.816485,-0.10852 0.408243,-0.11369 0.811318,-0.33589 v 0.87849 q -0.397908,0.18604 -0.826821,0.27905 -0.423745,0.093 -0.904334,0.093 -1.30741,0 -2.077386,-0.82165 -0.769977,-0.82165 -0.769977,-2.21691 0,-1.41593 0.775144,-2.22725 0.780312,-0.81132 2.13423,-0.81132 0.439248,0 0.857826,0.093 0.418578,0.0879 0.811318,0.26872 z" />
|
||||
<path
|
||||
style="fill:#808080"
|
||||
id="path4413"
|
||||
d="m 66.237085,120.40144 v 1.64331 h 1.95853 v 0.73897 h -1.95853 v 3.14192 q 0,0.70796 0.191202,0.9095 0.19637,0.20154 0.790647,0.20154 h 0.976681 v 0.79581 h -0.976681 q -1.100705,0 -1.519282,-0.40824 -0.418578,-0.41341 -0.418578,-1.49861 v -3.14192 h -0.69763 v -0.73897 h 0.69763 v -1.64331 z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 46 KiB |
|
@ -0,0 +1,235 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="intransitive.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 135.88185 67.253996"
|
||||
height="254.18832"
|
||||
width="513.56921">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
id="rect1165"
|
||||
height="44.73629"
|
||||
width="50.263763"
|
||||
y="61.904251"
|
||||
x="35.529755" />
|
||||
<rect
|
||||
id="rect1113"
|
||||
height="23.8125"
|
||||
width="56.69643"
|
||||
y="112.25893"
|
||||
x="37.041668" />
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible"
|
||||
id="Arrow1Lstart"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lstart">
|
||||
<path
|
||||
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||
style="fillRule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path841" />
|
||||
</marker>
|
||||
<rect
|
||||
x="37.041668"
|
||||
y="112.25893"
|
||||
width="56.69643"
|
||||
height="23.8125"
|
||||
id="rect1113-9" />
|
||||
<rect
|
||||
x="37.041668"
|
||||
y="112.25893"
|
||||
width="56.69643"
|
||||
height="23.8125"
|
||||
id="rect1141" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:window-y="32"
|
||||
inkscape:window-x="1952"
|
||||
inkscape:window-height="1080"
|
||||
inkscape:window-width="1515"
|
||||
fit-margin-left="10"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-top="10"
|
||||
units="px"
|
||||
showgrid="false"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:cy="143.11867"
|
||||
inkscape:cx="290.76106"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(-23.740903,-66.686407)"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
d="m 122.9777,85.081856 h 33.44172 V 118.52357 H 122.9777 Z"
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.115;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect839-4" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1113-9);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1111-8"
|
||||
transform="translate(90.461538,-16.314846)"
|
||||
aria-label="verb">
|
||||
<path
|
||||
id="path1187"
|
||||
d="m 37.356241,115.83576 h 1.007687 l 1.808669,4.85757 1.80867,-4.85757 h 1.007687 l -2.170403,5.78775 h -1.291907 z" />
|
||||
<path
|
||||
id="path1189"
|
||||
d="m 49.252118,118.49192 v 0.46509 h -4.371813 q 0.06201,0.98185 0.58911,1.49861 0.532265,0.5116 1.477941,0.5116 0.547769,0 1.059364,-0.13436 0.516762,-0.13436 1.02319,-0.40308 v 0.89917 q -0.511595,0.21704 -1.049029,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.4211 0.764809,-2.25309 0.769976,-0.83715 2.072218,-0.83715 1.167884,0 1.844843,0.75447 0.682127,0.74931 0.682127,2.04121 z m -0.950844,-0.27905 q -0.01033,-0.78031 -0.439248,-1.2454 -0.423745,-0.46508 -1.126543,-0.46508 -0.795814,0 -1.276403,0.44958 -0.475422,0.44958 -0.547769,1.26607 z" />
|
||||
<path
|
||||
id="path1191"
|
||||
d="m 54.166531,116.7246 q -0.160196,-0.093 -0.351398,-0.13436 -0.186035,-0.0465 -0.41341,-0.0465 -0.80615,0 -1.240231,0.5271 -0.428913,0.52193 -0.428913,1.50378 v 3.0489 h -0.956011 v -5.78775 h 0.956011 v 0.89917 q 0.299723,-0.5271 0.780312,-0.78031 0.480589,-0.25838 1.167883,-0.25838 0.09819,0 0.217041,0.0155 0.118855,0.0103 0.263549,0.0362 z" />
|
||||
<path
|
||||
id="path1193"
|
||||
d="m 59.32899,118.7348 q 0,-1.04903 -0.43408,-1.6433 -0.428913,-0.59945 -1.183387,-0.59945 -0.754473,0 -1.188554,0.59945 -0.428913,0.59427 -0.428913,1.6433 0,1.04903 0.428913,1.64847 0.434081,0.59428 1.188554,0.59428 0.754474,0 1.183387,-0.59428 0.43408,-0.59944 0.43408,-1.64847 z m -3.234934,-2.02054 q 0.299722,-0.51676 0.754474,-0.76481 0.459918,-0.25321 1.095536,-0.25321 1.054196,0 1.710485,0.83715 0.661456,0.83716 0.661456,2.20141 0,1.36426 -0.661456,2.20141 -0.656289,0.83716 -1.710485,0.83716 -0.635618,0 -1.095536,-0.24805 -0.454752,-0.25321 -0.754474,-0.76998 v 0.86817 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path1161"
|
||||
d="m 55.85933,124.01306 v 6.94901 h 83.65536 v -7.21628"
|
||||
style="fill:none;stroke:#4d4d4d;stroke-width:0.665;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.66, 1.33;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1113);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1111"
|
||||
transform="translate(-0.07274806,-3.3559295)"
|
||||
aria-label="subject">
|
||||
<path
|
||||
id="path1171"
|
||||
d="m 41.728053,116.0063 v 0.89916 q -0.403075,-0.2067 -0.837155,-0.31006 -0.434081,-0.10335 -0.899167,-0.10335 -0.707965,0 -1.064532,0.21704 -0.351398,0.21704 -0.351398,0.65112 0,0.33073 0.253213,0.52193 0.253214,0.18604 1.018023,0.35657 l 0.32556,0.0724 q 1.012855,0.21704 1.436601,0.61494 0.428913,0.39274 0.428913,1.10071 0,0.80615 -0.640786,1.2764 -0.635618,0.47026 -1.751825,0.47026 -0.465087,0 -0.971514,-0.093 -0.50126,-0.0879 -1.059364,-0.26872 v -0.98185 q 0.527098,0.27389 1.038693,0.41341 0.511595,0.13436 1.012855,0.13436 0.671792,0 1.033525,-0.22737 0.361734,-0.23255 0.361734,-0.65112 0,-0.38758 -0.263549,-0.59428 -0.258381,-0.20671 -1.142045,-0.39791 l -0.330728,-0.0775 q -0.883665,-0.18604 -1.276404,-0.56844 -0.39274,-0.38757 -0.39274,-1.05937 0,-0.81648 0.578774,-1.2609 0.578775,-0.44441 1.643306,-0.44441 0.527098,0 0.992184,0.0775 0.465086,0.0775 0.857826,0.23255 z" />
|
||||
<path
|
||||
id="path1173"
|
||||
d="m 43.459208,119.33941 v -3.50365 h 0.950843 v 3.46748 q 0,0.82165 0.320393,1.23506 0.320393,0.40825 0.961179,0.40825 0.769976,0 1.214392,-0.49093 0.449584,-0.49092 0.449584,-1.33841 v -3.28145 h 0.950843 v 5.78775 h -0.950843 v -0.88884 q -0.346231,0.5271 -0.80615,0.78548 -0.454751,0.25322 -1.059364,0.25322 -0.997352,0 -1.514114,-0.62012 -0.516763,-0.62011 -0.516763,-1.81384 z m 2.392611,-3.64317 z" />
|
||||
<path
|
||||
id="path1175"
|
||||
d="m 54.43008,118.7348 q 0,-1.04903 -0.434081,-1.6433 -0.428913,-0.59945 -1.183386,-0.59945 -0.754474,0 -1.188554,0.59945 -0.428913,0.59427 -0.428913,1.6433 0,1.04903 0.428913,1.64847 0.43408,0.59428 1.188554,0.59428 0.754473,0 1.183386,-0.59428 0.434081,-0.59944 0.434081,-1.64847 z m -3.234934,-2.02054 q 0.299722,-0.51676 0.754473,-0.76481 0.459919,-0.25321 1.095537,-0.25321 1.054196,0 1.710484,0.83715 0.661457,0.83716 0.661457,2.20141 0,1.36426 -0.661457,2.20141 -0.656288,0.83716 -1.710484,0.83716 -0.635618,0 -1.095537,-0.24805 -0.454751,-0.25321 -0.754473,-0.76998 v 0.86817 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
<path
|
||||
id="path1177"
|
||||
d="m 56.993223,115.83576 h 0.950843 v 5.8911 q 0,1.10587 -0.423746,1.60196 -0.418577,0.49609 -1.353918,0.49609 h -0.361734 v -0.80615 h 0.253214 q 0.542601,0 0.738971,-0.25321 0.19637,-0.24805 0.19637,-1.03869 z m 0,-2.25308 h 0.950843 v 1.20406 h -0.950843 z" />
|
||||
<path
|
||||
id="path1179"
|
||||
d="m 64.87902,118.49192 v 0.46509 h -4.371812 q 0.06201,0.98185 0.589109,1.49861 0.532266,0.5116 1.477942,0.5116 0.547768,0 1.059363,-0.13436 0.516763,-0.13436 1.02319,-0.40308 v 0.89917 q -0.511595,0.21704 -1.049028,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196242,-0.80615 -0.806149,-0.80615 -0.806149,-2.18074 0,-1.4211 0.764808,-2.25309 0.769977,-0.83715 2.072219,-0.83715 1.167883,0 1.844842,0.75447 0.682127,0.74931 0.682127,2.04121 z m -0.950843,-0.27905 q -0.01033,-0.78031 -0.439248,-1.2454 -0.423746,-0.46508 -1.126543,-0.46508 -0.795815,0 -1.276404,0.44958 -0.475422,0.44958 -0.547768,1.26607 z" />
|
||||
<path
|
||||
id="path1181"
|
||||
d="m 70.60475,116.05797 v 0.88883 q -0.403074,-0.2222 -0.811317,-0.33073 -0.403075,-0.11368 -0.816485,-0.11368 -0.925005,0 -1.4366,0.58911 -0.511595,0.58394 -0.511595,1.6433 0,1.05937 0.511595,1.64847 0.511595,0.58395 1.4366,0.58395 0.41341,0 0.816485,-0.10852 0.408243,-0.11369 0.811317,-0.3359 v 0.8785 q -0.397907,0.18603 -0.82682,0.27905 -0.423745,0.093 -0.904335,0.093 -1.307409,0 -2.077386,-0.82166 -0.769976,-0.82165 -0.769976,-2.21691 0,-1.41593 0.775144,-2.22725 0.780312,-0.81131 2.13423,-0.81131 0.439248,0 0.857826,0.093 0.418578,0.0879 0.811317,0.26872 z" />
|
||||
<path
|
||||
id="path1183"
|
||||
d="m 73.209234,114.19246 v 1.6433 h 1.95853 v 0.73897 h -1.95853 v 3.14192 q 0,0.70797 0.191202,0.9095 0.19637,0.20154 0.790647,0.20154 h 0.976681 v 0.79582 h -0.976681 q -1.100705,0 -1.519282,-0.40825 -0.418578,-0.41341 -0.418578,-1.49861 v -3.14192 h -0.69763 v -0.73897 h 0.69763 v -1.6433 z" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.05;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1165);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1163"
|
||||
transform="translate(-5.3453906,9.0871639)"
|
||||
aria-label="plain
|
||||
noun /
|
||||
pronoun">
|
||||
<path
|
||||
id="path1196"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 51.876136,67.854117 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239779,-0.413412 0.603581,-0.611849 0.367936,-0.202572 0.876432,-0.202572 0.84336,0 1.368393,0.669727 0.529167,0.669727 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525033,0.669727 -1.368393,0.669727 -0.508496,0 -0.876432,-0.198438 -0.363802,-0.202572 -0.603581,-0.615983 z m 2.587957,-1.61644 q 0,-0.839225 -0.347266,-1.314649 -0.343132,-0.479557 -0.946713,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343131,0.475424 -0.343131,1.314649 0,0.839226 0.343131,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946713,-0.475424 0.347266,-0.479557 0.347266,-1.318783 z" />
|
||||
<path
|
||||
id="path1198"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 56.514614,62.115963 h 0.760678 v 6.432685 h -0.760678 z" />
|
||||
<path
|
||||
id="path1200"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 60.967057,66.221141 q -0.921908,0 -1.277442,0.21084 -0.355534,0.21084 -0.355534,0.719336 0,0.405143 0.264584,0.644922 0.268717,0.235645 0.727604,0.235645 0.63252,0 1.012859,-0.446485 0.384473,-0.450618 0.384473,-1.194759 v -0.169499 z m 1.517221,-0.314193 v 2.6417 h -0.760677 v -0.702799 q -0.26045,0.421679 -0.649057,0.624251 -0.388607,0.198438 -0.950846,0.198438 -0.711068,0 -1.132748,-0.396876 -0.417546,-0.401009 -0.417546,-1.070736 0,-0.781348 0.520899,-1.178223 0.525032,-0.396875 1.562696,-0.396875 h 1.066602 v -0.07441 q 0,-0.525033 -0.347266,-0.810287 -0.343132,-0.289388 -0.967383,-0.289388 -0.396876,0 -0.77308,0.09508 -0.376205,0.09508 -0.723471,0.285254 v -0.7028 q 0.417546,-0.161231 0.810287,-0.239779 0.392741,-0.08268 0.764812,-0.08268 1.00459,0 1.500684,0.520899 0.496094,0.520898 0.496094,1.579232 z" />
|
||||
<path
|
||||
id="path1202"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 64.055242,63.918438 h 0.760678 v 4.63021 h -0.760678 z m 0,-1.802475 h 0.760678 v 0.96325 h -0.760678 z" />
|
||||
<path
|
||||
id="path1204"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 70.252282,65.753986 v 2.794662 H 69.491605 V 65.77879 q 0,-0.657324 -0.256315,-0.983919 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272851,-0.417545 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z" />
|
||||
<path
|
||||
id="path1206"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 51.88027,74.643985 v 2.794663 H 51.119593 V 74.66879 q 0,-0.657325 -0.256316,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
<path
|
||||
id="path1208"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 55.199965,73.341738 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.30638 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644923 0.566374,1.785939 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785939 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path1210"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 58.503124,75.611368 v -2.802931 h 0.760677 v 2.773992 q 0,0.657325 0.256315,0.988054 0.256316,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359669,-0.392741 0.359669,-1.070736 v -2.625164 h 0.760677 v 4.630211 H 61.620248 V 76.72758 q -0.276986,0.42168 -0.644923,0.628385 -0.363802,0.202572 -0.847493,0.202572 -0.797885,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z" />
|
||||
<path
|
||||
id="path1212"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 67.804886,74.643985 v 2.794663 H 67.044208 V 74.66879 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
<path
|
||||
id="path1214"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 73.377673,71.266412 h 0.7028 l -2.14974,6.957718 h -0.7028 z" />
|
||||
<path
|
||||
id="path1216"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 44.616628,85.634116 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239778,-0.413412 0.603581,-0.61185 0.367936,-0.202571 0.876432,-0.202571 0.84336,0 1.368393,0.669727 0.529167,0.669726 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525033,0.669726 -1.368393,0.669726 -0.508496,0 -0.876432,-0.198437 -0.363803,-0.202572 -0.603581,-0.615983 z m 2.587956,-1.61644 q 0,-0.839226 -0.347265,-1.314649 -0.343132,-0.479557 -0.946713,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343131,0.475423 -0.343131,1.314649 0,0.839226 0.343131,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946713,-0.475424 0.347265,-0.479557 0.347265,-1.318783 z" />
|
||||
<path
|
||||
id="path1218"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 51.938147,82.409505 q -0.128157,-0.07441 -0.281119,-0.107487 -0.148829,-0.03721 -0.33073,-0.03721 -0.644922,0 -0.992188,0.42168 -0.343131,0.417545 -0.343131,1.203027 v 2.439129 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.239778,-0.42168 0.624251,-0.624251 0.384473,-0.206706 0.934311,-0.206706 0.07855,0 0.173632,0.0124 0.09508,0.0083 0.21084,0.02894 z" />
|
||||
<path
|
||||
id="path1220"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 54.356606,82.231738 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path1222"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 61.587175,83.533984 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657324 -0.256315,-0.983919 -0.256315,-0.326596 -0.768946,-0.326596 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624251 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451074 z" />
|
||||
<path
|
||||
id="path1224"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 64.90687,82.231738 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.562239,-0.649056 -0.562239,-1.785938 0,-1.141016 0.562239,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path1226"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 68.210028,84.501368 v -2.802931 h 0.760678 v 2.773992 q 0,0.657324 0.256315,0.988054 0.256315,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359668,-0.392741 0.359668,-1.070736 v -2.625164 h 0.760678 v 4.63021 h -0.760678 v -0.711068 q -0.276986,0.42168 -0.644922,0.628386 -0.363802,0.202571 -0.847494,0.202571 -0.797884,0 -1.211296,-0.496094 -0.413412,-0.496093 -0.413412,-1.451074 z m 1.914096,-2.914552 z" />
|
||||
<path
|
||||
id="path1228"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 77.51179,83.533984 v 2.794663 h -0.760677 v -2.769858 q 0,-0.657324 -0.256315,-0.983919 -0.256315,-0.326596 -0.768946,-0.326596 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451074 z" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path1169"
|
||||
d="m 26.726954,97.018837 9.342265,9.289843 h 40.102597 l 9.589407,-9.589408"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.965;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 19 KiB |
|
@ -0,0 +1,571 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="stative-compound-intransitive.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 193.48419 61.820076"
|
||||
height="61.820076mm"
|
||||
width="193.48419mm">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
id="rect1861"
|
||||
height="29.534964"
|
||||
width="51.949112"
|
||||
y="14.93006"
|
||||
x="13.418155" />
|
||||
<rect
|
||||
id="rect1855"
|
||||
height="27.025297"
|
||||
width="24.568453"
|
||||
y="60.098213"
|
||||
x="105.64435" />
|
||||
<rect
|
||||
id="rect1025"
|
||||
height="15.308036"
|
||||
width="48.947918"
|
||||
y="62.177082"
|
||||
x="137.77232" />
|
||||
<rect
|
||||
id="rect962"
|
||||
height="16.036173"
|
||||
width="39.823158"
|
||||
y="37.952274"
|
||||
x="-6.9490075" />
|
||||
<rect
|
||||
id="rect894"
|
||||
height="23.519718"
|
||||
width="37.417732"
|
||||
y="56.126602"
|
||||
x="11.759859" />
|
||||
<rect
|
||||
id="rect886"
|
||||
height="13.363476"
|
||||
width="47.841248"
|
||||
y="14.432554"
|
||||
x="75.102737" />
|
||||
<rect
|
||||
id="rect880"
|
||||
height="13.363476"
|
||||
width="34.210499"
|
||||
y="23.252449"
|
||||
x="35.279579" />
|
||||
<rect
|
||||
id="rect855"
|
||||
height="34.477768"
|
||||
width="88.733482"
|
||||
y="102.89877"
|
||||
x="59.868374" />
|
||||
<rect
|
||||
id="rect849"
|
||||
height="33.94323"
|
||||
width="92.475258"
|
||||
y="99.691536"
|
||||
x="52.652096" />
|
||||
<rect
|
||||
id="rect843"
|
||||
height="20.112129"
|
||||
width="67.822716"
|
||||
y="47.507061"
|
||||
x="52.715843" />
|
||||
<rect
|
||||
id="rect835"
|
||||
height="43.845238"
|
||||
width="92.98214"
|
||||
y="45.357143"
|
||||
x="47.625" />
|
||||
<rect
|
||||
x="75.102737"
|
||||
y="14.432554"
|
||||
width="54.312309"
|
||||
height="38.060673"
|
||||
id="rect886-3" />
|
||||
<rect
|
||||
x="75.102737"
|
||||
y="14.432554"
|
||||
width="47.841248"
|
||||
height="13.363476"
|
||||
id="rect925" />
|
||||
<rect
|
||||
x="11.759859"
|
||||
y="56.126602"
|
||||
width="37.417732"
|
||||
height="23.519718"
|
||||
id="rect894-9" />
|
||||
<rect
|
||||
x="11.759859"
|
||||
y="56.126602"
|
||||
width="37.417732"
|
||||
height="23.519718"
|
||||
id="rect1002" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
fit-margin-left="5"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-right="5"
|
||||
fit-margin-top="10"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-x="1911"
|
||||
inkscape:window-height="1361"
|
||||
inkscape:window-width="2560"
|
||||
showgrid="false"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:cy="406.18454"
|
||||
inkscape:cx="512.61051"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:snap-global="false" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(0.92597286,-39.667365)"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<g
|
||||
id="g1172">
|
||||
<g
|
||||
transform="translate(114.04453,0.80182124)"
|
||||
id="g994-1">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-81" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-57" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(130.0807,0.80182124)"
|
||||
id="g994-3">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-5" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-7" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(145.8496,0.80182124)"
|
||||
id="g994-8">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-2" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-8" />
|
||||
</g>
|
||||
<g
|
||||
id="g994-1-0"
|
||||
transform="translate(-9.7012598,0.80182124)">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-81-0" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-57-5" />
|
||||
</g>
|
||||
<g
|
||||
id="g994-3-9"
|
||||
transform="translate(6.3349112,0.80182124)">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-5-3" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-7-3" />
|
||||
</g>
|
||||
<g
|
||||
id="g994-8-7"
|
||||
transform="translate(22.103811,0.80182124)">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-2-1" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-8-6" />
|
||||
</g>
|
||||
<g
|
||||
id="g994-80-3"
|
||||
transform="translate(39.47633,0.80182124)">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-9-8" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-1-0" />
|
||||
</g>
|
||||
<path
|
||||
id="path1132"
|
||||
d="M 9.3549106,79.280506 H 182.27902"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 8.9769335,89.769346 H 181.90104"
|
||||
id="path1132-5" />
|
||||
</g>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect835);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text833"
|
||||
xml:space="preserve" />
|
||||
<path
|
||||
d="m 59.13031,53.38699 h 72.60143 V 91.097443 H 59.13031 Z"
|
||||
style="fill:#ffffff;stroke:#000000;stroke-width:0.78;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect839" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0;font-family:sans-serif;white-space:pre;shape-inside:url(#rect894);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text892"
|
||||
transform="matrix(1.5178263,0,0,1.5178263,-13.264547,-22.158414)"
|
||||
aria-label="subject">
|
||||
<path
|
||||
id="path1880"
|
||||
style="font-size:5.64444px;line-height:1.25;text-align:center;text-anchor:middle"
|
||||
d="m 22.732449,58.125107 v 0.479557 q -0.214973,-0.110243 -0.446484,-0.165365 -0.23151,-0.05512 -0.479557,-0.05512 -0.377582,0 -0.567751,0.115755 -0.187413,0.115755 -0.187413,0.347265 0,0.176389 0.135048,0.278364 0.135047,0.09922 0.542946,0.190169 l 0.173633,0.03858 q 0.540191,0.115755 0.766189,0.327973 0.228754,0.209462 0.228754,0.587044 0,0.429947 -0.341753,0.68075 -0.338997,0.250803 -0.93431,0.250803 -0.248046,0 -0.518141,-0.04961 -0.26734,-0.04685 -0.564996,-0.143316 v -0.523654 q 0.28112,0.146072 0.553971,0.220486 0.272852,0.07166 0.540191,0.07166 0.358289,0 0.551215,-0.121267 0.192925,-0.124023 0.192925,-0.347265 0,-0.206706 -0.14056,-0.316949 -0.137804,-0.110243 -0.609092,-0.212217 l -0.176389,-0.04134 q -0.471289,-0.09922 -0.68075,-0.303168 -0.209462,-0.206705 -0.209462,-0.564995 0,-0.43546 0.30868,-0.672482 0.308681,-0.237022 0.876432,-0.237022 0.281119,0 0.529166,0.04134 0.248047,0.04134 0.457508,0.124023 z" />
|
||||
<path
|
||||
id="path1882"
|
||||
style="font-size:5.64444px;line-height:1.25;text-align:center;text-anchor:middle"
|
||||
d="m 23.655734,59.902775 v -1.868618 h 0.507118 v 1.849325 q 0,0.438216 0.170877,0.658702 0.170876,0.21773 0.512629,0.21773 0.410656,0 0.647678,-0.261827 0.239778,-0.261827 0.239778,-0.713823 v -1.750107 h 0.507118 v 3.086803 h -0.507118 v -0.474045 q -0.184657,0.28112 -0.429947,0.418923 -0.242535,0.135048 -0.564995,0.135048 -0.531923,0 -0.80753,-0.330729 -0.275608,-0.330729 -0.275608,-0.967382 z m 1.276063,-1.943032 z" />
|
||||
<path
|
||||
id="path1884"
|
||||
style="font-size:5.64444px;line-height:1.25;text-align:center;text-anchor:middle"
|
||||
d="m 29.50688,59.580314 q 0,-0.559483 -0.23151,-0.876431 -0.228754,-0.319705 -0.631141,-0.319705 -0.402387,0 -0.633897,0.319705 -0.228754,0.316948 -0.228754,0.876431 0,0.559483 0.228754,0.879188 0.23151,0.316948 0.633897,0.316948 0.402387,0 0.631141,-0.316948 0.23151,-0.319705 0.23151,-0.879188 z m -1.725302,-1.077625 q 0.159852,-0.275607 0.402387,-0.407899 0.24529,-0.135047 0.584288,-0.135047 0.562239,0 0.91226,0.446484 0.352778,0.446484 0.352778,1.174087 0,0.727604 -0.352778,1.174088 -0.350021,0.446484 -0.91226,0.446484 -0.338998,0 -0.584288,-0.132292 -0.242535,-0.135047 -0.402387,-0.410655 v 0.463021 h -0.509874 v -4.288452 h 0.509874 z" />
|
||||
<path
|
||||
id="path1886"
|
||||
style="font-size:5.64444px;line-height:1.25;text-align:center;text-anchor:middle"
|
||||
d="m 30.873893,58.034157 h 0.507118 v 3.141924 q 0,0.5898 -0.225998,0.854383 -0.223242,0.264583 -0.722092,0.264583 H 30.239996 V 61.8651 h 0.135048 q 0.289387,0 0.394118,-0.135048 0.104731,-0.132291 0.104731,-0.553971 z m 0,-1.201649 h 0.507118 v 0.642165 h -0.507118 z" />
|
||||
<path
|
||||
id="path1888"
|
||||
style="font-size:5.64444px;line-height:1.25;text-align:center;text-anchor:middle"
|
||||
d="m 35.079663,59.450779 v 0.248046 h -2.331639 q 0.03307,0.523655 0.314192,0.799262 0.283876,0.272851 0.788238,0.272851 0.292144,0 0.564995,-0.07166 0.275607,-0.07166 0.545703,-0.214973 v 0.479557 q -0.272852,0.115755 -0.559483,0.176388 -0.286632,0.06063 -0.581532,0.06063 -0.738628,0 -1.171332,-0.429948 -0.429947,-0.429947 -0.429947,-1.163063 0,-0.75792 0.407899,-1.201648 0.410655,-0.446484 1.105185,-0.446484 0.622873,0 0.983919,0.402386 0.363802,0.399631 0.363802,1.08865 z m -0.507118,-0.148828 q -0.0055,-0.416167 -0.234266,-0.664214 -0.225998,-0.248047 -0.600824,-0.248047 -0.424436,0 -0.680751,0.239779 -0.253559,0.239778 -0.292144,0.675238 z" />
|
||||
<path
|
||||
id="path1890"
|
||||
style="font-size:5.64444px;line-height:1.25;text-align:center;text-anchor:middle"
|
||||
d="m 38.133393,58.152668 v 0.474045 q -0.214974,-0.118512 -0.432704,-0.176389 -0.214974,-0.06063 -0.435459,-0.06063 -0.493338,0 -0.766189,0.314193 -0.272852,0.311436 -0.272852,0.876431 0,0.564995 0.272852,0.879188 0.272851,0.311436 0.766189,0.311436 0.220485,0 0.435459,-0.05788 0.21773,-0.06063 0.432704,-0.179145 v 0.468533 q -0.212218,0.09922 -0.440972,0.148828 -0.225998,0.04961 -0.482313,0.04961 -0.697287,0 -1.107942,-0.438216 -0.410655,-0.438216 -0.410655,-1.182356 0,-0.755164 0.413411,-1.187868 0.416167,-0.432703 1.138259,-0.432703 0.234266,0 0.457508,0.04961 0.223242,0.04685 0.432704,0.143316 z" />
|
||||
<path
|
||||
id="path1892"
|
||||
style="font-size:5.64444px;line-height:1.25;text-align:center;text-anchor:middle"
|
||||
d="m 39.522455,57.157725 v 0.876432 h 1.044552 v 0.394118 h -1.044552 v 1.675693 q 0,0.377583 0.101975,0.485069 0.104731,0.107487 0.421679,0.107487 h 0.520898 v 0.424436 h -0.520898 q -0.587044,0 -0.810286,-0.21773 -0.223242,-0.220486 -0.223242,-0.799262 v -1.675693 h -0.37207 v -0.394118 h 0.37207 v -0.876432 z" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:#b3b3b3;stroke:#b3b3b3;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 41.076674,57.758014 8.427083,0.450429 0.130752,2.787304 4.146864,-4.474386 -4.864018,-5.896909 -0.193283,2.981902 -7.519265,0.327089 z"
|
||||
id="path890-6" />
|
||||
<g
|
||||
id="g994-80"
|
||||
transform="translate(163.22212,0.80182124)">
|
||||
<path
|
||||
d="m 24.078913,83.65535 a 5.0232186,5.0232186 0 0 1 -5.023218,5.023218 5.0232186,5.0232186 0 0 1 -5.023219,-5.023218 5.0232186,5.0232186 0 0 1 5.023219,-5.023219 5.0232186,5.0232186 0 0 1 5.023218,5.023219"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.514378;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path917-9" />
|
||||
<path
|
||||
d="m 22.405765,83.65535 a 3.3500707,3.3500707 0 0 1 -3.35007,3.35007 3.3500707,3.3500707 0 0 1 -3.350071,-3.35007 3.3500707,3.3500707 0 0 1 3.350071,-3.350071 3.3500707,3.3500707 0 0 1 3.35007,3.350071"
|
||||
style="fill:#ffffff;stroke:#333333;stroke-width:0.357698;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="path984-1" />
|
||||
</g>
|
||||
<path
|
||||
id="path890-6-2"
|
||||
d="m 136.50309,57.142695 8.42708,0.45043 0.13076,2.787304 4.14686,-4.474386 -4.86402,-5.89691 -0.19328,2.981903 -7.51927,0.327088 z"
|
||||
style="fill:#b3b3b3;stroke:#b3b3b3;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:6.35px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1025);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text1023"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0.75;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
id="text1031"
|
||||
aria-label="changed
|
||||
subject">
|
||||
<path
|
||||
id="path1897"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 152.59929,62.435466 v 0.592556 q -0.26872,-0.148139 -0.54088,-0.220486 -0.26872,-0.07579 -0.54432,-0.07579 -0.61668,0 -0.95774,0.392741 -0.34107,0.389296 -0.34107,1.095541 0,0.706245 0.34107,1.098986 0.34106,0.389296 0.95774,0.389296 0.2756,0 0.54432,-0.07235 0.27216,-0.07579 0.54088,-0.223931 v 0.585667 q -0.26527,0.124023 -0.55121,0.186035 -0.2825,0.06201 -0.6029,0.06201 -0.87161,0 -1.38493,-0.547771 -0.51332,-0.54777 -0.51332,-1.477947 0,-0.943957 0.51677,-1.484837 0.52021,-0.54088 1.42282,-0.54088 0.29284,0 0.57189,0.06201 0.27905,0.05857 0.54088,0.179145 z" />
|
||||
<path
|
||||
id="path1899"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 156.916,63.81695 v 2.328886 h -0.6339 V 63.83762 q 0,-0.54777 -0.2136,-0.819933 -0.21359,-0.272163 -0.64078,-0.272163 -0.51332,0 -0.8096,0.327285 -0.29628,0.327284 -0.29628,0.89228 v 2.180747 h -0.63734 v -5.360572 h 0.63734 v 2.101509 q 0.22738,-0.347954 0.53399,-0.520209 0.31006,-0.172255 0.71314,-0.172255 0.6649,0 1.00596,0.413412 0.34107,0.409966 0.34107,1.209229 z" />
|
||||
<path
|
||||
id="path1901"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 159.94079,64.206246 q -0.76825,0 -1.06453,0.1757 -0.29628,0.1757 -0.29628,0.599447 0,0.337619 0.22049,0.537435 0.22393,0.196371 0.60633,0.196371 0.5271,0 0.84405,-0.372071 0.3204,-0.375516 0.3204,-0.995633 v -0.141249 z m 1.26436,-0.261828 v 2.201418 h -0.6339 v -0.585667 q -0.21704,0.3514 -0.54088,0.52021 -0.32384,0.165365 -0.79237,0.165365 -0.59256,0 -0.94396,-0.33073 -0.34796,-0.334174 -0.34796,-0.89228 0,-0.651123 0.43409,-0.981853 0.43752,-0.330729 1.30224,-0.330729 h 0.88884 v -0.06201 q 0,-0.437527 -0.28939,-0.675239 -0.28594,-0.241157 -0.80615,-0.241157 -0.33073,0 -0.64424,0.07924 -0.3135,0.07924 -0.60289,0.237712 v -0.585667 q 0.34796,-0.134358 0.67524,-0.199815 0.32728,-0.0689 0.63734,-0.0689 0.83716,0 1.25057,0.434082 0.41342,0.434082 0.41342,1.316027 z" />
|
||||
<path
|
||||
id="path1903"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 165.72167,63.81695 v 2.328886 h -0.6339 V 63.83762 q 0,-0.54777 -0.2136,-0.819933 -0.21359,-0.272163 -0.64078,-0.272163 -0.51332,0 -0.8096,0.327285 -0.29628,0.327284 -0.29628,0.89228 v 2.180747 h -0.63734 v -3.85851 h 0.63734 v 0.599447 q 0.22738,-0.347954 0.53399,-0.520209 0.31006,-0.172255 0.71314,-0.172255 0.6649,0 1.00596,0.413412 0.34107,0.409966 0.34107,1.209229 z" />
|
||||
<path
|
||||
id="path1905"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 169.53195,64.171795 q 0,-0.68902 -0.28595,-1.06798 -0.28249,-0.378961 -0.79581,-0.378961 -0.50988,0 -0.79582,0.378961 -0.2825,0.37896 -0.2825,1.06798 0,0.685574 0.2825,1.064535 0.28594,0.378961 0.79582,0.378961 0.51332,0 0.79581,-0.378961 0.28595,-0.378961 0.28595,-1.064535 z m 0.6339,1.495172 q 0,0.985298 -0.43753,1.464167 -0.43753,0.482314 -1.34014,0.482314 -0.33418,0 -0.63046,-0.05168 -0.29628,-0.04823 -0.57533,-0.151584 v -0.616673 q 0.27905,0.151585 0.55122,0.223932 0.27216,0.07235 0.55466,0.07235 0.62356,0 0.93362,-0.327285 0.31006,-0.323839 0.31006,-0.981852 v -0.313504 q -0.19637,0.341064 -0.50299,0.509874 -0.30661,0.16881 -0.7338,0.16881 -0.70969,0 -1.14377,-0.54088 -0.43409,-0.540881 -0.43409,-1.433161 0,-0.895726 0.43409,-1.436606 0.43408,-0.54088 1.14377,-0.54088 0.42719,0 0.7338,0.16881 0.30662,0.168809 0.50299,0.509874 v -0.585667 h 0.6339 z" />
|
||||
<path
|
||||
id="path1907"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 174.77194,64.058107 v 0.310058 h -2.91455 q 0.0413,0.654569 0.39274,0.999079 0.35484,0.341064 0.9853,0.341064 0.36518,0 0.70624,-0.08957 0.34451,-0.08957 0.68213,-0.268718 v 0.599447 q -0.34106,0.144694 -0.69935,0.220487 -0.35829,0.07579 -0.72692,0.07579 -0.92329,0 -1.46417,-0.537436 -0.53743,-0.537435 -0.53743,-1.453831 0,-0.947402 0.50987,-1.502062 0.51332,-0.558106 1.38149,-0.558106 0.77859,0 1.2299,0.502984 0.45475,0.499539 0.45475,1.360814 z m -0.6339,-0.186036 q -0.007,-0.520209 -0.29283,-0.830268 -0.2825,-0.310059 -0.75103,-0.310059 -0.53055,0 -0.85094,0.299724 -0.31695,0.299723 -0.36518,0.844048 z" />
|
||||
<path
|
||||
id="path1909"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 178.3514,62.872993 v -2.087729 h 0.6339 v 5.360572 h -0.6339 v -0.578777 q -0.19982,0.34451 -0.50643,0.51332 -0.30317,0.165365 -0.73036,0.165365 -0.69936,0 -1.14033,-0.558106 -0.43753,-0.558106 -0.43753,-1.467612 0,-0.909506 0.43753,-1.467611 0.44097,-0.558106 1.14033,-0.558106 0.42719,0 0.73036,0.16881 0.30661,0.165364 0.50643,0.509874 z m -2.16008,1.347033 q 0,0.699355 0.28595,1.098986 0.28938,0.396187 0.79237,0.396187 0.50298,0 0.79237,-0.396187 0.28939,-0.399631 0.28939,-1.098986 0,-0.699355 -0.28939,-1.095541 -0.28939,-0.399631 -0.79237,-0.399631 -0.50299,0 -0.79237,0.399631 -0.28595,0.396186 -0.28595,1.095541 z" />
|
||||
<path
|
||||
id="path1911"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 154.72147,70.338489 v 0.599447 q -0.26872,-0.137804 -0.5581,-0.206705 -0.28939,-0.0689 -0.59945,-0.0689 -0.47198,0 -0.70969,0.144694 -0.23427,0.144694 -0.23427,0.434082 0,0.220486 0.16881,0.347955 0.16881,0.124023 0.67869,0.237712 l 0.21704,0.04823 q 0.67524,0.144694 0.95773,0.409967 0.28595,0.261827 0.28595,0.733805 0,0.537436 -0.42719,0.85094 -0.42375,0.313503 -1.16789,0.313503 -0.31006,0 -0.64768,-0.06201 -0.33418,-0.05857 -0.70625,-0.179145 v -0.654569 q 0.3514,0.18259 0.69247,0.275608 0.34106,0.08957 0.67524,0.08957 0.44786,0 0.68902,-0.151584 0.24115,-0.155029 0.24115,-0.434082 0,-0.258383 -0.1757,-0.396186 -0.17225,-0.137804 -0.76136,-0.265273 l -0.22049,-0.05168 q -0.58911,-0.124024 -0.85094,-0.378961 -0.26183,-0.258383 -0.26183,-0.706245 0,-0.544326 0.38586,-0.840604 0.38585,-0.296278 1.09554,-0.296278 0.3514,0 0.66146,0.05168 0.31005,0.05168 0.57188,0.155029 z" />
|
||||
<path
|
||||
id="path1913"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 155.87558,72.560577 v -2.335776 h 0.6339 v 2.311661 q 0,0.54777 0.21359,0.823378 0.2136,0.272163 0.64079,0.272163 0.51332,0 0.8096,-0.327284 0.29972,-0.327285 0.29972,-0.892281 v -2.187637 h 0.6339 v 3.85851 h -0.6339 v -0.592557 q -0.23082,0.3514 -0.53743,0.523655 -0.30317,0.168809 -0.70625,0.168809 -0.6649,0 -1.00941,-0.413411 -0.34451,-0.413412 -0.34451,-1.20923 z m 1.59508,-2.428793 z" />
|
||||
<path
|
||||
id="path1915"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 163.18952,72.157501 q 0,-0.699355 -0.28939,-1.095541 -0.28594,-0.399631 -0.78892,-0.399631 -0.50299,0 -0.79238,0.399631 -0.28594,0.396186 -0.28594,1.095541 0,0.699355 0.28594,1.098986 0.28939,0.396186 0.79238,0.396186 0.50298,0 0.78892,-0.396186 0.28939,-0.399631 0.28939,-1.098986 z m -2.15663,-1.347033 q 0.19982,-0.34451 0.50298,-0.509875 0.30662,-0.168809 0.73037,-0.168809 0.7028,0 1.14032,0.558105 0.44098,0.558106 0.44098,1.467612 0,0.909506 -0.44098,1.467612 -0.43752,0.558105 -1.14032,0.558105 -0.42375,0 -0.73037,-0.165364 -0.30316,-0.16881 -0.50298,-0.51332 v 0.578777 h -0.63734 v -5.360572 h 0.63734 z" />
|
||||
<path
|
||||
id="path1917"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 164.89829,70.224801 h 0.6339 v 3.927412 q 0,0.73725 -0.2825,1.06798 -0.27905,0.330729 -0.90262,0.330729 h -0.24115 v -0.537435 h 0.16881 q 0.36173,0 0.49265,-0.16881 0.13091,-0.165364 0.13091,-0.692464 z m 0,-1.502062 h 0.6339 v 0.802707 h -0.6339 z" />
|
||||
<path
|
||||
id="path1919"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 170.15551,71.995581 v 0.310059 h -2.91455 q 0.0413,0.654569 0.39274,0.999079 0.35484,0.341064 0.9853,0.341064 0.36518,0 0.70624,-0.08957 0.34451,-0.08957 0.68213,-0.268718 v 0.599447 q -0.34106,0.144694 -0.69935,0.220486 -0.35829,0.07579 -0.72692,0.07579 -0.92329,0 -1.46417,-0.537435 -0.53743,-0.537435 -0.53743,-1.453831 0,-0.947402 0.50987,-1.502063 0.51332,-0.558105 1.38149,-0.558105 0.77859,0 1.2299,0.502984 0.45475,0.499539 0.45475,1.360813 z m -0.6339,-0.186035 q -0.007,-0.52021 -0.29283,-0.830268 -0.2825,-0.310059 -0.75103,-0.310059 -0.53055,0 -0.85094,0.299723 -0.31695,0.299724 -0.36518,0.844049 z" />
|
||||
<path
|
||||
id="path1921"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 173.97268,70.37294 v 0.592557 q -0.26872,-0.148139 -0.54088,-0.220486 -0.26872,-0.07579 -0.54433,-0.07579 -0.61667,0 -0.95773,0.392741 -0.34107,0.389296 -0.34107,1.095541 0,0.706245 0.34107,1.098986 0.34106,0.389296 0.95773,0.389296 0.27561,0 0.54433,-0.07235 0.27216,-0.07579 0.54088,-0.223931 v 0.585666 q -0.26527,0.124024 -0.55122,0.186036 -0.2825,0.06201 -0.60289,0.06201 -0.87161,0 -1.38493,-0.54777 -0.51332,-0.547771 -0.51332,-1.477947 0,-0.943957 0.51677,-1.484837 0.52021,-0.54088 1.42282,-0.54088 0.29283,0 0.57189,0.06201 0.27905,0.05857 0.54088,0.179145 z" />
|
||||
<path
|
||||
id="path1923"
|
||||
style="font-size:7.05556px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.264583"
|
||||
d="m 175.70901,69.12926 v 1.095541 h 1.30569 v 0.492649 h -1.30569 v 2.09462 q 0,0.471978 0.12747,0.606337 0.13091,0.134359 0.5271,0.134359 h 0.65112 v 0.530545 h -0.65112 q -0.73381,0 -1.01286,-0.272163 -0.27906,-0.275608 -0.27906,-0.999078 v -2.09462 h -0.46508 v -0.492649 h 0.46508 V 69.12926 Z" />
|
||||
</g>
|
||||
<g
|
||||
aria-label="complement"
|
||||
transform="matrix(1.114528,0,0,1.114528,-6.7786464,-5.5245137)"
|
||||
id="text1118"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1120);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 63.747459,60.844666 v 0.474045 q -0.214974,-0.118511 -0.432704,-0.176389 -0.214974,-0.06063 -0.43546,-0.06063 -0.493337,0 -0.766188,0.314192 -0.272852,0.311437 -0.272852,0.876432 0,0.564995 0.272852,0.879188 0.272851,0.311436 0.766188,0.311436 0.220486,0 0.43546,-0.05788 0.21773,-0.06063 0.432704,-0.179144 v 0.468532 q -0.212218,0.09922 -0.440972,0.148828 -0.225998,0.04961 -0.482313,0.04961 -0.697287,0 -1.107942,-0.438216 -0.410655,-0.438216 -0.410655,-1.182356 0,-0.755164 0.413411,-1.187868 0.416167,-0.432704 1.138259,-0.432704 0.234266,0 0.457508,0.04961 0.223242,0.04685 0.432704,0.143315 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1205" />
|
||||
<path
|
||||
d="m 65.831051,61.081689 q -0.407899,0 -0.644921,0.319704 -0.237023,0.316949 -0.237023,0.87092 0,0.553971 0.234267,0.873675 0.237022,0.316949 0.647677,0.316949 0.405143,0 0.642165,-0.319705 0.237023,-0.319704 0.237023,-0.870919 0,-0.548459 -0.237023,-0.868163 -0.237022,-0.322461 -0.642165,-0.322461 z m 0,-0.429948 q 0.661458,0 1.03904,0.429948 0.377582,0.429947 0.377582,1.190624 0,0.75792 -0.377582,1.190624 -0.377582,0.429948 -1.03904,0.429948 -0.664214,0 -1.041796,-0.429948 -0.374826,-0.432704 -0.374826,-1.190624 0,-0.760677 0.374826,-1.190624 0.377582,-0.429948 1.041796,-0.429948 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1207" />
|
||||
<path
|
||||
d="m 70.488817,61.318711 q 0.190169,-0.341753 0.454752,-0.504361 0.264583,-0.162609 0.622873,-0.162609 0.482313,0 0.74414,0.338997 0.261827,0.336241 0.261827,0.959114 v 1.863106 h -0.509874 v -1.846569 q 0,-0.443728 -0.157096,-0.658702 -0.157096,-0.214974 -0.479557,-0.214974 -0.394119,0 -0.622873,0.261827 -0.228754,0.261827 -0.228754,0.713823 v 1.744595 h -0.509874 v -1.846569 q 0,-0.446484 -0.157096,-0.658702 -0.157096,-0.214974 -0.485069,-0.214974 -0.388607,0 -0.617361,0.264583 -0.228754,0.261827 -0.228754,0.711067 v 1.744595 h -0.509874 v -3.086803 h 0.509874 v 0.479557 q 0.173633,-0.283875 0.416167,-0.418923 0.242535,-0.135048 0.57602,-0.135048 0.336241,0 0.570507,0.170877 0.237023,0.170876 0.350022,0.496093 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1209" />
|
||||
<path
|
||||
d="m 74.077225,63.349938 v 1.637108 h -0.509873 v -4.260891 h 0.509873 v 0.468533 q 0.159853,-0.275608 0.402387,-0.407899 0.245291,-0.135048 0.584288,-0.135048 0.562239,0 0.912261,0.446484 0.352777,0.446484 0.352777,1.174088 0,0.727604 -0.352777,1.174088 -0.350022,0.446484 -0.912261,0.446484 -0.338997,0 -0.584288,-0.132292 -0.242534,-0.135048 -0.402387,-0.410655 z m 1.725303,-1.077625 q 0,-0.559483 -0.23151,-0.876432 -0.228754,-0.319704 -0.631141,-0.319704 -0.402387,0 -0.633897,0.319704 -0.228755,0.316949 -0.228755,0.876432 0,0.559483 0.228755,0.879188 0.23151,0.316948 0.633897,0.316948 0.402387,0 0.631141,-0.316948 0.23151,-0.319705 0.23151,-0.879188 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1211" />
|
||||
<path
|
||||
d="m 77.169541,59.524507 h 0.507118 v 4.288451 h -0.507118 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1213" />
|
||||
<path
|
||||
d="m 81.375309,62.142777 v 0.248047 H 79.04367 q 0.03307,0.523654 0.314193,0.799262 0.283876,0.272851 0.788237,0.272851 0.292144,0 0.564995,-0.07166 0.275608,-0.07166 0.545703,-0.214974 v 0.479557 q -0.272851,0.115755 -0.559483,0.176389 -0.286632,0.06063 -0.581532,0.06063 -0.738628,0 -1.171331,-0.429948 -0.429948,-0.429948 -0.429948,-1.163063 0,-0.757921 0.407899,-1.201649 0.410655,-0.446484 1.105186,-0.446484 0.622873,0 0.983918,0.402387 0.363802,0.399631 0.363802,1.088649 z m -0.507117,-0.148828 q -0.0055,-0.416167 -0.234267,-0.664213 -0.225998,-0.248047 -0.600824,-0.248047 -0.424435,0 -0.68075,0.239778 -0.253559,0.239779 -0.292144,0.675239 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1215" />
|
||||
<path
|
||||
d="m 84.610941,61.318711 q 0.190169,-0.341753 0.454753,-0.504361 0.264583,-0.162609 0.622872,-0.162609 0.482313,0 0.74414,0.338997 0.261827,0.336241 0.261827,0.959114 v 1.863106 H 86.18466 v -1.846569 q 0,-0.443728 -0.157097,-0.658702 -0.157096,-0.214974 -0.479556,-0.214974 -0.394119,0 -0.622873,0.261827 -0.228754,0.261827 -0.228754,0.713823 v 1.744595 h -0.509874 v -1.846569 q 0,-0.446484 -0.157096,-0.658702 -0.157097,-0.214974 -0.485069,-0.214974 -0.388607,0 -0.617361,0.264583 -0.228754,0.261827 -0.228754,0.711067 v 1.744595 h -0.509874 v -3.086803 h 0.509874 v 0.479557 q 0.173632,-0.283875 0.416167,-0.418923 0.242534,-0.135048 0.576019,-0.135048 0.336242,0 0.570508,0.170877 0.237022,0.170876 0.350021,0.496093 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1217" />
|
||||
<path
|
||||
d="m 90.349089,62.142777 v 0.248047 H 88.01745 q 0.03307,0.523654 0.314193,0.799262 0.283875,0.272851 0.788237,0.272851 0.292144,0 0.564995,-0.07166 0.275608,-0.07166 0.545703,-0.214974 v 0.479557 q -0.272852,0.115755 -0.559483,0.176389 -0.286632,0.06063 -0.581532,0.06063 -0.738628,0 -1.171332,-0.429948 -0.429947,-0.429948 -0.429947,-1.163063 0,-0.757921 0.407899,-1.201649 0.410655,-0.446484 1.105186,-0.446484 0.622872,0 0.983918,0.402387 0.363802,0.399631 0.363802,1.088649 z m -0.507118,-0.148828 q -0.0055,-0.416167 -0.234266,-0.664213 -0.225998,-0.248047 -0.600824,-0.248047 -0.424436,0 -0.680751,0.239778 -0.253558,0.239779 -0.292143,0.675239 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1219" />
|
||||
<path
|
||||
d="m 93.747327,61.949852 v 1.863106 H 93.24021 v -1.846569 q 0,-0.438216 -0.170877,-0.655946 -0.170876,-0.21773 -0.51263,-0.21773 -0.410655,0 -0.647677,0.261827 -0.237023,0.261827 -0.237023,0.713823 v 1.744595 H 91.16213 v -3.086803 h 0.509873 v 0.479557 q 0.181901,-0.278363 0.427192,-0.416167 0.248047,-0.137804 0.570507,-0.137804 0.531923,0 0.804774,0.330729 0.272851,0.327973 0.272851,0.967382 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1221" />
|
||||
<path
|
||||
d="m 95.265927,59.849724 v 0.876431 h 1.044552 v 0.394119 h -1.044552 v 1.675693 q 0,0.377582 0.101975,0.485069 0.10473,0.107487 0.421679,0.107487 h 0.520898 v 0.424435 h -0.520898 q -0.587044,0 -0.810286,-0.217729 -0.223242,-0.220486 -0.223242,-0.799262 v -1.675693 h -0.37207 v -0.394119 h 0.37207 v -0.876431 z"
|
||||
style="font-size:5.64444px"
|
||||
id="path1223" />
|
||||
</g>
|
||||
<g
|
||||
aria-label="+"
|
||||
transform="translate(65.280768,46.193992)"
|
||||
id="text1124"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1126);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 34.687306,24.561394 v 2.302703 h 2.302703 v 0.702799 h -2.302703 v 2.302703 h -0.694531 v -2.302703 h -2.302703 v -0.702799 h 2.302703 v -2.302703 z"
|
||||
style="font-size:8.46667px"
|
||||
id="path1226" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0;font-family:sans-serif;white-space:pre;shape-inside:url(#rect3705);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text3703"
|
||||
transform="matrix(0.78270576,0,0,0.78270576,-1.9931573,-23.312884)"
|
||||
aria-label="adjective noun adverb">
|
||||
<path
|
||||
id="path3709"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 92.36543,121.08052 q -0.691431,0 -0.958081,0.15813 -0.266651,0.15813 -0.266651,0.5395 0,0.30386 0.198438,0.4837 0.201538,0.17673 0.545703,0.17673 0.47439,0 0.759644,-0.33486 0.288354,-0.33797 0.288354,-0.89607 v -0.12713 z m 1.137915,-0.23564 v 1.98127 h -0.570508 v -0.5271 q -0.195337,0.31626 -0.486792,0.46819 -0.291455,0.14883 -0.713135,0.14883 -0.5333,0 -0.84956,-0.29766 -0.313159,-0.30075 -0.313159,-0.80305 0,-0.58601 0.390673,-0.88367 0.393775,-0.29765 1.172022,-0.29765 h 0.799951 v -0.0558 q 0,-0.39378 -0.260449,-0.60772 -0.257349,-0.21704 -0.725537,-0.21704 -0.297656,0 -0.57981,0.0713 -0.282153,0.0713 -0.542602,0.21394 v -0.5271 q 0.313159,-0.12093 0.607715,-0.17984 0.294555,-0.062 0.573608,-0.062 0.753442,0 1.125513,0.39067 0.37207,0.39068 0.37207,1.18443 z" />
|
||||
<path
|
||||
id="path3711"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 96.966699,119.8806 v -1.87896 h 0.570508 v 4.82451 h -0.570508 v -0.5209 q -0.179834,0.31006 -0.455786,0.46199 -0.272851,0.14883 -0.657324,0.14883 -0.629419,0 -1.026294,-0.5023 -0.393774,-0.50229 -0.393774,-1.32085 0,-0.81855 0.393774,-1.32084 0.396875,-0.5023 1.026294,-0.5023 0.384473,0 0.657324,0.15193 0.275952,0.14883 0.455786,0.45889 z m -1.944067,1.21232 q 0,0.62942 0.257349,0.98909 0.260449,0.35657 0.713134,0.35657 0.452686,0 0.713135,-0.35657 0.260449,-0.35967 0.260449,-0.98909 0,-0.62941 -0.260449,-0.98598 -0.260449,-0.35967 -0.713135,-0.35967 -0.452685,0 -0.713134,0.35967 -0.257349,0.35657 -0.257349,0.98598 z" />
|
||||
<path
|
||||
id="path3713"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 98.712329,119.3535 h 0.570508 v 3.53466 q 0,0.66353 -0.254248,0.96119 -0.251148,0.29765 -0.812354,0.29765 h -0.217041 v -0.48369 h 0.151929 q 0.325562,0 0.443384,-0.15193 0.117822,-0.14883 0.117822,-0.62322 z m 0,-1.35186 h 0.570508 v 0.72244 h -0.570508 z" />
|
||||
<path
|
||||
id="path3715"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 103.44382,120.9472 v 0.27905 h -2.62309 q 0.0372,0.58911 0.35346,0.89917 0.31937,0.30696 0.88677,0.30696 0.32866,0 0.63562,-0.0806 0.31006,-0.0806 0.61392,-0.24184 v 0.5395 q -0.30696,0.13022 -0.62942,0.19844 -0.32246,0.0682 -0.65422,0.0682 -0.83096,0 -1.31775,-0.48369 -0.48369,-0.48369 -0.48369,-1.30845 0,-0.85266 0.45888,-1.35185 0.46199,-0.5023 1.24334,-0.5023 0.70073,0 1.10691,0.45269 0.40927,0.44958 0.40927,1.22473 z m -0.5705,-0.16743 q -0.006,-0.46819 -0.26355,-0.74725 -0.25425,-0.27905 -0.67593,-0.27905 -0.47749,0 -0.76585,0.26975 -0.28525,0.26975 -0.32866,0.75965 z" />
|
||||
<path
|
||||
id="path3717"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 106.87927,119.48682 v 0.5333 q -0.24184,-0.13332 -0.48679,-0.19844 -0.24184,-0.0682 -0.48989,-0.0682 -0.55501,0 -0.86196,0.35347 -0.30696,0.35036 -0.30696,0.98598 0,0.63562 0.30696,0.98909 0.30695,0.35037 0.86196,0.35037 0.24805,0 0.48989,-0.0651 0.24495,-0.0682 0.48679,-0.20154 v 0.5271 q -0.23874,0.11162 -0.49609,0.16743 -0.25425,0.0558 -0.5426,0.0558 -0.78445,0 -1.24644,-0.49299 -0.46199,-0.493 -0.46199,-1.33016 0,-0.84956 0.46509,-1.33635 0.46819,-0.48679 1.28054,-0.48679 0.26355,0 0.5147,0.0558 0.25115,0.0527 0.48679,0.16123 z" />
|
||||
<path
|
||||
id="path3719"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 108.44197,118.36751 v 0.98599 h 1.17512 v 0.44338 h -1.17512 v 1.88516 q 0,0.42478 0.11472,0.5457 0.11782,0.12092 0.47439,0.12092 h 0.58601 v 0.47749 h -0.58601 q -0.66043,0 -0.91157,-0.24494 -0.25115,-0.24805 -0.25115,-0.89917 v -1.88516 h -0.41858 v -0.44338 h 0.41858 v -0.98599 z" />
|
||||
<path
|
||||
id="path3721"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 110.37053,119.3535 h 0.57051 v 3.47265 h -0.57051 z m 0,-1.35186 h 0.57051 v 0.72244 h -0.57051 z" />
|
||||
<path
|
||||
id="path3723"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 111.72239,119.3535 h 0.60461 l 1.08521,2.91455 1.0852,-2.91455 h 0.60462 l -1.30225,3.47265 h -0.77515 z" />
|
||||
<path
|
||||
id="path3725"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 118.85994,120.9472 v 0.27905 h -2.6231 q 0.0372,0.58911 0.35347,0.89917 0.31936,0.30696 0.88677,0.30696 0.32866,0 0.63562,-0.0806 0.31005,-0.0806 0.61391,-0.24184 v 0.5395 q -0.30696,0.13022 -0.62942,0.19844 -0.32246,0.0682 -0.65422,0.0682 -0.83096,0 -1.31775,-0.48369 -0.48369,-0.48369 -0.48369,-1.30845 0,-0.85266 0.45889,-1.35185 0.46198,-0.5023 1.24333,-0.5023 0.70073,0 1.10691,0.45269 0.40928,0.44958 0.40928,1.22473 z m -0.57051,-0.16743 q -0.006,-0.46819 -0.26355,-0.74725 -0.25425,-0.27905 -0.67593,-0.27905 -0.47749,0 -0.76584,0.26975 -0.28526,0.26975 -0.32866,0.75965 z" />
|
||||
<path
|
||||
id="path3727"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 100.19131,128.03265 v 2.096 h -0.570509 v -2.07739 q 0,-0.493 -0.192236,-0.73794 -0.192237,-0.24495 -0.576709,-0.24495 -0.461988,0 -0.728638,0.29456 -0.266651,0.29455 -0.266651,0.80305 v 1.96267 h -0.573608 v -3.47266 h 0.573608 v 0.53951 q 0.204639,-0.31316 0.480591,-0.46819 0.279053,-0.15503 0.641822,-0.15503 0.598413,0 0.905371,0.37207 0.306959,0.36897 0.306959,1.0883 z" />
|
||||
<path
|
||||
id="path3729"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 102.68108,127.05597 q -0.45889,0 -0.72554,0.35967 -0.26665,0.35656 -0.26665,0.97978 0,0.62322 0.26355,0.98289 0.26665,0.35657 0.72864,0.35657 0.45579,0 0.72244,-0.35967 0.26665,-0.35967 0.26665,-0.97979 0,-0.61701 -0.26665,-0.97668 -0.26665,-0.36277 -0.72244,-0.36277 z m 0,-0.48369 q 0.74414,0 1.16892,0.48369 0.42478,0.48369 0.42478,1.33945 0,0.85266 -0.42478,1.33946 -0.42478,0.48369 -1.16892,0.48369 -0.74724,0 -1.17202,-0.48369 -0.42168,-0.4868 -0.42168,-1.33946 0,-0.85576 0.42168,-1.33945 0.42478,-0.48369 1.17202,-0.48369 z" />
|
||||
<path
|
||||
id="path3731"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 105.15845,128.75819 v -2.1022 h 0.5705 v 2.0805 q 0,0.49299 0.19224,0.74104 0.19224,0.24494 0.57671,0.24494 0.46199,0 0.72864,-0.29455 0.26975,-0.29456 0.26975,-0.80305 v -1.96888 h 0.57051 v 3.47266 h -0.57051 v -0.5333 q -0.20774,0.31626 -0.48369,0.47129 -0.27285,0.15193 -0.63562,0.15193 -0.59842,0 -0.90847,-0.37207 -0.31006,-0.37207 -0.31006,-1.08831 z m 1.43557,-2.18591 z" />
|
||||
<path
|
||||
id="path3733"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 112.13477,128.03265 v 2.096 h -0.57051 v -2.07739 q 0,-0.493 -0.19224,-0.73794 -0.19224,-0.24495 -0.57671,-0.24495 -0.46199,0 -0.72864,0.29456 -0.26665,0.29455 -0.26665,0.80305 v 1.96267 h -0.5736 v -3.47266 h 0.5736 v 0.53951 q 0.20464,-0.31316 0.48059,-0.46819 0.27906,-0.15503 0.64183,-0.15503 0.59841,0 0.90537,0.37207 0.30696,0.36897 0.30696,1.0883 z" />
|
||||
<path
|
||||
id="path3735"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 95.75127,135.68552 q -0.691431,0 -0.958081,0.15813 -0.266651,0.15813 -0.266651,0.5395 0,0.30386 0.198438,0.48369 0.201538,0.17673 0.545703,0.17673 0.474389,0 0.759643,-0.33486 0.288355,-0.33796 0.288355,-0.89607 v -0.12712 z m 1.137915,-0.23565 v 1.98128 h -0.570508 v -0.5271 q -0.195337,0.31626 -0.486792,0.46819 -0.291455,0.14882 -0.713135,0.14882 -0.533301,0 -0.84956,-0.29765 -0.31316,-0.30076 -0.31316,-0.80305 0,-0.58601 0.390674,-0.88367 0.393775,-0.29766 1.172022,-0.29766 h 0.799951 v -0.0558 q 0,-0.39377 -0.260449,-0.60771 -0.257349,-0.21704 -0.725537,-0.21704 -0.297657,0 -0.57981,0.0713 -0.282153,0.0713 -0.542603,0.21394 v -0.5271 q 0.31316,-0.12092 0.607715,-0.17983 0.294556,-0.062 0.573609,-0.062 0.753442,0 1.125512,0.39067 0.372071,0.39067 0.372071,1.18442 z" />
|
||||
<path
|
||||
id="path3737"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 100.35254,134.48559 v -1.87895 h 0.57051 v 4.82451 h -0.57051 v -0.5209 q -0.17983,0.31006 -0.455787,0.46199 -0.272851,0.14882 -0.657324,0.14882 -0.629419,0 -1.026294,-0.50229 -0.393774,-0.50229 -0.393774,-1.32085 0,-0.81855 0.393774,-1.32085 0.396875,-0.50229 1.026294,-0.50229 0.384473,0 0.657324,0.15192 0.275957,0.14883 0.455787,0.45889 z m -1.944068,1.21233 q 0,0.62942 0.257349,0.98909 0.260449,0.35656 0.713134,0.35656 0.452686,0 0.713135,-0.35656 0.26045,-0.35967 0.26045,-0.98909 0,-0.62942 -0.26045,-0.98599 -0.260449,-0.35966 -0.713135,-0.35966 -0.452685,0 -0.713134,0.35966 -0.257349,0.35657 -0.257349,0.98599 z" />
|
||||
<path
|
||||
id="path3739"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 101.68889,133.95849 h 0.60462 l 1.0852,2.91455 1.08521,-2.91455 h 0.60461 l -1.30225,3.47266 h -0.77514 z" />
|
||||
<path
|
||||
id="path3741"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 108.82644,135.55219 v 0.27906 h -2.62309 q 0.0372,0.58911 0.35346,0.89917 0.31936,0.30695 0.88677,0.30695 0.32866,0 0.63562,-0.0806 0.31006,-0.0806 0.61392,-0.24185 v 0.5395 q -0.30696,0.13023 -0.62942,0.19844 -0.32246,0.0682 -0.65423,0.0682 -0.83095,0 -1.31775,-0.48369 -0.48369,-0.48369 -0.48369,-1.30844 0,-0.85266 0.45889,-1.35186 0.46199,-0.50229 1.24333,-0.50229 0.70074,0 1.10691,0.45268 0.40928,0.44959 0.40928,1.22473 z m -0.57051,-0.16743 q -0.006,-0.46819 -0.26355,-0.74724 -0.25424,-0.27905 -0.67592,-0.27905 -0.47749,0 -0.76585,0.26975 -0.28525,0.26975 -0.32866,0.75964 z" />
|
||||
<path
|
||||
id="path3743"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 111.7751,134.49179 q -0.0961,-0.0558 -0.21084,-0.0806 -0.11162,-0.0279 -0.24805,-0.0279 -0.48369,0 -0.74414,0.31626 -0.25735,0.31316 -0.25735,0.90227 v 1.82935 h -0.57361 v -3.47266 h 0.57361 v 0.5395 q 0.17984,-0.31626 0.46819,-0.46818 0.28836,-0.15503 0.70073,-0.15503 0.0589,0 0.13023,0.009 0.0713,0.006 0.15813,0.0217 z" />
|
||||
<path
|
||||
id="path3745"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle;fill:#666666"
|
||||
d="m 114.87258,135.69792 q 0,-0.62942 -0.26045,-0.98599 -0.25735,-0.35966 -0.71003,-0.35966 -0.45269,0 -0.71314,0.35966 -0.25734,0.35657 -0.25734,0.98599 0,0.62942 0.25734,0.98909 0.26045,0.35656 0.71314,0.35656 0.45268,0 0.71003,-0.35656 0.26045,-0.35967 0.26045,-0.98909 z m -1.94096,-1.21233 q 0.17983,-0.31006 0.45268,-0.45889 0.27595,-0.15192 0.65733,-0.15192 0.63252,0 1.02629,0.50229 0.39687,0.5023 0.39687,1.32085 0,0.81856 -0.39687,1.32085 -0.39377,0.50229 -1.02629,0.50229 -0.38138,0 -0.65733,-0.14882 -0.27285,-0.15193 -0.45268,-0.46199 v 0.5209 h -0.57361 v -4.82451 h 0.57361 z" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1855);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1853"
|
||||
transform="translate(0.56696429,-0.18898803)"
|
||||
aria-label="کېدل">
|
||||
<path
|
||||
id="path1926"
|
||||
d="m 123.70022,69.461396 h -1.70532 v -0.950843 h 1.60197 q 0.76481,0 0.99735,-0.537434 0.0827,-0.186034 0.0827,-0.372069 0,-0.356566 -0.27905,-0.697629 l -1.60197,-1.963698 q -0.25838,-0.315226 -0.25838,-0.733803 0,-0.180867 0.0517,-0.351399 0.1602,-0.60978 0.69763,-0.831988 l 3.84988,-1.601964 v 0.961178 l -3.07474,1.291907 q -0.3669,0.155029 -0.47542,0.361734 -0.031,0.05684 -0.031,0.186034 0,0.165364 0.16019,0.356567 l 1.4211,1.705317 q 0.5271,0.635618 0.5271,1.271236 0,0.583942 -0.3204,1.105872 -0.49092,0.800982 -1.6433,0.800982 z" />
|
||||
<path
|
||||
id="path1928"
|
||||
d="m 120.43945,69.01698 q -0.39791,0.444416 -1.18339,0.444416 h -0.46509 v -0.950843 h 0.18087 q 0.5116,0 0.73897,-0.227376 0.25321,-0.253214 0.25321,-0.800982 V 66.36082 h 0.95085 v 1.121375 q 0,0.547768 0.25321,0.800982 0.22738,0.227376 0.73897,0.227376 h 0.28422 v 0.950843 h -0.56844 q -0.77514,0 -1.18338,-0.444416 z m -0.38758,2.253085 h 0.77515 v 0.775144 h -0.77515 z m 0,-1.291906 h 0.77515 v 0.775144 h -0.77515 z" />
|
||||
<path
|
||||
id="path1930"
|
||||
d="m 116.15548,66.490011 q -0.29455,-0.630451 -1.23506,-1.421098 h 1.17305 q 0.50126,0.403075 0.92501,1.11104 0.41858,0.692462 0.41858,1.297074 0,0.377237 0.42891,0.80615 0.22737,0.227376 0.73897,0.227376 h 0.38757 v 0.950843 h -0.67179 q -0.75964,0 -1.2609,-0.671792 -0.48059,0.661457 -1.55029,0.831988 -0.23771,0.03617 -0.47025,0.03617 -0.5271,0 -1.05937,-0.19637 v -0.950843 q 0.59428,0.21704 1.02836,0.21704 0.17053,0 0.34623,-0.04651 0.88883,-0.253213 1.0697,-0.831988 0.0413,-0.139526 0.0413,-0.356566 0,-0.351398 -0.31006,-1.002519 z" />
|
||||
<path
|
||||
id="path1932"
|
||||
d="m 111.0292,69.084159 q 0.40307,-0.651121 0.40307,-1.824172 v -5.839418 h 0.95085 v 5.839418 q 0,1.638138 -0.50643,2.382276 -0.62528,0.91467 -1.97403,1.255733 -0.69247,0.1757 -1.13171,0.1757 -0.49093,0 -0.86817,-0.113688 -1.50894,-0.475422 -1.51411,-1.886184 -0.005,-0.713133 0.32556,-1.188554 h 0.95084 q -0.33589,0.594277 -0.33589,1.188554 0,0.671791 0.85782,0.992184 0.20671,0.08268 0.58395,0.08268 0.41341,0 0.97668,-0.175699 0.89916,-0.273884 1.28157,-0.888832 z" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0.65;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1861);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1859"
|
||||
transform="matrix(0.96154424,0,0,0.96154424,78.952615,57.256132)"
|
||||
aria-label="to
|
||||
become">
|
||||
<path
|
||||
id="path1935"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
d="m 37.367896,16.659795 v 0.985986 h 1.175122 v 0.443384 h -1.175122 v 1.885156 q 0,0.42478 0.114721,0.545703 0.117822,0.120923 0.47439,0.120923 h 0.586011 v 0.47749 h -0.586011 q -0.660425,0 -0.911572,-0.244946 -0.251148,-0.248047 -0.251148,-0.89917 v -1.885156 h -0.418579 v -0.443384 h 0.418579 v -0.985986 z" />
|
||||
<path
|
||||
id="path1937"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
d="m 40.642114,18.045757 q -0.458886,0 -0.725537,0.359668 -0.26665,0.356567 -0.26665,0.979785 0,0.623217 0.26355,0.982885 0.26665,0.356568 0.728637,0.356568 0.455786,0 0.722437,-0.359668 0.26665,-0.359668 0.26665,-0.979785 0,-0.617017 -0.26665,-0.976685 -0.266651,-0.362768 -0.722437,-0.362768 z m 0,-0.483692 q 0.744141,0 1.168921,0.483692 0.42478,0.483691 0.42478,1.339453 0,0.852661 -0.42478,1.339453 -0.42478,0.483691 -1.168921,0.483691 -0.747241,0 -1.172021,-0.483691 -0.42168,-0.486792 -0.42168,-1.339453 0,-0.855762 0.42168,-1.339453 0.42478,-0.483692 1.172021,-0.483692 z" />
|
||||
<path
|
||||
id="path1939"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
d="m 29.777661,26.264354 q 0,-0.629419 -0.260449,-0.985986 -0.257349,-0.359668 -0.710034,-0.359668 -0.452686,0 -0.713135,0.359668 -0.257348,0.356567 -0.257348,0.985986 0,0.629419 0.257348,0.989087 0.260449,0.356568 0.713135,0.356568 0.452685,0 0.710034,-0.356568 0.260449,-0.359668 0.260449,-0.989087 z m -1.940966,-1.212329 q 0.179833,-0.310058 0.452685,-0.458886 0.275952,-0.151929 0.657324,-0.151929 0.63252,0 1.026294,0.502295 0.396875,0.502295 0.396875,1.320849 0,0.818555 -0.396875,1.32085 -0.393774,0.502295 -1.026294,0.502295 -0.381372,0 -0.657324,-0.148828 -0.272852,-0.151929 -0.452685,-0.461988 v 0.520899 H 27.263086 V 23.17307 h 0.573609 z" />
|
||||
<path
|
||||
id="path1941"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
d="m 34.285913,26.118627 v 0.279053 h -2.623095 q 0.03721,0.589111 0.353466,0.899169 0.319361,0.306958 0.886768,0.306958 0.328662,0 0.63562,-0.08061 0.310059,-0.08062 0.613916,-0.241845 v 0.539501 q -0.306958,0.130225 -0.629419,0.198438 -0.322461,0.06821 -0.654224,0.06821 -0.830957,0 -1.317749,-0.483692 -0.483691,-0.483691 -0.483691,-1.308447 0,-0.852661 0.458887,-1.351855 0.461987,-0.502295 1.243335,-0.502295 0.700732,0 1.106909,0.452685 0.409277,0.449585 0.409277,1.224732 z m -0.570508,-0.167432 q -0.0062,-0.468188 -0.263549,-0.747241 -0.254248,-0.279053 -0.675928,-0.279053 -0.47749,0 -0.765845,0.269751 -0.285254,0.269751 -0.328662,0.759644 z" />
|
||||
<path
|
||||
id="path1943"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
d="m 37.721362,24.658251 v 0.533301 q -0.241845,-0.133326 -0.486792,-0.198438 -0.241845,-0.06821 -0.489892,-0.06821 -0.555005,0 -0.861963,0.353467 -0.306958,0.350366 -0.306958,0.985986 0,0.63562 0.306958,0.989087 0.306958,0.350366 0.861963,0.350366 0.248047,0 0.489892,-0.06511 0.244947,-0.06821 0.486792,-0.201538 v 0.5271 q -0.238745,0.111621 -0.496093,0.167431 -0.254248,0.05581 -0.542603,0.05581 -0.784448,0 -1.246435,-0.492993 -0.461988,-0.492993 -0.461988,-1.330152 0,-0.84956 0.465088,-1.336352 0.468189,-0.486792 1.280542,-0.486792 0.26355,0 0.514697,0.05581 0.251148,0.05271 0.486792,0.161231 z" />
|
||||
<path
|
||||
id="path1945"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
d="m 40.065406,24.924901 q -0.458887,0 -0.725537,0.359668 -0.266651,0.356568 -0.266651,0.979785 0,0.623218 0.26355,0.982886 0.266651,0.356567 0.728638,0.356567 0.455786,0 0.722436,-0.359668 0.266651,-0.359667 0.266651,-0.979785 0,-0.617016 -0.266651,-0.976684 -0.26665,-0.362769 -0.722436,-0.362769 z m 0,-0.483691 q 0.74414,0 1.168921,0.483691 0.42478,0.483692 0.42478,1.339453 0,0.852661 -0.42478,1.339453 -0.424781,0.483692 -1.168921,0.483692 -0.747241,0 -1.172022,-0.483692 -0.421679,-0.486792 -0.421679,-1.339453 0,-0.855761 0.421679,-1.339453 0.424781,-0.483691 1.172022,-0.483691 z" />
|
||||
<path
|
||||
id="path1947"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
d="m 45.305396,25.191552 q 0.21394,-0.384473 0.511596,-0.567408 0.297657,-0.182934 0.700733,-0.182934 0.542602,0 0.837158,0.381372 0.294556,0.378271 0.294556,1.079004 v 2.095996 H 47.07583 v -2.077393 q 0,-0.499194 -0.176733,-0.74104 -0.176734,-0.241845 -0.539502,-0.241845 -0.443384,0 -0.700733,0.294555 -0.257348,0.294556 -0.257348,0.803052 v 1.962671 h -0.573609 v -2.077393 q 0,-0.502295 -0.176733,-0.74104 -0.176733,-0.241845 -0.545703,-0.241845 -0.437183,0 -0.694531,0.297656 -0.257349,0.294555 -0.257349,0.799951 v 1.962671 h -0.573608 v -3.472656 h 0.573608 v 0.539502 q 0.195337,-0.319361 0.468189,-0.471289 0.272851,-0.151929 0.648022,-0.151929 0.378271,0 0.641821,0.192236 0.266651,0.192237 0.393775,0.558106 z" />
|
||||
<path
|
||||
id="path1949"
|
||||
style="font-size:6.35px;text-align:center;text-anchor:middle"
|
||||
d="m 51.760814,26.118627 v 0.279053 h -2.623095 q 0.03721,0.589111 0.353467,0.899169 0.31936,0.306958 0.886767,0.306958 0.328662,0 0.63562,-0.08061 0.310059,-0.08062 0.613916,-0.241845 v 0.539501 q -0.306958,0.130225 -0.629419,0.198438 -0.322461,0.06821 -0.654223,0.06821 -0.830957,0 -1.317749,-0.483692 -0.483692,-0.483691 -0.483692,-1.308447 0,-0.852661 0.458887,-1.351855 0.461987,-0.502295 1.243335,-0.502295 0.700732,0 1.106909,0.452685 0.409277,0.449585 0.409277,1.224732 z m -0.570507,-0.167432 q -0.0062,-0.468188 -0.26355,-0.747241 -0.254248,-0.279053 -0.675928,-0.279053 -0.47749,0 -0.765845,0.269751 -0.285254,0.269751 -0.328662,0.759644 z" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 81 KiB |
|
@ -0,0 +1,555 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="803.02252"
|
||||
height="350.27139"
|
||||
viewBox="0 0 212.46637 92.675973"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="transitive-past.svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
id="rect4499"
|
||||
height="33.408691"
|
||||
width="100.76061"
|
||||
y="4.1634259"
|
||||
x="10.841692" />
|
||||
<rect
|
||||
x="-15.096844"
|
||||
y="-70.55368"
|
||||
width="93.738098"
|
||||
height="46.113094"
|
||||
id="rect1391" />
|
||||
<rect
|
||||
x="39.331726"
|
||||
y="-43.339394"
|
||||
width="51.404762"
|
||||
height="25.324406"
|
||||
id="rect1385" />
|
||||
<rect
|
||||
x="38.953751"
|
||||
y="35.657631"
|
||||
width="78.997025"
|
||||
height="25.324406"
|
||||
id="rect1379" />
|
||||
<rect
|
||||
x="57.474583"
|
||||
y="33.389771"
|
||||
width="29.104168"
|
||||
height="23.434525"
|
||||
id="rect1373" />
|
||||
<rect
|
||||
x="4.935894"
|
||||
y="6.553463"
|
||||
width="112.6993"
|
||||
height="77.422302"
|
||||
id="rect1360" />
|
||||
<rect
|
||||
x="35.83614"
|
||||
y="118.46915"
|
||||
width="93.738098"
|
||||
height="35.151787"
|
||||
id="rect1354" />
|
||||
<rect
|
||||
x="-56.012074"
|
||||
y="116.23755"
|
||||
width="76.351189"
|
||||
height="28.348213"
|
||||
id="rect1348" />
|
||||
<rect
|
||||
x="35.529755"
|
||||
y="61.904251"
|
||||
width="50.263763"
|
||||
height="44.73629"
|
||||
id="rect1165" />
|
||||
<rect
|
||||
x="37.041668"
|
||||
y="112.25893"
|
||||
width="56.69643"
|
||||
height="23.8125"
|
||||
id="rect1113" />
|
||||
<marker
|
||||
inkscape:stockid="Arrow1Lstart"
|
||||
orient="auto"
|
||||
refY="0"
|
||||
refX="0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible"
|
||||
inkscape:isstock="true">
|
||||
<path
|
||||
id="path841"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
style="fillRule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
transform="matrix(0.8,0,0,0.8,10,0)" />
|
||||
</marker>
|
||||
<rect
|
||||
id="rect1113-9"
|
||||
height="23.8125"
|
||||
width="56.69643"
|
||||
y="112.25893"
|
||||
x="37.041668" />
|
||||
<rect
|
||||
id="rect1141"
|
||||
height="23.8125"
|
||||
width="56.69643"
|
||||
y="112.25893"
|
||||
x="37.041668" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:snap-global="false"
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.9899495"
|
||||
inkscape:cx="406.88683"
|
||||
inkscape:cy="-1.8078828"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="text1358"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
fit-margin-top="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-left="10"
|
||||
inkscape:window-width="1515"
|
||||
inkscape:window-height="1080"
|
||||
inkscape:window-x="2167"
|
||||
inkscape:window-y="118"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(52.843619,-52.585221)">
|
||||
<path
|
||||
id="rect839-4"
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.115;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 122.9777,85.081856 h 33.44172 V 118.52357 H 122.9777 Z" />
|
||||
<g
|
||||
aria-label="verb"
|
||||
transform="translate(90.461538,-16.314846)"
|
||||
id="text1111-8"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1113-9);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 37.356241,115.83576 h 1.007687 l 1.808669,4.85757 1.80867,-4.85757 h 1.007687 l -2.170403,5.78775 h -1.291907 z"
|
||||
id="path1187" />
|
||||
<path
|
||||
d="m 49.252118,118.49192 v 0.46509 h -4.371813 q 0.06201,0.98185 0.58911,1.49861 0.532265,0.5116 1.477941,0.5116 0.547769,0 1.059364,-0.13436 0.516762,-0.13436 1.02319,-0.40308 v 0.89917 q -0.511595,0.21704 -1.049029,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.4211 0.764809,-2.25309 0.769976,-0.83715 2.072218,-0.83715 1.167884,0 1.844843,0.75447 0.682127,0.74931 0.682127,2.04121 z m -0.950844,-0.27905 q -0.01033,-0.78031 -0.439248,-1.2454 -0.423745,-0.46508 -1.126543,-0.46508 -0.795814,0 -1.276403,0.44958 -0.475422,0.44958 -0.547769,1.26607 z"
|
||||
id="path1189" />
|
||||
<path
|
||||
d="m 54.166531,116.7246 q -0.160196,-0.093 -0.351398,-0.13436 -0.186035,-0.0465 -0.41341,-0.0465 -0.80615,0 -1.240231,0.5271 -0.428913,0.52193 -0.428913,1.50378 v 3.0489 h -0.956011 v -5.78775 h 0.956011 v 0.89917 q 0.299723,-0.5271 0.780312,-0.78031 0.480589,-0.25838 1.167883,-0.25838 0.09819,0 0.217041,0.0155 0.118855,0.0103 0.263549,0.0362 z"
|
||||
id="path1191" />
|
||||
<path
|
||||
d="m 59.32899,118.7348 q 0,-1.04903 -0.43408,-1.6433 -0.428913,-0.59945 -1.183387,-0.59945 -0.754473,0 -1.188554,0.59945 -0.428913,0.59427 -0.428913,1.6433 0,1.04903 0.428913,1.64847 0.434081,0.59428 1.188554,0.59428 0.754474,0 1.183387,-0.59428 0.43408,-0.59944 0.43408,-1.64847 z m -3.234934,-2.02054 q 0.299722,-0.51676 0.754474,-0.76481 0.459918,-0.25321 1.095536,-0.25321 1.054196,0 1.710485,0.83715 0.661456,0.83716 0.661456,2.20141 0,1.36426 -0.661456,2.20141 -0.656289,0.83716 -1.710485,0.83716 -0.635618,0 -1.095536,-0.24805 -0.454752,-0.25321 -0.754474,-0.76998 v 0.86817 h -0.956011 v -8.04083 h 0.956011 z"
|
||||
id="path1193" />
|
||||
</g>
|
||||
<g
|
||||
aria-label="plain noun / pronoun"
|
||||
transform="translate(4.9451604,8.3665)"
|
||||
id="text1163"
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.05;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1165);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 51.876136,67.854117 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239779,-0.413412 0.603581,-0.611849 0.367936,-0.202572 0.876432,-0.202572 0.84336,0 1.368393,0.669727 0.529167,0.669727 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525033,0.669727 -1.368393,0.669727 -0.508496,0 -0.876432,-0.198438 -0.363802,-0.202572 -0.603581,-0.615983 z m 2.587957,-1.61644 q 0,-0.839225 -0.347266,-1.314649 -0.343132,-0.479557 -0.946713,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343131,0.475424 -0.343131,1.314649 0,0.839226 0.343131,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946713,-0.475424 0.347266,-0.479557 0.347266,-1.318783 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1196" />
|
||||
<path
|
||||
d="m 56.514614,62.115963 h 0.760678 v 6.432685 h -0.760678 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1198" />
|
||||
<path
|
||||
d="m 60.967057,66.221141 q -0.921908,0 -1.277442,0.21084 -0.355534,0.21084 -0.355534,0.719336 0,0.405143 0.264584,0.644922 0.268717,0.235645 0.727604,0.235645 0.63252,0 1.012859,-0.446485 0.384473,-0.450618 0.384473,-1.194759 v -0.169499 z m 1.517221,-0.314193 v 2.6417 h -0.760677 v -0.702799 q -0.26045,0.421679 -0.649057,0.624251 -0.388607,0.198438 -0.950846,0.198438 -0.711068,0 -1.132748,-0.396876 -0.417546,-0.401009 -0.417546,-1.070736 0,-0.781348 0.520899,-1.178223 0.525032,-0.396875 1.562696,-0.396875 h 1.066602 v -0.07441 q 0,-0.525033 -0.347266,-0.810287 -0.343132,-0.289388 -0.967383,-0.289388 -0.396876,0 -0.77308,0.09508 -0.376205,0.09508 -0.723471,0.285254 v -0.7028 q 0.417546,-0.161231 0.810287,-0.239779 0.392741,-0.08268 0.764812,-0.08268 1.00459,0 1.500684,0.520899 0.496094,0.520898 0.496094,1.579231 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1200" />
|
||||
<path
|
||||
d="m 64.055242,63.918438 h 0.760678 v 4.63021 h -0.760678 z m 0,-1.802475 h 0.760678 v 0.96325 h -0.760678 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1202" />
|
||||
<path
|
||||
d="m 70.252282,65.753986 v 2.794662 H 69.491605 V 65.77879 q 0,-0.657324 -0.256315,-0.983919 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272851,-0.417545 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1204" />
|
||||
<path
|
||||
d="m 51.88027,74.643985 v 2.794663 H 51.119593 V 74.66879 q 0,-0.657325 -0.256316,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1206" />
|
||||
<path
|
||||
d="m 55.199965,73.341738 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.30638 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644923 0.566374,1.785939 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785939 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1208" />
|
||||
<path
|
||||
d="m 58.503124,75.611368 v -2.802931 h 0.760677 v 2.773992 q 0,0.657325 0.256315,0.988054 0.256316,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359669,-0.392741 0.359669,-1.070736 v -2.625164 h 0.760677 v 4.630211 H 61.620248 V 76.72758 q -0.276986,0.42168 -0.644923,0.628385 -0.363802,0.202572 -0.847493,0.202572 -0.797885,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1210" />
|
||||
<path
|
||||
d="m 67.804886,74.643985 v 2.794663 H 67.044208 V 74.66879 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1212" />
|
||||
<path
|
||||
d="m 73.377673,71.266412 h 0.7028 l -2.14974,6.957718 h -0.7028 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1214" />
|
||||
<path
|
||||
d="m 44.616628,85.634116 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239778,-0.413412 0.603581,-0.61185 0.367936,-0.202571 0.876432,-0.202571 0.84336,0 1.368393,0.669727 0.529167,0.669726 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525033,0.669726 -1.368393,0.669726 -0.508496,0 -0.876432,-0.198437 -0.363803,-0.202572 -0.603581,-0.615983 z m 2.587956,-1.61644 q 0,-0.839226 -0.347265,-1.314649 -0.343132,-0.479557 -0.946713,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343131,0.475423 -0.343131,1.314649 0,0.839226 0.343131,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946713,-0.475424 0.347265,-0.479557 0.347265,-1.318783 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1216" />
|
||||
<path
|
||||
d="m 51.938147,82.409505 q -0.128157,-0.07441 -0.281119,-0.107487 -0.148829,-0.03721 -0.33073,-0.03721 -0.644922,0 -0.992188,0.42168 -0.343131,0.417545 -0.343131,1.203027 v 2.439129 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.239778,-0.42168 0.624251,-0.624251 0.384473,-0.206706 0.934311,-0.206706 0.07855,0 0.173632,0.0124 0.09508,0.0083 0.21084,0.02894 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1218" />
|
||||
<path
|
||||
d="m 54.356606,82.231738 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1220" />
|
||||
<path
|
||||
d="m 61.587175,83.533984 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657324 -0.256315,-0.983919 -0.256315,-0.326596 -0.768946,-0.326596 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624251 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451074 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1222" />
|
||||
<path
|
||||
d="m 64.90687,82.231738 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.562239,-0.649056 -0.562239,-1.785938 0,-1.141016 0.562239,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1224" />
|
||||
<path
|
||||
d="m 68.210028,84.501368 v -2.802931 h 0.760678 v 2.773992 q 0,0.657324 0.256315,0.988054 0.256315,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359668,-0.392741 0.359668,-1.070736 v -2.625164 h 0.760678 v 4.63021 h -0.760678 v -0.711068 q -0.276986,0.42168 -0.644922,0.628386 -0.363802,0.202571 -0.847494,0.202571 -0.797884,0 -1.211296,-0.496094 -0.413412,-0.496093 -0.413412,-1.451074 z m 1.914096,-2.914552 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1226" />
|
||||
<path
|
||||
d="m 77.51179,83.533984 v 2.794663 h -0.760677 v -2.769858 q 0,-0.657324 -0.256315,-0.983919 -0.256315,-0.326596 -0.768946,-0.326596 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451074 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path1228" />
|
||||
</g>
|
||||
<g
|
||||
id="g1333"
|
||||
transform="translate(7.9375,-1.5481652)">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path1169"
|
||||
d="m -57.795068,100.26406 9.342265,9.28984 h 40.1025978 l 9.589407,-9.589405"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.965;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1348);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1346"
|
||||
transform="translate(-9.827381,-4.5357143)"
|
||||
aria-label="subject /
|
||||
agent">
|
||||
<path
|
||||
id="path3360"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -35.814111,119.98481 v 0.89917 q -0.403075,-0.20671 -0.837156,-0.31006 -0.43408,-0.10335 -0.899167,-0.10335 -0.707965,0 -1.064531,0.21704 -0.351398,0.21704 -0.351398,0.65112 0,0.33073 0.253213,0.52193 0.253214,0.18603 1.018023,0.35657 l 0.32556,0.0723 q 1.012855,0.21704 1.436601,0.61495 0.428913,0.39274 0.428913,1.1007 0,0.80615 -0.640786,1.27641 -0.635618,0.47025 -1.751826,0.47025 -0.465086,0 -0.971513,-0.093 -0.50126,-0.0878 -1.059364,-0.26871 v -0.98185 q 0.527098,0.27388 1.038693,0.41341 0.511595,0.13436 1.012855,0.13436 0.671791,0 1.033525,-0.22738 0.361734,-0.23254 0.361734,-0.65112 0,-0.38757 -0.263549,-0.59428 -0.258381,-0.2067 -1.142045,-0.3979 l -0.330729,-0.0775 q -0.883664,-0.18603 -1.276403,-0.56844 -0.39274,-0.38757 -0.39274,-1.05936 0,-0.81649 0.578774,-1.2609 0.578774,-0.44442 1.643306,-0.44442 0.527097,0 0.992184,0.0775 0.465086,0.0775 0.857826,0.23254 z" />
|
||||
<path
|
||||
id="path3362"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -34.082956,123.31793 v -3.50365 h 0.950843 v 3.46748 q 0,0.82165 0.320393,1.23506 0.320393,0.40824 0.961179,0.40824 0.769976,0 1.214392,-0.49092 0.449583,-0.49093 0.449583,-1.33842 v -3.28144 h 0.950844 v 5.78774 h -0.950844 v -0.88883 q -0.346231,0.5271 -0.806149,0.78548 -0.454751,0.25321 -1.059364,0.25321 -0.997352,0 -1.514114,-0.62011 -0.516763,-0.62012 -0.516763,-1.81384 z m 2.392611,-3.64318 z" />
|
||||
<path
|
||||
id="path3364"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -23.112084,122.71332 q 0,-1.04903 -0.434081,-1.64331 -0.428913,-0.59944 -1.183386,-0.59944 -0.754474,0 -1.188555,0.59944 -0.428913,0.59428 -0.428913,1.64331 0,1.04903 0.428913,1.64847 0.434081,0.59428 1.188555,0.59428 0.754473,0 1.183386,-0.59428 0.434081,-0.59944 0.434081,-1.64847 z m -3.234935,-2.02054 q 0.299723,-0.51677 0.754474,-0.76481 0.459919,-0.25322 1.095537,-0.25322 1.054196,0 1.710484,0.83716 0.661456,0.83715 0.661456,2.20141 0,1.36425 -0.661456,2.20141 -0.656288,0.83715 -1.710484,0.83715 -0.635618,0 -1.095537,-0.24804 -0.454751,-0.25322 -0.754474,-0.76998 v 0.86816 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
<path
|
||||
id="path3366"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -20.548942,119.81428 h 0.950844 v 5.89109 q 0,1.10588 -0.423746,1.60197 -0.418577,0.49609 -1.353918,0.49609 h -0.361734 v -0.80615 h 0.253214 q 0.542601,0 0.738971,-0.25321 0.196369,-0.24805 0.196369,-1.0387 z m 0,-2.25309 h 0.950844 v 1.20406 h -0.950844 z" />
|
||||
<path
|
||||
id="path3368"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -12.663144,122.47044 v 0.46509 h -4.371812 q 0.06201,0.98184 0.589109,1.49861 0.532266,0.51159 1.477941,0.51159 0.547769,0 1.059364,-0.13436 0.516763,-0.13435 1.02319,-0.40307 v 0.89917 q -0.511595,0.21704 -1.049028,0.33072 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196242,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.42109 0.764809,-2.25308 0.769977,-0.83716 2.072219,-0.83716 1.167883,0 1.844842,0.75448 0.682127,0.7493 0.682127,2.04121 z m -0.950843,-0.27905 q -0.01034,-0.78031 -0.439249,-1.2454 -0.423745,-0.46509 -1.126542,-0.46509 -0.795815,0 -1.276404,0.44959 -0.475422,0.44958 -0.547768,1.26606 z" />
|
||||
<path
|
||||
id="path3370"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -6.9374138,120.03649 v 0.88883 q -0.4030748,-0.22221 -0.8113174,-0.33073 -0.4030748,-0.11369 -0.816485,-0.11369 -0.9250052,0 -1.4365998,0.58911 -0.511595,0.58394 -0.511595,1.64331 0,1.05936 0.511595,1.64847 0.5115946,0.58394 1.4365998,0.58394 0.4134102,0 0.816485,-0.10852 0.4082426,-0.11369 0.8113174,-0.33589 v 0.87849 q -0.3979072,0.18604 -0.8268202,0.27905 -0.4237454,0.093 -0.9043347,0.093 -1.3074096,0 -2.0773863,-0.82165 -0.769976,-0.82165 -0.769976,-2.21691 0,-1.41593 0.775144,-2.22725 0.7803116,-0.81132 2.1342298,-0.81132 0.4392483,0 0.857826,0.093 0.4185778,0.0879 0.8113174,0.26872 z" />
|
||||
<path
|
||||
id="path3372"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -4.3329304,118.17097 v 1.64331 h 1.9585306 v 0.73897 h -1.9585306 v 3.14192 q 0,0.70796 0.1912022,0.9095 0.1963698,0.20154 0.7906469,0.20154 h 0.9766815 v 0.79581 h -0.9766815 q -1.1007045,0 -1.5192823,-0.40824 -0.4185777,-0.41341 -0.4185777,-1.49861 v -3.14192 h -0.6976296 v -0.73897 h 0.6976296 v -1.64331 z" />
|
||||
<path
|
||||
id="path3374"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="M 3.9404424,117.88675 H 4.818939 l -2.6871659,8.69712 H 1.2532765 Z" />
|
||||
<path
|
||||
id="path3376"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -29.504439,135.92177 q -1.152381,0 -1.596796,0.26355 -0.444416,0.26355 -0.444416,0.89917 0,0.50643 0.330728,0.80615 0.335896,0.29455 0.909502,0.29455 0.790647,0 1.266069,-0.5581 0.480589,-0.56327 0.480589,-1.49344 v -0.21188 z m 1.896519,-0.39274 v 3.30212 h -0.950843 v -0.8785 q -0.325561,0.5271 -0.811317,0.78031 -0.485757,0.24805 -1.188555,0.24805 -0.888831,0 -1.415929,-0.49609 -0.521931,-0.50126 -0.521931,-1.33842 0,-0.97668 0.651121,-1.47277 0.656289,-0.4961 1.953363,-0.4961 h 1.333248 v -0.093 q 0,-0.65629 -0.434081,-1.01286 -0.428913,-0.36173 -1.209224,-0.36173 -0.496093,0 -0.966347,0.11885 -0.470254,0.11886 -0.904334,0.35657 v -0.8785 q 0.52193,-0.20153 1.012855,-0.29972 0.490924,-0.10335 0.956011,-0.10335 1.255733,0 1.875848,0.65112 0.620115,0.65112 0.620115,1.97403 z" />
|
||||
<path
|
||||
id="path3378"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -21.835681,135.8701 q 0,-1.03353 -0.428913,-1.60197 -0.423745,-0.56844 -1.193722,-0.56844 -0.764808,0 -1.193721,0.56844 -0.423746,0.56844 -0.423746,1.60197 0,1.02835 0.423746,1.59679 0.428913,0.56844 1.193721,0.56844 0.769977,0 1.193722,-0.56844 0.428913,-0.56844 0.428913,-1.59679 z m 0.950844,2.24275 q 0,1.47794 -0.656289,2.19624 -0.656289,0.72347 -2.010207,0.72347 -0.50126,0 -0.945676,-0.0775 -0.444415,-0.0724 -0.862993,-0.22737 v -0.92501 q 0.418578,0.22738 0.82682,0.3359 0.408243,0.10852 0.831988,0.10852 0.93534,0 1.400427,-0.49093 0.465086,-0.48575 0.465086,-1.47277 v -0.47026 q -0.294555,0.5116 -0.754473,0.76481 -0.459919,0.25322 -1.100705,0.25322 -1.064531,0 -1.715652,-0.81132 -0.651121,-0.81132 -0.651121,-2.14973 0,-1.34359 0.651121,-2.1549 0.651121,-0.81132 1.715652,-0.81132 0.640786,0 1.100705,0.25321 0.459918,0.25322 0.754473,0.76481 v -0.8785 h 0.950844 z" />
|
||||
<path
|
||||
id="path3380"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -13.97572,135.69957 v 0.46508 h -4.371812 q 0.06201,0.98185 0.589109,1.49861 0.532266,0.5116 1.477941,0.5116 0.547769,0 1.059364,-0.13436 0.516762,-0.13436 1.02319,-0.40307 v 0.89916 q -0.511595,0.21704 -1.049028,0.33073 -0.537434,0.11369 -1.09037,0.11369 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.4211 0.764809,-2.25309 0.769976,-0.83715 2.072218,-0.83715 1.167884,0 1.844843,0.75447 0.682127,0.74931 0.682127,2.04122 z m -0.950844,-0.27906 q -0.01033,-0.78031 -0.439248,-1.24539 -0.423745,-0.46509 -1.126542,-0.46509 -0.795815,0 -1.276404,0.44958 -0.475422,0.44959 -0.547769,1.26607 z" />
|
||||
<path
|
||||
id="path3382"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -7.6040366,135.33783 v 3.49332 H -8.55488 v -3.46231 q 0,-0.82166 -0.3203928,-1.2299 -0.3203929,-0.40824 -0.9611786,-0.40824 -0.7699766,0 -1.2143926,0.49092 -0.444416,0.49093 -0.444416,1.33842 v 3.27111 h -0.956011 v -5.78775 h 0.956011 v 0.89917 q 0.341064,-0.52193 0.800983,-0.78031 0.465086,-0.25838 1.0696983,-0.25838 0.997352,0 1.508947,0.62011 0.5115951,0.61495 0.5115951,1.81384 z" />
|
||||
<path
|
||||
id="path3384"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -4.7566745,131.4001 v 1.6433 h 1.9585305 v 0.73898 h -1.9585305 v 3.14191 q 0,0.70797 0.1912022,0.9095 0.1963698,0.20154 0.7906469,0.20154 h 0.9766814 v 0.79582 h -0.9766814 q -1.1007045,0 -1.5192823,-0.40825 -0.4185778,-0.41341 -0.4185778,-1.49861 v -3.14191 h -0.6976296 v -0.73898 h 0.6976296 v -1.6433 z" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
aria-label="plain noun /
|
||||
pronoun
|
||||
"
|
||||
transform="translate(-120.88099,10.440184)"
|
||||
id="text1358"
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1360);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0.95;font-family:sans-serif;white-space:pre;shape-inside:url(#rect4499);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text4497"
|
||||
transform="matrix(0.91075878,0,0,0.91075878,44.423281,40.361891)"
|
||||
aria-label="inflected noun /
|
||||
pronoun">
|
||||
<path
|
||||
id="path4503"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 28.822611,7.310097 h 0.760677 v 4.63021 h -0.760677 z m 0,-1.8024746 h 0.760677 v 0.963249 h -0.760677 z" />
|
||||
<path
|
||||
id="path4505"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="M 35.019651,9.1456446 V 11.940307 H 34.258974 V 9.1704493 q 0,-0.6573244 -0.256316,-0.9839196 -0.256315,-0.3265952 -0.768945,-0.3265952 -0.615984,0 -0.971518,0.392741 -0.355534,0.3927411 -0.355534,1.0707361 V 11.940307 H 31.14185 v -4.63021 h 0.764811 v 0.7193363 q 0.272852,-0.4175458 0.640788,-0.6242516 0.372071,-0.2067058 0.855762,-0.2067058 0.797885,0 1.207162,0.4960939 0.409278,0.4919599 0.409278,1.4510748 z" />
|
||||
<path
|
||||
id="path4507"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 38.169847,5.5076224 h 2.116668 V 11.940307 H 39.521703 V 6.1401421 h -1.360124 q -0.409277,0 -0.570508,0.1653647 -0.157096,0.1653646 -0.157096,0.5953127 V 7.310097 h 1.252637 V 7.9012757 H 37.433975 V 11.940307 H 36.669163 V 7.9012757 H 35.941559 V 7.310097 h 0.727604 V 6.987636 q 0,-0.7730798 0.359668,-1.1244796 0.359668,-0.355534 1.141016,-0.355534 z" />
|
||||
<path
|
||||
id="path4509"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 45.846901,9.4350328 v 0.3720704 h -3.497463 q 0.04961,0.7854818 0.47129,1.1988938 0.425814,0.409277 1.182357,0.409277 0.438216,0 0.847494,-0.107487 0.413411,-0.107487 0.818555,-0.322461 v 0.719337 q -0.409278,0.173632 -0.839226,0.264583 -0.429948,0.09095 -0.872298,0.09095 -1.107944,0 -1.757,-0.644923 -0.644922,-0.644922 -0.644922,-1.7445966 0,-1.136882 0.611849,-1.8024747 0.615984,-0.6697268 1.657781,-0.6697268 0.93431,0 1.475879,0.603581 0.545704,0.5994468 0.545704,1.6329759 z M 45.086223,9.2117905 q -0.0083,-0.6242516 -0.3514,-0.996322 -0.338997,-0.3720705 -0.901237,-0.3720705 -0.636654,0 -1.021127,0.3596681 -0.380338,0.3596682 -0.438216,1.0128585 z" />
|
||||
<path
|
||||
id="path4511"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="M 50.427501,7.487864 V 8.198932 Q 50.10504,8.021165 49.778445,7.9343486 49.455984,7.843398 49.125255,7.843398 q -0.740007,0 -1.149285,0.4712893 -0.409277,0.4671551 -0.409277,1.3146489 0,0.8474938 0.409277,1.3187828 0.409278,0.467155 1.149285,0.467155 0.330729,0 0.65319,-0.08682 0.326595,-0.09095 0.649056,-0.268718 v 0.7028 q -0.318327,0.148828 -0.661458,0.223242 -0.338998,0.07442 -0.723471,0.07442 -1.045931,0 -1.661914,-0.657325 -0.615984,-0.657324 -0.615984,-1.7735358 0,-1.1327478 0.620118,-1.7818041 0.624251,-0.6490562 1.70739,-0.6490562 0.3514,0 0.686263,0.074414 0.334863,0.07028 0.649056,0.214974 z" />
|
||||
<path
|
||||
id="path4513"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="M 52.511097,5.9954481 V 7.310097 h 1.56683 v 0.5911787 h -1.56683 v 2.5135423 q 0,0.566374 0.152962,0.727605 0.157097,0.16123 0.63252,0.16123 h 0.781348 v 0.636654 h -0.781348 q -0.880567,0 -1.21543,-0.326595 -0.334863,-0.330729 -0.334863,-1.198894 V 7.9012757 H 51.18818 V 7.310097 h 0.558106 V 5.9954481 Z" />
|
||||
<path
|
||||
id="path4515"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 59.042999,9.4350328 v 0.3720704 h -3.497462 q 0.04961,0.7854818 0.471289,1.1988938 0.425814,0.409277 1.182357,0.409277 0.438216,0 0.847494,-0.107487 0.413412,-0.107487 0.818555,-0.322461 v 0.719337 q -0.409277,0.173632 -0.839226,0.264583 -0.429948,0.09095 -0.872298,0.09095 -1.107943,0 -1.757,-0.644923 -0.644922,-0.644922 -0.644922,-1.7445966 0,-1.136882 0.61185,-1.8024747 0.615983,-0.6697268 1.65778,-0.6697268 0.93431,0 1.47588,0.603581 0.545703,0.5994468 0.545703,1.6329759 z M 58.282322,9.2117905 q -0.0083,-0.6242516 -0.3514,-0.996322 -0.338998,-0.3720705 -0.901238,-0.3720705 -0.636653,0 -1.021126,0.3596681 -0.380339,0.3596682 -0.438217,1.0128585 z" />
|
||||
<path
|
||||
id="path4517"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="M 63.338346,8.0128968 V 5.5076224 h 0.760677 v 6.4326846 h -0.760677 v -0.694531 q -0.239779,0.413411 -0.607715,0.615983 -0.363803,0.198438 -0.876433,0.198438 -0.839226,0 -1.368393,-0.669727 -0.525032,-0.669727 -0.525032,-1.7611338 0,-1.0914066 0.525032,-1.7611335 0.529167,-0.6697268 1.368393,-0.6697268 0.51263,0 0.876433,0.2025717 0.367936,0.1984376 0.607715,0.6118492 z m -2.592091,1.6164394 q 0,0.8392258 0.343131,1.3187828 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.950847,-0.475424 0.347266,-0.479557 0.347266,-1.3187828 0,-0.8392256 -0.347266,-1.3146489 -0.347266,-0.4795575 -0.950847,-0.4795575 -0.603581,0 -0.950847,0.4795575 -0.343131,0.4754233 -0.343131,1.3146489 z" />
|
||||
<path
|
||||
id="path4519"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="M 72.210162,9.1456446 V 11.940307 H 71.449484 V 9.1704493 q 0,-0.6573244 -0.256315,-0.9839196 -0.256315,-0.3265952 -0.768946,-0.3265952 -0.615983,0 -0.971517,0.392741 -0.355534,0.3927411 -0.355534,1.0707361 v 2.6168954 h -0.764811 v -4.63021 h 0.764811 v 0.7193363 q 0.272852,-0.4175458 0.640788,-0.6242516 0.372071,-0.2067058 0.855762,-0.2067058 0.797885,0 1.207162,0.4960939 0.409278,0.4919599 0.409278,1.4510748 z" />
|
||||
<path
|
||||
id="path4521"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 75.529854,7.843398 q -0.61185,0 -0.967384,0.4795575 -0.355534,0.4754234 -0.355534,1.3063807 0,0.8309578 0.3514,1.3105148 0.355534,0.475423 0.971518,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.3063808 0,-0.8226891 -0.355534,-1.3022466 Q 76.137569,7.843398 75.529854,7.843398 Z m 0,-0.6449221 q 0.992187,0 1.558561,0.6449221 0.566374,0.6449222 0.566374,1.7859382 0,1.1368818 -0.566374,1.7859378 -0.566374,0.644923 -1.558561,0.644923 -0.996322,0 -1.562696,-0.644923 -0.56224,-0.649056 -0.56224,-1.7859378 0,-1.141016 0.56224,-1.7859382 0.566374,-0.6449221 1.562696,-0.6449221 z" />
|
||||
<path
|
||||
id="path4523"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="M 78.833014,10.113028 V 7.310097 h 0.760677 v 2.773992 q 0,0.657325 0.256315,0.988054 0.256316,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359668,-0.392741 0.359668,-1.0707362 V 7.310097 h 0.760678 v 4.63021 h -0.760678 v -0.711068 q -0.276985,0.42168 -0.644922,0.628386 -0.363802,0.202572 -0.847494,0.202572 -0.797884,0 -1.211296,-0.496094 -0.413411,-0.496094 -0.413411,-1.451075 z M 80.74711,7.1984759 Z" />
|
||||
<path
|
||||
id="path4525"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="M 88.134776,9.1456446 V 11.940307 H 87.374098 V 9.1704493 q 0,-0.6573244 -0.256315,-0.9839196 -0.256315,-0.3265952 -0.768946,-0.3265952 -0.615983,0 -0.971517,0.392741 -0.355534,0.3927411 -0.355534,1.0707361 v 2.6168954 h -0.764811 v -4.63021 h 0.764811 v 0.7193363 q 0.272852,-0.4175458 0.640788,-0.6242516 0.372071,-0.2067058 0.855762,-0.2067058 0.797885,0 1.207162,0.4960939 0.409278,0.4919599 0.409278,1.4510748 z" />
|
||||
<path
|
||||
id="path4527"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 93.707563,5.7680717 h 0.7028 l -2.149741,6.9577173 h -0.702799 z" />
|
||||
<path
|
||||
id="path4529"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 45.177175,21.29991 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239778,-0.413411 0.603581,-0.611849 0.367936,-0.202572 0.876432,-0.202572 0.84336,0 1.368393,0.669727 0.529167,0.669727 0.529167,1.761134 0,1.091406 -0.529167,1.761133 -0.525033,0.669727 -1.368393,0.669727 -0.508496,0 -0.876432,-0.198438 -0.363803,-0.202571 -0.603581,-0.615983 z m 2.587956,-1.616439 q 0,-0.839226 -0.347265,-1.314649 -0.343132,-0.479558 -0.946713,-0.479558 -0.603581,0 -0.950847,0.479558 -0.343131,0.475423 -0.343131,1.314649 0,0.839225 0.343131,1.318783 0.347266,0.475423 0.950847,0.475423 0.603581,0 0.946713,-0.475423 0.347265,-0.479558 0.347265,-1.318783 z" />
|
||||
<path
|
||||
id="path4531"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 52.498694,18.075299 q -0.128157,-0.07441 -0.28112,-0.107487 -0.148828,-0.03721 -0.330729,-0.03721 -0.644922,0 -0.992188,0.42168 -0.343131,0.417546 -0.343131,1.203028 v 2.439129 h -0.764812 v -4.630211 h 0.764812 v 0.719337 q 0.239778,-0.42168 0.624251,-0.624252 0.384473,-0.206706 0.93431,-0.206706 0.07855,0 0.173633,0.0124 0.09508,0.0083 0.21084,0.02894 z" />
|
||||
<path
|
||||
id="path4533"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 54.917153,17.897532 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.351399,1.310514 0.355534,0.475424 0.971518,0.475424 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.30638 0,-0.82269 -0.355534,-1.302247 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644923 0.566374,1.785939 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785939 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path4535"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 62.147721,19.199779 v 2.794663 h -0.760677 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 H 58.26992 v -4.630211 h 0.764812 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z" />
|
||||
<path
|
||||
id="path4537"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 65.467417,17.897532 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.3514,1.310514 0.355534,0.475424 0.971517,0.475424 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.30638 0,-0.82269 -0.355534,-1.302247 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644923 0.566374,1.785939 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785939 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path4539"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 68.770575,20.167162 v -2.802931 h 0.760678 v 2.773992 q 0,0.657325 0.256315,0.988054 0.256315,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359668,-0.392741 0.359668,-1.070736 v -2.625164 h 0.760677 v 4.630211 h -0.760677 v -0.711068 q -0.276986,0.421679 -0.644922,0.628385 -0.363802,0.202572 -0.847494,0.202572 -0.797884,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z" />
|
||||
<path
|
||||
id="path4541"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 78.072337,19.199779 v 2.794663 H 77.31166 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764812 v -4.630211 h 0.764812 v 0.719337 q 0.272851,-0.417546 0.640788,-0.624252 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z" />
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
transform="translate(5.342511,1.1060936)"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1373);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text1371"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
aria-label="or"
|
||||
transform="matrix(0.91075878,0,0,0.91075878,-60.316824,112.33249)"
|
||||
id="text1383"
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1385);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 41.924122,-39.945734 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="shape-inside:url(#rect1385)"
|
||||
id="path3493" />
|
||||
<path
|
||||
d="m 47.98887,-39.767967 q -0.128157,-0.07441 -0.281119,-0.107487 -0.148829,-0.03721 -0.33073,-0.03721 -0.644922,0 -0.992188,0.421679 -0.343131,0.417546 -0.343131,1.203028 v 2.439129 H 45.27689 v -4.63021 h 0.764812 v 0.719336 q 0.239778,-0.42168 0.624251,-0.624252 0.384473,-0.206705 0.934311,-0.206705 0.07855,0 0.173632,0.0124 0.09508,0.0083 0.21084,0.02894 z"
|
||||
style="shape-inside:url(#rect1385)"
|
||||
id="path3495" />
|
||||
</g>
|
||||
<g
|
||||
aria-label="enclitic (mini)
|
||||
pronoun"
|
||||
transform="matrix(0.91075878,0,0,0.91075878,-49.155624,146.73253)"
|
||||
id="text1389"
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0.85;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1391);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<path
|
||||
d="m 7.5745021,-65.810929 v 0.372071 H 4.0770398 q 0.049609,0.785482 0.4712892,1.198893 0.425814,0.409278 1.1823573,0.409278 0.4382163,0 0.8474938,-0.107487 0.4134116,-0.107487 0.818555,-0.322461 v 0.719336 q -0.4092775,0.173633 -0.8392256,0.264583 -0.4299481,0.09095 -0.8722985,0.09095 -1.1079432,0 -1.7569994,-0.644922 -0.6449222,-0.644922 -0.6449222,-1.744597 0,-1.136882 0.6118492,-1.802475 0.6159834,-0.669727 1.6577807,-0.669727 0.9343102,0 1.4758794,0.603581 0.5457034,0.599447 0.5457034,1.632977 z m -0.7606774,-0.223242 q -0.00827,-0.624252 -0.3513999,-0.996322 -0.3389975,-0.372071 -0.9012373,-0.372071 -0.6366539,0 -1.0211267,0.359668 -0.3803387,0.359669 -0.4382163,1.012859 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3498" />
|
||||
<path
|
||||
d="m 12.671867,-66.100317 v 2.794663 H 11.91119 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.9715173,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 H 8.7940662 v -4.630211 h 0.7648115 v 0.719337 q 0.2728517,-0.417546 0.6407883,-0.624252 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3500" />
|
||||
<path
|
||||
d="m 17.529454,-67.758098 v 0.711068 q -0.322461,-0.177767 -0.649056,-0.264583 -0.322461,-0.09095 -0.65319,-0.09095 -0.740007,0 -1.149285,0.47129 -0.409277,0.467155 -0.409277,1.314649 0,0.847493 0.409277,1.318783 0.409278,0.467155 1.149285,0.467155 0.330729,0 0.65319,-0.08682 0.326595,-0.09095 0.649056,-0.268717 v 0.7028 q -0.318327,0.148828 -0.661458,0.223242 -0.338998,0.07441 -0.723471,0.07441 -1.045931,0 -1.661914,-0.657325 -0.615984,-0.657324 -0.615984,-1.773535 0,-1.132748 0.620118,-1.781805 0.624251,-0.649056 1.70739,-0.649056 0.3514,0 0.686263,0.07441 0.334863,0.07028 0.649056,0.214974 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3502" />
|
||||
<path
|
||||
d="m 18.860639,-69.738339 h 0.760677 v 6.432685 h -0.760677 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3504" />
|
||||
<path
|
||||
d="m 21.208818,-67.935865 h 0.760677 v 4.630211 h -0.760677 z m 0,-1.802474 h 0.760677 v 0.963249 h -0.760677 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3506" />
|
||||
<path
|
||||
d="m 24.309404,-69.250514 v 1.314649 h 1.56683 v 0.591179 h -1.56683 v 2.513543 q 0,0.566374 0.152962,0.727604 0.157097,0.161231 0.63252,0.161231 h 0.781348 v 0.636654 h -0.781348 q -0.880567,0 -1.21543,-0.326596 -0.334864,-0.330729 -0.334864,-1.198893 v -2.513543 h -0.558105 v -0.591179 h 0.558105 v -1.314649 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3508" />
|
||||
<path
|
||||
d="m 26.880824,-67.935865 h 0.760678 v 4.630211 h -0.760678 z m 0,-1.802474 h 0.760678 v 0.963249 h -0.760678 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3510" />
|
||||
<path
|
||||
d="m 32.561099,-67.758098 v 0.711068 q -0.322461,-0.177767 -0.649056,-0.264583 -0.322461,-0.09095 -0.653191,-0.09095 -0.740006,0 -1.149284,0.47129 -0.409277,0.467155 -0.409277,1.314649 0,0.847493 0.409277,1.318783 0.409278,0.467155 1.149284,0.467155 0.33073,0 0.653191,-0.08682 0.326595,-0.09095 0.649056,-0.268717 v 0.7028 q -0.318327,0.148828 -0.661459,0.223242 -0.338997,0.07441 -0.72347,0.07441 -1.045931,0 -1.661915,-0.657325 -0.615983,-0.657324 -0.615983,-1.773535 0,-1.132748 0.620117,-1.781805 0.624252,-0.649056 1.70739,-0.649056 0.3514,0 0.686264,0.07441 0.334863,0.07028 0.649056,0.214974 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3512" />
|
||||
<path
|
||||
d="m 38.415007,-69.730071 q -0.553971,0.950847 -0.822689,1.881023 -0.268717,0.930176 -0.268717,1.885157 0,0.954981 0.268717,1.893425 0.272852,0.93431 0.822689,1.881023 h -0.661458 q -0.620118,-0.971517 -0.930177,-1.909962 -0.305924,-0.938444 -0.305924,-1.864486 0,-0.921908 0.305924,-1.856218 0.305925,-0.934311 0.930177,-1.909962 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3514" />
|
||||
<path
|
||||
d="m 43.49997,-67.04703 q 0.285254,-0.51263 0.682129,-0.756543 0.396875,-0.243913 0.934311,-0.243913 0.72347,0 1.116211,0.508497 0.392741,0.504362 0.392741,1.438672 v 2.794663 h -0.764811 v -2.769858 q 0,-0.665593 -0.235645,-0.988054 -0.235645,-0.322461 -0.719336,-0.322461 -0.591179,0 -0.934311,0.392741 -0.343131,0.392741 -0.343131,1.070736 v 2.616896 h -0.764812 v -2.769858 q 0,-0.669727 -0.235644,-0.988054 -0.235645,-0.322461 -0.727605,-0.322461 -0.58291,0 -0.926042,0.396875 -0.343132,0.392741 -0.343132,1.066602 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.26045,-0.425814 0.624252,-0.628386 0.363802,-0.202572 0.86403,-0.202572 0.504362,0 0.855762,0.256315 0.355534,0.256316 0.525033,0.744141 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3516" />
|
||||
<path
|
||||
d="m 48.146718,-67.935865 h 0.760678 v 4.630211 h -0.760678 z m 0,-1.802474 h 0.760678 v 0.963249 h -0.760678 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3518" />
|
||||
<path
|
||||
d="m 54.343756,-66.100317 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3520" />
|
||||
<path
|
||||
d="m 55.869245,-67.935865 h 0.760677 v 4.630211 h -0.760677 z m 0,-1.802474 h 0.760677 v 0.963249 h -0.760677 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3522" />
|
||||
<path
|
||||
d="m 58.097534,-69.730071 h 0.661459 q 0.620117,0.975651 0.926042,1.909962 0.310059,0.93431 0.310059,1.856218 0,0.926042 -0.310059,1.864486 -0.305925,0.938445 -0.926042,1.909962 h -0.661459 q 0.549838,-0.946713 0.818555,-1.881023 0.272852,-0.938444 0.272852,-1.893425 0,-0.954981 -0.272852,-1.885157 -0.268717,-0.930176 -0.818555,-1.881023 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3524" />
|
||||
<path
|
||||
d="m 15.726979,-55.004382 v 2.455665 h -0.764811 v -6.391344 h 0.764811 v 0.7028 q 0.239779,-0.413412 0.603581,-0.611849 0.367937,-0.202572 0.876433,-0.202572 0.84336,0 1.368392,0.669727 0.529167,0.669727 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525032,0.669727 -1.368392,0.669727 -0.508496,0 -0.876433,-0.198438 -0.363802,-0.202572 -0.603581,-0.615983 z m 2.587957,-1.61644 q 0,-0.839225 -0.347266,-1.314649 -0.343131,-0.479557 -0.946712,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343132,0.475424 -0.343132,1.314649 0,0.839226 0.343132,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946712,-0.475424 0.347266,-0.479557 0.347266,-1.318783 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3526" />
|
||||
<path
|
||||
d="m 23.048499,-58.228993 q -0.128158,-0.07441 -0.28112,-0.107487 -0.148828,-0.03721 -0.330729,-0.03721 -0.644922,0 -0.992188,0.42168 -0.343132,0.417546 -0.343132,1.203028 v 2.439128 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.239779,-0.421679 0.624252,-0.624251 0.384473,-0.206706 0.93431,-0.206706 0.07855,0 0.173633,0.0124 0.09508,0.0083 0.21084,0.02894 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3528" />
|
||||
<path
|
||||
d="m 25.466957,-58.40676 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.30638 0,0.830958 0.3514,1.310515 0.355534,0.475424 0.971517,0.475424 0.607716,0 0.96325,-0.479558 0.355534,-0.479557 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302246 -0.355534,-0.483692 -0.96325,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785939 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562695,-0.644922 -0.56224,-0.649057 -0.56224,-1.785939 0,-1.141016 0.56224,-1.785938 0.566373,-0.644922 1.562695,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3530" />
|
||||
<path
|
||||
d="m 32.697526,-57.104513 v 2.794662 h -0.760677 v -2.769857 q 0,-0.657325 -0.256315,-0.98392 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272851,-0.417545 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3532" />
|
||||
<path
|
||||
d="m 36.017222,-58.40676 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.30638 0,0.830958 0.3514,1.310515 0.355534,0.475424 0.971517,0.475424 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302246 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785939 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649057 -0.56224,-1.785939 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3534" />
|
||||
<path
|
||||
d="m 39.32038,-56.13713 v -2.802931 h 0.760677 v 2.773992 q 0,0.657325 0.256316,0.988054 0.256315,0.326595 0.768945,0.326595 0.615984,0 0.971518,-0.392741 0.359668,-0.392741 0.359668,-1.070736 v -2.625164 h 0.760677 v 4.63021 h -0.760677 v -0.711068 q -0.276986,0.42168 -0.644922,0.628386 -0.363803,0.202572 -0.847494,0.202572 -0.797885,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3536" />
|
||||
<path
|
||||
d="m 48.622142,-57.104513 v 2.794662 h -0.760677 v -2.769857 q 0,-0.657325 -0.256316,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.272852,-0.417545 0.640788,-0.624251 0.372071,-0.206706 0.855763,-0.206706 0.797884,0 1.207161,0.496094 0.409278,0.49196 0.409278,1.451075 z"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
id="path3538" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path1161"
|
||||
d="m 65.472822,127.48303 -10e-7,14.69983 H 141.1101 v -18.4416"
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.05;font-family:sans-serif;white-space:pre;fill:none;fill-opacity:1;stroke:#4d4d4d;stroke-width:0.865;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.46, 1.73;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<g
|
||||
id="g1344">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.964999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 36.883574,98.715892 9.342265,9.289858 h 40.102596 l 9.589405,-9.589418"
|
||||
id="path1169-1"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1354);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1352"
|
||||
transform="translate(13.985119,-5.2916667)"
|
||||
aria-label="object">
|
||||
<path
|
||||
id="path3541"
|
||||
d="m 39.076039,122.71137 q -0.764808,0 -1.209224,0.59945 -0.444416,0.59427 -0.444416,1.63297 0,1.03869 0.439248,1.63813 0.444416,0.59428 1.214392,0.59428 0.759642,0 1.204058,-0.59944 0.444415,-0.59945 0.444415,-1.63297 0,-1.02836 -0.444415,-1.62781 -0.444416,-0.60461 -1.204058,-0.60461 z m 0,-0.80615 q 1.240231,0 1.948196,0.80615 0.707965,0.80615 0.707965,2.23242 0,1.42109 -0.707965,2.23241 -0.707965,0.80615 -1.948196,0.80615 -1.245398,0 -1.953362,-0.80615 -0.702798,-0.81132 -0.702798,-2.23241 0,-1.42627 0.702798,-2.23242 0.707964,-0.80615 1.953362,-0.80615 z" />
|
||||
<path
|
||||
id="path3543"
|
||||
d="m 47.45793,124.94379 q 0,-1.04903 -0.434081,-1.64331 -0.428913,-0.59944 -1.183386,-0.59944 -0.754474,0 -1.188554,0.59944 -0.428913,0.59428 -0.428913,1.64331 0,1.04902 0.428913,1.64847 0.43408,0.59428 1.188554,0.59428 0.754473,0 1.183386,-0.59428 0.434081,-0.59945 0.434081,-1.64847 z m -3.234934,-2.02055 q 0.299722,-0.51676 0.754473,-0.7648 0.459919,-0.25322 1.095537,-0.25322 1.054196,0 1.710485,0.83716 0.661456,0.83715 0.661456,2.20141 0,1.36425 -0.661456,2.20141 -0.656289,0.83715 -1.710485,0.83715 -0.635618,0 -1.095537,-0.24805 -0.454751,-0.25321 -0.754473,-0.76997 v 0.86816 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
<path
|
||||
id="path3545"
|
||||
d="m 50.021073,122.04475 h 0.950843 v 5.89109 q 0,1.10587 -0.423745,1.60197 -0.418578,0.49609 -1.353919,0.49609 h -0.361733 v -0.80615 h 0.253213 q 0.542601,0 0.738971,-0.25321 0.19637,-0.24805 0.19637,-1.0387 z m 0,-2.25309 h 0.950843 v 1.20406 h -0.950843 z" />
|
||||
<path
|
||||
id="path3547"
|
||||
d="m 57.906871,124.70091 v 0.46508 h -4.371812 q 0.06201,0.98185 0.589109,1.49862 0.532266,0.51159 1.477942,0.51159 0.547768,0 1.059363,-0.13436 0.516763,-0.13436 1.02319,-0.40307 v 0.89916 q -0.511595,0.21705 -1.049028,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196242,-0.80615 -0.806149,-0.80615 -0.806149,-2.18074 0,-1.42109 0.764808,-2.25308 0.769977,-0.83716 2.072219,-0.83716 1.167883,0 1.844843,0.75448 0.682126,0.7493 0.682126,2.04121 z m -0.950843,-0.27905 q -0.01034,-0.78032 -0.439248,-1.2454 -0.423746,-0.46509 -1.126543,-0.46509 -0.795814,0 -1.276404,0.44959 -0.475421,0.44958 -0.547768,1.26606 z" />
|
||||
<path
|
||||
id="path3549"
|
||||
d="m 63.632602,122.26696 v 0.88883 q -0.403075,-0.22221 -0.811318,-0.33073 -0.403075,-0.11369 -0.816485,-0.11369 -0.925005,0 -1.4366,0.58911 -0.511595,0.58394 -0.511595,1.64331 0,1.05936 0.511595,1.64847 0.511595,0.58394 1.4366,0.58394 0.41341,0 0.816485,-0.10852 0.408243,-0.11369 0.811318,-0.33589 v 0.87849 q -0.397908,0.18604 -0.826821,0.27905 -0.423745,0.093 -0.904334,0.093 -1.30741,0 -2.077386,-0.82165 -0.769977,-0.82165 -0.769977,-2.21691 0,-1.41593 0.775144,-2.22725 0.780312,-0.81132 2.13423,-0.81132 0.439248,0 0.857826,0.093 0.418578,0.0879 0.811318,0.26872 z" />
|
||||
<path
|
||||
id="path3551"
|
||||
d="m 66.237085,120.40144 v 1.64331 h 1.95853 v 0.73897 h -1.95853 v 3.14192 q 0,0.70796 0.191202,0.9095 0.19637,0.20154 0.790647,0.20154 h 0.976681 v 0.79581 h -0.976681 q -1.100705,0 -1.519282,-0.40824 -0.418578,-0.41341 -0.418578,-1.49861 v -3.14192 h -0.69763 v -0.73897 h 0.69763 v -1.64331 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 54 KiB |
|
@ -0,0 +1,681 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="transitive-present.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 212.46637 114.62142"
|
||||
height="433.21481"
|
||||
width="803.02252">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
id="rect1391"
|
||||
height="46.113094"
|
||||
width="93.738098"
|
||||
y="-70.55368"
|
||||
x="-15.096844" />
|
||||
<rect
|
||||
id="rect1385"
|
||||
height="25.324406"
|
||||
width="51.404762"
|
||||
y="-43.339394"
|
||||
x="39.331726" />
|
||||
<rect
|
||||
id="rect1379"
|
||||
height="25.324406"
|
||||
width="78.997025"
|
||||
y="35.657631"
|
||||
x="38.953751" />
|
||||
<rect
|
||||
id="rect1373"
|
||||
height="23.434525"
|
||||
width="29.104168"
|
||||
y="33.389771"
|
||||
x="57.474583" />
|
||||
<rect
|
||||
id="rect1360"
|
||||
height="77.422302"
|
||||
width="112.6993"
|
||||
y="6.553463"
|
||||
x="4.935894" />
|
||||
<rect
|
||||
id="rect1354"
|
||||
height="35.151787"
|
||||
width="93.738098"
|
||||
y="118.46915"
|
||||
x="35.83614" />
|
||||
<rect
|
||||
id="rect1348"
|
||||
height="28.348213"
|
||||
width="76.351189"
|
||||
y="116.23755"
|
||||
x="-56.012074" />
|
||||
<rect
|
||||
id="rect1165"
|
||||
height="44.73629"
|
||||
width="50.263763"
|
||||
y="61.904251"
|
||||
x="35.529755" />
|
||||
<rect
|
||||
id="rect1113"
|
||||
height="23.8125"
|
||||
width="56.69643"
|
||||
y="112.25893"
|
||||
x="37.041668" />
|
||||
<marker
|
||||
inkscape:isstock="true"
|
||||
style="overflow:visible"
|
||||
id="Arrow1Lstart"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto"
|
||||
inkscape:stockid="Arrow1Lstart">
|
||||
<path
|
||||
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||
style="fillRule:evenodd;stroke:#000000;stroke-width:1pt"
|
||||
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||
id="path841" />
|
||||
</marker>
|
||||
<rect
|
||||
x="37.041668"
|
||||
y="112.25893"
|
||||
width="56.69643"
|
||||
height="23.8125"
|
||||
id="rect1113-9" />
|
||||
<rect
|
||||
x="37.041668"
|
||||
y="112.25893"
|
||||
width="56.69643"
|
||||
height="23.8125"
|
||||
id="rect1141" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:window-y="118"
|
||||
inkscape:window-x="2167"
|
||||
inkscape:window-height="1080"
|
||||
inkscape:window-width="1515"
|
||||
fit-margin-left="10"
|
||||
fit-margin-bottom="10"
|
||||
fit-margin-right="10"
|
||||
fit-margin-top="10"
|
||||
units="px"
|
||||
showgrid="false"
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:current-layer="text1163-1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:cy="272.71875"
|
||||
inkscape:cx="408.29075"
|
||||
inkscape:zoom="0.49497475"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
id="base" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(52.843619,-30.639781)"
|
||||
id="layer1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Layer 1">
|
||||
<path
|
||||
d="m 122.9777,85.081856 h 33.44172 V 118.52357 H 122.9777 Z"
|
||||
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.115;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
id="rect839-4" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1113-9);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1111-8"
|
||||
transform="translate(90.461538,-16.314846)"
|
||||
aria-label="verb">
|
||||
<path
|
||||
id="path1187"
|
||||
d="m 37.356241,115.83576 h 1.007687 l 1.808669,4.85757 1.80867,-4.85757 h 1.007687 l -2.170403,5.78775 h -1.291907 z" />
|
||||
<path
|
||||
id="path1189"
|
||||
d="m 49.252118,118.49192 v 0.46509 h -4.371813 q 0.06201,0.98185 0.58911,1.49861 0.532265,0.5116 1.477941,0.5116 0.547769,0 1.059364,-0.13436 0.516762,-0.13436 1.02319,-0.40308 v 0.89917 q -0.511595,0.21704 -1.049029,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.4211 0.764809,-2.25309 0.769976,-0.83715 2.072218,-0.83715 1.167884,0 1.844843,0.75447 0.682127,0.74931 0.682127,2.04121 z m -0.950844,-0.27905 q -0.01033,-0.78031 -0.439248,-1.2454 -0.423745,-0.46508 -1.126543,-0.46508 -0.795814,0 -1.276403,0.44958 -0.475422,0.44958 -0.547769,1.26607 z" />
|
||||
<path
|
||||
id="path1191"
|
||||
d="m 54.166531,116.7246 q -0.160196,-0.093 -0.351398,-0.13436 -0.186035,-0.0465 -0.41341,-0.0465 -0.80615,0 -1.240231,0.5271 -0.428913,0.52193 -0.428913,1.50378 v 3.0489 h -0.956011 v -5.78775 h 0.956011 v 0.89917 q 0.299723,-0.5271 0.780312,-0.78031 0.480589,-0.25838 1.167883,-0.25838 0.09819,0 0.217041,0.0155 0.118855,0.0103 0.263549,0.0362 z" />
|
||||
<path
|
||||
id="path1193"
|
||||
d="m 59.32899,118.7348 q 0,-1.04903 -0.43408,-1.6433 -0.428913,-0.59945 -1.183387,-0.59945 -0.754473,0 -1.188554,0.59945 -0.428913,0.59427 -0.428913,1.6433 0,1.04903 0.428913,1.64847 0.434081,0.59428 1.188554,0.59428 0.754474,0 1.183387,-0.59428 0.43408,-0.59944 0.43408,-1.64847 z m -3.234934,-2.02054 q 0.299722,-0.51676 0.754474,-0.76481 0.459918,-0.25321 1.095536,-0.25321 1.054196,0 1.710485,0.83715 0.661456,0.83716 0.661456,2.20141 0,1.36426 -0.661456,2.20141 -0.656289,0.83716 -1.710485,0.83716 -0.635618,0 -1.095536,-0.24805 -0.454752,-0.25321 -0.754474,-0.76998 v 0.86817 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.05;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1165);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1163"
|
||||
transform="translate(-81.650166,5.4265352)"
|
||||
aria-label="plain noun / pronoun">
|
||||
<path
|
||||
id="path1196"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 51.876136,67.854117 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239779,-0.413412 0.603581,-0.611849 0.367936,-0.202572 0.876432,-0.202572 0.84336,0 1.368393,0.669727 0.529167,0.669727 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525033,0.669727 -1.368393,0.669727 -0.508496,0 -0.876432,-0.198438 -0.363802,-0.202572 -0.603581,-0.615983 z m 2.587957,-1.61644 q 0,-0.839225 -0.347266,-1.314649 -0.343132,-0.479557 -0.946713,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343131,0.475424 -0.343131,1.314649 0,0.839226 0.343131,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946713,-0.475424 0.347266,-0.479557 0.347266,-1.318783 z" />
|
||||
<path
|
||||
id="path1198"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 56.514614,62.115963 h 0.760678 v 6.432685 h -0.760678 z" />
|
||||
<path
|
||||
id="path1200"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 60.967057,66.221141 q -0.921908,0 -1.277442,0.21084 -0.355534,0.21084 -0.355534,0.719336 0,0.405143 0.264584,0.644922 0.268717,0.235645 0.727604,0.235645 0.63252,0 1.012859,-0.446485 0.384473,-0.450618 0.384473,-1.194759 v -0.169499 z m 1.517221,-0.314193 v 2.6417 h -0.760677 v -0.702799 q -0.26045,0.421679 -0.649057,0.624251 -0.388607,0.198438 -0.950846,0.198438 -0.711068,0 -1.132748,-0.396876 -0.417546,-0.401009 -0.417546,-1.070736 0,-0.781348 0.520899,-1.178223 0.525032,-0.396875 1.562696,-0.396875 h 1.066602 v -0.07441 q 0,-0.525033 -0.347266,-0.810287 -0.343132,-0.289388 -0.967383,-0.289388 -0.396876,0 -0.77308,0.09508 -0.376205,0.09508 -0.723471,0.285254 v -0.7028 q 0.417546,-0.161231 0.810287,-0.239779 0.392741,-0.08268 0.764812,-0.08268 1.00459,0 1.500684,0.520899 0.496094,0.520898 0.496094,1.579231 z" />
|
||||
<path
|
||||
id="path1202"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 64.055242,63.918438 h 0.760678 v 4.63021 h -0.760678 z m 0,-1.802475 h 0.760678 v 0.96325 h -0.760678 z" />
|
||||
<path
|
||||
id="path1204"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 70.252282,65.753986 v 2.794662 H 69.491605 V 65.77879 q 0,-0.657324 -0.256315,-0.983919 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272851,-0.417545 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z" />
|
||||
<path
|
||||
id="path1206"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 51.88027,74.643985 v 2.794663 H 51.119593 V 74.66879 q 0,-0.657325 -0.256316,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
<path
|
||||
id="path1208"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 55.199965,73.341738 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.30638 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644923 0.566374,1.785939 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785939 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path1210"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 58.503124,75.611368 v -2.802931 h 0.760677 v 2.773992 q 0,0.657325 0.256315,0.988054 0.256316,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359669,-0.392741 0.359669,-1.070736 v -2.625164 h 0.760677 v 4.630211 H 61.620248 V 76.72758 q -0.276986,0.42168 -0.644923,0.628385 -0.363802,0.202572 -0.847493,0.202572 -0.797885,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z" />
|
||||
<path
|
||||
id="path1212"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 67.804886,74.643985 v 2.794663 H 67.044208 V 74.66879 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
<path
|
||||
id="path1214"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 73.377673,71.266412 h 0.7028 l -2.14974,6.957718 h -0.7028 z" />
|
||||
<path
|
||||
id="path1216"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 44.616628,85.634116 v 2.455665 h -0.764812 v -6.391344 h 0.764812 v 0.7028 q 0.239778,-0.413412 0.603581,-0.61185 0.367936,-0.202571 0.876432,-0.202571 0.84336,0 1.368393,0.669727 0.529167,0.669726 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525033,0.669726 -1.368393,0.669726 -0.508496,0 -0.876432,-0.198437 -0.363803,-0.202572 -0.603581,-0.615983 z m 2.587956,-1.61644 q 0,-0.839226 -0.347265,-1.314649 -0.343132,-0.479557 -0.946713,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343131,0.475423 -0.343131,1.314649 0,0.839226 0.343131,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946713,-0.475424 0.347265,-0.479557 0.347265,-1.318783 z" />
|
||||
<path
|
||||
id="path1218"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 51.938147,82.409505 q -0.128157,-0.07441 -0.281119,-0.107487 -0.148829,-0.03721 -0.33073,-0.03721 -0.644922,0 -0.992188,0.42168 -0.343131,0.417545 -0.343131,1.203027 v 2.439129 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.239778,-0.42168 0.624251,-0.624251 0.384473,-0.206706 0.934311,-0.206706 0.07855,0 0.173632,0.0124 0.09508,0.0083 0.21084,0.02894 z" />
|
||||
<path
|
||||
id="path1220"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 54.356606,82.231738 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path1222"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 61.587175,83.533984 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657324 -0.256315,-0.983919 -0.256315,-0.326596 -0.768946,-0.326596 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624251 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451074 z" />
|
||||
<path
|
||||
id="path1224"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 64.90687,82.231738 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.562239,-0.649056 -0.562239,-1.785938 0,-1.141016 0.562239,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path1226"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 68.210028,84.501368 v -2.802931 h 0.760678 v 2.773992 q 0,0.657324 0.256315,0.988054 0.256315,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359668,-0.392741 0.359668,-1.070736 v -2.625164 h 0.760678 v 4.63021 h -0.760678 v -0.711068 q -0.276986,0.42168 -0.644922,0.628386 -0.363802,0.202571 -0.847494,0.202571 -0.797884,0 -1.211296,-0.496094 -0.413412,-0.496093 -0.413412,-1.451074 z m 1.914096,-2.914552 z" />
|
||||
<path
|
||||
id="path1228"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 77.51179,83.533984 v 2.794663 h -0.760677 v -2.769858 q 0,-0.657324 -0.256315,-0.983919 -0.256315,-0.326596 -0.768946,-0.326596 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451074 z" />
|
||||
</g>
|
||||
<g
|
||||
transform="translate(7.9375,-1.5481652)"
|
||||
id="g1333">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.965;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m -57.795068,100.26406 9.342265,9.28984 h 40.1025978 l 9.589407,-9.589405"
|
||||
id="path1169"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1348);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1346"
|
||||
transform="translate(-9.827381,-4.5357143)"
|
||||
aria-label="subject /
|
||||
agent">
|
||||
<path
|
||||
id="path4222"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -35.814111,119.98481 v 0.89917 q -0.403075,-0.20671 -0.837156,-0.31006 -0.43408,-0.10335 -0.899167,-0.10335 -0.707965,0 -1.064531,0.21704 -0.351398,0.21704 -0.351398,0.65112 0,0.33073 0.253213,0.52193 0.253214,0.18603 1.018023,0.35657 l 0.32556,0.0723 q 1.012855,0.21704 1.436601,0.61495 0.428913,0.39274 0.428913,1.1007 0,0.80615 -0.640786,1.27641 -0.635618,0.47025 -1.751826,0.47025 -0.465086,0 -0.971513,-0.093 -0.50126,-0.0878 -1.059364,-0.26871 v -0.98185 q 0.527098,0.27388 1.038693,0.41341 0.511595,0.13436 1.012855,0.13436 0.671791,0 1.033525,-0.22738 0.361734,-0.23254 0.361734,-0.65112 0,-0.38757 -0.263549,-0.59428 -0.258381,-0.2067 -1.142045,-0.3979 l -0.330729,-0.0775 q -0.883664,-0.18603 -1.276403,-0.56844 -0.39274,-0.38757 -0.39274,-1.05936 0,-0.81649 0.578774,-1.2609 0.578774,-0.44442 1.643306,-0.44442 0.527097,0 0.992184,0.0775 0.465086,0.0775 0.857826,0.23254 z" />
|
||||
<path
|
||||
id="path4224"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -34.082956,123.31793 v -3.50365 h 0.950843 v 3.46748 q 0,0.82165 0.320393,1.23506 0.320393,0.40824 0.961179,0.40824 0.769976,0 1.214392,-0.49092 0.449583,-0.49093 0.449583,-1.33842 v -3.28144 h 0.950844 v 5.78774 h -0.950844 v -0.88883 q -0.346231,0.5271 -0.806149,0.78548 -0.454751,0.25321 -1.059364,0.25321 -0.997352,0 -1.514114,-0.62011 -0.516763,-0.62012 -0.516763,-1.81384 z m 2.392611,-3.64318 z" />
|
||||
<path
|
||||
id="path4226"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -23.112084,122.71332 q 0,-1.04903 -0.434081,-1.64331 -0.428913,-0.59944 -1.183386,-0.59944 -0.754474,0 -1.188555,0.59944 -0.428913,0.59428 -0.428913,1.64331 0,1.04903 0.428913,1.64847 0.434081,0.59428 1.188555,0.59428 0.754473,0 1.183386,-0.59428 0.434081,-0.59944 0.434081,-1.64847 z m -3.234935,-2.02054 q 0.299723,-0.51677 0.754474,-0.76481 0.459919,-0.25322 1.095537,-0.25322 1.054196,0 1.710484,0.83716 0.661456,0.83715 0.661456,2.20141 0,1.36425 -0.661456,2.20141 -0.656288,0.83715 -1.710484,0.83715 -0.635618,0 -1.095537,-0.24804 -0.454751,-0.25322 -0.754474,-0.76998 v 0.86816 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
<path
|
||||
id="path4228"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -20.548942,119.81428 h 0.950844 v 5.89109 q 0,1.10588 -0.423746,1.60197 -0.418577,0.49609 -1.353918,0.49609 h -0.361734 v -0.80615 h 0.253214 q 0.542601,0 0.738971,-0.25321 0.196369,-0.24805 0.196369,-1.0387 z m 0,-2.25309 h 0.950844 v 1.20406 h -0.950844 z" />
|
||||
<path
|
||||
id="path4230"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -12.663144,122.47044 v 0.46509 h -4.371812 q 0.06201,0.98184 0.589109,1.49861 0.532266,0.51159 1.477941,0.51159 0.547769,0 1.059364,-0.13436 0.516763,-0.13435 1.02319,-0.40307 v 0.89917 q -0.511595,0.21704 -1.049028,0.33072 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196242,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.42109 0.764809,-2.25308 0.769977,-0.83716 2.072219,-0.83716 1.167883,0 1.844842,0.75448 0.682127,0.7493 0.682127,2.04121 z m -0.950843,-0.27905 q -0.01034,-0.78031 -0.439249,-1.2454 -0.423745,-0.46509 -1.126542,-0.46509 -0.795815,0 -1.276404,0.44959 -0.475422,0.44958 -0.547768,1.26606 z" />
|
||||
<path
|
||||
id="path4232"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -6.9374138,120.03649 v 0.88883 q -0.4030748,-0.22221 -0.8113174,-0.33073 -0.4030748,-0.11369 -0.816485,-0.11369 -0.9250052,0 -1.4365998,0.58911 -0.511595,0.58394 -0.511595,1.64331 0,1.05936 0.511595,1.64847 0.5115946,0.58394 1.4365998,0.58394 0.4134102,0 0.816485,-0.10852 0.4082426,-0.11369 0.8113174,-0.33589 v 0.87849 q -0.3979072,0.18604 -0.8268202,0.27905 -0.4237454,0.093 -0.9043347,0.093 -1.3074096,0 -2.0773863,-0.82165 -0.769976,-0.82165 -0.769976,-2.21691 0,-1.41593 0.775144,-2.22725 0.7803116,-0.81132 2.1342298,-0.81132 0.4392483,0 0.857826,0.093 0.4185778,0.0879 0.8113174,0.26872 z" />
|
||||
<path
|
||||
id="path4234"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -4.3329304,118.17097 v 1.64331 h 1.9585306 v 0.73897 h -1.9585306 v 3.14192 q 0,0.70796 0.1912022,0.9095 0.1963698,0.20154 0.7906469,0.20154 h 0.9766815 v 0.79581 h -0.9766815 q -1.1007045,0 -1.5192823,-0.40824 -0.4185777,-0.41341 -0.4185777,-1.49861 v -3.14192 h -0.6976296 v -0.73897 h 0.6976296 v -1.64331 z" />
|
||||
<path
|
||||
id="path4236"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="M 3.9404424,117.88675 H 4.818939 l -2.6871659,8.69712 H 1.2532765 Z" />
|
||||
<path
|
||||
id="path4238"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -29.504439,135.92177 q -1.152381,0 -1.596796,0.26355 -0.444416,0.26355 -0.444416,0.89917 0,0.50643 0.330728,0.80615 0.335896,0.29455 0.909502,0.29455 0.790647,0 1.266069,-0.5581 0.480589,-0.56327 0.480589,-1.49344 v -0.21188 z m 1.896519,-0.39274 v 3.30212 h -0.950843 v -0.8785 q -0.325561,0.5271 -0.811317,0.78031 -0.485757,0.24805 -1.188555,0.24805 -0.888831,0 -1.415929,-0.49609 -0.521931,-0.50126 -0.521931,-1.33842 0,-0.97668 0.651121,-1.47277 0.656289,-0.4961 1.953363,-0.4961 h 1.333248 v -0.093 q 0,-0.65629 -0.434081,-1.01286 -0.428913,-0.36173 -1.209224,-0.36173 -0.496093,0 -0.966347,0.11885 -0.470254,0.11886 -0.904334,0.35657 v -0.8785 q 0.52193,-0.20153 1.012855,-0.29972 0.490924,-0.10335 0.956011,-0.10335 1.255733,0 1.875848,0.65112 0.620115,0.65112 0.620115,1.97403 z" />
|
||||
<path
|
||||
id="path4240"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -21.835681,135.8701 q 0,-1.03353 -0.428913,-1.60197 -0.423745,-0.56844 -1.193722,-0.56844 -0.764808,0 -1.193721,0.56844 -0.423746,0.56844 -0.423746,1.60197 0,1.02835 0.423746,1.59679 0.428913,0.56844 1.193721,0.56844 0.769977,0 1.193722,-0.56844 0.428913,-0.56844 0.428913,-1.59679 z m 0.950844,2.24275 q 0,1.47794 -0.656289,2.19624 -0.656289,0.72347 -2.010207,0.72347 -0.50126,0 -0.945676,-0.0775 -0.444415,-0.0724 -0.862993,-0.22737 v -0.92501 q 0.418578,0.22738 0.82682,0.3359 0.408243,0.10852 0.831988,0.10852 0.93534,0 1.400427,-0.49093 0.465086,-0.48575 0.465086,-1.47277 v -0.47026 q -0.294555,0.5116 -0.754473,0.76481 -0.459919,0.25322 -1.100705,0.25322 -1.064531,0 -1.715652,-0.81132 -0.651121,-0.81132 -0.651121,-2.14973 0,-1.34359 0.651121,-2.1549 0.651121,-0.81132 1.715652,-0.81132 0.640786,0 1.100705,0.25321 0.459918,0.25322 0.754473,0.76481 v -0.8785 h 0.950844 z" />
|
||||
<path
|
||||
id="path4242"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -13.97572,135.69957 v 0.46508 h -4.371812 q 0.06201,0.98185 0.589109,1.49861 0.532266,0.5116 1.477941,0.5116 0.547769,0 1.059364,-0.13436 0.516762,-0.13436 1.02319,-0.40307 v 0.89916 q -0.511595,0.21704 -1.049028,0.33073 -0.537434,0.11369 -1.09037,0.11369 -1.384924,0 -2.196241,-0.80615 -0.80615,-0.80615 -0.80615,-2.18074 0,-1.4211 0.764809,-2.25309 0.769976,-0.83715 2.072218,-0.83715 1.167884,0 1.844843,0.75447 0.682127,0.74931 0.682127,2.04122 z m -0.950844,-0.27906 q -0.01033,-0.78031 -0.439248,-1.24539 -0.423745,-0.46509 -1.126542,-0.46509 -0.795815,0 -1.276404,0.44958 -0.475422,0.44959 -0.547769,1.26607 z" />
|
||||
<path
|
||||
id="path4244"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -7.6040366,135.33783 v 3.49332 H -8.55488 v -3.46231 q 0,-0.82166 -0.3203928,-1.2299 -0.3203929,-0.40824 -0.9611786,-0.40824 -0.7699766,0 -1.2143926,0.49092 -0.444416,0.49093 -0.444416,1.33842 v 3.27111 h -0.956011 v -5.78775 h 0.956011 v 0.89917 q 0.341064,-0.52193 0.800983,-0.78031 0.465086,-0.25838 1.0696983,-0.25838 0.997352,0 1.508947,0.62011 0.5115951,0.61495 0.5115951,1.81384 z" />
|
||||
<path
|
||||
id="path4246"
|
||||
style="text-align:center;text-anchor:middle"
|
||||
d="m -4.7566745,131.4001 v 1.6433 h 1.9585305 v 0.73898 h -1.9585305 v 3.14191 q 0,0.70797 0.1912022,0.9095 0.1963698,0.20154 0.7906469,0.20154 h 0.9766814 v 0.79582 h -0.9766814 q -1.1007045,0 -1.5192823,-0.40825 -0.4185778,-0.41341 -0.4185778,-1.49861 v -3.14191 h -0.6976296 v -0.73898 h 0.6976296 v -1.6433 z" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
aria-label="plain noun / pronoun"
|
||||
transform="translate(5.342511,1.1060936)"
|
||||
id="text1163-1"
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.05;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1165);fill:#000000;fill-opacity:1;stroke:none">
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1360);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1358"
|
||||
transform="translate(-0.6068181,24.568453)"
|
||||
aria-label="plain noun /
|
||||
pronoun
|
||||
">
|
||||
<path
|
||||
id="path4249"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 37.724828,13.349221 v 2.455665 H 36.960016 V 9.4135428 h 0.764812 v 0.7028002 q 0.239779,-0.4134121 0.603581,-0.6118496 0.367936,-0.2025717 0.876432,-0.2025717 0.84336,0 1.368393,0.6697268 0.529167,0.6697265 0.529167,1.7611335 0,1.091407 -0.529167,1.761134 -0.525033,0.669726 -1.368393,0.669726 -0.508496,0 -0.876432,-0.198437 -0.363802,-0.202572 -0.603581,-0.615984 z m 2.587957,-1.616439 q 0,-0.839226 -0.347266,-1.314649 -0.343132,-0.4795574 -0.946713,-0.4795574 -0.603581,0 -0.950846,0.4795574 -0.343132,0.475423 -0.343132,1.314649 0,0.839226 0.343132,1.318783 0.347265,0.475423 0.950846,0.475423 0.603581,0 0.946713,-0.475423 0.347266,-0.479557 0.347266,-1.318783 z" />
|
||||
<path
|
||||
id="path4251"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 42.363306,7.6110681 h 0.760678 v 6.4326849 h -0.760678 z" />
|
||||
<path
|
||||
id="path4253"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 46.815749,11.716246 q -0.921908,0 -1.277442,0.210839 -0.355534,0.21084 -0.355534,0.719337 0,0.405143 0.264584,0.644922 0.268717,0.235644 0.727604,0.235644 0.63252,0 1.012859,-0.446484 0.384473,-0.450619 0.384473,-1.19476 v -0.169498 z m 1.517221,-0.314193 v 2.6417 h -0.760677 v -0.7028 q -0.26045,0.42168 -0.649057,0.624252 -0.388607,0.198437 -0.950846,0.198437 -0.711068,0 -1.132748,-0.396875 -0.417546,-0.401009 -0.417546,-1.070736 0,-0.781348 0.520899,-1.178223 0.525032,-0.396875 1.562696,-0.396875 h 1.066602 v -0.07441 q 0,-0.525033 -0.347266,-0.810287 -0.343132,-0.2893882 -0.967383,-0.2893882 -0.396876,0 -0.77308,0.095084 -0.376205,0.09508 -0.72347,0.285254 V 9.6243827 q 0.417545,-0.1612305 0.810286,-0.2397787 0.392741,-0.082682 0.764812,-0.082682 1.00459,0 1.500684,0.5208986 0.496094,0.5208987 0.496094,1.5792327 z" />
|
||||
<path
|
||||
id="path4255"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 49.903934,9.4135428 h 0.760678 v 4.6302102 h -0.760678 z m 0,-1.8024747 h 0.760678 v 0.9632491 h -0.760678 z" />
|
||||
<path
|
||||
id="path4257"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 56.100974,11.24909 v 2.794663 h -0.760677 v -2.769858 q 0,-0.657324 -0.256315,-0.98392 -0.256316,-0.3265947 -0.768946,-0.3265947 -0.615983,0 -0.971517,0.3927407 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 H 52.223173 V 9.4135428 h 0.764812 v 0.7193362 q 0.272851,-0.4175457 0.640788,-0.6242515 0.37207,-0.2067058 0.855762,-0.2067058 0.797884,0 1.207162,0.4960939 0.409277,0.4919594 0.409277,1.4510744 z" />
|
||||
<path
|
||||
id="path4259"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 64.17077,11.24909 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657324 -0.256315,-0.98392 -0.256315,-0.3265947 -0.768945,-0.3265947 -0.615984,0 -0.971518,0.3927407 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 H 60.292969 V 9.4135428 h 0.764811 v 0.7193362 q 0.272852,-0.4175457 0.640788,-0.6242515 0.372071,-0.2067058 0.855762,-0.2067058 0.797885,0 1.207162,0.4960939 0.409278,0.4919594 0.409278,1.4510744 z" />
|
||||
<path
|
||||
id="path4261"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 67.490464,9.9468438 q -0.611849,0 -0.967383,0.4795572 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.351399,1.310515 0.355534,0.475423 0.971518,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.4836912 -0.963249,-0.4836912 z m 0,-0.6449221 q 0.992188,0 1.558562,0.6449221 0.566373,0.6449222 0.566373,1.7859382 0,1.136882 -0.566373,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.7859382 0.566374,-0.6449221 1.562696,-0.6449221 z" />
|
||||
<path
|
||||
id="path4263"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="M 70.793624,12.216474 V 9.4135428 h 0.760677 v 2.7739922 q 0,0.657324 0.256315,0.988054 0.256316,0.326595 0.768946,0.326595 0.615983,0 0.971517,-0.392741 0.359668,-0.392741 0.359668,-1.070736 V 9.4135428 h 0.760678 v 4.6302102 h -0.760678 v -0.711068 q -0.276985,0.42168 -0.644922,0.628386 -0.363802,0.202571 -0.847493,0.202571 -0.797885,0 -1.211297,-0.496094 -0.413411,-0.496094 -0.413411,-1.451074 z M 72.70772,9.3019217 Z" />
|
||||
<path
|
||||
id="path4265"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 80.095386,11.24909 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657324 -0.256315,-0.98392 -0.256315,-0.3265947 -0.768945,-0.3265947 -0.615984,0 -0.971518,0.3927407 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 H 76.217585 V 9.4135428 h 0.764811 v 0.7193362 q 0.272852,-0.4175457 0.640788,-0.6242515 0.372071,-0.2067058 0.855762,-0.2067058 0.797885,0 1.207162,0.4960939 0.409278,0.4919594 0.409278,1.4510744 z" />
|
||||
<path
|
||||
id="path4267"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 85.668173,7.8715175 h 0.7028 l -2.14974,6.9577175 h -0.7028 z" />
|
||||
<path
|
||||
id="path4269"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 45.240651,23.932559 v 2.455665 H 44.47584 v -6.391343 h 0.764811 v 0.702799 q 0.239779,-0.413411 0.603581,-0.611849 0.367936,-0.202572 0.876433,-0.202572 0.843359,0 1.368392,0.669727 0.529167,0.669727 0.529167,1.761134 0,1.091406 -0.529167,1.761133 -0.525033,0.669727 -1.368392,0.669727 -0.508497,0 -0.876433,-0.198437 -0.363802,-0.202572 -0.603581,-0.615984 z m 2.587957,-1.616439 q 0,-0.839226 -0.347266,-1.314649 -0.343131,-0.479558 -0.946712,-0.479558 -0.603581,0 -0.950847,0.479558 -0.343132,0.475423 -0.343132,1.314649 0,0.839225 0.343132,1.318783 0.347266,0.475423 0.950847,0.475423 0.603581,0 0.946712,-0.475423 0.347266,-0.479558 0.347266,-1.318783 z" />
|
||||
<path
|
||||
id="path4271"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 52.562171,20.707949 q -0.128158,-0.07441 -0.28112,-0.107487 -0.148828,-0.03721 -0.330729,-0.03721 -0.644922,0 -0.992188,0.421679 -0.343132,0.417546 -0.343132,1.203028 v 2.439129 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.239779,-0.42168 0.624252,-0.624252 0.384473,-0.206706 0.93431,-0.206706 0.07855,0 0.173633,0.0124 0.09508,0.0083 0.21084,0.02894 z" />
|
||||
<path
|
||||
id="path4273"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 54.980629,20.530182 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644923 q 0.992188,0 1.558562,0.644923 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.562239,-0.649056 -0.562239,-1.785938 0,-1.141016 0.562239,-1.785938 0.566374,-0.644923 1.562696,-0.644923 z" />
|
||||
<path
|
||||
id="path4275"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 62.211198,21.832428 v 2.794663 h -0.760677 v -2.769858 q 0,-0.657325 -0.256316,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855763,-0.206706 0.797884,0 1.207161,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
<path
|
||||
id="path4277"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 65.530894,20.530182 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475423 -0.355534,1.306381 0,0.830957 0.351399,1.310515 0.355534,0.475423 0.971518,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644923 q 0.992188,0 1.558562,0.644923 0.566373,0.644922 0.566373,1.785938 0,1.136882 -0.566373,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785938 0.566374,-0.644923 1.562696,-0.644923 z" />
|
||||
<path
|
||||
id="path4279"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 68.834052,22.799811 v -2.80293 h 0.760677 v 2.773992 q 0,0.657324 0.256316,0.988053 0.256315,0.326596 0.768945,0.326596 0.615983,0 0.971517,-0.392742 0.359669,-0.392741 0.359669,-1.070736 v -2.625163 h 0.760677 v 4.63021 h -0.760677 v -0.711068 q -0.276986,0.42168 -0.644923,0.628385 -0.363802,0.202572 -0.847493,0.202572 -0.797885,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z" />
|
||||
<path
|
||||
id="path4281"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 78.135814,21.832428 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
</g>
|
||||
<text
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1373);fill:#000000;fill-opacity:1;stroke:none;"
|
||||
id="text1371"
|
||||
xml:space="preserve" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1379);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1377"
|
||||
transform="translate(-17.742287,16.252976)"
|
||||
aria-label="(but inflected if
|
||||
1st or 2nd pers. pronoun)">
|
||||
<path
|
||||
id="path4284"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 56.069019,36.140654 q -0.415479,0.713135 -0.617017,1.410767 -0.201538,0.697632 -0.201538,1.413867 0,0.716235 0.201538,1.420068 0.204639,0.700733 0.617017,1.410767 h -0.496094 q -0.465088,-0.728638 -0.697632,-1.432471 -0.229443,-0.703833 -0.229443,-1.398364 0,-0.691431 0.229443,-1.392163 0.229444,-0.700733 0.697632,-1.432471 z" />
|
||||
<path
|
||||
id="path4286"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 59.6719,39.225737 q 0,-0.629419 -0.260449,-0.985986 -0.257349,-0.359668 -0.710035,-0.359668 -0.452685,0 -0.713134,0.359668 -0.257349,0.356567 -0.257349,0.985986 0,0.629419 0.257349,0.989087 0.260449,0.356567 0.713134,0.356567 0.452686,0 0.710035,-0.356567 0.260449,-0.359668 0.260449,-0.989087 z m -1.940967,-1.212329 q 0.179834,-0.310058 0.452686,-0.458887 0.275952,-0.151928 0.657324,-0.151928 0.632519,0 1.026294,0.502295 0.396875,0.502295 0.396875,1.320849 0,0.818555 -0.396875,1.32085 -0.393775,0.502295 -1.026294,0.502295 -0.381372,0 -0.657324,-0.148828 -0.272852,-0.151929 -0.452686,-0.461988 v 0.520899 h -0.573608 v -4.824512 h 0.573608 z" />
|
||||
<path
|
||||
id="path4288"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 61.150879,39.588506 v -2.102198 h 0.570508 v 2.080494 q 0,0.492993 0.192236,0.74104 0.192237,0.244946 0.576709,0.244946 0.461988,0 0.728638,-0.294556 0.269751,-0.294555 0.269751,-0.803051 v -1.968873 h 0.570508 v 3.472657 h -0.570508 v -0.533301 q -0.207739,0.31626 -0.483691,0.471289 -0.272852,0.151929 -0.63562,0.151929 -0.598414,0 -0.908472,-0.372071 -0.310059,-0.37207 -0.310059,-1.088305 z m 1.435572,-2.185913 z" />
|
||||
<path
|
||||
id="path4290"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 65.804859,36.500322 v 0.985986 h 1.175122 v 0.443384 h -1.175122 v 1.885156 q 0,0.424781 0.114721,0.545704 0.117823,0.120922 0.47439,0.120922 h 0.586011 v 0.477491 H 66.39397 q -0.660425,0 -0.911572,-0.244947 -0.251148,-0.248046 -0.251148,-0.89917 v -1.885156 h -0.418579 v -0.443384 h 0.418579 v -0.985986 z" />
|
||||
<path
|
||||
id="path4292"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 69.755005,37.486308 h 0.570508 v 3.472657 h -0.570508 z m 0,-1.351855 h 0.570508 v 0.722437 h -0.570508 z" />
|
||||
<path
|
||||
id="path4294"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 74.402783,38.862969 v 2.095996 h -0.570508 v -2.077393 q 0,-0.492993 -0.192236,-0.737939 -0.192237,-0.244947 -0.576709,-0.244947 -0.461988,0 -0.728638,0.294556 -0.26665,0.294556 -0.26665,0.803052 v 1.962671 h -0.573609 v -3.472657 h 0.573609 v 0.539502 q 0.204638,-0.313159 0.48059,-0.468188 0.279053,-0.155029 0.641822,-0.155029 0.598413,0 0.905371,0.37207 0.306958,0.36897 0.306958,1.088306 z" />
|
||||
<path
|
||||
id="path4296"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 76.765429,36.134453 h 1.5875 v 4.824512 h -0.573608 v -4.350122 h -1.020093 q -0.306958,0 -0.427881,0.124023 -0.117822,0.124024 -0.117822,0.446484 v 0.306958 h 0.939477 v 0.443384 h -0.939477 v 3.029273 h -0.573608 v -3.029273 h -0.545704 v -0.443384 h 0.545704 v -0.241845 q 0,-0.57981 0.269751,-0.84336 0.269751,-0.26665 0.855761,-0.26665 z" />
|
||||
<path
|
||||
id="path4298"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 82.523219,39.08001 v 0.279052 h -2.623096 q 0.03721,0.589112 0.353467,0.89917 0.31936,0.306958 0.886768,0.306958 0.328662,0 0.63562,-0.08062 0.310058,-0.08062 0.613916,-0.241846 v 0.539502 q -0.306958,0.130225 -0.629419,0.198438 -0.322461,0.06821 -0.654224,0.06821 -0.830957,0 -1.317749,-0.483692 -0.483691,-0.483691 -0.483691,-1.308447 0,-0.852661 0.458886,-1.351855 0.461988,-0.502295 1.243335,-0.502295 0.700733,0 1.10691,0.452685 0.409277,0.449585 0.409277,1.224732 z m -0.570508,-0.167432 q -0.0062,-0.468188 -0.26355,-0.747241 -0.254248,-0.279053 -0.675927,-0.279053 -0.477491,0 -0.765845,0.269751 -0.285254,0.269751 -0.328662,0.759644 z" />
|
||||
<path
|
||||
id="path4300"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 85.958668,37.619634 v 0.5333 q -0.241846,-0.133325 -0.486792,-0.198437 -0.241846,-0.06821 -0.489892,-0.06821 -0.555005,0 -0.861963,0.353467 -0.306958,0.350366 -0.306958,0.985986 0,0.63562 0.306958,0.989087 0.306958,0.350366 0.861963,0.350366 0.248046,0 0.489892,-0.06511 0.244946,-0.06821 0.486792,-0.201538 v 0.527099 q -0.238745,0.111622 -0.496094,0.167432 -0.254248,0.05581 -0.542602,0.05581 -0.784448,0 -1.246436,-0.492993 -0.461987,-0.492994 -0.461987,-1.330152 0,-0.84956 0.465088,-1.336352 0.468188,-0.486792 1.280542,-0.486792 0.26355,0 0.514697,0.05581 0.251148,0.05271 0.486792,0.161231 z" />
|
||||
<path
|
||||
id="path4302"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 87.521362,36.500322 v 0.985986 h 1.175122 v 0.443384 h -1.175122 v 1.885156 q 0,0.424781 0.114722,0.545704 0.117822,0.120922 0.474389,0.120922 h 0.586011 v 0.477491 h -0.586011 q -0.660425,0 -0.911572,-0.244947 -0.251147,-0.248046 -0.251147,-0.89917 v -1.885156 h -0.41858 v -0.443384 h 0.41858 v -0.985986 z" />
|
||||
<path
|
||||
id="path4304"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 92.420287,39.08001 v 0.279052 h -2.623096 q 0.03721,0.589112 0.353467,0.89917 0.31936,0.306958 0.886768,0.306958 0.328662,0 0.63562,-0.08062 0.310058,-0.08062 0.613916,-0.241846 v 0.539502 q -0.306958,0.130225 -0.629419,0.198438 -0.322461,0.06821 -0.654224,0.06821 -0.830957,0 -1.317749,-0.483692 -0.483691,-0.483691 -0.483691,-1.308447 0,-0.852661 0.458886,-1.351855 0.461988,-0.502295 1.243335,-0.502295 0.700733,0 1.10691,0.452685 0.409277,0.449585 0.409277,1.224732 z m -0.570508,-0.167432 q -0.0062,-0.468188 -0.26355,-0.747241 -0.254248,-0.279053 -0.675927,-0.279053 -0.477491,0 -0.765845,0.269751 -0.285254,0.269751 -0.328662,0.759644 z" />
|
||||
<path
|
||||
id="path4306"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 95.641796,38.013408 v -1.878955 h 0.570507 v 4.824512 h -0.570507 v -0.520899 q -0.179834,0.310059 -0.455786,0.461988 -0.272852,0.148828 -0.657325,0.148828 -0.629419,0 -1.026294,-0.502295 -0.393774,-0.502295 -0.393774,-1.32085 0,-0.818554 0.393774,-1.320849 0.396875,-0.502295 1.026294,-0.502295 0.384473,0 0.657325,0.151928 0.275952,0.148829 0.455786,0.458887 z m -1.944068,1.212329 q 0,0.629419 0.257349,0.989087 0.260449,0.356567 0.713135,0.356567 0.452685,0 0.713134,-0.356567 0.26045,-0.359668 0.26045,-0.989087 0,-0.629419 -0.26045,-0.985986 -0.260449,-0.359668 -0.713134,-0.359668 -0.452686,0 -0.713135,0.359668 -0.257349,0.356567 -0.257349,0.985986 z" />
|
||||
<path
|
||||
id="path4308"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 99.409009,37.486308 h 0.570508 v 3.472657 h -0.570508 z m 0,-1.351855 h 0.570508 v 0.722437 h -0.570508 z" />
|
||||
<path
|
||||
id="path4310"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 102.92817,36.134453 v 0.47439 h -0.5457 q -0.30696,0 -0.42788,0.124023 -0.11782,0.124024 -0.11782,0.446484 v 0.306958 h 0.93947 v 0.443384 h -0.93947 v 3.029273 h -0.57361 v -3.029273 h -0.54571 v -0.443384 h 0.54571 v -0.241845 q 0,-0.57981 0.26975,-0.84336 0.26975,-0.26665 0.85576,-0.26665 z" />
|
||||
<path
|
||||
id="path4312"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 54.038135,47.734363 h 1.023193 v -3.531567 l -1.11311,0.223242 V 43.85553 l 1.106909,-0.223242 h 0.626319 v 4.102075 h 1.023193 v 0.5271 h -2.666504 z" />
|
||||
<path
|
||||
id="path4314"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 60.105981,44.891126 v 0.539502 q -0.241845,-0.124024 -0.502294,-0.186036 -0.26045,-0.06201 -0.539502,-0.06201 -0.424781,0 -0.638721,0.130224 -0.21084,0.130225 -0.21084,0.390674 0,0.198438 0.151929,0.313159 0.151929,0.111621 0.610815,0.213941 l 0.195337,0.04341 q 0.607715,0.130225 0.861963,0.36897 0.257349,0.235644 0.257349,0.660425 0,0.483691 -0.384473,0.765844 -0.381372,0.282154 -1.051099,0.282154 -0.279052,0 -0.58291,-0.05581 -0.300757,-0.05271 -0.63562,-0.16123 v -0.589112 q 0.31626,0.164331 0.623218,0.248047 0.306958,0.08062 0.607715,0.08062 0.403076,0 0.620117,-0.136425 0.217041,-0.139527 0.217041,-0.390674 0,-0.232544 -0.15813,-0.356568 -0.155029,-0.124023 -0.685229,-0.238745 l -0.198438,-0.04651 q -0.5302,-0.111621 -0.765845,-0.341064 -0.235644,-0.232544 -0.235644,-0.63562 0,-0.489893 0.347265,-0.756543 0.347266,-0.26665 0.985987,-0.26665 0.31626,0 0.595312,0.04651 0.279053,0.04651 0.514697,0.139527 z" />
|
||||
<path
|
||||
id="path4316"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 61.767895,43.80282 v 0.985986 h 1.175123 v 0.443384 h -1.175123 v 1.885156 q 0,0.424781 0.114722,0.545703 0.117822,0.120923 0.47439,0.120923 h 0.586011 v 0.477491 h -0.586011 q -0.660425,0 -0.911572,-0.244947 -0.251148,-0.248047 -0.251148,-0.89917 V 45.23219 h -0.418579 v -0.443384 h 0.418579 V 43.80282 Z" />
|
||||
<path
|
||||
id="path4318"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 67.063696,45.188782 q -0.458887,0 -0.725537,0.359668 -0.26665,0.356567 -0.26665,0.979785 0,0.623218 0.263549,0.982886 0.266651,0.356567 0.728638,0.356567 0.455786,0 0.722437,-0.359668 0.26665,-0.359668 0.26665,-0.979785 0,-0.617017 -0.26665,-0.976685 -0.266651,-0.362768 -0.722437,-0.362768 z m 0,-0.483691 q 0.744141,0 1.168921,0.483691 0.42478,0.483691 0.42478,1.339453 0,0.852661 -0.42478,1.339453 -0.42478,0.483692 -1.168921,0.483692 -0.747241,0 -1.172021,-0.483692 -0.42168,-0.486792 -0.42168,-1.339453 0,-0.855762 0.42168,-1.339453 0.42478,-0.483691 1.172021,-0.483691 z" />
|
||||
<path
|
||||
id="path4320"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 71.612255,45.322107 q -0.09612,-0.05581 -0.21084,-0.08062 -0.111621,-0.02791 -0.248046,-0.02791 -0.483692,0 -0.744141,0.316259 -0.257349,0.31316 -0.257349,0.902271 v 1.829346 h -0.573608 v -3.472657 h 0.573608 v 0.539502 q 0.179834,-0.316259 0.468189,-0.468188 0.288354,-0.155029 0.700732,-0.155029 0.05891,0 0.130225,0.0093 0.07131,0.0062 0.15813,0.0217 z" />
|
||||
<path
|
||||
id="path4322"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 74.858569,47.734363 h 2.185913 v 0.5271 h -2.939356 v -0.5271 q 0.356568,-0.36897 0.970484,-0.989087 0.617016,-0.623218 0.775146,-0.803052 0.300757,-0.337964 0.418579,-0.570507 0.120923,-0.235645 0.120923,-0.461988 0,-0.36897 -0.260449,-0.601513 -0.257349,-0.232544 -0.672827,-0.232544 -0.294556,0 -0.623218,0.102319 -0.325562,0.102319 -0.697632,0.310059 v -0.63252 q 0.378272,-0.151929 0.706934,-0.229443 0.328662,-0.07751 0.601513,-0.07751 0.719336,0 1.147217,0.359668 0.427881,0.359668 0.427881,0.961182 0,0.285253 -0.108521,0.542602 -0.10542,0.254248 -0.387573,0.601514 -0.07751,0.08992 -0.492993,0.520898 -0.415478,0.427881 -1.172021,1.199927 z" />
|
||||
<path
|
||||
id="path4324"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 81.16826,46.165466 v 2.095997 H 80.597752 V 46.18407 q 0,-0.492993 -0.192236,-0.737939 -0.192236,-0.244947 -0.576709,-0.244947 -0.461987,0 -0.728638,0.294556 -0.26665,0.294556 -0.26665,0.803052 v 1.962671 h -0.573608 v -3.472657 h 0.573608 v 0.539502 q 0.204639,-0.313159 0.480591,-0.468188 0.279053,-0.155029 0.641821,-0.155029 0.598413,0 0.905371,0.37207 0.306958,0.36897 0.306958,1.088305 z" />
|
||||
<path
|
||||
id="path4326"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 84.597508,45.315906 v -1.878955 h 0.570508 v 4.824512 h -0.570508 v -0.520899 q -0.179834,0.310059 -0.455786,0.461987 -0.272851,0.148829 -0.657324,0.148829 -0.629419,0 -1.026294,-0.502295 -0.393774,-0.502295 -0.393774,-1.32085 0,-0.818555 0.393774,-1.32085 0.396875,-0.502294 1.026294,-0.502294 0.384473,0 0.657324,0.151928 0.275952,0.148828 0.455786,0.458887 z m -1.944067,1.212329 q 0,0.629419 0.257348,0.989087 0.26045,0.356567 0.713135,0.356567 0.452686,0 0.713135,-0.356567 0.260449,-0.359668 0.260449,-0.989087 0,-0.629419 -0.260449,-0.985986 -0.260449,-0.359668 -0.713135,-0.359668 -0.452685,0 -0.713135,0.359668 -0.257348,0.356567 -0.257348,0.985986 z" />
|
||||
<path
|
||||
id="path4328"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 88.916624,47.740564 v 1.841748 h -0.573608 v -4.793506 h 0.573608 v 0.5271 q 0.179834,-0.310059 0.452686,-0.458887 0.275952,-0.151928 0.657324,-0.151928 0.632519,0 1.026294,0.502294 0.396875,0.502295 0.396875,1.32085 0,0.818555 -0.396875,1.32085 -0.393775,0.502295 -1.026294,0.502295 -0.381372,0 -0.657324,-0.148829 -0.272852,-0.151928 -0.452686,-0.461987 z m 1.940967,-1.212329 q 0,-0.629419 -0.260449,-0.985986 -0.257349,-0.359668 -0.710035,-0.359668 -0.452685,0 -0.713134,0.359668 -0.257349,0.356567 -0.257349,0.985986 0,0.629419 0.257349,0.989087 0.260449,0.356567 0.713134,0.356567 0.452686,0 0.710035,-0.356567 0.260449,-0.359668 0.260449,-0.989087 z" />
|
||||
<path
|
||||
id="path4330"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 95.365843,46.382508 v 0.279052 h -2.623096 q 0.03721,0.589112 0.353467,0.89917 0.31936,0.306958 0.886767,0.306958 0.328663,0 0.635621,-0.08062 0.310058,-0.08062 0.613916,-0.241846 v 0.539502 q -0.306958,0.130225 -0.629419,0.198438 -0.322461,0.06821 -0.654224,0.06821 -0.830957,0 -1.317749,-0.483692 -0.483691,-0.483691 -0.483691,-1.308447 0,-0.852661 0.458886,-1.351856 0.461988,-0.502294 1.243335,-0.502294 0.700733,0 1.106909,0.452685 0.409278,0.449585 0.409278,1.224732 z m -0.570508,-0.167432 q -0.0062,-0.468189 -0.26355,-0.747241 -0.254248,-0.279053 -0.675928,-0.279053 -0.47749,0 -0.765844,0.269751 -0.285254,0.269751 -0.328662,0.759643 z" />
|
||||
<path
|
||||
id="path4332"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 98.3145,45.322107 q -0.09612,-0.05581 -0.21084,-0.08062 -0.111621,-0.02791 -0.248047,-0.02791 -0.483691,0 -0.74414,0.316259 -0.257349,0.31316 -0.257349,0.902271 v 1.829346 h -0.573608 v -3.472657 h 0.573608 v 0.539502 q 0.179834,-0.316259 0.468189,-0.468188 0.288354,-0.155029 0.700732,-0.155029 0.05891,0 0.130225,0.0093 0.07131,0.0062 0.158129,0.0217 z" />
|
||||
<path
|
||||
id="path4334"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 101.13293,44.891126 v 0.539502 q -0.24184,-0.124024 -0.50229,-0.186036 -0.26045,-0.06201 -0.53951,-0.06201 -0.424775,0 -0.638716,0.130224 -0.21084,0.130225 -0.21084,0.390674 0,0.198438 0.151929,0.313159 0.151929,0.111621 0.610817,0.213941 l 0.19534,0.04341 q 0.60771,0.130225 0.86196,0.36897 0.25735,0.235644 0.25735,0.660425 0,0.483691 -0.38448,0.765844 -0.38137,0.282154 -1.051094,0.282154 -0.279053,0 -0.58291,-0.05581 -0.300757,-0.05271 -0.635621,-0.16123 v -0.589112 q 0.31626,0.164331 0.623218,0.248047 0.306958,0.08062 0.607715,0.08062 0.403072,0 0.620122,-0.136425 0.21704,-0.139527 0.21704,-0.390674 0,-0.232544 -0.15813,-0.356568 -0.15503,-0.124023 -0.685233,-0.238745 l -0.198438,-0.04651 q -0.5302,-0.111621 -0.765844,-0.341064 -0.235645,-0.232544 -0.235645,-0.63562 0,-0.489893 0.347266,-0.756543 0.347265,-0.26665 0.985984,-0.26665 0.31626,0 0.59531,0.04651 0.27906,0.04651 0.5147,0.139527 z" />
|
||||
<path
|
||||
id="path4336"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 102.31116,47.473914 h 0.65422 v 0.787549 h -0.65422 z" />
|
||||
<path
|
||||
id="path4338"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 65.17854,55.043062 v 1.841748 h -0.573608 v -4.793506 h 0.573608 v 0.5271 q 0.179834,-0.310059 0.452686,-0.458887 0.275952,-0.151929 0.657324,-0.151929 0.63252,0 1.026294,0.502295 0.396875,0.502295 0.396875,1.32085 0,0.818555 -0.396875,1.320849 -0.393774,0.502295 -1.026294,0.502295 -0.381372,0 -0.657324,-0.148828 -0.272852,-0.151928 -0.452686,-0.461987 z m 1.940967,-1.212329 q 0,-0.629419 -0.260449,-0.985986 -0.257349,-0.359668 -0.710034,-0.359668 -0.452686,0 -0.713135,0.359668 -0.257349,0.356567 -0.257349,0.985986 0,0.629419 0.257349,0.989087 0.260449,0.356567 0.713135,0.356567 0.452685,0 0.710034,-0.356567 0.260449,-0.359668 0.260449,-0.989087 z" />
|
||||
<path
|
||||
id="path4340"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 70.669678,52.624605 q -0.09612,-0.05581 -0.21084,-0.08062 -0.111621,-0.02791 -0.248047,-0.02791 -0.483691,0 -0.74414,0.31626 -0.257349,0.313159 -0.257349,0.902271 v 1.829345 h -0.573608 v -3.472656 h 0.573608 v 0.539502 q 0.179834,-0.31626 0.468188,-0.468188 0.288355,-0.15503 0.700733,-0.15503 0.05891,0 0.130224,0.0093 0.07131,0.0062 0.15813,0.0217 z" />
|
||||
<path
|
||||
id="path4342"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 72.483521,52.49128 q -0.458887,0 -0.725537,0.359668 -0.266651,0.356567 -0.266651,0.979785 0,0.623218 0.26355,0.982886 0.26665,0.356567 0.728638,0.356567 0.455786,0 0.722436,-0.359668 0.266651,-0.359668 0.266651,-0.979785 0,-0.617017 -0.266651,-0.976685 -0.26665,-0.362768 -0.722436,-0.362768 z m 0,-0.483692 q 0.74414,0 1.168921,0.483692 0.42478,0.483691 0.42478,1.339453 0,0.852661 -0.42478,1.339453 -0.424781,0.483691 -1.168921,0.483691 -0.747242,0 -1.172022,-0.483691 -0.421679,-0.486792 -0.421679,-1.339453 0,-0.855762 0.421679,-1.339453 0.42478,-0.483692 1.172022,-0.483692 z" />
|
||||
<path
|
||||
id="path4344"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 77.906445,53.467964 v 2.095996 h -0.570508 v -2.077392 q 0,-0.492993 -0.192236,-0.73794 -0.192236,-0.244946 -0.576709,-0.244946 -0.461987,0 -0.728638,0.294556 -0.26665,0.294555 -0.26665,0.803052 v 1.96267 h -0.573608 v -3.472656 h 0.573608 v 0.539502 q 0.204639,-0.313159 0.480591,-0.468188 0.279052,-0.15503 0.641821,-0.15503 0.598413,0 0.905371,0.372071 0.306958,0.368969 0.306958,1.088305 z" />
|
||||
<path
|
||||
id="path4346"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 80.396216,52.49128 q -0.458887,0 -0.725537,0.359668 -0.266651,0.356567 -0.266651,0.979785 0,0.623218 0.26355,0.982886 0.26665,0.356567 0.728638,0.356567 0.455786,0 0.722436,-0.359668 0.266651,-0.359668 0.266651,-0.979785 0,-0.617017 -0.266651,-0.976685 -0.26665,-0.362768 -0.722436,-0.362768 z m 0,-0.483692 q 0.74414,0 1.168921,0.483692 0.42478,0.483691 0.42478,1.339453 0,0.852661 -0.42478,1.339453 -0.424781,0.483691 -1.168921,0.483691 -0.747242,0 -1.172022,-0.483691 -0.42168,-0.486792 -0.42168,-1.339453 0,-0.855762 0.42168,-1.339453 0.42478,-0.483692 1.172022,-0.483692 z" />
|
||||
<path
|
||||
id="path4348"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 82.873583,54.193501 v -2.102197 h 0.570508 v 2.080493 q 0,0.492994 0.192237,0.74104 0.192236,0.244947 0.576709,0.244947 0.461987,0 0.728637,-0.294556 0.269751,-0.294556 0.269751,-0.803052 v -1.968872 h 0.570508 v 3.472656 h -0.570508 v -0.5333 q -0.207739,0.316259 -0.483691,0.471289 -0.272852,0.151928 -0.63562,0.151928 -0.598413,0 -0.908472,-0.37207 -0.310059,-0.37207 -0.310059,-1.088306 z m 1.435572,-2.185913 z" />
|
||||
<path
|
||||
id="path4350"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 89.849902,53.467964 v 2.095996 h -0.570508 v -2.077392 q 0,-0.492993 -0.192236,-0.73794 -0.192237,-0.244946 -0.576709,-0.244946 -0.461988,0 -0.728638,0.294556 -0.26665,0.294555 -0.26665,0.803052 v 1.96267 h -0.573609 v -3.472656 h 0.573609 v 0.539502 q 0.204638,-0.313159 0.48059,-0.468188 0.279053,-0.15503 0.641822,-0.15503 0.598413,0 0.905371,0.372071 0.306958,0.368969 0.306958,1.088305 z" />
|
||||
<path
|
||||
id="path4352"
|
||||
style="font-size:6.35px;line-height:1.15;text-align:center;text-anchor:middle"
|
||||
d="m 90.904101,50.74565 h 0.496094 q 0.465088,0.731738 0.694531,1.432471 0.232544,0.700732 0.232544,1.392163 0,0.694531 -0.232544,1.398364 -0.229443,0.703833 -0.694531,1.432471 h -0.496094 q 0.412378,-0.710035 0.613916,-1.410767 0.204639,-0.703833 0.204639,-1.420068 0,-0.716236 -0.204639,-1.413867 -0.201538,-0.697632 -0.613916,-1.410767 z" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:8.46667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1385);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1383"
|
||||
transform="translate(17.164648,116.82151)"
|
||||
aria-label="or">
|
||||
<path
|
||||
id="path4355"
|
||||
style="shape-inside:url(#rect1385)"
|
||||
d="m 41.924122,-39.945734 q -0.611849,0 -0.967383,0.479557 -0.355534,0.475424 -0.355534,1.306381 0,0.830957 0.3514,1.310515 0.355534,0.475423 0.971517,0.475423 0.607715,0 0.963249,-0.479557 0.355534,-0.479558 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302247 -0.355534,-0.483691 -0.963249,-0.483691 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785938 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649056 -0.56224,-1.785938 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path4357"
|
||||
style="shape-inside:url(#rect1385)"
|
||||
d="m 47.98887,-39.767967 q -0.128157,-0.07441 -0.281119,-0.107487 -0.148829,-0.03721 -0.33073,-0.03721 -0.644922,0 -0.992188,0.421679 -0.343131,0.417546 -0.343131,1.203028 v 2.439129 H 45.27689 v -4.63021 h 0.764812 v 0.719336 q 0.239778,-0.42168 0.624251,-0.624252 0.384473,-0.206705 0.934311,-0.206705 0.07855,0 0.173632,0.0124 0.09508,0.0083 0.21084,0.02894 z" />
|
||||
</g>
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:0.85;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1391);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1389"
|
||||
transform="translate(29.419485,154.59226)"
|
||||
aria-label="enclitic (mini)
|
||||
pronoun">
|
||||
<path
|
||||
id="path4360"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 7.5745021,-65.810929 v 0.372071 H 4.0770398 q 0.049609,0.785482 0.4712892,1.198893 0.425814,0.409278 1.1823573,0.409278 0.4382163,0 0.8474938,-0.107487 0.4134116,-0.107487 0.818555,-0.322461 v 0.719336 q -0.4092775,0.173633 -0.8392256,0.264583 -0.4299481,0.09095 -0.8722985,0.09095 -1.1079432,0 -1.7569994,-0.644922 -0.6449222,-0.644922 -0.6449222,-1.744597 0,-1.136882 0.6118492,-1.802475 0.6159834,-0.669727 1.6577807,-0.669727 0.9343102,0 1.4758794,0.603581 0.5457034,0.599447 0.5457034,1.632976 z m -0.7606774,-0.223242 q -0.00827,-0.624252 -0.3513999,-0.996322 -0.3389975,-0.372071 -0.9012373,-0.372071 -0.6366539,0 -1.0211267,0.359668 -0.3803387,0.359669 -0.4382163,1.012859 z" />
|
||||
<path
|
||||
id="path4362"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 12.671867,-66.100317 v 2.794663 H 11.91119 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.9715173,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 H 8.7940662 v -4.630211 h 0.7648115 v 0.719337 q 0.2728517,-0.417546 0.6407883,-0.624252 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z" />
|
||||
<path
|
||||
id="path4364"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 17.529454,-67.758098 v 0.711068 q -0.322461,-0.177767 -0.649056,-0.264583 -0.322461,-0.09095 -0.65319,-0.09095 -0.740007,0 -1.149285,0.47129 -0.409277,0.467155 -0.409277,1.314649 0,0.847493 0.409277,1.318783 0.409278,0.467155 1.149285,0.467155 0.330729,0 0.65319,-0.08682 0.326595,-0.09095 0.649056,-0.268717 v 0.7028 q -0.318327,0.148828 -0.661458,0.223242 -0.338998,0.07441 -0.723471,0.07441 -1.045931,0 -1.661914,-0.657325 -0.615984,-0.657324 -0.615984,-1.773535 0,-1.132748 0.620118,-1.781805 0.624251,-0.649056 1.70739,-0.649056 0.3514,0 0.686263,0.07441 0.334863,0.07028 0.649056,0.214974 z" />
|
||||
<path
|
||||
id="path4366"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 18.860639,-69.738339 h 0.760677 v 6.432685 h -0.760677 z" />
|
||||
<path
|
||||
id="path4368"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 21.208818,-67.935865 h 0.760677 v 4.630211 h -0.760677 z m 0,-1.802474 h 0.760677 v 0.963249 h -0.760677 z" />
|
||||
<path
|
||||
id="path4370"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 24.309404,-69.250514 v 1.314649 h 1.56683 v 0.591179 h -1.56683 v 2.513543 q 0,0.566374 0.152962,0.727604 0.157097,0.161231 0.63252,0.161231 h 0.781348 v 0.636654 h -0.781348 q -0.880567,0 -1.21543,-0.326596 -0.334864,-0.330729 -0.334864,-1.198893 v -2.513543 h -0.558105 v -0.591179 h 0.558105 v -1.314649 z" />
|
||||
<path
|
||||
id="path4372"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 26.880824,-67.935865 h 0.760678 v 4.630211 h -0.760678 z m 0,-1.802474 h 0.760678 v 0.963249 h -0.760678 z" />
|
||||
<path
|
||||
id="path4374"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 32.561099,-67.758098 v 0.711068 q -0.322461,-0.177767 -0.649056,-0.264583 -0.322461,-0.09095 -0.653191,-0.09095 -0.740006,0 -1.149284,0.47129 -0.409277,0.467155 -0.409277,1.314649 0,0.847493 0.409277,1.318783 0.409278,0.467155 1.149284,0.467155 0.33073,0 0.653191,-0.08682 0.326595,-0.09095 0.649056,-0.268717 v 0.7028 q -0.318327,0.148828 -0.661459,0.223242 -0.338997,0.07441 -0.72347,0.07441 -1.045931,0 -1.661915,-0.657325 -0.615983,-0.657324 -0.615983,-1.773535 0,-1.132748 0.620117,-1.781805 0.624252,-0.649056 1.70739,-0.649056 0.3514,0 0.686264,0.07441 0.334863,0.07028 0.649056,0.214974 z" />
|
||||
<path
|
||||
id="path4376"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 38.415007,-69.730071 q -0.553971,0.950847 -0.822689,1.881023 -0.268717,0.930176 -0.268717,1.885157 0,0.954981 0.268717,1.893425 0.272852,0.93431 0.822689,1.881023 h -0.661458 q -0.620118,-0.971517 -0.930177,-1.909962 -0.305924,-0.938444 -0.305924,-1.864486 0,-0.921908 0.305924,-1.856218 0.305925,-0.934311 0.930177,-1.909962 z" />
|
||||
<path
|
||||
id="path4378"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 43.49997,-67.04703 q 0.285254,-0.51263 0.682129,-0.756543 0.396875,-0.243913 0.934311,-0.243913 0.72347,0 1.116211,0.508497 0.392741,0.504362 0.392741,1.438672 v 2.794663 h -0.764811 v -2.769858 q 0,-0.665593 -0.235645,-0.988054 -0.235645,-0.322461 -0.719336,-0.322461 -0.591179,0 -0.934311,0.392741 -0.343131,0.392741 -0.343131,1.070736 v 2.616896 h -0.764812 v -2.769858 q 0,-0.669727 -0.235644,-0.988054 -0.235645,-0.322461 -0.727605,-0.322461 -0.58291,0 -0.926042,0.396875 -0.343132,0.392741 -0.343132,1.066602 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.26045,-0.425814 0.624252,-0.628386 0.363802,-0.202572 0.86403,-0.202572 0.504362,0 0.855762,0.256315 0.355534,0.256316 0.525033,0.744141 z" />
|
||||
<path
|
||||
id="path4380"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 48.146718,-67.935865 h 0.760678 v 4.630211 h -0.760678 z m 0,-1.802474 h 0.760678 v 0.963249 h -0.760678 z" />
|
||||
<path
|
||||
id="path4382"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 54.343756,-66.100317 v 2.794663 h -0.760678 v -2.769858 q 0,-0.657325 -0.256315,-0.98392 -0.256315,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616896 h -0.764811 v -4.630211 h 0.764811 v 0.719337 q 0.272852,-0.417546 0.640788,-0.624252 0.372071,-0.206706 0.855762,-0.206706 0.797885,0 1.207162,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
<path
|
||||
id="path4384"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 55.869245,-67.935865 h 0.760677 v 4.630211 h -0.760677 z m 0,-1.802474 h 0.760677 v 0.963249 h -0.760677 z" />
|
||||
<path
|
||||
id="path4386"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 58.097534,-69.730071 h 0.661459 q 0.620117,0.975651 0.926042,1.909962 0.310059,0.93431 0.310059,1.856218 0,0.926042 -0.310059,1.864486 -0.305925,0.938445 -0.926042,1.909962 h -0.661459 q 0.549838,-0.946713 0.818555,-1.881023 0.272852,-0.938444 0.272852,-1.893425 0,-0.954981 -0.272852,-1.885157 -0.268717,-0.930176 -0.818555,-1.881023 z" />
|
||||
<path
|
||||
id="path4388"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 15.726979,-55.004382 v 2.455665 h -0.764811 v -6.391344 h 0.764811 v 0.7028 q 0.239779,-0.413412 0.603581,-0.611849 0.367937,-0.202572 0.876433,-0.202572 0.84336,0 1.368392,0.669727 0.529167,0.669727 0.529167,1.761133 0,1.091407 -0.529167,1.761134 -0.525032,0.669727 -1.368392,0.669727 -0.508496,0 -0.876433,-0.198438 -0.363802,-0.202572 -0.603581,-0.615983 z m 2.587957,-1.61644 q 0,-0.839225 -0.347266,-1.314649 -0.343131,-0.479557 -0.946712,-0.479557 -0.603581,0 -0.950847,0.479557 -0.343132,0.475424 -0.343132,1.314649 0,0.839226 0.343132,1.318783 0.347266,0.475424 0.950847,0.475424 0.603581,0 0.946712,-0.475424 0.347266,-0.479557 0.347266,-1.318783 z" />
|
||||
<path
|
||||
id="path4390"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 23.048499,-58.228993 q -0.128158,-0.07441 -0.28112,-0.107487 -0.148828,-0.03721 -0.330729,-0.03721 -0.644922,0 -0.992188,0.42168 -0.343132,0.417546 -0.343132,1.203028 v 2.439128 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.239779,-0.421679 0.624252,-0.624251 0.384473,-0.206706 0.93431,-0.206706 0.07855,0 0.173633,0.0124 0.09508,0.0083 0.21084,0.02894 z" />
|
||||
<path
|
||||
id="path4392"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 25.466957,-58.40676 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.30638 0,0.830958 0.3514,1.310515 0.355534,0.475424 0.971517,0.475424 0.607716,0 0.96325,-0.479558 0.355534,-0.479557 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302246 -0.355534,-0.483692 -0.96325,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785939 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562695,-0.644922 -0.56224,-0.649057 -0.56224,-1.785939 0,-1.141016 0.56224,-1.785938 0.566373,-0.644922 1.562695,-0.644922 z" />
|
||||
<path
|
||||
id="path4394"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 32.697526,-57.104513 v 2.794662 h -0.760677 v -2.769857 q 0,-0.657325 -0.256315,-0.98392 -0.256316,-0.326595 -0.768946,-0.326595 -0.615983,0 -0.971517,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764812 v -4.63021 h 0.764812 v 0.719336 q 0.272851,-0.417545 0.640788,-0.624251 0.37207,-0.206706 0.855762,-0.206706 0.797884,0 1.207162,0.496094 0.409277,0.49196 0.409277,1.451075 z" />
|
||||
<path
|
||||
id="path4396"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 36.017222,-58.40676 q -0.611849,0 -0.967383,0.479558 -0.355534,0.475423 -0.355534,1.30638 0,0.830958 0.3514,1.310515 0.355534,0.475424 0.971517,0.475424 0.607715,0 0.963249,-0.479558 0.355534,-0.479557 0.355534,-1.306381 0,-0.822689 -0.355534,-1.302246 -0.355534,-0.483692 -0.963249,-0.483692 z m 0,-0.644922 q 0.992188,0 1.558562,0.644922 0.566374,0.644922 0.566374,1.785938 0,1.136882 -0.566374,1.785939 -0.566374,0.644922 -1.558562,0.644922 -0.996322,0 -1.562696,-0.644922 -0.56224,-0.649057 -0.56224,-1.785939 0,-1.141016 0.56224,-1.785938 0.566374,-0.644922 1.562696,-0.644922 z" />
|
||||
<path
|
||||
id="path4398"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 39.32038,-56.13713 v -2.802931 h 0.760677 v 2.773992 q 0,0.657325 0.256316,0.988054 0.256315,0.326595 0.768945,0.326595 0.615984,0 0.971518,-0.392741 0.359668,-0.392741 0.359668,-1.070736 v -2.625164 h 0.760677 v 4.63021 h -0.760677 v -0.711068 q -0.276986,0.42168 -0.644922,0.628386 -0.363803,0.202572 -0.847494,0.202572 -0.797885,0 -1.211296,-0.496094 -0.413412,-0.496094 -0.413412,-1.451075 z m 1.914096,-2.914552 z" />
|
||||
<path
|
||||
id="path4400"
|
||||
style="font-size:8.46667px;text-align:center;text-anchor:middle"
|
||||
d="m 48.622142,-57.104513 v 2.794662 h -0.760677 v -2.769857 q 0,-0.657325 -0.256316,-0.98392 -0.256315,-0.326595 -0.768945,-0.326595 -0.615984,0 -0.971518,0.392741 -0.355534,0.392741 -0.355534,1.070736 v 2.616895 h -0.764811 v -4.63021 h 0.764811 v 0.719336 q 0.272852,-0.417545 0.640788,-0.624251 0.372071,-0.206706 0.855763,-0.206706 0.797884,0 1.207161,0.496094 0.409278,0.49196 0.409278,1.451075 z" />
|
||||
</g>
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path1161"
|
||||
d="m -25.930477,134.12776 v 6.94901 H 135.76759 v -18.4416"
|
||||
style="fill:none;stroke:#4d4d4d;stroke-width:0.865;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.46, 1.73;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g1344">
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
id="path1169-1"
|
||||
d="m 36.883574,98.715892 9.342265,9.289858 h 40.102596 l 9.589405,-9.589418"
|
||||
style="fill:none;stroke:#000000;stroke-width:0.964999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<g
|
||||
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#rect1354);fill:#000000;fill-opacity:1;stroke:none"
|
||||
id="text1352"
|
||||
transform="translate(13.985119,-5.2916667)"
|
||||
aria-label="object">
|
||||
<path
|
||||
id="path4403"
|
||||
d="m 39.076039,122.71137 q -0.764808,0 -1.209224,0.59945 -0.444416,0.59427 -0.444416,1.63297 0,1.03869 0.439248,1.63813 0.444416,0.59428 1.214392,0.59428 0.759642,0 1.204058,-0.59944 0.444415,-0.59945 0.444415,-1.63297 0,-1.02836 -0.444415,-1.62781 -0.444416,-0.60461 -1.204058,-0.60461 z m 0,-0.80615 q 1.240231,0 1.948196,0.80615 0.707965,0.80615 0.707965,2.23242 0,1.42109 -0.707965,2.23241 -0.707965,0.80615 -1.948196,0.80615 -1.245398,0 -1.953362,-0.80615 -0.702798,-0.81132 -0.702798,-2.23241 0,-1.42627 0.702798,-2.23242 0.707964,-0.80615 1.953362,-0.80615 z" />
|
||||
<path
|
||||
id="path4405"
|
||||
d="m 47.45793,124.94379 q 0,-1.04903 -0.434081,-1.64331 -0.428913,-0.59944 -1.183386,-0.59944 -0.754474,0 -1.188554,0.59944 -0.428913,0.59428 -0.428913,1.64331 0,1.04902 0.428913,1.64847 0.43408,0.59428 1.188554,0.59428 0.754473,0 1.183386,-0.59428 0.434081,-0.59945 0.434081,-1.64847 z m -3.234934,-2.02055 q 0.299722,-0.51676 0.754473,-0.7648 0.459919,-0.25322 1.095537,-0.25322 1.054196,0 1.710485,0.83716 0.661456,0.83715 0.661456,2.20141 0,1.36425 -0.661456,2.20141 -0.656289,0.83715 -1.710485,0.83715 -0.635618,0 -1.095537,-0.24805 -0.454751,-0.25321 -0.754473,-0.76997 v 0.86816 h -0.956011 v -8.04083 h 0.956011 z" />
|
||||
<path
|
||||
id="path4407"
|
||||
d="m 50.021073,122.04475 h 0.950843 v 5.89109 q 0,1.10587 -0.423745,1.60197 -0.418578,0.49609 -1.353919,0.49609 h -0.361733 v -0.80615 h 0.253213 q 0.542601,0 0.738971,-0.25321 0.19637,-0.24805 0.19637,-1.0387 z m 0,-2.25309 h 0.950843 v 1.20406 h -0.950843 z" />
|
||||
<path
|
||||
id="path4409"
|
||||
d="m 57.906871,124.70091 v 0.46508 h -4.371812 q 0.06201,0.98185 0.589109,1.49862 0.532266,0.51159 1.477942,0.51159 0.547768,0 1.059363,-0.13436 0.516763,-0.13436 1.02319,-0.40307 v 0.89916 q -0.511595,0.21705 -1.049028,0.33073 -0.537433,0.11369 -1.090369,0.11369 -1.384924,0 -2.196242,-0.80615 -0.806149,-0.80615 -0.806149,-2.18074 0,-1.42109 0.764808,-2.25308 0.769977,-0.83716 2.072219,-0.83716 1.167883,0 1.844843,0.75448 0.682126,0.7493 0.682126,2.04121 z m -0.950843,-0.27905 q -0.01034,-0.78032 -0.439248,-1.2454 -0.423746,-0.46509 -1.126543,-0.46509 -0.795814,0 -1.276404,0.44959 -0.475421,0.44958 -0.547768,1.26606 z" />
|
||||
<path
|
||||
id="path4411"
|
||||
d="m 63.632602,122.26696 v 0.88883 q -0.403075,-0.22221 -0.811318,-0.33073 -0.403075,-0.11369 -0.816485,-0.11369 -0.925005,0 -1.4366,0.58911 -0.511595,0.58394 -0.511595,1.64331 0,1.05936 0.511595,1.64847 0.511595,0.58394 1.4366,0.58394 0.41341,0 0.816485,-0.10852 0.408243,-0.11369 0.811318,-0.33589 v 0.87849 q -0.397908,0.18604 -0.826821,0.27905 -0.423745,0.093 -0.904334,0.093 -1.30741,0 -2.077386,-0.82165 -0.769977,-0.82165 -0.769977,-2.21691 0,-1.41593 0.775144,-2.22725 0.780312,-0.81132 2.13423,-0.81132 0.439248,0 0.857826,0.093 0.418578,0.0879 0.811318,0.26872 z" />
|
||||
<path
|
||||
id="path4413"
|
||||
d="m 66.237085,120.40144 v 1.64331 h 1.95853 v 0.73897 h -1.95853 v 3.14192 q 0,0.70796 0.191202,0.9095 0.19637,0.20154 0.790647,0.20154 h 0.976681 v 0.79581 h -0.976681 q -1.100705,0 -1.519282,-0.40824 -0.418578,-0.41341 -0.418578,-1.49861 v -3.14192 h -0.69763 v -0.73897 h 0.69763 v -1.64331 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 72 KiB |
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
declare module '*.jpeg';
|
||||
declare module '*.jpg';
|
||||
declare module '*.jpeg';
|
||||
declare module '*.png';
|
||||
declare module '*.svg';
|
||||
declare module '*.gif';
|
|
@ -0,0 +1,13 @@
|
|||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
|
||||
monospace;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import './index.css';
|
||||
import App from './App';
|
||||
import reportWebVitals from './reportWebVitals';
|
||||
|
||||
ReactDOM.render(
|
||||
<React.StrictMode>
|
||||
<App />
|
||||
</React.StrictMode>,
|
||||
document.getElementById('root')
|
||||
);
|
||||
|
||||
// If you want to start measuring performance in your app, pass a function
|
||||
// to log results (for example: reportWebVitals(console.log))
|
||||
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
||||
reportWebVitals();
|
|
@ -0,0 +1,76 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { makePsString } from "./p-text-helpers";
|
||||
import {
|
||||
accentOnFront,
|
||||
accentPastParticiple,
|
||||
accentFSylsOnNFromEnd,
|
||||
accentOnNFromEnd,
|
||||
splitUpSyllables,
|
||||
} from "./accent-helpers";
|
||||
|
||||
const toAccentFront = [
|
||||
{
|
||||
input: makePsString("پرېښودل", "prexodúl"),
|
||||
output: makePsString("پرېښودل", "préxodul"),
|
||||
},
|
||||
{
|
||||
input: {
|
||||
long: makePsString("وګرځېد", "oogurdzed"),
|
||||
short: makePsString("وګرځ", "oogurdz"),
|
||||
},
|
||||
output: {
|
||||
long: makePsString("وګرځېد", "óogurdzed"),
|
||||
short: makePsString("وګرځ", "óogurdz"),
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
test(`accentOnFront should work`, () => {
|
||||
toAccentFront.forEach((item) => {
|
||||
expect(accentOnFront(item.input)).toEqual(item.output);
|
||||
});
|
||||
});
|
||||
|
||||
const toAccentPastParticiple = [
|
||||
{
|
||||
input: makePsString("پرېښی", "prexey"),
|
||||
output: makePsString("پرېښی", "préxey"),
|
||||
},
|
||||
{
|
||||
input: makePsString("ازمویلی", "azmoyuley"),
|
||||
output: makePsString("ازمویلی", "azmóyuley"),
|
||||
},
|
||||
];
|
||||
|
||||
test(`accentPastParticiple should work`, () => {
|
||||
toAccentPastParticiple.forEach((item) => {
|
||||
expect(accentPastParticiple(item.input)).toEqual(item.output);
|
||||
});
|
||||
});
|
||||
|
||||
test(`splitUpSyllables should work`, () => {
|
||||
expect(splitUpSyllables("akheestul")).toEqual(["akh", "eest", "ul"]);
|
||||
});
|
||||
|
||||
test(`accentOnFSylsOnNFromEnd should work`, () => {
|
||||
expect(accentFSylsOnNFromEnd(["pu", "xtaa", "nu"], 0)).toBe("puxtaanú");
|
||||
expect(accentFSylsOnNFromEnd(["leed", "ul", "ey"], 1)).toBe("leedúley");
|
||||
});
|
||||
|
||||
test(`accentOnNFromEnd should work`, () => {
|
||||
expect(accentOnNFromEnd({ p: "پښتانه", f: "puxtaanu" }, 0)).toEqual({
|
||||
p: "پښتانه",
|
||||
f: "puxtaanú",
|
||||
});
|
||||
expect(accentOnNFromEnd({ p: "لیدلی", f: "leedúley" }, 1)).toEqual({
|
||||
p: "لیدلی",
|
||||
f: "leedúley",
|
||||
});
|
||||
});
|
|
@ -0,0 +1,115 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { makePsString } from "./p-text-helpers";
|
||||
import * as T from "../types";
|
||||
|
||||
/**
|
||||
* Returns a Pashto string (or string with Length options) ensuring that
|
||||
* the accent is on front
|
||||
*
|
||||
* @param s
|
||||
*/
|
||||
export function accentOnFront(s: T.SingleOrLengthOpts<T.PsString>): T.SingleOrLengthOpts<T.PsString> {
|
||||
if ("long" in s) {
|
||||
return {
|
||||
short: accentOnFront(s.short) as T.PsString,
|
||||
long: accentOnFront(s.long) as T.PsString,
|
||||
};
|
||||
}
|
||||
return {
|
||||
...s,
|
||||
f: accentSyllable(removeAccents(s.f)),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures an accent on a past participle ie. leedúley, préxey, azmóyuley
|
||||
*
|
||||
* @param s - the Pashto string (with Pashto and Phonetics) to ensure the accent on
|
||||
*/
|
||||
export function accentPastParticiple(s: T.PsString): T.PsString {
|
||||
// check for accent placing in words like wáayuley and azmóyuley
|
||||
const accentFallsOnThirdLast = (syls: string[]) => {
|
||||
if (syls.length < 3) return false;
|
||||
const secondLast = syls[syls.length-2];
|
||||
const thirdLast = syls[syls.length-3];
|
||||
const lastLetterOfThirdLast = thirdLast.slice(-1);
|
||||
return (
|
||||
(secondLast === "ul") && (lastLetterOfThirdLast === "y")
|
||||
);
|
||||
}
|
||||
// remove all accents
|
||||
const accentsRemoved = removeAccents(s.f);
|
||||
// split up the syllables (preserving the spaces)
|
||||
const syllables = splitUpSyllables(accentsRemoved);
|
||||
// add an accent on the appropriate syllable
|
||||
const n = accentFallsOnThirdLast(syllables) ? 2 : 1;
|
||||
const accentedF = accentFSylsOnNFromEnd(syllables, n);
|
||||
return makePsString(s.p, accentedF);
|
||||
}
|
||||
|
||||
export function splitUpSyllables(s: string): string[] {
|
||||
return s.match(/ |([^a|e|i|o|u| ]*(aa|a|ey|ee|e|oo|o|i|u)[^a|e|i|o|u| ]*)/g) as string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a phonetic string with the accent placed n syllables from the end
|
||||
*
|
||||
* @param syls - an array of syllables in phonetic strings without accents (including spaces as extra items)
|
||||
* @param n - the number of syllables from the end to put the accent
|
||||
*/
|
||||
export function accentFSylsOnNFromEnd(syls: string[], n: number): string {
|
||||
return [
|
||||
...syls.slice(0, syls.length-(n+1)), // before accent
|
||||
accentSyllable(syls[syls.length-(n+1)]), // syllable to be accented
|
||||
...(n !== 0) ? syls.slice(syls.length-n) : [], // after syllable to be accented
|
||||
].join("");
|
||||
}
|
||||
|
||||
export function accentOnNFromEnd(ps: T.PsString, n: number): T.PsString {
|
||||
const fSyls = splitUpSyllables(removeAccents(ps.f));
|
||||
return makePsString(
|
||||
ps.p,
|
||||
accentFSylsOnNFromEnd(fSyls, n),
|
||||
);
|
||||
}
|
||||
|
||||
function accentSyllable(s: string): string {
|
||||
const replacer = [
|
||||
{ vowel: "a", accented: "á" },
|
||||
{ vowel: "e", accented: "é" },
|
||||
{ vowel: "i", accented: "í" },
|
||||
{ vowel: "o", accented: "ó" },
|
||||
{ vowel: "u", accented: "ú" },
|
||||
{ vowel: "U", accented: "Ú" },
|
||||
];
|
||||
return s.replace(/a|e|i|o|u|U/, (match) => {
|
||||
const r = replacer.find((x) => x.vowel === match);
|
||||
/* istanbul ignore next */
|
||||
return r?.accented || "";
|
||||
});
|
||||
}
|
||||
|
||||
export function removeAccents(s: T.PsString): T.PsString;
|
||||
export function removeAccents(s: string): string;
|
||||
export function removeAccents(s: T.PsString | string): T.PsString | string {
|
||||
if (typeof s !== "string") {
|
||||
return makePsString(
|
||||
s.p,
|
||||
removeAccents(s.f),
|
||||
);
|
||||
}
|
||||
return s.replace(/á/g, "a")
|
||||
.replace(/é/g, "e")
|
||||
.replace(/í/g, "i")
|
||||
.replace(/ó/g, "o")
|
||||
.replace(/ú/g, "u")
|
||||
.replace(/Á/g, "A")
|
||||
.replace(/Ú/g, "U");
|
||||
}
|
|
@ -0,0 +1,485 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
ensureBaAt,
|
||||
isAllOne,
|
||||
isVerbBlock,
|
||||
removeHead,
|
||||
uniquePsStringArray,
|
||||
splitOffLeapfrogWord,
|
||||
removeObjComp,
|
||||
psRemove,
|
||||
psStringContains,
|
||||
} from "../lib/p-text-helpers";
|
||||
import {
|
||||
getPersonFromVerbForm,
|
||||
pickPersInf,
|
||||
} from "../lib/misc-helpers";
|
||||
import {
|
||||
baParticle,
|
||||
pronouns,
|
||||
} from "../lib/grammar-units";
|
||||
import {
|
||||
removeAccents,
|
||||
} from "../lib/accent-helpers";
|
||||
import { concatPsString } from "../lib/p-text-helpers";
|
||||
import * as T from "../types";
|
||||
const pashtoCharacterRange = "\u0621-\u065f\u0670-\u06d3\u06d5"
|
||||
|
||||
function getSplitHead(split: T.SplitInfo | undefined, matrixKey: T.PersonInflectionsField) {
|
||||
if (!split) {
|
||||
return undefined;
|
||||
}
|
||||
const fromMatrix = pickPersInf(split, matrixKey)
|
||||
// doesn't matter what length it is, the head will always be the same
|
||||
const pair = "long" in fromMatrix ? fromMatrix.long : fromMatrix;
|
||||
return pair[0];
|
||||
}
|
||||
|
||||
function formHasVariations(form: T.VerbForm | T.ImperativeForm | T.ParticipleForm | T.SentenceForm): boolean {
|
||||
if ("mascSing" in form) {
|
||||
return formHasVariations(form.mascSing);
|
||||
}
|
||||
if ("long" in form) {
|
||||
return formHasVariations(form.long);
|
||||
}
|
||||
if (!isVerbBlock(form)) {
|
||||
return false;
|
||||
}
|
||||
return !isAllOne(form as T.VerbBlock);
|
||||
}
|
||||
|
||||
type Pronouns = undefined | {
|
||||
subject: T.PsString | [T.PsString, T.PsString],
|
||||
object?: T.PsString | [T.PsString, T.PsString],
|
||||
mini: T.PsString,
|
||||
}
|
||||
|
||||
const nuParticle = { p: "نه", f: "nú" };
|
||||
|
||||
export default function addPronouns({ s, subject, object, info, displayForm, intransitive, ergative, matrixKey, negative }: {
|
||||
s: T.SentenceForm,
|
||||
subject: T.Person,
|
||||
object: T.Person,
|
||||
info: T.NonComboVerbInfo,
|
||||
displayForm: T.DisplayFormForSentence,
|
||||
intransitive: boolean,
|
||||
ergative: boolean,
|
||||
matrixKey: T.PersonInflectionsField,
|
||||
negative: boolean,
|
||||
}): T.SentenceForm {
|
||||
if ("long" in s) {
|
||||
return {
|
||||
long: addPronouns({ s: s.long, subject, object, info, displayForm, intransitive, ergative, matrixKey, negative }) as T.ArrayOneOrMore<T.PsString>,
|
||||
short: addPronouns({ s: s.short, subject, object, info, displayForm, intransitive, ergative, matrixKey, negative }) as T.ArrayOneOrMore<T.PsString>,
|
||||
...s.mini ? {
|
||||
mini: addPronouns({ s: s.mini, subject, object, info, displayForm, intransitive, ergative, matrixKey, negative }) as T.ArrayOneOrMore<T.PsString>,
|
||||
} : {},
|
||||
}
|
||||
}
|
||||
const firstOrSecondObjectPresent = [0,1,2,3,6,7,8,9].includes(object) && !displayForm.past;
|
||||
const nearPronounPossible = (p: T.Person) => [4, 5, 10, 11].includes(p);
|
||||
const noPronouns =
|
||||
info.transitivity === "grammatically transitive" && displayForm.passive;
|
||||
const noObjectPronoun =
|
||||
intransitive || info.transitivity === "grammatically transitive" ||
|
||||
info.type === "dynamic compound" || info.type === "generative stative compound";
|
||||
const transDynCompPast =
|
||||
info.transitivity === "transitive" && info.type === "dynamic compound" && displayForm.past;
|
||||
const subjectPronoun = (getPersonFromVerbForm(
|
||||
pronouns.far[ergative ? "inflected" : "plain"],
|
||||
subject,
|
||||
) as T.ArrayOneOrMore<T.PsString>)[0];
|
||||
const nearSubjectPronoun = (getPersonFromVerbForm(
|
||||
pronouns.near[ergative ? "inflected" : "plain"],
|
||||
subject,
|
||||
) as T.ArrayOneOrMore<T.PsString>)[0];
|
||||
const objectPronoun = (getPersonFromVerbForm(
|
||||
pronouns.far[firstOrSecondObjectPresent ? "inflected" : "plain"],
|
||||
object,
|
||||
) as T.ArrayOneOrMore<T.PsString>)[0];
|
||||
const nearObjectPronoun = (getPersonFromVerbForm(
|
||||
pronouns.near[firstOrSecondObjectPresent ? "inflected" : "plain"],
|
||||
object,
|
||||
) as T.ArrayOneOrMore<T.PsString>)[0];
|
||||
const miniPronoun = (getPersonFromVerbForm(
|
||||
pronouns.mini,
|
||||
ergative ? subject : object,
|
||||
) as T.ArrayOneOrMore<T.PsString>)[0];
|
||||
|
||||
const prns: Pronouns = noPronouns
|
||||
? undefined
|
||||
: noObjectPronoun
|
||||
? {
|
||||
subject: nearPronounPossible(subject) ? [subjectPronoun, nearSubjectPronoun] : subjectPronoun,
|
||||
mini: miniPronoun,
|
||||
} : {
|
||||
subject: nearPronounPossible(subject) ? [subjectPronoun, nearSubjectPronoun] : subjectPronoun,
|
||||
object: nearPronounPossible(object) ? [objectPronoun, nearObjectPronoun] : objectPronoun,
|
||||
mini: miniPronoun,
|
||||
};
|
||||
|
||||
function attachPronounsToVariation(ps: T.PsString, prns: Pronouns): T.ArrayOneOrMore<T.PsString> {
|
||||
if (!prns) {
|
||||
return [ps];
|
||||
}
|
||||
if (Array.isArray(prns.subject)) {
|
||||
return [
|
||||
...attachPronounsToVariation(ps, { ...prns, subject: prns.subject[0] }),
|
||||
...attachPronounsToVariation(ps, { ...prns, subject: prns.subject[1] }),
|
||||
] as T.ArrayOneOrMore<T.PsString>;
|
||||
}
|
||||
if (Array.isArray(prns.object)) {
|
||||
return [
|
||||
...attachPronounsToVariation(ps, { ...prns, object: prns.object[0] }),
|
||||
...attachPronounsToVariation(ps, { ...prns, object: prns.object[1] }),
|
||||
] as T.ArrayOneOrMore<T.PsString>;
|
||||
}
|
||||
const splitHead = (displayForm.aspect && displayForm.aspect === "perfective")
|
||||
? getSplitHead(info[displayForm.past ? "root" : "stem"].perfectiveSplit, matrixKey)
|
||||
: undefined;
|
||||
const basicForms = (!prns.object)
|
||||
// basic form with only one pronoun
|
||||
? makeBasicPronounForm(ps, splitHead, displayForm, info, negative, prns.subject)
|
||||
: [
|
||||
// basic form two full pronouns
|
||||
...makeBasicPronounForm(ps, splitHead, displayForm, info, negative, prns.subject, prns.object),
|
||||
// basic form one full, one mini pronoun
|
||||
...makeBasicPronounForm(
|
||||
ps,
|
||||
splitHead,
|
||||
displayForm,
|
||||
info,
|
||||
negative,
|
||||
ergative ? prns.object : prns.subject,
|
||||
prns.mini,
|
||||
),
|
||||
] as T.ArrayOneOrMore<T.PsString>;
|
||||
|
||||
const ergativeGrammTrans = (info.transitivity === "grammatically transitive" && ergative);
|
||||
const canWorkWithOnlyMini = (prns.object && !displayForm.secondPronounNeeded && formHasVariations(displayForm.form))
|
||||
|| transDynCompPast || ergativeGrammTrans;
|
||||
return [
|
||||
...basicForms,
|
||||
...canWorkWithOnlyMini
|
||||
? makeOnlyMiniForm(ps, splitHead, displayForm, info, negative, prns.mini)
|
||||
: [],
|
||||
] as T.ArrayOneOrMore<T.PsString>;
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
return s.reduce((variations, current) => (
|
||||
[...variations, ...uniquePsStringArray(
|
||||
attachPronounsToVariation(current, prns)
|
||||
)]
|
||||
), []) as T.ArrayOneOrMore<T.PsString>;
|
||||
}
|
||||
|
||||
function nuMustGoAfterSplitHead(head: T.PsString) {
|
||||
return (
|
||||
["و", "وا"].includes(head.p)
|
||||
||
|
||||
head.p.slice(-1) === " " // compound splits
|
||||
||
|
||||
head.p.match(`[${pashtoCharacterRange}]* و`)
|
||||
);
|
||||
}
|
||||
|
||||
function spaceAfterSplitHead(head: T.PsString) {
|
||||
if (nuMustGoAfterSplitHead(head) && head.p.slice(-1) !== " ") {
|
||||
return { p: "", f: "-" }
|
||||
}
|
||||
return { p: " ", f: " " };
|
||||
}
|
||||
|
||||
function makeBasicPronounForm(
|
||||
ps: T.PsString,
|
||||
splitHead: T.PsString | undefined,
|
||||
displayForm: T.DisplayFormForSentence,
|
||||
info: T.NonComboVerbInfo,
|
||||
negative: boolean,
|
||||
firstPronoun: T.PsString,
|
||||
secondPronoun?: T.PsString,
|
||||
): T.PsString[] {
|
||||
if (!negative) {
|
||||
return [
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
firstPronoun,
|
||||
" ",
|
||||
secondPronoun ? concatPsString(secondPronoun, " ") : "",
|
||||
ps,
|
||||
),
|
||||
1)
|
||||
];
|
||||
}
|
||||
const objComplement = getObjComplement(info);
|
||||
function negativeWOutSplit() {
|
||||
if (!displayForm.reorderWithNegative) {
|
||||
return [
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
firstPronoun,
|
||||
" ",
|
||||
secondPronoun
|
||||
? concatPsString(secondPronoun, " ")
|
||||
: objComplement
|
||||
? concatPsString(objComplement, " ")
|
||||
: "",
|
||||
nuParticle,
|
||||
" ",
|
||||
removeAccents(objComplement ? removeObjComp(objComplement, ps) : ps)
|
||||
),
|
||||
1),
|
||||
];
|
||||
}
|
||||
const [beginning, end] = splitOffLeapfrogWord(ps);
|
||||
return [
|
||||
ensureBaAt(
|
||||
objComplement ?
|
||||
concatPsString(
|
||||
firstPronoun,
|
||||
" ",
|
||||
objComplement,
|
||||
" ",
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
" ",
|
||||
removeAccents(removeObjComp(objComplement, beginning)),
|
||||
)
|
||||
: concatPsString(
|
||||
firstPronoun,
|
||||
" ",
|
||||
secondPronoun ? concatPsString(secondPronoun, " ") : "",
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
" ",
|
||||
removeAccents(beginning),
|
||||
),
|
||||
1),
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
firstPronoun,
|
||||
" ",
|
||||
secondPronoun ? concatPsString(secondPronoun, " ") : "",
|
||||
removeAccents(beginning),
|
||||
" ",
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
),
|
||||
1),
|
||||
];
|
||||
}
|
||||
function insertNegInSplit(splitHead: T.PsString) {
|
||||
if (!displayForm.reorderWithNegative) {
|
||||
return [
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
firstPronoun,
|
||||
" ",
|
||||
secondPronoun ? concatPsString(secondPronoun, " ") : "",
|
||||
removeAccents(splitHead),
|
||||
spaceAfterSplitHead(splitHead),
|
||||
nuParticle,
|
||||
" ",
|
||||
removeHead(splitHead, ps),
|
||||
),
|
||||
1),
|
||||
];
|
||||
}
|
||||
const [beginning, end] = splitOffLeapfrogWord(ps);
|
||||
return [
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
firstPronoun,
|
||||
" ",
|
||||
secondPronoun ? concatPsString(secondPronoun, " ") : "",
|
||||
removeAccents(splitHead),
|
||||
spaceAfterSplitHead(splitHead),
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
" ",
|
||||
removeHead(splitHead, beginning),
|
||||
),
|
||||
1),
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
firstPronoun,
|
||||
" ",
|
||||
secondPronoun ? concatPsString(secondPronoun, " ") : "",
|
||||
removeAccents(splitHead),
|
||||
spaceAfterSplitHead(splitHead),
|
||||
nuParticle,
|
||||
" ",
|
||||
removeHead(splitHead, beginning),
|
||||
" ",
|
||||
end,
|
||||
),
|
||||
1),
|
||||
];
|
||||
}
|
||||
if (splitHead) {
|
||||
return nuMustGoAfterSplitHead(splitHead) ? insertNegInSplit(splitHead) : [
|
||||
...insertNegInSplit(splitHead),
|
||||
...negativeWOutSplit(),
|
||||
]
|
||||
}
|
||||
return negativeWOutSplit();
|
||||
}
|
||||
|
||||
function makeOnlyMiniForm(
|
||||
ps: T.PsString,
|
||||
splitHead: T.PsString | undefined,
|
||||
displayForm: T.DisplayFormForSentence,
|
||||
info: T.NonComboVerbInfo,
|
||||
negative: boolean,
|
||||
mini: T.PsString,
|
||||
): T.PsString[] {
|
||||
const objComplement = getObjComplement(info);
|
||||
function reorderedNegativeAfterSplitHead(splitHead: T.PsString) {
|
||||
const [beginning, end] = splitOffLeapfrogWord(ps);
|
||||
return ensureBaAt(
|
||||
objComplement ?
|
||||
concatPsString(
|
||||
objComplement,
|
||||
" ",
|
||||
mini,
|
||||
" ",
|
||||
removeAccents(removeObjComp(objComplement, splitHead)),
|
||||
spaceAfterSplitHead(splitHead),
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
" ",
|
||||
removeHead(splitHead, beginning),
|
||||
)
|
||||
: concatPsString(
|
||||
removeAccents(splitHead),
|
||||
spaceAfterSplitHead(splitHead),
|
||||
mini,
|
||||
" ",
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
" ",
|
||||
removeHead(splitHead, beginning),
|
||||
),
|
||||
1)
|
||||
}
|
||||
if (splitHead) {
|
||||
// only mini pronoun with split
|
||||
if (!displayForm.reorderWithNegative || !negative) {
|
||||
const safeSplitHead = removeObjComp(objComplement, splitHead);
|
||||
return [ensureBaAt(
|
||||
concatPsString(
|
||||
objComplement ? concatPsString(objComplement, " ", mini, " ") : "",
|
||||
negative ? removeAccents(safeSplitHead) : safeSplitHead,
|
||||
spaceAfterSplitHead(safeSplitHead),
|
||||
!objComplement ? concatPsString(mini, " ") : "",
|
||||
negative ? concatPsString(nuParticle, " ") : "",
|
||||
removeHead(splitHead, ps)
|
||||
),
|
||||
1)];
|
||||
}
|
||||
// if (!nuMustGoAfterSplitHead(splitHead)) {
|
||||
// TODO: IS THIS A SEPERATELY NECESSARY THING FOR VERBS LIKE
|
||||
// PREXODUL -- LIKE COULD YOU ALSO DO A VERSION WHERE THE SPLIT ISN'T USED
|
||||
// return [reorderedNegativeAfterSplitHead(splitHead)];
|
||||
// }
|
||||
return [reorderedNegativeAfterSplitHead(splitHead)];
|
||||
}
|
||||
// only mini without split
|
||||
if (!displayForm.reorderWithNegative || !negative) {
|
||||
if (objComplement) {
|
||||
return [
|
||||
concatPsString(
|
||||
objComplement,
|
||||
" ",
|
||||
concatPsString(mini, " "),
|
||||
negative ? concatPsString(" ", nuParticle, " ") : "",
|
||||
removeObjComp(objComplement, ps),
|
||||
)
|
||||
];
|
||||
}
|
||||
return [
|
||||
concatPsString(
|
||||
psRemove(ps, concatPsString(baParticle, " ")),
|
||||
" ",
|
||||
psStringContains(ps, concatPsString(baParticle, " ")) ? concatPsString(baParticle, " ") : "",
|
||||
mini,
|
||||
negative ? concatPsString(" ", nuParticle) : "",
|
||||
)
|
||||
];
|
||||
}
|
||||
const [beginning, end] = splitOffLeapfrogWord(ps);
|
||||
if (objComplement) {
|
||||
return [
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
objComplement,
|
||||
" ",
|
||||
mini,
|
||||
" ",
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
" ",
|
||||
removeObjComp(objComplement, beginning),
|
||||
),
|
||||
1),
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
objComplement,
|
||||
" ",
|
||||
mini,
|
||||
" ",
|
||||
removeObjComp(objComplement, beginning),
|
||||
" ",
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
),
|
||||
1),
|
||||
]
|
||||
}
|
||||
return [
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
beginning,
|
||||
" ",
|
||||
mini,
|
||||
" ",
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
),
|
||||
1),
|
||||
ensureBaAt(
|
||||
concatPsString(
|
||||
nuParticle,
|
||||
" ",
|
||||
end,
|
||||
" ",
|
||||
mini,
|
||||
" ",
|
||||
beginning,
|
||||
),
|
||||
1),
|
||||
];
|
||||
}
|
||||
|
||||
function getObjComplement(info: T.NonComboVerbInfo): T.PsString | undefined {
|
||||
return info.type === "dynamic compound" ?
|
||||
(info.objComplement.plural ? info.objComplement.plural : info.objComplement.entry) :
|
||||
undefined;
|
||||
}
|
|
@ -0,0 +1,539 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
getPersonInflectionsKey,
|
||||
pickPersInf,
|
||||
getPersonFromVerbForm,
|
||||
} from "./misc-helpers";
|
||||
import addPronouns from "./add-pronouns";
|
||||
import * as T from "../types";
|
||||
|
||||
type FilterFunc = (form: any) => boolean;
|
||||
type MapFunc = (opts: {
|
||||
subject: T.Person,
|
||||
object: T.Person,
|
||||
displayForm: T.DisplayFormForSentence,
|
||||
info: T.NonComboVerbInfo,
|
||||
negative: boolean,
|
||||
}) => T.DisplayFormItem;
|
||||
|
||||
/**
|
||||
* Used to apply a filter function on both the levels of forms and subgroups
|
||||
*
|
||||
* @param input
|
||||
* @param func
|
||||
*/
|
||||
const formFilter = (
|
||||
input: T.DisplayFormItem[],
|
||||
func: FilterFunc | FilterFunc[]
|
||||
): T.DisplayFormItem[] => {
|
||||
// TODO: Better filtering that lets us filter things only in sub categories
|
||||
|
||||
// recursive madness to apply an array of filters 🤪
|
||||
// i'm doing this because I couldn't get a compose function to work 🤷♂️
|
||||
if (Array.isArray(func)) {
|
||||
if (func.length === 0) return input;
|
||||
return formFilter(
|
||||
formFilter(input, func[0]),
|
||||
func.slice(1),
|
||||
);
|
||||
}
|
||||
return (
|
||||
input.filter(func)
|
||||
.map((f) => (
|
||||
"content" in f
|
||||
? { ...f, content: f.content.filter(func) }
|
||||
: f
|
||||
))
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Used to apply a filter function on both the levels of forms and subgroups
|
||||
*
|
||||
* @param input
|
||||
* @param func
|
||||
*/
|
||||
const formMap = (
|
||||
input: T.DisplayFormItem[],
|
||||
func: MapFunc,
|
||||
info: T.NonComboVerbInfo,
|
||||
subject: T.Person,
|
||||
object: T.Person,
|
||||
negative: boolean,
|
||||
): T.DisplayFormItem[] => {
|
||||
return (
|
||||
input.map((f) => (
|
||||
"content" in f
|
||||
? { ...f, content: formMap(f.content, func, info, subject, object, negative) }
|
||||
: func({ displayForm: f as T.DisplayFormForSentence, info, subject, object, negative })
|
||||
))
|
||||
);
|
||||
};
|
||||
|
||||
const makeSentence = ({ subject, object, info, displayForm, negative }: {
|
||||
subject: T.Person,
|
||||
object: T.Person,
|
||||
info: T.NonComboVerbInfo,
|
||||
displayForm: T.DisplayFormForSentence,
|
||||
negative: boolean,
|
||||
}): T.DisplayForm => {
|
||||
const intransitive = info.transitivity === "intransitive" || !!displayForm.passive;
|
||||
const ergative = !intransitive && !!displayForm.past;
|
||||
function chooseConjugation(g: T.SingleOrLengthOpts<T.VerbBlock>): T.SentenceForm {
|
||||
const person = ergative
|
||||
? object
|
||||
: subject;
|
||||
return getPersonFromVerbForm(g, person);
|
||||
}
|
||||
const f = displayForm.form;
|
||||
// IMPORTANT TODO!!! -- IS THIS ALWAYS THE OBJECT HERE?
|
||||
const matrixKey = getPersonInflectionsKey(object);
|
||||
const matrixChosen = pickPersInf(f, matrixKey);
|
||||
const conjugationChosen = chooseConjugation(matrixChosen);
|
||||
const form = addPronouns({
|
||||
s: conjugationChosen,
|
||||
subject,
|
||||
object,
|
||||
info,
|
||||
displayForm,
|
||||
intransitive,
|
||||
ergative,
|
||||
matrixKey,
|
||||
negative,
|
||||
});
|
||||
return {
|
||||
...displayForm,
|
||||
form,
|
||||
};
|
||||
}
|
||||
|
||||
export const getForms = ({ conj, filterFunc, mode, subject, object, negative } : {
|
||||
conj: T.VerbConjugation,
|
||||
filterFunc?: FilterFunc | FilterFunc[],
|
||||
mode: "chart" | "sentence",
|
||||
subject: T.Person,
|
||||
object: T.Person,
|
||||
negative: boolean,
|
||||
}): T.DisplayFormItem[] => {
|
||||
const forms: T.DisplayFormItem[] = [
|
||||
{
|
||||
label: "Present",
|
||||
aspect: "imperfective",
|
||||
form: conj.imperfective.nonImperative,
|
||||
formula: "Imperfective Stem + Present Ending",
|
||||
sentence: true,
|
||||
explanation: "Something that is happening, happens generally, or is definitely about to happen. ('I am ____ing', 'I _____')",
|
||||
},
|
||||
{
|
||||
label: "Subjunctive",
|
||||
aspect: "perfective",
|
||||
form: conj.perfective.nonImperative,
|
||||
formula: "Perfective Stem + Present Ending",
|
||||
sentence: true,
|
||||
explanation: "Used for hypothetical statements about the desire, necessity, purpose, or possibility of something happening. Or for saying something should or shouldn't happen. ('Should I ____?', 'so that'll I'll _____')"
|
||||
},
|
||||
{
|
||||
label: "Imperfective Future",
|
||||
aspect: "imperfective",
|
||||
form: conj.imperfective.future,
|
||||
advanced: true,
|
||||
formula: "به - ba + Present",
|
||||
sentence: true,
|
||||
explanation: "Saying something will happen, repeatedly or as an ongoing action",
|
||||
},
|
||||
{
|
||||
label: "Perfective Future",
|
||||
aspect: "perfective",
|
||||
form: conj.perfective.future,
|
||||
advanced: true,
|
||||
formula: "به - ba + Subjunctive",
|
||||
sentence: true,
|
||||
explanation: "Saying something will happen as a one-time event - May also used when there is some doubt",
|
||||
},
|
||||
{
|
||||
label: "Continuous Past",
|
||||
aspect: "imperfective",
|
||||
form: conj.imperfective.past,
|
||||
formula: "Imperfective Root + Past Ending",
|
||||
sentence: true,
|
||||
explanation: "Saying something was happening, or would happen ('I was ____ing', 'I would ____')",
|
||||
past: true,
|
||||
},
|
||||
{
|
||||
label: "Simple Past",
|
||||
aspect: "perfective",
|
||||
form: conj.perfective.past,
|
||||
formula: "Perfective Root + Past Ending",
|
||||
sentence: true,
|
||||
explanation: "Saying something happened ('I ____ed')",
|
||||
past: true,
|
||||
},
|
||||
{
|
||||
label: "Modal (ability/possibility)",
|
||||
subgroup: "modal",
|
||||
sentence: true,
|
||||
content: [
|
||||
{
|
||||
label: "Present Modal",
|
||||
aspect: "imperfective",
|
||||
form: conj.imperfective.modal.nonImperative,
|
||||
sentence: true,
|
||||
formula: "Imperfective Root + Non-Inflectinig Ey-Tail + Subjunctive کېدل - to become",
|
||||
explanation: "saying that something is possible currently or in general ('I can ____')",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Subjunctive Modal",
|
||||
aspect: "perfective",
|
||||
form: conj.perfective.modal.nonImperative,
|
||||
advanced: true,
|
||||
sentence: true,
|
||||
formula: "Perfective Root + Non-Inflectinig Ey-Tail + Subjunctive کېدل - to become",
|
||||
explanation: "talking about the possibility of something in a subjunctive way ('so that I can ____')",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Imperfective Future Modal",
|
||||
aspect: "imperfective",
|
||||
form: conj.imperfective.modal.future,
|
||||
advanced: true,
|
||||
sentence: true,
|
||||
formula: "به - ba + Present Modal",
|
||||
explanation: "saying that something will be possible in general or in an ongoing sense in the future ('I'll be able to ____')",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Perfective Future Modal",
|
||||
aspect: "perfective",
|
||||
form: conj.perfective.modal.future,
|
||||
advanced: true,
|
||||
sentence: true,
|
||||
formula: "به - ba + Subjunctive Modal",
|
||||
explanation: "saying that something will be possible at a certain point in the future ('I'll be able to ____')",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Continous Past Modal",
|
||||
aspect: "imperfective",
|
||||
form: conj.imperfective.modal.past,
|
||||
advanced: true,
|
||||
past: true,
|
||||
sentence: true,
|
||||
formula: "Imperfective Root + Non-Inflectinig Ey-Tail + Simple Past کېدل - to become",
|
||||
explanation: "saying that something was possible in general, in an ongoing sense ('I was able to ____', ie. 'I could do ____ any time')",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Simple Past Modal",
|
||||
aspect: "perfective",
|
||||
form: conj.perfective.modal.past,
|
||||
formula: "Perfective Root + Non-Inflectinig Ey-Tail + Simple Past کېدل - to become",
|
||||
explanation: "saying that something was possible at a certain point in time ('I was able to ____, at one particular point in time')",
|
||||
past: true,
|
||||
sentence: true,
|
||||
advanced: true,
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Imperfective hypothetical/wildcard Past Modal",
|
||||
aspect: "imperfective",
|
||||
form: conj.imperfective.modal.hypotheticalPast,
|
||||
formula: "Imperfective Root + Non-Inflectinig Ey-Tail + ش - sh + Non-Inflectinig Ey-Tail",
|
||||
explanation: "saying that something was possible in general, in an ongoing sense ('I was able to ____', ie. 'I could do ____ any time'). This 'wildcard' form can be used either to talk about hypothetical things, or to avoid worrying about verb agreement",
|
||||
past: true,
|
||||
sentence: true,
|
||||
advanced: true,
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Perfective hypothetical/wildcard Past Modal",
|
||||
aspect: "perfective",
|
||||
form: conj.perfective.modal.hypotheticalPast,
|
||||
formula: "Perfective Root + Non-Inflectinig Ey-Tail + ش - sh + Non-Inflectinig Ey-Tail",
|
||||
explanation: "saying that something was possible at a certain point in time ('I was able to ____, at one particular point in time'). This 'wildcard' form can be used either to talk about hypothetical things, or to avoid worrying about verb agreement",
|
||||
past: true,
|
||||
sentence: true,
|
||||
advanced: true,
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
...conj.imperfective.imperative ?
|
||||
[{
|
||||
label: "Imperfective Imperative",
|
||||
aspect: "imperfective",
|
||||
form: conj.imperfective.imperative,
|
||||
formula: "Imperfective Stem + Imperative Ending",
|
||||
explanation: "Commanding someone/people to do something repeatedly, or in general",
|
||||
} as T.DisplayForm] : [],
|
||||
...conj.perfective.imperative ?
|
||||
[{
|
||||
label: "Perfective Imperative",
|
||||
aspect: "perfective",
|
||||
form: conj.perfective.imperative,
|
||||
formula: "Perfective Stem + Imperative Ending",
|
||||
explanation: "Commanding someone/people to do something one time",
|
||||
} as T.DisplayForm] : [],
|
||||
{
|
||||
label: "Perfect",
|
||||
subgroup: "perfect",
|
||||
sentence: true,
|
||||
content: [
|
||||
{
|
||||
label: "Half Perfect",
|
||||
form: conj.perfect.halfPerfect,
|
||||
past: true,
|
||||
sentence: true,
|
||||
formula: "Past participle inflected",
|
||||
secondPronounNeeded: true,
|
||||
explanation: "The base of all perfect forms. Used on it's own as a sort of weaker form of the present perfect.",
|
||||
},
|
||||
{
|
||||
label: "Past Perfect",
|
||||
form: conj.perfect.past,
|
||||
past: true,
|
||||
sentence: true,
|
||||
formula: "Past participle inflected + Past Equative",
|
||||
explanation: "Talking about events that had happened in the past, or had affected a past situation ('I had ____ed')",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Present Perfect",
|
||||
form: conj.perfect.present,
|
||||
past: true,
|
||||
sentence: true,
|
||||
formula: "Past participle inflected + Present Equative",
|
||||
explanation: "Talking about that something happened in the past and it affects the present ('I have _____ed')",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Subjunctive/Habitual Perfect",
|
||||
form: conj.perfect.subjunctive,
|
||||
past: true,
|
||||
sentence: true,
|
||||
formula: "Past participle inflected + Subjunctive/Habitual Equative",
|
||||
explanation: "Talking about something that will have happened habitually, or expressing hope, desire, or judgement about an action having happened",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Future/Presumptive Perfect",
|
||||
form: conj.perfect.future,
|
||||
advanced: true,
|
||||
past: true,
|
||||
sentence: true,
|
||||
formula: "به - ba + Past participle Inflected + Future Equative",
|
||||
explanation: "Talking about something that will have happened in the future, or guessing that the event will have occured presently ('I will have ____ed')",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Affirmational Perfect",
|
||||
form: conj.perfect.affirmational,
|
||||
advanced: true,
|
||||
past: true,
|
||||
sentence: true,
|
||||
explanation: "Affirming that an event will have taken place ('I will have ____ed')",
|
||||
formula: "به - ba + Past Participle Inflected + Past Equative",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
{
|
||||
label: "Conterfactual/Past Subjunctive Perfect",
|
||||
form: conj.perfect.pastSubjunctiveHypothetical,
|
||||
advanced: true,
|
||||
past: true,
|
||||
sentence: true,
|
||||
secondPronounNeeded: true,
|
||||
explanation: "Talking about an event that would have hypothetically taken place (but didn't), or that should have taken place but didn't",
|
||||
formula: "به - ba + Past Participle Inflected + Past Subjunctive / Hypothetical Equative",
|
||||
reorderWithNegative: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "Hypothetical/Wish",
|
||||
advanced: true,
|
||||
form: conj.hypothetical,
|
||||
formula: "Imperfective Root + Non-Inflecting Ey-Tail",
|
||||
explanation: "Talking about a hypothetical, unreal situation, or something that is wished for ('If I ____')",
|
||||
past: true,
|
||||
},
|
||||
{
|
||||
label: "Participle",
|
||||
subgroup: "participle",
|
||||
advanced: true,
|
||||
content: [
|
||||
{
|
||||
label: "Present Participle",
|
||||
form: conj.participle.present,
|
||||
formula: "Short form of Ininitive Root + ونکی - oonkey",
|
||||
explanation: "Making a verb into a noun or adjective, talking about a person or thing that does or experiences something. Also used to say something is about to happen. ('____ing', '____er')",
|
||||
},
|
||||
{
|
||||
label: "Past Participle",
|
||||
form: conj.participle.past,
|
||||
past: true,
|
||||
formula: "Infinitive Root or Special Form + Inflecting Ey-Tail",
|
||||
explanation: "Making a verb into a noun or adjective, talking about how a person or thing did or experienced something. ('____ed')",
|
||||
},
|
||||
],
|
||||
},
|
||||
...conj.passive ?
|
||||
[{
|
||||
label: "Passive",
|
||||
subgroup: "passive",
|
||||
advanced: true,
|
||||
sentence: true,
|
||||
content: [
|
||||
{
|
||||
label: "Passive Present",
|
||||
aspect: "imperfective",
|
||||
form: conj.passive.imperfective.nonImperative,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "Long Imperfective Root + Present کېدل - to become",
|
||||
explanation: "Saying that something is being done or is done in general, without mentioning the subject/agent. ('I am being ____en')",
|
||||
},
|
||||
{
|
||||
label: "Passive Subjunctive",
|
||||
aspect: "perfective",
|
||||
form: conj.passive.perfective.nonImperative,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "Long Perfective Root + Subjunctive کېدل - to become",
|
||||
explanation: "Saying that something should be done, or giving a purpose for something being done etc., without mentioning the subject/agent. ('Should I be ____en?', 'So that I'll be ____en')"
|
||||
},
|
||||
{
|
||||
label: "Passive Imperfective Future",
|
||||
aspect: "imperfective",
|
||||
form: conj.passive.imperfective.future,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "به - ba + Passive Present",
|
||||
explanation: "Saying something will be done as a one-time event, without mentioning the subject/agent.",
|
||||
},
|
||||
{
|
||||
label: "Passive Perfective Future",
|
||||
aspect: "perfective",
|
||||
form: conj.passive.perfective.future,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "به - ba + Passive Subjunctive",
|
||||
explanation: "Saying something will be done in an ongoing or repeated sense, without mentioning the subject/agent."
|
||||
},
|
||||
{
|
||||
label: "Passive Continuous Past",
|
||||
aspect: "imperfective",
|
||||
form: conj.passive.imperfective.past,
|
||||
past: true,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "Long Imperfective Root + Continuous Past کېدل - to become",
|
||||
explanation: "Saying that something was being done, or would be done, without mentioning the subject/agent. ('I was being ____en', 'I would be ____en')",
|
||||
},
|
||||
{
|
||||
label: "Passive Simple Past",
|
||||
aspect: "perfective",
|
||||
form: conj.passive.perfective.past,
|
||||
past: true,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "Long Perfective Root + Simple Past کېدل - to become",
|
||||
explanation: "Saying that was done as a one-time event, without mentioning the subject/agent. ('I was ____en')"
|
||||
},
|
||||
{
|
||||
label: "Passive Perfect",
|
||||
subgroup: "passive perfect",
|
||||
passive: true,
|
||||
sentence: true,
|
||||
content: [
|
||||
{
|
||||
label: "Passive Half Perfect",
|
||||
form: conj.passive.perfect.halfPerfect,
|
||||
past: true,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "Infinitive + کېدل (to be) past participle inflected",
|
||||
explanation: "The base of all perfect forms. Used on it's own as a sort of weaker form of the present perfect. (Passive voice)",
|
||||
},
|
||||
{
|
||||
label: "Passive Past Perfect",
|
||||
form: conj.passive.perfect.past,
|
||||
past: true,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "Infinitive + کېدل (to be) past participle inflected + Past Equative",
|
||||
explanation: "Talking about events that had happened in the past, or had affected a past situation (Passive voice) ('I had been ____ed')",
|
||||
},
|
||||
{
|
||||
label: "Passive Present Perfect",
|
||||
form: conj.passive.perfect.present,
|
||||
past: true,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "Infinitive + کېدل (to be) past participle inflected + Present Equative",
|
||||
explanation: "Talking about that something happened in the past and it affects the present (Passive voice) ('I have been _____ed')",
|
||||
},
|
||||
{
|
||||
label: "Passive Subjunctive/Habitual Perfect",
|
||||
form: conj.passive.perfect.subjunctive,
|
||||
past: true,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "Infinitive + کېدل (to be) past participle inflected + Subjunctive/Habitual Equative",
|
||||
},
|
||||
{
|
||||
label: "Passive Future/Presumptive Perfect",
|
||||
form: conj.passive.perfect.future,
|
||||
advanced: true,
|
||||
past: true,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
formula: "به - ba + Infinitive + کېدل (to be) past participle inflected + Future Equative",
|
||||
explanation: "Talking about something that will have happened in the future, or guessing that the event will have occured presently (Passive voice) ('I will have been ____ed')",
|
||||
},
|
||||
{
|
||||
label: "Passive Affirmational Perfect",
|
||||
form: conj.passive.perfect.affirmational,
|
||||
advanced: true,
|
||||
past: true,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
explanation: "Affirming that an event will have taken place (Passive voice) ('I will have been ____ed')",
|
||||
formula: "به - ba + Infinitive + کېدل (to be) past participle inflected + Past Equative"
|
||||
},
|
||||
{
|
||||
label: "Passive Past Subjunctive / Hypothetical Perfect",
|
||||
form: conj.passive.perfect.pastSubjunctiveHypothetical,
|
||||
advanced: true,
|
||||
past: true,
|
||||
sentence: true,
|
||||
passive: true,
|
||||
explanation: "Talking about an event that would have hypothetically taken place, or that should have taken place (Passive voice) ('I would have been ____ed')",
|
||||
formula: "به - ba + Infinitive + کېدل (to be) past participle inflected + Past Subjunctive / Hypothetical Equative"
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
} as T.DisplayFormSubgroup]
|
||||
: [],
|
||||
];
|
||||
const initialFilter = filterFunc
|
||||
? formFilter(forms, filterFunc)
|
||||
: forms;
|
||||
return mode === "chart"
|
||||
? initialFilter
|
||||
: formMap(
|
||||
formFilter(initialFilter, (f) => f.sentence),
|
||||
makeSentence,
|
||||
conj.info,
|
||||
subject,
|
||||
object,
|
||||
negative,
|
||||
);
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
convertAfToPkSpelling,
|
||||
convertPkToAfSpelling,
|
||||
} from "./convert-spelling";
|
||||
|
||||
const pairs = [
|
||||
["سړی", "سړے"],
|
||||
["موسیٰ", "موسیٰ"],
|
||||
["فرمايي", "فرمائی"],
|
||||
["چای", "چائ"],
|
||||
["زوی", "زوئ"],
|
||||
["ښويېدل", "ښوئېدل"],
|
||||
["ويي", "وئی"],
|
||||
["دوستي", "دوستی"],
|
||||
["هييت", "هييت"],
|
||||
["ښيي", "ښيی"],
|
||||
["ستاينه", "ستائينه"],
|
||||
["فرمايل", "فرمائيل"],
|
||||
["ضمائر", "ضمائر"],
|
||||
];
|
||||
|
||||
pairs.forEach((pair) => {
|
||||
test(`${pair[0]} should be converted to ${pair[1]} in Pakistani spelling`, () => {
|
||||
const converted = convertAfToPkSpelling(pair[0]);
|
||||
expect(converted).toBe(pair[1]);
|
||||
});
|
||||
|
||||
test(`${pair[1]} should be converted to ${pair[0]} in Afghan spelling`, () => {
|
||||
const converted = convertPkToAfSpelling(pair[1]);
|
||||
expect(converted).toBe(pair[0]);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
export function convertAfToPkSpelling(input: string): string {
|
||||
const converted = input
|
||||
.replace(/ای(?![\u0621-\u065f\u0670-\u06d3\u06d5])/g, "ائ")
|
||||
.replace(/وی(?![\u0621-\u065f\u0670-\u06d3\u06d5])/g, "وئ")
|
||||
.replace(/ی(?![\u0621-\u065f\u0670-\u06d3\u06d5])/g, "ے")
|
||||
.replace(/ي(?![\u0621-\u065f\u0670-\u06d3\u06d5])/g, "ی")
|
||||
.replace(/(?:ای|اي)(?=ي|ی|ې)/g, "ائ")
|
||||
.replace(/(?:وی|وي)(?=ي|ی|ې)/g, "وئ")
|
||||
.replace(/(?:ای|اي)(?=[\u0621-\u065f\u0670-\u06d3\u06d5])/g, "ائي")
|
||||
.replace(/(?:وی|وي)(?=[\u0621-\u065f\u0670-\u06d3\u06d5])/g, "وئي");
|
||||
return converted;
|
||||
}
|
||||
|
||||
export function convertPkToAfSpelling(input: string): string {
|
||||
const converted = input
|
||||
.replace(/ی(?![\u0621-\u065f\u0670-\u06d3\u06d5])/g, "ي")
|
||||
.replace(/ے(?![\u0621-\u065f\u0670-\u06d3\u06d5])/g, "ی")
|
||||
.replace(/ائ(?![\u0621-\u065f\u0670-\u06d3\u06d5])/g, "ای")
|
||||
.replace(/وئ(?![\u0621-\u065f\u0670-\u06d3\u06d5])/g, "وی")
|
||||
.replace(/(?:ائی|ائي)(?=[\u0621-\u065f\u0670-\u06d3\u06d5])/g, "اي")
|
||||
.replace(/(?:وئی|وئي)(?=[\u0621-\u065f\u0670-\u06d3\u06d5])/g, "وي")
|
||||
.replace(/ائ(?=ي|ی|ې)/g, "اي")
|
||||
.replace(/وئ(?=ي|ی|ې)/g, "وي");
|
||||
return converted;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { TextOptions } from "../types";
|
||||
|
||||
const defualtTextOptions: TextOptions = {
|
||||
pTextSize: "normal",
|
||||
spelling: "Afghan",
|
||||
diacritics: false,
|
||||
dialect: "standard",
|
||||
phonetics: "lingdocs",
|
||||
}
|
||||
|
||||
export default defualtTextOptions;
|
|
@ -0,0 +1,407 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import * as T from "../types";
|
||||
|
||||
// TODO: Automatice syncing of aux verbs from dictionary
|
||||
|
||||
export const dynamicAuxVerbs: Array<
|
||||
{
|
||||
entry: T.DictionaryEntry,
|
||||
complement?: T.DictionaryEntry,
|
||||
}
|
||||
> = [
|
||||
{
|
||||
entry: {"i":10058,"ts":1527812752,"p":"کول","f":"kawul","e":"to do (an action or activity)","c":"v. trans. irreg. dyn. aux.","ssp":"وکړ","ssf":"óokR","prp":"وکړل","prf":"óokRul","pprtp":"کړی","pprtf":"kúRey","diacExcept":true},
|
||||
},
|
||||
{
|
||||
entry: {"i":10122,"ts":1527812754,"p":"کېدل","f":"kedul","e":"to happen, occur","c":"v. intrans. irreg. aux. dyn.","ssp":"وش","ssf":"óosh","prp":"وشول","prf":"óoshwul","pprtp":"شوی","pprtf":"shúwey","diacExcept":true},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts:1527813914,
|
||||
p:"ورکول",
|
||||
f:"wărkawul",
|
||||
e:"to give (to him, her, them, others)",
|
||||
c: "v. trans.",
|
||||
i:12350,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527812157,
|
||||
p: "تېرول",
|
||||
f: "terawul",
|
||||
e: "to pass (time), to take across, to pass, endure (difficulties)",
|
||||
c: "v. stat. comp. trans.",
|
||||
l: 1527813139,
|
||||
i: 3459,
|
||||
},
|
||||
complement: {"i":3774,"ts":1527813139,"p":"تېر","f":"ter","e":"last, past, previous, passed, gone over","c":"adj."},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527815399,
|
||||
p: "وهل",
|
||||
f: "wahul",
|
||||
e: "to hit",
|
||||
c: "v. trans.",
|
||||
i: 12183,
|
||||
tppp: "واهه",
|
||||
tppf: "waahu",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527817026,
|
||||
p: "کښل",
|
||||
f: "kxul",
|
||||
e: "to drag, pull, take out, draw, get",
|
||||
c: "v. trans.",
|
||||
i: 8862,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527814084,
|
||||
p: "لګول",
|
||||
f: "lagawul",
|
||||
e: "to touch, join, use, take, place",
|
||||
c: "v. trans.",
|
||||
i: 9794,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527814084,
|
||||
p: "لګول",
|
||||
f: "lagawul",
|
||||
e: "to touch, join, use, take, place",
|
||||
c: "v. trans.",
|
||||
i: 9794,
|
||||
}
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527817013,
|
||||
p: "ویل",
|
||||
f: "wayl",
|
||||
e: "to say, to tell",
|
||||
c: "v. trans. indir.",
|
||||
i: 12229,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527815396,
|
||||
p: "وایل",
|
||||
f: "waayul",
|
||||
e: "to say, to tell",
|
||||
c: "v. trans. indir.",
|
||||
i: 11929,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527812447,
|
||||
p: "اخستل",
|
||||
f: "akhustul",
|
||||
e: "to take, buy, purchase, receive; to shave, cut with scissors",
|
||||
c: "v. trans.",
|
||||
i: 251,
|
||||
psp: "اخل",
|
||||
psf: "akhl",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527817298,
|
||||
p: "اخیستل",
|
||||
f: "akheestul",
|
||||
e: "to take, buy, purchase, receive; to shave, cut with scissors",
|
||||
c: "v. trans.",
|
||||
i: 266,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527814617,
|
||||
p: "نیول",
|
||||
f: "neewul",
|
||||
e: "to catch, grab, take, arrest; bear (fruit)",
|
||||
c: "v. trans. irreg.",
|
||||
i: 11880,
|
||||
psp: "نیس",
|
||||
psf: "nees",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527811872,
|
||||
p: "اچول",
|
||||
f: "achawul",
|
||||
e: "to pour, drop, throw, put on",
|
||||
c: "v. trans.",
|
||||
i: 194,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527812790,
|
||||
p: "خوړل",
|
||||
f: "khoRul",
|
||||
e: "to eat, to bite",
|
||||
c: "v. trans.",
|
||||
i: 4769,
|
||||
psp: "خور",
|
||||
psf: "khor",
|
||||
tppp: "خوړ",
|
||||
tppf: "khoR",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527811868,
|
||||
p: "غښتل",
|
||||
f: "ghuxtul",
|
||||
e: "to twist, curl, roll up, wrap up",
|
||||
c: "v. trans.",
|
||||
i: 7958,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527816127,
|
||||
p: "اړول",
|
||||
f: "aRawul",
|
||||
e: "to turn over, flip over; convert, change; to move over to, establish oneself in a new spot; divert, turn away, hijack; oblige, force",
|
||||
c: "v. trans.",
|
||||
i: 389,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527812868,
|
||||
p: "لرل",
|
||||
f: "larul",
|
||||
e: "to have, possess",
|
||||
c: "v. trans.",
|
||||
i: 9707,
|
||||
tppp: "لاره",
|
||||
tppf: "laaru",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527813572,
|
||||
p: "رسول",
|
||||
f: "rasawul",
|
||||
e: "to deliver, to make arrive, provide, send, supply, bring to,",
|
||||
c: "v. trans.",
|
||||
i: 5897,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1581619940636,
|
||||
p: "باسل",
|
||||
f: "baasul",
|
||||
e: "to take out, extract, pull out, tear out",
|
||||
c: "v. trans.",
|
||||
i: 1115,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527816146,
|
||||
p: "ایستل",
|
||||
f: "eestul",
|
||||
e: "to throw out, discard, chuck, toss; to extract, to take out",
|
||||
c: "v. trans.",
|
||||
i: 1025,
|
||||
psp: "باس",
|
||||
psf: "baas",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527818123,
|
||||
p: "څنډل",
|
||||
f: "tsanDúl",
|
||||
e: "to shake out, shake off, brush aside",
|
||||
c: "v. trans.",
|
||||
i: 4975,
|
||||
tppp: "څانډ",
|
||||
tppf: "tsaanD",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527814862,
|
||||
p: "وژل",
|
||||
f: "wajzul",
|
||||
e: "to kill, slaughter",
|
||||
c: "v. trans. irreg.",
|
||||
i: 12071,
|
||||
psp: "وژن",
|
||||
psf: "wajzn",
|
||||
tppp: "واژه",
|
||||
tppf: "waajzu",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527813019,
|
||||
p: "ګرول",
|
||||
f: "grawul",
|
||||
e: "to scratch, scrape",
|
||||
c: "v. trans.",
|
||||
i: 9370,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527818260,
|
||||
p: "بادول",
|
||||
f: "baadawúl",
|
||||
e: "to winnow, toss, throw to the wind, squander",
|
||||
c: "v. stat. comp. trans.",
|
||||
l: 1527816345,
|
||||
i: 1088,
|
||||
},
|
||||
complement: {
|
||||
ts: 1527816345,
|
||||
p: "باد",
|
||||
f: "baad",
|
||||
e: "wind, air; swelling, rheumitism",
|
||||
c: "n. m.",
|
||||
i: 1076,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527815343,
|
||||
p: "تېرېدل",
|
||||
f: "teredul",
|
||||
e: "to pass, go across, go by",
|
||||
c: "v. stat. comp. intrans.",
|
||||
l: 1527813139,
|
||||
i: 3461,
|
||||
},
|
||||
complement: {
|
||||
ts: 1527813139,
|
||||
p: "تېر",
|
||||
f: "ter",
|
||||
e: "last, past, previous, passed, gone over",
|
||||
c: "adj.",
|
||||
i: 3449,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1571859113828,
|
||||
p: "پخول",
|
||||
f: "pukhawul",
|
||||
e: "to cook, prepare, to cause to ripen",
|
||||
c: "v. stat. comp. trans.",
|
||||
l: 1574867531681,
|
||||
i: 2011,
|
||||
},
|
||||
complement: {
|
||||
ts: 1574867531681,
|
||||
p: "پوخ",
|
||||
f: "pokh",
|
||||
e: "mature, ripe, ready, cooked, able, skillful, experienced, tried, tested, true",
|
||||
c: "adj. irreg.",
|
||||
i: 2321,
|
||||
infap: "پاخه",
|
||||
infaf: "paakhu",
|
||||
infbp: "پخ",
|
||||
infbf: "pakh",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527817706,
|
||||
p: "ټکول",
|
||||
f: "Takawul",
|
||||
e: "to knock, tap",
|
||||
c: "v. trans.",
|
||||
i: 3568,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527812869,
|
||||
p: "لټول",
|
||||
f: "luTawul",
|
||||
e: "to search, seek",
|
||||
c: "v. trans.",
|
||||
i: 9686,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1574784362578,
|
||||
p: "ډنګول",
|
||||
f: "Dangawul",
|
||||
e: "to make sound, to make ring out, to meat to make a sound (like a symbal, pan, etc.)",
|
||||
c: "v. trans.",
|
||||
i: 5653,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527811289,
|
||||
p: "کېنول",
|
||||
f: "kenawul",
|
||||
e: "to seat, to make or have someone sit down",
|
||||
c: "v. trans.",
|
||||
i: 9240,
|
||||
noOo: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
ts: 1527812873,
|
||||
p: "لوستل",
|
||||
f: "lwustul",
|
||||
e: "to read, study",
|
||||
c: "v. trans. irreg.",
|
||||
i: 10163,
|
||||
psp: "لول",
|
||||
psf: "lwul",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {
|
||||
i:4362,
|
||||
ts:1527814586,
|
||||
p:"چلول",
|
||||
f:"chalawul",
|
||||
e:"to drive, operate, handle, put forward, circulate",
|
||||
c:"v. trans.",
|
||||
},
|
||||
},
|
||||
{
|
||||
entry: {"i":6731,"ts":1527815240,"p":"ساتل","f":"saatul","e":"to keep, protect, watch over; to hold","c":"v. trans."},
|
||||
},
|
||||
{
|
||||
entry: {"i":11782,"ts":1527814053,"p":"موندل","f":"moondúl","e":"to find, acquire, discover, get","c":"v. trans. irreg.","psp":"موم","psf":"moom"},
|
||||
},
|
||||
{
|
||||
entry: {"i":4212,"ts":1527812712,"p":"جوړول","f":"joRawul","e":"to make, form, build, mend","l":1527812711,"c":"v. stat. comp. trans."},
|
||||
complement: {"i":4206,"ts":1527812711,"p":"جوړ","f":"joR","e":"well, healthy, whole, made","c":"adj."},
|
||||
},
|
||||
{
|
||||
entry: {"i":13869,"ts":1527816865,"p":"وړل","f":"wuRúl, oRúl, wRul","e":"to take, carry, bear, move (inanimate objects); to win, earn (subjunctive یوسي - yósee or ویسي - wéesee, simple past یو یې وړلو - yo ye wRulo)","separationAtP":2,"separationAtF":2,"c":"v. trans. irreg.","ssp":"یوس","ssf":"yos","prp":"یوړل","prf":"yóRul","noOo":true,"diacExcept":true},
|
||||
},
|
||||
{
|
||||
entry: {"i":6503,"ts":1527815214,"p":"راوړل","f":"raawRúl","e":"to bring, deliver (inanimate objects)","separationAtP":2,"separationAtF":3,"c":"v. trans. irreg.","noOo":true},
|
||||
},
|
||||
];
|
|
@ -0,0 +1,11 @@
|
|||
import * as T from "../types";
|
||||
|
||||
export const dictionaryEntryTextFields: T.DictionaryEntryTextField[] = [
|
||||
"p", "f", "e", "c", "infap", "infaf", "infbp", "infbf", "app", "apf", "ppp", "ppf", "psp", "psf", "ssp", "ssf", "prp", "prf", "pprtp", "pprtf", "tppp", "tppf",
|
||||
];
|
||||
export const dictionaryEntryBooleanFields: T.DictionaryEntryBooleanField[] = [
|
||||
"noInf", "shortIntrans", "noOo", "sepOo", "diacExcept",
|
||||
]
|
||||
export const dictionaryEntryNumberFields: T.DictionaryEntryNumberField[] = [
|
||||
"ts", "i", "l", "separationAtP", "separationAtF",
|
||||
];
|
|
@ -0,0 +1,617 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { kawulStat } from "./irregular-conjugations";
|
||||
import * as T from "../types";
|
||||
|
||||
export const presentEndings: T.VerbBlock = [
|
||||
[
|
||||
[{
|
||||
p: "م",
|
||||
f: "um"
|
||||
}],
|
||||
[{
|
||||
p: "و",
|
||||
f: "oo"
|
||||
}],
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "م",
|
||||
f: "um"
|
||||
}],
|
||||
[{
|
||||
p: "و",
|
||||
f: "oo"
|
||||
}],
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ې",
|
||||
f: "e"
|
||||
}],
|
||||
[{
|
||||
p: "ئ",
|
||||
f: "eyy"
|
||||
}],
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ې",
|
||||
f: "e"
|
||||
}],
|
||||
[{
|
||||
p: "ئ",
|
||||
f: "eyy"
|
||||
}],
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ي",
|
||||
f: "ee"
|
||||
}],
|
||||
[{
|
||||
p: "ي",
|
||||
f: "ee"
|
||||
}],
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ي",
|
||||
f: "ee"
|
||||
}],
|
||||
[{
|
||||
p: "ي",
|
||||
f: "ee"
|
||||
}],
|
||||
],
|
||||
];
|
||||
|
||||
export const pastEndings: T.VerbBlock = [
|
||||
[
|
||||
[{
|
||||
p: "م",
|
||||
f: "um"
|
||||
}],
|
||||
[{
|
||||
p: "و",
|
||||
f: "oo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "م",
|
||||
f: "um"
|
||||
}],
|
||||
[{
|
||||
p: "و",
|
||||
f: "oo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ې",
|
||||
f: "e"
|
||||
}],
|
||||
[{
|
||||
p: "ئ",
|
||||
f: "eyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ې",
|
||||
f: "e"
|
||||
}],
|
||||
[{
|
||||
p: "ئ",
|
||||
f: "eyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ه",
|
||||
f: "u"
|
||||
},
|
||||
{
|
||||
p: "و",
|
||||
f: "o"
|
||||
},
|
||||
],
|
||||
[{
|
||||
p: "ل",
|
||||
f: "ul"
|
||||
}],
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ه",
|
||||
f: "a"
|
||||
}],
|
||||
[{
|
||||
p: "ې",
|
||||
f: "e"
|
||||
}]
|
||||
],
|
||||
];
|
||||
|
||||
// TODO: MAKE THIS VARIABLE FOR DIALECTS!
|
||||
|
||||
export const aayTail: T.PsString = { p: "ی", f: "ey" };
|
||||
|
||||
export const subjPastEquative: T.PsString = {
|
||||
p: "و" + aayTail.p,
|
||||
f: "w" + aayTail.f,
|
||||
};
|
||||
|
||||
export const equativeEndings: {
|
||||
past: T.LengthOptions<T.VerbBlock>,
|
||||
present: T.VerbBlock,
|
||||
subjunctive: T.VerbBlock,
|
||||
hypothetical: T.VerbBlock,
|
||||
} = {
|
||||
past: {
|
||||
short: [
|
||||
[
|
||||
[{
|
||||
p: "وم",
|
||||
f: "wum"
|
||||
}],
|
||||
[{
|
||||
p: "وو",
|
||||
f: "woo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "وم",
|
||||
f: "wum"
|
||||
}],
|
||||
[{
|
||||
p: "وو",
|
||||
f: "woo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "وې",
|
||||
f: "we"
|
||||
}],
|
||||
[{
|
||||
p: "وئ",
|
||||
f: "weyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "وې",
|
||||
f: "we"
|
||||
}],
|
||||
[{
|
||||
p: "وئ",
|
||||
f: "weyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "و",
|
||||
f: "wo"
|
||||
}],
|
||||
[{
|
||||
p: "ول",
|
||||
f: "wul",
|
||||
}, {
|
||||
p: "وو",
|
||||
f: "woo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "وه",
|
||||
f: "wa"
|
||||
}],
|
||||
[{
|
||||
p: "وې",
|
||||
f: "we"
|
||||
}]
|
||||
],
|
||||
],
|
||||
long: [
|
||||
[
|
||||
[{
|
||||
p: "ولم",
|
||||
f: "wulum"
|
||||
}],
|
||||
[{
|
||||
p: "ولو",
|
||||
f: "wuloo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ولم",
|
||||
f: "wulum"
|
||||
}],
|
||||
[{
|
||||
p: "ولو",
|
||||
f: "wuloo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ولې",
|
||||
f: "wule"
|
||||
}],
|
||||
[{
|
||||
p: "ولئ",
|
||||
f: "wuleyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ولې",
|
||||
f: "wule"
|
||||
}],
|
||||
[{
|
||||
p: "ولئ",
|
||||
f: "wuleyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ولو",
|
||||
f: "wulo"
|
||||
}],
|
||||
[{
|
||||
p: "ول",
|
||||
f: "wul",
|
||||
},
|
||||
{
|
||||
p: "ولو",
|
||||
f: "wuloo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "وله",
|
||||
f: "wula"
|
||||
}],
|
||||
[{
|
||||
p: "ولې",
|
||||
f: "wule"
|
||||
}]
|
||||
],
|
||||
],
|
||||
},
|
||||
present: [
|
||||
[
|
||||
[{
|
||||
p: "یم",
|
||||
f: "yum"
|
||||
}],
|
||||
[{
|
||||
p: "یو",
|
||||
f: "yoo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "یم",
|
||||
f: "yum"
|
||||
}],
|
||||
[{
|
||||
p: "یو",
|
||||
f: "yoo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "یې",
|
||||
f: "ye"
|
||||
}],
|
||||
[{
|
||||
p: "یئ",
|
||||
f: "yeyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "یې",
|
||||
f: "ye"
|
||||
}],
|
||||
[{
|
||||
p: "یئ",
|
||||
f: "yeyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "دی",
|
||||
f: "dey"
|
||||
}],
|
||||
[{
|
||||
p: "دي",
|
||||
f: "dee"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "ده",
|
||||
f: "da"
|
||||
}],
|
||||
[{
|
||||
p: "دي",
|
||||
f: "dee"
|
||||
}]
|
||||
],
|
||||
],
|
||||
subjunctive: [
|
||||
[
|
||||
[{
|
||||
p: "یم",
|
||||
f: "yum"
|
||||
}],
|
||||
[{
|
||||
p: "یو",
|
||||
f: "yoo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "یم",
|
||||
f: "yum"
|
||||
}],
|
||||
[{
|
||||
p: "یو",
|
||||
f: "yoo"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "یې",
|
||||
f: "ye"
|
||||
}],
|
||||
[{
|
||||
p: "یئ",
|
||||
f: "yeyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "یې",
|
||||
f: "ye"
|
||||
}],
|
||||
[{
|
||||
p: "یئ",
|
||||
f: "yeyy"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "وي",
|
||||
f: "wee"
|
||||
}],
|
||||
[{
|
||||
p: "وي",
|
||||
f: "wee"
|
||||
}]
|
||||
],
|
||||
[
|
||||
[{
|
||||
p: "وي",
|
||||
f: "wee"
|
||||
}],
|
||||
[{
|
||||
p: "وي",
|
||||
f: "wee"
|
||||
}]
|
||||
],
|
||||
],
|
||||
hypothetical: [
|
||||
[[subjPastEquative], [subjPastEquative]],
|
||||
[[subjPastEquative], [subjPastEquative]],
|
||||
[[subjPastEquative], [subjPastEquative]],
|
||||
[[subjPastEquative], [subjPastEquative]],
|
||||
[[subjPastEquative], [subjPastEquative]],
|
||||
[[subjPastEquative], [subjPastEquative]],
|
||||
],
|
||||
};
|
||||
|
||||
export const emptyVerbBlock: T.VerbBlock = [
|
||||
[[{p: "", f: ""}], [{p: "", f: ""}]],
|
||||
[[{p: "", f: ""}], [{p: "", f: ""}]],
|
||||
[[{p: "", f: ""}], [{p: "", f: ""}]],
|
||||
[[{p: "", f: ""}], [{p: "", f: ""}]],
|
||||
[[{p: "", f: ""}], [{p: "", f: ""}]],
|
||||
[[{p: "", f: ""}], [{p: "", f: ""}]],
|
||||
];
|
||||
|
||||
export const imperativeEndings: T.ImperativeBlock = [
|
||||
// masc 2nd pers
|
||||
[
|
||||
[{ p: "ه", f: "a" }], // singular
|
||||
[{ p: "ئ", f: "eyy" }], // plural
|
||||
],
|
||||
// fem 2nds pers
|
||||
[
|
||||
[{ p: "ه", f: "a" }], // singular
|
||||
[{ p: "ئ", f: "eyy" }], // plural
|
||||
],
|
||||
];
|
||||
|
||||
export const ooPrefix: T.PsString = { p: "و", f: "oo" };
|
||||
|
||||
export const baParticle: T.PsString = { p: "به", f: "ba" };
|
||||
|
||||
export const presentParticipleSuffix: T.PsString = { p: "ونکی", f: "oonkey" };
|
||||
|
||||
const adjEndingsBlock = [
|
||||
// singular plural
|
||||
[
|
||||
[{
|
||||
p: `ی`,
|
||||
f: `ey`
|
||||
}],
|
||||
[{
|
||||
p: `ي`,
|
||||
f: `ee`
|
||||
}]
|
||||
], // male
|
||||
[
|
||||
[{
|
||||
p: `ې`,
|
||||
f: `e`
|
||||
}],
|
||||
[{
|
||||
p: `ې`,
|
||||
f: `e`
|
||||
}]
|
||||
], // female
|
||||
];
|
||||
|
||||
export const adjectiveEndings = [...adjEndingsBlock, ...adjEndingsBlock, ...adjEndingsBlock] as T.VerbBlock;
|
||||
|
||||
const ksPerf = kawulStat.info.root.perfective as T.LengthOptions<T.PsString>;
|
||||
|
||||
export const passiveStativeBridge = [
|
||||
// TODO: SHORT AND LONG HERE??
|
||||
{
|
||||
short: ksPerf.long,
|
||||
long: ksPerf.long,
|
||||
},
|
||||
{
|
||||
short: {
|
||||
p: ksPerf.short.p + aayTail.p,
|
||||
f: ksPerf.short.f + aayTail.f,
|
||||
},
|
||||
long: {
|
||||
p: ksPerf.long.p + aayTail.p,
|
||||
f: ksPerf.long.f + aayTail.f,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
const basePlainPronouns = [
|
||||
[[{ p: "زه", f: "zu" }], [{ p: "مونږ", f: "moonG" }, { p: "موږ", f: "mooG" }]],
|
||||
[[{ p: "زه", f: "zu" }], [{ p: "مونږ", f: "moonG" }, { p: "موږ", f: "mooG" }]],
|
||||
[[{ p: "ته", f: "tu" }], [{ p: "تاسو", f: "táaso" }, { p: "تاسې", f: "táase" }]],
|
||||
[[{ p: "ته", f: "tu" }], [{ p: "تاسو", f: "táaso" }, { p: "تاسې", f: "táase" }]],
|
||||
];
|
||||
|
||||
const baseInflectedPronouns = [
|
||||
[[{ p: "ما", f: "maa" }], [{ p: "مونږ", f: "moonG" }, { p: "موږ", f: "mooG" }]],
|
||||
[[{ p: "ما", f: "maa" }], [{ p: "مونږ", f: "moonG" }, { p: "موږ", f: "mooG" }]],
|
||||
[[{ p: "تا", f: "taa" }], [{ p: "تاسو", f: "táaso" }, { p: "تاسې", f: "táase" }]],
|
||||
[[{ p: "تا", f: "taa" }], [{ p: "تاسو", f: "táaso" }, { p: "تاسې", f: "táase" }]],
|
||||
];
|
||||
|
||||
const plainPronounsFar = [
|
||||
...basePlainPronouns,
|
||||
[[{ p: "هغه", f: "haghá" }], [{ p: "هغوي", f: "haghwée" }]],
|
||||
[[{ p: "هغه", f: "haghá" }], [{ p: "هغوي", f: "haghwée" }]],
|
||||
] as T.VerbBlock;
|
||||
|
||||
const plainPronounsNear = [
|
||||
...basePlainPronouns,
|
||||
[[{ p: "دی", f: "dey" }], [{ p: "دوي", f: "dwee" }]],
|
||||
[[{ p: "دا", f: "daa" }], [{ p: "دوي", f: "dwee" }]],
|
||||
] as T.VerbBlock;
|
||||
|
||||
const inflectedPronounsFar = [
|
||||
...baseInflectedPronouns,
|
||||
[[{ p: "هغهٔ", f: "haghú" }], [{ p: "هغوي", f: "haghwée" }]],
|
||||
[[{ p: "هغې", f: "haghé" }], [{ p: "هغوي", f: "haghwée" }]],
|
||||
] as T.VerbBlock;
|
||||
|
||||
const inflectedPronounsNear = [
|
||||
...baseInflectedPronouns,
|
||||
[[{ p: "دهٔ", f: "du" }], [{ p: "دوي", f: "dwee" }]],
|
||||
[[{ p: "دې", f: "de" }], [{ p: "دوي", f: "dwee" }]],
|
||||
] as T.VerbBlock;
|
||||
|
||||
const miniPronouns: T.VerbBlock = [
|
||||
[[{ p: "مې", f: "me" }], [{ p: "مو", f: "mU" }]],
|
||||
[[{ p: "مې", f: "me" }], [{ p: "مو", f: "mU" }]],
|
||||
[[{ p: "دې", f: "de" }], [{ p: "مو", f: "mU" }]],
|
||||
[[{ p: "دې", f: "de" }], [{ p: "مو", f: "mU" }]],
|
||||
[[{ p: "یې", f: "ye" }], [{ p: "یې", f: "ye" }]],
|
||||
[[{ p: "یې", f: "ye" }], [{ p: "یې", f: "ye" }]],
|
||||
];
|
||||
|
||||
export const pronouns: {
|
||||
far: {
|
||||
inflected: T.VerbBlock;
|
||||
plain: T.VerbBlock;
|
||||
};
|
||||
near: {
|
||||
plain: T.VerbBlock;
|
||||
inflected: T.VerbBlock;
|
||||
};
|
||||
mini: T.VerbBlock;
|
||||
} = {
|
||||
far: {
|
||||
plain: plainPronounsFar,
|
||||
inflected: inflectedPronounsFar,
|
||||
},
|
||||
near: {
|
||||
plain: plainPronounsNear,
|
||||
inflected: inflectedPronounsNear,
|
||||
},
|
||||
mini: miniPronouns,
|
||||
};
|
||||
|
||||
export const persons = [
|
||||
{
|
||||
label: { subject: "I (m.)", object: "me (m.)" },
|
||||
person: 0,
|
||||
},
|
||||
{
|
||||
label: { subject: "I (f.)", object: "me (f.)" },
|
||||
person: 1,
|
||||
},
|
||||
{
|
||||
label: { subject: "You (m.)", object: "you (m.)" },
|
||||
person: 2,
|
||||
},
|
||||
{
|
||||
label: { subject: "You (f.)", object: "you (f.)" },
|
||||
person: 3,
|
||||
},
|
||||
{
|
||||
label: { subject: "He/it (m.)", object: "him/it (m.)" },
|
||||
person: 4,
|
||||
},
|
||||
{
|
||||
label: { subject: "She/it (f.)", object: "her/it (f.)" },
|
||||
person: 5,
|
||||
},
|
||||
{
|
||||
label: { subject: "We (m. pl.)", object: "us (m. pl.)" },
|
||||
person: 6,
|
||||
},
|
||||
{
|
||||
label: { subject: "We (f. pl.)", object: "us (f. pl.)" },
|
||||
person: 7,
|
||||
},
|
||||
{
|
||||
label: { subject: "You (m. pl.)", object: "you (m. pl.)" },
|
||||
person: 8,
|
||||
},
|
||||
{
|
||||
label: { subject: "You (f. pl.)", object: "you (f. pl.)" },
|
||||
person: 9,
|
||||
},
|
||||
{
|
||||
label: { subject: "They (m. pl.)", object: "them (m. pl.)" },
|
||||
person: 10,
|
||||
},
|
||||
{
|
||||
label: { subject: "They (f. pl.)", object: "them (f. pl.)" },
|
||||
person: 11,
|
||||
},
|
||||
];
|
|
@ -0,0 +1,202 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import * as T from "../types";
|
||||
|
||||
// just for type safety
|
||||
export function noPersInfs(s: T.OptionalPersonInflections<T.LengthOptions<T.PsString>>): T.LengthOptions<T.PsString>;
|
||||
export function noPersInfs(s: T.FullForm<T.PsString>): T.SingleOrLengthOpts<T.PsString>;
|
||||
export function noPersInfs(s:
|
||||
T.OptionalPersonInflections<T.LengthOptions<T.PsString>> | T.FullForm<T.PsString>
|
||||
): T.SingleOrLengthOpts<T.PsString> | T.LengthOptions<T.PsString> {
|
||||
if ("mascSing" in s) {
|
||||
// this path shouldn't be used, just for type safety
|
||||
return s.mascSing;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
export function pickPersInf<T>(s: T.OptionalPersonInflections<T>, persInf: T.PersonInflectionsField): T {
|
||||
if ("mascSing" in s) {
|
||||
return s[persInf];
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
// export function pickPersInf(
|
||||
// s: T.OptionalPersonInflections<T.LengthOptions<T.PsString>>,
|
||||
// persInf: T.PersonInflectionsField,
|
||||
// ): T.LengthOptions<T.PsString>;
|
||||
// export function pickPersInf(
|
||||
// s: T.FullForm<T.PsString>,
|
||||
// persInf: T.PersonInflectionsField,
|
||||
// ): T.SingleOrLengthOpts<T.PsString>;
|
||||
// export function pickPersInf(
|
||||
// s: T.FullForm<T.VerbBlock>,
|
||||
// persInf: T.PersonInflectionsField,
|
||||
// ): T.SingleOrLengthOpts<T.VerbBlock>;
|
||||
// export function pickPersInf(
|
||||
// s: T.SplitInfo,
|
||||
// persInf: T.PersonInflectionsField,
|
||||
// ): T.SingleOrLengthOpts<[T.PsString, T.PsString]>;
|
||||
// export function pickPersInf(
|
||||
// s: T.OptionalPersonInflections<T.LengthOptions<T.PsString>> | T.FullForm<T.PsString> | T.FullForm<T.VerbBlock> | T.SplitInfo,
|
||||
// persInf: T.PersonInflectionsField,
|
||||
// ): T.SingleOrLengthOpts<T.PsString> | T.LengthOptions<T.PsString> | T.SingleOrLengthOpts<T.VerbBlock> | T.SingleOrLengthOpts<[T.PsString, T.PsString]> {
|
||||
// if ("mascSing" in s) {
|
||||
// return s[persInf];
|
||||
// }
|
||||
// return s;
|
||||
// }
|
||||
|
||||
export function hasPersInfs(info: T.NonComboVerbInfo): boolean {
|
||||
return (
|
||||
"mascSing" in info.root.perfective ||
|
||||
"mascSing" in info.stem.perfective ||
|
||||
"mascSing" in info.participle.present ||
|
||||
"mascSing" in info.participle.past
|
||||
);
|
||||
}
|
||||
|
||||
export function chooseParticipleInflection(
|
||||
pPartInfs: T.SingleOrLengthOpts<T.UnisexInflections> | T.SingleOrLengthOpts<T.PsString>,
|
||||
person: T.Person,
|
||||
): T.SingleOrLengthOpts<T.PsString> {
|
||||
if ("long" in pPartInfs) {
|
||||
return {
|
||||
short: chooseParticipleInflection(pPartInfs.short, person) as T.PsString,
|
||||
long: chooseParticipleInflection(pPartInfs.long, person) as T.PsString,
|
||||
};
|
||||
}
|
||||
if ("masc" in pPartInfs) {
|
||||
const gender = personGender(person);
|
||||
const infNum = personIsPlural(person) ? 1 : 0;
|
||||
return pPartInfs[gender][infNum][0];
|
||||
}
|
||||
return pPartInfs; // already just one thing
|
||||
}
|
||||
|
||||
export function getPersonNumber(gender: "masc" | "fem", number: "singular" | "plural"): T.Person {
|
||||
const base = gender === "masc" ? 4 : 5;
|
||||
return base + (number === "singular" ? 0 : 6);
|
||||
}
|
||||
|
||||
export function getPersonInflectionsKey(person: T.Person): T.PersonInflectionsField {
|
||||
return `${personGender(person)}${personIsPlural(person) ? "Plur" : "Sing"}` as T.PersonInflectionsField;
|
||||
}
|
||||
|
||||
export function spaceInForm(form: T.FullForm<T.PsString>): boolean {
|
||||
if ("mascSing" in form) {
|
||||
return spaceInForm(form.mascSing);
|
||||
}
|
||||
if ("long" in form) {
|
||||
return spaceInForm(form.long);
|
||||
}
|
||||
return form.p.includes(" ");
|
||||
}
|
||||
|
||||
export function getPersonFromVerbForm(form: T.SingleOrLengthOpts<T.VerbBlock>, person: T.Person): T.SentenceForm {
|
||||
if ("long" in form) {
|
||||
return {
|
||||
long: getPersonFromVerbForm(form.long, person) as T.ArrayOneOrMore<T.PsString>,
|
||||
short: getPersonFromVerbForm(form.short, person) as T.ArrayOneOrMore<T.PsString>,
|
||||
...form.mini ? {
|
||||
mini: getPersonFromVerbForm(form.mini, person) as T.ArrayOneOrMore<T.PsString>,
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
const [row, col] = getBlockRowCol(person);
|
||||
return form[row][col];
|
||||
}
|
||||
|
||||
export function getBlockRowCol(person: T.Person): [0 | 1 | 2 | 3 | 4 | 5, 0 | 1] {
|
||||
const plural = personIsPlural(person)
|
||||
const row = (plural ? (person - 6) : person) as 0 | 1 | 2 | 3 | 4 | 5;
|
||||
const col = plural ? 1 : 0;
|
||||
return [row, col];
|
||||
}
|
||||
|
||||
export function getAuxTransitivity(trans: T.Transitivity): "transitive" | "intransitive" {
|
||||
return trans === "intransitive" ? "intransitive" : "transitive";
|
||||
}
|
||||
|
||||
export function personGender(person: T.Person): "masc" | "fem" {
|
||||
return person % 2 === 0 ? "masc" : "fem";
|
||||
}
|
||||
|
||||
export function personIsPlural(person: T.Person): boolean {
|
||||
return person > 5;
|
||||
}
|
||||
|
||||
export function getEnglishPersonInfo(person: T.Person): string {
|
||||
const p = [0,1,6,7].includes(person)
|
||||
? "1st pers"
|
||||
: [2,3,8,9].includes(person)
|
||||
? "2nd pers"
|
||||
: "3rd pers";
|
||||
const a = personIsPlural(person) ? "plur" : "sing";
|
||||
const g = personGender(person);
|
||||
return `${p}. ${a}. ${g}.`;
|
||||
}
|
||||
|
||||
export function randomNumber(minInclusive: number, maxExclusive: number): number {
|
||||
return Math.floor(Math.random() * (maxExclusive - minInclusive) + minInclusive);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sees if a possiblePerson (for subject/object) is possible, given the other person
|
||||
*
|
||||
* @param possiblePerson
|
||||
* @param existingPerson
|
||||
*/
|
||||
export function personIsAllowed(possiblePerson: T.Person, existingPerson: T.Person): boolean {
|
||||
const isFirstPerson = (p: T.Person) => [0, 1, 6, 7].includes(p);
|
||||
const isSecondPerson = (p: T.Person) => [2, 3, 8, 9].includes(p);
|
||||
// can't have both subject and object be 1st person
|
||||
if (isFirstPerson(possiblePerson) && isFirstPerson(existingPerson)) {
|
||||
return false;
|
||||
}
|
||||
// can't have both subject and object be 2nd person
|
||||
if (isSecondPerson(possiblePerson) && isSecondPerson(existingPerson)) {
|
||||
return false;
|
||||
}
|
||||
// otherwise it's ok
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Picks a random person while assuring that the other person is not in conflict
|
||||
*
|
||||
* @param other
|
||||
*/
|
||||
export function randomPerson(other: T.Person): T.Person {
|
||||
let newPerson: T.Person;
|
||||
do {
|
||||
newPerson = randomNumber(0, 12);
|
||||
} while(!personIsAllowed(newPerson, other));
|
||||
return newPerson;
|
||||
}
|
||||
|
||||
export function incrementPerson(p: T.Person): T.Person {
|
||||
return (p + 1) % 12;
|
||||
}
|
||||
|
||||
export function isSentenceForm(f: any): boolean {
|
||||
if ("long" in f) {
|
||||
return isSentenceForm(f.long);
|
||||
}
|
||||
return Array.isArray(f) && "p" in f[0];
|
||||
}
|
||||
|
||||
// not being used
|
||||
// export function isImperativeBlock(f: any): boolean {
|
||||
// function isPersonLine(g: any): boolean {
|
||||
// return Array.isArray(g) && Array.isArray(g[0]) && "p" in g[0][0];
|
||||
// }
|
||||
// return Array.isArray(f) && f.length === 2 && isPersonLine(f[0]);
|
||||
// }
|
|
@ -0,0 +1,978 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
concatPsString,
|
||||
firstPhonetics,
|
||||
makePsString,
|
||||
removeEndingL,
|
||||
yulEndingInfinitive,
|
||||
mapVerbBlock,
|
||||
allMascFirstInflection,
|
||||
addToForm,
|
||||
unisexInfToObjectMatrix,
|
||||
complementInflects,
|
||||
concatInflections,
|
||||
psStringEquals,
|
||||
removeRetroflexR,
|
||||
} from "./p-text-helpers";
|
||||
import * as T from "../types";
|
||||
import {
|
||||
pastEndings
|
||||
} from "./grammar-units";
|
||||
|
||||
test(`concatPsString should work`, () => {
|
||||
const input = concatPsString(
|
||||
{ p: "لیکل", f: "leekul" },
|
||||
{ p: "ی", f: "ey" },
|
||||
" ",
|
||||
{ p: "دی", f: "dey" },
|
||||
);
|
||||
expect(input).toEqual({ p: "لیکلی دی", f: "leekuley dey" });
|
||||
// test with length options added
|
||||
const inputWLength = concatPsString(
|
||||
{ p: "خفه", f: "khufa" },
|
||||
" ",
|
||||
{
|
||||
short: { p: "کړو", f: "kRo" },
|
||||
long: { p: "کړلو", f: "kRulo" },
|
||||
},
|
||||
);
|
||||
expect(inputWLength).toEqual({
|
||||
short: { p: "خفه کړو", f: "khufa kRo" },
|
||||
long: { p: "خفه کړلو", f: "khufa kRulo" },
|
||||
});
|
||||
// even with minin
|
||||
const inputWMini = concatPsString(
|
||||
{ p: "خفه", f: "khufa" },
|
||||
" ",
|
||||
{
|
||||
short: { p: "کړی", f: "kRey" },
|
||||
long: { p: "کړلی", f: "kRuley" },
|
||||
},
|
||||
" ",
|
||||
{
|
||||
mini: { p: "کو", f: "ko" },
|
||||
short: { p: "کړو", f: "kRo" },
|
||||
long: { p: "کړلو", f: "kRulo" },
|
||||
},
|
||||
);
|
||||
expect(inputWMini).toEqual({
|
||||
mini: { p: "خفه کړی کو", f: "khufa kRey ko" },
|
||||
short: { p: "خفه کړی کړو", f: "khufa kRey kRo" },
|
||||
long: { p: "خفه کړلی کړلو", f: "khufa kRuley kRulo" },
|
||||
});
|
||||
// also with personInflections
|
||||
const inputWPersInfs = concatPsString(
|
||||
{
|
||||
mascSing: { p: "پوخ", f: "pokh" },
|
||||
mascPlur: { p: "پاخه", f: "paakhu" },
|
||||
femSing: { p: "پخه", f: "pakha" },
|
||||
femPlur: { p: "پخې", f: "pakhe" },
|
||||
},
|
||||
" ",
|
||||
{
|
||||
short: { p: "ک", f: "k" },
|
||||
long: { p: "کړ", f: "kR" },
|
||||
},
|
||||
);
|
||||
expect(inputWPersInfs).toEqual({
|
||||
mascSing: {
|
||||
short: { p: "پوخ ک", f: "pokh k" },
|
||||
long: { p: "پوخ کړ", f: "pokh kR" },
|
||||
},
|
||||
mascPlur: {
|
||||
short: { p: "پاخه ک", f: "paakhu k" },
|
||||
long: { p: "پاخه کړ", f: "paakhu kR" },
|
||||
},
|
||||
femSing: {
|
||||
short: { p: "پخه ک", f: "pakha k" },
|
||||
long: { p: "پخه کړ", f: "pakha kR" },
|
||||
},
|
||||
femPlur: {
|
||||
short: { p: "پخې ک", f: "pakhe k" },
|
||||
long: { p: "پخې کړ", f: "pakhe kR" },
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
test(`addToForm should work`, () => {
|
||||
const block: T.VerbBlock = [
|
||||
[[{p: "شوی", f: "shuwey"}], [{p: "شوي", f: "shuwee"}]],
|
||||
[[{p: "شوې", f: "shuwe"}], [{p: "شوې", f: "shuwe"}]],
|
||||
[[{p: "شوی", f: "shuwey"}], [{p: "شوي", f: "shuwee"}]],
|
||||
[[{p: "شوې", f: "shuwe"}], [{p: "شوې", f: "shuwe"}]],
|
||||
[[{p: "شوی", f: "shuwey"}], [{p: "شوي", f: "shuwee"}]],
|
||||
[[{p: "شوې", f: "shuwe"}], [{p: "شوې", f: "shuwe"}]],
|
||||
];
|
||||
const result = addToForm([{ p: "خفه", f: "khufa" }, " "], block);
|
||||
expect(result).toEqual([
|
||||
[[{p: "خفه شوی", f: "khufa shuwey"}], [{p: "خفه شوي", f: "khufa shuwee"}]],
|
||||
[[{p: "خفه شوې", f: "khufa shuwe"}], [{p: "خفه شوې", f: "khufa shuwe"}]],
|
||||
[[{p: "خفه شوی", f: "khufa shuwey"}], [{p: "خفه شوي", f: "khufa shuwee"}]],
|
||||
[[{p: "خفه شوې", f: "khufa shuwe"}], [{p: "خفه شوې", f: "khufa shuwe"}]],
|
||||
[[{p: "خفه شوی", f: "khufa shuwey"}], [{p: "خفه شوي", f: "khufa shuwee"}]],
|
||||
[[{p: "خفه شوې", f: "khufa shuwe"}], [{p: "خفه شوې", f: "khufa shuwe"}]],
|
||||
]);
|
||||
const result2 = addToForm([{
|
||||
short: { p: "کړی", f: "kRey" },
|
||||
long: { p: "کړلی", f: "kRuley" },
|
||||
}, " "], block);
|
||||
expect(result2).toEqual({
|
||||
short: [
|
||||
[[{p: "کړی شوی", f: "kRey shuwey"}], [{p: "کړی شوي", f: "kRey shuwee"}]],
|
||||
[[{p: "کړی شوې", f: "kRey shuwe"}], [{p: "کړی شوې", f: "kRey shuwe"}]],
|
||||
[[{p: "کړی شوی", f: "kRey shuwey"}], [{p: "کړی شوي", f: "kRey shuwee"}]],
|
||||
[[{p: "کړی شوې", f: "kRey shuwe"}], [{p: "کړی شوې", f: "kRey shuwe"}]],
|
||||
[[{p: "کړی شوی", f: "kRey shuwey"}], [{p: "کړی شوي", f: "kRey shuwee"}]],
|
||||
[[{p: "کړی شوې", f: "kRey shuwe"}], [{p: "کړی شوې", f: "kRey shuwe"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "کړلی شوی", f: "kRuley shuwey"}], [{p: "کړلی شوي", f: "kRuley shuwee"}]],
|
||||
[[{p: "کړلی شوې", f: "kRuley shuwe"}], [{p: "کړلی شوې", f: "kRuley shuwe"}]],
|
||||
[[{p: "کړلی شوی", f: "kRuley shuwey"}], [{p: "کړلی شوي", f: "kRuley shuwee"}]],
|
||||
[[{p: "کړلی شوې", f: "kRuley shuwe"}], [{p: "کړلی شوې", f: "kRuley shuwe"}]],
|
||||
[[{p: "کړلی شوی", f: "kRuley shuwey"}], [{p: "کړلی شوي", f: "kRuley shuwee"}]],
|
||||
[[{p: "کړلی شوې", f: "kRuley shuwe"}], [{p: "کړلی شوې", f: "kRuley shuwe"}]],
|
||||
],
|
||||
});
|
||||
const result3 = addToForm([
|
||||
{
|
||||
masc: [
|
||||
[{ p: "زوړ", f: "zoR" }],
|
||||
[{ p: "زاړه", f: "zaaRu" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
fem: [
|
||||
[{ p: "زړه", f: "zaRa" }],
|
||||
[{ p: "زړې", f: "zaRe" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
},
|
||||
" ",
|
||||
[
|
||||
{ p: "کړل", f: "kRul" },
|
||||
{
|
||||
short: { p: "کړی", f: "kRey" },
|
||||
long: { p: "کړلی", f: "kRuley" },
|
||||
},
|
||||
],
|
||||
" ",
|
||||
], block);
|
||||
const expected3 = {
|
||||
long: [
|
||||
[
|
||||
[{p: "زوړ کړل شوی", f: "zoR kRul shuwey"}, {p: "زوړ کړلی شوی", f: "zoR kRuley shuwey"}],
|
||||
[{p: "زاړه کړل شوي", f: "zaaRu kRul shuwee"}, {p: "زاړه کړلی شوي", f: "zaaRu kRuley shuwee"}]
|
||||
],
|
||||
[
|
||||
[{p: "زړه کړل شوې", f: "zaRa kRul shuwe"}, {p: "زړه کړلی شوې", f: "zaRa kRuley shuwe"}],
|
||||
[{p: "زړې کړل شوې", f: "zaRe kRul shuwe"}, {p: "زړې کړلی شوې", f: "zaRe kRuley shuwe"}],
|
||||
],
|
||||
[
|
||||
[{p: "زوړ کړل شوی", f: "zoR kRul shuwey"}, {p: "زوړ کړلی شوی", f: "zoR kRuley shuwey"}],
|
||||
[{p: "زاړه کړل شوي", f: "zaaRu kRul shuwee"}, {p: "زاړه کړلی شوي", f: "zaaRu kRuley shuwee"}]
|
||||
],
|
||||
[
|
||||
[{p: "زړه کړل شوې", f: "zaRa kRul shuwe"}, {p: "زړه کړلی شوې", f: "zaRa kRuley shuwe"}],
|
||||
[{p: "زړې کړل شوې", f: "zaRe kRul shuwe"}, {p: "زړې کړلی شوې", f: "zaRe kRuley shuwe"}],
|
||||
],
|
||||
[
|
||||
[{p: "زوړ کړل شوی", f: "zoR kRul shuwey"}, {p: "زوړ کړلی شوی", f: "zoR kRuley shuwey"}],
|
||||
[{p: "زاړه کړل شوي", f: "zaaRu kRul shuwee"}, {p: "زاړه کړلی شوي", f: "zaaRu kRuley shuwee"}]
|
||||
],
|
||||
[
|
||||
[{p: "زړه کړل شوې", f: "zaRa kRul shuwe"}, {p: "زړه کړلی شوې", f: "zaRa kRuley shuwe"}],
|
||||
[{p: "زړې کړل شوې", f: "zaRe kRul shuwe"}, {p: "زړې کړلی شوې", f: "zaRe kRuley shuwe"}],
|
||||
],
|
||||
],
|
||||
short: [
|
||||
[
|
||||
[{p: "زوړ کړل شوی", f: "zoR kRul shuwey"}, {p: "زوړ کړی شوی", f: "zoR kRey shuwey"}],
|
||||
[{p: "زاړه کړل شوي", f: "zaaRu kRul shuwee"}, {p: "زاړه کړی شوي", f: "zaaRu kRey shuwee"}]
|
||||
],
|
||||
[
|
||||
[{p: "زړه کړل شوې", f: "zaRa kRul shuwe"}, {p: "زړه کړی شوې", f: "zaRa kRey shuwe"}],
|
||||
[{p: "زړې کړل شوې", f: "zaRe kRul shuwe"}, {p: "زړې کړی شوې", f: "zaRe kRey shuwe"}],
|
||||
],
|
||||
[
|
||||
[{p: "زوړ کړل شوی", f: "zoR kRul shuwey"}, {p: "زوړ کړی شوی", f: "zoR kRey shuwey"}],
|
||||
[{p: "زاړه کړل شوي", f: "zaaRu kRul shuwee"}, {p: "زاړه کړی شوي", f: "zaaRu kRey shuwee"}]
|
||||
],
|
||||
[
|
||||
[{p: "زړه کړل شوې", f: "zaRa kRul shuwe"}, {p: "زړه کړی شوې", f: "zaRa kRey shuwe"}],
|
||||
[{p: "زړې کړل شوې", f: "zaRe kRul shuwe"}, {p: "زړې کړی شوې", f: "zaRe kRey shuwe"}],
|
||||
],
|
||||
[
|
||||
[{p: "زوړ کړل شوی", f: "zoR kRul shuwey"}, {p: "زوړ کړی شوی", f: "zoR kRey shuwey"}],
|
||||
[{p: "زاړه کړل شوي", f: "zaaRu kRul shuwee"}, {p: "زاړه کړی شوي", f: "zaaRu kRey shuwee"}]
|
||||
],
|
||||
[
|
||||
[{p: "زړه کړل شوې", f: "zaRa kRul shuwe"}, {p: "زړه کړی شوې", f: "zaRa kRey shuwe"}],
|
||||
[{p: "زړې کړل شوې", f: "zaRe kRul shuwe"}, {p: "زړې کړی شوې", f: "zaRe kRey shuwe"}],
|
||||
],
|
||||
],
|
||||
};
|
||||
expect(result3).toEqual(expected3);
|
||||
// check with imperative
|
||||
const impFormIntrans: T.ImperativeForm = [
|
||||
[[{p: "شه", f: "sha"}], [{p: "شئ", f: "sheyy"}]],
|
||||
[[{p: "شه", f: "sha"}], [{p: "شئ", f: "sheyy"}]],
|
||||
];
|
||||
const impFormTrans: T.ImperativeForm = [
|
||||
[[{p: "کړه", f: "kRa"}], [{p: "کړئ", f: "kReyy"}]],
|
||||
[[{p: "کړه", f: "kRa"}], [{p: "کړئ", f: "kReyy"}]],
|
||||
];
|
||||
const impFormTransOpts: T.ImperativeForm = {
|
||||
short: [
|
||||
[[{p: "که", f: "ka"}], [{p: "کئ", f: "keyy"}]],
|
||||
[[{p: "که", f: "ka"}], [{p: "کئ", f: "keyy"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "کړه", f: "kRa"}], [{p: "کړئ", f: "kReyy"}]],
|
||||
[[{p: "کړه", f: "kRa"}], [{p: "کړئ", f: "kReyy"}]],
|
||||
],
|
||||
}
|
||||
const unisexComp: T.UnisexInflections = {
|
||||
masc: [
|
||||
[{ p: "زوړ", f: "zoR" }],
|
||||
[{ p: "زاړه", f: "zaaRu" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
fem: [
|
||||
[{ p: "زړه", f: "zaRa" }],
|
||||
[{ p: "زړې", f: "zaRe" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
};
|
||||
const objectMatrix: T.OptionalPersonInflections<T.PsString> = {
|
||||
mascSing: { p: "زوړ", f: "zoR" },
|
||||
mascPlur: { p: "زاړه", f: "zaaRu" },
|
||||
femSing: { p: "زړه", f: "zaRa" },
|
||||
femPlur: { p: "زړې", f: "zaRe" },
|
||||
};
|
||||
expect(addToForm([unisexComp, " "], impFormIntrans)).toEqual([
|
||||
[[{p: "زوړ شه", f: "zoR sha"}], [{p: "زاړه شئ", f: "zaaRu sheyy"}]],
|
||||
[[{p: "زړه شه", f: "zaRa sha"}], [{p: "زړې شئ", f: "zaRe sheyy"}]],
|
||||
]);
|
||||
expect(addToForm([objectMatrix, " "], impFormTrans)).toEqual({
|
||||
mascSing: [
|
||||
[[{p: "زوړ کړه", f: "zoR kRa"}], [{p: "زوړ کړئ", f: "zoR kReyy"}]],
|
||||
[[{p: "زوړ کړه", f: "zoR kRa"}], [{p: "زوړ کړئ", f: "zoR kReyy"}]],
|
||||
],
|
||||
mascPlur: [
|
||||
[[{p: "زاړه کړه", f: "zaaRu kRa"}], [{p: "زاړه کړئ", f: "zaaRu kReyy"}]],
|
||||
[[{p: "زاړه کړه", f: "zaaRu kRa"}], [{p: "زاړه کړئ", f: "zaaRu kReyy"}]],
|
||||
],
|
||||
femSing: [
|
||||
[[{p: "زړه کړه", f: "zaRa kRa"}], [{p: "زړه کړئ", f: "zaRa kReyy"}]],
|
||||
[[{p: "زړه کړه", f: "zaRa kRa"}], [{p: "زړه کړئ", f: "zaRa kReyy"}]],
|
||||
],
|
||||
femPlur: [
|
||||
[[{p: "زړې کړه", f: "zaRe kRa"}], [{p: "زړې کړئ", f: "zaRe kReyy"}]],
|
||||
[[{p: "زړې کړه", f: "zaRe kRa"}], [{p: "زړې کړئ", f: "zaRe kReyy"}]],
|
||||
],
|
||||
});
|
||||
expect(addToForm([objectMatrix, " "], impFormTransOpts)).toEqual({
|
||||
mascSing: {
|
||||
short: [
|
||||
[[{p: "زوړ که", f: "zoR ka"}], [{p: "زوړ کئ", f: "zoR keyy"}]],
|
||||
[[{p: "زوړ که", f: "zoR ka"}], [{p: "زوړ کئ", f: "zoR keyy"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "زوړ کړه", f: "zoR kRa"}], [{p: "زوړ کړئ", f: "zoR kReyy"}]],
|
||||
[[{p: "زوړ کړه", f: "zoR kRa"}], [{p: "زوړ کړئ", f: "zoR kReyy"}]],
|
||||
],
|
||||
},
|
||||
mascPlur: {
|
||||
short: [
|
||||
[[{p: "زاړه که", f: "zaaRu ka"}], [{p: "زاړه کئ", f: "zaaRu keyy"}]],
|
||||
[[{p: "زاړه که", f: "zaaRu ka"}], [{p: "زاړه کئ", f: "zaaRu keyy"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "زاړه کړه", f: "zaaRu kRa"}], [{p: "زاړه کړئ", f: "zaaRu kReyy"}]],
|
||||
[[{p: "زاړه کړه", f: "zaaRu kRa"}], [{p: "زاړه کړئ", f: "zaaRu kReyy"}]],
|
||||
],
|
||||
},
|
||||
femSing: {
|
||||
short: [
|
||||
[[{p: "زړه که", f: "zaRa ka"}], [{p: "زړه کئ", f: "zaRa keyy"}]],
|
||||
[[{p: "زړه که", f: "zaRa ka"}], [{p: "زړه کئ", f: "zaRa keyy"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "زړه کړه", f: "zaRa kRa"}], [{p: "زړه کړئ", f: "zaRa kReyy"}]],
|
||||
[[{p: "زړه کړه", f: "zaRa kRa"}], [{p: "زړه کړئ", f: "zaRa kReyy"}]],
|
||||
],
|
||||
},
|
||||
femPlur: {
|
||||
short: [
|
||||
[[{p: "زړې که", f: "zaRe ka"}], [{p: "زړې کئ", f: "zaRe keyy"}]],
|
||||
[[{p: "زړې که", f: "zaRe ka"}], [{p: "زړې کئ", f: "zaRe keyy"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "زړې کړه", f: "zaRe kRa"}], [{p: "زړې کړئ", f: "zaRe kReyy"}]],
|
||||
[[{p: "زړې کړه", f: "zaRe kRa"}], [{p: "زړې کړئ", f: "zaRe kReyy"}]],
|
||||
],
|
||||
},
|
||||
});
|
||||
const matrixBase: T.VerbForm = {
|
||||
mascSing: [
|
||||
[[{p: "ستړی کوم", f: "stuRey kawum"}], [{p: "ستړی کوو", f: "stuRey kawoo"}]],
|
||||
[[{p: "ستړی کوم", f: "stuRey kawum"}], [{p: "ستړی کوو", f: "stuRey kawoo"}]],
|
||||
[[{p: "ستړی کوې", f: "stuRey kawe"}], [{p: "ستړی کوئ", f: "stuRey kaweyy"}]],
|
||||
[[{p: "ستړی کوې", f: "stuRey kawe"}], [{p: "ستړی کوئ", f: "stuRey kaweyy"}]],
|
||||
[[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
[[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
],
|
||||
mascPlur: [
|
||||
[[{p: "ستړي ستړي کوم", f: "stuRee kawum"}], [{p: "ستړي کوو", f: "stuRee kawoo"}]],
|
||||
[[{p: "ستړي ستړي کوم", f: "stuRee kawum"}], [{p: "ستړي کوو", f: "stuRee kawoo"}]],
|
||||
[[{p: "ستړي ستړي کوې", f: "stuRee kawe"}], [{p: "ستړي کوئ", f: "stuRee kaweyy"}]],
|
||||
[[{p: "ستړي ستړي کوې", f: "stuRee kawe"}], [{p: "ستړي کوئ", f: "stuRee kaweyy"}]],
|
||||
[[{p: "ستړي ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
[[{p: "ستړي ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
],
|
||||
femSing: [
|
||||
[[{p: "ستړې کوم", f: "stuRe kawum"}], [{p: "ستړې کوو", f: "stuRe kawoo"}]],
|
||||
[[{p: "ستړې کوم", f: "stuRe kawum"}], [{p: "ستړې کوو", f: "stuRe kawoo"}]],
|
||||
[[{p: "ستړې کوې", f: "stuRe kawe"}], [{p: "ستړې کوئ", f: "stuRe kaweyy"}]],
|
||||
[[{p: "ستړې کوې", f: "stuRe kawe"}], [{p: "ستړې کوئ", f: "stuRe kaweyy"}]],
|
||||
[[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
[[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
],
|
||||
femPlur: [
|
||||
[[{p: "ستړې کوم", f: "stuRe kawum"}], [{p: "ستړې کوو", f: "stuRe kawoo"}]],
|
||||
[[{p: "ستړې کوم", f: "stuRe kawum"}], [{p: "ستړې کوو", f: "stuRe kawoo"}]],
|
||||
[[{p: "ستړې کوې", f: "stuRe kawe"}], [{p: "ستړې کوئ", f: "stuRe kaweyy"}]],
|
||||
[[{p: "ستړې کوې", f: "stuRe kawe"}], [{p: "ستړې کوئ", f: "stuRe kaweyy"}]],
|
||||
[[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
[[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
],
|
||||
};
|
||||
expect(addToForm([objectMatrix, " ", { p: "به", f: "ba" }, " "], matrixBase)).toEqual({
|
||||
mascSing: [
|
||||
[[{p: "زوړ به ستړی کوم", f: "zoR ba stuRey kawum"}], [{p: "زوړ به ستړی کوو", f: "zoR ba stuRey kawoo"}]],
|
||||
[[{p: "زوړ به ستړی کوم", f: "zoR ba stuRey kawum"}], [{p: "زوړ به ستړی کوو", f: "zoR ba stuRey kawoo"}]],
|
||||
[[{p: "زوړ به ستړی کوې", f: "zoR ba stuRey kawe"}], [{p: "زوړ به ستړی کوئ", f: "zoR ba stuRey kaweyy"}]],
|
||||
[[{p: "زوړ به ستړی کوې", f: "zoR ba stuRey kawe"}], [{p: "زوړ به ستړی کوئ", f: "zoR ba stuRey kaweyy"}]],
|
||||
[[{p: "زوړ به ستړی کوي", f: "zoR ba stuRey kawee"}], [{p: "زوړ به ستړی کوي", f: "zoR ba stuRey kawee"}]],
|
||||
[[{p: "زوړ به ستړی کوي", f: "zoR ba stuRey kawee"}], [{p: "زوړ به ستړی کوي", f: "zoR ba stuRey kawee"}]],
|
||||
],
|
||||
mascPlur: [
|
||||
[[{p: "زاړه به ستړي ستړي کوم", f: "zaaRu ba stuRee kawum"}], [{p: "زاړه به ستړي کوو", f: "zaaRu ba stuRee kawoo"}]],
|
||||
[[{p: "زاړه به ستړي ستړي کوم", f: "zaaRu ba stuRee kawum"}], [{p: "زاړه به ستړي کوو", f: "zaaRu ba stuRee kawoo"}]],
|
||||
[[{p: "زاړه به ستړي ستړي کوې", f: "zaaRu ba stuRee kawe"}], [{p: "زاړه به ستړي کوئ", f: "zaaRu ba stuRee kaweyy"}]],
|
||||
[[{p: "زاړه به ستړي ستړي کوې", f: "zaaRu ba stuRee kawe"}], [{p: "زاړه به ستړي کوئ", f: "zaaRu ba stuRee kaweyy"}]],
|
||||
[[{p: "زاړه به ستړي ستړي کوي", f: "zaaRu ba stuRee kawee"}], [{p: "زاړه به ستړي کوي", f: "zaaRu ba stuRee kawee"}]],
|
||||
[[{p: "زاړه به ستړي ستړي کوي", f: "zaaRu ba stuRee kawee"}], [{p: "زاړه به ستړي کوي", f: "zaaRu ba stuRee kawee"}]],
|
||||
],
|
||||
femSing: [
|
||||
[[{p: "زړه به ستړې کوم", f: "zaRa ba stuRe kawum"}], [{p: "زړه به ستړې کوو", f: "zaRa ba stuRe kawoo"}]],
|
||||
[[{p: "زړه به ستړې کوم", f: "zaRa ba stuRe kawum"}], [{p: "زړه به ستړې کوو", f: "zaRa ba stuRe kawoo"}]],
|
||||
[[{p: "زړه به ستړې کوې", f: "zaRa ba stuRe kawe"}], [{p: "زړه به ستړې کوئ", f: "zaRa ba stuRe kaweyy"}]],
|
||||
[[{p: "زړه به ستړې کوې", f: "zaRa ba stuRe kawe"}], [{p: "زړه به ستړې کوئ", f: "zaRa ba stuRe kaweyy"}]],
|
||||
[[{p: "زړه به ستړې کوي", f: "zaRa ba stuRe kawee"}], [{p: "زړه به ستړې کوي", f: "zaRa ba stuRe kawee"}]],
|
||||
[[{p: "زړه به ستړې کوي", f: "zaRa ba stuRe kawee"}], [{p: "زړه به ستړې کوي", f: "zaRa ba stuRe kawee"}]],
|
||||
],
|
||||
femPlur: [
|
||||
[[{p: "زړې به ستړې کوم", f: "zaRe ba stuRe kawum"}], [{p: "زړې به ستړې کوو", f: "zaRe ba stuRe kawoo"}]],
|
||||
[[{p: "زړې به ستړې کوم", f: "zaRe ba stuRe kawum"}], [{p: "زړې به ستړې کوو", f: "zaRe ba stuRe kawoo"}]],
|
||||
[[{p: "زړې به ستړې کوې", f: "zaRe ba stuRe kawe"}], [{p: "زړې به ستړې کوئ", f: "zaRe ba stuRe kaweyy"}]],
|
||||
[[{p: "زړې به ستړې کوې", f: "zaRe ba stuRe kawe"}], [{p: "زړې به ستړې کوئ", f: "zaRe ba stuRe kaweyy"}]],
|
||||
[[{p: "زړې به ستړې کوي", f: "zaRe ba stuRe kawee"}], [{p: "زړې به ستړې کوي", f: "zaRe ba stuRe kawee"}]],
|
||||
[[{p: "زړې به ستړې کوي", f: "zaRe ba stuRe kawee"}], [{p: "زړې به ستړې کوي", f: "zaRe ba stuRe kawee"}]],
|
||||
],
|
||||
});
|
||||
const kawulSimpPast: T.VerbForm = {
|
||||
mini: [
|
||||
[[{p: "کم", f: "kum"}], [{p: "کو", f: "koo"}]],
|
||||
[[{p: "کم", f: "kum"}], [{p: "کو", f: "koo"}]],
|
||||
[[{p: "کې", f: "ke"}], [{p: "کئ", f: "keyy"}]],
|
||||
[[{p: "کې", f: "ke"}], [{p: "کئ", f: "keyy"}]],
|
||||
[[{p: "که", f: "ku"}, {p: "کو", f: "ko"}], [{p: "کړل", f: "kRul"}, { p: "کو", f: "koo" }]],
|
||||
[[{p: "که", f: "ka"}], [{p: "کې", f: "ke"}]],
|
||||
],
|
||||
short: [
|
||||
[[{p: "کړم", f: "kRum"}], [{p: "کړو", f: "kRoo"}]],
|
||||
[[{p: "کړم", f: "kRum"}], [{p: "کړو", f: "kRoo"}]],
|
||||
[[{p: "کړې", f: "kRe"}], [{p: "کړئ", f: "kReyy"}]],
|
||||
[[{p: "کړې", f: "kRe"}], [{p: "کړئ", f: "kReyy"}]],
|
||||
[[{p: "کړه", f: "kRu"}, {p: "کړو", f: "kRo"}, {p: "کړ", f: "kuR"}], [{p: "کړل", f: "kRul"}, {p: "کړو", f: "kRoo" }]],
|
||||
[[{p: "کړه", f: "kRa"}], [{p: "کړې", f: "kRe"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "کړلم", f: "kRulum"}], [{p: "کړلو", f: "kRuloo"}]],
|
||||
[[{p: "کړلم", f: "kRulum"}], [{p: "کړلو", f: "kRuloo"}]],
|
||||
[[{p: "کړلې", f: "kRule"}], [{p: "کړلئ", f: "kRuleyy"}]],
|
||||
[[{p: "کړلې", f: "kRule"}], [{p: "کړلئ", f: "kRuleyy"}]],
|
||||
[[{p: "کړله", f: "kRulu"}, {p: "کړلو", f: "kRulo"}], [{p: "کړل", f: "kRul"}, {p: "کړلو", f: "kRuloo"}]],
|
||||
[[{p: "کړله", f: "kRula"}], [{p: "کړلې", f: "kRule"}]],
|
||||
],
|
||||
};
|
||||
expect(addToForm([{ p: "به", f: "ba" }, " "], kawulSimpPast)).toEqual({
|
||||
mini: [
|
||||
[[{p: "به کم", f: "ba kum"}], [{p: "به کو", f: "ba koo"}]],
|
||||
[[{p: "به کم", f: "ba kum"}], [{p: "به کو", f: "ba koo"}]],
|
||||
[[{p: "به کې", f: "ba ke"}], [{p: "به کئ", f: "ba keyy"}]],
|
||||
[[{p: "به کې", f: "ba ke"}], [{p: "به کئ", f: "ba keyy"}]],
|
||||
[[{p: "به که", f: "ba ku"}, {p: "به کو", f: "ba ko"}], [{p: "به کړل", f: "ba kRul"}, { p: "به کو", f: "ba koo" }]],
|
||||
[[{p: "به که", f: "ba ka"}], [{p: "به کې", f: "ba ke"}]],
|
||||
],
|
||||
short: [
|
||||
[[{p: "به کړم", f: "ba kRum"}], [{p: "به کړو", f: "ba kRoo"}]],
|
||||
[[{p: "به کړم", f: "ba kRum"}], [{p: "به کړو", f: "ba kRoo"}]],
|
||||
[[{p: "به کړې", f: "ba kRe"}], [{p: "به کړئ", f: "ba kReyy"}]],
|
||||
[[{p: "به کړې", f: "ba kRe"}], [{p: "به کړئ", f: "ba kReyy"}]],
|
||||
[[{p: "به کړه", f: "ba kRu"}, {p: "به کړو", f: "ba kRo"}, {p: "به کړ", f: "ba kuR"}], [{p: "به کړل", f: "ba kRul"}, {p: "به کړو", f: "ba kRoo" }]],
|
||||
[[{p: "به کړه", f: "ba kRa"}], [{p: "به کړې", f: "ba kRe"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "به کړلم", f: "ba kRulum"}], [{p: "به کړلو", f: "ba kRuloo"}]],
|
||||
[[{p: "به کړلم", f: "ba kRulum"}], [{p: "به کړلو", f: "ba kRuloo"}]],
|
||||
[[{p: "به کړلې", f: "ba kRule"}], [{p: "به کړلئ", f: "ba kRuleyy"}]],
|
||||
[[{p: "به کړلې", f: "ba kRule"}], [{p: "به کړلئ", f: "ba kRuleyy"}]],
|
||||
[[{p: "به کړله", f: "ba kRulu"}, {p: "به کړلو", f: "ba kRulo"}], [{p: "به کړل", f: "ba kRul"}, {p: "به کړلو", f: "ba kRuloo"}]],
|
||||
[[{p: "به کړله", f: "ba kRula"}], [{p: "به کړلې", f: "ba kRule"}]],
|
||||
],
|
||||
});
|
||||
expect(addToForm([{
|
||||
long: { p: "به", f: "ba" },
|
||||
short: { p: "ب", f: "b" },
|
||||
}, " "], kawulSimpPast)).toEqual({
|
||||
mini: [
|
||||
[[{p: "ب کم", f: "b kum"}], [{p: "ب کو", f: "b koo"}]],
|
||||
[[{p: "ب کم", f: "b kum"}], [{p: "ب کو", f: "b koo"}]],
|
||||
[[{p: "ب کې", f: "b ke"}], [{p: "ب کئ", f: "b keyy"}]],
|
||||
[[{p: "ب کې", f: "b ke"}], [{p: "ب کئ", f: "b keyy"}]],
|
||||
[[{p: "ب که", f: "b ku"}, {p: "ب کو", f: "b ko"}], [{p: "ب کړل", f: "b kRul"}, { p: "ب کو", f: "b koo" }]],
|
||||
[[{p: "ب که", f: "b ka"}], [{p: "ب کې", f: "b ke"}]],
|
||||
],
|
||||
short: [
|
||||
[[{p: "ب کړم", f: "b kRum"}], [{p: "ب کړو", f: "b kRoo"}]],
|
||||
[[{p: "ب کړم", f: "b kRum"}], [{p: "ب کړو", f: "b kRoo"}]],
|
||||
[[{p: "ب کړې", f: "b kRe"}], [{p: "ب کړئ", f: "b kReyy"}]],
|
||||
[[{p: "ب کړې", f: "b kRe"}], [{p: "ب کړئ", f: "b kReyy"}]],
|
||||
[[{p: "ب کړه", f: "b kRu"}, {p: "ب کړو", f: "b kRo"}, {p: "ب کړ", f: "b kuR"}], [{p: "ب کړل", f: "b kRul"}, {p: "ب کړو", f: "b kRoo" }]],
|
||||
[[{p: "ب کړه", f: "b kRa"}], [{p: "ب کړې", f: "b kRe"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "به کړلم", f: "ba kRulum"}], [{p: "به کړلو", f: "ba kRuloo"}]],
|
||||
[[{p: "به کړلم", f: "ba kRulum"}], [{p: "به کړلو", f: "ba kRuloo"}]],
|
||||
[[{p: "به کړلې", f: "ba kRule"}], [{p: "به کړلئ", f: "ba kRuleyy"}]],
|
||||
[[{p: "به کړلې", f: "ba kRule"}], [{p: "به کړلئ", f: "ba kRuleyy"}]],
|
||||
[[{p: "به کړله", f: "ba kRulu"}, {p: "به کړلو", f: "ba kRulo"}], [{p: "به کړل", f: "ba kRul"}, {p: "به کړلو", f: "ba kRuloo"}]],
|
||||
[[{p: "به کړله", f: "ba kRula"}], [{p: "به کړلې", f: "ba kRule"}]],
|
||||
],
|
||||
});
|
||||
expect(addToForm([[{
|
||||
long: { p: "به", f: "ba" },
|
||||
short: { p: "ب", f: "b" },
|
||||
}], " "], kawulSimpPast)).toEqual({
|
||||
mini: [
|
||||
[[{p: "ب کم", f: "b kum"}], [{p: "ب کو", f: "b koo"}]],
|
||||
[[{p: "ب کم", f: "b kum"}], [{p: "ب کو", f: "b koo"}]],
|
||||
[[{p: "ب کې", f: "b ke"}], [{p: "ب کئ", f: "b keyy"}]],
|
||||
[[{p: "ب کې", f: "b ke"}], [{p: "ب کئ", f: "b keyy"}]],
|
||||
[[{p: "ب که", f: "b ku"}, {p: "ب کو", f: "b ko"}], [{p: "ب کړل", f: "b kRul"}, { p: "ب کو", f: "b koo" }]],
|
||||
[[{p: "ب که", f: "b ka"}], [{p: "ب کې", f: "b ke"}]],
|
||||
],
|
||||
short: [
|
||||
[[{p: "ب کړم", f: "b kRum"}], [{p: "ب کړو", f: "b kRoo"}]],
|
||||
[[{p: "ب کړم", f: "b kRum"}], [{p: "ب کړو", f: "b kRoo"}]],
|
||||
[[{p: "ب کړې", f: "b kRe"}], [{p: "ب کړئ", f: "b kReyy"}]],
|
||||
[[{p: "ب کړې", f: "b kRe"}], [{p: "ب کړئ", f: "b kReyy"}]],
|
||||
[[{p: "ب کړه", f: "b kRu"}, {p: "ب کړو", f: "b kRo"}, {p: "ب کړ", f: "b kuR"}], [{p: "ب کړل", f: "b kRul"}, {p: "ب کړو", f: "b kRoo" }]],
|
||||
[[{p: "ب کړه", f: "b kRa"}], [{p: "ب کړې", f: "b kRe"}]],
|
||||
],
|
||||
long: [
|
||||
[[{p: "به کړلم", f: "ba kRulum"}], [{p: "به کړلو", f: "ba kRuloo"}]],
|
||||
[[{p: "به کړلم", f: "ba kRulum"}], [{p: "به کړلو", f: "ba kRuloo"}]],
|
||||
[[{p: "به کړلې", f: "ba kRule"}], [{p: "به کړلئ", f: "ba kRuleyy"}]],
|
||||
[[{p: "به کړلې", f: "ba kRule"}], [{p: "به کړلئ", f: "ba kRuleyy"}]],
|
||||
[[{p: "به کړله", f: "ba kRulu"}, {p: "به کړلو", f: "ba kRulo"}], [{p: "به کړل", f: "ba kRul"}, {p: "به کړلو", f: "ba kRuloo"}]],
|
||||
[[{p: "به کړله", f: "ba kRula"}], [{p: "به کړلې", f: "ba kRule"}]],
|
||||
],
|
||||
});
|
||||
expect(addToForm([{
|
||||
short: { p: "لیک", f: "leek" },
|
||||
long: { p: "لیکل", f: "leekul" },
|
||||
}], pastEndings)).toEqual({
|
||||
short: [
|
||||
[[{ p: "لیکم", f: "leekum" }], [{ p: "لیکو", f: "leekoo" }]],
|
||||
[[{ p: "لیکم", f: "leekum" }], [{ p: "لیکو", f: "leekoo" }]],
|
||||
[[{ p: "لیکې", f: "leeke" }], [{ p: "لیکئ", f: "leekeyy" }]],
|
||||
[[{ p: "لیکې", f: "leeke" }], [{ p: "لیکئ", f: "leekeyy" }]],
|
||||
[[{ p: "لیکه", f: "leeku" }, { p: "لیکو", f: "leeko"}], [{ p: "لیکل", f: "leekul" }]],
|
||||
[[{ p: "لیکه", f: "leeka"}], [{ p: "لیکې", f: "leeke" }]],
|
||||
],
|
||||
long: [
|
||||
[[{ p: "لیکلم", f: "leekulum" }], [{ p: "لیکلو", f: "leekuloo" }]],
|
||||
[[{ p: "لیکلم", f: "leekulum" }], [{ p: "لیکلو", f: "leekuloo" }]],
|
||||
[[{ p: "لیکلې", f: "leekule" }], [{ p: "لیکلئ", f: "leekuleyy" }]],
|
||||
[[{ p: "لیکلې", f: "leekule" }], [{ p: "لیکلئ", f: "leekuleyy" }]],
|
||||
[[{ p: "لیکله", f: "leekulu" }, { p: "لیکلو", f: "leekulo"}], [{ p: "لیکل", f: "leekul"}]],
|
||||
[[{ p: "لیکله", f: "leekula"}], [{ p: "لیکلې", f: "leekule" }]],
|
||||
],
|
||||
});
|
||||
expect(addToForm([{
|
||||
long: { p: "تتت", f: "ttt" },
|
||||
short: { p: "تت", f: "tt" },
|
||||
mini: { p: "ت", f: "t" },
|
||||
}, " "], {
|
||||
long: [
|
||||
[[{p: "کړم", f: "kRum"}], [{p: "کړو", f: "kRoo"}]],
|
||||
[[{p: "کړم", f: "kRum"}], [{p: "کړو", f: "kRoo"}]],
|
||||
[[{p: "کړې", f: "kRe"}], [{p: "کړئ", f: "kReyy"}]],
|
||||
[[{p: "کړې", f: "kRe"}], [{p: "کړئ", f: "kReyy"}]],
|
||||
[[{p: "کړي", f: "kRee"}], [{p: "کړي", f: "kRee"}]],
|
||||
[[{p: "کړي", f: "kRee"}], [{p: "کړي", f: "kRee"}]],
|
||||
],
|
||||
short: [
|
||||
[[{p: "کم", f: "kum"}], [{p: "کو", f: "koo"}]],
|
||||
[[{p: "کم", f: "kum"}], [{p: "کو", f: "koo"}]],
|
||||
[[{p: "کې", f: "ke"}], [{p: "کئ", f: "keyy"}]],
|
||||
[[{p: "کې", f: "ke"}], [{p: "کئ", f: "keyy"}]],
|
||||
[[{p: "کي", f: "kee"}], [{p: "کي", f: "kee"}]],
|
||||
[[{p: "کي", f: "kee"}], [{p: "کي", f: "kee"}]],
|
||||
],
|
||||
})).toEqual({
|
||||
long: [
|
||||
[[{p: "تتت کړم", f: "ttt kRum"}], [{p: "تتت کړو", f: "ttt kRoo"}]],
|
||||
[[{p: "تتت کړم", f: "ttt kRum"}], [{p: "تتت کړو", f: "ttt kRoo"}]],
|
||||
[[{p: "تتت کړې", f: "ttt kRe"}], [{p: "تتت کړئ", f: "ttt kReyy"}]],
|
||||
[[{p: "تتت کړې", f: "ttt kRe"}], [{p: "تتت کړئ", f: "ttt kReyy"}]],
|
||||
[[{p: "تتت کړي", f: "ttt kRee"}], [{p: "تتت کړي", f: "ttt kRee"}]],
|
||||
[[{p: "تتت کړي", f: "ttt kRee"}], [{p: "تتت کړي", f: "ttt kRee"}]],
|
||||
],
|
||||
short: [
|
||||
[[{p: "تت کم", f: "tt kum"}], [{p: "تت کو", f: "tt koo"}]],
|
||||
[[{p: "تت کم", f: "tt kum"}], [{p: "تت کو", f: "tt koo"}]],
|
||||
[[{p: "تت کې", f: "tt ke"}], [{p: "تت کئ", f: "tt keyy"}]],
|
||||
[[{p: "تت کې", f: "tt ke"}], [{p: "تت کئ", f: "tt keyy"}]],
|
||||
[[{p: "تت کي", f: "tt kee"}], [{p: "تت کي", f: "tt kee"}]],
|
||||
[[{p: "تت کي", f: "tt kee"}], [{p: "تت کي", f: "tt kee"}]],
|
||||
],
|
||||
mini: [
|
||||
[[{p: "ت کم", f: "t kum"}], [{p: "ت کو", f: "t koo"}]],
|
||||
[[{p: "ت کم", f: "t kum"}], [{p: "ت کو", f: "t koo"}]],
|
||||
[[{p: "ت کې", f: "t ke"}], [{p: "ت کئ", f: "t keyy"}]],
|
||||
[[{p: "ت کې", f: "t ke"}], [{p: "ت کئ", f: "t keyy"}]],
|
||||
[[{p: "ت کي", f: "t kee"}], [{p: "ت کي", f: "t kee"}]],
|
||||
[[{p: "ت کي", f: "t kee"}], [{p: "ت کي", f: "t kee"}]],
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
test(`unisexInfToObjectMatrix`, () => {
|
||||
expect(unisexInfToObjectMatrix({
|
||||
masc: [
|
||||
[{ p: "زوړ", f: "zoR" }],
|
||||
[{ p: "زاړه", f: "zaaRu" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
fem: [
|
||||
[{ p: "زړه", f: "zaRa" }],
|
||||
[{ p: "زړې", f: "zaRe" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
})).toEqual({
|
||||
mascSing: { p: "زوړ", f: "zoR" },
|
||||
mascPlur: { p: "زاړه", f: "zaaRu" },
|
||||
femSing: { p: "زړه", f: "zaRa" },
|
||||
femPlur: { p: "زړې", f: "zaRe" },
|
||||
});
|
||||
});
|
||||
|
||||
test(`complementInflects`, () => {
|
||||
expect(complementInflects({
|
||||
masc: [
|
||||
[{ p: "زوړ", f: "zoR" }],
|
||||
[{ p: "زاړه", f: "zaaRu" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
fem: [
|
||||
[{ p: "زړه", f: "zaRa" }],
|
||||
[{ p: "زړې", f: "zaRe" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
})).toBe(true);
|
||||
expect(complementInflects({
|
||||
masc: [
|
||||
[{ p: "خفه", f: "khufa" }],
|
||||
[{ p: "خفه", f: "khufa" }],
|
||||
[{ p: "خفه", f: "khufao" }],
|
||||
],
|
||||
fem: [
|
||||
[{ p: "خفه", f: "khufa" }],
|
||||
[{ p: "خفه", f: "khufa" }],
|
||||
[{ p: "خفه", f: "khufa" }],
|
||||
],
|
||||
})).toBe(false);
|
||||
});
|
||||
|
||||
test(`firstPhonetics should work`, () => {
|
||||
expect(firstPhonetics("ist'imaal, istimaal")).toBe("ist'imaal");
|
||||
expect(firstPhonetics("kor")).toBe("kor");
|
||||
});
|
||||
|
||||
test(`makePsString should work`, () => {
|
||||
expect(makePsString("کور", "kor")).toEqual({ p: "کور", f: "kor" });
|
||||
});
|
||||
|
||||
test(`removeEndingL should work`, () => {
|
||||
expect(removeEndingL(makePsString("لیدل", "leedúl"))).toEqual(
|
||||
makePsString("لید", "leed"),
|
||||
);
|
||||
expect(removeEndingL(makePsString("لیدل", "leedul"))).toEqual(
|
||||
makePsString("لید", "leed"),
|
||||
);
|
||||
expect(removeEndingL(makePsString("پرېښود", "prexod"))).toEqual(
|
||||
makePsString("پرېښود", "prexod"),
|
||||
);
|
||||
});
|
||||
|
||||
test(`yulEndingInfinitive should work`, () => {
|
||||
expect(yulEndingInfinitive({ p: "وایل", f: "waayul" })).toBe(true);
|
||||
expect(yulEndingInfinitive({ p: "لیکل", f: "leekúl" })).toBe(false);
|
||||
});
|
||||
|
||||
test(`mapVerbBlock should work`, () => {
|
||||
expect(
|
||||
mapVerbBlock(
|
||||
(ps: T.PsString) => concatPsString({ p: "به", f: "ba" }, " ", ps),
|
||||
[
|
||||
[[{p: "کېدم", f: "kedum"}], [{p: "کېدو", f: "kedoo"}]],
|
||||
[[{p: "کېدم", f: "kedum"}], [{p: "کېدو", f: "kedoo"}]],
|
||||
[[{p: "کېدې", f: "kede"}], [{p: "کېدئ", f: "kedeyy"}]],
|
||||
[[{p: "کېدې", f: "kede"}], [{p: "کېدئ", f: "kedeyy"}]],
|
||||
[[{p: "کېده", f: "kedu"}, {p: "کېدو", f: "kedo"}], [{p: "کېدل", f: "kedul"}]],
|
||||
[[{p: "کېده", f: "keda"}], [{p: "کېدې", f: "kede"}]],
|
||||
],
|
||||
)
|
||||
).toEqual([
|
||||
[[{p: "به کېدم", f: "ba kedum"}], [{p: "به کېدو", f: "ba kedoo"}]],
|
||||
[[{p: "به کېدم", f: "ba kedum"}], [{p: "به کېدو", f: "ba kedoo"}]],
|
||||
[[{p: "به کېدې", f: "ba kede"}], [{p: "به کېدئ", f: "ba kedeyy"}]],
|
||||
[[{p: "به کېدې", f: "ba kede"}], [{p: "به کېدئ", f: "ba kedeyy"}]],
|
||||
[[{p: "به کېده", f: "ba kedu"}, {p: "به کېدو", f: "ba kedo"}], [{p: "به کېدل", f: "ba kedul"}]],
|
||||
[[{p: "به کېده", f: "ba keda"}], [{p: "به کېدې", f: "ba kede"}]],
|
||||
])
|
||||
})
|
||||
|
||||
// test(`allThirdPersMascPlur should work`, () => {
|
||||
// expect(
|
||||
// allThirdPersMascPlur([
|
||||
// [[{p: "کېدم", f: "kedum"}], [{p: "کېدو", f: "kedoo"}]],
|
||||
// [[{p: "کېدم", f: "kedum"}], [{p: "کېدو", f: "kedoo"}]],
|
||||
// [[{p: "کېدې", f: "kede"}], [{p: "کېدئ", f: "kedeyy"}]],
|
||||
// [[{p: "کېدې", f: "kede"}], [{p: "کېدئ", f: "kedeyy"}]],
|
||||
// [[{p: "کېده", f: "kedu"}, {p: "کېدو", f: "kedo"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېده", f: "keda"}], [{p: "کېدې", f: "kede"}]]
|
||||
// ])
|
||||
// ).toEqual([
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// ]);
|
||||
// expect(
|
||||
// allThirdPersMascPlur({
|
||||
// short: [
|
||||
// [[{p: "کېدم", f: "kedum"}], [{p: "کېدو", f: "kedoo"}]],
|
||||
// [[{p: "کېدم", f: "kedum"}], [{p: "کېدو", f: "kedoo"}]],
|
||||
// [[{p: "کېدې", f: "kede"}], [{p: "کېدئ", f: "kedeyy"}]],
|
||||
// [[{p: "کېدې", f: "kede"}], [{p: "کېدئ", f: "kedeyy"}]],
|
||||
// [[{p: "کېده", f: "kedu"}, {p: "کېدو", f: "kedo"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېده", f: "keda"}], [{p: "کېدې", f: "kede"}]],
|
||||
// ],
|
||||
// long: [
|
||||
// [[{p: "کېدلم", f: "kedulum"}], [{p: "کېدلو", f: "keduloo"}]],
|
||||
// [[{p: "کېدلم", f: "kedulum"}], [{p: "کېدلو", f: "keduloo"}]],
|
||||
// [[{p: "کېدلې", f: "kedule"}], [{p: "کېدلئ", f: "keduleyy"}]],
|
||||
// [[{p: "کېدلې", f: "kedule"}], [{p: "کېدلئ", f: "keduleyy"}]],
|
||||
// [[{p: "کېدله", f: "kedulu"}, {p: "کېدلو", f: "kedulo"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدله", f: "kedula"}], [{p: "کېدلې", f: "kedule"}]],
|
||||
// ],
|
||||
// })
|
||||
// ).toEqual({
|
||||
// short: [
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// ],
|
||||
// long: [
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// [[{p: "کېدل", f: "kedul"}], [{p: "کېدل", f: "kedul"}]],
|
||||
// ],
|
||||
// });
|
||||
// const matrixBase: VerbForm = {
|
||||
// mascSing: [
|
||||
// [[{p: "ستړی کوم", f: "stuRey kawum"}], [{p: "ستړی کوو", f: "stuRey kawoo"}]],
|
||||
// [[{p: "ستړی کوم", f: "stuRey kawum"}], [{p: "ستړی کوو", f: "stuRey kawoo"}]],
|
||||
// [[{p: "ستړی کوې", f: "stuRey kawe"}], [{p: "ستړی کوئ", f: "stuRey kaweyy"}]],
|
||||
// [[{p: "ستړی کوې", f: "stuRey kawe"}], [{p: "ستړی کوئ", f: "stuRey kaweyy"}]],
|
||||
// [[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
// [[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
// ],
|
||||
// mascPlur: [
|
||||
// [[{p: "ستړي کوم", f: "stuRee kawum"}], [{p: "ستړي کوو", f: "stuRee kawoo"}]],
|
||||
// [[{p: "ستړي کوم", f: "stuRee kawum"}], [{p: "ستړي کوو", f: "stuRee kawoo"}]],
|
||||
// [[{p: "ستړي کوې", f: "stuRee kawe"}], [{p: "ستړي کوئ", f: "stuRee kaweyy"}]],
|
||||
// [[{p: "ستړي کوې", f: "stuRee kawe"}], [{p: "ستړي کوئ", f: "stuRee kaweyy"}]],
|
||||
// [[{p: "ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
// [[{p: "ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
// ],
|
||||
// femSing: [
|
||||
// [[{p: "ستړې کوم", f: "stuRe kawum"}], [{p: "ستړې کوو", f: "stuRe kawoo"}]],
|
||||
// [[{p: "ستړې کوم", f: "stuRe kawum"}], [{p: "ستړې کوو", f: "stuRe kawoo"}]],
|
||||
// [[{p: "ستړې کوې", f: "stuRe kawe"}], [{p: "ستړې کوئ", f: "stuRe kaweyy"}]],
|
||||
// [[{p: "ستړې کوې", f: "stuRe kawe"}], [{p: "ستړې کوئ", f: "stuRe kaweyy"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// ],
|
||||
// femPlur: [
|
||||
// [[{p: "ستړې کوم", f: "stuRe kawum"}], [{p: "ستړې کوو", f: "stuRe kawoo"}]],
|
||||
// [[{p: "ستړې کوم", f: "stuRe kawum"}], [{p: "ستړې کوو", f: "stuRe kawoo"}]],
|
||||
// [[{p: "ستړې کوې", f: "stuRe kawe"}], [{p: "ستړې کوئ", f: "stuRe kaweyy"}]],
|
||||
// [[{p: "ستړې کوې", f: "stuRe kawe"}], [{p: "ستړې کوئ", f: "stuRe kaweyy"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// ],
|
||||
// };
|
||||
|
||||
// // NOTE: This should never really be used, because this is only used of the past tense
|
||||
// // versions on grammatically transitive verbs and the objectMatrixes are only used with
|
||||
// // present forms of verbs, but testing to cover all type safety
|
||||
// expect(allThirdPersMascPlur(matrixBase)).toEqual({
|
||||
// mascSing: [
|
||||
// [[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
// [[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
// [[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
// [[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
// [[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
// [[{p: "ستړی کوي", f: "stuRey kawee"}], [{p: "ستړی کوي", f: "stuRey kawee"}]],
|
||||
// ],
|
||||
// mascPlur: [
|
||||
// [[{p: "ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
// [[{p: "ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
// [[{p: "ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
// [[{p: "ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
// [[{p: "ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
// [[{p: "ستړي کوي", f: "stuRee kawee"}], [{p: "ستړي کوي", f: "stuRee kawee"}]],
|
||||
// ],
|
||||
// femSing: [
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// ],
|
||||
// femPlur: [
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// [[{p: "ستړې کوي", f: "stuRe kawee"}], [{p: "ستړې کوي", f: "stuRe kawee"}]],
|
||||
// ],
|
||||
// });
|
||||
// });
|
||||
|
||||
test(`allMascFirstInflection should work`, () => {
|
||||
expect(
|
||||
allMascFirstInflection({
|
||||
masc: [
|
||||
[{p: "زوړ", f: "zoR"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زړو", f: "zaRo"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "زړه", f: "zaRa"}],
|
||||
[{p: "زړې", f: "zaRe"}],
|
||||
[{p: "زړو", f: "zaRo"}],
|
||||
],
|
||||
})
|
||||
).toEqual({
|
||||
masc: [
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
],
|
||||
})
|
||||
expect(
|
||||
allMascFirstInflection({
|
||||
short: {
|
||||
masc: [
|
||||
[{p: "زوړ", f: "zoR"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زړو", f: "zaRo"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "زړه", f: "zaRa"}],
|
||||
[{p: "زړې", f: "zaRe"}],
|
||||
[{p: "زړو", f: "zaRo"}],
|
||||
],
|
||||
},
|
||||
long: {
|
||||
masc: [
|
||||
[{p: "زووړ", f: "zoooR"}],
|
||||
[{p: "زاااړه", f: "zaaaaRu"}],
|
||||
[{p: "زړو", f: "zaRo"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "زړه", f: "zaRa"}],
|
||||
[{p: "زړې", f: "zaRe"}],
|
||||
[{p: "زړو", f: "zaRo"}],
|
||||
],
|
||||
}
|
||||
})
|
||||
).toEqual({
|
||||
short: {
|
||||
masc: [
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
],
|
||||
},
|
||||
long: {
|
||||
masc: [
|
||||
[{p: "زاااړه", f: "zaaaaRu"}],
|
||||
[{p: "زاااړه", f: "zaaaaRu"}],
|
||||
[{p: "زاااړه", f: "zaaaaRu"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "زاااړه", f: "zaaaaRu"}],
|
||||
[{p: "زاااړه", f: "zaaaaRu"}],
|
||||
[{p: "زاااړه", f: "zaaaaRu"}],
|
||||
],
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
test('concat inflections', () => {
|
||||
const unisexInfs: T.UnisexInflections = {
|
||||
masc: [
|
||||
[{ p: "زوړ", f: "zoR" }],
|
||||
[{ p: "زاړه", f: "zaaRu" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
fem: [
|
||||
[{ p: "زړه", f: "zaRa" }],
|
||||
[{ p: "زړې", f: "zaRe" }],
|
||||
[{ p: "زړو", f: "zaRo" }],
|
||||
],
|
||||
};
|
||||
const partInfs: T.UnisexInflections = {
|
||||
masc: [
|
||||
[{p: "شوی", f: "shuwey"}],
|
||||
[{p: "شوي", f: "shuwee"}],
|
||||
[{p: "شویو", f: "shuwiyo" }, { p: "شوو", f: "shuwo" }],
|
||||
],
|
||||
fem: [
|
||||
[{p: "شوې", f: "shuwe"}],
|
||||
[{p: "شوې", f: "shuwe"}],
|
||||
[{p: "شوو", f: "shuwo"}],
|
||||
],
|
||||
};
|
||||
expect(concatInflections(unisexInfs, partInfs)).toEqual({
|
||||
masc: [
|
||||
[{p: "زوړ شوی", f: "zoR shuwey"}],
|
||||
[{p: "زاړه شوي", f: "zaaRu shuwee"}],
|
||||
[{p: "زړو شویو", f: "zaRo shuwiyo"}, {p: "زړو شوو", f: "zaRo shuwo"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "زړه شوې", f: "zaRa shuwe"}],
|
||||
[{p: "زړې شوې", f: "zaRe shuwe"}],
|
||||
[{p: "زړو شوو", f: "zaRo shuwo"}],
|
||||
],
|
||||
});
|
||||
// TODO: Should also work this way
|
||||
// const unisexInfs2: UnisexInflections = {
|
||||
// masc: [
|
||||
// [{ p: "زوړ", f: "zoR" }, { p: "تور", f: "tor"}],
|
||||
// [{ p: "زاړه", f: "zaaRu" }],
|
||||
// [{ p: "زړو", f: "zaRo" }],
|
||||
// ],
|
||||
// fem: [
|
||||
// [{ p: "زړه", f: "zaRa" }],
|
||||
// [{ p: "زړې", f: "zaRe" }],
|
||||
// [{ p: "زړو", f: "zaRo" }],
|
||||
// ],
|
||||
// };
|
||||
// const partInfs2: UnisexInflections = {
|
||||
// masc: [
|
||||
// [{p: "شوی", f: "shuwey"}],
|
||||
// [{p: "شوي", f: "shuwee"}],
|
||||
// [{p: "شویو", f: "shuwiyo" }],
|
||||
// ],
|
||||
// fem: [
|
||||
// [{p: "شوې", f: "shuwe"}],
|
||||
// [{p: "شوې", f: "shuwe"}],
|
||||
// [{p: "شوو", f: "shuwo"}],
|
||||
// ],
|
||||
// };
|
||||
// expect(concatInflections(unisexInfs2, partInfs2)).toEqual({
|
||||
// masc: [
|
||||
// [{p: "زوړ شوی", f: "zoR shuwey"}, {p: "تور شوی", f: "tor shuwey"}],
|
||||
// [{p: "زاړه شوي", f: "zaaRu shuwee"}],
|
||||
// [{p: "زړو شویو", f: "zaRo shuwiyo"}],
|
||||
// ],
|
||||
// fem: [
|
||||
// [{p: "زړه شوې", f: "zaRa shuwe"}],
|
||||
// [{p: "زړې شوې", f: "zaRe shuwe"}],
|
||||
// [{p: "زړو شوو", f: "zaRo shuwo"}],
|
||||
// ],
|
||||
// });
|
||||
expect(concatInflections({ p: "خفه", f: "khufa" }, partInfs)).toEqual({
|
||||
masc: [
|
||||
[{p: "خفه شوی", f: "khufa shuwey"}],
|
||||
[{p: "خفه شوي", f: "khufa shuwee"}],
|
||||
[{p: "خفه شویو", f: "khufa shuwiyo"}, {p: "خفه شوو", f: "khufa shuwo"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "خفه شوې", f: "khufa shuwe"}],
|
||||
[{p: "خفه شوې", f: "khufa shuwe"}],
|
||||
[{p: "خفه شوو", f: "khufa shuwo"}],
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
test("psStringEquals", () => {
|
||||
expect(
|
||||
psStringEquals({ p: "تور", f: "tor" }, { p: "تور", f: "tor" })
|
||||
).toBe(true);
|
||||
expect(
|
||||
psStringEquals({ p: "بور", f: "bor" }, { p: "تور", f: "tor" })
|
||||
).toBe(false);
|
||||
});
|
||||
|
||||
test("removeRetroflexR", () => {
|
||||
expect(
|
||||
removeRetroflexR({ p: "وکړ", f: "óokR" }),
|
||||
).toEqual({ p: "وک", f: "óok" });
|
||||
});
|
|
@ -0,0 +1,713 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
inflectRegularYeyUnisex,
|
||||
} from "./pashto-inflector";
|
||||
import { baParticle } from "./grammar-units";
|
||||
import {
|
||||
getBlockRowCol,
|
||||
getPersonInflectionsKey,
|
||||
} from "./misc-helpers";
|
||||
import * as T from "../types";
|
||||
|
||||
/**
|
||||
* Concats sections of Pashto text with Pashto and Phonetics
|
||||
* in PsString type, also accepts spaces as " "
|
||||
*
|
||||
* @param items
|
||||
*/
|
||||
export function concatPsString(...items: Array<T.PsString | " " | "">): T.PsString;
|
||||
export function concatPsString(...items: Array<T.PsString | T.LengthOptions<T.PsString> | " " | "">): T.LengthOptions<T.PsString>;
|
||||
export function concatPsString(...items: Array<T.PsString | T.LengthOptions<T.PsString> | T.OptionalPersonInflections<T.LengthOptions<T.PsString>> | " " | "">): T.OptionalPersonInflections<T.LengthOptions<T.PsString>>;
|
||||
export function concatPsString(...items: Array<T.PsString | T.FullForm<T.PsString> | " " | "">): T.FullForm<T.PsString>;
|
||||
export function concatPsString(...items: Array<T.PsString | T.LengthOptions<T.PsString> | T.FullForm<T.PsString> | " " | "">): T.FullForm<T.PsString> {
|
||||
const hasPersonInflections = items.some((x) => ((typeof x !== "string") && ("mascSing" in x)));
|
||||
if (hasPersonInflections) {
|
||||
const forceInflection = (
|
||||
arr: Array<T.FullForm<T.PsString> | " " | "">,
|
||||
inflection: T.PersonInflectionsField,
|
||||
): Array<T.SingleOrLengthOpts<T.PsString> | " " | ""> => (
|
||||
arr.map((element) => (typeof element !== "string" && "mascSing" in element)
|
||||
? element[inflection]
|
||||
: element
|
||||
)
|
||||
)
|
||||
return {
|
||||
mascSing: concatPsString(...forceInflection(items, "mascSing")),
|
||||
mascPlur: concatPsString(...forceInflection(items, "mascPlur")),
|
||||
femSing: concatPsString(...forceInflection(items, "femSing")),
|
||||
femPlur: concatPsString(...forceInflection(items, "femPlur")),
|
||||
};
|
||||
}
|
||||
const itemsWOutPersInfs = items as ("" | " " | T.SingleOrLengthOpts<T.PsString>)[];
|
||||
const hasLengthOptions = itemsWOutPersInfs.some((x) => (typeof x !== "string") && ("long" in x));
|
||||
if (hasLengthOptions) {
|
||||
const forceLength = (
|
||||
arr: Array<T.SingleOrLengthOpts<T.PsString> | " ">,
|
||||
length: "long" | "short" | "mini",
|
||||
): Array<T.PsString | " "> => (
|
||||
arr.map((element) => (element !== " " && "long" in element)
|
||||
? element[length] || element.short
|
||||
: element
|
||||
)
|
||||
);
|
||||
const hasMini = itemsWOutPersInfs.some((x) => typeof x !== "string" && ("mini" in x));
|
||||
return {
|
||||
...hasMini ? {
|
||||
mini: concatPsString(...forceLength(items as Array<T.SingleOrLengthOpts<T.PsString> | " ">, "mini")),
|
||||
} : {},
|
||||
short: concatPsString(...forceLength(items as Array<T.SingleOrLengthOpts<T.PsString> | " ">, "short")),
|
||||
long: concatPsString(...forceLength(items as Array<T.SingleOrLengthOpts<T.PsString> | " ">, "long")),
|
||||
};
|
||||
}
|
||||
const itemsWOutLengthOptions = itemsWOutPersInfs as ("" | " " | T.PsString)[];
|
||||
const concatField = (k: T.PsStringField): string => (
|
||||
itemsWOutLengthOptions.map((item): string => {
|
||||
if (item === " ") return " ";
|
||||
if (item === "") return "";
|
||||
return item[k];
|
||||
}).join("")
|
||||
);
|
||||
return {
|
||||
p: concatField("p"),
|
||||
f: concatField("f"),
|
||||
};
|
||||
}
|
||||
|
||||
export function psFunction(ps: T.PsString, func: (s: string) => string): T.PsString {
|
||||
return makePsString(
|
||||
func(ps.p),
|
||||
func(ps.f),
|
||||
);
|
||||
}
|
||||
|
||||
export function psIncludes(ps: T.PsString, inc: T.PsString): boolean {
|
||||
return ps.p.includes(inc.p) && ps.f.includes(inc.f);
|
||||
}
|
||||
|
||||
export function hasBaParticle(ps: T.PsString): boolean {
|
||||
return psIncludes(ps, concatPsString(baParticle, " "));
|
||||
}
|
||||
|
||||
export function psRemove(ps: T.PsString, remove: T.PsString): T.PsString {
|
||||
return makePsString(
|
||||
ps.p.replace(remove.p, ""),
|
||||
ps.f.replace(remove.f, ""),
|
||||
);
|
||||
}
|
||||
|
||||
export function psInsertWord(ps: T.PsString, toInsert: T.PsString, pos: number): T.PsString {
|
||||
const pWords = ps.p.split(" ");
|
||||
const fWords = ps.f.split(" ");
|
||||
const pIns = [...pWords.slice(0, pos), toInsert.p, ...pWords.slice(pos)];
|
||||
const fIns = [...fWords.slice(0, pos), toInsert.f, ...fWords.slice(pos)];
|
||||
return makePsString(
|
||||
pIns.join(" "),
|
||||
fIns.join(" "),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* If a به - ba particle is present in a PsString form, ensure that it is placed in word pos
|
||||
* If no به - ba is present, return as is
|
||||
*
|
||||
* @param ps
|
||||
* @param pos
|
||||
*/
|
||||
export function ensureBaAt(ps: T.PsString, pos: number): T.PsString;
|
||||
export function ensureBaAt(ps: T.SingleOrLengthOpts<T.PsString>, pos: number): T.SingleOrLengthOpts<T.PsString>;
|
||||
export function ensureBaAt(ps: T.FullForm<T.PsString>, pos: number): T.FullForm<T.PsString>;
|
||||
export function ensureBaAt(ps: T.FullForm<T.PsString>, pos: number): T.FullForm<T.PsString> {
|
||||
if ("mascSing" in ps) {
|
||||
return {
|
||||
mascSing: ensureBaAt(ps.mascSing, pos),
|
||||
mascPlur: ensureBaAt(ps.mascPlur, pos),
|
||||
femSing: ensureBaAt(ps.femSing, pos),
|
||||
femPlur: ensureBaAt(ps.femPlur, pos),
|
||||
};
|
||||
}
|
||||
if ("long" in ps) {
|
||||
return {
|
||||
long: ensureBaAt(ps.long, pos),
|
||||
short: ensureBaAt(ps.short, pos),
|
||||
...ps.mini ? {
|
||||
mini: ensureBaAt(ps.mini, pos),
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
if (!psIncludes(ps, concatPsString(baParticle, " "))) {
|
||||
return ps;
|
||||
}
|
||||
const baRemoved = psRemove(ps, concatPsString(baParticle, " "));
|
||||
const baInserted = psInsertWord(baRemoved, baParticle, pos);
|
||||
return baInserted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first phonetics value in a comma-seperated list
|
||||
*
|
||||
* @param f - a phonetics string
|
||||
*/
|
||||
export function firstPhonetics(f: string): string {
|
||||
return f.split(",")[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* returs a PsString or DictionaryEntry ensuring only one phonetics variation
|
||||
*
|
||||
* @param ps
|
||||
*/
|
||||
export function removeFVariants(ps: T.PsString): T.PsString {
|
||||
return {
|
||||
...ps,
|
||||
f: firstPhonetics(ps.f),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets us know if all the forms of a verb block are the same
|
||||
*
|
||||
* @param block
|
||||
*/
|
||||
export function isAllOne (block: T.VerbBlock | T.ImperativeBlock): boolean {
|
||||
return block.reduce((isTheSame, row, i, src) => (
|
||||
isTheSame &&
|
||||
psStringEquals(row[0][0], src[0][0][0]) &&
|
||||
psStringEquals(row[1][0], src[1][0][0])
|
||||
), true) as unknown as boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a Pashto string structure
|
||||
*
|
||||
* @param p - the Pashto text
|
||||
* @param f - the phonetics text
|
||||
*/
|
||||
export function makePsString(p: string, f: string): T.PsString {
|
||||
return { p, f };
|
||||
}
|
||||
|
||||
/**
|
||||
* Retuns a Pashto string with the ل - ul on the end removed
|
||||
*
|
||||
* @param s
|
||||
*/
|
||||
export function removeEndingL(s: T.PsString): T.PsString {
|
||||
const lOnEnd = (): boolean => {
|
||||
const lastPLetter = s.p.slice(-1);
|
||||
const lastFLetters = s.f.slice(-2);
|
||||
return lastPLetter === "ل" && ["ul", "úl"].includes(lastFLetters);
|
||||
};
|
||||
if (!lOnEnd()) return s;
|
||||
return {
|
||||
p: s.p.substr(0, s.p.length-1),
|
||||
f: s.f.substr(0, s.f.length-2),
|
||||
};
|
||||
}
|
||||
|
||||
function getMatchingInflection(
|
||||
infs: T.UnisexInflections,
|
||||
persNum: number,
|
||||
singPlur: number,
|
||||
): T.PsString {
|
||||
return infs[persNum % 2 === 0 ? "masc" : "fem"][singPlur][0];
|
||||
}
|
||||
|
||||
export function isVerbBlock(x: any) {
|
||||
return (
|
||||
Array.isArray(x) &&
|
||||
(x.length === 6) &&
|
||||
"p" in x[0][0][0]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
type toAddToForm = Array<" " | T.SingleOrLengthOpts<T.PsString> | T.SingleOrLengthOpts<T.UnisexInflections> | T.SingleOrLengthOpts<T.PsString>[] | T.OptionalPersonInflections<T.PsString> | T.VerbBlock>;
|
||||
type toAddToFormLengthChosen = Array<" " | T.PsString | T.UnisexInflections | T.PsString[] | T.OptionalPersonInflections<T.PsString> | T.VerbBlock>;
|
||||
export function addToForm(
|
||||
toAdd: toAddToForm,
|
||||
base: T.VerbForm,
|
||||
disableLCheck?: boolean,
|
||||
): T.VerbForm;
|
||||
export function addToForm(
|
||||
toAdd: toAddToForm,
|
||||
base: T.ImperativeForm,
|
||||
disableLCheck?: boolean,
|
||||
): T.ImperativeForm;
|
||||
export function addToForm(
|
||||
toAdd: toAddToForm,
|
||||
base: T.VerbForm | T.ImperativeForm,
|
||||
disableLCheck?: boolean,
|
||||
): T.VerbForm | T.ImperativeForm {
|
||||
function startsWithBa(ps: T.PsString): boolean {
|
||||
const start = makePsString(
|
||||
ps.p.slice(0, 3),
|
||||
ps.f.slice(0, 3),
|
||||
);
|
||||
return psStringEquals(
|
||||
start,
|
||||
concatPsString(baParticle, " "),
|
||||
);
|
||||
}
|
||||
function removeBa(ps: T.PsString): T.PsString {
|
||||
return makePsString(
|
||||
ps.p.slice(3),
|
||||
ps.f.slice(3),
|
||||
);
|
||||
}
|
||||
const toAddIncludesObjectMatrix = () => (
|
||||
toAdd.some((x) => x !== " " && "mascSing" in x)
|
||||
);
|
||||
// TODO: Weird stuff with overloading throwing errors
|
||||
function makeNonObjectMatrixForm(
|
||||
base: T.VerbBlock | T.LengthOptions<T.VerbBlock>,
|
||||
presObject?: "mascSing" | "mascPlur" | "femSing" | "femPlur",
|
||||
): T.SingleOrLengthOpts<T.VerbBlock>;
|
||||
function makeNonObjectMatrixForm(
|
||||
base: T.ImperativeBlock | T.LengthOptions<T.ImperativeBlock> | T.VerbBlock | T.LengthOptions<T.VerbBlock>,
|
||||
presObject?: "mascSing" | "mascPlur" | "femSing" | "femPlur",
|
||||
): T.SingleOrLengthOpts<T.ImperativeBlock>;
|
||||
function makeNonObjectMatrixForm(
|
||||
base: T.SingleOrLengthOpts<T.VerbBlock> | T.SingleOrLengthOpts<T.ImperativeBlock>,
|
||||
presObject?: "mascSing" | "mascPlur" | "femSing" | "femPlur",
|
||||
): T.SingleOrLengthOpts<T.VerbBlock> | T.SingleOrLengthOpts<T.ImperativeBlock> {
|
||||
function makeLengthOption(length: "short" | "long" | "mini"): T.ImperativeBlock;
|
||||
function makeLengthOption(length: "short" | "long" | "mini"): T.VerbBlock;
|
||||
function makeLengthOption(length: "short" | "long" | "mini"): T.ImperativeForm | T.VerbBlock {
|
||||
// If the base is long and there are also length options in toAdd,
|
||||
// then make the short and long versions of the base as variations on each item
|
||||
const multiplyEachVariationBy = toAdd.reduce((acc, cur) => (
|
||||
// make sure we don't make 6 variations when concating a verb block to a verb block!
|
||||
(Array.isArray(cur) && !isVerbBlock(cur)) ? Math.max(acc, cur.length) : acc
|
||||
), 1)
|
||||
const b = "long" in base
|
||||
? base[length] || base.short // in case mini does not exist
|
||||
: base;
|
||||
const addingLengthChosen: toAddToFormLengthChosen = toAdd.map((element) => {
|
||||
if (element !== " " && "long" in element) {
|
||||
return element[length] || element.short;
|
||||
}
|
||||
if (Array.isArray(element)) {
|
||||
const arr = element as T.SingleOrLengthOpts<T.PsString>[] | T.VerbBlock;
|
||||
return arr.map((e: any) => "long" in e ? (e[length] || e.short) : e)
|
||||
}
|
||||
return element;
|
||||
});
|
||||
const makeItem = (ps: T.PsString, persNum: number, singPlur: number, variation: number, verbBlock?: boolean): T.PsString => {
|
||||
const add = addingLengthChosen.map((e) => {
|
||||
if (e === " ") return e;
|
||||
if (isVerbBlock(e)) {
|
||||
const block = e as T.VerbBlock;
|
||||
return block[persNum][singPlur][0];
|
||||
}
|
||||
const f = e as T.UnisexInflections | T.PsString[] | T.OptionalPersonInflections<T.PsString>;
|
||||
if (Array.isArray(f)) {
|
||||
return f[Math.min(variation, f.length-1)];
|
||||
}
|
||||
if ("masc" in f) {
|
||||
return getMatchingInflection(f, persNum as number, singPlur as number);
|
||||
}
|
||||
if ("mascSing" in f) {
|
||||
return f[presObject || /* istanbul ignore next */ "mascSing"];
|
||||
}
|
||||
return f;
|
||||
});
|
||||
// avoid adding the redundant ل on past verb endings
|
||||
// TODO: If there's a ba in front, remove it and put it on the front
|
||||
return (length === "long") && verbBlock && (ps.p === "ل") && !disableLCheck
|
||||
? concatPsString(...add)
|
||||
: startsWithBa(ps)
|
||||
? concatPsString(baParticle, " ", ...add, removeBa(ps))
|
||||
: concatPsString(...add, ps);
|
||||
}
|
||||
if (b.length === 6) {
|
||||
return b.map((person, persNum) => (
|
||||
person.map((item, singPlur) => (
|
||||
// @ts-ignore
|
||||
item.reduce((vars, ps) => {
|
||||
const varIndexes = [...Array(multiplyEachVariationBy).keys()];
|
||||
return [
|
||||
...vars,
|
||||
...varIndexes.map((varIndex) => (
|
||||
makeItem(ps, persNum, singPlur, varIndex, true)
|
||||
)),
|
||||
];
|
||||
}, []) as unknown as T.ArrayOneOrMore<T.PsString>
|
||||
))
|
||||
)) as T.VerbBlock;
|
||||
}
|
||||
// TODO: CHECK IF THE IMPERATIVE BLOCKS WORK??
|
||||
return mapImperativeBlock((ps, persNumber, singPlur) => (
|
||||
makeItem(ps, persNumber as number, singPlur as number, 0)
|
||||
), b);
|
||||
}
|
||||
const useLengthOptions = (
|
||||
("long" in base) ||
|
||||
toAdd.some((element) => (
|
||||
(element !== " " && "long" in element)
|
||||
||
|
||||
// @ts-ignore
|
||||
(Array.isArray(element) && element.some((e) => "long" in e))
|
||||
))
|
||||
);
|
||||
if (useLengthOptions) {
|
||||
// might be totally unneccessary...
|
||||
const miniInToAdd = toAdd.some((x) => (
|
||||
x !== " " && "mini" in x
|
||||
));
|
||||
return {
|
||||
long: makeLengthOption("long"),
|
||||
short: makeLengthOption("short"),
|
||||
...("mini" in base || miniInToAdd) ? {
|
||||
mini: makeLengthOption("mini"),
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
// there are no length options in any of the elements or base
|
||||
return makeLengthOption("long");
|
||||
}
|
||||
if (toAddIncludesObjectMatrix() && !("mascSing" in base)) {
|
||||
return {
|
||||
mascSing: makeNonObjectMatrixForm(base, "mascSing"),
|
||||
mascPlur: makeNonObjectMatrixForm(base, "mascPlur"),
|
||||
femSing: makeNonObjectMatrixForm(base, "femSing"),
|
||||
femPlur: makeNonObjectMatrixForm(base, "femPlur"),
|
||||
};
|
||||
}
|
||||
if ("mascSing" in base) {
|
||||
return {
|
||||
// TODO: Is this really what we want to do?
|
||||
// is there ever a case where we would want the object matrix of a compliment
|
||||
// to line up with the object matrix of a base verb?
|
||||
mascSing: makeNonObjectMatrixForm(base.mascSing, "mascSing"),
|
||||
mascPlur: makeNonObjectMatrixForm(base.mascPlur, "mascPlur"),
|
||||
femSing: makeNonObjectMatrixForm(base.femSing, "femSing"),
|
||||
femPlur: makeNonObjectMatrixForm(base.femPlur, "femPlur"),
|
||||
};
|
||||
}
|
||||
return makeNonObjectMatrixForm(base);
|
||||
}
|
||||
|
||||
function mapImperativeBlock(f: (ps: T.PsString, i?: number, j?: number) => T.PsString, block: T.ImperativeBlock): T.ImperativeBlock {
|
||||
return block.map((person, i) => (
|
||||
person.map((item, j) => (
|
||||
item.map((variation) => (
|
||||
f(variation, i, j)
|
||||
))
|
||||
))
|
||||
)) as T.ImperativeBlock;
|
||||
}
|
||||
|
||||
export function mapVerbBlock(f: (ps: T.PsString, i?: number, j?: number) => T.PsString, block: T.VerbBlock): T.VerbBlock {
|
||||
return block.map((person, i) => (
|
||||
person.map((item, j) => (
|
||||
item.map((variation) => (
|
||||
f(variation, i, j)
|
||||
))
|
||||
))
|
||||
)) as T.VerbBlock;
|
||||
}
|
||||
|
||||
export function unisexInfToObjectMatrix(inf: T.UnisexInflections): T.OptionalPersonInflections<T.PsString> {
|
||||
return {
|
||||
mascSing: inf.masc[0][0],
|
||||
mascPlur: inf.masc[1][0],
|
||||
femSing: inf.fem[0][0],
|
||||
femPlur: inf.fem[1][0],
|
||||
};
|
||||
}
|
||||
|
||||
export function concatInflections(
|
||||
comp: T.PsString | T.SingleOrLengthOpts<T.UnisexInflections>, infs: T.SingleOrLengthOpts<T.UnisexInflections>
|
||||
): T.SingleOrLengthOpts<T.UnisexInflections> {
|
||||
const containsLengthOptions = "long" in infs || "long" in comp;
|
||||
const ensureL = <T>(x: T.SingleOrLengthOpts<T>, length: "short" | "long"): T => (
|
||||
("long" in x) ? x[length] : x
|
||||
);
|
||||
if (containsLengthOptions) {
|
||||
return {
|
||||
short: concatInflections(
|
||||
ensureL(comp, "short"),
|
||||
ensureL(infs, "short"),
|
||||
) as T.UnisexInflections,
|
||||
long: concatInflections(
|
||||
ensureL(comp, "long"),
|
||||
ensureL(infs, "long"),
|
||||
) as T.UnisexInflections,
|
||||
};
|
||||
}
|
||||
// now length options are removed
|
||||
const complement = comp as T.PsString | T.UnisexInflections;
|
||||
const infsOneL = infs as T.UnisexInflections;
|
||||
const mapGender = (gender: "masc" | "fem") => (
|
||||
infsOneL[gender].map((inf: T.ArrayOneOrMore<T.PsString>, i) => (
|
||||
inf.map((variation) => {
|
||||
const c = ("masc" in complement)
|
||||
? complement[gender][i][0]
|
||||
: complement;
|
||||
return concatPsString(c, " ", variation)
|
||||
})
|
||||
)) as T.ArrayFixed<T.ArrayOneOrMore<T.PsString>, 3>
|
||||
);
|
||||
return {
|
||||
masc: mapGender("masc"),
|
||||
fem: mapGender("fem"),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a given infinitive ends in یل - yul such as وایل - waayul etc.
|
||||
*
|
||||
* @param s
|
||||
*/
|
||||
export function yulEndingInfinitive(s: T.PsString): boolean {
|
||||
const pEnding = s.p.slice(-2);
|
||||
const fEnding = s.f.slice(-3);
|
||||
return ((pEnding === "یل") && (["yul", "yúl"].includes(fEnding)));
|
||||
}
|
||||
|
||||
export function psStringFromEntry(entry: T.DictionaryEntry): T.PsString {
|
||||
return makePsString(
|
||||
entry.p,
|
||||
firstPhonetics(entry.f),
|
||||
);
|
||||
}
|
||||
|
||||
export function allOnePersonInflection(block: T.ImperativeForm, person: T.Person): T.SingleOrLengthOpts<T.ImperativeBlock>;
|
||||
export function allOnePersonInflection(block: T.VerbForm, person: T.Person): T.SingleOrLengthOpts<T.VerbBlock>;
|
||||
export function allOnePersonInflection(block: T.SingleOrLengthOpts<T.UnisexInflections>, person: T.Person): T.SingleOrLengthOpts<T.UnisexInflections>;
|
||||
export function allOnePersonInflection(
|
||||
block: T.VerbForm | T.ImperativeForm | T.SingleOrLengthOpts<T.UnisexInflections>, person: T.Person
|
||||
): T.SingleOrLengthOpts<T.VerbBlock> | T.SingleOrLengthOpts<T.ImperativeBlock> | T.SingleOrLengthOpts<T.UnisexInflections> {
|
||||
if ("mascSing" in block) {
|
||||
const key = getPersonInflectionsKey(person);
|
||||
return block[key];
|
||||
}
|
||||
return block;
|
||||
}
|
||||
|
||||
export function choosePersInf<T>(x: T.FullForm<T>, persInf: T.PersonInflectionsField): T.SingleOrLengthOpts<T> {
|
||||
if ("mascSing" in x) {
|
||||
return x[persInf];
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
export function allOnePersonVerbForm(block: T.VerbForm, person: T.Person): T.VerbForm {
|
||||
if ("mascSing" in block) {
|
||||
return {
|
||||
mascSing: allOnePersonVerbForm(block.mascSing, person) as T.SingleOrLengthOpts<T.VerbBlock>,
|
||||
mascPlur: allOnePersonVerbForm(block.mascPlur, person) as T.SingleOrLengthOpts<T.VerbBlock>,
|
||||
femSing: allOnePersonVerbForm(block.femSing, person) as T.SingleOrLengthOpts<T.VerbBlock>,
|
||||
femPlur: allOnePersonVerbForm(block.femPlur, person) as T.SingleOrLengthOpts<T.VerbBlock>,
|
||||
};
|
||||
}
|
||||
if ("long" in block) {
|
||||
return {
|
||||
long: allOnePersonVerbForm(block.long, person) as T.VerbBlock,
|
||||
short: allOnePersonVerbForm(block.short, person) as T.VerbBlock,
|
||||
...block.mini ? {
|
||||
mini: allOnePersonVerbForm(block.mini, person) as T.VerbBlock,
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
const [row, col] = getBlockRowCol(person)
|
||||
const p = block[row][col];
|
||||
return [
|
||||
[p, p],
|
||||
[p, p],
|
||||
[p, p],
|
||||
[p, p],
|
||||
[p, p],
|
||||
[p, p],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a set of inflections that are all masculine plural
|
||||
* (for conjugating the past participle of gramatically transitive verbs)
|
||||
*
|
||||
* @param inflections
|
||||
*/
|
||||
export function allMascFirstInflection(inflections: T.SingleOrLengthOpts<T.UnisexInflections>): T.SingleOrLengthOpts<T.UnisexInflections> {
|
||||
if ("long" in inflections) {
|
||||
return {
|
||||
long: allMascFirstInflection(inflections.long) as T.UnisexInflections,
|
||||
short: allMascFirstInflection(inflections.short) as T.UnisexInflections,
|
||||
};
|
||||
}
|
||||
const mp = inflections.masc[1];
|
||||
return {
|
||||
masc: [
|
||||
mp,
|
||||
mp,
|
||||
mp,
|
||||
],
|
||||
fem: [
|
||||
mp,
|
||||
mp,
|
||||
mp,
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
export function complementInflects(inf: T.UnisexInflections): boolean {
|
||||
return (
|
||||
(inf.masc[0][0].p !== inf.masc[2][0].p)
|
||||
||
|
||||
(inf.fem[0][0].p !== inf.fem[1][0].p)
|
||||
||
|
||||
(inf.masc[0][0].p !== inf.fem[0][0].p)
|
||||
);
|
||||
// OR MORE THOROUGH?
|
||||
// const fm = inf.masc[0][0];
|
||||
// return !(
|
||||
// psStringEquals(inf.masc[1][0], fm) &&
|
||||
// psStringEquals(inf.masc[2][0], fm) &&
|
||||
// psStringEquals(inf.fem[1][0], fm) &&
|
||||
// psStringEquals(inf.fem[2][0], fm)
|
||||
// );
|
||||
}
|
||||
|
||||
export function psStringEquals(ps1: T.PsString, ps2: T.PsString): boolean {
|
||||
return (ps1.p === ps2.p) && (ps1.f === ps2.f);
|
||||
}
|
||||
|
||||
export function removeRetroflexR(ps: T.PsString): T.PsString {
|
||||
return {
|
||||
p: ps.p.replace("ړ", ""),
|
||||
f: ps.f.replace("R", ""),
|
||||
};
|
||||
}
|
||||
|
||||
export function inflectYey(ps: T.SingleOrLengthOpts<T.PsString>): T.SingleOrLengthOpts<T.UnisexInflections> {
|
||||
if ("long" in ps) {
|
||||
return {
|
||||
long: inflectYey(ps.long) as T.UnisexInflections,
|
||||
short: inflectYey(ps.short) as T.UnisexInflections,
|
||||
}
|
||||
}
|
||||
return inflectRegularYeyUnisex(ps.p, ps.f);
|
||||
}
|
||||
|
||||
export function clamp(s: string, chars: number): string {
|
||||
return `${s.slice(0, 20)}${s.length > 20 ? "..." : ""}`;
|
||||
}
|
||||
|
||||
export function addEnglish(
|
||||
english: T.EnglishBlock | string,
|
||||
ps: T.VerbBlock | T.ImperativeBlock | T.ArrayOneOrMore<T.PsString>,
|
||||
) {
|
||||
if (Array.isArray(ps[0]) && ps.length === 6) {
|
||||
return mapVerbBlock((psString, i, j) => ({
|
||||
...psString,
|
||||
// @ts-ignore
|
||||
e: typeof english === "string" ? english : english[i][j],
|
||||
}), ps as T.VerbBlock)
|
||||
}
|
||||
if (Array.isArray(ps[0]) && ps.length === 2) {
|
||||
return mapImperativeBlock((psString, i, j) => ({
|
||||
...psString,
|
||||
// @ts-ignore
|
||||
e: typeof english === "string" ? english : english[i][j],
|
||||
}), ps as T.ImperativeBlock)
|
||||
}
|
||||
const line = ps as T.ArrayOneOrMore<T.PsString>;
|
||||
return line.map((psString) => (
|
||||
{ ...psString, e: typeof english === "string" ? english : english[0][0] }
|
||||
));
|
||||
}
|
||||
|
||||
export function beginsWithDirectionalPronoun(ps: T.PsString): boolean {
|
||||
const beginning = ps.p.slice(0, 2);
|
||||
return ["را", "در", "ور"].includes(beginning);
|
||||
}
|
||||
|
||||
export function checkForOoPrefix(ps: T.PsString): boolean {
|
||||
return ps.p[0] === "و" && ["oo", "óo"].includes(ps.f.slice(0, 2));
|
||||
}
|
||||
|
||||
export function startsWithBa(ps: T.PsString): boolean {
|
||||
return (ps.p.slice(0, 3) === "به " && ps.f.slice(0, 3) === "ba ");
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a given head from a verb form, returning just the second half of the split
|
||||
* It keeps به in front if there is a به at the beginning of the form
|
||||
*
|
||||
* @param head - the first part of a verb split
|
||||
* @param ps - the whole verb form that needs the head removed
|
||||
*/
|
||||
export function removeHead(head: T.PsString, ps: T.PsString): T.PsString {
|
||||
const hasBa = startsWithBa(ps);
|
||||
const base = hasBa ? psRemove(ps, concatPsString(baParticle, " ")) : ps;
|
||||
const chopped = {
|
||||
p: base.p.slice(head.p.length),
|
||||
f: base.f.slice(head.f.length),
|
||||
};
|
||||
return hasBa
|
||||
? concatPsString(baParticle, " ", chopped)
|
||||
: chopped;
|
||||
}
|
||||
|
||||
export function uniquePsStringArray(arr: T.PsString[]): T.PsString[] {
|
||||
return [
|
||||
// @ts-ignore
|
||||
...new Set(arr.map((o) => JSON.stringify(o))),
|
||||
].map((string) => JSON.parse(string)) as T.PsString[];
|
||||
}
|
||||
|
||||
export function splitOffLeapfrogWord(ps: T.PsString): [T.PsString, T.PsString] {
|
||||
const pWords = ps.p.split(" ");
|
||||
const fWords = ps.f.split(" ");
|
||||
const beginning = makePsString(
|
||||
pWords.slice(0, -1).join(" "),
|
||||
fWords.slice(0, -1).join(" "),
|
||||
);
|
||||
const end = makePsString(
|
||||
pWords.slice(-1).join(" "),
|
||||
fWords.slice(-1).join(" "),
|
||||
);
|
||||
return [beginning, end];
|
||||
}
|
||||
|
||||
export function removeObjComp(comp: T.PsString | undefined, ps: T.PsString): T.PsString {
|
||||
if (!comp) {
|
||||
return ps;
|
||||
}
|
||||
return makePsString(
|
||||
ps.p.replace(comp.p + " ", ""),
|
||||
ps.f.replace(comp.f + " ", ""),
|
||||
);
|
||||
}
|
||||
|
||||
export function psStringContains(ps: T.PsString, searchFor: T.PsString): boolean {
|
||||
return (
|
||||
ps.p.includes(searchFor.p)
|
||||
&&
|
||||
ps.f.includes(searchFor.f)
|
||||
);
|
||||
}
|
||||
|
||||
export function removeStartingTick(f: string): string {
|
||||
if (f[0] === "`") {
|
||||
return f.slice(1);
|
||||
}
|
||||
return f;
|
||||
}
|
||||
|
||||
export function ensureShortWurShwaShift(ps: T.PsString): T.PsString {
|
||||
if (ps.p.slice(-2) === "وړ" && ps.f.slice(-2) === "wR") {
|
||||
return {
|
||||
p: ps.p,
|
||||
f: ps.f.slice(0, -2) + "wuR",
|
||||
};
|
||||
}
|
||||
return ps;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
export const pashtoConsonants = ["ب", "پ", "ت", "ټ", "ث", "ج", "چ", "ح", "خ", "څ", "ځ", "د", "ډ", "ذ", "ر", "ړ", "ز", "ژ", "ږ", "س", "ش", "ښ", "ص", "ض", "ط", "ظ", "غ", "ف", "ق", "ک", "ګ", "گ", "ل", "ل", "م", "ن", "ڼ"];
|
|
@ -0,0 +1,636 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
// TODO: See if there are animate feminine words ending in ي and test
|
||||
|
||||
import {
|
||||
inflectRegularYeyUnisex,
|
||||
inflectWord,
|
||||
} from "./pashto-inflector";
|
||||
import * as T from "../types";
|
||||
|
||||
const adjectives: Array<{
|
||||
in: T.DictionaryEntry,
|
||||
out: T.Inflections | false,
|
||||
}> = [
|
||||
// irregular adj.
|
||||
{
|
||||
in: {
|
||||
ts: 1527815451,
|
||||
p: "زوړ",
|
||||
f: "zoR",
|
||||
e: "old",
|
||||
c: "adj. irreg.",
|
||||
i: 6264,
|
||||
infap: "زاړه",
|
||||
infaf: "zaaRu",
|
||||
infbp: "زړ",
|
||||
infbf: "zaR",
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "زوړ", f: "zoR"}],
|
||||
[{p: "زاړه", f: "zaaRu"}],
|
||||
[{p: "زړو", f: "zaRo"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "زړه", f: "zaRa"}],
|
||||
[{p: "زړې", f: "zaRe"}],
|
||||
[{p: "زړو", f: "zaRo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// regular adjective ending in ی
|
||||
{
|
||||
in: {
|
||||
ts: 1527815306,
|
||||
p: "ستړی",
|
||||
f: "stúRey",
|
||||
e: "tired",
|
||||
c: "adj.",
|
||||
i: 6564,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "ستړی", f: "stúRey"}],
|
||||
[{p: "ستړي", f: "stúRee"}],
|
||||
[{p: "ستړیو", f: "stúRiyo"}, {p: "ستړو", f: "stúRo"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "ستړې", f: "stúRe"}],
|
||||
[{p: "ستړې", f: "stúRe"}],
|
||||
[{p: "ستړو", f: "stúRo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// regular adjective ending in ی with stress on the end
|
||||
{
|
||||
in: {
|
||||
ts: 1527813636,
|
||||
p: "وروستی",
|
||||
f: "wroostéy",
|
||||
e: "last, latest, recent",
|
||||
c: "adj.",
|
||||
i: 12026,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "وروستی", f: "wroostéy"}],
|
||||
[{p: "وروستي", f: "wroostée"}],
|
||||
[{p: "وروستیو", f: "wroostiyo"}, {p: "وروستو", f: "wroostó"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "وروستۍ", f: "wroostúy"}],
|
||||
[{p: "وروستۍ", f: "wroostúy"}],
|
||||
[{p: "وروستیو", f: "wroostúyo"}, {p: "وروستو", f: "wroostó"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// regular adjective ending in a consonant
|
||||
{
|
||||
in: {
|
||||
ts: 1527813498,
|
||||
p: "سپک",
|
||||
f: "spuk",
|
||||
e: "light; dishonorable, not respectable",
|
||||
c: "adj.",
|
||||
i: 6502,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "سپک", f: "spuk"}],
|
||||
[{p: "سپک", f: "spuk"}],
|
||||
[{p: "سپکو", f: "spuko"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "سپکه", f: "spuka"}],
|
||||
[{p: "سپکې", f: "spuke"}],
|
||||
[{p: "سپکو", f: "spuko"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
in: {
|
||||
ts: 1527812862,
|
||||
p: "لوی",
|
||||
f: "looy",
|
||||
e: "big, great, large",
|
||||
c: "adj.",
|
||||
i: 9945,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "لوی", f: "looy"}],
|
||||
[{p: "لوی", f: "looy"}],
|
||||
[{p: "لویو", f: "looyo"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "لویه", f: "looya"}],
|
||||
[{p: "لویې", f: "looye"}],
|
||||
[{p: "لویو", f: "looyo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
in: {
|
||||
ts: 1527811469,
|
||||
p: "پوه",
|
||||
f: "poh",
|
||||
e: "understanding, having understood; intelligent, quick, wise, clever; expert",
|
||||
c: "adj.",
|
||||
i: 2430,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "پوه", f: "poh"}],
|
||||
[{p: "پوه", f: "poh"}],
|
||||
[{p: "پوهو", f: "poho"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "پوهه", f: "poha"}],
|
||||
[{p: "پوهې", f: "pohe"}],
|
||||
[{p: "پوهو", f: "poho"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// adjective non-inflecting
|
||||
{
|
||||
in: {
|
||||
ts: 1527812798,
|
||||
p: "خفه",
|
||||
f: "khufa",
|
||||
e: "sad, upset, angry; choked, suffocated",
|
||||
c: "adj.",
|
||||
i: 4631,
|
||||
},
|
||||
out: false,
|
||||
},
|
||||
{
|
||||
in: {
|
||||
ts: 1527814727,
|
||||
p: "اجباري",
|
||||
f: "ijbaaree",
|
||||
e: "compulsory, obligatory",
|
||||
c: "adj.",
|
||||
i: 167,
|
||||
},
|
||||
out: false,
|
||||
},
|
||||
];
|
||||
|
||||
const nouns: Array<{
|
||||
in: T.DictionaryEntry,
|
||||
out: T.Inflections | false,
|
||||
}> = [
|
||||
// ## UNISEX
|
||||
// Unisex noun irregular
|
||||
{
|
||||
in: {
|
||||
ts: 1527812908,
|
||||
p: "مېلمه",
|
||||
f: "melmá",
|
||||
e: "guest",
|
||||
c: "n. m. irreg. unisex",
|
||||
i: 11244,
|
||||
infap: "مېلمانه",
|
||||
infaf: "melmaanu",
|
||||
infbp: "مېلمن",
|
||||
infbf: "melman",
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "مېلمه", f: "melmá"}],
|
||||
[{p: "مېلمانه", f: "melmaanu"}],
|
||||
[{p: "مېلمنو", f: "melmano"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "مېلمنه", f: "melmana"}],
|
||||
[{p: "مېلمنې", f: "melmane"}],
|
||||
[{p: "مېلمنو", f: "melmano"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Unisex noun ending with ی
|
||||
{
|
||||
in: {
|
||||
ts: 1527814159,
|
||||
p: "ملګری",
|
||||
f: "malgúrey",
|
||||
e: "friend, companion",
|
||||
c: "n. m. unisex",
|
||||
i: 10943,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "ملګری", f: "malgúrey"}],
|
||||
[{p: "ملګري", f: "malgúree"}],
|
||||
[{p: "ملګریو", f: "malgúriyo"}, {p: "ملګرو", f: "malgúro"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "ملګرې", f: "malgúre"}],
|
||||
[{p: "ملګرې", f: "malgúre"}],
|
||||
[{p: "ملګرو", f: "malgúro"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Unisex noun ending on ی with emphasis on the end
|
||||
{
|
||||
in: {
|
||||
ts: 1527816431,
|
||||
p: "ترورزی",
|
||||
f: "trorzéy",
|
||||
e: "cousin (son of paternal aunt)",
|
||||
c: "n. m. unisex",
|
||||
i: 2900,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "ترورزی", f: "trorzéy"}],
|
||||
[{p: "ترورزي", f: "trorzée"}],
|
||||
[{p: "ترورزیو", f: "trorziyo"}, {p: "ترورزو", f: "trorzó"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "ترورزۍ", f: "trorzúy"}],
|
||||
[{p: "ترورزۍ", f: "trorzúy"}],
|
||||
[{p: "ترورزیو", f: "trorzúyo"}, {p: "ترورزو", f: "trorzó"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Unisex noun ending with a consanant
|
||||
{
|
||||
in: {
|
||||
ts: 1527820043,
|
||||
p: "چرګ",
|
||||
f: "churg",
|
||||
e: "rooster, cock; chicken, poultry",
|
||||
c: "n. m. unisex",
|
||||
i: 4101,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "چرګ", f: "churg"}],
|
||||
[{p: "چرګ", f: "churg"}],
|
||||
[{p: "چرګو", f: "churgo"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "چرګه", f: "churga"}],
|
||||
[{p: "چرګې", f: "churge"}],
|
||||
[{p: "چرګو", f: "churgo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// ## MASCULINE
|
||||
// Masculine regular ending in ی
|
||||
{
|
||||
in: {
|
||||
ts: 1527815251,
|
||||
p: "سړی",
|
||||
f: "saRey",
|
||||
e: "man",
|
||||
c: "n. m.",
|
||||
i: 6750,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "سړی", f: "saRey"}],
|
||||
[{p: "سړي", f: "saRee"}],
|
||||
[{p: "سړیو", f: "saRiyo"}, {p: "سړو", f: "saRo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Masculine regular ending in ی with emphasis on end
|
||||
{
|
||||
in: {
|
||||
ts: 1527818511,
|
||||
p: "ترېلی",
|
||||
f: "treléy",
|
||||
e: "pool, reservoir",
|
||||
c: "n. m.",
|
||||
i: 2931,
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "ترېلی", f: "treléy"}],
|
||||
[{p: "ترېلي", f: "trelée"}],
|
||||
[{p: "ترېلیو", f: "treliyo"}, {p: "ترېلو", f: "trelo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Masculine ending in tob
|
||||
{
|
||||
in: {
|
||||
i: 11998,
|
||||
ts: 1586760783536,
|
||||
p: "مشرتوب",
|
||||
f: "mushurtob",
|
||||
e: "leadership, authority, presidency",
|
||||
c: "n. m.",
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "مشرتوب", f: "mushurtob"}],
|
||||
[{p: "مشرتابه", f: "mushurtaabu"}],
|
||||
[{p: "مشرتبو", f: "mushurtabo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Masculine irregular
|
||||
{
|
||||
in: {
|
||||
ts: 1527813809,
|
||||
p: "لمونځ",
|
||||
f: "lamoondz",
|
||||
e: "Muslim ritual prayers (namaz, salah, salat)",
|
||||
c: "n. m. irreg.",
|
||||
i: 9835,
|
||||
infap: "لمانځه",
|
||||
infaf: "lamaandzu",
|
||||
infbp: "لمنځ",
|
||||
infbf: "lamandz",
|
||||
},
|
||||
out: {
|
||||
masc: [
|
||||
[{p: "لمونځ", f: "lamoondz"}],
|
||||
[{p: "لمانځه", f: "lamaandzu"}],
|
||||
[{p: "لمنځو", f: "lamandzo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Masculine non-inflecting
|
||||
{
|
||||
in: {
|
||||
ts: 1527812817,
|
||||
p: "کتاب",
|
||||
f: "kitaab",
|
||||
e: "book",
|
||||
c: "n. m.",
|
||||
i: 8640,
|
||||
},
|
||||
out: false,
|
||||
},
|
||||
// ## FEMININE
|
||||
// Feminine regular ending in ه
|
||||
{
|
||||
in: {
|
||||
ts: 1527812797,
|
||||
p: "ښځه",
|
||||
f: "xudza",
|
||||
e: "woman, wife",
|
||||
c: "n. f.",
|
||||
i: 7444,
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "ښځه", f: "xudza"}],
|
||||
[{p: "ښځې", f: "xudze"}],
|
||||
[{p: "ښځو", f: "xudzo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
in: {
|
||||
ts: 1527821380,
|
||||
p: "اره",
|
||||
f: "ará",
|
||||
e: "saw (the tool)",
|
||||
c: "n. f.",
|
||||
i: 365,
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "اره", f: "ará"}],
|
||||
[{p: "ارې", f: "are"}],
|
||||
[{p: "ارو", f: "aro"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Feminine regular ending in ع - a'
|
||||
{
|
||||
in: {
|
||||
ts: 1527820693,
|
||||
p: "مرجع",
|
||||
f: "marja'",
|
||||
e: "reference, authority, body, place to go (for help, shelter, etc.)",
|
||||
c: "n. f.",
|
||||
i: 10661,
|
||||
app: "مراجع",
|
||||
apf: "maraají’",
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "مرجع", f: "marja'"}],
|
||||
[{p: "مرجعې", f: "marje"}],
|
||||
[{p: "مرجعو", f: "marjo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
in: {
|
||||
ts: 1527820212,
|
||||
p: "منبع",
|
||||
f: "manbá",
|
||||
e: "source, origin, resource, cause",
|
||||
c: "n. f.",
|
||||
i: 11201,
|
||||
app: "منابع",
|
||||
apf: "manaabí",
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "منبع", f: "manbá"}],
|
||||
[{p: "منبعې", f: "manbe"}],
|
||||
[{p: "منبعو", f: "manbo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Feminine regular ending in ح - a
|
||||
{
|
||||
in: {
|
||||
ts: 1527815506,
|
||||
p: "ذبح",
|
||||
f: "zabha",
|
||||
e: "slaughter, killing, butchering",
|
||||
c: "n. f.",
|
||||
i: 5813,
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "ذبح", f: "zabha"}],
|
||||
[{p: "ذبحې", f: "zabhe"}],
|
||||
[{p: "ذبحو", f: "zabho"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Feminine inanimate regular with missing ه
|
||||
{
|
||||
in: {
|
||||
ts: 1527814150,
|
||||
p: "لار",
|
||||
f: "laar",
|
||||
e: "road, way, path",
|
||||
c: "n. f.",
|
||||
i: 9593,
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "لار", f: "laar"}],
|
||||
[{p: "لارې", f: "laare"}],
|
||||
[{p: "لارو", f: "laaro"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Feminine animate ending in a consonant
|
||||
{
|
||||
in: {
|
||||
ts: 1527812928,
|
||||
p: "مور",
|
||||
f: "mor",
|
||||
e: "mother, mom",
|
||||
c: "n. f. anim.",
|
||||
i: 11113,
|
||||
},
|
||||
out: false,
|
||||
},
|
||||
// Feminine regular inanimate ending in ي
|
||||
{
|
||||
in: {
|
||||
ts: 1527811877,
|
||||
p: "دوستي",
|
||||
f: "dostee",
|
||||
e: "friendship",
|
||||
c: "n. f.",
|
||||
i: 5503,
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "دوستي", f: "dostee"}],
|
||||
[{p: "دوستۍ", f: "dostuy"}],
|
||||
[{p: "دوستیو", f: "dostuyo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Feminine regular ending in ۍ
|
||||
{
|
||||
in: {
|
||||
ts: 1527814203,
|
||||
p: "کرسۍ",
|
||||
f: "kUrsuy",
|
||||
e: "chair, seat, stool",
|
||||
c: "n. f.",
|
||||
i: 8718,
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "کرسۍ", f: "kUrsuy"}],
|
||||
[{p: "کرسۍ", f: "kUrsuy"}],
|
||||
[{p: "کرسیو", f: "kUrsuyo"}, { p: "کرسو", f: "kUrso"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Feminine regular ending in ا
|
||||
{
|
||||
in: {
|
||||
ts: 1527812456,
|
||||
p: "اړتیا",
|
||||
f: "aRtiyaa, aRtyaa",
|
||||
e: "need, necessity",
|
||||
c: "n. f.",
|
||||
i: 376,
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "اړتیا", f: "aRtiyaa"}],
|
||||
[{p: "اړتیاوې", f: "aRtiyaawe"}],
|
||||
[{p: "اړتیاوو", f: "aRtiyaawo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Feminine regular ending in اع
|
||||
{
|
||||
in: {
|
||||
ts: 1527821388,
|
||||
p: "وداع",
|
||||
f: "widáa'",
|
||||
e: "farewell, goodbye",
|
||||
c: "n. f.",
|
||||
i: 12205,
|
||||
},
|
||||
out: {
|
||||
fem: [
|
||||
[{p: "وداع", f: "widáa'"}],
|
||||
[{p: "وداعوې", f: "widáawe"}],
|
||||
[{p: "وداعوو", f: "widáawo"}],
|
||||
],
|
||||
},
|
||||
},
|
||||
// Word with no inflections
|
||||
{
|
||||
in: {
|
||||
ts: 1527815402,
|
||||
p: "وړ",
|
||||
f: "waR",
|
||||
e: "worthy of, deserving, -able",
|
||||
c: "suff. / adj.",
|
||||
i: 12045,
|
||||
noInf: true,
|
||||
},
|
||||
out: false,
|
||||
},
|
||||
];
|
||||
|
||||
const others: T.DictionaryEntry[] = [
|
||||
{
|
||||
ts: 1527812612,
|
||||
p: "ګنډل",
|
||||
f: "ganDul",
|
||||
e: "to sew, mend, make, knit",
|
||||
c: "v. trans.",
|
||||
i: 9448,
|
||||
},
|
||||
{
|
||||
ts: 1527812457,
|
||||
p: "اصلاً",
|
||||
f: "aslan",
|
||||
e: "actually",
|
||||
c: "adv.",
|
||||
i: 550,
|
||||
},
|
||||
];
|
||||
|
||||
adjectives.forEach((word) => {
|
||||
test(`${word.in.p} should inflect properly`, () => {
|
||||
expect(inflectWord(word.in)).toEqual(word.out);
|
||||
});
|
||||
});
|
||||
|
||||
nouns.forEach((word) => {
|
||||
test(`${word.in.p} should inflect properly`, () => {
|
||||
expect(inflectWord(word.in)).toEqual(word.out);
|
||||
});
|
||||
});
|
||||
|
||||
others.forEach((word) => {
|
||||
test(`${word.p} should return false`, () => {
|
||||
expect(inflectWord(word)).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
||||
test(`inflectRegularYeyUnisex should work`, () => {
|
||||
expect(inflectRegularYeyUnisex("لیدونکی", "leedóonkey")).toEqual({
|
||||
masc: [
|
||||
[{p: "لیدونکی", f: "leedóonkey" }],
|
||||
[{p: "لیدونکي", f: "leedóonkee" }],
|
||||
[{p: "لیدونکیو", f: "leedóonkiyo" }, {p: "لیدونکو", f: "leedóonko"}],
|
||||
],
|
||||
fem: [
|
||||
[{p: "لیدونکې", f: "leedóonke" }],
|
||||
[{p: "لیدونکې", f: "leedóonke" }],
|
||||
[{p: "لیدونکو", f: "leedóonko"}],
|
||||
],
|
||||
});
|
||||
})
|
|
@ -0,0 +1,315 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { pashtoConsonants } from "./pashto-consonants";
|
||||
import * as T from "../types";
|
||||
|
||||
const endingInSingleARegex = /[^a]'?’?[aá]'?’?$/;
|
||||
const endingInHeyOrAynRegex = /[^ا][هع]$/;
|
||||
const endingInAlefRegex = /اع?$/;
|
||||
|
||||
export function inflectWord(word: T.DictionaryEntry): T.Inflections | false {
|
||||
// If it's a noun/adj, inflect accordingly
|
||||
// TODO: What about n. f. / adj. that end in ي ??
|
||||
if (word.noInf) {
|
||||
return false;
|
||||
}
|
||||
if (word.c && (word.c.includes("adj.") || word.c.includes("unisex"))) {
|
||||
return handleUnisexWord(word);
|
||||
}
|
||||
if (word.c && (word.c.includes("n. m."))) {
|
||||
return handleMascNoun(word);
|
||||
}
|
||||
if (word.c && (word.c.includes("n. f."))) {
|
||||
return handleFemNoun(word);
|
||||
}
|
||||
// It's not a noun/adj
|
||||
return false;
|
||||
}
|
||||
|
||||
// LEVEL 2 FUNCTIONS
|
||||
function handleUnisexWord(word: T.DictionaryEntry): T.Inflections | false {
|
||||
// Get first of comma seperated phonetics entries
|
||||
const f = word.f.split(",")[0].trim();
|
||||
// Get last letter of Pashto and last two letters of phonetics
|
||||
// TODO: !!! Handle weird endings / symbols ' etc.
|
||||
const pEnd = word.p.slice(-1);
|
||||
if (word.infap && word.infaf && word.infbp && word.infbf) {
|
||||
return inflectIrregularUnisex(word.p, f, [
|
||||
{p: word.infap, f: word.infaf},
|
||||
{p: word.infbp, f: word.infbf},
|
||||
]);
|
||||
}
|
||||
if (pEnd === "ی" && f.slice(-2) === "ey") {
|
||||
return inflectRegularYeyUnisex(word.p, f);
|
||||
}
|
||||
if (pEnd === "ی" && f.slice(-2) === "éy") {
|
||||
return inflectEmphasizedYeyUnisex(word.p, f);
|
||||
}
|
||||
if (
|
||||
pashtoConsonants.includes(pEnd) ||
|
||||
word.p.slice(-2) === "وی" ||
|
||||
word.p.slice(-2) === "ای" ||
|
||||
(word.p.slice(-1) === "ه" && f.slice(-1) === "h")
|
||||
) {
|
||||
return inflectConsonantEndingUnisex(word.p, f);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function handleMascNoun(word: T.DictionaryEntry): T.Inflections | false {
|
||||
// Get first of comma seperated phonetics entries
|
||||
const f = word.f.split(",")[0].trim();
|
||||
// Get last letter of Pashto and last two letters of phonetics
|
||||
// TODO: !!! Handle weird endings / symbols ' etc.
|
||||
const pEnd = word.p.slice(-1);
|
||||
const fEnd = f.slice(-2);
|
||||
if (word.infap && word.infaf && word.infbp && word.infbf) {
|
||||
return inflectIrregularMasc(word.p, f, [
|
||||
{p: word.infap, f: word.infaf},
|
||||
{p: word.infbp, f: word.infbf},
|
||||
]);
|
||||
}
|
||||
const isTobEnding = (word.p.slice(-3) === "توب" && ["tób", "tob"].includes(f.slice(-3)) && word.p.length > 3);
|
||||
if (isTobEnding) {
|
||||
return inflectTobMasc(word.p, f);
|
||||
}
|
||||
if (pEnd === "ی" && fEnd === "ey") {
|
||||
return inflectRegularYeyMasc(word.p, f);
|
||||
}
|
||||
if (pEnd === "ی" && fEnd === "éy") {
|
||||
return inflectRegularEmphasizedYeyMasc(word.p, f);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function handleFemNoun(word: T.DictionaryEntry): T.Inflections | false {
|
||||
// Get first of comma seperated phonetics entries
|
||||
const f = word.f.split(",")[0].trim();
|
||||
/* istanbul ignore next */ // will always have word.c at this point
|
||||
const c = word.c || "";
|
||||
const animate = c.includes("anim.");
|
||||
const pEnd = word.p.slice(-1);
|
||||
|
||||
if (endingInHeyOrAynRegex.test(word.p) && endingInSingleARegex.test(f)) {
|
||||
return inflectRegularAFem(word.p, f);
|
||||
}
|
||||
if (word.p.slice(-1) === "ح" && endingInSingleARegex.test(f)) {
|
||||
return inflectRegularAWithHimPEnding(word.p, f);
|
||||
}
|
||||
if (pashtoConsonants.includes(pEnd) && !animate) {
|
||||
return inflectRegularInanMissingAFem(word.p, f);
|
||||
}
|
||||
if (pEnd === "ي" && (!animate)) {
|
||||
return inflectRegularInanEeFem(word.p, f);
|
||||
}
|
||||
if (pEnd === "ۍ") {
|
||||
return inflectRegularUyFem(word.p, f);
|
||||
}
|
||||
if (endingInAlefRegex.test(word.p)) {
|
||||
return inflectRegularAaFem(word.p, f);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// LEVEL 3 FUNCTIONS
|
||||
function inflectIrregularUnisex(p: string, f: string, inflections: Array<{p: string, f: string}>): T.Inflections {
|
||||
return {
|
||||
masc: [
|
||||
[{p, f}],
|
||||
[{p: inflections[0].p, f: inflections[0].f}],
|
||||
[{p: `${inflections[1].p}و`, f: `${inflections[1].f}o`}],
|
||||
],
|
||||
fem: [
|
||||
[{p: `${inflections[1].p}ه`, f: `${inflections[1].f}a`}],
|
||||
[{p: `${inflections[1].p}ې`, f: `${inflections[1].f}e`}],
|
||||
[{p: `${inflections[1].p}و`, f: `${inflections[1].f}o`}],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
export function inflectRegularYeyUnisex(p: string, f: string): T.UnisexInflections {
|
||||
const baseP = p.slice(0, -1);
|
||||
const baseF = f.slice(0, -2);
|
||||
return {
|
||||
masc: [
|
||||
[{p, f}],
|
||||
[{p: `${baseP}ي`, f: `${baseF}ee`}],
|
||||
[
|
||||
{p: `${baseP}یو`, f: `${baseF}iyo`},
|
||||
{p: `${baseP}و`, f: `${baseF}o`},
|
||||
],
|
||||
],
|
||||
fem: [
|
||||
[{p: `${baseP}ې`, f: `${baseF}e`}],
|
||||
[{p: `${baseP}ې`, f: `${baseF}e`}],
|
||||
[{p: `${baseP}و`, f: `${baseF}o`}],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectEmphasizedYeyUnisex(p: string, f: string): T.UnisexInflections {
|
||||
const baseP = p.slice(0, -1);
|
||||
const baseF = f.slice(0, -2);
|
||||
return {
|
||||
masc: [
|
||||
[{p, f}],
|
||||
[{p: `${baseP}ي`, f: `${baseF}ée`}],
|
||||
[
|
||||
{p: `${baseP}یو`, f: `${baseF}iyo`},
|
||||
{p: `${baseP}و`, f: `${baseF}ó`},
|
||||
],
|
||||
],
|
||||
fem: [
|
||||
[{p: `${baseP}ۍ`, f: `${baseF}úy`}],
|
||||
[{p: `${baseP}ۍ`, f: `${baseF}úy`}],
|
||||
[
|
||||
{ p: `${baseP}یو`, f: `${baseF}úyo` },
|
||||
{ p: `${baseP}و`, f: `${baseF}ó`, },
|
||||
],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectConsonantEndingUnisex(p: string, f: string): T.UnisexInflections {
|
||||
return {
|
||||
masc: [
|
||||
[{p, f}],
|
||||
[{p, f}],
|
||||
[{p: `${p}و`, f: `${f}o`}],
|
||||
],
|
||||
fem: [
|
||||
[{p: `${p}ه`, f: `${f}a`}],
|
||||
[{p: `${p}ې`, f: `${f}e`}],
|
||||
[{p: `${p}و`, f: `${f}o`}],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectRegularYeyMasc(p: string, f: string): T.Inflections {
|
||||
const baseP = p.slice(0, -1);
|
||||
const baseF = f.slice(0, -2);
|
||||
return {
|
||||
masc: [
|
||||
[{p, f}],
|
||||
[{p: `${baseP}ي`, f: `${baseF}ee`}],
|
||||
[
|
||||
{p: `${baseP}یو`, f: `${baseF}iyo`},
|
||||
{p: `${baseP}و`, f: `${baseF}o`},
|
||||
],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectTobMasc(p: string, f: string): T.Inflections {
|
||||
const baseP = p.slice(0, -3);
|
||||
const baseF = f.slice(0, -3);
|
||||
return {
|
||||
masc: [
|
||||
[{p, f}],
|
||||
[{p: `${baseP}تابه`, f: `${baseF}taabu`}],
|
||||
[{p: `${baseP}تبو`, f: `${baseF}tabo`}],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectRegularEmphasizedYeyMasc(p: string, f: string): T.Inflections {
|
||||
const baseP = p.slice(0, -1);
|
||||
const baseF = f.slice(0, -2);
|
||||
return {
|
||||
masc: [
|
||||
[{p, f}],
|
||||
[{p: `${baseP}ي`, f: `${baseF}ée`}],
|
||||
[
|
||||
{p: `${baseP}یو`, f: `${baseF}iyo`},
|
||||
{p: `${baseP}و`, f: `${baseF}o`},
|
||||
],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectIrregularMasc(p: string, f: string, inflections: Array<{p: string, f: string}>): T.Inflections {
|
||||
return {
|
||||
masc: [
|
||||
[{p, f}],
|
||||
[{p: inflections[0].p, f: inflections[0].f}],
|
||||
[{p: `${inflections[1].p}و`, f: `${inflections[1].f}o`}],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectRegularAFem(p: string, f: string): T.Inflections {
|
||||
const baseF = ["'", "’"].includes(f.slice(-1)) ? f.slice(0, -2) : f.slice(0, -1);
|
||||
const baseP = p.slice(-1) === "ع" ? p : p.slice(0, -1);
|
||||
return {
|
||||
fem: [
|
||||
[{p, f}],
|
||||
[{p: `${baseP}ې`, f: `${baseF}e`}],
|
||||
[{p: `${baseP}و`, f: `${baseF}o`}],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectRegularAWithHimPEnding(p: string, f: string): T.Inflections {
|
||||
const baseF = f.slice(0, -1);
|
||||
return {
|
||||
fem: [
|
||||
[{p, f}],
|
||||
[{p: `${p}ې`, f: `${baseF}e`}],
|
||||
[{p: `${p}و`, f: `${baseF}o`}],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectRegularInanMissingAFem(p: string, f: string): T.Inflections {
|
||||
return {
|
||||
fem: [
|
||||
[{p, f}],
|
||||
[{p: `${p}ې`, f: `${f}e`}],
|
||||
[{p: `${p}و`, f: `${f}o`}],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectRegularInanEeFem(p: string, f: string): T.Inflections {
|
||||
const baseP = p.slice(0, -1);
|
||||
const baseF = f.slice(0, -2);
|
||||
return {
|
||||
fem: [
|
||||
[{p, f}],
|
||||
[{p: `${baseP}ۍ`, f: `${baseF}uy`}],
|
||||
[{p: `${baseP}یو`, f: `${baseF}uyo`}],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectRegularUyFem(p: string, f: string): T.Inflections {
|
||||
const baseP = p.slice(0, -1);
|
||||
const baseF = f.slice(0, -2);
|
||||
return {
|
||||
fem: [
|
||||
[{p, f}],
|
||||
[{p, f}],
|
||||
[
|
||||
{p: `${baseP}یو`, f: `${baseF}uyo`},
|
||||
{p: `${baseP}و`, f: `${baseF}o`},
|
||||
],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function inflectRegularAaFem(p: string, f: string): T.Inflections {
|
||||
const baseF = ["'", "’"].includes(f.slice(-1)) ? f.slice(0, -1) : f;
|
||||
return {
|
||||
fem: [
|
||||
[{p, f}],
|
||||
[{p: `${p}وې`, f: `${baseF}we`}],
|
||||
[{p: `${p}وو`, f: `${baseF}wo`}],
|
||||
],
|
||||
};
|
||||
}
|
|
@ -0,0 +1,493 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
const zwar = "َ";
|
||||
const zwarakey = "ٙ";
|
||||
const zer = "ِ";
|
||||
const pesh = "ُ";
|
||||
const sukun = "ْ";
|
||||
const hamzaAbove = "ٔ";
|
||||
const tashdeed = "ّ";
|
||||
const wasla = "ٱ";
|
||||
const daggerAlif = "ٰ";
|
||||
const fathahan = "ً";
|
||||
|
||||
// TODO: THESE OTHER TRIGRAPHS??
|
||||
const quadrigraphs = ["-Ul-"];
|
||||
const trigraphs = ["eyy", "éyy", "-i-", "-U-"]; // , "aay", "áay", "ooy", "óoy"];
|
||||
const digraphs = ["ắ", "aa", "áa", "ee", "ée", "ey", "éy", "oo", "óo", "kh", "gh", "ts", "dz", "jz", "ch", "sh"];
|
||||
const endingDigraphs = ["uy", "úy"];
|
||||
const willIgnore = ["?", " ", "`", ".", "…"];
|
||||
|
||||
export function splitFIntoPhonemes(f: string): string[] {
|
||||
const result: string[] = [];
|
||||
let index = 0;
|
||||
while (index < f.length) {
|
||||
const isLastTwoLetters = (index === f.length - 2 || f[index + 2] === " ");
|
||||
const threeLetterChunk = f.slice(index, index + 3);
|
||||
const fourLetterChunk = f.slice(index, index + 4);
|
||||
if (quadrigraphs.includes(fourLetterChunk)) {
|
||||
result.push(fourLetterChunk);
|
||||
index += 4;
|
||||
continue;
|
||||
}
|
||||
if (trigraphs.includes(threeLetterChunk)) {
|
||||
result.push(threeLetterChunk);
|
||||
index += 3;
|
||||
continue;
|
||||
}
|
||||
const twoLetterChunk = f.slice(index, index + 2);
|
||||
if (
|
||||
digraphs.includes(twoLetterChunk) ||
|
||||
(isLastTwoLetters && endingDigraphs.includes(twoLetterChunk))
|
||||
) {
|
||||
result.push(twoLetterChunk);
|
||||
index += 2;
|
||||
continue;
|
||||
}
|
||||
const singleLetter = f.slice(index, index + 1);
|
||||
if (!willIgnore.includes(singleLetter)) {
|
||||
result.push(singleLetter);
|
||||
}
|
||||
index++;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
const phonemeTable = [
|
||||
// consonants
|
||||
{ phoneme: "b", possibilities: ["ب"], consonant: true },
|
||||
{ phoneme: "p", possibilities: ["پ"], consonant: true },
|
||||
{ phoneme: "t", possibilities: ["ت", "ط"], consonant: true },
|
||||
{ phoneme: "T", possibilities: ["ټ"], consonant: true },
|
||||
{ phoneme: "s", possibilities: ["س", "ص", "ث"], consonant: true },
|
||||
{ phoneme: "j", possibilities: ["ج"], consonant: true },
|
||||
{ phoneme: "ch", possibilities: ["چ"], consonant: true },
|
||||
{ phoneme: "kh", possibilities: ["خ"], consonant: true },
|
||||
{ phoneme: "ts", possibilities: ["څ"], consonant: true },
|
||||
{ phoneme: "dz", possibilities: ["ځ"], consonant: true },
|
||||
{ phoneme: "d", possibilities: ["د"], consonant: true },
|
||||
{ phoneme: "D", possibilities: ["ډ"], consonant: true },
|
||||
{ phoneme: "r", possibilities: ["ر"], consonant: true },
|
||||
{ phoneme: "R", possibilities: ["ړ"], consonant: true },
|
||||
{ phoneme: "z", possibilities: ["ز", "ذ", "ظ", "ض"], consonant: true },
|
||||
{ phoneme: "jz", possibilities: ["ژ"], consonant: true },
|
||||
{ phoneme: "G", possibilities: ["ږ"], consonant: true },
|
||||
{ phoneme: "sh", possibilities: ["ش"], consonant: true },
|
||||
{ phoneme: "x", possibilities: ["ښ"], consonant: true },
|
||||
{ phoneme: "gh", possibilities: ["غ"], consonant: true },
|
||||
{ phoneme: "f", possibilities: ["ف"], consonant: true },
|
||||
{ phoneme: "q", possibilities: ["ق"], consonant: true },
|
||||
{ phoneme: "k", possibilities: ["ک"], consonant: true },
|
||||
{ phoneme: "g", possibilities: ["ګ"], consonant: true },
|
||||
{ phoneme: "l", possibilities: ["ل"], consonant: true },
|
||||
{ phoneme: "m", possibilities: ["م"], consonant: true },
|
||||
{ phoneme: "n", possibilities: ["ن"], consonant: true },
|
||||
{ phoneme: "N", possibilities: ["ڼ"], consonant: true },
|
||||
{ phoneme: "h", possibilities: ["ه", "ح"], consonant: true, takesSukunOnEnding: true },
|
||||
{ phoneme: "w", possibilities: ["و"], consonant: true },
|
||||
{ phoneme: "y", possibilities: ["ی"], consonant: true },
|
||||
|
||||
{ phoneme: "'", possibilities: ["ع", "ئ"], consonant: true },
|
||||
{ phoneme: "-i-", isIzafe: true },
|
||||
{ phoneme: "-U-", possibilities: [" و ", "و"]},
|
||||
{ phoneme: "-Ul-", possibilities: ["ال"]},
|
||||
|
||||
// vowels
|
||||
{ phoneme: "aa", possibilities: ["ا"], beginning: ["آ", "ا"], endingPossibilities: ["ا", "یٰ"], isLongA: true, canStartWithAynBefore: true },
|
||||
{ phoneme: "áa", possibilities: ["ا"], beginning: ["آ", "ا"], endingPossibilities: ["ا", "یٰ"], isLongA: true, canStartWithAynBefore: true },
|
||||
{ phoneme: "ee", possibilities: ["ی"], addAlefOnBeginning: true, endingPossibilities: ["ي"], diacritic: zer, canStartWithAynBefore: true },
|
||||
{ phoneme: "ée", possibilities: ["ی"], addAlefOnBeginning: true, endingPossibilities: ["ي"], diacritic: zer, canStartWithAynBefore: true },
|
||||
{ phoneme: "e", possibilities: ["ې"], addAlefOnBeginning: true },
|
||||
{ phoneme: "é", possibilities: ["ې"], addAlefOnBeginning: true },
|
||||
{ phoneme: "o", possibilities: ["و"], addAlefOnBeginning: true },
|
||||
{ phoneme: "ó", possibilities: ["و"], addAlefOnBeginning: true },
|
||||
{ phoneme: "oo", possibilities: ["و"], addAlefOnBeginning: true, alsoCanBePrefix: true, diacritic: pesh },
|
||||
{ phoneme: "óo", possibilities: ["و"], addAlefOnBeginning: true, diacritic: pesh },
|
||||
{ phoneme: "ey", possibilities: ["ی"], addAlefOnBeginning: true, endingPossibilities: ["ی"]},
|
||||
{ phoneme: "éy", possibilities: ["ی"], addAlefOnBeginning: true, endingPossibilities: ["ی"]},
|
||||
{ phoneme: "uy", possibilities: ["ۍ"], endingOnly: true },
|
||||
{ phoneme: "úy", possibilities: ["ۍ"], endingOnly: true }, // THIS CAN ONLY COME AT THE END DEAL WITH THIS
|
||||
{ phoneme: "eyy", possibilities: ["ئ"], endingOnly: true },
|
||||
{ phoneme: "éyy", possibilities: ["ئ"], endingOnly: true },
|
||||
|
||||
{ phoneme: "a", diacritic: zwar, endingPossibilities: ["ه"], canComeAfterHeyEnding: true, canBeFirstPartOfFathahanEnding: true },
|
||||
{ phoneme: "á", diacritic: zwar, endingPossibilities: ["ه"], canComeAfterHeyEnding: true, canBeFirstPartOfFathahanEnding: true },
|
||||
{ phoneme: "ă", diacritic: zwar },
|
||||
{ phoneme: "ắ", diacritic: zwar },
|
||||
{ phoneme: "u", diacritic: zwarakey, endingPossibilities: ["ه"], hamzaOnEnd: true },
|
||||
{ phoneme: "ú", diacritic: zwarakey, endingPossibilities: ["ه"], hamzaOnEnd: true },
|
||||
{ phoneme: "i", diacritic: zer, endingPossibilities: ["ه"], takesDiacriticBeforeGurdaHeyEnding: true, canBeWasla: true, beginning: ["ا", "ع"] },
|
||||
{ phoneme: "í", diacritic: zer, endingPossibilities: ["ه"], takesDiacriticBeforeGurdaHeyEnding: true, canBeWasla: true, beginning: ["ا", "ع"] },
|
||||
{ phoneme: "U", diacritic: pesh, endingPossibilities: ["ه"], takesDiacriticBeforeGurdaHeyEnding: true, beginning: ["ا", "ع"] },
|
||||
{ phoneme: "Ú", diacritic: pesh, endingPossibilities: ["ه"], takesDiacriticBeforeGurdaHeyEnding: true, beginning: ["ا", "ع"] },
|
||||
];
|
||||
|
||||
function isSpace(s: string): boolean {
|
||||
return [" ", "\xa0"].includes(s);
|
||||
}
|
||||
|
||||
function isEndSpace(s: string): boolean {
|
||||
return [" ", "\xa0", undefined].includes(s);
|
||||
}
|
||||
|
||||
interface IDiacriticsErrorMessage {
|
||||
error: string;
|
||||
phoneme: string;
|
||||
i: number;
|
||||
}
|
||||
|
||||
function possibilityMatches(p: string, pIndex: number, possibilities: string[] | undefined): boolean {
|
||||
/* istanbul ignore next */
|
||||
if (!possibilities) {
|
||||
return false;
|
||||
}
|
||||
for (const possibility of possibilities) {
|
||||
if (p.slice(pIndex, pIndex + possibility.length) === possibility) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function isPrefixedByDirectionalPronoun(i: number, phonemes: string[]): boolean {
|
||||
const potentialPronounFourCharSlice = phonemes.slice(i - 4, i).join("");
|
||||
const potentialPronounThreeCharSlice = phonemes.slice(i - 3, i).join("");
|
||||
if (["wăr-", "war-", "dăr-", "dar-"].includes(potentialPronounFourCharSlice)) {
|
||||
return true;
|
||||
}
|
||||
if (potentialPronounThreeCharSlice === "raa-") {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
export function phoneticsToDiacritics(ps: string, ph: string, forbidOoPrefixes: boolean = false): string | undefined {
|
||||
const phonemes = splitFIntoPhonemes(ph.trim().split(",")[0]);
|
||||
const p = ps.trim();
|
||||
let result = "";
|
||||
let pIndex = 0;
|
||||
const errored: IDiacriticsErrorMessage[] = [];
|
||||
let previousPhonemeWasAConsonant = false;
|
||||
phonemes.forEach((phoneme, i) => {
|
||||
// on its own, only used for seperating directional pronouns
|
||||
if (phoneme === "-") {
|
||||
return;
|
||||
}
|
||||
const phonemeInfo = phonemeTable.find((element) => element.phoneme === phoneme);
|
||||
if (!phonemeInfo) {
|
||||
errored.push({ error: "phoneme info not found", phoneme, i });
|
||||
return;
|
||||
}
|
||||
const isDoubleConsonant = (
|
||||
phonemeInfo.consonant &&
|
||||
phoneme === phonemes[i - 1] &&
|
||||
// TODO: is this thourough enough to allow double consonants on the ending of the previous word?
|
||||
!(isSpace(p[pIndex - 1]) && phonemeInfo.possibilities.includes(p[pIndex])) // avoid false double consonant ie ازل لیک azalleek
|
||||
) ? true : false;
|
||||
const isBeginning = !isDoubleConsonant && ((i === 0) || isSpace(p[pIndex - 1]) || (phonemes[i - 1] === "-Ul-") || isPrefixedByDirectionalPronoun(i, phonemes));
|
||||
const upcomingAEndingAfterHey = (p[pIndex] === "ح" && isSpace(p[pIndex + 1]) && ["a", "á"].includes(phonemes[i + 1]));
|
||||
|
||||
// TODO: break this into a seperate function -- why can it sometimes be set to undefined?
|
||||
const isEnding = (i === phonemes.length - 1) || ((
|
||||
(phonemeInfo.possibilities && isSpace(p[pIndex + 1])) ||
|
||||
(!phonemeInfo.possibilities && isSpace(p[pIndex])) ||
|
||||
(
|
||||
(!phonemeInfo.possibilities && isSpace(p[pIndex + 1])) &&
|
||||
(possibilityMatches(p, pIndex, phonemeInfo.endingPossibilities) || (p[pIndex] === "ع" && phonemes[i + 1] !== "'"))
|
||||
)
|
||||
) && !upcomingAEndingAfterHey
|
||||
&& // makes sure the next letter isn't a double consonant like haqq <-
|
||||
!(
|
||||
phonemeInfo.consonant && phoneme === phonemes[i + 1] // &&
|
||||
// !(isSpace(p[pIndex + 1]) && phonemeInfo.possibilities.includes(p[pIndex]))
|
||||
)
|
||||
) || // can be the trailing double consanant on the end of a word
|
||||
(
|
||||
phonemeInfo.consonant && phoneme === phonemes[i - 1] &&
|
||||
!(isEndSpace(p[pIndex - 1]) && phonemeInfo.possibilities.includes(p[pIndex]))
|
||||
) || // can be یٰ ending
|
||||
(
|
||||
isEndSpace(p[pIndex + 2]) && (p.slice(pIndex, pIndex + 2) === "یٰ")
|
||||
);
|
||||
|
||||
const isUofDu = phoneme === "u" && (
|
||||
p.slice(pIndex - 2, pIndex) === "د " || // د as previous word
|
||||
(p[pIndex] === undefined && p[pIndex - 1] === "د") || // د as the whole thing
|
||||
p.slice(pIndex - 6, pIndex) === "د ... " // ... د is as the previous word
|
||||
);
|
||||
// TODO: Should p[pIndex - 1] also be in there ??? It messed up قطعه for instance
|
||||
const isEndingAynVowel = isEnding && phonemeInfo.diacritic && [p[pIndex], p[pIndex - 1]].includes("ع") && p[pIndex] !== "ه";
|
||||
const isMiddle = !isBeginning && !isEnding;
|
||||
const isSilentWaw = (
|
||||
p[pIndex] === "و" &&
|
||||
p[pIndex - 1] === "خ" &&
|
||||
p[pIndex + 1] === "ا" &&
|
||||
["áa", "aa"].includes(phoneme)
|
||||
);
|
||||
const isAnAEndingAfterHey = isEnding && p[pIndex - 1] === "ح" && phonemeInfo.canComeAfterHeyEnding;
|
||||
if (isDoubleConsonant) {
|
||||
pIndex--;
|
||||
if (isSpace(p[pIndex])) {
|
||||
pIndex--;
|
||||
}
|
||||
}
|
||||
if (isDoubleConsonant && p[pIndex] === "ع") {
|
||||
// ridiculously ugly hack to take care of the extra ع that gets added in words like توقع
|
||||
result = result.slice(0, -1);
|
||||
pIndex--;
|
||||
}
|
||||
if (isSilentWaw) {
|
||||
result += "(و)";
|
||||
pIndex++;
|
||||
}
|
||||
// special check for Arabic wasla
|
||||
if (p.slice(0, 3) === "بال" && phonemes[i - 1] === "b" && phonemeInfo.canBeWasla && phonemes[i + 1] === "l") {
|
||||
result += phonemeInfo.diacritic + wasla;
|
||||
pIndex++;
|
||||
previousPhonemeWasAConsonant = false;
|
||||
return;
|
||||
}
|
||||
// special check for fathahan ending
|
||||
if (phonemeInfo.canBeFirstPartOfFathahanEnding && p.slice(pIndex, pIndex + 2) === "اً") {
|
||||
result += "ا";
|
||||
pIndex++;
|
||||
return;
|
||||
}
|
||||
if (isEnding && phoneme === "n" && p[pIndex] === fathahan) {
|
||||
result += fathahan;
|
||||
pIndex++;
|
||||
return;
|
||||
}
|
||||
// special check for words starting with عا or عی
|
||||
if (isBeginning && phonemeInfo.canStartWithAynBefore && p[pIndex] === "ع" && phonemeInfo.possibilities.includes(p[pIndex + 1])) {
|
||||
result += "ع";
|
||||
result += phonemeInfo.diacritic ? phonemeInfo.diacritic : "";
|
||||
result += p[pIndex + 1];
|
||||
pIndex += 2;
|
||||
return;
|
||||
}
|
||||
// special check for ؤ Ua
|
||||
if (phoneme === "U" && phonemes[i + 1] === "a" && phonemes[i + 2] !== "a" && p[pIndex] === "و") {
|
||||
result += "ؤ";
|
||||
pIndex++;
|
||||
return;
|
||||
}
|
||||
if (phoneme === "a" && phonemes[i - 1] === "U" && phonemes[i + 1] !== "a" && result.slice(-2) === "ؤ") {
|
||||
previousPhonemeWasAConsonant = false;
|
||||
return;
|
||||
}
|
||||
// special check for و wo
|
||||
if (isBeginning && phoneme === "w" && phonemes[i + 1] === "o" && p[pIndex] === "و" && isEndSpace(p[pIndex + 1])) {
|
||||
result += "و";
|
||||
pIndex++;
|
||||
return;
|
||||
}
|
||||
// TODO: isEndSpace here is redundant??
|
||||
if (isEnding && phoneme === "o" && phonemes[i - 1] === "w" && p[pIndex - 1] === "و" && isEndSpace(p[pIndex])) {
|
||||
pIndex++;
|
||||
return;
|
||||
}
|
||||
// special check for ال - -Ul-
|
||||
if (phoneme === "-Ul-" && p.slice(pIndex, pIndex + 2) === "ال") {
|
||||
result += "اُل";
|
||||
pIndex += 2;
|
||||
return;
|
||||
}
|
||||
// special check for for أ in the middle of the word
|
||||
if (!isBeginning && p[pIndex] === "أ" && phoneme === "a" && phonemes[i + 1] === "'" && phonemes[i + 2] === "a") {
|
||||
result += "أ";
|
||||
pIndex++;
|
||||
return;
|
||||
}
|
||||
if (p[pIndex - 1] === "أ" && phonemes[i - 1] === "a" && phoneme === "'" && phonemes[i + 1] === "a") {
|
||||
return;
|
||||
}
|
||||
if (p[pIndex - 1] === "أ" && phonemes[i - 2] === "a" && phonemes[i - 1] === "'" && phoneme === "a") {
|
||||
previousPhonemeWasAConsonant = false;
|
||||
return;
|
||||
}
|
||||
// special check for وو 'oo
|
||||
if (!isBeginning && p[pIndex] === "و" && p[pIndex + 1] === "و" && phoneme === "'" && phonemes[i + 1] === "oo") {
|
||||
result += "وُو";
|
||||
pIndex += 2;
|
||||
return;
|
||||
}
|
||||
if (p[pIndex - 2] === "و" && p[pIndex - 1] === "و" && phonemes[i - 1] === "'" && phoneme === "oo") {
|
||||
previousPhonemeWasAConsonant = false;
|
||||
return;
|
||||
}
|
||||
|
||||
const prevLetterWasBeginningAyn = (p[pIndex - 1] === "ع" && isEndSpace && phoneme === "'");
|
||||
// check if the phoneme lines up in the Pashto word
|
||||
if (isBeginning && !isUofDu && phonemeInfo.addAlefOnBeginning) {
|
||||
// TODO: Maybe a little bad because it doesn't loop through possibilities
|
||||
if ((!phonemeInfo.alsoCanBePrefix || forbidOoPrefixes) && p.slice(pIndex, pIndex + 2) !== "ا" + phonemeInfo.possibilities[0]) {
|
||||
errored.push({ error: "didn't start with an aleph", phoneme, i });
|
||||
return;
|
||||
}
|
||||
if (p[pIndex] === "ا") {
|
||||
result += "ا"; // same as result += p[pIndex]
|
||||
pIndex++;
|
||||
}
|
||||
} else if (isBeginning && phonemeInfo.beginning && phonemeInfo.isLongA) {
|
||||
if (!phonemeInfo.beginning.includes(p[pIndex])) {
|
||||
errored.push({ error: "improper beginning letter", phoneme, i });
|
||||
return;
|
||||
}
|
||||
result += p[pIndex];
|
||||
pIndex++;
|
||||
return;
|
||||
} else if (
|
||||
(isEnding && phonemeInfo.endingPossibilities) &&
|
||||
!isUofDu &&
|
||||
(
|
||||
!possibilityMatches(p, pIndex, phonemeInfo.endingPossibilities) &&
|
||||
!isEndingAynVowel && // allowing short vowels on the end of words ending with ع
|
||||
!isAnAEndingAfterHey
|
||||
)
|
||||
) {
|
||||
errored.push({ error: "bad ending", phoneme, i });
|
||||
return;
|
||||
} else if (
|
||||
(isEnding && !phonemeInfo.endingPossibilities) &&
|
||||
phonemeInfo.possibilities &&
|
||||
!phonemeInfo.possibilities.includes(p[pIndex])
|
||||
) {
|
||||
// console.log(phoneme, p[pIndex]);
|
||||
errored.push({ error: "bad ending 2", phoneme, i });
|
||||
return;
|
||||
} else if (
|
||||
(phonemeInfo.possibilities && !isEnding) &&
|
||||
(
|
||||
!(phonemeInfo.possibilities.includes(p[pIndex])) &&
|
||||
!(p[pIndex] === "ن" && (p[pIndex + 1] === "ب" && phoneme === "m")) && // && // exception case with نب === mb
|
||||
!prevLetterWasBeginningAyn // exception case with words starting with ع like i'zzat
|
||||
)
|
||||
) {
|
||||
errored.push({ error: "improper coressponding letter in middle of word", phoneme, i });
|
||||
return;
|
||||
}
|
||||
// console.log(phoneme, pIndex, p[pIndex], isEnding);
|
||||
// console.log(result);
|
||||
// OK, it lines up with the Pashto word, we're good
|
||||
// Now continue building the result string
|
||||
// deal with starting with short vowels and alef
|
||||
if (!isUofDu && isBeginning && !phonemeInfo.possibilities && !phonemeInfo.isIzafe) {
|
||||
// TODO: WHY IS THIS HERE
|
||||
if (!["ا", "ع"].includes(p[pIndex])) {
|
||||
errored.push({ error: "bad beginning 2", phoneme, i });
|
||||
return;
|
||||
}
|
||||
result += p[pIndex];
|
||||
pIndex++;
|
||||
}
|
||||
// if the phoneme carries a diacritic insert it (before the letter if it's coming)
|
||||
const isOoPrefix = (phonemeInfo.alsoCanBePrefix && isBeginning && (p[pIndex - 1] !== "ا"));
|
||||
if (phonemeInfo.diacritic && !isEnding && !isOoPrefix) {
|
||||
// using this hack to remove the space and put it after the zwarakey we're going to add after د
|
||||
if (isUofDu && result.slice(-5) === " ... ") {
|
||||
result = result.slice(0, -5) + zwarakey + " ... ";
|
||||
} else if (isUofDu && result.slice(-1) === " ") {
|
||||
result = result.slice(0, -1) + zwarakey + " ";
|
||||
} else {
|
||||
result += phonemeInfo.diacritic;
|
||||
}
|
||||
}
|
||||
// TODO: The middle stuff might be unneccessary/unhelpful
|
||||
const isACommaWithoutAyn = (phoneme === "'" && (p[pIndex] !== "ع" && !(isMiddle && p[pIndex] === "ئ")));
|
||||
// if the previous phoneme was a consonant insert a sukun
|
||||
// console.log("Will I go into the adding thing?");
|
||||
if (!isBeginning && previousPhonemeWasAConsonant && phonemeInfo.consonant && phonemes[i - 1] !== "'" && p[pIndex] !== "ع") {
|
||||
result += isDoubleConsonant ? tashdeed : sukun;
|
||||
}
|
||||
if (isEnding && isDoubleConsonant) {
|
||||
// This is so ugly, extra space slipping in here
|
||||
if (result.slice(-2) === " " + tashdeed) {
|
||||
result = result.slice(0, -2) + tashdeed;
|
||||
}
|
||||
}
|
||||
// if there's a pashto letter for the phoneme, insert it
|
||||
if (!isEndingAynVowel && !isACommaWithoutAyn && (phonemeInfo.possibilities || isEnding)) {
|
||||
// need the isSpace check to prevent weird behaviour with izafe
|
||||
if (!isUofDu) {
|
||||
if (isAnAEndingAfterHey) {
|
||||
result += zwar;
|
||||
if (p[pIndex] === " ") {
|
||||
result += " ";
|
||||
}
|
||||
} else {
|
||||
result += (isDoubleConsonant || isSpace(p[pIndex])) ? "" : p[pIndex];
|
||||
}
|
||||
}
|
||||
pIndex++;
|
||||
}
|
||||
if (isEnding) {
|
||||
if (isUofDu) {
|
||||
result += zwarakey;
|
||||
} else if (phonemeInfo.hamzaOnEnd) {
|
||||
result += hamzaAbove;
|
||||
} else if (phonemeInfo.takesSukunOnEnding) {
|
||||
result += sukun;
|
||||
} else if (p[pIndex] === daggerAlif) {
|
||||
result += daggerAlif;
|
||||
} else if (isEndSpace(p[pIndex]) && p[pIndex - 1] === "ه" && phonemeInfo.takesDiacriticBeforeGurdaHeyEnding) {
|
||||
result = result.slice(0, -1) + phonemeInfo.diacritic + "ه";
|
||||
}
|
||||
}
|
||||
if (isEnding && isEndingAynVowel) {
|
||||
if (p[pIndex] === "ع") {
|
||||
result += "ع";
|
||||
pIndex++;
|
||||
}
|
||||
result += phonemeInfo.diacritic;
|
||||
if (p[pIndex] === " ") {
|
||||
result += " ";
|
||||
pIndex++;
|
||||
}
|
||||
return;
|
||||
}
|
||||
previousPhonemeWasAConsonant = (!isEnding && phonemeInfo.consonant) ? true : false;
|
||||
// ignore the ع or ئ if there's not a ' in the phonetics
|
||||
const nextPhonemeInfo = phonemeTable.find((element) => phonemes[i + 1] === element.phoneme);
|
||||
if (
|
||||
["ع", "ئ"].includes(p[pIndex]) &&
|
||||
![phonemes[i + 1], phonemes[i + 2]].includes("'") &&
|
||||
!(nextPhonemeInfo && nextPhonemeInfo.diacritic && isEndSpace(p[pIndex + 1])) && // don't skip the ع on the end if there's another short letter coming after it
|
||||
!(p[pIndex] === "ئ" && isEndSpace(p[pIndex + 1])) && // don't skip ئ on the end
|
||||
!phonemeInfo.isIzafe
|
||||
) {
|
||||
result += p[pIndex]; // add "ئ" or "ع";
|
||||
pIndex++;
|
||||
}
|
||||
// if we've arrived at the ellipses in the circumposition, skip over it
|
||||
if (p.slice(pIndex, pIndex + 5) === " ... ") {
|
||||
result += " ... ";
|
||||
pIndex += 5;
|
||||
return;
|
||||
}
|
||||
// if we've arrived at a space in the Pashto, move along before the next iteration
|
||||
if (isSpace(p[pIndex]) && phonemes[i + 1] !== "-i-" && !upcomingAEndingAfterHey) {
|
||||
result += " ";
|
||||
pIndex++;
|
||||
}
|
||||
// need to move ahead one more with words eding in یٰ (because that's two characters)
|
||||
if (p[pIndex] === daggerAlif && isSpace(p[pIndex + 1])) {
|
||||
result += " ";
|
||||
pIndex += 2;
|
||||
}
|
||||
if (phonemeInfo.isIzafe) {
|
||||
result += zer + " ";
|
||||
}
|
||||
});
|
||||
if (errored.length) {
|
||||
// console.log(errored);
|
||||
return undefined;
|
||||
}
|
||||
return result;
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { standardizePashto } from "./standardize-pashto";
|
||||
|
||||
const testPairs = [
|
||||
["گوگل", "ګوګل"],
|
||||
["پك", "پک"],
|
||||
["ځير", "ځیر"],
|
||||
["چې یې راغی، ده ورمنډه کړه.", "چې یې راغی، ده ورمنډه کړه."],
|
||||
["سړی.", "سړی."],
|
||||
["زما پلار خو په جنت کښې دى.", "زما پلار خو په جنت کښې دی."],
|
||||
["حتیٰ", "حتیٰ"],
|
||||
["چېرته دى؟", "چېرته دی؟"],
|
||||
["آب", "آب"],
|
||||
["راکوي؛", "راکوي؛"],
|
||||
["راکوي!", "راکوي!"],
|
||||
["راکوي.", "راکوي."],
|
||||
];
|
||||
|
||||
testPairs.forEach((pair) => {
|
||||
test(`${pair[0]} should be converted to ${pair[1]}`, () => {
|
||||
const result = standardizePashto(pair[0]);
|
||||
expect(result).toBe(pair[1]);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
export function standardizePashto(input: string): string {
|
||||
// Replace Arabic ى with Farsi ی
|
||||
return input.replace(/\u0649/g, "\u06cc")
|
||||
// Replace Arabic ك with ک
|
||||
.replace(/\u0643/g, "\u06a9")
|
||||
// Replace Farsi گ with ګ
|
||||
.replace(/گ/g, "ګ")
|
||||
// Replace ي in the middle of words with ی
|
||||
.replace(/ي(?=[\u0621-\u065f\u0670-\u06d3\u06d5])/g, "ی")
|
||||
// Replace آ two character version with combined آ character
|
||||
.replace(/آ/g, "آ");
|
||||
}
|
|
@ -0,0 +1,354 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
interface IReplacerInfoItem {
|
||||
char: string;
|
||||
alalc: string | IDialects;
|
||||
ipa: string | IDialects;
|
||||
}
|
||||
|
||||
interface IDialects {
|
||||
standard: string;
|
||||
peshawer: string;
|
||||
southern: string;
|
||||
}
|
||||
|
||||
export const replacerInfo: IReplacerInfoItem[] = [
|
||||
{
|
||||
char: "aa",
|
||||
alalc: "ā",
|
||||
ipa: "ɑ",
|
||||
},
|
||||
{
|
||||
char: "áa",
|
||||
alalc: "ā́",
|
||||
ipa: "ɑ́",
|
||||
},
|
||||
{
|
||||
char: "aay",
|
||||
alalc: "āy",
|
||||
ipa: "ɑj", // TODO: This should change for peshawer?
|
||||
},
|
||||
{
|
||||
char: "áay",
|
||||
alalc: "ā́y",
|
||||
ipa: "ɑ́j",
|
||||
},
|
||||
{
|
||||
char: "a",
|
||||
alalc: "a",
|
||||
ipa: "a",
|
||||
},
|
||||
{
|
||||
char: "ă",
|
||||
alalc: "ạ",
|
||||
ipa: "æ",
|
||||
},
|
||||
{
|
||||
char: "á",
|
||||
alalc: "á",
|
||||
ipa: "á",
|
||||
},
|
||||
{
|
||||
char: "u",
|
||||
alalc: "ə",
|
||||
ipa: "ə",
|
||||
},
|
||||
{
|
||||
char: "ú",
|
||||
alalc: "ə́",
|
||||
ipa: "ə́",
|
||||
},
|
||||
{
|
||||
char: "U",
|
||||
alalc: "u",
|
||||
ipa: "ú",
|
||||
},
|
||||
{
|
||||
char: "Ú",
|
||||
alalc: "ú",
|
||||
ipa: "ú",
|
||||
},
|
||||
{
|
||||
char: "o",
|
||||
alalc: "o",
|
||||
ipa: "o",
|
||||
},
|
||||
{
|
||||
char: "ó",
|
||||
alalc: "ó",
|
||||
ipa: "ó",
|
||||
},
|
||||
{
|
||||
char: "oo",
|
||||
alalc: "ō",
|
||||
ipa: "u:",
|
||||
},
|
||||
{
|
||||
char: "óo",
|
||||
alalc: "ṓ",
|
||||
ipa: "ú",
|
||||
},
|
||||
{
|
||||
char: "i",
|
||||
alalc: "i",
|
||||
ipa: "ɪ",
|
||||
},
|
||||
{
|
||||
char: "í",
|
||||
alalc: "í",
|
||||
ipa: "ɪ́",
|
||||
},
|
||||
{
|
||||
char: "ey",
|
||||
alalc: "ay",
|
||||
ipa: "ai",
|
||||
},
|
||||
{
|
||||
char: "éy",
|
||||
alalc: "áy",
|
||||
ipa: "ái",
|
||||
},
|
||||
{
|
||||
char: "ee",
|
||||
alalc: "ī",
|
||||
ipa: "i",
|
||||
},
|
||||
{
|
||||
char: "ée",
|
||||
alalc: "ī́",
|
||||
ipa: "í",
|
||||
},
|
||||
{
|
||||
char: "uy",
|
||||
alalc: "əy",
|
||||
ipa: "əj",
|
||||
},
|
||||
{
|
||||
char: "úy",
|
||||
alalc: "ə́y",
|
||||
ipa: "ə́j",
|
||||
},
|
||||
{
|
||||
char: "ooy",
|
||||
alalc: "ōy",
|
||||
ipa: "u:j",
|
||||
},
|
||||
{
|
||||
char: "eyy",
|
||||
alalc: "ạy",
|
||||
ipa: "əj",
|
||||
},
|
||||
{
|
||||
char: "e",
|
||||
alalc: "e",
|
||||
ipa: "e",
|
||||
},
|
||||
{
|
||||
char: "é",
|
||||
alalc: "é",
|
||||
ipa: "é",
|
||||
},
|
||||
{
|
||||
char: "w",
|
||||
alalc: "w",
|
||||
ipa: "w",
|
||||
},
|
||||
{
|
||||
char: "y",
|
||||
alalc: "y",
|
||||
ipa: "j",
|
||||
},
|
||||
|
||||
{
|
||||
char: "ts",
|
||||
alalc: {
|
||||
standard: "ṡ",
|
||||
peshawer: "s",
|
||||
southern: "ṡ",
|
||||
},
|
||||
ipa: {
|
||||
standard: "t͡s",
|
||||
peshawer: "s",
|
||||
southern: "t͡s",
|
||||
},
|
||||
},
|
||||
{
|
||||
char: "s",
|
||||
alalc: "s",
|
||||
ipa: "s",
|
||||
},
|
||||
{
|
||||
char: "dz",
|
||||
alalc: {
|
||||
standard: "dz",
|
||||
peshawer: "z",
|
||||
southern: "dz",
|
||||
},
|
||||
ipa: {
|
||||
standard: "d͡z",
|
||||
peshawer: "z",
|
||||
southern: "d͡z",
|
||||
},
|
||||
},
|
||||
{
|
||||
char: "z",
|
||||
alalc: "z",
|
||||
ipa: "z",
|
||||
},
|
||||
{
|
||||
char: "t",
|
||||
alalc: "t",
|
||||
ipa: "t̪",
|
||||
},
|
||||
{
|
||||
char: "T",
|
||||
alalc: "ṭ",
|
||||
ipa: "ʈ",
|
||||
},
|
||||
{
|
||||
char: "d",
|
||||
alalc: "d",
|
||||
ipa: "d̪",
|
||||
},
|
||||
{
|
||||
char: "D",
|
||||
alalc: "ḍ",
|
||||
ipa: "ɖ",
|
||||
},
|
||||
{
|
||||
char: "r",
|
||||
alalc: "r",
|
||||
ipa: "r",
|
||||
},
|
||||
{
|
||||
char: "R",
|
||||
alalc: "ṛ",
|
||||
ipa: "ɻ",
|
||||
},
|
||||
{
|
||||
char: "n",
|
||||
alalc: "n",
|
||||
ipa: "n",
|
||||
},
|
||||
{
|
||||
char: "N",
|
||||
alalc: "ṇ",
|
||||
ipa: "ɳ",
|
||||
},
|
||||
{
|
||||
char: "f",
|
||||
alalc: "f",
|
||||
ipa: "f",
|
||||
},
|
||||
{
|
||||
char: "b",
|
||||
alalc: "b",
|
||||
ipa: "b",
|
||||
},
|
||||
{
|
||||
char: "p",
|
||||
alalc: "p",
|
||||
ipa: "p",
|
||||
},
|
||||
|
||||
{
|
||||
char: "sh",
|
||||
alalc: "sh",
|
||||
ipa: "ʃ",
|
||||
},
|
||||
{
|
||||
char: "x",
|
||||
alalc: {
|
||||
standard: "k'h",
|
||||
southern: "ṣh",
|
||||
peshawer: "kh",
|
||||
},
|
||||
ipa: {
|
||||
standard: "ç",
|
||||
southern: "ʂ",
|
||||
peshawer: "x",
|
||||
},
|
||||
},
|
||||
{
|
||||
char: "kh",
|
||||
alalc: "x",
|
||||
ipa: "x",
|
||||
},
|
||||
|
||||
{
|
||||
char: "k",
|
||||
alalc: "k",
|
||||
ipa: "k",
|
||||
},
|
||||
{
|
||||
char: "q",
|
||||
alalc: "q",
|
||||
ipa: "q",
|
||||
},
|
||||
|
||||
{
|
||||
char: "jz",
|
||||
alalc: "zh",
|
||||
ipa: "ʒ",
|
||||
},
|
||||
{
|
||||
char: "G",
|
||||
alalc: {
|
||||
southern: "ẓh",
|
||||
peshawer: "g",
|
||||
standard: "ğ",
|
||||
},
|
||||
ipa: {
|
||||
standard: "ʝ",
|
||||
southern: "ʐ",
|
||||
peshawer: "g",
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
char: "g",
|
||||
alalc: "g",
|
||||
ipa: "g",
|
||||
},
|
||||
{
|
||||
char: "gh",
|
||||
alalc: "gh",
|
||||
ipa: "ɣ",
|
||||
},
|
||||
|
||||
{
|
||||
char: "j",
|
||||
alalc: "j",
|
||||
ipa: "d͡ʒ",
|
||||
},
|
||||
{
|
||||
char: "ch",
|
||||
alalc: "ch",
|
||||
ipa: "t͡ʃ",
|
||||
},
|
||||
|
||||
{
|
||||
char: "l",
|
||||
alalc: "l",
|
||||
ipa: "l",
|
||||
},
|
||||
{
|
||||
char: "m",
|
||||
alalc: "m",
|
||||
ipa: "m",
|
||||
},
|
||||
{
|
||||
char: "h",
|
||||
alalc: "h",
|
||||
ipa: "h",
|
||||
},
|
||||
];
|
||||
|
||||
// tslint:disable-next-line
|
||||
export const replacerRegex = /aay|áay|aa|áa|a|á|U|Ú|u|ú|ooy|o{1,2}|óo|ó|ey|éy|e{1,2}|ée|é|uy|úy|i|í|w|y|q|g|ts|sh|s|dz|z|t|T|d|D|r|R|n|N|f|b|p|x|kh|q|k|gh|g|G|j|ch|l|l|m|h/g;
|
|
@ -0,0 +1,89 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
translatePhonetics,
|
||||
} from "./translate-phonetics";
|
||||
|
||||
const dialects = ["southern", "standard", "peshawer"];
|
||||
const systems = ["ipa", "alalc"];
|
||||
|
||||
const translations = [
|
||||
{
|
||||
original: "looT",
|
||||
ipa: {
|
||||
southern: "lu:ʈ",
|
||||
standard: "lu:ʈ",
|
||||
peshawer: "lu:ʈ",
|
||||
},
|
||||
alalc: {
|
||||
southern: "lōṭ",
|
||||
standard: "lōṭ",
|
||||
peshawer: "lōṭ",
|
||||
},
|
||||
},
|
||||
{
|
||||
original: "puxto",
|
||||
ipa: {
|
||||
southern: "pəʂt̪o",
|
||||
standard: "pəçt̪o",
|
||||
peshawer: "pəxt̪o",
|
||||
},
|
||||
alalc: {
|
||||
southern: "pəṣhto",
|
||||
standard: "pək'hto",
|
||||
peshawer: "pəkhto",
|
||||
},
|
||||
},
|
||||
{
|
||||
original: "luG",
|
||||
ipa: {
|
||||
southern: "ləʐ",
|
||||
standard: "ləʝ",
|
||||
peshawer: "ləg",
|
||||
},
|
||||
alalc: {
|
||||
southern: "ləẓh",
|
||||
standard: "ləğ",
|
||||
peshawer: "ləg",
|
||||
},
|
||||
},
|
||||
{
|
||||
original: "saRey",
|
||||
ipa: {
|
||||
southern: "saɻai",
|
||||
standard: "saɻai",
|
||||
peshawer: "saɻai",
|
||||
},
|
||||
alalc: {
|
||||
southern: "saṛay",
|
||||
standard: "saṛay",
|
||||
peshawer: "saṛay",
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
translations.forEach((t) => {
|
||||
systems.forEach((system) => {
|
||||
// check each dialect with given system
|
||||
dialects.forEach((dialect) => {
|
||||
test(
|
||||
`${t.original} should be translated to ${t.ipa[dialect]} using ${system} with ${dialect} dialect`,
|
||||
() => {
|
||||
const translated = translatePhonetics(t.original, {
|
||||
// @ts-ignore
|
||||
system,
|
||||
// @ts-ignore
|
||||
dialect,
|
||||
});
|
||||
expect(translated).toBe(t[system][dialect]);
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
replacerInfo,
|
||||
replacerRegex,
|
||||
} from "./translate-phonetics-replacer";
|
||||
|
||||
export function translatePhonetics(input: string, options: {
|
||||
system: "alalc" | "ipa";
|
||||
dialect: "standard" | "peshawer" | "southern";
|
||||
}): string {
|
||||
const translated = input.replace(replacerRegex, (mtch): any => {
|
||||
const r = replacerInfo.find((x) => x.char === mtch);
|
||||
/* istanbul ignore next */
|
||||
if (!r) {
|
||||
return;
|
||||
}
|
||||
const r2 = r[options.system];
|
||||
if (typeof r2 === "string") {
|
||||
// no dialect options present
|
||||
return r2;
|
||||
}
|
||||
// dialect options present, choose the appropriate one
|
||||
return r2[options.dialect];
|
||||
});
|
||||
return translated;
|
||||
}
|
|
@ -0,0 +1,161 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { validateEntry } from "./validate-entry";
|
||||
import * as T from "../types";
|
||||
|
||||
const toTest: {
|
||||
input: any,
|
||||
output: T.DictionaryEntryError | { ok: true } | { checkComplement: true },
|
||||
}[] = [
|
||||
{
|
||||
input: { ts: undefined },
|
||||
output: {
|
||||
errors: ["missing ts", "missing i", "missing p", "missing f", "missing e"],
|
||||
p: "",
|
||||
f: "",
|
||||
e: "",
|
||||
erroneousFields: ["ts", "i", "p", "f", "e"],
|
||||
ts: 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
input: { ts: 123, p: "کور", e: "house" },
|
||||
output: {
|
||||
errors: ["missing i", "missing f"],
|
||||
p: "کور",
|
||||
f: "",
|
||||
ts: 123,
|
||||
e: "house",
|
||||
erroneousFields: ["i", "f"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":293,"ts":1527821299,"p":"اخطار","f":"ixtáar","e":"warning, reprimand, admonishment","c":"n. m."},
|
||||
output: {
|
||||
errors: ["script and phonetics do not match for p and f"],
|
||||
p: "اخطار",
|
||||
f: "ixtáar",
|
||||
e: "warning, reprimand, admonishment",
|
||||
ts: 1527821299,
|
||||
erroneousFields: ["p", "f"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":2433,"ts":1527815197,"p":"پښتون","f":"puxtoon","e":"Pashtun","c":"n. m. unisex / adj. irreg.","infap":"پښتانه","infaf":"puxtaanu","infbf":"puxtan"},
|
||||
output: {
|
||||
errors: ["missing infbp"],
|
||||
p: "پښتون",
|
||||
f: "puxtoon",
|
||||
e: "Pashtun",
|
||||
ts: 1527815197,
|
||||
erroneousFields: ["infbp"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":2433,"ts":1527815197,"p":"پښتون","f":"puxtoon","e":"Pashtun","c":"n. m. unisex / adj. irreg.","infap":"پښتانه","infaf":"puxtaanu","infbp":"پښتن"},
|
||||
output: {
|
||||
errors: ["missing infbf"],
|
||||
p: "پښتون",
|
||||
f: "puxtoon",
|
||||
e: "Pashtun",
|
||||
ts: 1527815197,
|
||||
erroneousFields: ["infbf"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":2433,"ts":1527815197,"p":"پښتون","f":"puxtoon","e":"Pashtun","c":"n. m. unisex / adj. irreg.","infap":"پښتانه","infaf":"puktaanu","infbp":"پښتن"},
|
||||
output: {
|
||||
errors: ["script and phonetics do not match for infap and infaf", "missing infbf"],
|
||||
p: "پښتون",
|
||||
f: "puxtoon",
|
||||
e: "Pashtun",
|
||||
ts: 1527815197,
|
||||
erroneousFields: ["infap", "infaf", "infbf"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":5000,"ts":1527819674,"p":"څملاستل","f":"tsumlaastúl","e":"to lie down","l":1596485996977,"separationAtP":2,"c":"v. intrans. seperable","psp":"څمل","psf":"tsaml","noOo":true},
|
||||
output: {
|
||||
errors: ["missing separationAtF"],
|
||||
p: "څملاستل",
|
||||
f: "tsumlaastúl",
|
||||
e: "to lie down",
|
||||
ts: 1527819674,
|
||||
erroneousFields: ["separationAtF"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":5000,"ts":1527819674,"p":"څملاستل","f":"sumlaastúl","e":"to lie down","l":1596485996977,"separationAtP":2,"c":"v. intrans. seperable","psp":"څمل","psf":"tsaml","noOo":true},
|
||||
output: {
|
||||
errors: ["script and phonetics do not match for p and f", "missing separationAtF"],
|
||||
p: "څملاستل",
|
||||
f: "sumlaastúl",
|
||||
e: "to lie down",
|
||||
ts: 1527819674,
|
||||
erroneousFields: ["p", "f", "separationAtF"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":5000,"ts":1527819674,"p":"څملاستل","f":"tsumlaastúl","e":"to lie down","l":1596485996977,"separationAtF":4,"c":"v. intrans. seperable","psp":"څمل","psf":"tsaml","noOo":true},
|
||||
output: {
|
||||
errors: ["missing separationAtP"],
|
||||
p: "څملاستل",
|
||||
f: "tsumlaastúl",
|
||||
e: "to lie down",
|
||||
ts: 1527819674,
|
||||
erroneousFields: ["separationAtP"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":2222,"ts":1571859113828,"p":"پخول","f":"pakhawul","e":"to cook, prepare, to cause to ripen, mature","c":"v. stat. comp. trans."},
|
||||
output: {
|
||||
errors: ["missing complement for compound verb"],
|
||||
p: "پخول",
|
||||
f: "pakhawul",
|
||||
e: "to cook, prepare, to cause to ripen, mature",
|
||||
ts: 1571859113828,
|
||||
erroneousFields: ["l"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":2222,"ts":1571859113828,"p":"پخول","f":"pakhawul","e":"to cook, prepare, to cause to ripen, mature","l":1574867531681,"c":"v. stat. comp. trans."},
|
||||
output: {
|
||||
checkComplement: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":2231,"ts":1527812013,"p":"پراخ","f":"praakh, paráakh","e":"wide, broad, spacious, vast","c":"adj."},
|
||||
output: { ok: true },
|
||||
},
|
||||
{
|
||||
input: {"i":0,"ts":1527812013,"p":"پراخ","f":"praakh, paráakh","e":"wide, broad, spacious, vast","c":"adj."},
|
||||
output: { ok: true },
|
||||
},
|
||||
{
|
||||
input: {"i":12,"ts":1575058859661,"p":"آبدار","f":"aawdáar","e":"watery, damp, humid, juicy","c":"adj."},
|
||||
output: {
|
||||
errors: ["script and phonetics do not match for p and f"],
|
||||
p: "آبدار",
|
||||
f: "aawdáar",
|
||||
e: "watery, damp, humid, juicy",
|
||||
ts: 1575058859661,
|
||||
erroneousFields: ["p", "f"],
|
||||
},
|
||||
},
|
||||
{
|
||||
input: {"i":12,"ts":1575058859661,"p":"آبدار","f":"aawdáar","e":"watery, damp, humid, juicy","c":"adj.","diacExcept":true},
|
||||
output: { ok: true },
|
||||
},
|
||||
];
|
||||
|
||||
test("validateEntry should work", () => {
|
||||
toTest.forEach((t) => {
|
||||
expect(validateEntry(t.input as T.DictionaryEntry)).toEqual(t.output);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,100 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import * as T from "../types";
|
||||
import {
|
||||
phoneticsToDiacritics,
|
||||
} from "./phonetics-to-diacritics";
|
||||
|
||||
const textFieldPairs: [T.DictionaryEntryTextField, T.DictionaryEntryTextField][] = [
|
||||
["p", "f"],
|
||||
["infap", "infaf"],
|
||||
["infbp", "infbf"],
|
||||
["app", "apf"],
|
||||
["ppp", "ppf"],
|
||||
["psp", "psf"],
|
||||
["ssp", "ssf"],
|
||||
["prp", "prf"],
|
||||
["pprtp", "pprtf"],
|
||||
["tppp", "tppf"],
|
||||
];
|
||||
|
||||
const requiredFields: T.DictionaryEntryField[] = [
|
||||
"ts", "i", "p", "f", "e",
|
||||
];
|
||||
|
||||
export function validateEntry(entry: T.DictionaryEntry): T.DictionaryEntryError | {
|
||||
ok: true,
|
||||
} | {
|
||||
checkComplement: true,
|
||||
} {
|
||||
let errors: string[] = [];
|
||||
const erroneousFields = new Set<T.DictionaryEntryField>();
|
||||
requiredFields.forEach((field) => {
|
||||
if (field !== "i" && !entry[field]) {
|
||||
errors.push(`missing ${field}`);
|
||||
erroneousFields.add(field);
|
||||
}
|
||||
if (field === "i" && typeof entry[field] !== "number") {
|
||||
errors.push(`missing ${field}`);
|
||||
erroneousFields.add(field);
|
||||
}
|
||||
});
|
||||
textFieldPairs.forEach((pair) => {
|
||||
const pField = pair[0];
|
||||
const fField = pair[1];
|
||||
const p = entry[pField];
|
||||
const f = entry[fField];
|
||||
if (!requiredFields.includes(pair[0])) {
|
||||
if (!p && !f) {
|
||||
return;
|
||||
}
|
||||
if (!p && f) {
|
||||
errors.push(`missing ${pField}`);
|
||||
erroneousFields.add(pField);
|
||||
return;
|
||||
}
|
||||
if (p && !f) {
|
||||
errors.push(`missing ${fField}`);
|
||||
erroneousFields.add(fField);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (p && f && (!phoneticsToDiacritics(p, f) && !entry.diacExcept)) {
|
||||
errors.push(`script and phonetics do not match for ${pField} and ${fField}`);
|
||||
erroneousFields.add(pField)
|
||||
erroneousFields.add(fField);
|
||||
}
|
||||
});
|
||||
if ((entry.separationAtP && !entry.separationAtF)) {
|
||||
errors.push("missing separationAtF");
|
||||
erroneousFields.add("separationAtF");
|
||||
}
|
||||
if ((!entry.separationAtP && entry.separationAtF)) {
|
||||
errors.push("missing separationAtP");
|
||||
erroneousFields.add("separationAtP");
|
||||
}
|
||||
if (entry.c && entry.c.slice(0, 2) === "v." && entry.c.includes("comp.") && !entry.l) {
|
||||
errors.push("missing complement for compound verb");
|
||||
erroneousFields.add("l");
|
||||
}
|
||||
if (errors.length) {
|
||||
return {
|
||||
errors,
|
||||
p: entry.p || "",
|
||||
f: entry.f || "",
|
||||
e: entry.e || "",
|
||||
ts: entry.ts || 0,
|
||||
erroneousFields: Array.from(erroneousFields),
|
||||
};
|
||||
}
|
||||
if (entry.c && entry.c.slice(0, 2) === "v." && entry.c.includes("comp.") && entry.l) {
|
||||
return { checkComplement: true };
|
||||
}
|
||||
return { ok: true };
|
||||
}
|
|
@ -0,0 +1,632 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import { getVerbInfo } from "./verb-info";
|
||||
import {
|
||||
presentEndings,
|
||||
pastEndings,
|
||||
imperativeEndings,
|
||||
baParticle,
|
||||
equativeEndings,
|
||||
emptyVerbBlock,
|
||||
passiveStativeBridge,
|
||||
aayTail,
|
||||
} from "./grammar-units";
|
||||
import {
|
||||
addToForm,
|
||||
mapVerbBlock,
|
||||
concatPsString,
|
||||
allOnePersonVerbForm,
|
||||
complementInflects,
|
||||
concatInflections,
|
||||
unisexInfToObjectMatrix,
|
||||
inflectYey,
|
||||
psStringFromEntry,
|
||||
allOnePersonInflection,
|
||||
psStringEquals,
|
||||
} from "./p-text-helpers";
|
||||
import {
|
||||
accentOnNFromEnd,
|
||||
} from "./accent-helpers";
|
||||
import { pashtoConsonants } from "./pashto-consonants";
|
||||
import {
|
||||
checkForIrregularConjugation,
|
||||
stativeAux,
|
||||
} from "./irregular-conjugations";
|
||||
import {
|
||||
chooseParticipleInflection,
|
||||
spaceInForm,
|
||||
noPersInfs,
|
||||
} from "./misc-helpers";
|
||||
import * as T from "../types";
|
||||
|
||||
const dummyEntry: T.DictionaryEntry = { i: 0, p: "", f: "", e: "", c: "", ts: 0 };
|
||||
|
||||
const getAayTail = (type: T.AayTail): T.PsString => (
|
||||
type === "ey"
|
||||
? { p: "ی", f: "ey" }
|
||||
: { p: "ای", f: "aay" }
|
||||
);
|
||||
|
||||
export function conjugateVerb(entry: T.DictionaryEntry, aayTailType: T.AayTail, complement?: T.DictionaryEntry, verbInfo?: T.NonComboVerbInfo): T.VerbOutput {
|
||||
const irregularConj = checkForIrregularConjugation(entry);
|
||||
if (irregularConj) {
|
||||
return irregularConj;
|
||||
}
|
||||
const info = verbInfo ? verbInfo : getVerbInfo(entry, complement);
|
||||
if (info.type === "transitive or grammatically transitive simple") {
|
||||
return {
|
||||
info,
|
||||
transitive: conjugateVerb(dummyEntry, aayTailType, dummyEntry, info.transitive) as T.VerbConjugation,
|
||||
grammaticallyTransitive: conjugateVerb(dummyEntry, aayTailType, dummyEntry, info.grammaticallyTransitive) as T.VerbConjugation,
|
||||
};
|
||||
}
|
||||
|
||||
if (info.type === "dynamic or stative compound" || info.type === "dynamic or generative stative compound") {
|
||||
return {
|
||||
info,
|
||||
stative: conjugateVerb(dummyEntry, aayTailType, dummyEntry, info.stative) as T.VerbConjugation,
|
||||
dynamic: conjugateVerb(dummyEntry, aayTailType, dummyEntry, info.dynamic) as T.VerbConjugation,
|
||||
};
|
||||
}
|
||||
|
||||
if (info.type === "dynamic compound") {
|
||||
return conjugateDynamicCompound(info, aayTailType);
|
||||
}
|
||||
|
||||
const nonComboInfo = info as T.NonComboVerbInfo;
|
||||
|
||||
// TODO: Handle verbs like چيغه کول
|
||||
const conjugation: T.VerbConjugation = {
|
||||
info: nonComboInfo,
|
||||
imperfective: makeAspectContent(nonComboInfo, "imperfective", aayTailType),
|
||||
perfective: makeAspectContent(nonComboInfo, "perfective", aayTailType),
|
||||
hypothetical: makeHypotheticalContent(nonComboInfo),
|
||||
participle: makeParticipleContent(nonComboInfo),
|
||||
perfect: makePerfectContent(nonComboInfo),
|
||||
..."singularForm" in info ? {
|
||||
singularForm: conjugateVerb(entry, aayTailType, complement, info.singularForm) as T.VerbConjugation,
|
||||
} : {},
|
||||
// if transitive include passive voice
|
||||
...info.transitivity !== "intransitive" ? {
|
||||
// TODO: STATIVE COMPOUND VERSION OF THIS
|
||||
passive: makePassiveContent(nonComboInfo),
|
||||
} : {},
|
||||
};
|
||||
|
||||
return nonComboInfo.transitivity === "grammatically transitive"
|
||||
? enforceObject(conjugation, 10)
|
||||
: nonComboInfo.type === "generative stative compound"
|
||||
? enforceObject(conjugation, nonComboInfo.objComplement.person)
|
||||
: conjugation;
|
||||
}
|
||||
|
||||
function conjugateDynamicCompound(info: T.DynamicCompoundVerbInfo, aayTailType: "ey" | "aay"): T.VerbConjugation {
|
||||
const willUseImperative = !(
|
||||
info.type === "dynamic compound"
|
||||
&& info.transitivity === "intransitive"
|
||||
&& info.auxVerb.p === "کېدل"
|
||||
);
|
||||
const auxConj = enforceObject(
|
||||
conjugateVerb(info.auxVerb, aayTailType, info.auxVerbComplement) as T.VerbConjugation,
|
||||
info.objComplement.person,
|
||||
);
|
||||
const complement = info.objComplement.plural
|
||||
? info.objComplement.plural
|
||||
: psStringFromEntry(info.objComplement.entry);
|
||||
const makeAspectContent = (aspect: T.Aspect): T.AspectContent => {
|
||||
const makeModalContent = (): T.ModalContent => {
|
||||
const nonImperative = addToForm([complement, " "], auxConj[aspect].modal.nonImperative);
|
||||
const future = addToForm([baParticle, " "], nonImperative);
|
||||
const past = addToForm([complement, " "], auxConj[aspect].modal.past);
|
||||
const hypotheticalPast = addToForm([complement, " "], auxConj[aspect].modal.hypotheticalPast);
|
||||
return {
|
||||
nonImperative,
|
||||
future,
|
||||
past,
|
||||
hypotheticalPast,
|
||||
};
|
||||
};
|
||||
const ac = auxConj[aspect];
|
||||
const nonImperative = addToForm([complement, " "], ac.nonImperative);
|
||||
const future = addToForm([baParticle, " "], nonImperative);
|
||||
const imperative = (ac.imperative && willUseImperative)
|
||||
? addToForm([complement, " "], ac.imperative)
|
||||
: null;
|
||||
const past = addToForm([complement, " "], auxConj[aspect].past);
|
||||
const modal = makeModalContent();
|
||||
return {
|
||||
nonImperative,
|
||||
future,
|
||||
...imperative ? {
|
||||
imperative,
|
||||
} : {},
|
||||
past,
|
||||
modal,
|
||||
};
|
||||
}
|
||||
const hypothetical = addToForm([complement, " "], auxConj.hypothetical);
|
||||
const auxPPart = auxConj.participle.past;
|
||||
const participle = {
|
||||
present: concatInflections(complement, auxConj.participle.present),
|
||||
past: (
|
||||
(("long" in auxPPart) && ("masc" in auxPPart.long)) ||
|
||||
("masc" in auxPPart)
|
||||
)
|
||||
// @ts-ignore
|
||||
? concatInflections(complement, auxPPart)
|
||||
// @ts-ignore
|
||||
: concatPsString(complement, " ", auxPPart)
|
||||
}
|
||||
const makePerfect = (pset: T.PerfectContent) => ({
|
||||
halfPerfect: addToForm([complement, " "], pset.halfPerfect),
|
||||
past: addToForm([complement, " "], pset.past),
|
||||
present: addToForm([complement, " "], pset.present),
|
||||
subjunctive: addToForm([complement, " "], pset.subjunctive),
|
||||
future: addToForm([complement, " "], pset.future),
|
||||
affirmational: addToForm([complement, " "], pset.affirmational),
|
||||
pastSubjunctiveHypothetical: addToForm([complement, " "], pset.pastSubjunctiveHypothetical),
|
||||
});
|
||||
const makePassiveAspectContent = (aspect: T.Aspect, passive: T.PassiveContent): T.AspectContentPassive => {
|
||||
const nonImperative = addToForm([complement, " "], passive[aspect].nonImperative);
|
||||
const future = addToForm([baParticle, " "], nonImperative);
|
||||
const past = addToForm([complement, " "], passive[aspect].past);
|
||||
return {
|
||||
nonImperative,
|
||||
future,
|
||||
past,
|
||||
};
|
||||
}
|
||||
return {
|
||||
info,
|
||||
imperfective: makeAspectContent("imperfective"),
|
||||
perfective: makeAspectContent("perfective"),
|
||||
hypothetical,
|
||||
participle,
|
||||
perfect: makePerfect(auxConj.perfect),
|
||||
...auxConj.passive ? {
|
||||
passive: {
|
||||
imperfective: makePassiveAspectContent("imperfective", auxConj.passive),
|
||||
perfective: makePassiveAspectContent("perfective", auxConj.passive),
|
||||
perfect: makePerfect(auxConj.passive.perfect),
|
||||
},
|
||||
} : {},
|
||||
...info.singularForm ? {
|
||||
singularForm: conjugateDynamicCompound(info.singularForm, aayTailType)
|
||||
} : {},
|
||||
...info.intransitiveForm ? {
|
||||
intransitiveForm: conjugateDynamicCompound(info.intransitiveForm, aayTailType)
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
|
||||
function makeAspectContent(info: T.NonComboVerbInfo, aspect: T.Aspect, aayTailType: T.AayTail): T.AspectContent {
|
||||
if ((info.type === "stative compound") && spaceInForm(info.root[aspect])) {
|
||||
return makeStativeCompoundSeperatedAspectContent(info, aspect, aayTailType);
|
||||
}
|
||||
const stem = noPersInfs(info.stem[aspect]);
|
||||
const root = noPersInfs(info.root[aspect]);
|
||||
const nonImperative = addToForm([stem], presentEndings);
|
||||
const future = addToForm([baParticle, " "], nonImperative);
|
||||
const imperative = addToForm([stem], imperativeEndings);
|
||||
const roughPast = addToForm([root], pastEndings) as T.LengthOptions<T.VerbBlock>;
|
||||
// add accents and idiosyncratic third person sing masc forms
|
||||
const past = finishSimpleVerbPast(info, aspect, roughPast);
|
||||
return {
|
||||
nonImperative, // stem + present endings
|
||||
future, // به - ba + nonImperative
|
||||
imperative, // stem + imperative endings
|
||||
past, // root + past endings
|
||||
modal: makeJoinedModalContent(info, aspect, aayTailType),
|
||||
};
|
||||
}
|
||||
|
||||
function makeJoinedModalContent(info: T.NonComboVerbInfo, aspectIn: T.Aspect, aayTailType: T.AayTail): T.ModalContent {
|
||||
const aspect: T.Aspect = noPerfectiveModal(info) ? "imperfective" : aspectIn;
|
||||
const aayTail = getAayTail(aayTailType);
|
||||
const aux = stativeAux.intransitive.perfective;
|
||||
const rAndT = info.yulEnding
|
||||
? concatPsString(noPersInfs(info.root[aspect]).long, aayTail)
|
||||
: concatPsString(noPersInfs(info.root[aspect]), aayTail);
|
||||
const rootAndTail = aspect === "imperfective"
|
||||
? accentImperfectiveModalRootAndTail(info, rAndT)
|
||||
: rAndT;
|
||||
|
||||
const nonImperative = addToForm([rootAndTail, " "], aux.nonImperative);
|
||||
const future = addToForm([baParticle, " "], nonImperative);
|
||||
const past = addToForm(
|
||||
[rootAndTail, " "],
|
||||
// @ts-ignore
|
||||
aux.past.short,
|
||||
);
|
||||
const hypotheticalPast = addToForm([rootAndTail, " ", { p: "شو", f: "shw" }, aayTail], emptyVerbBlock);
|
||||
return {
|
||||
nonImperative, // ROOT + aayTail + kedulStat subjunctive
|
||||
future, // به - ba + modal nonImperative
|
||||
past, // ROOT + aayTail + kedulStat simple past
|
||||
hypotheticalPast, // ROOT + aayTail + sh + aayTail
|
||||
};
|
||||
}
|
||||
|
||||
function makeStativeCompoundSeperatedAspectContent(info: T.StativeCompoundVerbInfo, aspect: T.Aspect, aayTailType: T.AayTail): T.AspectContent {
|
||||
const transitivity = getTransitivity(info);
|
||||
const presentComplement = (transitivity === "transitive" && complementInflects(info.complement))
|
||||
? unisexInfToObjectMatrix(info.complement) // transitive verb requires an object matrix for the complex
|
||||
: info.complement; // intransitive verb doesn't require that because the complement matches the subject
|
||||
|
||||
function makeTransitiveStativeModalContent() {
|
||||
const aux = stativeAux[transitivity][aspect].modal;
|
||||
const nonImperative = addToForm([presentComplement, " "], aux.nonImperative);
|
||||
const future = addToForm([baParticle, " "], nonImperative);
|
||||
const past = addToForm([info.complement, " "], aux.past);
|
||||
const hypotheticalPast = addToForm([info.complement, " "], aux.hypotheticalPast);
|
||||
return {
|
||||
nonImperative,
|
||||
future,
|
||||
past,
|
||||
hypotheticalPast,
|
||||
};
|
||||
}
|
||||
|
||||
const aux = stativeAux[transitivity][aspect];
|
||||
// CHECK, does this work with transitive and intransitive??
|
||||
const nonImperative = addToForm(
|
||||
[presentComplement, " "],
|
||||
stativeAux[transitivity][aspect].nonImperative,
|
||||
);
|
||||
const future = addToForm([baParticle, " "], nonImperative);
|
||||
const imperative = aux.imperative
|
||||
? addToForm([presentComplement, " "], aux.imperative)
|
||||
: null;
|
||||
const past = addToForm([info.complement, " "], aux.past);
|
||||
return {
|
||||
nonImperative,
|
||||
future,
|
||||
past,
|
||||
...imperative ? {
|
||||
imperative,
|
||||
} : {},
|
||||
modal: info.transitivity === "transitive"
|
||||
? makeTransitiveStativeModalContent()
|
||||
: makeJoinedModalContent(info, "imperfective", aayTailType),
|
||||
};
|
||||
}
|
||||
|
||||
function makeHypotheticalContent(info: T.NonComboVerbInfo): T.VerbForm {
|
||||
function makeStativeCompoundSepHypotheticalContent(info: T.StativeCompoundVerbInfo): T.VerbForm {
|
||||
const transitivity = getTransitivity(info);
|
||||
const aux = stativeAux[transitivity].hypothetical;
|
||||
return addToForm([
|
||||
(transitivity === "transitive" && complementInflects(info.complement))
|
||||
? unisexInfToObjectMatrix(info.complement)
|
||||
: info.complement,
|
||||
" ",
|
||||
], aux);
|
||||
}
|
||||
if (("complement" in info) && spaceInForm(info.root.imperfective)) {
|
||||
return makeStativeCompoundSepHypotheticalContent(info as T.StativeCompoundVerbInfo);
|
||||
}
|
||||
const makeHypothetical = (root: T.OptionalPersonInflections<T.LengthOptions<T.PsString>>, length: "short" | "long"): T.PsString => {
|
||||
if ("mascSing" in root) {
|
||||
// BIG TODO: SHOULD THERE BE PERS INFS HERE?? IGNORING THEM NOW IF THEY EXIST
|
||||
return makeHypothetical(root.mascSing, length) as T.PsString;
|
||||
}
|
||||
return accentOnNFromEnd(
|
||||
concatPsString(root[length], aayTail),
|
||||
(length === "long" ? 1 : 0) + (info.yulEnding ? 1 : 0),
|
||||
)
|
||||
};
|
||||
const hyp = {
|
||||
short: makeHypothetical(info.root.imperfective, "short"),
|
||||
long: makeHypothetical(info.root.imperfective, "long"),
|
||||
};
|
||||
return addToForm([hyp], emptyVerbBlock);
|
||||
}
|
||||
|
||||
function makeParticipleContent(info: T.NonComboVerbInfo): T.ParticipleContent {
|
||||
const transitivity = getTransitivity(info);
|
||||
const past = ("complement" in info)
|
||||
? concatInflections(info.complement, stativeAux[transitivity].participle.past as T.UnisexInflections)
|
||||
: ("objComplement" in info)
|
||||
? concatInflections(info.objComplement.plural ? info.objComplement.plural : info.objComplement.entry, stativeAux[transitivity].participle.past as T.UnisexInflections)
|
||||
: inflectYey(noPersInfs(info.participle.past));
|
||||
const present = ("complement" in info && spaceInForm(info.root.imperfective))
|
||||
? concatInflections(info.complement, stativeAux[transitivity].participle.present as T.UnisexInflections)
|
||||
: inflectYey(noPersInfs(info.participle.present));
|
||||
if ("objComplement" in info) {
|
||||
console.log(info.objComplement, past);
|
||||
}
|
||||
return {
|
||||
present, // PAST PARTICIPLE inflected
|
||||
past, // PRESENT PARTICIPLE inflected
|
||||
};
|
||||
}
|
||||
|
||||
function makePerfectContent(info: T.NonComboVerbInfo): T.PerfectContent {
|
||||
const transitivity = getTransitivity(info);
|
||||
const pastPart: (" " | T.SingleOrLengthOpts<T.UnisexInflections> | T.SingleOrLengthOpts<T.PsString>)[] =
|
||||
(info.type === "stative compound")
|
||||
// for stative compounds
|
||||
? [info.complement, " ", stativeAux[transitivity].participle.past]
|
||||
// for regular compounds
|
||||
: [inflectYey(noPersInfs(info.participle.past))]
|
||||
|
||||
const halfPerfect = addToForm([...pastPart], emptyVerbBlock);
|
||||
const past = addToForm([...pastPart, " "], equativeEndings.past.short);
|
||||
const present = addToForm([...pastPart, " "], equativeEndings.present);
|
||||
const subjunctive = addToForm([...pastPart, " "], equativeEndings.subjunctive);
|
||||
const future = addToForm([baParticle, " ", ...pastPart, " "], equativeEndings.subjunctive);
|
||||
const affirmational = addToForm([baParticle, " ", ...pastPart, " "], equativeEndings.past.short);
|
||||
const pastSubjunctiveHypothetical = addToForm([...pastPart, " "], equativeEndings.hypothetical);
|
||||
return {
|
||||
halfPerfect, // Past Participle
|
||||
past, // Past Participle + Past Equative
|
||||
present, // Past Participle + Present Equative
|
||||
subjunctive, // Past Participle + Subjunctive Equative
|
||||
future, // به - ba + Past Participle + Future/Subj Equative
|
||||
affirmational, // به - ba + Past Participle + Past Equative
|
||||
pastSubjunctiveHypothetical, // Past Participle + وای - waay
|
||||
};
|
||||
}
|
||||
|
||||
function makePassiveContent(info: T.NonComboVerbInfo): {
|
||||
imperfective: T.AspectContentPassive // --╖ ASPECT = "imperfective"
|
||||
perfective: T.AspectContentPassive // --╜ ASPECT = "perfective"
|
||||
perfect: T.PerfectContent;
|
||||
} {
|
||||
function makePassiveAspectContent(aspect: T.Aspect): T.AspectContentPassive {
|
||||
if ("complement" in info && spaceInForm(info.root[aspect])) {
|
||||
// seperated stative compound verb
|
||||
const bridge = aspect === "imperfective"
|
||||
? noPersInfs(stativeAux.transitive.info.root.imperfective).long
|
||||
: passiveStativeBridge;
|
||||
const nonImperative = addToForm(
|
||||
[info.complement, " ", bridge, " "],
|
||||
stativeAux.intransitive[aspect].nonImperative,
|
||||
);
|
||||
const future = addToForm([baParticle, " "], nonImperative);
|
||||
const past = addToForm(
|
||||
[info.complement, " ", bridge, " "],
|
||||
stativeAux.intransitive[aspect].past,
|
||||
);
|
||||
return {
|
||||
nonImperative,
|
||||
future,
|
||||
past,
|
||||
};
|
||||
}
|
||||
const root = noPersInfs(info.root[aspect]).long;
|
||||
const aux = stativeAux.intransitive[aspect];
|
||||
const nonImperative = addToForm([root, " "], aux.nonImperative);
|
||||
const future = addToForm([baParticle, " "], nonImperative);
|
||||
const past = addToForm([root, " "], aux.past);
|
||||
return {
|
||||
nonImperative, // ROOT LONG + kedulStat[aspect].nonImperative
|
||||
future, // به ba + ROOT LONG + this.nonImperative
|
||||
past, // ROOT LONG + kedulStat[aspect].past
|
||||
};
|
||||
}
|
||||
const simpleVerbParticiple = {
|
||||
past: concatPsString(
|
||||
noPersInfs(info.root.imperfective).long,
|
||||
" ",
|
||||
stativeAux.intransitive.info.participle.past as T.PsString,
|
||||
),
|
||||
present: { p: "ن ا", f: "n / a" },
|
||||
};
|
||||
const perfect = (info.type === "stative compound")
|
||||
? makePassivePerfectContent(info)
|
||||
: makePerfectContent({ ...info, participle: simpleVerbParticiple });
|
||||
return {
|
||||
imperfective: makePassiveAspectContent("imperfective"),
|
||||
perfective: makePassiveAspectContent("perfective"),
|
||||
perfect: perfect,
|
||||
};
|
||||
}
|
||||
|
||||
function makePassivePerfectContent(info: T.StativeCompoundVerbInfo): T.PerfectContent {
|
||||
const pPart = stativeAux.intransitive.participle.past;
|
||||
// will always be transitive
|
||||
const halfPerfect = addToForm(
|
||||
[info.complement, " ", passiveStativeBridge, " ", pPart],
|
||||
emptyVerbBlock,
|
||||
);
|
||||
const past = addToForm(
|
||||
[info.complement, " ", passiveStativeBridge, " ", pPart, " "],
|
||||
equativeEndings.past.short,
|
||||
);
|
||||
const present = addToForm(
|
||||
[info.complement, " ", passiveStativeBridge, " ", pPart, " "],
|
||||
equativeEndings.present,
|
||||
);
|
||||
const subjunctive = addToForm(
|
||||
[info.complement, " ", passiveStativeBridge, " ", pPart, " "],
|
||||
equativeEndings.subjunctive,
|
||||
);
|
||||
const future = addToForm(
|
||||
[baParticle, " ", info.complement, " ", passiveStativeBridge, " ", pPart, " "],
|
||||
equativeEndings.subjunctive,
|
||||
);
|
||||
const affirmational = addToForm(
|
||||
[baParticle, " ", info.complement, " ", passiveStativeBridge, " ", pPart, " "],
|
||||
equativeEndings.past.short,
|
||||
);
|
||||
const pastSubjunctiveHypothetical = addToForm(
|
||||
[info.complement, " ", passiveStativeBridge, " ", pPart, " "],
|
||||
equativeEndings.hypothetical,
|
||||
);
|
||||
return {
|
||||
halfPerfect,
|
||||
past,
|
||||
present,
|
||||
subjunctive,
|
||||
future,
|
||||
affirmational,
|
||||
pastSubjunctiveHypothetical,
|
||||
};
|
||||
}
|
||||
|
||||
function enforceObject(conj: T.VerbConjugation, person: T.Person): T.VerbConjugation {
|
||||
const modifyPastInAspect = (as: T.AspectContent): T.AspectContent => ({
|
||||
nonImperative: allOnePersonInflection(as.nonImperative, person),
|
||||
future: allOnePersonInflection(as.future, person),
|
||||
...as.imperative ? {
|
||||
imperative: allOnePersonInflection(as.imperative, person),
|
||||
} : {},
|
||||
past: allOnePersonVerbForm(as.past, person),
|
||||
modal: {
|
||||
...as.modal,
|
||||
past: allOnePersonVerbForm(as.modal.past, person),
|
||||
},
|
||||
});
|
||||
const modifyParticiple = (part: T.ParticipleContent): T.ParticipleContent => ({
|
||||
// TODO: What to do with this!
|
||||
present: allOnePersonInflection(part.present, person),
|
||||
past: chooseParticipleInflection(part.past, person),
|
||||
});
|
||||
const modifyPerfect = (perf: T.PerfectContent): T.PerfectContent => ({
|
||||
halfPerfect: allOnePersonVerbForm(perf.halfPerfect, person),
|
||||
past: allOnePersonVerbForm(perf.past, person),
|
||||
present: allOnePersonVerbForm(perf.present, person),
|
||||
subjunctive: allOnePersonInflection(perf.subjunctive, person),
|
||||
future: allOnePersonVerbForm(perf.future, person),
|
||||
affirmational: allOnePersonVerbForm(perf.affirmational, person),
|
||||
pastSubjunctiveHypothetical: allOnePersonVerbForm(perf.pastSubjunctiveHypothetical, person),
|
||||
});
|
||||
const modifyPassiveAspect = (as: T.AspectContentPassive): T.AspectContentPassive => ({
|
||||
nonImperative: allOnePersonVerbForm(as.nonImperative, person),
|
||||
future: allOnePersonVerbForm(as.future, person),
|
||||
past: allOnePersonVerbForm(as.past, person),
|
||||
});
|
||||
return {
|
||||
...conj,
|
||||
imperfective: modifyPastInAspect(conj.imperfective),
|
||||
perfective: modifyPastInAspect(conj.perfective),
|
||||
participle: modifyParticiple(conj.participle),
|
||||
perfect: modifyPerfect(conj.perfect),
|
||||
...conj.passive ? {
|
||||
passive: {
|
||||
imperfective: modifyPassiveAspect(conj.passive.imperfective),
|
||||
perfective: modifyPassiveAspect(conj.passive.perfective),
|
||||
perfect: modifyPerfect(conj.passive.perfect),
|
||||
}
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
|
||||
// 2ND LEVER HELPERS
|
||||
|
||||
function finishSimpleVerbPast(
|
||||
info: T.NonComboVerbInfo,
|
||||
aspect: T.Aspect,
|
||||
roughPast: T.LengthOptions<T.VerbBlock>,
|
||||
): T.VerbForm {
|
||||
const applyAccent = (block: T.VerbBlock, form: "short" | "long"): T.VerbBlock => (
|
||||
mapVerbBlock((item: T.PsString, rowNum: number | undefined, colNum: number | undefined) => {
|
||||
const nonRedundantLEnding = (
|
||||
(rowNum === 4 && colNum === 1) &&
|
||||
item.p.slice(-1) === "ل" &&
|
||||
["ul", "úl"].includes(item.f.slice(-2))
|
||||
)
|
||||
const n = (((form === "short") || nonRedundantLEnding) ? 0 : 1) + (info.yulEnding ? 1 : 0);
|
||||
return accentOnNFromEnd(item, n);
|
||||
}, block)
|
||||
);
|
||||
const short = ensureShort3rdPersMascSing(info, aspect, roughPast.short);
|
||||
if (aspect === "imperfective") {
|
||||
return {
|
||||
short: applyAccent(short, "short"),
|
||||
long: applyAccent(roughPast.long, "long"),
|
||||
};
|
||||
}
|
||||
// don't apply the accent on the perfective because the accent will
|
||||
// already have been included in the perfective root
|
||||
return { ...roughPast, short };
|
||||
}
|
||||
|
||||
function ensureShort3rdPersMascSing(
|
||||
info: T.NonComboVerbInfo,
|
||||
aspect: T.Aspect,
|
||||
block: T.VerbBlock,
|
||||
): T.VerbBlock {
|
||||
const replace3rdPersMascSing = (
|
||||
replacement: T.ArrayOneOrMore<T.PsString>,
|
||||
block: T.VerbBlock,
|
||||
): T.VerbBlock => ([
|
||||
...block.slice(0, 4),
|
||||
[replacement, block[4][1]],
|
||||
block[5],
|
||||
] as T.VerbBlock);
|
||||
const makeAawuForm = (root: T.PsString): T.PsString => {
|
||||
const base = {
|
||||
p: root.p.slice(0, -1),
|
||||
f: root.f.slice(0, -2),
|
||||
};
|
||||
return concatPsString(base, { p: "اوه", f: "aawu" });
|
||||
}
|
||||
const infinitive = noPersInfs(info.root.imperfective).long;
|
||||
const endsInAwul = (
|
||||
(["awul", "awúl"].includes(infinitive.f.slice(-4)))
|
||||
&&
|
||||
(infinitive.p.slice(-2) === "ول")
|
||||
);
|
||||
if (endsInAwul) {
|
||||
const root = noPersInfs(info.root[aspect]).short;
|
||||
return replace3rdPersMascSing([makeAawuForm(root)], block);
|
||||
}
|
||||
if (info.idiosyncraticThirdMascSing) {
|
||||
const form = info.idiosyncraticThirdMascSing[aspect];
|
||||
// if it ends in a consonant, the special form will also have another
|
||||
// variation ending with a ه - u
|
||||
const endsInAConsonant = pashtoConsonants.includes(form.p.slice(-1));
|
||||
const replacement: T.ArrayOneOrMore<T.PsString> = endsInAConsonant
|
||||
? [form, concatPsString(form, { p: "ه", f: "u" })]
|
||||
: [form];
|
||||
return replace3rdPersMascSing(replacement, block);
|
||||
}
|
||||
// No need for any special third person masculine singular forms
|
||||
return block;
|
||||
}
|
||||
|
||||
function accentImperfectiveModalRootAndTail(
|
||||
info: T.NonComboVerbInfo,
|
||||
rt: T.SingleOrLengthOpts<T.PsString>,
|
||||
length?: "long" | "short",
|
||||
): T.SingleOrLengthOpts<T.PsString> {
|
||||
if ("long" in rt) {
|
||||
return {
|
||||
short: accentImperfectiveModalRootAndTail(info, rt.short, "short") as T.PsString,
|
||||
long: accentImperfectiveModalRootAndTail(info, rt.long, "long") as T.PsString,
|
||||
}
|
||||
}
|
||||
const n = info.yulEnding
|
||||
? 2
|
||||
: length === "short"
|
||||
? 0
|
||||
: 1;
|
||||
return accentOnNFromEnd(rt, n);
|
||||
}
|
||||
|
||||
function getTransitivity(info: T.VerbInfo): "transitive" | "intransitive" {
|
||||
return ("transitivity" in info && info.transitivity === "intransitive")
|
||||
? "intransitive"
|
||||
: "transitive";
|
||||
}
|
||||
|
||||
function noPerfectiveModal(info: T.NonComboVerbInfo): boolean {
|
||||
if (!("mascSing" in info.root.imperfective)) {
|
||||
const inf = info.root.imperfective.long;
|
||||
return (
|
||||
inf.p === "راتلل" ||
|
||||
psStringEquals({ p: "تلل", f: "tlul" }, inf) ||
|
||||
inf.p === "درتلل" ||
|
||||
inf.p === "ورتلل"
|
||||
);
|
||||
}
|
||||
return false;
|
||||
}
|
|
@ -0,0 +1,938 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
concatPsString,
|
||||
firstPhonetics,
|
||||
makePsString,
|
||||
psStringEquals,
|
||||
removeEndingL,
|
||||
yulEndingInfinitive,
|
||||
removeRetroflexR,
|
||||
inflectYey,
|
||||
unisexInfToObjectMatrix,
|
||||
complementInflects,
|
||||
beginsWithDirectionalPronoun,
|
||||
checkForOoPrefix,
|
||||
removeStartingTick,
|
||||
ensureShortWurShwaShift,
|
||||
choosePersInf,
|
||||
} from "./p-text-helpers";
|
||||
import {
|
||||
accentOnFront,
|
||||
accentOnNFromEnd,
|
||||
removeAccents,
|
||||
} from "./accent-helpers";
|
||||
import {
|
||||
inflectWord,
|
||||
} from "./pashto-inflector";
|
||||
import {
|
||||
stativeAux,
|
||||
} from "./irregular-conjugations";
|
||||
import {
|
||||
presentParticipleSuffix
|
||||
} from "./grammar-units";
|
||||
import {
|
||||
dynamicAuxVerbs,
|
||||
} from "./dyn-comp-aux-verbs";
|
||||
import {
|
||||
getPersonInflectionsKey,
|
||||
getPersonNumber,
|
||||
spaceInForm,
|
||||
getAuxTransitivity,
|
||||
chooseParticipleInflection,
|
||||
} from "./misc-helpers";
|
||||
import * as T from "../types";
|
||||
|
||||
const eyEndingUnaccented: T.PsString = { p: "ی", f: "ey" };
|
||||
|
||||
/**
|
||||
* Compiles the base information (roots, stems etc.) needed in order
|
||||
* to make all the conjugations. This is the first step of creating
|
||||
* the conjugations.
|
||||
*
|
||||
* @param entry - the dictionary entry for the verb
|
||||
* @param complement - the dictioanry entry for the complement of the verb if compound
|
||||
*/
|
||||
export function getVerbInfo(
|
||||
entry: T.DictionaryEntry,
|
||||
complement?: T.DictionaryEntry,
|
||||
): T.VerbInfo {
|
||||
const type = getType(entry);
|
||||
if (type === "transitive or grammatically transitive simple") {
|
||||
return {
|
||||
type: "transitive or grammatically transitive simple",
|
||||
transitive: getVerbInfo(
|
||||
// @ts-ignore (will have entry.c)
|
||||
{ ...entry, c: entry.c.replace("trans./gramm. trans.", "trans.") },
|
||||
) as T.SimpleVerbInfo,
|
||||
grammaticallyTransitive: getVerbInfo(
|
||||
// @ts-ignore (will have entry.c)
|
||||
{ ...entry, c: entry.c.replace("trans./gramm. trans.", "gramm. trans.") },
|
||||
) as T.SimpleVerbInfo,
|
||||
};
|
||||
}
|
||||
const transitivity = getTransitivity(entry);
|
||||
if (type !== "simple") {
|
||||
if (!complement) {
|
||||
throw new Error("complement required for compound verb");
|
||||
}
|
||||
if (type === "dynamic compound") {
|
||||
return getDynamicCompoundInfo(entry, complement)
|
||||
}
|
||||
if (type === "dynamic or stative compound") {
|
||||
return {
|
||||
type: "dynamic or stative compound",
|
||||
transitivity,
|
||||
dynamic: getDynamicCompoundInfo(
|
||||
// @ts-ignore (will have entry.c)
|
||||
{ ...entry, c: entry.c.replace("dyn./stat.", "dyn.") },
|
||||
complement,
|
||||
),
|
||||
stative: getVerbInfo(
|
||||
// @ts-ignore (will have entry.c)
|
||||
{ ...entry, c: entry.c.replace("dyn./stat.", "stat.") },
|
||||
complement,
|
||||
) as T.StativeCompoundVerbInfo,
|
||||
};
|
||||
}
|
||||
if (type === "dynamic or generative stative compound") {
|
||||
return {
|
||||
type: "dynamic or generative stative compound",
|
||||
transitivity,
|
||||
dynamic: getDynamicCompoundInfo(
|
||||
// @ts-ignore (will have entry.c)
|
||||
{ ...entry, c: entry.c.replace("gen. stat./dyn.", "dyn.") },
|
||||
complement,
|
||||
),
|
||||
stative: getGenerativeStativeCompoundVerbInfo(
|
||||
// @ts-ignore (will have entry.c)
|
||||
{ ...entry, c: entry.c.replace("gen. stat./dyn.", "gen. stat.") },
|
||||
complement,
|
||||
),
|
||||
}
|
||||
}
|
||||
if (type === "generative stative compound") {
|
||||
return getGenerativeStativeCompoundVerbInfo(entry, complement as T.DictionaryEntry);
|
||||
}
|
||||
}
|
||||
const comp = complement ? ensureUnisexInflections(complement) : undefined;
|
||||
const root = getVerbRoots(entry, transitivity, comp);
|
||||
const stem = getVerbStems(entry, root, transitivity, comp);
|
||||
const infinitive = "mascSing" in root.imperfective ? root.imperfective.mascSing.long : root.imperfective.long;
|
||||
const yulEnding = yulEndingInfinitive(infinitive);
|
||||
const participle = getParticiple(entry, stem, infinitive, transitivity, comp);
|
||||
const idiosyncraticThirdMascSing = getIdiosyncraticThirdMascSing(entry);
|
||||
|
||||
const baseInfo: T.VerbInfoBase = {
|
||||
transitivity,
|
||||
yulEnding,
|
||||
root,
|
||||
stem,
|
||||
participle,
|
||||
...idiosyncraticThirdMascSing ? {
|
||||
idiosyncraticThirdMascSing,
|
||||
} : {},
|
||||
};
|
||||
if (type === "stative compound") {
|
||||
return {
|
||||
...baseInfo,
|
||||
type,
|
||||
complement: comp as T.UnisexInflections,
|
||||
};
|
||||
}
|
||||
return {
|
||||
...baseInfo,
|
||||
type,
|
||||
};
|
||||
}
|
||||
|
||||
type Bases = {
|
||||
stem: {
|
||||
imperfective: T.FullForm<T.PsString>,
|
||||
perfective: T.FullForm<T.PsString>,
|
||||
perfectiveSplit?: T.SplitInfo,
|
||||
},
|
||||
root: {
|
||||
imperfective: T.FullForm<T.PsString>,
|
||||
perfective: T.FullForm<T.PsString>,
|
||||
perfectiveSplit?: T.SplitInfo,
|
||||
},
|
||||
participle: {
|
||||
present: T.FullForm<T.PsString>,
|
||||
past: T.FullForm<T.PsString>,
|
||||
},
|
||||
}
|
||||
|
||||
function getGenerativeStativeCompoundVerbInfo(
|
||||
entry: T.DictionaryEntry, comp: T.DictionaryEntry, forceSingular?: true,
|
||||
): T.GenerativeStativeCompoundVerbInfo {
|
||||
const transitivity = getTransitivity(entry);
|
||||
const transitivityNoGrammTrans = transitivity === "grammatically transitive" ? "transitive" : transitivity;
|
||||
const yulEnding = null;
|
||||
const objComplement = getObjComplementInfo(entry, comp, forceSingular);
|
||||
const auxVerb = stativeAux[transitivityNoGrammTrans];
|
||||
const compUsed = objComplement.plural ? objComplement.plural : makePsString(
|
||||
objComplement.entry.p,
|
||||
firstPhonetics(objComplement.entry.f),
|
||||
);
|
||||
const bases: Bases = {
|
||||
stem: {
|
||||
imperfective: auxVerb.info.stem.imperfective,
|
||||
perfective: auxVerb.info.stem.perfective,
|
||||
},
|
||||
root: {
|
||||
imperfective: auxVerb.info.root.imperfective,
|
||||
perfective: auxVerb.info.root.perfective,
|
||||
},
|
||||
participle: {
|
||||
present: auxVerb.info.participle.present,
|
||||
past: chooseParticipleInflection(
|
||||
inflectYey(
|
||||
"mascSing" in auxVerb.info.participle.past
|
||||
// purely for type saftey, will not have mascSing
|
||||
// in a non stative compound verb
|
||||
/* istanbul ignore next */
|
||||
? auxVerb.info.participle.past.mascSing
|
||||
: auxVerb.info.participle.past
|
||||
),
|
||||
objComplement.person,
|
||||
),
|
||||
}
|
||||
}
|
||||
const perfectiveStem = concatPsString(compUsed, " ", bases.stem.perfective);
|
||||
const stem = {
|
||||
imperfective: concatPsString(compUsed, " ", bases.stem.imperfective),
|
||||
perfective: perfectiveStem,
|
||||
perfectiveSplit: splitPerfective(perfectiveStem, 0, 0, true),
|
||||
};
|
||||
const perfectiveRoot = concatPsString(compUsed, " ", bases.root.perfective) as T.OptionalPersonInflections<T.LengthOptions<T.PsString>>;
|
||||
const root = {
|
||||
imperfective: concatPsString(compUsed, " ", bases.root.imperfective) as T.OptionalPersonInflections<T.LengthOptions<T.PsString>>,
|
||||
perfective: perfectiveRoot,
|
||||
perfectiveSplit: splitPerfective(perfectiveRoot, 0, 0, true),
|
||||
};
|
||||
const participle = {
|
||||
present: concatPsString(compUsed, " ", auxVerb.info.participle.present),
|
||||
past: concatPsString(compUsed, " ", bases.participle.past),
|
||||
}
|
||||
return {
|
||||
type: "generative stative compound",
|
||||
transitivity,
|
||||
yulEnding,
|
||||
stem,
|
||||
root,
|
||||
participle,
|
||||
objComplement,
|
||||
...objComplement.plural ? {
|
||||
singularForm: getGenerativeStativeCompoundVerbInfo(entry, comp, true),
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
|
||||
function getDynamicCompoundInfo(entry: T.DictionaryEntry, comp: T.DictionaryEntry, forceSingular?: true): T.DynamicCompoundVerbInfo {
|
||||
const transitivity = getTransitivity(entry);
|
||||
const yulEnding = null;
|
||||
const objComplement = getObjComplementInfo(entry, comp, forceSingular);
|
||||
const auxVerb = getDynamicAuxVerb(entry);
|
||||
const auxVerbInfo = getVerbInfo(auxVerb.entry, auxVerb.complement) as T.NonComboVerbInfo;
|
||||
const compUsed = objComplement.plural ? objComplement.plural : makePsString(
|
||||
objComplement.entry.p,
|
||||
firstPhonetics(objComplement.entry.f),
|
||||
);
|
||||
const bases: Bases = (auxVerbInfo.type === "stative compound")
|
||||
? getObjectMatchingBases(auxVerbInfo, objComplement.person)
|
||||
: {
|
||||
stem: {
|
||||
imperfective: auxVerbInfo.stem.imperfective,
|
||||
perfective: auxVerbInfo.stem.perfective,
|
||||
...auxVerbInfo.stem.perfectiveSplit ? {
|
||||
perfectiveSplit: auxVerbInfo.stem.perfectiveSplit,
|
||||
} : {},
|
||||
},
|
||||
root: {
|
||||
imperfective: auxVerbInfo.root.imperfective,
|
||||
perfective: auxVerbInfo.root.perfective,
|
||||
...auxVerbInfo.root.perfectiveSplit ? {
|
||||
perfectiveSplit: auxVerbInfo.root.perfectiveSplit,
|
||||
} : {},
|
||||
},
|
||||
participle: {
|
||||
present: auxVerbInfo.participle.present,
|
||||
past: chooseParticipleInflection(
|
||||
inflectYey(
|
||||
"mascSing" in auxVerbInfo.participle.past
|
||||
// purely for type saftey, will not have mascSing
|
||||
// in a non stative compound verb
|
||||
/* istanbul ignore next */
|
||||
? auxVerbInfo.participle.past.mascSing
|
||||
: auxVerbInfo.participle.past
|
||||
),
|
||||
objComplement.person,
|
||||
),
|
||||
}
|
||||
}
|
||||
const stem = {
|
||||
imperfective: concatPsString(compUsed, " ", bases.stem.imperfective),
|
||||
perfective: concatPsString(compUsed, " ", bases.stem.perfective),
|
||||
...bases.stem.perfectiveSplit ? {
|
||||
perfectiveSplit: makeDynamicPerfectiveSplit(compUsed, bases.stem.perfectiveSplit),
|
||||
} : {},
|
||||
};
|
||||
const root = {
|
||||
imperfective: concatPsString(compUsed, " ", bases.root.imperfective) as T.OptionalPersonInflections<T.LengthOptions<T.PsString>>,
|
||||
perfective: concatPsString(compUsed, " ", bases.root.perfective) as T.OptionalPersonInflections<T.LengthOptions<T.PsString>>,
|
||||
...bases.root.perfectiveSplit ? {
|
||||
perfectiveSplit: makeDynamicPerfectiveSplit(compUsed, bases.root.perfectiveSplit),
|
||||
} : {},
|
||||
};
|
||||
const participle = {
|
||||
present: concatPsString(compUsed, " ", auxVerbInfo.participle.present),
|
||||
past: concatPsString(compUsed, " ", bases.participle.past),
|
||||
};
|
||||
const makeIntransitiveFormOfEntry = (e: T.DictionaryEntry): T.DictionaryEntry => ({
|
||||
...e,
|
||||
p: e.p.replace(
|
||||
"کول",
|
||||
"کېدل"
|
||||
),
|
||||
e: e.e.replace("to do", "to become"),
|
||||
f: e.f.replace(/kaw[u|ú]l/, "kedul"),
|
||||
c: "v. intrans. dyn. comp.",
|
||||
});
|
||||
const intransitiveFormEntry = (transitivity === "transitive" && auxVerb.entry.p === "کول")
|
||||
? makeIntransitiveFormOfEntry(entry)
|
||||
: null;
|
||||
return {
|
||||
type: "dynamic compound",
|
||||
transitivity,
|
||||
yulEnding,
|
||||
stem,
|
||||
root,
|
||||
participle,
|
||||
objComplement,
|
||||
auxVerb: auxVerb.entry,
|
||||
...auxVerb.complement ? {
|
||||
auxVerbComplement: auxVerb.complement,
|
||||
} : {},
|
||||
...objComplement.plural ? {
|
||||
singularForm: getDynamicCompoundInfo(entry, comp, true),
|
||||
} : {},
|
||||
...intransitiveFormEntry ? {
|
||||
intransitiveForm: getDynamicCompoundInfo(intransitiveFormEntry, comp),
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
|
||||
function getObjectMatchingBases(auxInfo: T.NonComboVerbInfo, person: T.Person): Bases {
|
||||
const key = getPersonInflectionsKey(person);
|
||||
const getBase = (x: T.FullForm<T.PsString>): T.SingleOrLengthOpts<T.PsString> => (
|
||||
"mascSing" in x ? x[key] : x
|
||||
);
|
||||
return {
|
||||
stem: {
|
||||
imperfective: getBase(auxInfo.stem.imperfective),
|
||||
perfective: getBase(auxInfo.stem.perfective),
|
||||
...auxInfo.stem.perfectiveSplit ? {
|
||||
perfectiveSplit: choosePersInf(auxInfo.stem.perfectiveSplit, key),
|
||||
} : {},
|
||||
},
|
||||
root: {
|
||||
imperfective: getBase(auxInfo.root.imperfective),
|
||||
perfective: getBase(auxInfo.root.perfective),
|
||||
...auxInfo.root.perfectiveSplit ? {
|
||||
perfectiveSplit: choosePersInf(auxInfo.root.perfectiveSplit, key),
|
||||
} : {},
|
||||
},
|
||||
participle: {
|
||||
present: getBase(auxInfo.participle.present),
|
||||
past: getBase(auxInfo.participle.past),
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function getObjComplementInfo(
|
||||
entry: T.DictionaryEntry,
|
||||
complement: T.DictionaryEntry,
|
||||
forceSingular?: true
|
||||
): T.ObjComplement {
|
||||
const complementInEntry = makePsString(
|
||||
entry.p.split(" ")[0],
|
||||
entry.f.split(" ")[0],
|
||||
);
|
||||
const complementEntry: T.DictionaryEntry = { ...complement, f: firstPhonetics(complement.f) };
|
||||
const usesSeperatePluralForm = !forceSingular && !psStringEquals(
|
||||
makePsString(complementInEntry.p, removeAccents(complementInEntry.f)),
|
||||
makePsString(complementEntry.p, removeAccents(complementEntry.f)),
|
||||
);
|
||||
return {
|
||||
entry: complementEntry,
|
||||
...usesSeperatePluralForm ? {
|
||||
plural: complementInEntry,
|
||||
} : {},
|
||||
person: getComplementPerson(complement, usesSeperatePluralForm),
|
||||
};
|
||||
}
|
||||
|
||||
function getTransitivity(entry: T.DictionaryEntry): T.Transitivity {
|
||||
if (!entry.c) {
|
||||
throw new Error("No part of speech info");
|
||||
}
|
||||
if (entry.c.includes("gramm. trans.")) {
|
||||
return "grammatically transitive";
|
||||
}
|
||||
if (entry.c.includes("intrans.")) {
|
||||
return "intransitive";
|
||||
}
|
||||
return "transitive";
|
||||
}
|
||||
|
||||
function getType(entry: T.DictionaryEntry):
|
||||
"simple" | "stative compound" | "dynamic compound" |
|
||||
"dynamic or stative compound" | "dynamic or generative stative compound" |
|
||||
"generative stative compound" | "transitive or grammatically transitive simple"
|
||||
{
|
||||
// error will have thrown before on the getTransitivity function if missing entry.c
|
||||
/* istanbul ignore if */
|
||||
if (!entry.c) {
|
||||
throw new Error("No part of speech info");
|
||||
}
|
||||
if (entry.c.includes(" trans./gramm. trans.")) {
|
||||
return "transitive or grammatically transitive simple";
|
||||
}
|
||||
if (entry.c.includes(" gen. stat. comp.")) {
|
||||
return "generative stative compound";
|
||||
}
|
||||
if (entry.c.includes(" stat. comp.")) {
|
||||
return "stative compound";
|
||||
}
|
||||
if (entry.c.includes(" dyn. comp.")) {
|
||||
return "dynamic compound";
|
||||
}
|
||||
if (entry.c.includes(" dyn./stat. comp.")) {
|
||||
return "dynamic or stative compound";
|
||||
}
|
||||
if (entry.c.includes(" gen. stat./dyn. comp.")) {
|
||||
return "dynamic or generative stative compound";
|
||||
}
|
||||
return "simple";
|
||||
}
|
||||
|
||||
function getIdiosyncraticThirdMascSing(entry: T.DictionaryEntry): T.ShortThirdPersFormSet | false {
|
||||
if (entry.tppp && entry.tppf) {
|
||||
const tpp = makePsString(entry.tppp, entry.tppf);
|
||||
const ooRes = addOoPrefix(tpp, entry)
|
||||
return {
|
||||
imperfective: tpp,
|
||||
perfective: ooRes.ps as T.PsString,
|
||||
};
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the roots (imperfective and perfective) of a given verb
|
||||
*
|
||||
* @param entry - the dictionary entry for the verb
|
||||
*/
|
||||
function getVerbRoots(entry: T.DictionaryEntry, transitivity: T.Transitivity, complement?: T.UnisexInflections): T.VerbRootSet {
|
||||
// each of the roots compes with a short and long version
|
||||
// with or without the ending ل - ul
|
||||
const isKawulAux = entry.p === "کول";
|
||||
const shortAndLong = (root: T.PsString, perfective?: "perfective"): T.LengthOptions<T.PsString> => {
|
||||
const long = perfective ? root : accentOnNFromEnd(root, yulEndingInfinitive(root) ? 1 : 0);
|
||||
const short = removeEndingL(root);
|
||||
return {
|
||||
long,
|
||||
short,
|
||||
...(isKawulAux && perfective) ? {
|
||||
mini: removeRetroflexR(short)
|
||||
} : {},
|
||||
};
|
||||
};
|
||||
const infinitive = makePsString(entry.p, firstPhonetics(entry.f));
|
||||
|
||||
// the imperfective root is the infinitive
|
||||
// TODO: CHECK THIS!! FOR PERSON INFLECTIONS??
|
||||
const imperfective = ((): T.OptionalPersonInflections<T.LengthOptions<T.PsString>> => {
|
||||
// if stative compound
|
||||
if (complement && spaceInForm(infinitive)) {
|
||||
const comp = complementInflects(complement) ? unisexInfToObjectMatrix(complement) : complement.masc[0][0];
|
||||
const t = getAuxTransitivity(transitivity);
|
||||
const aux = stativeAux[t].info.root.imperfective
|
||||
return concatPsString(comp, " ", aux) as T.OptionalPersonInflections<T.LengthOptions<T.PsString>>;
|
||||
}
|
||||
return shortAndLong(infinitive);
|
||||
})();
|
||||
|
||||
const { perfective, pSplit, fSplit } = ((): {
|
||||
perfective: T.OptionalPersonInflections<T.LengthOptions<T.PsString>>
|
||||
pSplit: number,
|
||||
fSplit: number,
|
||||
} => {
|
||||
// if stative compound
|
||||
if (complement) {
|
||||
const comp = complementInflects(complement) ? unisexInfToObjectMatrix(complement) : complement.masc[0][0];
|
||||
const t = getAuxTransitivity(transitivity);
|
||||
const aux = stativeAux[t].info.root.perfective
|
||||
return {
|
||||
pSplit: 0,
|
||||
fSplit: 0,
|
||||
perfective: concatPsString(comp, " ", aux) as T.OptionalPersonInflections<T.LengthOptions<T.PsString>>,
|
||||
};
|
||||
}
|
||||
// the perfective root is
|
||||
// - the special perfective root if it exists, or
|
||||
if (entry.prp && entry.prf) {
|
||||
const perfective = shortAndLong(makePsString(entry.prp, entry.prf), "perfective");
|
||||
const hasOoPrefix = checkForOoPrefix(perfective.long);
|
||||
return {
|
||||
perfective,
|
||||
pSplit: entry.separationAtP || (hasOoPrefix ? 1 : 0),
|
||||
fSplit: entry.separationAtF || (hasOoPrefix ? 2 : 0),
|
||||
};
|
||||
}
|
||||
// - the infinitive prefixed with oo
|
||||
const { ps, pSplit, fSplit } = addOoPrefix(infinitive, entry);
|
||||
return {
|
||||
perfective: shortAndLong(ps as T.PsString, "perfective"),
|
||||
pSplit,
|
||||
fSplit,
|
||||
};
|
||||
})();
|
||||
|
||||
const perfectiveSplit = splitPerfective(perfective, pSplit, fSplit, !!complement);
|
||||
return {
|
||||
imperfective,
|
||||
perfective,
|
||||
perfectiveSplit,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the stems (imperfective and perfective) of a given verb
|
||||
*
|
||||
* @param entry - the dictionary entry for the verb
|
||||
*/
|
||||
function getVerbStems(entry: T.DictionaryEntry, root: T.VerbRootSet, transitivity: T.Transitivity, complement?: T.UnisexInflections): T.VerbStemSet {
|
||||
function isRegEdulTransitive(): boolean {
|
||||
/* istanbul ignore next */
|
||||
if ("mascSing" in root.imperfective) {
|
||||
return false;
|
||||
}
|
||||
const lastPCharacters = root.imperfective.long.p.slice(-3);
|
||||
return (
|
||||
// @ts-ignore - will always have a entry.c if we get to this point
|
||||
(entry.c.includes("intrans."))
|
||||
&& (lastPCharacters === "ېدل")
|
||||
);
|
||||
}
|
||||
function makeIntransImperfectiveStem() {
|
||||
const long = {
|
||||
// @ts-ignore
|
||||
p: root.imperfective.long.p.slice(0, -2) + "ږ",
|
||||
// @ts-ignore
|
||||
f: root.imperfective.long.f.slice(0, -4) + "éG",
|
||||
};
|
||||
if (entry.shortIntrans) {
|
||||
const short = makePsString(
|
||||
long.p.slice(0, -2),
|
||||
long.f.slice(0, -2),
|
||||
);
|
||||
return { long, short };
|
||||
}
|
||||
return long;
|
||||
}
|
||||
|
||||
const imperfective = ((): T.FullForm<T.PsString> => {
|
||||
const auxTransitivity = getAuxTransitivity(transitivity);
|
||||
if (complement && spaceInForm(root.imperfective)) {
|
||||
const comp = complementInflects(complement) ? unisexInfToObjectMatrix(complement) : complement.masc[0][0];
|
||||
return concatPsString(
|
||||
comp,
|
||||
" ",
|
||||
stativeAux[auxTransitivity].info.stem.imperfective as T.PsString,
|
||||
);
|
||||
}
|
||||
// the imperfective stem is
|
||||
// - the special present stem if it exists, or
|
||||
if (entry.psp && entry.psf) {
|
||||
return makePsString(entry.psp, entry.psf);
|
||||
}
|
||||
// - the eG form (and short form possibly) if regular transitive, or
|
||||
if (isRegEdulTransitive()) {
|
||||
return makeIntransImperfectiveStem()
|
||||
}
|
||||
// - the infinitive minus ل
|
||||
return "mascSing" in root.imperfective
|
||||
? root.imperfective.mascSing.short
|
||||
: root.imperfective.short;
|
||||
})();
|
||||
|
||||
const { perfective, pSplit, fSplit } = ((): { perfective: T.FullForm<T.PsString>, pSplit: number, fSplit: number } => {
|
||||
if (complement) {
|
||||
const comp = complementInflects(complement) ? unisexInfToObjectMatrix(complement) : complement.masc[0][0];
|
||||
const t = getAuxTransitivity(transitivity);
|
||||
return {
|
||||
perfective: concatPsString(comp, " ", stativeAux[t].info.stem.perfective),
|
||||
pSplit: 0,
|
||||
fSplit: 0,
|
||||
};
|
||||
}
|
||||
// the perfective stem is
|
||||
// - the special subjunctive stem if it exists, or
|
||||
if (entry.ssp && entry.ssf) {
|
||||
const isKawulAux = entry.p === "کول";
|
||||
const perfective = makePsString(entry.ssp, entry.ssf);
|
||||
const hasOoPrefix = checkForOoPrefix(perfective);
|
||||
if (isKawulAux) {
|
||||
return {
|
||||
perfective: {
|
||||
long: perfective,
|
||||
short: removeRetroflexR(perfective),
|
||||
},
|
||||
pSplit: hasOoPrefix ? 1 : 0,
|
||||
fSplit: hasOoPrefix ? 2 : 0,
|
||||
};
|
||||
}
|
||||
return {
|
||||
perfective,
|
||||
pSplit: entry.separationAtP || (hasOoPrefix ? 1 : 0),
|
||||
fSplit: entry.separationAtF || (hasOoPrefix ? 2 : 0),
|
||||
};
|
||||
}
|
||||
// - the perfective stem prefixed with oo (if possible)
|
||||
const res = addOoPrefix(imperfective as T.SingleOrLengthOpts<T.PsString>, entry);
|
||||
return {
|
||||
perfective: res.ps,
|
||||
pSplit: res.pSplit,
|
||||
fSplit: res.fSplit,
|
||||
};
|
||||
})();
|
||||
|
||||
const perfectiveSplit = splitPerfective(perfective, pSplit, fSplit, !!complement);
|
||||
return {
|
||||
imperfective,
|
||||
perfective,
|
||||
...perfectiveSplit ? {
|
||||
perfectiveSplit,
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
|
||||
function splitPerfective(perfective: T.FullForm<T.PsString>, pSplit: number, fSplit: number, isStativeComp: boolean): T.SplitInfo | undefined {
|
||||
if (!isStativeComp && pSplit === 0 && fSplit === 0) {
|
||||
return undefined;
|
||||
}
|
||||
if ("mascSing" in perfective) {
|
||||
// @ts-ignore
|
||||
return {
|
||||
mascSing: splitPerfective(perfective.mascSing, pSplit, fSplit, isStativeComp),
|
||||
mascPlur: splitPerfective(perfective.mascPlur, pSplit, fSplit, isStativeComp),
|
||||
femSing: splitPerfective(perfective.femSing, pSplit, fSplit, isStativeComp),
|
||||
femPlur: splitPerfective(perfective.femPlur, pSplit, fSplit, isStativeComp),
|
||||
};
|
||||
}
|
||||
if ("long" in perfective) {
|
||||
return {
|
||||
// @ts-ignore
|
||||
short: splitPerfective(perfective.short, pSplit, fSplit, isStativeComp) as [T.PsString, T.PsString],
|
||||
long: splitPerfective(perfective.long, pSplit, fSplit, isStativeComp) as [T.PsString, T.PsString],
|
||||
..."mini" in perfective ? {
|
||||
// @ts-ignore
|
||||
mini: splitPerfective(perfective.mini, pSplit, fSplit, isStativeComp) as [T.PsString, T.PsString],
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
if (isStativeComp) {
|
||||
// if it's a stative, split whatever is before the aux verb with a trailing space
|
||||
const pWords = perfective.p.split(" ");
|
||||
const fWords = perfective.f.split(" ");
|
||||
const before = makePsString(
|
||||
pWords.slice(0, -1).join(" ") + " ",
|
||||
fWords.slice(0, -1).join(" ") + " ",
|
||||
);
|
||||
const after = makePsString(
|
||||
pWords[pWords.length - 1],
|
||||
fWords[fWords.length - 1],
|
||||
);
|
||||
return [before, after];
|
||||
}
|
||||
const pBeg = perfective.p.slice(0, pSplit);
|
||||
const before = makePsString(
|
||||
pBeg.endsWith(" ") ? pBeg.slice(0, -1) : pBeg,
|
||||
perfective.f.slice(0, fSplit).replace("`", ""),
|
||||
);
|
||||
const beforeAccented = beginsWithDirectionalPronoun(before)
|
||||
? before
|
||||
: accentOnFront(before);
|
||||
const after = makePsString(perfective.p.slice(pSplit), removeAccents(removeStartingTick(perfective.f.slice(fSplit))));
|
||||
return [beforeAccented, after] as T.SplitInfo;
|
||||
}
|
||||
|
||||
function getParticiple(entry: T.DictionaryEntry, stem: T.VerbStemSet, infinitive: T.PsString, transitivity: T.Transitivity, complement?: T.UnisexInflections): T.ParticipleSet {
|
||||
const shortParticipleRoot = ((): T.PsString | null => {
|
||||
const shortenableEndings = ["ښتل", "ستل", "وتل"];
|
||||
// special thing for اېښودل - پرېښودل
|
||||
if (infinitive.p.slice(-4) === "ښودل" && infinitive.p.length > 4 && infinitive.p !== "کېښودل" && infinitive.p !== "کښېښودل") {
|
||||
return makePsString(
|
||||
infinitive.p.slice(0, -3),
|
||||
infinitive.f.slice(0, -4),
|
||||
);
|
||||
}
|
||||
const isOrulShortenable = ["وړل", "راوړل", "وروړل"].includes(infinitive.p);
|
||||
if (isOrulShortenable || (shortenableEndings.includes(infinitive.p.slice(-3)) && infinitive.p.slice(-4) !== "استل")) {
|
||||
return makePsString(
|
||||
infinitive.p.slice(0, -1),
|
||||
infinitive.f.slice(0, -2),
|
||||
)
|
||||
}
|
||||
return null;
|
||||
})();
|
||||
|
||||
const makeSepStativePart = (complement: T.UnisexInflections, tense: "present" | "past"): T.FullForm<T.PsString> => {
|
||||
const compInflects = complementInflects(complement);
|
||||
const comp = compInflects ? unisexInfToObjectMatrix(complement) : complement.masc[0][0];
|
||||
const aux = stativeAux[auxTransitivity].info.participle[tense] as T.PsString;
|
||||
return concatPsString(
|
||||
comp,
|
||||
" ",
|
||||
compInflects
|
||||
? unisexInfToObjectMatrix(inflectYey(aux) as T.UnisexInflections)
|
||||
: aux,
|
||||
);
|
||||
};
|
||||
|
||||
const accentPastPart = (pp: T.PsString): T.PsString => (
|
||||
accentOnNFromEnd(pp, yulEndingInfinitive(infinitive) ? 2 : 1)
|
||||
);
|
||||
const auxTransitivity = getAuxTransitivity(transitivity);
|
||||
const past = (entry.pprtp && entry.pprtf)
|
||||
? makePsString(entry.pprtp, entry.pprtf)
|
||||
: complement
|
||||
? makeSepStativePart(complement, "past")
|
||||
: shortParticipleRoot
|
||||
? {
|
||||
short: accentPastPart(
|
||||
concatPsString(ensureShortWurShwaShift(shortParticipleRoot), eyEndingUnaccented),
|
||||
),
|
||||
long: accentPastPart(
|
||||
concatPsString(infinitive, eyEndingUnaccented),
|
||||
),
|
||||
}
|
||||
: accentPastPart(concatPsString(infinitive, eyEndingUnaccented));
|
||||
|
||||
// TODO: make this into a rule?
|
||||
const shortImperfectiveRoot = (entry.p === "وتل") ? { p: "وتل", f: "watl" } : removeEndingL(infinitive);
|
||||
const accentPresPart = (pp: T.PsString): T.PsString => (
|
||||
accentOnNFromEnd(pp, 1)
|
||||
);
|
||||
const present = (complement && spaceInForm(infinitive))
|
||||
? makeSepStativePart(complement, "present")
|
||||
: (shortParticipleRoot && (!psStringEquals(shortParticipleRoot, shortImperfectiveRoot) || (entry.p === "وتل")))
|
||||
? {
|
||||
short: accentPresPart(
|
||||
concatPsString(shortParticipleRoot, presentParticipleSuffix),
|
||||
),
|
||||
long: accentPresPart(
|
||||
concatPsString(shortImperfectiveRoot, presentParticipleSuffix),
|
||||
),
|
||||
}
|
||||
: ("short" in stem.imperfective && entry.shortIntrans && entry.p !== "اوسېدل")
|
||||
? {
|
||||
short: accentPresPart(
|
||||
concatPsString(stem.imperfective.short, presentParticipleSuffix),
|
||||
),
|
||||
long: accentPresPart(
|
||||
concatPsString(shortImperfectiveRoot, presentParticipleSuffix),
|
||||
),
|
||||
}
|
||||
: accentPresPart(
|
||||
concatPsString(
|
||||
shortImperfectiveRoot.p === "وړ" ? ensureShortWurShwaShift(shortImperfectiveRoot) : shortImperfectiveRoot,
|
||||
presentParticipleSuffix,
|
||||
),
|
||||
);
|
||||
|
||||
return {
|
||||
past,
|
||||
present,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a perfective و - oo prefix to a verb
|
||||
*
|
||||
* @param entry - the dictionary entry for the verb
|
||||
*/
|
||||
function addOoPrefix(
|
||||
s: T.SingleOrLengthOpts<T.PsString>,
|
||||
entry: T.DictionaryEntry,
|
||||
): { ps: T.SingleOrLengthOpts<T.PsString>, pSplit: number, fSplit: number } {
|
||||
let pSplit = 0;
|
||||
let fSplit = 0;
|
||||
// A bit of side effects in this function... sorry!
|
||||
function attachOo(ps: T.PsString): T.PsString;
|
||||
function attachOo(ps: T.SingleOrLengthOpts<T.PsString>): T.SingleOrLengthOpts<T.PsString>;
|
||||
function attachOo(ps: T.SingleOrLengthOpts<T.PsString>): T.SingleOrLengthOpts<T.PsString> {
|
||||
if ("long" in ps) {
|
||||
return {
|
||||
short: attachOo(ps.short),
|
||||
long: attachOo(ps.long),
|
||||
};
|
||||
}
|
||||
if (entry.separationAtP && entry.separationAtF) {
|
||||
pSplit = entry.separationAtP;
|
||||
fSplit = entry.separationAtF;
|
||||
return ps;
|
||||
}
|
||||
if (entry.noOo) {
|
||||
return ps;
|
||||
}
|
||||
if (entry.sepOo) {
|
||||
pSplit = 2;
|
||||
fSplit = 3;
|
||||
return {
|
||||
p: `و ${ps.p}`,
|
||||
f: `oo\`${ps.f}`,
|
||||
};
|
||||
}
|
||||
const startsWithA = ps.p.charAt(0) === "ا" && ps.f.charAt(0) === "a";
|
||||
if (startsWithA) {
|
||||
pSplit = 2;
|
||||
fSplit = 3;
|
||||
return {
|
||||
p: `و${ps.p}`,
|
||||
f: `wa${ps.f}`,
|
||||
};
|
||||
}
|
||||
const startsWithAa = ["آ", "ا"].includes(ps.p.charAt(0)) && ps.f.slice(0, 2) === "aa";
|
||||
if (startsWithAa) {
|
||||
pSplit = 2;
|
||||
fSplit = 3;
|
||||
return {
|
||||
p: `وا${ps.p.substr(1)}`,
|
||||
f: `w${ps.f}`,
|
||||
};
|
||||
}
|
||||
const startsWithOo = ["óo", "oo"].includes(ps.f.slice(0, 2));
|
||||
if (startsWithOo) {
|
||||
pSplit = 1;
|
||||
fSplit = 2;
|
||||
return {
|
||||
p: `و${ps.p}`,
|
||||
f: `wU${ps.f}`,
|
||||
};
|
||||
}
|
||||
const startsWithEe = ["ée", "ee"].includes(ps.f.slice(0, 2)) && ps.p.slice(0, 2) === "ای";
|
||||
const startsWithE = ["e", "é"].includes(ps.f[0]) && ps.p.slice(0, 2) === "اې";
|
||||
if (startsWithEe || startsWithE) {
|
||||
pSplit = 2;
|
||||
fSplit = startsWithEe ? 3 : 2;
|
||||
return {
|
||||
p: `و${ps.p.slice(1)}`,
|
||||
f: `w${ps.f}`,
|
||||
};
|
||||
}
|
||||
const startsWithO = ["ó", "o"].includes(ps.f[0]) && ps.p.slice(0, 2) === "او";
|
||||
if (startsWithO) {
|
||||
pSplit = 1;
|
||||
fSplit = 2;
|
||||
return {
|
||||
p: `و${ps.p}`,
|
||||
f: `oo\`${ps.f}`,
|
||||
};
|
||||
}
|
||||
pSplit = 1;
|
||||
fSplit = 2;
|
||||
return {
|
||||
p: `و${ps.p}`,
|
||||
f: `oo${ps.f}`,
|
||||
};
|
||||
}
|
||||
const attachedOo = attachOo(s);
|
||||
return {
|
||||
ps: accentOnFront(attachedOo),
|
||||
pSplit: entry.separationAtP ? entry.separationAtP : pSplit,
|
||||
fSplit: entry.separationAtF ? entry.separationAtF : fSplit,
|
||||
};
|
||||
}
|
||||
|
||||
function ensureUnisexInflections(complement: T.DictionaryEntry): T.UnisexInflections {
|
||||
const inflected = inflectWord(complement);
|
||||
const isUnisex = inflected && (("masc" in inflected) && ("fem" in inflected));
|
||||
if (isUnisex) {
|
||||
return inflected as T.UnisexInflections;
|
||||
}
|
||||
const word = makePsString(complement.p, firstPhonetics(complement.f));
|
||||
return {
|
||||
masc: [
|
||||
[word],
|
||||
[word],
|
||||
[word],
|
||||
],
|
||||
fem: [
|
||||
[word],
|
||||
[word],
|
||||
[word],
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function getDynamicAuxVerb(entry: T.DictionaryEntry): {
|
||||
entry: T.DictionaryEntry,
|
||||
complement?: T.DictionaryEntry,
|
||||
} {
|
||||
const auxWord = entry.p.trim().split(" ").slice(-1)[0];
|
||||
const auxWordResult = dynamicAuxVerbs.find((a) => a.entry.p === auxWord);
|
||||
/* istanbul ignore next */
|
||||
if (!auxWordResult) {
|
||||
throw new Error("unknown auxilary verb for dynamic compound");
|
||||
}
|
||||
return {
|
||||
entry: auxWordResult.entry,
|
||||
...("complement" in auxWordResult) ? {
|
||||
complement: auxWordResult.complement,
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
|
||||
function getComplementPerson(
|
||||
complement: T.DictionaryEntry,
|
||||
usesSeperatePluralForm?: boolean,
|
||||
): T.Person {
|
||||
const number = (
|
||||
(complement.c && complement.c.includes("pl.")) || usesSeperatePluralForm
|
||||
) ? "plural" : "singular";
|
||||
const gender = (complement.c && complement.c.includes("n. m.")) ? "masc" : "fem";
|
||||
return getPersonNumber(gender, number);
|
||||
}
|
||||
|
||||
function makeDynamicPerfectiveSplit(comp: T.PsString, auxSplit: T.SplitInfo): T.SplitInfo {
|
||||
if ("mascSing" in auxSplit) {
|
||||
return {
|
||||
mascSing: makeDynamicPerfectiveSplit(comp, auxSplit.mascSing) as T.SingleOrLengthOpts<[T.PsString, T.PsString]>,
|
||||
mascPlur: makeDynamicPerfectiveSplit(comp, auxSplit.mascPlur) as T.SingleOrLengthOpts<[T.PsString, T.PsString]>,
|
||||
femSing: makeDynamicPerfectiveSplit(comp, auxSplit.femSing) as T.SingleOrLengthOpts<[T.PsString, T.PsString]>,
|
||||
femPlur: makeDynamicPerfectiveSplit(comp, auxSplit.femPlur) as T.SingleOrLengthOpts<[T.PsString, T.PsString]>,
|
||||
};
|
||||
}
|
||||
if ("long" in auxSplit) {
|
||||
return {
|
||||
long: makeDynamicPerfectiveSplit(comp, auxSplit.long) as [T.PsString, T.PsString],
|
||||
short: makeDynamicPerfectiveSplit(comp, auxSplit.short) as [T.PsString, T.PsString],
|
||||
...auxSplit.mini ? {
|
||||
mini: makeDynamicPerfectiveSplit(comp, auxSplit.mini) as [T.PsString, T.PsString],
|
||||
} : {},
|
||||
};
|
||||
}
|
||||
return [
|
||||
concatPsString(comp, " ", auxSplit[0]),
|
||||
auxSplit[1],
|
||||
];
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
conjugateVerb,
|
||||
} from "./lib/verb-conjugation";
|
||||
import {
|
||||
inflectWord,
|
||||
} from "./lib/pashto-inflector";
|
||||
import {
|
||||
getVerbInfo,
|
||||
} from "./lib/verb-info";
|
||||
import ConjugationViewer from "./components/ConjugationViewer";
|
||||
import InflectionsTable from "./components/InflectionsTable";
|
||||
import Pashto from "./components/Pashto";
|
||||
import Phonetics from "./components/Phonetics";
|
||||
import InlinePs from "./components/InlinePs";
|
||||
import ButtonSelect from "./components/ButtonSelect";
|
||||
import VerbFormDisplay from "./components/VerbFormDisplay";
|
||||
import VerbTable from "./components/VerbTable";
|
||||
import Examples from "./components/Examples";
|
||||
import VerbInfo, { RootsAndStems } from "./components/verb-info/VerbInfo";
|
||||
import {
|
||||
addToForm,
|
||||
concatPsString,
|
||||
makePsString,
|
||||
removeFVariants,
|
||||
} from "./lib/p-text-helpers";
|
||||
import { standardizePashto } from "./lib/standardize-pashto";
|
||||
import {
|
||||
convertAfToPkSpelling,
|
||||
convertPkToAfSpelling,
|
||||
} from "./lib/convert-spelling";
|
||||
import {
|
||||
dictionaryEntryBooleanFields,
|
||||
dictionaryEntryNumberFields,
|
||||
dictionaryEntryTextFields,
|
||||
} from "./lib/fields";
|
||||
import {
|
||||
validateEntry
|
||||
} from "./lib/validate-entry";
|
||||
import defaultTextOptions from "./lib/default-text-options";
|
||||
import * as grammarUnits from "./lib/grammar-units";
|
||||
import * as Types from "./types";
|
||||
|
||||
export {
|
||||
// FUNCTIONS
|
||||
conjugateVerb,
|
||||
getVerbInfo,
|
||||
inflectWord,
|
||||
addToForm,
|
||||
concatPsString,
|
||||
makePsString,
|
||||
removeFVariants,
|
||||
standardizePashto,
|
||||
convertAfToPkSpelling,
|
||||
convertPkToAfSpelling,
|
||||
validateEntry,
|
||||
// COMPONENTS
|
||||
ConjugationViewer,
|
||||
Examples,
|
||||
VerbFormDisplay,
|
||||
VerbTable,
|
||||
VerbInfo,
|
||||
RootsAndStems,
|
||||
InflectionsTable,
|
||||
Pashto,
|
||||
Phonetics,
|
||||
InlinePs,
|
||||
ButtonSelect,
|
||||
// OTHER
|
||||
grammarUnits,
|
||||
defaultTextOptions,
|
||||
dictionaryEntryTextFields,
|
||||
dictionaryEntryNumberFields,
|
||||
dictionaryEntryBooleanFields,
|
||||
// TYPES
|
||||
Types,
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>
|
After Width: | Height: | Size: 2.6 KiB |
|
@ -0,0 +1 @@
|
|||
/// <reference types="react-scripts" />
|
|
@ -0,0 +1,13 @@
|
|||
const reportWebVitals = onPerfEntry => {
|
||||
if (onPerfEntry && onPerfEntry instanceof Function) {
|
||||
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
|
||||
getCLS(onPerfEntry);
|
||||
getFID(onPerfEntry);
|
||||
getFCP(onPerfEntry);
|
||||
getLCP(onPerfEntry);
|
||||
getTTFB(onPerfEntry);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export default reportWebVitals;
|
|
@ -0,0 +1,5 @@
|
|||
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
||||
// allows you to do things like:
|
||||
// expect(element).toHaveTextContent(/react/i)
|
||||
// learn more: https://github.com/testing-library/jest-dom
|
||||
import '@testing-library/jest-dom';
|
|
@ -0,0 +1,387 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
export type PsStringField = "p" | "f";
|
||||
export type PsString = {
|
||||
[k in PsStringField]: string;
|
||||
} & {
|
||||
e?: string;
|
||||
};
|
||||
|
||||
export type DictionaryInfo = {
|
||||
title: string;
|
||||
license: string;
|
||||
release: number;
|
||||
numberOfEntries: number;
|
||||
url: string;
|
||||
infoUrl: string;
|
||||
}
|
||||
|
||||
export type Dictionary = {
|
||||
info: DictionaryInfo;
|
||||
entries: DictionaryEntry[];
|
||||
}
|
||||
|
||||
export type DictionaryEntry = {
|
||||
// BASE REQUIRED INFO
|
||||
ts: number; // timestamp
|
||||
i: number; // Pashto Alphabetical Index
|
||||
p: string; // Pashto word
|
||||
f: string; // Phonetics word
|
||||
e: string; // English word
|
||||
// PART OF SPEECH AND LINK INFO
|
||||
c?: string; // Part of Speech Info
|
||||
l?: number; // timestamp link to related word
|
||||
// INFLECTION INFO
|
||||
infap?: string; // Special (irregular) inflection info
|
||||
infaf?: string;
|
||||
infbp?: string;
|
||||
infbf?: string;
|
||||
noInf?: boolean; // No Inflections?
|
||||
// PLURAL INFO
|
||||
app?: string; // Arabic plural in Pashto
|
||||
apf?: string; // Arabic plural in Phonetics
|
||||
ppp?: string; // Pashto plural in Pashto
|
||||
ppf?: string; // Pashto plural in Phonetics
|
||||
// VERB INFO
|
||||
psp?: string; // Present stem in Pashto
|
||||
psf?: string; // Present stem in Phonetics
|
||||
/** The subjuctive / perfective stem in Pashto */
|
||||
ssp?: string;
|
||||
/** The subjunctive / perfective stem in Phonetics */
|
||||
ssf?: string;
|
||||
prp?: string; // Perfective root in Pashto
|
||||
prf?: string; // Perfective root in Phonetics
|
||||
/** The past participle in Pashto */
|
||||
pprtp?: string;
|
||||
/** The past participle in Phonetics */
|
||||
pprtf?: string;
|
||||
/** The idiosyncratic third person singular masc. short past in Pashto */
|
||||
tppp?: string;
|
||||
/** The idiosyncratic third person singular masc. short past in Phonetics */
|
||||
tppf?: string;
|
||||
shortIntrans?: boolean; // Short version is available like ګرځېږي and ګرځي
|
||||
noOo?: boolean; // No و - oo verb prefix?
|
||||
sepOo?: boolean; // Separate oo prefix?
|
||||
separationAtP?: number; // Pashto separation point for separable verbs
|
||||
separationAtF?: number; // Phonetics separation point for separable verbs
|
||||
// PHONETICS - PASHTO - DIACRITICS INFO
|
||||
diacExcept?: boolean; // Is an exception to the diacritics thing
|
||||
}
|
||||
|
||||
export type DictionaryEntryTextField = "p" | "f" | "e" | "c" | "infap" | "infaf" | "infbp" | "infbf" | "app" | "apf" | "ppp" | "ppf" | "psp" | "psf" | "ssp" | "ssf" | "prp" | "prf" | "pprtp" | "pprtf" | "tppp" | "tppf";
|
||||
export type DictionaryEntryBooleanField = "noInf" | "shortIntrans" | "noOo" | "sepOo" | "diacExcept";
|
||||
export type DictionaryEntryNumberField = "ts" | "i" | "l" | "separationAtP" | "separationAtF";
|
||||
export type DictionaryEntryField = DictionaryEntryTextField | DictionaryEntryBooleanField | DictionaryEntryNumberField;
|
||||
|
||||
export type DictionaryEntryError = {
|
||||
errors: string[],
|
||||
p: string,
|
||||
f: string,
|
||||
e: string,
|
||||
ts: number,
|
||||
erroneousFields: DictionaryEntryField[],
|
||||
}
|
||||
|
||||
export type TextOptions = {
|
||||
pTextSize: "normal" | "larger" | "largest";
|
||||
phonetics: "lingdocs" | "ipa" | "alalc" | "none";
|
||||
dialect: "standard" | "peshawer" | "southern";
|
||||
spelling: "Afghan" | "Pakistani";
|
||||
diacritics: boolean;
|
||||
}
|
||||
|
||||
export enum Person {
|
||||
FirstSingMale = 0,
|
||||
FirstSingFemale,
|
||||
SecondSingMale,
|
||||
SecondSingFemale,
|
||||
ThirdSingMale,
|
||||
ThirdSingFemale,
|
||||
FirstPlurMale,
|
||||
FirstPlurFemale,
|
||||
SecondPlurMale,
|
||||
SecondPlurFemale,
|
||||
ThirdPlurMale,
|
||||
ThirdPlurFemale,
|
||||
}
|
||||
|
||||
// INPUT
|
||||
// all information to be passed to conjugating functions
|
||||
export type VerbInfoBase = {
|
||||
transitivity: Transitivity;
|
||||
yulEnding: boolean | null;
|
||||
stem: VerbStemSet;
|
||||
root: VerbRootSet;
|
||||
participle: ParticipleSet;
|
||||
idiosyncraticThirdMascSing?: ShortThirdPersFormSet;
|
||||
}
|
||||
|
||||
export type SimpleVerbInfo = VerbInfoBase & {
|
||||
type: "simple";
|
||||
}
|
||||
|
||||
export type StativeCompoundVerbInfo = VerbInfoBase & {
|
||||
type: "stative compound"
|
||||
complement: UnisexInflections;
|
||||
}
|
||||
|
||||
export type GenerativeStativeCompoundVerbInfo = VerbInfoBase & {
|
||||
type: "generative stative compound"
|
||||
objComplement: ObjComplement,
|
||||
singularForm?: GenerativeStativeCompoundVerbInfo,
|
||||
// TODO: Could add intransitive form 🤪
|
||||
}
|
||||
|
||||
export type DynamicCompoundVerbInfo = VerbInfoBase & {
|
||||
type: "dynamic compound";
|
||||
objComplement: ObjComplement;
|
||||
auxVerb: DictionaryEntry;
|
||||
auxVerbComplement?: DictionaryEntry;
|
||||
singularForm?: DynamicCompoundVerbInfo;
|
||||
intransitiveForm?: DynamicCompoundVerbInfo;
|
||||
}
|
||||
|
||||
export type ObjComplement = {
|
||||
entry: DictionaryEntry;
|
||||
plural?: PsString;
|
||||
person: Person;
|
||||
}
|
||||
|
||||
export type NonComboVerbInfo = SimpleVerbInfo |
|
||||
StativeCompoundVerbInfo | DynamicCompoundVerbInfo | GenerativeStativeCompoundVerbInfo;
|
||||
|
||||
export type VerbInfo = NonComboVerbInfo | {
|
||||
type: "transitive or grammatically transitive simple";
|
||||
transitive: SimpleVerbInfo;
|
||||
grammaticallyTransitive: SimpleVerbInfo;
|
||||
} | {
|
||||
type: "dynamic or stative compound";
|
||||
transitivity: Transitivity;
|
||||
stative: StativeCompoundVerbInfo;
|
||||
dynamic: DynamicCompoundVerbInfo;
|
||||
} | {
|
||||
type: "dynamic or generative stative compound";
|
||||
transitivity: Transitivity;
|
||||
stative: GenerativeStativeCompoundVerbInfo;
|
||||
dynamic: DynamicCompoundVerbInfo;
|
||||
}
|
||||
|
||||
export type Transitivity = "transitive" | "intransitive" | "grammatically transitive";
|
||||
|
||||
export type SplitInfo = FullForm<[PsString, PsString]>;
|
||||
|
||||
export type VerbStemSet = {
|
||||
perfective: FullForm<PsString>;
|
||||
imperfective: FullForm<PsString>;
|
||||
perfectiveSplit?: SplitInfo;
|
||||
}
|
||||
|
||||
export type VerbRootSet = {
|
||||
perfective: OptionalPersonInflections<LengthOptions<PsString>>;
|
||||
imperfective: OptionalPersonInflections<LengthOptions<PsString>>;
|
||||
perfectiveSplit?: SplitInfo;
|
||||
}
|
||||
|
||||
export type ParticipleSet = {
|
||||
present: FullForm<PsString>,
|
||||
past: FullForm<PsString>,
|
||||
}
|
||||
|
||||
export type ShortThirdPersFormSet = {
|
||||
[K in Aspect]: PsString;
|
||||
}
|
||||
|
||||
export type Aspect = "perfective" | "imperfective";
|
||||
|
||||
export type Length = "short" | "long" | "mini";
|
||||
|
||||
export type LengthOptions<T> = {
|
||||
long: T;
|
||||
short: T;
|
||||
mini?: T;
|
||||
}
|
||||
|
||||
export type PersonInflectionsField = "mascSing" | "mascPlur" | "femSing" | "femPlur";
|
||||
export type OptionalPersonInflections<T> = {
|
||||
[K in PersonInflectionsField]: T;
|
||||
} | T;
|
||||
|
||||
export type SingleOrLengthOpts<T> = T | LengthOptions<T>;
|
||||
|
||||
export type VerbConjugation = {
|
||||
info: NonComboVerbInfo,
|
||||
// INFINITIVE = info.root.imperfective.long
|
||||
imperfective: AspectContent; // --╖ ASPECT = "imperfective"
|
||||
perfective: AspectContent; // --╜ ASPECT = "perfective"
|
||||
hypothetical: VerbForm; // INFINITIVE - ul + aay
|
||||
participle: ParticipleContent;
|
||||
perfect: PerfectContent; // PPART = PAST PARTICIPLE (plus spectial short forms)
|
||||
passive?: PassiveContent; // only on transitive verbs
|
||||
singularForm?: VerbConjugation;
|
||||
}
|
||||
|
||||
export type VerbOutput = VerbConjugation | {
|
||||
info: VerbInfo,
|
||||
stative: VerbConjugation,
|
||||
dynamic: VerbConjugation,
|
||||
} | {
|
||||
info: VerbInfo,
|
||||
transitive: VerbConjugation,
|
||||
grammaticallyTransitive: VerbConjugation,
|
||||
};
|
||||
|
||||
export type PassiveContent = {
|
||||
imperfective: AspectContentPassive // --╖ ASPECT = "imperfective"
|
||||
perfective: AspectContentPassive // --╜ ASPECT = "perfective"
|
||||
perfect: PerfectContent; // PPART INFINITIVE + kedulStat perfect.pastParticiple
|
||||
// TODO: ADD PARTICIPLE
|
||||
}
|
||||
|
||||
// ASPECT -> AspectContent
|
||||
export type AspectContent = {
|
||||
// STEM = info.stem[ASPECT]
|
||||
// ROOT = info.root[ASPECT]
|
||||
nonImperative: VerbForm; // STEM + pres ending
|
||||
future: VerbForm; // به + this.nonImperative
|
||||
imperative?: ImperativeForm; // STEM + imperative ending
|
||||
// -- optional because not used for intransitive verison of kawul dynamic compounds
|
||||
past: VerbForm; // ROOT + past ending
|
||||
modal: ModalContent;
|
||||
}
|
||||
|
||||
export type ModalContent = {
|
||||
nonImperative: VerbForm; // ROOT + ey + kedulStat.perfective.nonImperative
|
||||
future: VerbForm; // به + this.nonImperative
|
||||
past: VerbForm; // ROOT + ey + kedulStat.perfective.past
|
||||
hypotheticalPast: VerbForm; // ROOT + ey + shw + ey
|
||||
}
|
||||
|
||||
// ASPECT -> AspectContentPssive
|
||||
export type AspectContentPassive = {
|
||||
// ROOT = info.root[ASPECT]
|
||||
nonImperative: VerbForm; // ROOT LONG + kedulStat[ASPECT].nonImperative
|
||||
future: VerbForm; // ba + this.nonImperative
|
||||
past: VerbForm; // ROOT LONG + kedulStat[ASPECT].past
|
||||
}
|
||||
|
||||
export type ParticipleForm = SingleOrLengthOpts<UnisexInflections> | SingleOrLengthOpts<PsString>;
|
||||
|
||||
export type ParticipleContent = {
|
||||
past: SingleOrLengthOpts<UnisexInflections> | SingleOrLengthOpts<PsString>,
|
||||
// TODO: Should this ever have an object matrix??
|
||||
present: SingleOrLengthOpts<UnisexInflections>,
|
||||
}
|
||||
|
||||
// PPART -> PerfectContent
|
||||
export type PerfectContent = {
|
||||
halfPerfect: VerbForm; // PPART
|
||||
past: VerbForm; // PPART + equative.past
|
||||
present: VerbForm; // PPART + equative.prest
|
||||
subjunctive: VerbForm; // PPART + equative.subj
|
||||
future: VerbForm; // ba + PPART + equative.subj
|
||||
affirmational: VerbForm; // ba + PPART + equative.past
|
||||
pastSubjunctiveHypothetical: VerbForm; // PPART + waay
|
||||
}
|
||||
|
||||
export type UnisexInflections = {
|
||||
masc: ArrayFixed<ArrayOneOrMore<PsString>, 3>,
|
||||
fem: ArrayFixed<ArrayOneOrMore<PsString>, 3>,
|
||||
}
|
||||
|
||||
export type Inflections = UnisexInflections | {
|
||||
masc: ArrayFixed<ArrayOneOrMore<PsString>, 3>,
|
||||
} | {
|
||||
fem: ArrayFixed<ArrayOneOrMore<PsString>, 3>,
|
||||
}
|
||||
|
||||
export type PersonLine = [
|
||||
/** singular form of person */
|
||||
ArrayOneOrMore<PsString>,
|
||||
/** plural form of person */
|
||||
ArrayOneOrMore<PsString>,
|
||||
];
|
||||
|
||||
/**
|
||||
* The basic form of a verb conjugation
|
||||
* Each line representing one person (singular and plural)
|
||||
* 1st Person Male, 1st Person Female, 2nd Person Male etc...
|
||||
*/
|
||||
export type VerbBlock = [
|
||||
PersonLine, // 1st Person Male
|
||||
PersonLine, // 1st Person Female
|
||||
PersonLine, // 2nd Person Male
|
||||
PersonLine, // 2nd Person Female
|
||||
PersonLine, // 3rd Person Male
|
||||
PersonLine, // 3rd Person Female
|
||||
];
|
||||
|
||||
export type EnglishBlock = [
|
||||
[string, string],
|
||||
[string, string],
|
||||
[string, string],
|
||||
[string, string],
|
||||
[string, string],
|
||||
[string, string],
|
||||
];
|
||||
|
||||
export type ImperativeBlock = [
|
||||
PersonLine, // 2nd Person Male
|
||||
PersonLine, // 2nd Person Female
|
||||
];
|
||||
|
||||
export type FullForm<T> = OptionalPersonInflections<SingleOrLengthOpts<T>>;
|
||||
export type VerbForm = FullForm<VerbBlock>;
|
||||
export type ImperativeForm = FullForm<ImperativeBlock>;
|
||||
export type SentenceForm = SingleOrLengthOpts<ArrayOneOrMore<PsString>>;
|
||||
|
||||
export interface ArrayFixed<T, L extends number> extends Array<T> {
|
||||
0: T;
|
||||
length: L;
|
||||
}
|
||||
|
||||
export type ArrayOneOrMore<T> = {
|
||||
0: T
|
||||
} & Array<T>
|
||||
|
||||
export type DisplayFormItem = DisplayForm | DisplayFormSubgroup | DisplayFormForSentence;
|
||||
|
||||
export type DisplayForm = {
|
||||
label: string,
|
||||
aspect?: Aspect,
|
||||
form: VerbForm | ImperativeForm | ParticipleForm | SentenceForm,
|
||||
advanced?: boolean,
|
||||
formula: React.ReactNode,
|
||||
explanation: React.ReactNode,
|
||||
sentence?: boolean,
|
||||
passive?: boolean,
|
||||
past?: boolean,
|
||||
reorderWithNegative?: boolean,
|
||||
}
|
||||
export type DisplayFormForSentence = {
|
||||
label: string,
|
||||
aspect?: Aspect,
|
||||
form: VerbForm,
|
||||
advanced?: boolean,
|
||||
formula: React.ReactNode,
|
||||
secondPronounNeeded?: boolean,
|
||||
explanation: React.ReactNode,
|
||||
sentence?: boolean,
|
||||
passive?: boolean,
|
||||
past?: boolean,
|
||||
reorderWithNegative?: boolean,
|
||||
}
|
||||
|
||||
export type DisplayFormSubgroup = {
|
||||
label: string,
|
||||
subgroup: string,
|
||||
advanced?: boolean,
|
||||
content: DisplayFormItem[],
|
||||
}
|
||||
|
||||
export type AayTail = "ey" | "aay";
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"lib": [
|
||||
"dom",
|
||||
"dom.iterable",
|
||||
"esnext"
|
||||
],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true,
|
||||
"downlevelIteration": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"noFallthroughCasesInSwitch": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx"
|
||||
},
|
||||
"include": [
|
||||
"src"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,142 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
module.exports = [
|
||||
1527816643, // استعفا کول - to resign, to quit (a job or position)
|
||||
1527817823, // اصرار کول - to insist, persist, demand
|
||||
1591002320547, // امر کول - to order, command
|
||||
1527821339, // انتظار کول - to wait
|
||||
1527817226, // اندازه لګول - to guess, to estimate
|
||||
1527812167, // انکار کول - to deny, to renounce, to not recognize
|
||||
1527812598, // ایمان راوړل - to beileve, have faith (du chaa baande / د چا باندې)
|
||||
1527812002, // برخه اخستل - to take part in, to participate, to join in
|
||||
1527813489, // پرهېز کول - to abstain, fast
|
||||
1577390517316, // پرېکړه کول - to decide
|
||||
1527820710, // پناه اړول - to take/seek refuge
|
||||
1527817312, // پوښتنه کول - to ask
|
||||
1527818188, // پیروي کول - to follow, obey (usually a religious teacher or leader)
|
||||
1527811863, // تاوان رسول - to harm, damage
|
||||
1527816383, // تپوس کول - to ask, to question, to request
|
||||
1527822770, // ترپکې وهل - to stamp (feet), to tread, to tap one’s foot
|
||||
1527821587, // ترحم کول - to feel pity, to have sympathy, to feel sorry for someone
|
||||
1527818390, // تشریف راوړل - to come (when speaking about someone w/ respect)
|
||||
1527818391, // تشریف وړل - to go (when speaking about someone w/ respect)
|
||||
1527814726, // تصمیم نیول - to make a decision
|
||||
1579394718033, // تصور کول - to imagine, suppose
|
||||
1527815968, // تکیه کول - to rely on, to depend on
|
||||
1592303372377, // تلاوت کول - to read (relgious, usually the Quran)
|
||||
1577551342853, // تمرکز کول - to concentrate, focus (په يوه شي باندې)
|
||||
1527815351, // توبه ایستل - to repent
|
||||
1586452103064, // توجه کول - to pay attention to, to consider
|
||||
1527816822, // توکل کول - to count on, hope for, depend on
|
||||
1527812186, // تیاري نیول - to prepare
|
||||
1527814870, // ټوپونه وهل - to jump
|
||||
1527815355, // ټوکې کول - to joke, tease, make fun of
|
||||
1527815867, // ټینګار کول - to emphasize, to insist
|
||||
1527822741, // جیټکه خوړل - to be jolted, surprised
|
||||
1527814864, // ځان وژل - to commit suicide
|
||||
1527819607, // چرت وهل - to think about something, reflect on something, worry about something
|
||||
1527821070, // چکر وهل - to stroll, walk around
|
||||
1577812269585, // چمچه ګیري کول - to suck up to, to flatter
|
||||
1573768865232, // چنې وهل - to barter, bargain (for a price)
|
||||
1527822814, // حسد کول - to be envious, to be jealous
|
||||
1527823161, // حفاظت کول - to protect, guard
|
||||
1527821042, // حمایه کول - to support, aid, protect, back
|
||||
1527818810, // حیا کول - to be bashful, modest, observing of Islamic rules of modesty
|
||||
1577823792516, // خدمت کول - to serve (د چا خدمت کول)
|
||||
1588858155947, // خېز وهل - to jump, leap, bob up and down
|
||||
1589024311021, // دافع کول - to defend (د ځان دفاع کول - to defend oneself)
|
||||
1527816916, // دفاع کول - to defend, protect
|
||||
1527820291, // ډغره وهل - to challenge, invite to engage in a contest, confront, provoke
|
||||
1527813125, // ذکر کول - to mention, refernce, remark, refer to
|
||||
1527813937, // روژه نیول - to fast
|
||||
1591804639647, // روغه کول - to reconcile, to make peace
|
||||
1527813212, // زاري کول - to plea, ask, request, beg
|
||||
1584529741244, // زړه ساتل - to hold back and not say what you're really thinking
|
||||
1575128717139, // زړه وهل - to feel hesitancy about some action or thing (د دې کار څخه زړه وهي); to satiate
|
||||
1527813319, // زنګ وهل - to ring, phone, call (Afghanistan)
|
||||
1527822368, // زیاتي کول - to do injustice, oppression (to someone) (د چا سرس زياتي کول)
|
||||
1527819178, // زیان رسول - to damage, to cause harm
|
||||
1594129207239, // سا اخستل - to breathe
|
||||
1594129204513, // سا اخیستل - to breathe
|
||||
1527815309, // سبق وایل - to study, go to school
|
||||
1527814102, // ست کول - to invite, to make an offer out of politeness (د ډوډۍ ست مې ورته وکړ)
|
||||
1527818975, // سترګه وهل - to wink, to blink
|
||||
1578326320888, // سجده لګول - to bowing down to the ground, to prostrating (in religion)
|
||||
1527816152, // سر ټکول - complain, gripe
|
||||
1527816463, // سوله کول - to make peace, to reconcile
|
||||
1527818094, // سیل کول - to stroll through, go on a walk or tour through, to see, watch, examine, survey, visit, tour
|
||||
1527814855, // شپېلۍ وهل - to play the flute, fife, reed, to whistle
|
||||
1527819033, // شکایت کول - to complain, to express a grievance
|
||||
1577817988469, // شکست خوړل - to be defeated, to experience defeat
|
||||
1527819185, // صبر کول - to be patient, to bear up and endure under difficult or painful circumstances
|
||||
1527814887, // صفت کول - to praise; admire, glorify
|
||||
1527818217, // طرفداري کول - to support, adhere to, pick a side, stand up for something or someone
|
||||
1571946107980, // ظلم کول - to be cruel to, to oppress, to do voilence against, to persecute (د چا باندې ظلم کول)
|
||||
1581610643511, // عبادت کول - to worship, pray
|
||||
1527811674, // عمل کول - to act, to put into practice; to do something addicting (like smoking), to do out of habit
|
||||
1581610659810, // غچ اخیستل - to take revenge
|
||||
1527818401, // غرض کول - to interfere, to meddle, to step in
|
||||
1592303194144, // غږ کول - to call out, to say something, make a sound
|
||||
1578607689918, // غلا کول - to steal
|
||||
1527818341, // غمرازي کول - to share in someone’s sorrow, to show sympathy or give condolences
|
||||
1527818425, // غوټه اچول - to tie, fasten, hitch
|
||||
1527818422, // غوټه وهل - to dive, dip, go into water
|
||||
1527812633, // غوږ نیول - to listen
|
||||
1527816328, // غیبت کول - to gossip
|
||||
1588784260692, // فال اچول - to do fortune telling, divination
|
||||
1527812607, // فکر کول - to think
|
||||
1527822096, // قدم وهل - to take a step, to walk
|
||||
1588152878869, // قرباني کول - to make a sacrifice
|
||||
1527817624, // قسم خوړل - to take an oath, vow, to swear
|
||||
1527812732, // کار کول - to work
|
||||
1527811600, // کوشش کول - to try, to attempt, to put in effort
|
||||
1527819661, // ګپ لګول - to talk, converse; to joke
|
||||
1527814357, // ګډون کول - to participate, join, be involved
|
||||
1582146016627, // ګذاره کول - to get by, make ends meet, deal with something, handle or get some task done (with difficulty or not quite in the ideal way), to bear with, to be tolerant or forgiving
|
||||
1527819872, // ګمان کول - to think, to suppose
|
||||
1579034883717, // لاړې تېرول - to spit ?? (other fluids too??)
|
||||
1527817357, // لاس وړل - to touch
|
||||
1527818937, // لامبو وهل - to swim, bathe
|
||||
1527813950, // لحاظ کول - to be considerate of, pay attention to someone or something, to be polite, to show deference or respect to someone
|
||||
1527813888, // لغته وهل - to kick
|
||||
1527822099, // لمس کول - to touch, motivate, instigate
|
||||
1588760636420, // لوظ کول - to promise, give one's word
|
||||
1527819089, // ماته خوړل - to be defeated, beaten by someone
|
||||
1527817361, // مخ اړول - to turn (one’s face), to face, (when turning from someone or people) to neglect, (when turning to someone or people) to pay attention to
|
||||
1527812934, // مخه نیول - to prevent, hold back
|
||||
1588161314887, // مرسته کول - to help, assist
|
||||
1527817165, // مزدوري کول - to do labour, to work
|
||||
1609162269829, // مزې کول - to be enjoyable, to have good taste (the thing that gives enjoyment/taste "does maza"), to have fun
|
||||
1579295606403, // ملاتړ کول - to support (ie. a political party etc.)
|
||||
1589031340746, // موټر چلول - to drive a car
|
||||
1527812902, // مینه کول - to love
|
||||
1527817369, // ناره وهل - to cry out, to yell, to yell a chant or slogan
|
||||
1527819687, // نارې کول - to cry out, shout (ناره)
|
||||
1527821254, // نافرماني کول - to disobey, to not comply, to rebel
|
||||
1527817709, // نجات موندل - to be saved, to find salvation
|
||||
1527823208, // نفرت کول - to hate, abhor
|
||||
1527811827, // نفس ایستل - breath in, inhale; kill
|
||||
1579459605988, // نقصان کول - to suffer loss
|
||||
1527815991, // ننداره کول - to behold, to spectate, to watch, to take in
|
||||
1527823707, // نیالګی کېنول - to plant a sapling, young tree
|
||||
1527811729, // نیوکه کول - to criticize
|
||||
1527823733, // هجرت کول - to migrate, resettle
|
||||
1527820620, // هجوم کول - to swarm, rush, attack
|
||||
1527811599, // هڅه کول - to try, to attempt, to put in effort
|
||||
1604431102462, // هدایت کول - to guide, show the true path, give revelation leading to truth
|
||||
1527818092, // همکاري کول - to collaborate, to work together, to aid/help
|
||||
1527816106, // وده کول - to grow, develop, improve, rise
|
||||
1579723460957, // ورزش کول - to de exercise, athletics
|
||||
1527814910, // وعده کول - to promise
|
||||
1527816263, // وفا کول - to be faithful, to keep one's promise
|
||||
1609162463793, // واده کول - to marry, get married
|
||||
1609599425410, // دعا کول - to pray
|
||||
1527812939, // منډې وهل - to run
|
||||
1614602054303, // بدله اخیستل - to take revenge
|
||||
]
|
|
@ -0,0 +1,23 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
module.exports = [
|
||||
1577383674332, // انګولل - to howl, wail
|
||||
1527818962, // پرنجل - to sneeze
|
||||
1527821425, // ټوخل - to cough
|
||||
1527812767, // خندل - to laugh
|
||||
1605360223155, // دنګل - to jump, leap, run, race
|
||||
1605360127430, // زنګل - to swing, rock (back and forth)
|
||||
1527812717, // ژړل - to cry
|
||||
1591899573844, // نڅل - to dance
|
||||
1577049208257, // اورېدل - to hear
|
||||
1527812362, // فرمایل - to declare
|
||||
1527812751, // کتل - to look
|
||||
1527815396, // وایل - to say
|
||||
1527817013, // ویل - to say
|
||||
]
|
|
@ -0,0 +1,49 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
module.exports = [
|
||||
1527813473, // الوتل - to fly
|
||||
1527814012, // اوښتل - to pass over, overturn, be flipped over, spill over, shift, change, diverge, pass, cross, abandon
|
||||
1527822843, // برېښېدل - to appear, seem; to shine, sparkle; to smart, have a pricking pain
|
||||
1527815183, // پوهېدل - to understand (to do the act of understanding)
|
||||
1527816495, // تښتېدل - to run off, escape, flee
|
||||
1527811442, // توانېدل - become able, become strong or good enough to…
|
||||
1527813022, // ټوخېدل - to cough
|
||||
1527817259, // پرېوتل - to fall
|
||||
1577572987826, // جنګېدل - to fight, battle, war, to bump or crash into
|
||||
1527818535, // ځړېدل - to hang, to be hung, to be lowered
|
||||
1527812273, // ځلېدل - to shine, glow, glitter
|
||||
1577921634357, // ځنډېدل - to be delayed, postponed, held back, detained
|
||||
1527814025, // ختل - to climb, ascend, rise, go up; to fall out, to fall off, to leave/dissapear; to turn out to be ...
|
||||
1527823376, // وتل - to go out
|
||||
1527814433, // خوځېدل - to shake, tremble, wiggle, move, vibrate
|
||||
1527818980, // رپېدل - to quiver, shake, flutter, shiver
|
||||
1578191534500, // رحمېدل - to have mercy on, to have compassion on
|
||||
1527813573, // رسېدل - reach, arrive; (fig.) understand, attain to; mature, ripen
|
||||
1527813710, // زېږېدل - to be born, to appear, arise
|
||||
1527813837, // سوځېدل - to burn
|
||||
1527814597, // شرمېدل - to be ashamed, to be embarrassed, to be shy
|
||||
1527821558, // شړېدل - to be decomposed, break down, fall apart; to be boiled soft (meat)
|
||||
1527811516, // شلېدل - to be torn, broken, rent, broken, severed
|
||||
1527812615, // غځېدل - stretch out, lie, be extended, expand
|
||||
1527813680, // غږېدل - to converse, speak, talk, sing
|
||||
1527814867, // غورځېدل - to jump, leap, fall
|
||||
1578682066756, // غوړېدل - to be spread, extended, opened, unfolded; to fall with arms flailing; to blossom, to be set with mines (military)
|
||||
1527823696, // غولېدل - to be deceived, cheated, fooled
|
||||
1527812759, // کېناستل - to sit
|
||||
1527812645, // ګرځېدل - to walk, wander, turn about; to become, to be
|
||||
1527814430, // لړزېدل - to shake, shudder, tremble, vibrate
|
||||
1527814085, // لګېدل - to be busy or in motion, to be spent, to flare up, to hit, crash, touch, to suit / fit / conform, to seem
|
||||
1527813994, // لوېدل - to fall, to tumble, go down, settle
|
||||
1527823019, // وېرېدل - to be afraid, scared, to fear
|
||||
1581086654898, // کېدل - to become _____
|
||||
1527812754, // کېدل - to happen, occur
|
||||
1527815348, // تلل - to go
|
||||
1527815216, // راتلل - to come
|
||||
1527819674, // څملاستل - to lie down
|
||||
]
|
|
@ -0,0 +1,90 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
module.exports = [
|
||||
1527814617, // نیول - to take
|
||||
1527811872, // اچول - to put, pour, drop, throw, put on
|
||||
1527817298, // اخیستل - to take, buy, purchase, receive; to shave, cut with scissors
|
||||
1527816127, // اړول - to turn over, flip over; convert, change; to move over to, establish oneself in a new spot; divert, turn away, hijack
|
||||
1527811605, // ازمویل - to attempt, try; to experiment, test
|
||||
1527812458, // استول - to send
|
||||
1527811397, // اغوستل - to wear, to put on (clothes)
|
||||
1527816125, // الوزول - to make fly, to toss, to release (birds); to blow up
|
||||
1527816146, // ایستل - to throw out, discard, chuck, toss; to extract, to take out
|
||||
1527817786, // بخښل - to forgive, to pardon
|
||||
1527816092, // بلل - to call, invite; to consider, deem
|
||||
1577389204616, // پرانیستل - to open; to undo; to initiate
|
||||
1527819396, // پرځول - to throw down, to topple, overcome, wrestle to the ground
|
||||
1527816874, // پلورل - to sell
|
||||
1527813647, // پوښتل - to ask, question
|
||||
1527815190, // پرېښودل - to quit
|
||||
1527815216, // راتلل - to come
|
||||
1527812284, // کېښودل - to put
|
||||
1577394422280, // پوهول - to explain, to try to make understand
|
||||
1527815165, // پېژندل - to recognize, know, meet
|
||||
1527813405, // تړل - to connect, tie, bind, close
|
||||
1527816494, // تښتول - to drive off, steal, abduct, kidnap
|
||||
1527813394, // ټاکل - to select, appoint
|
||||
1527821498, // ټکول - to knock, pound, crush, grind, hammer
|
||||
1527818537, // ځړول - to hang, to suspend, to lower down, to let down
|
||||
1527813046, // ځنډول - to delay, to postpone, to hold back, to detain
|
||||
1527813755, // ځورول - to bother, irritate, torture, distress, vex, grind on
|
||||
1527814586, // چلول - to drive, operate, handle, put forward, circulate
|
||||
1527816564, // چیچل - to bite, chew, grind (teeth), clench (teeth), sting
|
||||
1527812790, // خوړل - to eat, to bite
|
||||
1527823551, // خېژول - load, upload, boost, cause to climb, cause to get on/in (a boat etc.)
|
||||
1527815489, // داړل - to bite, tear, gnaw
|
||||
1527812544, // درول - to stop (active, causative); to stand, set up, put in place; to bring in, introduce; to advance/field (an army/troops)
|
||||
1527816533, // رټل - to tell off, berate, banish, drive off
|
||||
1527813572, // رسول - to deliver, to make arrive, provide, send, supply, bring to,
|
||||
1527819880, // رېبل - to reap, harvest
|
||||
1527816064, // زغمل - to endure, bear, tolerate, take on, digest
|
||||
1527811485, // زېږول - to give birth, to bear, create
|
||||
1527813637, // ستایل - to praise, commend, glorify, mention
|
||||
1527817750, // سکل - to drink
|
||||
1527811625, // سنجول - to think over, deliberate, examine, think, develop
|
||||
1527813831, // سوځول - to cause to burn, set on fire
|
||||
1527814596, // شرمول - to shame, to disgrace, to dishonor
|
||||
1527814908, // شړل - to drive out, fire, evict, push out
|
||||
1527815531, // شکول - to tear, to break of, to dig up, to pull out
|
||||
1527815296, // شمارل - to count
|
||||
1527815273, // شمېرل - to count
|
||||
1527811293, // ښودل - to show; to teach; to suit, look good with (fig.), befit
|
||||
1527817865, // غځول - to extend, to stretch out, to expand
|
||||
1527817622, // غړول - to open or roll (the eyes)
|
||||
1527820150, // غږول - to make a sound, pronounce, to sing, to play (an instrument), to resound; to make someone talk, to get information
|
||||
1527815886, // غندل - to condemn, reproach, to criticize
|
||||
1527816122, // غورځول - to throw, hurl, fling
|
||||
1527812627, // غوښتل - to want, to request
|
||||
1527819301, // غولول - to deceive, cheat, fool
|
||||
1527813568, // کارول - to use, utilize
|
||||
1527816300, // کرل - to sow, to plant
|
||||
1527819378, // کندل - to dig
|
||||
1527811289, // کېنول - to seat, to make or have someone sit down
|
||||
1527817661, // ګالل - to bear up under (diffucult things), to suffer, to take, to endure
|
||||
1527812649, // ګټل - to earn (money), to win
|
||||
1527812612, // ګنډل - to sew, mend, make, knit
|
||||
1527812000, // ګڼل - to count, consider, reckon, suppose, assume
|
||||
1527822144, // ګواښل - to threaten
|
||||
1527812873, // لوستل - to read, study
|
||||
1527816453, // ګومارل - to appoint, assign, delegate; load, charge
|
||||
1527812869, // لټول - to search, seek
|
||||
1527818206, // لړزول - to shake, rattle, cause to shake
|
||||
1527813866, // لېږل - to send
|
||||
1527812856, // لیکل - to write
|
||||
1527815085, // منل - to accept, to believe
|
||||
1527815399, // وهل - to hit
|
||||
1527823020, // وېرول - to make afraid, to scare, to make fear
|
||||
1527811701, // وېشل - divide, distribute, share
|
||||
1579015359582, // کول - to make ____ ____ (as in "He's making me angry.")
|
||||
1527812752, // کول - to do (an action or activity)
|
||||
1527816865, // وړل
|
||||
1527815214, // راوړل - to bring
|
||||
1527819827, // راوستل - to bring
|
||||
1527812275, // لیدل - to see
|
||||
]
|
|
@ -0,0 +1,139 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
module.exports = [
|
||||
1588760879818, // احساسېدل - to feel, be sensed
|
||||
1577223176187, // ادا کېدل - to be set forth, given, rendered (service), performed, fulfilled, expressed, said, done
|
||||
1527814793, // اړېدل - to need, to be forced, to have to, to experience a need
|
||||
1527820761, // استعمالېدل - to be used, utilized, applied
|
||||
1527818887, // اموخته کېدل - to get used to, to get accustomed to, adjusted to, to become tame
|
||||
1527821797, // انتقال کېدل - to be transfered, to move; to die, to pass away
|
||||
1527822931, // اوده کېدل - to sleep, to be asleep
|
||||
1588853804403, // اوږدېدل - to get long, to drag out, to get longer
|
||||
1527813033, // ایسارېدل - to wait, wait (for), to be delayed, detained, stopped
|
||||
1527812404, // بچ کېدل - to be saved, spared; run off, escape, nip off
|
||||
1527814231, // بدلېدل - to be changed, replaced, exchanged, to undergo a change
|
||||
1527815729, // بلدېدل - to become familiar, acquainted, used to
|
||||
1527813842, // بلېدل - to burn, catch fire
|
||||
1527815032, // بندي کېدل - to become a prisoner, to get imprisoned
|
||||
1588781671306, // بندېدل - to be closed, blocked, stopped
|
||||
1527817582, // بېزارېدل - to be fed up with, tired of, repulsed by, dissatisfied with, done with, disgusted by
|
||||
1527815844, // بېلېدل - to be separated
|
||||
1588073731662, // پاکېدل - to be cleaned, become clean, to be cleansed, purified
|
||||
1527813895, // پټېدل - to hide, to be hidden
|
||||
1527812011, // پخلا کېدل - to be reconciled, brought to an agreement
|
||||
1581906176268, // پخېدل - to be cooked, prepared, ripened, matured
|
||||
1584689265872, // پستېدل - to become soft, tender, gentle, loosened
|
||||
1583269419054, // پورته کېدل - to be raised up, lifted up, brought up
|
||||
1527814169, // پورې کېدل - to cross, traverse, go to the other side
|
||||
1577394057681, // پوهېدل - to understand (to come to a state of understanding)
|
||||
1527815170, // پیدا کېدل - to be found, born
|
||||
1581189978440, // پېش کېدل - to be brought forward, presented, delivered
|
||||
1527815167, // پېښېدل - to happen, occur, come up
|
||||
1591872442272, // پیلېدل - to be started, begin
|
||||
1527815324, // تاوېدل - to turn, rotate (passive), to be wrapped, twisted
|
||||
1577398809240, // تباه کېدل - to be destroyed, ruined
|
||||
1582391432928, // تبدیلېدل - to change, to undergo change, to be transformed
|
||||
1580755448566, // ترکېدل - to be abondoned, left, refused
|
||||
1527821367, // تسلیمېدل - to surrender, capitulate; to be handed over, delivered, passed on
|
||||
1527814905, // تشېدل - to be emptied
|
||||
1527821358, // تصدیق کېدل - to be confirmed, affirmed, attested
|
||||
1527823430, // تقسیمېدل - to be divided, partitioned, distributed
|
||||
1577501138221, // تکرار کېدل - to be repeated
|
||||
1527814919, // تولیدېدل - to be produced, manufactured; to spring up, to be created, birthed
|
||||
1579644515886, // تویېدل - to be poured, shed, spilled, scattered, knocked down (fruit)
|
||||
1577571228633, // تیارېدل - to become ready, to become prepared, to get ready
|
||||
1577571096956, // ټولېدل - to be gathered, collected
|
||||
1577571391494, // ټیټېدل - to bow, stoop, go down
|
||||
1589019870271, // ټیک کېدل - to be corrected, made right
|
||||
1585310006948, // ثابتېدل - to be proven, established, made firm
|
||||
1527816202, // ثبتېدل - to be entered, saved, recorded, registered
|
||||
1527821166, // جارېدل - to be sacrificed, to be offered/at someone’s service
|
||||
1527816943, // جوتېدل - to become evident, clear, apparent, explained, established
|
||||
1527812713, // جوړېدل - to be made, formed, build, mended, become
|
||||
1577905544406, // ځایېدل - to fit, to fit into a space, to be accomodated
|
||||
1527812522, // چاپ کېدل - to be published, printed
|
||||
1527811694, // چاغېدل - to put on weight, to get fat
|
||||
1588783381414, // حاضرېدل - to show up, be present, appear; to be prepared, to get ready
|
||||
1527814126, // حلېدل - to be solved, resolved
|
||||
1588426001132, // حیرانېدل - to be amazed, astonished, shocked, surprized
|
||||
1527819313, // خارجېدل - to be exiled, dismissed, fired, extracted, processed
|
||||
1527816079, // خبرېدل - to be informed, to come to know
|
||||
1527811394, // خپرېدل - to be spread, dispersed, opened, unfolded, publicized, distributed
|
||||
1577900112011, // ختمېدل - to be finished, completed, ended, used up, killed, destroyed
|
||||
1527814184, // خرڅېدل - to be sold, to be spent
|
||||
1577898920635, // خفه کېدل - to be sad, grieved, annoyed, upset; to be choked, to suffocate
|
||||
1527818360, // خلاصېدل - to be freed, saved, rescued, opened
|
||||
1527814173, // خوږېدل - to hurt, to have pain
|
||||
1527817114, // خوشتېدل - to become damp, wet, moist
|
||||
1527812812, // خوښېدل - to be pleasing, happy, to be liked; to be chosen, selected
|
||||
1527816735, // داخلېدل - to enter, go in; to be included; to be enrolled
|
||||
1527815784, // درنېدل - to become heavier; to become more serious, respectable, reliable
|
||||
1577059043220, // دفن کېدل - to be buried
|
||||
1527817671, // ډکېدل - to fill up
|
||||
1527817257, // ډوبېدل - to drown, sink, dissapear, be submerged
|
||||
1527816895, // ډېرېدل - to increase, to become more, to be increased, to rise
|
||||
1527818346, // راپورته کېدل - to be raised up, to rise
|
||||
1527815734, // راټولېدل - to be brought together, gathered, collected, assembled
|
||||
1585474304911, // رغېدل - to become healthy, to heal, to get better, to recover, to be cured; to be built up; to be sewn, mended, repaired
|
||||
1527823278, // رنګېدل - to be painted, colored
|
||||
1527812410, // روانېدل - to get under way, to get going, to depart
|
||||
1527815236, // ړنګېدل - to be demolished, ruined, dissolved, disbanded
|
||||
1527817576, // زرغونېدل - to germinate, grow, flourish, develop
|
||||
1566120362058, // زړېدل - to get old, to age, to get worn out
|
||||
1527817668, // زیاتېدل - to become more, to grow in number
|
||||
1591033069786, // ستړی کېدل - to get tired, fatigued
|
||||
1527816404, // ستنېدل - to return go back; to be delayed, to linger
|
||||
1591782112190, // سمېدل - to become right, correct, get repaired, be fixed, be straightened out
|
||||
1527811948, // شریکېدل - to be shared, held in common; to participate in something, share in something, be involved
|
||||
1589883893191, // شړمېدل - to ba attached loosely, to become loose, lazy, flabby
|
||||
1527820128, // ښخېدل - to be buried, entombed; to be pierced, plunged, thrust into
|
||||
1527814077, // ښکارېدل - to become clear, evident, obvious; to appear, to seem
|
||||
1577057620783, // عادت کېدل - to get used to, to get accustomed to; to get addicted to
|
||||
1585475932743, // عذابېدل - to be tortured, tormented, punished, bothered, pained
|
||||
1527814972, // غرقېدل - to be sunk, immersed, plunged, lost
|
||||
1527821483, // غصه کېدل - to be angry, upset, distressed
|
||||
1578607410634, // غلطېدل - to make a mistake, to err, to be decieved, to stray from, to miscalculate
|
||||
1578683722262, // فارغېدل - to graduate; to become free from, finished from something, liberated
|
||||
1527823367, // قبلېدل - to be accepted, to be approved
|
||||
1578705585960, // قربانېدل - to be sacrificed
|
||||
1588074081731, // قرنطینېدل - to be quarentined
|
||||
1527811848, // کامیابېدل - to succed, to achieve success
|
||||
1578769047886, // کلکېدل - to become firm, solid, to be hardened, to solidify; to became staunch, secured
|
||||
1578769553469, // کمېدل - to decrease, become small, become less
|
||||
1527811975, // کڼېدل - to become deaf
|
||||
1573149364576, // ګډېدل - to be mixed, combined, blended, to meet, rejoin
|
||||
1527814821, // ګرمېدل - to become warm, to warm up, heat up
|
||||
1527819155, // ګمراه کېدل - to stray (from the path, the faith), to err
|
||||
1579034600343, // ګیرېدل - to be seized, caught, trapped, confined, imprisoned, beseiged, stuck
|
||||
1588152260378, // لرې کېدل - to be removed, put far away
|
||||
1527817122, // لندېدل - to dampen, moisten, soak, get wet
|
||||
1527817119, // لنډېدل - to be shortened, made short
|
||||
1527813947, // لویېدل - to grow up, to be raised up, to get big
|
||||
1527811901, // ماتېدل - to be broken, break, hurt badle, crumble
|
||||
1527814560, // مجبورېدل - to be compelled, forced, obligated
|
||||
1527820885, // مړېدل - to become full, to have one’s fill; (fig.) to grow cold towards, lose interest in
|
||||
1579295191646, // مقررېدل - to be appointed, assigned, delegated
|
||||
1579295944312, // ملامتېدل - to be condemned, blamed, guilty
|
||||
1527812920, // ملاوېدل - to meet, to be met, to be found, to be available
|
||||
1579387693725, // مینېدل - to fall in love
|
||||
1527815573, // نازلېدل - to befall, to come down, to be revealed, to be sent down
|
||||
1527811761, // ناکامېدل - to fail, to not succeed
|
||||
1527820482, // نسکورېدل - to be toppled over, brought down, ruined, shot down (ie. a plane), stoop down
|
||||
1527817763, // هېرېدل - to be forgotten (ستا نوم ما نه هېر شو – I forgot your name – lit, Your name was forgotten from me)
|
||||
1579721195157, // واردېدل - to be imported
|
||||
1527817238, // وچېدل - to become dry
|
||||
1589640142987, // ورکېدل - to get lost, dissapear
|
||||
1588153594269, // وړېدل - to become smaller, shrink
|
||||
1527812005, // وقفېدل - to be devoted, dedicated, given, donated, bequeathed
|
||||
1576947352743, // ویدېدل - to sleep
|
||||
1527819292, // ویښېدل - to awaken, become alert, wake up
|
||||
1527812941, // یادېدل - to be remembered, to be missed
|
||||
1527814768, // یخېدل - to chill, cool down, freeze
|
||||
1579824223049, // یو ځای کېدل - to be gathered, brought together, come together
|
||||
]
|
|
@ -0,0 +1,85 @@
|
|||
/**
|
||||
* Copyright (c) 2021 lingdocs.com
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
|
||||
module.exports = [
|
||||
1527812403, // بچ کول - to save, protect, guard, spare, rescue, economize
|
||||
1577299232429, // بدلول - to change, to adapt, exchange, replace
|
||||
1527815728, // بلدول - to familiarize with, to acquaint, orient, to train
|
||||
1588781694450, // بندول - to close, block, stop
|
||||
1527821309, // بندول - to close, barricade, cut off, restrain, hold back
|
||||
1527815843, // بېلول - to separate
|
||||
1588073727998, // پاکول - to clean, cleanse, purify
|
||||
1527812010, // پخلا کول - to reconcile, to bring to an agreement
|
||||
1527820144, // پستول - to soften, knead, pulverize, dig over again
|
||||
1584689306281, // پستول - to make soft, tender, gentle, loosened
|
||||
1583269391864, // پورته کول - to raise up, lift up, bring up
|
||||
1577394118297, // پوهول - to make understand (to bring someone to the state of understanding)
|
||||
1571859113828, // پخول - to cook
|
||||
1527812385, // پیدا کول - to find, birth, create
|
||||
1581189437955, // پېش کول - to bring forward, present, deliver
|
||||
1527820021, // پېښول - to cause, provoke, bring on
|
||||
1591872434020, // پیلول - to start, begin
|
||||
1527815323, // تاوول - to turn, to twist (active, causative), to rotate (causative) to wrap up, wind up
|
||||
1527812388, // تباه کول - to destroy, ruin
|
||||
1580754885011, // ترکول - to abandon, leave, refuse
|
||||
1527821357, // تصدیق کول - to confirm, affirm, attest
|
||||
1577501129214, // تکرار کول - to repeat
|
||||
1527822697, // تولول - to weigh
|
||||
1579908304357, // تولول - to balance
|
||||
1579644522321, // تویول - to pour, shed, spill, scatter, knock down (fruit)
|
||||
1527815731, // ټولول - to gather, collect
|
||||
1589019863017, // ټیک کول - to correct, make right
|
||||
1527816201, // ثبتول - to enter, save, record, register
|
||||
1527821167, // جارول - to clean (with a brush), to warp (textiles); to sacrifice
|
||||
1527816945, // جوتول - to make clear, evident, apparent, explained, established
|
||||
1527816947, // جوتول - to harness, hitch up
|
||||
1527812712, // جوړول - to make, form, build, mend, fix
|
||||
1527817455, // ځایول - to place, put, accommodate, make room for, to make fit
|
||||
1527815074, // چاپول - to print, publish
|
||||
1527811693, // چاغول - to fatten up, to fatten, to make stout, plump
|
||||
1527816239, // خبرول - to inform, communicate, make known, notify
|
||||
1527811395, // خپرول - to spread, disperse, open, unfold, publicize, distribute
|
||||
1527812222, // ختمول - to finish, complete, end, use up, destroy, kill
|
||||
1527814183, // خرڅول - to sell, to spend, (fig.) to betray
|
||||
1577898915919, // خفه کول - to make sad, to grieve, to annoy; to choke, to make suffocate
|
||||
1592303701516, // خوږول - to sweeten, to make sweet, to delight, to give pleasure
|
||||
1527814174, // خوږول - to cause hurt, pain
|
||||
1527812811, // خوښول - to like, to choose, to select; to make happy
|
||||
1527813502, // درنول - to make heavier; to make serious, respectable, reliable
|
||||
1527811432, // دفن کول - to bury
|
||||
1527813665, // ډکول - to fill
|
||||
1527817258, // ډوبول - to cause to drown, to make sing, to submerge
|
||||
1527823503, // ډېرول - to increase, make more
|
||||
1527818347, // راپورته کول - to raise up
|
||||
1527823277, // رنګول - to paint, color
|
||||
1527813179, // ړنګول - to destroy, wreck, ruin, demolish, mess up, liquidate, disband
|
||||
1591033078746, // ستړی کول - to make tired, wear out
|
||||
1527813065, // ستنول - to return, to give back; to delay someone or something, to direct, to turn, to fix on
|
||||
1527811949, // شریکول - to make a participant or involved, to share, to bring someone or something in, to include
|
||||
1589883890933, // شړمول - to attach loosely, to cause to be loose, lazy, flabby
|
||||
1527814493, // غرقول - to sink, plunge, submerge, immerse
|
||||
1527823133, // غلطول - confuse, mix up, make a mistake; to go wrong, to stray from; to deceive, to lead into error; to distract, to be distracted
|
||||
1527823366, // قبلول - to accept, to approve
|
||||
1527820386, // کلکول - to make firm, hard solid, to fasten, to secure, to lock, to staunchly defend
|
||||
1527814819, // ګرمول - to warm, to heat up, to heat
|
||||
1579034597012, // ګیرول - to seize, catch, trap, confine, imprison, beseige, make stuck
|
||||
1588152253147, // لرې کول - to remove, put far away
|
||||
1527817121, // لندول - to make wet, moisten, to make damp, to soak
|
||||
1527817118, // لنډول - to shorten, to make short, abbreviate
|
||||
1527814350, // لویول - to raise, bring up (children)
|
||||
1527816012, // ماتول - to break, split, defeat
|
||||
1579387733916, // مینول - to cause to fall in love, to make to fall in love
|
||||
1527817762, // هېرول - to forget
|
||||
1589640176788, // ورکول - to lose/make lost, to misplace, to make dissapear, get rid off
|
||||
1527812004, // وقفول - to devote, dedicate, give, donate
|
||||
1579724723019, // ویدول - to put to sleep
|
||||
1579822065104, // ویښول - to wake up, to make awake, to make alert
|
||||
1527816559, // یادول - to remember, to recall, to think on, to call
|
||||
1527813556, // یو ځای کول - to gather, bring together
|
||||
1527815444, // زده کول - to learn, to teach
|
||||
]
|