summaryrefslogtreecommitdiff
path: root/_images
diff options
context:
space:
mode:
Diffstat (limited to '_images')
-rw-r--r--_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.dot3
-rw-r--r--_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.svg31
-rw-r--r--_images/SVG-1fb7029fa2cc454a267bae271cccb2c591387416.svg13
-rw-r--r--_images/arch_public.dot30
-rw-r--r--_images/arch_public.svg149
-rw-r--r--_images/ffox-setting-proxy-socks.pngbin0 -> 60796 bytes
-rw-r--r--_images/hello.dot3
-rw-r--r--_images/hello.svg30
-rw-r--r--_images/math/07c9ff4251510b06013159f4e45ec9ab97044096.svg25
-rw-r--r--_images/math/3b8127a8eed95247f9249ea6c85e8e86df1baa82.svg25
-rw-r--r--_images/math/6673b43f9fe29455c1fcd1164e5844698cc64d38.svg22
-rw-r--r--_images/math/a6a994cb6e7278ec30eaebe7e636046d3deccb5b.svg43
-rw-r--r--_images/svg_image.svg10
-rw-r--r--_images/translation.svg47
14 files changed, 431 insertions, 0 deletions
diff --git a/_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.dot b/_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.dot
new file mode 100644
index 000000000..eaec9f36b
--- /dev/null
+++ b/_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.dot
@@ -0,0 +1,3 @@
+digraph foo {
+ "bar" -> "baz";
+} \ No newline at end of file
diff --git a/_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.svg b/_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.svg
new file mode 100644
index 000000000..a5b367334
--- /dev/null
+++ b/_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.43.0 (0)
+ -->
+<!-- Title: foo Pages: 1 -->
+<svg width="62pt" height="116pt"
+ viewBox="0.00 0.00 62.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
+<title>foo</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-112 58,-112 58,4 -4,4"/>
+<!-- bar -->
+<g id="node1" class="node">
+<title>bar</title>
+<ellipse fill="none" stroke="black" cx="27" cy="-90" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-86.3" font-family="Times,serif" font-size="14.00">bar</text>
+</g>
+<!-- baz -->
+<g id="node2" class="node">
+<title>baz</title>
+<ellipse fill="none" stroke="black" cx="27" cy="-18" rx="27" ry="18"/>
+<text text-anchor="middle" x="27" y="-14.3" font-family="Times,serif" font-size="14.00">baz</text>
+</g>
+<!-- bar&#45;&gt;baz -->
+<g id="edge1" class="edge">
+<title>bar&#45;&gt;baz</title>
+<path fill="none" stroke="black" d="M27,-71.7C27,-63.98 27,-54.71 27,-46.11"/>
+<polygon fill="black" stroke="black" points="30.5,-46.1 27,-36.1 23.5,-46.1 30.5,-46.1"/>
+</g>
+</g>
+</svg>
diff --git a/_images/SVG-1fb7029fa2cc454a267bae271cccb2c591387416.svg b/_images/SVG-1fb7029fa2cc454a267bae271cccb2c591387416.svg
new file mode 100644
index 000000000..783577ecd
--- /dev/null
+++ b/_images/SVG-1fb7029fa2cc454a267bae271cccb2c591387416.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
+ baseProfile="full" width="70px" height="40px"
+ viewBox="0 0 700 400"
+ >
+ <line x1="180" y1="370"
+ x2="500" y2="50"
+ stroke="black" stroke-width="15px"
+ />
+ <polygon points="585 0 525 25 585 50"
+ transform="rotate(135 525 25)"
+ />
+</svg> \ No newline at end of file
diff --git a/_images/arch_public.dot b/_images/arch_public.dot
new file mode 100644
index 000000000..526fb53da
--- /dev/null
+++ b/_images/arch_public.dot
@@ -0,0 +1,30 @@
+digraph G {
+
+ node [style=filled, shape=box, fillcolor="#ffffcc", fontname=Sans];
+ edge [fontname="Sans"];
+
+ browser [label="browser", shape=tab, fillcolor=aliceblue];
+ rp [label="reverse proxy"];
+ static [label="static files", shape=folder, href="url to configure static files", fillcolor=lightgray];
+ uwsgi [label="uwsgi", shape=parallelogram href="https://docs.searxng.org/utils/searx.sh.html"]
+ redis [label="redis DB", shape=cylinder];
+ searxng1 [label="SearXNG #1", fontcolor=blue3];
+ searxng2 [label="SearXNG #2", fontcolor=blue3];
+ searxng3 [label="SearXNG #3", fontcolor=blue3];
+ searxng4 [label="SearXNG #4", fontcolor=blue3];
+
+ browser -> rp [label="HTTPS"]
+
+ subgraph cluster_searxng {
+ label = "SearXNG instance" fontname=Sans;
+ bgcolor="#fafafa";
+ { rank=same; static rp };
+ rp -> static [label="optional: reverse proxy serves static files", fillcolor=slategray, fontcolor=slategray];
+ rp -> uwsgi [label="http:// (tcp) or unix:// (socket)"];
+ uwsgi -> searxng1 -> redis;
+ uwsgi -> searxng2 -> redis;
+ uwsgi -> searxng3 -> redis;
+ uwsgi -> searxng4 -> redis;
+ }
+
+}
diff --git a/_images/arch_public.svg b/_images/arch_public.svg
new file mode 100644
index 000000000..0a0a79ae2
--- /dev/null
+++ b/_images/arch_public.svg
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.43.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="543pt" height="401pt"
+ viewBox="0.00 0.00 543.00 401.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 397)">
+<title>G</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-397 539,-397 539,4 -4,4"/>
+<g id="clust1" class="cluster">
+<title>cluster_searxng</title>
+<polygon fill="#fafafa" stroke="black" points="8,-8 8,-316 527,-316 527,-8 8,-8"/>
+<text text-anchor="middle" x="267.5" y="-300.8" font-family="Sans" font-size="14.00">SearXNG instance</text>
+</g>
+<!-- browser -->
+<g id="node1" class="node">
+<title>browser</title>
+<polygon fill="aliceblue" stroke="black" points="108,-393 48,-393 48,-397 36,-397 36,-357 108,-357 108,-393"/>
+<polyline fill="none" stroke="black" points="36,-393 48,-393 "/>
+<text text-anchor="middle" x="72" y="-371.3" font-family="Sans" font-size="14.00">browser</text>
+</g>
+<!-- rp -->
+<g id="node2" class="node">
+<title>rp</title>
+<polygon fill="#ffffcc" stroke="black" points="128,-285 16,-285 16,-249 128,-249 128,-285"/>
+<text text-anchor="middle" x="72" y="-263.3" font-family="Sans" font-size="14.00">reverse proxy</text>
+</g>
+<!-- browser&#45;&gt;rp -->
+<g id="edge1" class="edge">
+<title>browser&#45;&gt;rp</title>
+<path fill="none" stroke="black" d="M72,-356.97C72,-340.38 72,-314.88 72,-295.43"/>
+<polygon fill="black" stroke="black" points="75.5,-295.34 72,-285.34 68.5,-295.34 75.5,-295.34"/>
+<text text-anchor="middle" x="94.5" y="-327.8" font-family="Sans" font-size="14.00">HTTPS</text>
+</g>
+<!-- static -->
+<g id="node3" class="node">
+<title>static</title>
+<g id="a_node3"><a xlink:href="url to configure static files" xlink:title="static files">
+<polygon fill="lightgray" stroke="black" points="518.5,-285 515.5,-289 494.5,-289 491.5,-285 431.5,-285 431.5,-249 518.5,-249 518.5,-285"/>
+<text text-anchor="middle" x="475" y="-263.3" font-family="Sans" font-size="14.00">static files</text>
+</a>
+</g>
+</g>
+<!-- rp&#45;&gt;static -->
+<g id="edge2" class="edge">
+<title>rp&#45;&gt;static</title>
+<path fill="none" stroke="black" d="M128.04,-267C205.6,-267 344.74,-267 421.13,-267"/>
+<polygon fill="slategray" stroke="black" points="421.48,-270.5 431.48,-267 421.48,-263.5 421.48,-270.5"/>
+<text text-anchor="middle" x="279.75" y="-273.8" font-family="Sans" font-size="14.00" fill="slategray">optional: reverse proxy serves static files</text>
+</g>
+<!-- uwsgi -->
+<g id="node4" class="node">
+<title>uwsgi</title>
+<g id="a_node4"><a xlink:href="https://docs.searxng.org/utils/searx.sh.html" xlink:title="uwsgi">
+<polygon fill="#ffffcc" stroke="black" points="244.14,-198 158.02,-198 135.86,-162 221.98,-162 244.14,-198"/>
+<text text-anchor="middle" x="190" y="-176.3" font-family="Sans" font-size="14.00">uwsgi</text>
+</a>
+</g>
+</g>
+<!-- rp&#45;&gt;uwsgi -->
+<g id="edge3" class="edge">
+<title>rp&#45;&gt;uwsgi</title>
+<path fill="none" stroke="black" d="M95.88,-248.8C113.71,-235.95 138.28,-218.26 157.84,-204.17"/>
+<polygon fill="black" stroke="black" points="160.09,-206.86 166.16,-198.18 156,-201.18 160.09,-206.86"/>
+<text text-anchor="middle" x="240.5" y="-219.8" font-family="Sans" font-size="14.00">http:// (tcp) or unix:// (socket)</text>
+</g>
+<!-- searxng1 -->
+<g id="node6" class="node">
+<title>searxng1</title>
+<polygon fill="#ffffcc" stroke="black" points="120,-125 16,-125 16,-89 120,-89 120,-125"/>
+<text text-anchor="middle" x="68" y="-103.3" font-family="Sans" font-size="14.00" fill="#0000cd">SearXNG #1</text>
+</g>
+<!-- uwsgi&#45;&gt;searxng1 -->
+<g id="edge4" class="edge">
+<title>uwsgi&#45;&gt;searxng1</title>
+<path fill="none" stroke="black" d="M160.78,-161.99C144.45,-152.49 123.91,-140.54 106.31,-130.29"/>
+<polygon fill="black" stroke="black" points="107.81,-127.12 97.41,-125.11 104.29,-133.17 107.81,-127.12"/>
+</g>
+<!-- searxng2 -->
+<g id="node7" class="node">
+<title>searxng2</title>
+<polygon fill="#ffffcc" stroke="black" points="242,-125 138,-125 138,-89 242,-89 242,-125"/>
+<text text-anchor="middle" x="190" y="-103.3" font-family="Sans" font-size="14.00" fill="#0000cd">SearXNG #2</text>
+</g>
+<!-- uwsgi&#45;&gt;searxng2 -->
+<g id="edge6" class="edge">
+<title>uwsgi&#45;&gt;searxng2</title>
+<path fill="none" stroke="black" d="M190,-161.81C190,-153.79 190,-144.05 190,-135.07"/>
+<polygon fill="black" stroke="black" points="193.5,-135.03 190,-125.03 186.5,-135.03 193.5,-135.03"/>
+</g>
+<!-- searxng3 -->
+<g id="node8" class="node">
+<title>searxng3</title>
+<polygon fill="#ffffcc" stroke="black" points="364,-125 260,-125 260,-89 364,-89 364,-125"/>
+<text text-anchor="middle" x="312" y="-103.3" font-family="Sans" font-size="14.00" fill="#0000cd">SearXNG #3</text>
+</g>
+<!-- uwsgi&#45;&gt;searxng3 -->
+<g id="edge8" class="edge">
+<title>uwsgi&#45;&gt;searxng3</title>
+<path fill="none" stroke="black" d="M219.22,-161.99C235.55,-152.49 256.09,-140.54 273.69,-130.29"/>
+<polygon fill="black" stroke="black" points="275.71,-133.17 282.59,-125.11 272.19,-127.12 275.71,-133.17"/>
+</g>
+<!-- searxng4 -->
+<g id="node9" class="node">
+<title>searxng4</title>
+<polygon fill="#ffffcc" stroke="black" points="486,-125 382,-125 382,-89 486,-89 486,-125"/>
+<text text-anchor="middle" x="434" y="-103.3" font-family="Sans" font-size="14.00" fill="#0000cd">SearXNG #4</text>
+</g>
+<!-- uwsgi&#45;&gt;searxng4 -->
+<g id="edge10" class="edge">
+<title>uwsgi&#45;&gt;searxng4</title>
+<path fill="none" stroke="black" d="M226,-168.52C264.37,-157.36 325.82,-139.48 372,-126.04"/>
+<polygon fill="black" stroke="black" points="372.99,-129.4 381.61,-123.24 371.03,-122.68 372.99,-129.4"/>
+</g>
+<!-- redis -->
+<g id="node5" class="node">
+<title>redis</title>
+<path fill="#ffffcc" stroke="black" d="M288.5,-48.73C288.5,-50.53 271.69,-52 251,-52 230.31,-52 213.5,-50.53 213.5,-48.73 213.5,-48.73 213.5,-19.27 213.5,-19.27 213.5,-17.47 230.31,-16 251,-16 271.69,-16 288.5,-17.47 288.5,-19.27 288.5,-19.27 288.5,-48.73 288.5,-48.73"/>
+<path fill="none" stroke="black" d="M288.5,-48.73C288.5,-46.92 271.69,-45.45 251,-45.45 230.31,-45.45 213.5,-46.92 213.5,-48.73"/>
+<text text-anchor="middle" x="251" y="-30.3" font-family="Sans" font-size="14.00">redis DB</text>
+</g>
+<!-- searxng1&#45;&gt;redis -->
+<g id="edge5" class="edge">
+<title>searxng1&#45;&gt;redis</title>
+<path fill="none" stroke="black" d="M111.83,-88.99C139.55,-78.24 175.36,-64.35 203.71,-53.35"/>
+<polygon fill="black" stroke="black" points="205.35,-56.47 213.4,-49.59 202.81,-49.94 205.35,-56.47"/>
+</g>
+<!-- searxng2&#45;&gt;redis -->
+<g id="edge7" class="edge">
+<title>searxng2&#45;&gt;redis</title>
+<path fill="none" stroke="black" d="M204.77,-88.81C212.26,-80.09 221.5,-69.34 229.74,-59.75"/>
+<polygon fill="black" stroke="black" points="232.51,-61.89 236.37,-52.03 227.2,-57.33 232.51,-61.89"/>
+</g>
+<!-- searxng3&#45;&gt;redis -->
+<g id="edge9" class="edge">
+<title>searxng3&#45;&gt;redis</title>
+<path fill="none" stroke="black" d="M297.23,-88.81C289.74,-80.09 280.5,-69.34 272.26,-59.75"/>
+<polygon fill="black" stroke="black" points="274.8,-57.33 265.63,-52.03 269.49,-61.89 274.8,-57.33"/>
+</g>
+<!-- searxng4&#45;&gt;redis -->
+<g id="edge11" class="edge">
+<title>searxng4&#45;&gt;redis</title>
+<path fill="none" stroke="black" d="M390.17,-88.99C362.45,-78.24 326.64,-64.35 298.29,-53.35"/>
+<polygon fill="black" stroke="black" points="299.19,-49.94 288.6,-49.59 296.65,-56.47 299.19,-49.94"/>
+</g>
+</g>
+</svg>
diff --git a/_images/ffox-setting-proxy-socks.png b/_images/ffox-setting-proxy-socks.png
new file mode 100644
index 000000000..3da85d2c0
--- /dev/null
+++ b/_images/ffox-setting-proxy-socks.png
Binary files differ
diff --git a/_images/hello.dot b/_images/hello.dot
new file mode 100644
index 000000000..504621dfc
--- /dev/null
+++ b/_images/hello.dot
@@ -0,0 +1,3 @@
+graph G {
+ Hello -- World
+}
diff --git a/_images/hello.svg b/_images/hello.svg
new file mode 100644
index 000000000..7d7af8e24
--- /dev/null
+++ b/_images/hello.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.43.0 (0)
+ -->
+<!-- Title: G Pages: 1 -->
+<svg width="85pt" height="116pt"
+ viewBox="0.00 0.00 84.69 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
+<title>G</title>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-112 80.69,-112 80.69,4 -4,4"/>
+<!-- Hello -->
+<g id="node1" class="node">
+<title>Hello</title>
+<ellipse fill="none" stroke="black" cx="38.35" cy="-90" rx="35.19" ry="18"/>
+<text text-anchor="middle" x="38.35" y="-86.3" font-family="Times,serif" font-size="14.00">Hello</text>
+</g>
+<!-- World -->
+<g id="node2" class="node">
+<title>World</title>
+<ellipse fill="none" stroke="black" cx="38.35" cy="-18" rx="38.19" ry="18"/>
+<text text-anchor="middle" x="38.35" y="-14.3" font-family="Times,serif" font-size="14.00">World</text>
+</g>
+<!-- Hello&#45;&#45;World -->
+<g id="edge1" class="edge">
+<title>Hello&#45;&#45;World</title>
+<path fill="none" stroke="black" d="M38.35,-71.7C38.35,-60.85 38.35,-46.92 38.35,-36.1"/>
+</g>
+</g>
+</svg>
diff --git a/_images/math/07c9ff4251510b06013159f4e45ec9ab97044096.svg b/_images/math/07c9ff4251510b06013159f4e45ec9ab97044096.svg
new file mode 100644
index 000000000..80edca1d9
--- /dev/null
+++ b/_images/math/07c9ff4251510b06013159f4e45ec9ab97044096.svg
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.8.1 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='36.523255pt' height='48.422712pt' viewBox='57.608781 53.798251 36.523255 48.422712'>
+<defs>
+<path id='g0-0' d='M9.191532-3.20797C9.428643-3.20797 9.679701-3.20797 9.679701-3.486924S9.428643-3.765878 9.191532-3.765878H1.645828C1.408717-3.765878 1.157659-3.765878 1.157659-3.486924S1.408717-3.20797 1.645828-3.20797H9.191532Z'/>
+<path id='g1-120' d='M6.611208-5.69066C6.164882-5.606974 5.997509-5.272229 5.997509-5.007223C5.997509-4.672478 6.262516-4.560897 6.457783-4.560897C6.876214-4.560897 7.169116-4.923537 7.169116-5.300125C7.169116-5.885928 6.499626-6.150934 5.913823-6.150934C5.063014-6.150934 4.588792-5.314072 4.463263-5.049066C4.142466-6.095143 3.277709-6.150934 3.02665-6.150934C1.603985-6.150934 .850809-4.323786 .850809-4.016936C.850809-3.961146 .9066-3.891407 1.004234-3.891407C1.115816-3.891407 1.143711-3.975093 1.171606-4.030884C1.645828-5.579078 2.580324-5.87198 2.984807-5.87198C3.612453-5.87198 3.737983-5.286177 3.737983-4.951432C3.737983-4.644583 3.654296-4.323786 3.486924-3.654296L3.012702-1.743462C2.803487-.9066 2.399004-.139477 1.659776-.139477C1.590037-.139477 1.241345-.139477 .948443-.320797C1.45056-.418431 1.562142-.836862 1.562142-1.004234C1.562142-1.283188 1.352927-1.45056 1.08792-1.45056C.753176-1.45056 .390535-1.157659 .390535-.711333C.390535-.125529 1.046077 .139477 1.645828 .139477C2.315318 .139477 2.789539-.390535 3.082441-.962391C3.305604-.139477 4.002989 .139477 4.519054 .139477C5.941719 .139477 6.694894-1.687671 6.694894-1.994521C6.694894-2.064259 6.639103-2.12005 6.555417-2.12005C6.429888-2.12005 6.41594-2.050311 6.374097-1.93873C5.997509-.711333 5.188543-.139477 4.560897-.139477C4.072727-.139477 3.807721-.502117 3.807721-1.073973C3.807721-1.380822 3.863512-1.603985 4.086675-2.524533L4.574844-4.42142C4.78406-5.258281 5.258281-5.87198 5.899875-5.87198C5.927771-5.87198 6.318306-5.87198 6.611208-5.69066Z'/>
+<path id='g1-121' d='M3.668244 1.562142C3.291656 2.092154 2.747696 2.566376 2.064259 2.566376C1.896887 2.566376 1.227397 2.538481 1.018182 1.896887C1.060025 1.910834 1.129763 1.910834 1.157659 1.910834C1.57609 1.910834 1.855044 1.548194 1.855044 1.227397S1.590037 .795019 1.380822 .795019C1.157659 .795019 .669489 .962391 .669489 1.645828C.669489 2.357161 1.26924 2.84533 2.064259 2.84533C3.459029 2.84533 4.867746 1.562142 5.258281 .013948L6.625156-5.425654C6.639103-5.495392 6.666999-5.579078 6.666999-5.662765C6.666999-5.87198 6.499626-6.011457 6.290411-6.011457C6.164882-6.011457 5.87198-5.955666 5.760399-5.537235L4.728269-1.436613C4.658531-1.185554 4.658531-1.157659 4.546949-1.004234C4.267995-.613699 3.807721-.139477 3.138232-.139477C2.357161-.139477 2.287422-.9066 2.287422-1.283188C2.287422-2.078207 2.66401-3.152179 3.040598-4.156413C3.194022-4.560897 3.277709-4.756164 3.277709-5.035118C3.277709-5.620922 2.859278-6.150934 2.175841-6.150934C.892653-6.150934 .376588-4.128518 .376588-4.016936C.376588-3.961146 .432379-3.891407 .530012-3.891407C.655542-3.891407 .669489-3.947198 .72528-4.142466C1.060025-5.314072 1.590037-5.87198 2.133998-5.87198C2.259527-5.87198 2.496638-5.87198 2.496638-5.411706C2.496638-5.049066 2.343213-4.644583 2.133998-4.11457C1.45056-2.287422 1.45056-1.827148 1.45056-1.492403C1.45056-.167372 2.399004 .139477 3.096389 .139477C3.500872 .139477 4.002989 .013948 4.491158-.502117L4.505106-.488169C4.29589 .334745 4.156413 .878705 3.668244 1.562142Z'/>
+<path id='g1-122' d='M1.771357-1.129763C2.371108-1.8132 2.859278-2.245579 3.556663-2.873225C4.393524-3.598506 4.756164-3.947198 4.951432-4.156413C5.927771-5.118804 6.41594-5.927771 6.41594-6.039352S6.304359-6.150934 6.276463-6.150934C6.178829-6.150934 6.150934-6.095143 6.081196-5.997509C5.732503-5.397758 5.397758-5.104857 5.035118-5.104857C4.742217-5.104857 4.588792-5.230386 4.323786-5.565131C4.030884-5.913823 3.793773-6.150934 3.38929-6.150934C2.371108-6.150934 1.75741-4.881694 1.75741-4.588792C1.75741-4.546949 1.771357-4.463263 1.896887-4.463263C2.008468-4.463263 2.022416-4.519054 2.064259-4.616687C2.30137-5.174595 2.970859-5.272229 3.235866-5.272229C3.528767-5.272229 3.807721-5.174595 4.100623-5.049066C4.630635-4.825903 4.853798-4.825903 4.993275-4.825903C5.090909-4.825903 5.1467-4.825903 5.216438-4.839851C4.756164-4.29589 4.002989-3.626401 3.375342-3.054545L1.966625-1.75741C1.115816-.892653 .599751-.069738 .599751 .027895C.599751 .111582 .669489 .139477 .753176 .139477S.850809 .125529 .948443-.041843C1.171606-.390535 1.617933-.9066 2.133998-.9066C2.426899-.9066 2.566376-.808966 2.84533-.460274C3.110336-.153425 3.347447 .139477 3.793773 .139477C5.160648 .139477 5.941719-1.63188 5.941719-1.952677C5.941719-2.008468 5.927771-2.092154 5.788294-2.092154C5.676712-2.092154 5.662765-2.036364 5.620922-1.896887C5.314072-1.073973 4.491158-.739228 3.947198-.739228C3.654296-.739228 3.375342-.836862 3.082441-.962391C2.524533-1.185554 2.371108-1.185554 2.189788-1.185554C2.050311-1.185554 1.896887-1.185554 1.771357-1.129763Z'/>
+<path id='g2-43' d='M5.565131-3.221918H9.414695C9.609963-3.221918 9.861021-3.221918 9.861021-3.472976C9.861021-3.737983 9.62391-3.737983 9.414695-3.737983H5.565131V-7.587547C5.565131-7.782814 5.565131-8.033873 5.314072-8.033873C5.049066-8.033873 5.049066-7.796762 5.049066-7.587547V-3.737983H1.199502C1.004234-3.737983 .753176-3.737983 .753176-3.486924C.753176-3.221918 .990286-3.221918 1.199502-3.221918H5.049066V.627646C5.049066 .822914 5.049066 1.073973 5.300125 1.073973C5.565131 1.073973 5.565131 .836862 5.565131 .627646V-3.221918Z'/>
+<path id='g2-49' d='M4.016936-8.940473C4.016936-9.26127 4.016936-9.275218 3.737983-9.275218C3.403238-8.89863 2.705853-8.382565 1.26924-8.382565V-7.978082C1.590037-7.978082 2.287422-7.978082 3.054545-8.340722V-1.073973C3.054545-.571856 3.012702-.404483 1.785305-.404483H1.352927V0C1.729514-.027895 3.082441-.027895 3.542715-.027895S5.341968-.027895 5.718555 0V-.404483H5.286177C4.05878-.404483 4.016936-.571856 4.016936-1.073973V-8.940473Z'/>
+</defs>
+<g id='page1'>
+<use x='59.270442' y='62.786766' xlink:href='#g2-49'/>
+<rect x='58.804295' y='68.456606' height='.55789' width='7.760768'/>
+<use x='58.804295' y='81.789907' xlink:href='#g1-120'/>
+<use x='70.860038' y='72.222482' xlink:href='#g2-43'/>
+<use x='85.942577' y='62.786766' xlink:href='#g2-49'/>
+<rect x='85.777106' y='68.456606' height='.55789' width='7.159416'/>
+<use x='85.777106' y='81.789907' xlink:href='#g1-121'/>
+<rect x='57.608781' y='86.175621' height='.55789' width='36.523255'/>
+<use x='60.284264' y='99.508922' xlink:href='#g1-121'/>
+<use x='70.543155' y='99.508922' xlink:href='#g0-0'/>
+<use x='84.490862' y='99.508922' xlink:href='#g1-122'/>
+</g>
+</svg> \ No newline at end of file
diff --git a/_images/math/3b8127a8eed95247f9249ea6c85e8e86df1baa82.svg b/_images/math/3b8127a8eed95247f9249ea6c85e8e86df1baa82.svg
new file mode 100644
index 000000000..7c11c8b42
--- /dev/null
+++ b/_images/math/3b8127a8eed95247f9249ea6c85e8e86df1baa82.svg
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.8.1 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='23.092891pt' height='29.523663pt' viewBox='57.608781 53.79825 23.092891 29.523663'>
+<defs>
+<path id='g0-0' d='M6.434044-2.245569C6.600021-2.245569 6.775761-2.245569 6.775761-2.440836S6.600021-2.636103 6.434044-2.636103H1.152075C.986098-2.636103 .810358-2.636103 .810358-2.440836S.986098-2.245569 1.152075-2.245569H6.434044Z'/>
+<path id='g1-120' d='M3.260957-2.94853C3.319537-3.202377 3.544094-4.100605 4.227528-4.100605C4.276345-4.100605 4.510665-4.100605 4.715696-3.973681C4.442322-3.924865 4.247055-3.680781 4.247055-3.446461C4.247055-3.290247 4.354452-3.104744 4.618062-3.104744C4.832856-3.104744 5.145283-3.280484 5.145283-3.671018C5.145283-4.178712 4.569245-4.315398 4.237292-4.315398C3.671018-4.315398 3.329301-3.797941 3.21214-3.573384C2.968057-4.217765 2.440836-4.315398 2.157699-4.315398C1.142311-4.315398 .585801-3.055927 .585801-2.811843C.585801-2.71421 .683434-2.71421 .702961-2.71421C.781068-2.71421 .810358-2.733737 .829884-2.821607C1.161838-3.856521 1.806219-4.100605 2.138172-4.100605C2.323676-4.100605 2.665393-4.012735 2.665393-3.446461C2.665393-3.143797 2.499416-2.489653 2.138172-1.122785C1.981959-.517457 1.640242-.107397 1.210655-.107397C1.152075-.107397 .927518-.107397 .722488-.23432C.966571-.283137 1.181365-.488167 1.181365-.761541C1.181365-1.025151 .966571-1.103258 .820121-1.103258C.527221-1.103258 .283137-.849411 .283137-.536984C.283137-.08787 .771304 .107397 1.200891 .107397C1.845272 .107397 2.196753-.576037 2.226043-.634617C2.343203-.273374 2.694683 .107397 3.280484 .107397C4.286108 .107397 4.842619-1.152075 4.842619-1.396158C4.842619-1.493792 4.754749-1.493792 4.725459-1.493792C4.637589-1.493792 4.618062-1.454738 4.598535-1.386395C4.276345-.341717 3.612438-.107397 3.300011-.107397C2.91924-.107397 2.763027-.419824 2.763027-.751778C2.763027-.966571 2.821607-1.181365 2.929003-1.610952L3.260957-2.94853Z'/>
+<path id='g1-121' d='M4.744986-3.719834C4.784039-3.856521 4.784039-3.876048 4.784039-3.944391C4.784039-4.120131 4.647352-4.208002 4.500902-4.208002C4.403268-4.208002 4.247055-4.149422 4.159185-4.002971C4.139658-3.954155 4.061551-3.651491 4.022498-3.475751C3.954155-3.221904 3.885811-2.958293 3.827231-2.694683L3.387881-.937281C3.348827-.790831 2.929003-.107397 2.284623-.107397C1.786692-.107397 1.679295-.536984 1.679295-.898228C1.679295-1.347342 1.845272-1.952669 2.177226-2.811843C2.333439-3.21214 2.372493-3.319537 2.372493-3.514804C2.372493-3.954155 2.060066-4.315398 1.571899-4.315398C.644381-4.315398 .283137-2.899713 .283137-2.811843C.283137-2.71421 .38077-2.71421 .400297-2.71421C.497931-2.71421 .507694-2.733737 .556511-2.88995C.820121-3.807704 1.210655-4.100605 1.542608-4.100605C1.620715-4.100605 1.786692-4.100605 1.786692-3.788178C1.786692-3.544094 1.689059-3.290247 1.620715-3.104744C1.230181-2.069829 1.054441-1.513318 1.054441-1.054441C1.054441-.185504 1.669532 .107397 2.245569 .107397C2.62634 .107397 2.958293-.05858 3.231667-.331954C3.104744 .17574 2.987583 .654144 2.59705 1.171601C2.343203 1.503555 1.972196 1.786692 1.523082 1.786692C1.386395 1.786692 .947044 1.757402 .781068 1.376632C.937281 1.376632 1.064205 1.376632 1.200891 1.259471C1.298525 1.171601 1.396158 1.044678 1.396158 .859174C1.396158 .556511 1.132548 .517457 1.034915 .517457C.810358 .517457 .488167 .673671 .488167 1.152075C.488167 1.640242 .917754 2.001486 1.523082 2.001486C2.528706 2.001486 3.534331 1.113021 3.807704 .009763L4.744986-3.719834Z'/>
+<path id='g1-122' d='M1.298525-.810358C1.825745-1.376632 2.108882-1.620715 2.460363-1.923379C2.460363-1.933142 3.06569-2.4506 3.417171-2.80208C4.344688-3.710071 4.559482-4.178712 4.559482-4.217765C4.559482-4.315398 4.471612-4.315398 4.452085-4.315398C4.383742-4.315398 4.354452-4.295872 4.305635-4.208002C4.012735-3.739361 3.807704-3.583148 3.573384-3.583148S3.221904-3.729598 3.075454-3.895575C2.88995-4.120131 2.723973-4.315398 2.401783-4.315398C1.669532-4.315398 1.220418-3.407407 1.220418-3.202377C1.220418-3.15356 1.249708-3.09498 1.337578-3.09498S1.444975-3.143797 1.464502-3.202377C1.650005-3.651491 2.216279-3.661254 2.294386-3.661254C2.499416-3.661254 2.68492-3.592911 2.909477-3.514804C3.300011-3.368354 3.407407-3.368354 3.661254-3.368354C3.309774-2.94853 2.489653-2.245569 2.304149-2.089356L1.425448-1.269235C.761541-.615091 .419824-.05858 .419824 .009763C.419824 .107397 .517457 .107397 .536984 .107397C.615091 .107397 .634617 .08787 .693197-.019527C.917754-.361244 1.210655-.624854 1.523082-.624854C1.747639-.624854 1.845272-.536984 2.089356-.253847C2.255333-.048817 2.431073 .107397 2.71421 .107397C3.680781 .107397 4.247055-1.132548 4.247055-1.396158C4.247055-1.444975 4.208002-1.493792 4.129895-1.493792C4.042025-1.493792 4.022498-1.435212 3.993208-1.366868C3.768651-.732251 3.143797-.546747 2.821607-.546747C2.62634-.546747 2.4506-.605327 2.245569-.673671C1.913616-.800594 1.767165-.839648 1.562135-.839648C1.542608-.839648 1.386395-.839648 1.298525-.810358Z'/>
+<path id='g2-43' d='M3.993208-2.245569H6.717181C6.853868-2.245569 7.039372-2.245569 7.039372-2.440836S6.853868-2.636103 6.717181-2.636103H3.993208V-5.36984C3.993208-5.506526 3.993208-5.69203 3.797941-5.69203S3.602674-5.506526 3.602674-5.36984V-2.636103H.868938C.732251-2.636103 .546747-2.636103 .546747-2.440836S.732251-2.245569 .868938-2.245569H3.602674V.488167C3.602674 .624854 3.602674 .810358 3.797941 .810358S3.993208 .624854 3.993208 .488167V-2.245569Z'/>
+<path id='g2-49' d='M2.870423-6.248541C2.870423-6.482861 2.870423-6.502388 2.645866-6.502388C2.040539-5.877534 1.181365-5.877534 .868938-5.877534V-5.57487C1.064205-5.57487 1.640242-5.57487 2.147936-5.828717V-.771304C2.147936-.419824 2.118646-.302664 1.239945-.302664H.927518V0C1.269235-.02929 2.118646-.02929 2.50918-.02929S3.749124-.02929 4.090841 0V-.302664H3.778414C2.899713-.302664 2.870423-.41006 2.870423-.771304V-6.248541Z'/>
+</defs>
+<g id='page1'>
+<use x='59.153464' y='60.090183' xlink:href='#g2-49'/>
+<rect x='58.804295' y='61.81595' height='.55789' width='5.580027'/>
+<use x='58.804295' y='70.391549' xlink:href='#g1-120'/>
+<use x='65.579836' y='65.581827' xlink:href='#g2-43'/>
+<use x='74.496784' y='60.090183' xlink:href='#g2-49'/>
+<rect x='74.369089' y='61.81595' height='.55789' width='5.137078'/>
+<use x='74.369089' y='70.391549' xlink:href='#g1-121'/>
+<rect x='57.608781' y='72.847884' height='.55789' width='23.092891'/>
+<use x='60.304908' y='81.423483' xlink:href='#g1-121'/>
+<use x='65.441996' y='81.423483' xlink:href='#g0-0'/>
+<use x='73.035735' y='81.423483' xlink:href='#g1-122'/>
+</g>
+</svg> \ No newline at end of file
diff --git a/_images/math/6673b43f9fe29455c1fcd1164e5844698cc64d38.svg b/_images/math/6673b43f9fe29455c1fcd1164e5844698cc64d38.svg
new file mode 100644
index 000000000..8be77010f
--- /dev/null
+++ b/_images/math/6673b43f9fe29455c1fcd1164e5844698cc64d38.svg
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.8.1 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='69.686469pt' height='12.418845pt' viewBox='56.413267 54.399982 69.686469 12.418845'>
+<defs>
+<path id='g2-43' d='M5.565131-3.221918H9.414695C9.609963-3.221918 9.861021-3.221918 9.861021-3.472976C9.861021-3.737983 9.62391-3.737983 9.414695-3.737983H5.565131V-7.587547C5.565131-7.782814 5.565131-8.033873 5.314072-8.033873C5.049066-8.033873 5.049066-7.796762 5.049066-7.587547V-3.737983H1.199502C1.004234-3.737983 .753176-3.737983 .753176-3.486924C.753176-3.221918 .990286-3.221918 1.199502-3.221918H5.049066V.627646C5.049066 .822914 5.049066 1.073973 5.300125 1.073973C5.565131 1.073973 5.565131 .836862 5.565131 .627646V-3.221918Z'/>
+<path id='g2-61' d='M9.414695-4.519054C9.609963-4.519054 9.861021-4.519054 9.861021-4.770112C9.861021-5.035118 9.62391-5.035118 9.414695-5.035118H1.199502C1.004234-5.035118 .753176-5.035118 .753176-4.78406C.753176-4.519054 .990286-4.519054 1.199502-4.519054H9.414695ZM9.414695-1.924782C9.609963-1.924782 9.861021-1.924782 9.861021-2.175841C9.861021-2.440847 9.62391-2.440847 9.414695-2.440847H1.199502C1.004234-2.440847 .753176-2.440847 .753176-2.189788C.753176-1.924782 .990286-1.924782 1.199502-1.924782H9.414695Z'/>
+<path id='g1-50' d='M1.239945-.751778L2.274859-1.757402C3.797941-3.104744 4.383742-3.631964 4.383742-4.608299C4.383742-5.72132 3.505041-6.502388 2.313913-6.502388C1.210655-6.502388 .488167-5.60416 .488167-4.735222C.488167-4.188475 .976334-4.188475 1.005625-4.188475C1.171601-4.188475 1.513318-4.305635 1.513318-4.705932C1.513318-4.959779 1.337578-5.213626 .995861-5.213626C.917754-5.213626 .898228-5.213626 .868938-5.203863C1.093495-5.83848 1.620715-6.199724 2.186989-6.199724C3.075454-6.199724 3.495277-5.408893 3.495277-4.608299C3.495277-3.827231 3.00711-3.055927 2.470126-2.4506L.595564-.361244C.488167-.253847 .488167-.23432 .488167 0H4.110368L4.383742-1.698822H4.139658C4.090841-1.405922 4.022498-.976334 3.924865-.829884C3.856521-.751778 3.21214-.751778 2.997347-.751778H1.239945Z'/>
+<path id='g0-97' d='M4.198257-1.659776C4.128518-1.422665 4.128518-1.39477 3.93325-1.129763C3.626401-.739228 3.012702-.139477 2.357161-.139477C1.785305-.139477 1.464508-.655542 1.464508-1.478456C1.464508-2.245579 1.896887-3.807721 2.161893-4.393524C2.636115-5.369863 3.291656-5.87198 3.835616-5.87198C4.756164-5.87198 4.937484-4.728269 4.937484-4.616687C4.937484-4.60274 4.895641-4.42142 4.881694-4.393524L4.198257-1.659776ZM5.090909-5.230386C4.937484-5.593026 4.560897-6.150934 3.835616-6.150934C2.259527-6.150934 .557908-4.11457 .557908-2.050311C.557908-.669489 1.366874 .139477 2.315318 .139477C3.082441 .139477 3.737983-.460274 4.128518-.920548C4.267995-.097634 4.923537 .139477 5.341968 .139477S6.095143-.111582 6.346202-.613699C6.569365-1.08792 6.764633-1.93873 6.764633-1.994521C6.764633-2.064259 6.708842-2.12005 6.625156-2.12005C6.499626-2.12005 6.485679-2.050311 6.429888-1.841096C6.220672-1.018182 5.955666-.139477 5.383811-.139477C4.979328-.139477 4.951432-.502117 4.951432-.781071C4.951432-1.101868 4.993275-1.255293 5.118804-1.799253C5.216438-2.147945 5.286177-2.454795 5.397758-2.859278C5.913823-4.951432 6.039352-5.453549 6.039352-5.537235C6.039352-5.732503 5.885928-5.885928 5.676712-5.885928C5.230386-5.885928 5.118804-5.397758 5.090909-5.230386Z'/>
+<path id='g0-98' d='M3.221918-9.331009C3.235866-9.3868 3.263761-9.470486 3.263761-9.540224C3.263761-9.679701 3.124284-9.679701 3.096389-9.679701C3.082441-9.679701 2.580324-9.637858 2.329265-9.609963C2.092154-9.596015 1.882939-9.56812 1.63188-9.554172C1.297136-9.526276 1.199502-9.512329 1.199502-9.26127C1.199502-9.121793 1.338979-9.121793 1.478456-9.121793C2.189788-9.121793 2.189788-8.996264 2.189788-8.856787C2.189788-8.759153 2.078207-8.35467 2.022416-8.103611L1.687671-6.764633C1.548194-6.206725 .753176-3.040598 .697385-2.789539C.627646-2.440847 .627646-2.203736 .627646-2.022416C.627646-.599751 1.422665 .139477 2.329265 .139477C3.947198 .139477 5.620922-1.93873 5.620922-3.961146C5.620922-5.244334 4.895641-6.150934 3.849564-6.150934C3.124284-6.150934 2.468742-5.551183 2.203736-5.272229L3.221918-9.331009ZM2.343213-.139477C1.896887-.139477 1.408717-.474222 1.408717-1.562142C1.408717-2.022416 1.45056-2.287422 1.701619-3.263761C1.743462-3.445081 1.966625-4.337733 2.022416-4.519054C2.050311-4.630635 2.873225-5.87198 3.821669-5.87198C4.435367-5.87198 4.714321-5.258281 4.714321-4.533001C4.714321-3.863512 4.323786-2.287422 3.975093-1.562142C3.626401-.808966 2.984807-.139477 2.343213-.139477Z'/>
+<path id='g0-99' d='M5.453549-5.244334C5.188543-5.244334 5.063014-5.244334 4.867746-5.076961C4.78406-5.007223 4.630635-4.798007 4.630635-4.574844C4.630635-4.29589 4.839851-4.128518 5.104857-4.128518C5.439601-4.128518 5.816189-4.407472 5.816189-4.96538C5.816189-5.634869 5.174595-6.150934 4.212204-6.150934C2.385056-6.150934 .557908-4.156413 .557908-2.175841C.557908-.962391 1.311083 .139477 2.733748 .139477C4.630635 .139477 5.830137-1.338979 5.830137-1.520299C5.830137-1.603985 5.746451-1.673724 5.69066-1.673724C5.648817-1.673724 5.634869-1.659776 5.50934-1.534247C4.616687-.348692 3.291656-.139477 2.761644-.139477C1.799253-.139477 1.492403-.976339 1.492403-1.673724C1.492403-2.161893 1.729514-3.514819 2.231631-4.463263C2.594271-5.118804 3.347447-5.87198 4.226152-5.87198C4.407472-5.87198 5.174595-5.844085 5.453549-5.244334Z'/>
+</defs>
+<g id='page1'>
+<use x='56.413267' y='65.753425' xlink:href='#g0-97'/>
+<use x='63.582369' y='60.691915' xlink:href='#g1-50'/>
+<use x='72.061649' y='65.753425' xlink:href='#g2-43'/>
+<use x='85.783204' y='65.753425' xlink:href='#g0-98'/>
+<use x='91.589827' y='60.691915' xlink:href='#g1-50'/>
+<use x='100.843973' y='65.753425' xlink:href='#g2-61'/>
+<use x='115.340392' y='65.753425' xlink:href='#g0-99'/>
+<use x='121.218045' y='60.691915' xlink:href='#g1-50'/>
+</g>
+</svg> \ No newline at end of file
diff --git a/_images/math/a6a994cb6e7278ec30eaebe7e636046d3deccb5b.svg b/_images/math/a6a994cb6e7278ec30eaebe7e636046d3deccb5b.svg
new file mode 100644
index 000000000..27ae39410
--- /dev/null
+++ b/_images/math/a6a994cb6e7278ec30eaebe7e636046d3deccb5b.svg
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.8.1 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='134.289458pt' height='28.68903pt' viewBox='165.981071 78.308016 134.289458 28.68903'>
+<defs>
+<path id='g1-105' d='M3.807721-3.249813C3.87746-3.417186 3.87746-3.445081 3.87746-3.486924S3.87746-3.556663 3.807721-3.724035L1.366874-10.139975C1.283188-10.377086 1.199502-10.460772 1.046077-10.460772S.767123-10.335243 .767123-10.181818C.767123-10.139975 .767123-10.11208 .836862-9.958655L3.305604-3.486924L.836862 2.956912C.767123 3.110336 .767123 3.138232 .767123 3.20797C.767123 3.361395 .892653 3.486924 1.046077 3.486924C1.227397 3.486924 1.283188 3.347447 1.338979 3.20797L3.807721-3.249813Z'/>
+<path id='g1-106' d='M2.217684-9.958655C2.217684-10.209714 2.217684-10.460772 1.93873-10.460772S1.659776-10.209714 1.659776-9.958655V2.984807C1.659776 3.235866 1.659776 3.486924 1.93873 3.486924S2.217684 3.235866 2.217684 2.984807V-9.958655Z'/>
+<path id='g2-32' d='M6.555417-9.344956C6.555417-9.358904 6.611208-9.540224 6.611208-9.554172C6.611208-9.679701 6.499626-9.679701 6.457783-9.679701C6.332254-9.679701 6.318306-9.609963 6.262516-9.400747L3.961146-.167372C2.803487-.306849 2.371108-.892653 2.371108-1.729514C2.371108-2.036364 2.371108-2.357161 3.02665-4.086675C3.20797-4.588792 3.277709-4.770112 3.277709-5.021171C3.277709-5.648817 2.831382-6.150934 2.175841-6.150934C.892653-6.150934 .376588-4.128518 .376588-4.016936C.376588-3.961146 .432379-3.891407 .530012-3.891407C.655542-3.891407 .669489-3.947198 .72528-4.142466C1.060025-5.355915 1.617933-5.87198 2.133998-5.87198C2.259527-5.87198 2.496638-5.858032 2.496638-5.411706C2.496638-5.355915 2.496638-5.049066 2.259527-4.435367C1.506351-2.454795 1.506351-2.147945 1.506351-1.827148C1.506351-.488169 2.622167 .027895 3.87746 .125529C3.765878 .557908 3.668244 1.004234 3.556663 1.436613C3.333499 2.273474 3.235866 2.66401 3.235866 2.719801C3.235866 2.84533 3.347447 2.84533 3.38929 2.84533C3.417186 2.84533 3.472976 2.84533 3.500872 2.789539C3.556663 2.733748 4.128518 .390535 4.184309 .139477C4.700374 .139477 5.802242 .139477 7.057534-1.157659C7.517808-1.659776 7.936239-2.30137 8.17335-2.901121C8.312827-3.263761 8.647572-4.505106 8.647572-5.216438C8.647572-6.0533 8.229141-6.150934 8.089664-6.150934C7.754919-6.150934 7.44807-5.816189 7.44807-5.537235C7.44807-5.369863 7.545704-5.272229 7.601494-5.216438C7.727024-5.090909 8.103611-4.714321 8.103611-3.989041C8.103611-3.486924 7.824658-2.454795 6.932005-1.45056C5.760399-.139477 4.686426-.139477 4.267995-.139477L6.555417-9.344956Z'/>
+<path id='g2-58' d='M2.566376-.669489C2.566376-1.073973 2.231631-1.352927 1.896887-1.352927C1.492403-1.352927 1.21345-1.018182 1.21345-.683437C1.21345-.278954 1.548194 0 1.882939 0C2.287422 0 2.566376-.334745 2.566376-.669489Z'/>
+<path id='g2-64' d='M6.332254-4.658531C6.248568-5.439601 5.760399-6.374097 4.505106-6.374097C2.538481-6.374097 .530012-4.379577 .530012-2.161893C.530012-1.311083 1.115816 .292902 3.012702 .292902C6.304359 .292902 7.713076-4.505106 7.713076-6.41594C7.713076-8.424408 6.583313-9.972603 4.798007-9.972603C2.775592-9.972603 2.175841-8.201245 2.175841-7.824658C2.175841-7.699128 2.259527-7.392279 2.650062-7.392279C3.138232-7.392279 3.347447-7.838605 3.347447-8.075716C3.347447-8.508095 2.915068-8.508095 2.733748-8.508095C3.305604-9.540224 4.365629-9.637858 4.742217-9.637858C5.969614-9.637858 6.750685-8.661519 6.750685-7.099377C6.750685-6.206725 6.485679-5.174595 6.346202-4.658531H6.332254ZM3.054545-.083686C1.743462-.083686 1.520299-1.115816 1.520299-1.701619C1.520299-2.315318 1.910834-3.75193 2.12005-4.267995C2.30137-4.686426 3.096389-6.095143 4.546949-6.095143C5.816189-6.095143 6.109091-4.993275 6.109091-4.2401C6.109091-3.20797 5.202491-.083686 3.054545-.083686Z'/>
+<path id='g2-72' d='M10.432877-8.508095C10.558406-8.982316 10.586301-9.121793 11.576588-9.121793C11.827646-9.121793 11.967123-9.121793 11.967123-9.372852C11.967123-9.526276 11.841594-9.526276 11.757908-9.526276C11.506849-9.526276 11.213948-9.498381 10.948941-9.498381H9.303113C9.038107-9.498381 8.745205-9.526276 8.480199-9.526276C8.382565-9.526276 8.215193-9.526276 8.215193-9.26127C8.215193-9.121793 8.312827-9.121793 8.577833-9.121793C9.414695-9.121793 9.414695-9.010212 9.414695-8.856787C9.414695-8.828892 9.414695-8.745205 9.358904-8.53599L8.508095-5.160648H4.29589L5.132752-8.508095C5.258281-8.982316 5.286177-9.121793 6.276463-9.121793C6.527522-9.121793 6.666999-9.121793 6.666999-9.372852C6.666999-9.526276 6.541469-9.526276 6.457783-9.526276C6.206725-9.526276 5.913823-9.498381 5.648817-9.498381H4.002989C3.737983-9.498381 3.445081-9.526276 3.180075-9.526276C3.082441-9.526276 2.915068-9.526276 2.915068-9.26127C2.915068-9.121793 3.012702-9.121793 3.277709-9.121793C4.11457-9.121793 4.11457-9.010212 4.11457-8.856787C4.11457-8.828892 4.11457-8.745205 4.05878-8.53599L2.175841-1.03213C2.050311-.54396 2.022416-.404483 1.060025-.404483C.739228-.404483 .641594-.404483 .641594-.139477C.641594 0 .795019 0 .836862 0C1.08792 0 1.380822-.027895 1.645828-.027895H3.291656C3.556663-.027895 3.849564 0 4.11457 0C4.226152 0 4.379577 0 4.379577-.265006C4.379577-.404483 4.254047-.404483 4.044832-.404483C3.194022-.404483 3.194022-.516065 3.194022-.655542C3.194022-.669489 3.194022-.767123 3.221918-.878705L4.184309-4.756164H8.410461C8.17335-3.835616 7.462017-.920548 7.434122-.836862C7.280697-.418431 7.057534-.418431 6.23462-.404483C6.067248-.404483 5.941719-.404483 5.941719-.139477C5.941719 0 6.095143 0 6.136986 0C6.388045 0 6.680946-.027895 6.945953-.027895H8.591781C8.856787-.027895 9.149689 0 9.414695 0C9.526276 0 9.679701 0 9.679701-.265006C9.679701-.404483 9.554172-.404483 9.344956-.404483C8.494147-.404483 8.494147-.516065 8.494147-.655542C8.494147-.669489 8.494147-.767123 8.522042-.878705L10.432877-8.508095Z'/>
+<path id='g2-116' d='M2.803487-5.606974H4.086675C4.351681-5.606974 4.491158-5.606974 4.491158-5.858032C4.491158-6.011457 4.407472-6.011457 4.128518-6.011457H2.901121L3.417186-8.047821C3.472976-8.243088 3.472976-8.270984 3.472976-8.368618C3.472976-8.591781 3.291656-8.71731 3.110336-8.71731C2.998755-8.71731 2.677958-8.675467 2.566376-8.229141L2.022416-6.011457H.711333C.432379-6.011457 .306849-6.011457 .306849-5.746451C.306849-5.606974 .404483-5.606974 .669489-5.606974H1.910834L.990286-1.924782C.878705-1.436613 .836862-1.297136 .836862-1.115816C.836862-.460274 1.297136 .139477 2.078207 .139477C3.486924 .139477 4.2401-1.896887 4.2401-1.994521C4.2401-2.078207 4.184309-2.12005 4.100623-2.12005C4.072727-2.12005 4.016936-2.12005 3.989041-2.064259C3.975093-2.050311 3.961146-2.036364 3.863512-1.8132C3.57061-1.115816 2.929016-.139477 2.12005-.139477C1.701619-.139477 1.673724-.488169 1.673724-.795019C1.673724-.808966 1.673724-1.073973 1.715567-1.241345L2.803487-5.606974Z'/>
+<path id='g0-126' d='M3.556663-7.671233H6.262516C6.499626-7.671233 6.653051-7.671233 6.653051-7.838605C6.653051-8.019925 6.485679-8.019925 6.220672-8.019925H3.640349C3.737983-8.368618 3.737983-8.396513 3.821669-8.745205C3.891407-8.996264 4.016936-9.484433 4.016936-9.512329C4.016936-9.637858 3.93325-9.679701 3.821669-9.679701C3.556663-9.679701 2.454795-9.56812 2.12005-9.540224C2.008468-9.526276 1.855044-9.512329 1.855044-9.247323C1.855044-9.093898 1.994521-9.093898 2.189788-9.093898C2.859278-9.093898 2.887173-8.996264 2.887173-8.856787C2.887173-8.759153 2.761644-8.298879 2.691905-8.019925H1.910834C1.63188-8.019925 1.478456-8.019925 1.478456-7.838605C1.478456-7.671233 1.603985-7.671233 1.868991-7.671233H2.608219L.822914-.557908C.767123-.348692 .767123-.320797 .767123-.237111C.767123 .069738 1.004234 .153425 1.171606 .153425C1.436613 .153425 1.63188-.041843 1.687671-.223163C1.715567-.292902 1.868991-.920548 1.952677-1.26924L2.273474-2.510585C2.315318-2.719801 2.454795-3.249813 2.496638-3.459029C2.566376-3.682192 2.66401-4.11457 2.677958-4.156413C2.789539-4.393524 3.542715-5.858032 4.937484-5.858032C5.551183-5.858032 5.69066-5.355915 5.69066-4.895641C5.69066-4.030884 5.049066-2.329265 4.798007-1.687671C4.714321-1.464508 4.644583-1.26924 4.644583-1.004234C4.644583-.278954 5.160648 .153425 5.788294 .153425C7.127273 .153425 7.615442-1.910834 7.615442-1.994521C7.615442-2.133998 7.489913-2.133998 7.44807-2.133998C7.308593-2.133998 7.308593-2.092154 7.238854-1.882939C6.834371-.460274 6.206725-.153425 5.830137-.153425C5.565131-.153425 5.481445-.320797 5.481445-.613699C5.481445-.962391 5.634869-1.352927 5.718555-1.590037C5.955666-2.203736 6.583313-3.87746 6.583313-4.658531C6.583313-5.676712 5.941719-6.164882 4.979328-6.164882C4.546949-6.164882 3.710087-6.067248 2.915068-5.104857L3.556663-7.671233Z'/>
+<path id='g3-40' d='M4.533001 3.38929C4.533001 3.347447 4.533001 3.319552 4.29589 3.082441C2.901121 1.673724 2.12005-.627646 2.12005-3.472976C2.12005-6.178829 2.775592-8.508095 4.393524-10.153923C4.533001-10.279452 4.533001-10.307347 4.533001-10.349191C4.533001-10.432877 4.463263-10.460772 4.407472-10.460772C4.226152-10.460772 3.082441-9.456538 2.399004-8.089664C1.687671-6.680946 1.366874-5.188543 1.366874-3.472976C1.366874-2.231631 1.562142-.571856 2.287422 .920548C3.110336 2.594271 4.254047 3.500872 4.407472 3.500872C4.463263 3.500872 4.533001 3.472976 4.533001 3.38929Z'/>
+<path id='g3-41' d='M3.93325-3.472976C3.93325-4.533001 3.793773-6.262516 3.012702-7.880448C2.189788-9.554172 1.046077-10.460772 .892653-10.460772C.836862-10.460772 .767123-10.432877 .767123-10.349191C.767123-10.307347 .767123-10.279452 1.004234-10.042341C2.399004-8.633624 3.180075-6.332254 3.180075-3.486924C3.180075-.781071 2.524533 1.548194 .9066 3.194022C.767123 3.319552 .767123 3.347447 .767123 3.38929C.767123 3.472976 .836862 3.500872 .892653 3.500872C1.073973 3.500872 2.217684 2.496638 2.901121 1.129763C3.612453-.292902 3.93325-1.799253 3.93325-3.472976Z'/>
+<path id='g3-61' d='M9.414695-4.519054C9.609963-4.519054 9.861021-4.519054 9.861021-4.770112C9.861021-5.035118 9.62391-5.035118 9.414695-5.035118H1.199502C1.004234-5.035118 .753176-5.035118 .753176-4.78406C.753176-4.519054 .990286-4.519054 1.199502-4.519054H9.414695ZM9.414695-1.924782C9.609963-1.924782 9.861021-1.924782 9.861021-2.175841C9.861021-2.440847 9.62391-2.440847 9.414695-2.440847H1.199502C1.004234-2.440847 .753176-2.440847 .753176-2.189788C.753176-1.924782 .990286-1.924782 1.199502-1.924782H9.414695Z'/>
+<path id='g3-94' d='M3.417186-9.679701L1.590037-7.782814L1.8132-7.573599L3.403238-9.010212L5.007223-7.573599L5.230386-7.782814L3.417186-9.679701Z'/>
+<path id='g3-105' d='M2.426899-8.591781C2.426899-8.954421 2.133998-9.275218 1.743462-9.275218C1.380822-9.275218 1.073973-8.982316 1.073973-8.605729C1.073973-8.187298 1.408717-7.922291 1.743462-7.922291C2.175841-7.922291 2.426899-8.284932 2.426899-8.591781ZM.502117-5.997509V-5.593026C1.39477-5.593026 1.520299-5.50934 1.520299-4.825903V-1.03213C1.520299-.404483 1.366874-.404483 .460274-.404483V0C.850809-.027895 1.520299-.027895 1.924782-.027895C2.078207-.027895 2.887173-.027895 3.361395 0V-.404483C2.454795-.404483 2.399004-.474222 2.399004-1.018182V-6.150934L.502117-5.997509Z'/>
+</defs>
+<g id='page1'>
+<use x='165.981071' y='97.429622' xlink:href='#g3-105'/>
+<use x='169.774676' y='97.429622' xlink:href='#g0-126'/>
+<use x='180.971707' y='87.993906' xlink:href='#g2-64'/>
+<rect x='178.505856' y='93.663745' height='.55789' width='12.899852'/>
+<use x='178.505856' y='106.997046' xlink:href='#g2-64'/>
+<use x='186.474036' y='106.997046' xlink:href='#g2-116'/>
+<use x='192.601222' y='97.429622' xlink:href='#g1-106'/>
+<use x='198.80019' y='97.429622' xlink:href='#g2-32'/>
+<use x='208.179277' y='97.429622' xlink:href='#g3-40'/>
+<use x='213.490324' y='97.429622' xlink:href='#g2-116'/>
+<use x='218.42201' y='97.429622' xlink:href='#g3-41'/>
+<use x='223.733057' y='97.429622' xlink:href='#g1-105'/>
+<use x='233.031506' y='97.429622' xlink:href='#g3-61'/>
+<use x='251.068923' y='93.903964' xlink:href='#g3-94'/>
+<use x='247.527926' y='97.429622' xlink:href='#g2-72'/>
+<use x='259.920966' y='97.429622' xlink:href='#g1-106'/>
+<use x='266.119934' y='97.429622' xlink:href='#g2-32'/>
+<use x='275.499021' y='97.429622' xlink:href='#g3-40'/>
+<use x='280.810068' y='97.429622' xlink:href='#g2-116'/>
+<use x='285.741754' y='97.429622' xlink:href='#g3-41'/>
+<use x='291.052801' y='97.429622' xlink:href='#g1-105'/>
+<use x='296.476924' y='97.429622' xlink:href='#g2-58'/>
+</g>
+</svg> \ No newline at end of file
diff --git a/_images/svg_image.svg b/_images/svg_image.svg
new file mode 100644
index 000000000..5405f85b8
--- /dev/null
+++ b/_images/svg_image.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- originate: https://commons.wikimedia.org/wiki/File:Variable_Resistor.svg -->
+<svg xmlns="http://www.w3.org/2000/svg"
+ version="1.1" baseProfile="full"
+ width="70px" height="40px" viewBox="0 0 700 400">
+ <line x1="0" y1="200" x2="700" y2="200" stroke="black" stroke-width="20px"/>
+ <rect x="100" y="100" width="500" height="200" fill="white" stroke="black" stroke-width="20px"/>
+ <line x1="180" y1="370" x2="500" y2="50" stroke="black" stroke-width="15px"/>
+ <polygon points="585 0 525 25 585 50" transform="rotate(135 525 25)"/>
+</svg>
diff --git a/_images/translation.svg b/_images/translation.svg
new file mode 100644
index 000000000..71f4172b5
--- /dev/null
+++ b/_images/translation.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="999px" preserveAspectRatio="none" style="width:1018px;height:999px;background:#FFFFFF;" version="1.1" viewBox="0 0 1018 999" width="1018px" zoomAndPan="magnify"><defs><filter height="300%" id="flwgy9xrajsm" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#flwgy9xrajsm)" height="351.8594" style="stroke:#000000;stroke-width:2.0;" width="991" x="10" y="116.7266"/><rect fill="#FFFFFF" filter="url(#flwgy9xrajsm)" height="320.7266" style="stroke:#000000;stroke-width:2.0;" width="971" x="20" y="140.8594"/><rect fill="#FFFFFF" filter="url(#flwgy9xrajsm)" height="245.3281" style="stroke:#000000;stroke-width:2.0;" width="555" x="426" y="209.2578"/><rect fill="#FFFFFF" filter="url(#flwgy9xrajsm)" height="324.7266" style="stroke:#000000;stroke-width:2.0;" width="848" x="143" y="525.7188"/><rect fill="#FFFFFF" filter="url(#flwgy9xrajsm)" height="245.3281" style="stroke:#000000;stroke-width:2.0;" width="828" x="153" y="549.8516"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="91" x2="91" y1="56.5938" y2="939.7109"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="270" x2="270" y1="56.5938" y2="939.7109"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="514" x2="514" y1="56.5938" y2="939.7109"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="738" x2="738" y1="56.5938" y2="939.7109"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:5.0,5.0;" x1="899" x2="899" y1="56.5938" y2="939.7109"/><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="119" x="30" y="21.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="37" y="41.292">master branch</text><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="119" x="30" y="938.7109"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105" x="37" y="958.7061">master branch</text><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="211" x="163" y="21.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="197" x="170" y="41.292">translations_update branch</text><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="211" x="163" y="938.7109"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="197" x="170" y="958.7061">translations_update branch</text><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="153" x="436" y="21.2969"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="139" x="443" y="41.292">translations branch</text><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="30.2969" style="stroke:#A80036;stroke-width:1.5;" width="153" x="436" y="938.7109"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="139" x="443" y="958.7061">translations branch</text><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="46.5938" style="stroke:#A80036;stroke-width:1.5;" width="153" x="660" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="676.5" y="24.9951">weblate clone of</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="139" x="667" y="41.292">translations branch</text><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="46.5938" style="stroke:#A80036;stroke-width:1.5;" width="153" x="660" y="938.7109"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="676.5" y="958.7061">weblate clone of</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="139" x="667" y="975.0029">translations branch</text><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="46.5938" style="stroke:#A80036;stroke-width:1.5;" width="140" x="827" y="5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="58" x="868" y="24.9951">weblate</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="122" x="834" y="41.292">pending changes</text><rect fill="#FEFECE" filter="url(#flwgy9xrajsm)" height="46.5938" style="stroke:#A80036;stroke-width:1.5;" width="140" x="827" y="938.7109"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="58" x="868" y="958.7061">weblate</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="122" x="834" y="975.0029">pending changes</text><rect fill="#EEEEEE" filter="url(#flwgy9xrajsm)" height="3" style="stroke:#EEEEEE;stroke-width:1.0;" width="1011" x="0" y="87.1602"/><line style="stroke:#000000;stroke-width:1.0;" x1="0" x2="1011" y1="87.1602" y2="87.1602"/><line style="stroke:#000000;stroke-width:1.0;" x1="0" x2="1011" y1="90.1602" y2="90.1602"/><rect fill="#EEEEEE" filter="url(#flwgy9xrajsm)" height="23.1328" style="stroke:#000000;stroke-width:2.0;" width="230" x="390.5" y="76.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="211" x="396.5" y="92.6606">for each commit on master</text><path d="M10,116.7266 L314,116.7266 L314,123.7266 L304,133.7266 L10,133.7266 L10,116.7266 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="351.8594" style="stroke:#000000;stroke-width:2.0;" width="991" x="10" y="116.7266"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="259" x="25" y="129.7935">.github/workflows/integration.yml</text><path d="M20,140.8594 L309,140.8594 L309,147.8594 L299,157.8594 L20,157.8594 L20,140.8594 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="320.7266" style="stroke:#000000;stroke-width:2.0;" width="971" x="20" y="140.8594"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="244" x="35" y="153.9263">make weblate.push.translations</text><polygon fill="#A80036" points="502.5,190.2578,512.5,194.2578,502.5,198.2578,506.5,194.2578" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="91.5" x2="508.5" y1="194.2578" y2="194.2578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="101" x="98.5" y="174.0591">pybabel extract</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="399" x="98.5" y="189.1919">extract messages, store messages.pot on translations branch</text><path d="M426,209.2578 L492,209.2578 L492,216.2578 L482,226.2578 L426,226.2578 L426,209.2578 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="245.3281" style="stroke:#000000;stroke-width:2.0;" width="555" x="426" y="209.2578"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="21" x="441" y="222.3247">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacing" textLength="299" x="507" y="221.4683">[if there are some changes in messages.pot]</text><polygon fill="#FBFB77" filter="url(#flwgy9xrajsm)" points="711,231.3906,765,231.3906,775,242.3906,765,254.3906,711,254.3906,701,242.3906,711,231.3906" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="50" x="713" y="247.4575">wlc lock</text><polygon fill="#A80036" points="726.5,276.6563,736.5,280.6563,726.5,284.6563,730.5,280.6563" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="514.5" x2="732.5" y1="280.6563" y2="280.6563"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="47" x="521.5" y="275.5903">wlc pull</text><polygon fill="#A80036" points="749.5,305.7891,739.5,309.7891,749.5,313.7891,745.5,309.7891" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="743.5" x2="898" y1="309.7891" y2="309.7891"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="74" x="755.5" y="304.7231">wlc commit</text><polygon fill="#A80036" points="525.5,334.9219,515.5,338.9219,525.5,342.9219,521.5,338.9219" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="519.5" x2="737.5" y1="338.9219" y2="338.9219"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="196" x="531.5" y="333.856">git merge weblate/translations</text><polygon fill="#A80036" points="726.5,409.4531,736.5,413.4531,726.5,417.4531,730.5,413.4531" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="514.5" x2="732.5" y1="413.4531" y2="413.4531"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="200" x="521.5" y="362.9888">pybabel update (messages.po)</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="163" x="521.5" y="378.1216">git add searx/translations</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="69" x="521.5" y="393.2544">git commit</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="51" x="521.5" y="408.3872">git push</text><polygon fill="#FBFB77" filter="url(#flwgy9xrajsm)" points="703,426.4531,773,426.4531,783,437.4531,773,449.4531,703,449.4531,693,437.4531,703,426.4531" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="66" x="705" y="442.52">wlc unlock</text><rect fill="#EEEEEE" filter="url(#flwgy9xrajsm)" height="3" style="stroke:#EEEEEE;stroke-width:1.0;" width="1011" x="0" y="496.1523"/><line style="stroke:#000000;stroke-width:1.0;" x1="0" x2="1011" y1="496.1523" y2="496.1523"/><line style="stroke:#000000;stroke-width:1.0;" x1="0" x2="1011" y1="499.1523" y2="499.1523"/><rect fill="#EEEEEE" filter="url(#flwgy9xrajsm)" height="23.1328" style="stroke:#000000;stroke-width:2.0;" width="111" x="450" y="485.5859"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="92" x="456" y="501.6528">every Friday</text><path d="M143,525.7188 L513,525.7188 L513,532.7188 L503,542.7188 L143,542.7188 L143,525.7188 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="324.7266" style="stroke:#000000;stroke-width:2.0;" width="848" x="143" y="525.7188"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="325" x="158" y="538.7856">.github/workflows/translations-update.yml</text><path d="M153,549.8516 L465,549.8516 L465,556.8516 L455,566.8516 L153,566.8516 L153,549.8516 " fill="#EEEEEE" style="stroke:#000000;stroke-width:1.0;"/><rect fill="none" height="245.3281" style="stroke:#000000;stroke-width:2.0;" width="828" x="153" y="549.8516"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="267" x="168" y="562.9185">make weblate.translations.commit</text><polygon fill="#FBFB77" filter="url(#flwgy9xrajsm)" points="711,571.9844,765,571.9844,775,582.9844,765,594.9844,711,594.9844,701,582.9844,711,571.9844" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="50" x="713" y="588.0513">wlc lock</text><polygon fill="#A80036" points="726.5,617.25,736.5,621.25,726.5,625.25,730.5,621.25" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="514.5" x2="732.5" y1="621.25" y2="621.25"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="47" x="521.5" y="616.1841">wlc pull</text><polygon fill="#A80036" points="749.5,646.3828,739.5,650.3828,749.5,654.3828,745.5,650.3828" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="743.5" x2="898" y1="650.3828" y2="650.3828"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="74" x="755.5" y="645.3169">wlc commit</text><polygon fill="#A80036" points="525.5,675.5156,515.5,679.5156,525.5,683.5156,521.5,679.5156" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="519.5" x2="737.5" y1="679.5156" y2="679.5156"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="196" x="531.5" y="674.4497">git merge weblate/translations</text><polygon fill="#A80036" points="281.5,750.0469,271.5,754.0469,281.5,758.0469,277.5,754.0469" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="275.5" x2="513.5" y1="754.0469" y2="754.0469"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="105" x="287.5" y="703.5825">pybabel compile</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="134" x="287.5" y="718.7153">cp searx/translations</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="44" x="287.5" y="733.8481">git add</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="69" x="287.5" y="748.981">git commit</text><polygon fill="#FBFB77" filter="url(#flwgy9xrajsm)" points="703,767.0469,773,767.0469,783,778.0469,773,790.0469,703,790.0469,693,778.0469,703,767.0469" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="66" x="705" y="783.1138">wlc unlock</text><polygon fill="#FBFB77" filter="url(#flwgy9xrajsm)" points="175,807.1797,365,807.1797,375,826.1797,365,845.1797,175,845.1797,165,826.1797,175,807.1797" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="186" x="177" y="823.2466">create or update pull request</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="135" x="177" y="838.3794">"Update translations"</text><rect fill="#EEEEEE" filter="url(#flwgy9xrajsm)" height="3" style="stroke:#EEEEEE;stroke-width:1.0;" width="1011" x="0" y="878.0117"/><line style="stroke:#000000;stroke-width:1.0;" x1="0" x2="1011" y1="878.0117" y2="878.0117"/><line style="stroke:#000000;stroke-width:1.0;" x1="0" x2="1011" y1="881.0117" y2="881.0117"/><rect fill="#EEEEEE" filter="url(#flwgy9xrajsm)" height="23.1328" style="stroke:#000000;stroke-width:2.0;" width="168" x="421.5" y="867.4453"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="149" x="427.5" y="883.5122">developper's review</text><polygon fill="#A80036" points="102.5,917.7109,92.5,921.7109,102.5,925.7109,98.5,921.7109" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="96.5" x2="269.5" y1="921.7109" y2="921.7109"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="121" x="108.5" y="916.645">merge pull request</text><!--MD5=[5c6c15370b11f873d07f34ae239ca6ad]
+@startuml
+participant "master branch" as master
+participant "translations_update branch" as translations_update
+participant "translations branch" as translations
+participant "weblate clone of\ntranslations branch" as weblate
+participant "weblate\npending changes " as weblate_change
+
+== for each commit on master ==
+
+group .github/workflows/integration.yml
+ group make weblate.push.translations
+ master -> translations: pybabel extract\nextract messages, store messages.pot on translations branch
+ alt if there are some changes in messages.pot
+ hnote over weblate : wlc lock
+ translations -> weblate: wlc pull
+ weblate_change -> weblate: wlc commit
+ weblate -> translations: git merge weblate/translations
+ translations -> weblate: pybabel update (messages.po)\ngit add searx/translations\ngit commit\ngit push
+ hnote over weblate : wlc unlock
+ end
+ end
+end
+
+== every Friday ==
+
+group .github/workflows/translations-update.yml
+ group make weblate.translations.commit
+ hnote over weblate : wlc lock
+ translations -> weblate: wlc pull
+ weblate_change -> weblate: wlc commit
+ weblate -> translations: git merge weblate/translations
+ translations -> translations_update: pybabel compile\ncp searx/translations\ngit add\ngit commit
+ hnote over weblate : wlc unlock
+ end
+ hnote over translations_update : create or update pull request\n"Update translations"
+end
+
+== developper's review ==
+
+translations_update -> master: merge pull request
+@enduml
+
+See
+https://plantuml.com/en/sequence-diagram
+https://www.planttext.com
+--></g></svg> \ No newline at end of file