This commit is contained in:
Boris Marinov 2021-11-08 18:19:26 +02:00
parent ad17b40730
commit 0612471f09
10 changed files with 3222 additions and 206 deletions

View File

@ -75,13 +75,14 @@ We will encounter the empty set again.
Functions
===
A function is a relationship between two sets which matches each element of one set, called the *source set* of the function, with exactly one element from another set, called the **target set** of the function.
Some alternative way to call these two sets: *domain* and *codomain*, *source* and *target*. In programming) *argument* and *return value*. In logic they correspond to *premises* and *conclusion*, but it is all the same thing.
> By function I mean the unity of the act of arranging various representations under one common representation.
> Immanuel Kant, from Critique of Pure Reason
A function is a relationship between two sets that matches each element of one set, called the *source set* of the function, with exactly one element from another set, called the **target set** of the function.
Some alternative way to call these two sets: *domain* and *codomain*, *input* and *output*. In programming we might call them *argument* and *return value*. In logic - *premise* and *conclusion* (we will get there.)
Here is a function, **f** which maps each ball from the set **R** to the ball with the opposite colour in another set **G** (in mathematics a function's name is often accompanied by the names of its source and target sets, like this: **f: R → G**)
![Opposite colors](function_one_one.svg)

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:ns="&amp;#38;#38;ns_ai;"
xmlns:ns1="&amp;#38;#38;#38;ns_ai;"
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#"
@ -13,7 +13,7 @@
version="1.1"
id="svg2850"
sodipodi:docname="set_arrows.svg"
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata
id="metadata2856">
<rdf:RDF>
@ -22,7 +22,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -41,8 +41,8 @@
inkscape:window-height="818"
id="namedview2852"
showgrid="false"
inkscape:zoom="2.3349572"
inkscape:cx="297.64999"
inkscape:zoom="2.1122011"
inkscape:cx="255.55235"
inkscape:cy="100"
inkscape:window-x="0"
inkscape:window-y="27"
@ -53,7 +53,7 @@
transform="translate(0 -159)"
id="switch2848">
<g
ns:extraneous="self"
ns1:extraneous="self"
id="g2846"
transform="translate(-1.0910201,3.9272465)">
<path
@ -66,12 +66,10 @@
fill="#e90909"
stroke-width="0.3"
id="path2812" />
<circle
cx="492.64886"
cy="260.71967"
r="83.388321"
id="circle268"
style="opacity:0.13;stroke:#000000;stroke-width:20.3386;stroke-miterlimit:10" />
<path
style="opacity:0.12999998;stroke:#000000;stroke-width:20.33860016;stroke-miterlimit:10"
d="m 576.03719,260.71967 a 83.388321,83.388321 0 0 1 -83.38833,83.38832 83.388321,83.388321 0 0 1 -83.38832,-83.38832 83.388321,83.388321 0 0 1 83.38832,-83.38833 83.388321,83.388321 0 0 1 83.38833,83.38833 z"
id="circle268" />
<path
d="m 155.226,317.83 c 0,0 2.964,0.743 8.088,1.869 2.696,0.622 5.66,1.365 9.302,2.12 3.642,0.754 7.552,1.628 12.14,2.514 17.672,3.532 41.582,6.94 65.534,8.622 23.952,1.682 48.354,1.528 66.546,0.344 8.962,-0.651 16.696,-0.979 21.861,-1.58 l 3.26,-0.29 4.308,29.573 c 23.238,-13.771 44.47,-28.73 63.02,-44.887 -25.62,-5.628 -49.97,-13.308 -72.388,-22.453 l 4.04,29.453 -3.26,0.29 c -5.166,0.601 -12.632,1.048 -21.452,1.472 -17.783,1.075 -41.508,1.241 -65.05,-0.548 -23.684,-1.562 -46.918,-4.96 -64.322,-8.372 -4.319,-0.766 -8.229,-1.64 -11.87,-2.394 -3.643,-0.755 -6.607,-1.497 -9.035,-2 -5.124,-1.126 -7.82,-1.748 -7.82,-1.748 z"
fill="#0e2db8"
@ -82,126 +80,188 @@
fill="#04bd3d"
stroke-width="0.3"
id="path2816" />
<circle
cx="120.35165"
cy="260.81131"
r="83.388321"
id="circle268-6"
style="opacity:0.13;stroke:#000000;stroke-width:20.3386;stroke-miterlimit:10" />
<circle
cy="192.70348"
cx="197.34406"
stroke-miterlimit="10"
<path
style="opacity:0.12999998;stroke:#000000;stroke-width:20.33860016;stroke-miterlimit:10"
d="m 203.73997,260.81131 a 83.388321,83.388321 0 0 1 -83.38832,83.38832 83.388321,83.388321 0 0 1 -83.388324,-83.38832 83.388321,83.388321 0 0 1 83.388324,-83.38832 83.388321,83.388321 0 0 1 83.38832,83.38832 z"
id="circle268-6" />
<path
transform="rotate(22.196)"
r="89.626999"
fill="#dbdb8b"
stroke="#878578"
stroke-width="10.544"
style="fill:#dbdb8b;stroke:#878578;stroke-width:10.54399967;stroke-miterlimit:10"
d="m 286.97105,192.70348 a 89.626999,89.626999 0 0 1 -89.62699,89.62699 89.626999,89.626999 0 0 1 -89.627,-89.62699 89.626999,89.626999 0 0 1 89.627,-89.627 89.626999,89.626999 0 0 1 89.62699,89.627 z"
id="circle2818" />
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start"
x="199.41701"
y="216.16499"
<g
aria-label="isEven"
transform="rotate(-4.889)"
font-weight="700"
font-size="26.667px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#9d539f"
id="text2822"><tspan
x="199.41701"
y="216.16499"
id="tspan2820">isEven</tspan></text>
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start"
x="196.388"
y="251.784"
style="font-weight:700;font-size:26.66699982px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0;word-spacing:0;fill:#9d539f"
id="text2822">
<path
d="m 201.65662,201.58148 h 4.66152 v 14.58351 h -4.66152 z m 0,-5.67716 h 4.66152 v 3.80213 h -4.66152 z"
style=""
id="path11007" />
<path
d="m 222.19073,202.03721 v 3.54171 q -1.49741,-0.625 -2.89066,-0.93751 -1.39325,-0.3125 -2.63024,-0.3125 -1.32814,0 -1.97919,0.33854 -0.63803,0.32553 -0.63803,1.01564 0,0.5599 0.48177,0.85939 0.4948,0.29948 1.75784,0.44271 l 0.82032,0.11719 q 3.58078,0.45573 4.81777,1.49741 1.23699,1.04168 1.23699,3.26827 0,2.33076 -1.71877,3.50265 -1.71877,1.17189 -5.13027,1.17189 -1.44533,0 -2.99483,-0.23438 -1.53648,-0.22135 -3.1641,-0.67709 v -3.54171 q 1.39325,0.67709 2.8516,1.01564 1.47137,0.33855 2.98181,0.33855 1.3672,0 2.05731,-0.37761 0.69012,-0.37761 0.69012,-1.11981 0,-0.62501 -0.48178,-0.92449 -0.46876,-0.3125 -1.88805,-0.48178 l -0.82032,-0.10416 q -3.11202,-0.39063 -4.36203,-1.44534 -1.25002,-1.0547 -1.25002,-3.20316 0,-2.31774 1.58856,-3.43754 1.58857,-1.11981 4.86986,-1.11981 1.28908,0 2.70836,0.19532 1.41929,0.19531 3.08598,0.61198 z"
style=""
id="path11009" />
<path
d="m 226.87829,196.72465 h 13.52881 v 3.78911 h -8.51573 v 3.61983 h 8.00791 v 3.78911 h -8.00791 v 4.45318 h 8.80219 v 3.78911 h -13.81527 z"
style=""
id="path11011" />
<path
d="m 243.05036,201.58148 h 4.66152 l 3.63286,10.07825 3.61984,-10.07825 h 4.67453 l -5.74226,14.58351 h -5.11725 z"
style=""
id="path11013" />
<path
d="m 276.82683,208.83417 v 1.32814 h -10.89858 q 0.16928,1.64065 1.18492,2.46097 1.01563,0.82033 2.83857,0.82033 1.47137,0 3.00785,-0.4297 1.5495,-0.44271 3.17713,-1.32814 v 3.5938 q -1.65367,0.625 -3.30734,0.93751 -1.65366,0.32552 -3.30733,0.32552 -3.95838,0 -6.15893,-2.00523 -2.18753,-2.01826 -2.18753,-5.65111 0,-3.56776 2.14847,-5.61205 2.16148,-2.0443 5.93757,-2.0443 3.43754,0 5.49486,2.07034 2.07034,2.07034 2.07034,5.53392 z m -4.79173,-1.5495 q 0,-1.32814 -0.78126,-2.13544 -0.76824,-0.82032 -2.01825,-0.82032 -1.35419,0 -2.20055,0.76824 -0.84637,0.75521 -1.0547,2.18752 z"
style=""
id="path11015" />
<path
d="m 295.01716,207.28467 v 8.88032 h -4.68756 v -1.44533 -5.35163 q 0,-1.88804 -0.0912,-2.6042 -0.0781,-0.71615 -0.28646,-1.0547 -0.27344,-0.45573 -0.7422,-0.70313 -0.46875,-0.26042 -1.06772,-0.26042 -1.45835,0 -2.29169,1.13283 -0.83335,1.1198 -0.83335,3.11201 v 7.17457 h -4.66151 v -14.58351 h 4.66151 v 2.13544 q 1.0547,-1.27606 2.23961,-1.87502 1.18492,-0.61199 2.61723,-0.61199 2.52607,0 3.82817,1.5495 1.31512,1.5495 1.31512,4.50526 z"
style=""
id="path11017" />
</g>
<g
aria-label="isOdd"
transform="rotate(-4.227)"
font-weight="700"
font-size="26.667px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#e90909"
id="text2826"><tspan
x="196.388"
y="251.784"
id="tspan2824">isOdd</tspan></text>
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start"
x="202.427"
y="295.548"
style="font-weight:700;font-size:26.66699982px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0;word-spacing:0;fill:#e90909"
id="text2826">
<path
d="m 198.62761,237.20048 h 4.66152 V 251.784 h -4.66152 z m 0,-5.67715 h 4.66152 v 3.80213 h -4.66152 z"
style=""
id="path11020" />
<path
d="m 219.16172,237.65622 v 3.54171 q -1.49741,-0.62501 -2.89066,-0.93751 -1.39324,-0.31251 -2.63024,-0.31251 -1.32814,0 -1.97919,0.33855 -0.63803,0.32552 -0.63803,1.01563 0,0.55991 0.48178,0.85939 0.49479,0.29948 1.75783,0.44271 l 0.82032,0.11719 q 3.58078,0.45574 4.81777,1.49742 1.237,1.04168 1.237,3.26827 0,2.33076 -1.71877,3.50265 -1.71878,1.17189 -5.13028,1.17189 -1.44533,0 -2.99483,-0.23438 -1.53647,-0.22136 -3.1641,-0.67709 v -3.54172 q 1.39325,0.6771 2.8516,1.01564 1.47137,0.33855 2.98181,0.33855 1.3672,0 2.05732,-0.37761 0.69011,-0.37761 0.69011,-1.11981 0,-0.625 -0.48178,-0.92449 -0.46875,-0.3125 -1.88804,-0.48177 l -0.82033,-0.10417 q -3.11201,-0.39063 -4.36203,-1.44533 -1.25001,-1.0547 -1.25001,-3.20317 0,-2.31773 1.58856,-3.43754 1.58856,-1.11981 4.86985,-1.11981 1.28908,0 2.70837,0.19532 1.41929,0.19531 3.08597,0.61199 z"
style=""
id="path11022" />
<path
d="m 232.7296,235.62494 q -2.2917,0 -3.55473,1.69273 -1.26304,1.69273 -1.26304,4.76568 0,3.05994 1.26304,4.75267 1.26303,1.69273 3.55473,1.69273 2.30472,0 3.56775,-1.69273 1.26304,-1.69273 1.26304,-4.75267 0,-3.07295 -1.26304,-4.76568 -1.26303,-1.69273 -3.56775,-1.69273 z m 0,-3.63286 q 4.68756,0 7.34384,2.68233 2.65628,2.68232 2.65628,7.40894 0,4.71361 -2.65628,7.39593 -2.65628,2.68233 -7.34384,2.68233 -4.67454,0 -7.34384,-2.68233 -2.65629,-2.68232 -2.65629,-7.39593 0,-4.72662 2.65629,-7.40894 2.6693,-2.68233 7.34384,-2.68233 z"
style=""
id="path11024" />
<path
d="m 256.2325,239.33592 v -7.81259 h 4.68756 V 251.784 h -4.68756 v -2.1094 q -0.96355,1.28907 -2.12242,1.88804 -1.15887,0.59897 -2.68233,0.59897 -2.69534,0 -4.42714,-2.13545 -1.73179,-2.14846 -1.73179,-5.5209 0,-3.37244 1.73179,-5.50788 1.7318,-2.14847 4.42714,-2.14847 1.51044,0 2.66931,0.61199 1.17189,0.59897 2.13544,1.87502 z m -3.07296,9.44023 q 1.49742,0 2.27868,-1.09377 0.79428,-1.09376 0.79428,-3.17712 0,-2.08336 -0.79428,-3.17712 -0.78126,-1.09377 -2.27868,-1.09377 -1.48439,0 -2.27867,1.09377 -0.78126,1.09376 -0.78126,3.17712 0,2.08336 0.78126,3.17712 0.79428,1.09377 2.27867,1.09377 z"
style=""
id="path11026" />
<path
d="m 275.32128,239.33592 v -7.81259 h 4.68756 V 251.784 h -4.68756 v -2.1094 q -0.96356,1.28907 -2.12242,1.88804 -1.15887,0.59897 -2.68233,0.59897 -2.69535,0 -4.42714,-2.13545 -1.73179,-2.14846 -1.73179,-5.5209 0,-3.37244 1.73179,-5.50788 1.73179,-2.14847 4.42714,-2.14847 1.51044,0 2.6693,0.61199 1.17189,0.59897 2.13545,1.87502 z m -3.07296,9.44023 q 1.49742,0 2.27868,-1.09377 0.79428,-1.09376 0.79428,-3.17712 0,-2.08336 -0.79428,-3.17712 -0.78126,-1.09377 -2.27868,-1.09377 -1.48439,0 -2.27867,1.09377 -0.78126,1.09376 -0.78126,3.17712 0,2.08336 0.78126,3.17712 0.79428,1.09377 2.27867,1.09377 z"
style=""
id="path11028" />
</g>
<g
aria-label="isPrime"
transform="rotate(-2.197)"
font-weight="700"
font-size="26.667px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#04bd3d"
id="text2830"><tspan
x="202.427"
y="295.548"
id="tspan2828">isPrime</tspan></text>
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start"
x="256.15302"
y="321.49701"
style="font-weight:700;font-size:26.66699982px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0;word-spacing:0;fill:#04bd3d"
id="text2830">
<path
d="m 204.66661,280.96449 h 4.66152 V 295.548 h -4.66152 z m 0,-5.67716 h 4.66152 v 3.80214 h -4.66152 z"
style=""
id="path11031" />
<path
d="m 225.20072,281.42022 v 3.54171 q -1.49741,-0.625 -2.89066,-0.93751 -1.39324,-0.3125 -2.63024,-0.3125 -1.32814,0 -1.97919,0.33854 -0.63803,0.32553 -0.63803,1.01564 0,0.55991 0.48178,0.85939 0.4948,0.29948 1.75783,0.44271 l 0.82033,0.11719 q 3.58077,0.45574 4.81776,1.49742 1.237,1.04168 1.237,3.26827 0,2.33075 -1.71877,3.50264 -1.71877,1.17189 -5.13027,1.17189 -1.44534,0 -2.99483,-0.23437 -1.53648,-0.22136 -3.16411,-0.6771 v -3.54171 q 1.39325,0.67709 2.8516,1.01564 1.47137,0.33855 2.98181,0.33855 1.3672,0 2.05732,-0.37761 0.69011,-0.37761 0.69011,-1.11981 0,-0.62501 -0.48178,-0.92449 -0.46875,-0.3125 -1.88804,-0.48178 l -0.82032,-0.10416 q -3.11202,-0.39063 -4.36204,-1.44533 -1.25001,-1.05471 -1.25001,-3.20317 0,-2.31774 1.58856,-3.43754 1.58856,-1.11981 4.86985,-1.11981 1.28908,0 2.70837,0.19532 1.41929,0.19531 3.08597,0.61198 z"
style=""
id="path11033" />
<path
d="m 229.88828,276.10766 h 8.32042 q 3.71098,0 5.69017,1.65366 1.99222,1.64065 1.99222,4.68756 0,3.05994 -1.99222,4.7136 -1.97919,1.64065 -5.69017,1.64065 h -3.30733 v 6.74487 h -5.01309 z m 5.01309,3.63286 v 5.42975 h 2.77347 q 1.45835,0 2.25263,-0.70313 0.79428,-0.71616 0.79428,-2.01826 0,-1.3021 -0.79428,-2.00523 -0.79428,-0.70313 -2.25263,-0.70313 z"
style=""
id="path11035" />
<path
d="m 260.05793,284.93589 q -0.61198,-0.28646 -1.22397,-0.41667 -0.59897,-0.14323 -1.21095,-0.14323 -1.7969,0 -2.77348,1.15887 -0.96355,1.14585 -0.96355,3.29431 v 6.71883 h -4.66152 v -14.58351 h 4.66152 v 2.39586 q 0.89845,-1.43231 2.05732,-2.08336 1.17189,-0.66407 2.79951,-0.66407 0.23438,0 0.50782,0.026 0.27344,0.013 0.79428,0.0781 z"
style=""
id="path11037" />
<path
d="m 262.37567,280.96449 h 4.66151 V 295.548 h -4.66151 z m 0,-5.67716 h 4.66151 v 3.80214 h -4.66151 z"
style=""
id="path11039" />
<path
d="m 285.0322,283.38639 q 0.88543,-1.35418 2.09638,-2.05731 1.22397,-0.71616 2.68233,-0.71616 2.51305,0 3.82817,1.5495 1.31512,1.5495 1.31512,4.50526 v 8.88032 h -4.68756 v -7.60426 q 0.013,-0.16927 0.013,-0.35156 0.013,-0.1823 0.013,-0.52084 0,-1.5495 -0.45573,-2.23962 -0.45574,-0.70313 -1.47138,-0.70313 -1.32814,0 -2.05731,1.09376 -0.71616,1.09377 -0.7422,3.16411 v 7.16154 h -4.68756 v -7.60426 q 0,-2.4219 -0.41667,-3.11202 -0.41667,-0.70313 -1.48439,-0.70313 -1.34117,0 -2.07034,1.10679 -0.72918,1.09376 -0.72918,3.13806 v 7.17456 h -4.68756 v -14.58351 h 4.68756 v 2.13544 q 0.85939,-1.23699 1.96617,-1.862 1.11981,-0.62501 2.46097,-0.62501 1.51044,0 2.66931,0.72918 1.15886,0.72917 1.75783,2.04429 z"
style=""
id="path11041" />
<path
d="m 313.86068,288.21718 v 1.32814 h -10.89857 q 0.16927,1.64065 1.18491,2.46097 1.01564,0.82033 2.83858,0.82033 1.47137,0 3.00785,-0.4297 1.5495,-0.44271 3.17712,-1.32814 v 3.5938 q -1.65367,0.625 -3.30733,0.93751 -1.65367,0.32552 -3.30734,0.32552 -3.95838,0 -6.15893,-2.00523 -2.18752,-2.01825 -2.18752,-5.65111 0,-3.56776 2.14846,-5.61205 2.16149,-2.0443 5.93757,-2.0443 3.43755,0 5.49487,2.07034 2.07033,2.07034 2.07033,5.53392 z m -4.79172,-1.5495 q 0,-1.32814 -0.78126,-2.13544 -0.76824,-0.82032 -2.01826,-0.82032 -1.35418,0 -2.20055,0.76824 -0.84636,0.75522 -1.0547,2.18752 z"
style=""
id="path11043" />
</g>
<g
aria-label="&gt;0"
transform="rotate(0.662)"
font-weight="700"
font-size="26.667px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#0e2db8"
id="text2834"><tspan
x="256.15302"
y="321.49701"
id="tspan2832">&gt;0</tspan></text>
<circle
cy="51.771999"
cx="545.72998"
stroke-miterlimit="10"
style="font-weight:700;font-size:26.66699982px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0;word-spacing:0;fill:#0e2db8"
id="text2834">
<path
d="m 258.97857,308.82758 v -3.25525 l 16.69292,6.02872 v 3.07296 l -16.69292,6.02872 v -3.25525 l 12.56526,-4.29693 z"
style=""
id="path11046" />
<path
d="m 290.76282,311.7573 q 0,-3.64587 -0.69011,-5.13027 -0.67709,-1.49741 -2.2917,-1.49741 -1.6146,0 -2.30471,1.49741 -0.69012,1.4844 -0.69012,5.13027 0,3.68495 0.69012,5.19538 0.69011,1.51044 2.30471,1.51044 1.60159,0 2.2917,-1.51044 0.69011,-1.51043 0.69011,-5.19538 z m 5.01309,0.0391 q 0,4.83079 -2.08336,7.46103 -2.08336,2.61722 -5.91154,2.61722 -3.84119,0 -5.92455,-2.61722 -2.08336,-2.63024 -2.08336,-7.46103 0,-4.84381 2.08336,-7.46103 2.08336,-2.63024 5.92455,-2.63024 3.82818,0 5.91154,2.63024 2.08336,2.61722 2.08336,7.46103 z"
style=""
id="path11048" />
</g>
<path
transform="rotate(22.196)"
r="89.626999"
fill="#d9d98d"
stroke="#878578"
stroke-width="10.544"
style="fill:#d9d98d;stroke:#878578;stroke-width:10.54399967;stroke-miterlimit:10"
d="m 635.35698,51.771999 a 89.626999,89.626999 0 0 1 -89.627,89.627001 89.626999,89.626999 0 0 1 -89.627,-89.627001 89.626999,89.626999 0 0 1 89.627,-89.626999 89.626999,89.626999 0 0 1 89.627,89.626999 z"
id="circle2836" />
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start"
x="43.948681"
y="260.72006"
<g
aria-label="number"
transform="rotate(0.221)"
font-weight="700"
font-size="30.308px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#9d539f"
stroke-width="1.137"
id="text2840"><tspan
x="43.948681"
y="260.72006"
fill="#797979"
id="tspan2838">number</tspan></text>
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start"
x="420.13199"
y="260.224"
style="font-weight:700;font-size:30.30800056px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0;word-spacing:0;fill:#9d539f;stroke-width:1.13699996"
id="text2840">
<path
d="m 63.15756,250.62726 v 10.0928 h -5.327578 v -1.64267 -6.08232 q 0,-2.14583 -0.103592,-2.95976 -0.08879,-0.81394 -0.325574,-1.19871 -0.310776,-0.51796 -0.843533,-0.79913 -0.532758,-0.29598 -1.213504,-0.29598 -1.657469,0 -2.604594,1.2875 -0.947125,1.2727 -0.947125,3.53692 v 8.15415 h -5.297981 v -16.57469 h 5.297981 v 2.42701 q 1.198705,-1.45028 2.545398,-2.13103 1.346694,-0.69554 2.974565,-0.69554 2.870973,0 4.350855,1.76106 1.494682,1.76106 1.494682,5.12039 z"
style="fill:#797979"
id="path11052" />
<path
d="m 67.893186,254.26777 v -10.1224 h 5.327578 v 1.65747 q 0,1.3467 -0.0148,3.38893 -0.0148,2.02744 -0.0148,2.70819 0,1.99784 0.103591,2.88577 0.103592,0.87313 0.355172,1.2727 0.325574,0.51796 0.843533,0.79914 0.532758,0.28118 1.213504,0.28118 1.657469,0 2.604594,-1.2727 0.947125,-1.2727 0.947125,-3.53692 v -8.18376 h 5.297981 v 16.57469 h -5.297981 v -2.39741 q -1.198705,1.45029 -2.545398,2.14583 -1.331895,0.68075 -2.944967,0.68075 -2.870973,0 -4.380453,-1.76106 -1.494682,-1.76106 -1.494682,-5.1204 z"
style="fill:#797979"
id="path11054" />
<path
d="m 105.00865,246.89796 q 1.00632,-1.53908 2.38261,-2.33822 1.39109,-0.81393 3.04856,-0.81393 2.85617,0 4.35085,1.76106 1.49469,1.76106 1.49469,5.12039 v 10.0928 h -5.32758 v -8.64251 q 0.0148,-0.19239 0.0148,-0.39957 0.0148,-0.20719 0.0148,-0.59196 0,-1.76106 -0.51796,-2.54539 -0.51796,-0.79914 -1.67227,-0.79914 -1.50948,0 -2.33822,1.2431 -0.81393,1.2431 -0.84353,3.59612 v 8.13935 h -5.32758 v -8.64251 q 0,-2.75259 -0.47356,-3.53692 -0.473563,-0.79914 -1.687067,-0.79914 -1.524279,0 -2.353014,1.2579 -0.828734,1.2431 -0.828734,3.56652 v 8.15415 h -5.327578 v -16.57469 h 5.327578 v 2.42701 q 0.976723,-1.40589 2.234623,-2.11623 1.272699,-0.71034 2.796979,-0.71034 1.716663,0 3.033763,0.82873 1.31709,0.82873 1.99784,2.32342 z"
style="fill:#797979"
id="path11056" />
<path
d="m 130.04827,257.30153 q 1.70186,0 2.58979,-1.2431 0.90273,-1.2431 0.90273,-3.61091 0,-2.36782 -0.90273,-3.61092 -0.88793,-1.2431 -2.58979,-1.2431 -1.70187,0 -2.6194,1.2579 -0.90272,1.2431 -0.90272,3.59612 0,2.35301 0.90272,3.61091 0.91753,1.2431 2.6194,1.2431 z m -3.52212,-10.72915 q 1.09511,-1.45028 2.427,-2.13103 1.3319,-0.69554 3.06336,-0.69554 3.06336,0 5.0316,2.4418 1.96825,2.42701 1.96825,6.25991 0,3.83289 -1.96825,6.2747 -1.96824,2.42701 -5.0316,2.42701 -1.73146,0 -3.06336,-0.68075 -1.33189,-0.69554 -2.427,-2.14583 v 2.39741 h -5.29799 v -23.02697 h 5.29799 z"
style="fill:#797979"
id="path11058" />
<path
d="m 159.46834,252.38832 v 1.50948 h -12.38662 q 0.19238,1.86465 1.34669,2.79698 1.15431,0.93233 3.22615,0.93233 1.67226,0 3.41853,-0.48836 1.76106,-0.50316 3.61091,-1.50948 v 4.08447 q -1.87945,0.71035 -3.7589,1.06552 -1.87945,0.36997 -3.7589,0.36997 -4.49885,0 -6.99985,-2.27902 -2.4862,-2.29382 -2.4862,-6.42269 0,-4.05488 2.4418,-6.3783 2.45661,-2.32341 6.74827,-2.32341 3.90689,0 6.2451,2.35301 2.35302,2.35301 2.35302,6.2895 z m -5.44597,-1.76106 q 0,-1.50948 -0.88793,-2.42701 -0.87313,-0.93232 -2.29382,-0.93232 -1.53908,0 -2.501,0.87313 -0.96192,0.85833 -1.19871,2.4862 z"
style="fill:#797979"
id="path11060" />
<path
d="m 175.79145,248.65902 q -0.69555,-0.32558 -1.39109,-0.47357 -0.68075,-0.16278 -1.3763,-0.16278 -2.04223,0 -3.15215,1.31709 -1.09511,1.3023 -1.09511,3.74411 v 7.63619 h -5.29798 v -16.57469 h 5.29798 v 2.72299 q 1.02112,-1.62787 2.33822,-2.36781 1.33189,-0.75474 3.18174,-0.75474 0.26638,0 0.57716,0.0296 0.31077,0.0148 0.90273,0.0888 z"
style="fill:#797979"
id="path11062" />
</g>
<g
aria-label="boolean"
transform="rotate(0.221)"
font-weight="700"
font-size="30.308px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#9d539f"
stroke-width="1.137"
id="text2844"><tspan
x="420.13199"
y="260.224"
fill="#797979"
id="tspan2842">boolean</tspan></text>
style="font-weight:700;font-size:30.30800056px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0;word-spacing:0;fill:#9d539f;stroke-width:1.13699996"
id="text2844">
<path
d="m 431.49749,256.80547 q 1.70186,0 2.58979,-1.2431 0.90273,-1.2431 0.90273,-3.61092 0,-2.36781 -0.90273,-3.61091 -0.88793,-1.2431 -2.58979,-1.2431 -1.70187,0 -2.61939,1.2579 -0.90273,1.2431 -0.90273,3.59611 0,2.35302 0.90273,3.61092 0.91752,1.2431 2.61939,1.2431 z m -3.52212,-10.72915 q 1.09511,-1.45029 2.42701,-2.13103 1.33189,-0.69555 3.06335,-0.69555 3.06336,0 5.0316,2.44181 1.96825,2.42701 1.96825,6.2599 0,3.8329 -1.96825,6.27471 -1.96824,2.42701 -5.0316,2.42701 -1.73146,0 -3.06335,-0.68075 -1.3319,-0.69555 -2.42701,-2.14583 v 2.39741 h -5.29798 v -23.02698 h 5.29798 z"
style="fill:#797979"
id="path11065" />
<path
d="m 452.26024,247.03824 q -1.76106,0 -2.69338,1.2727 -0.91753,1.2579 -0.91753,3.64051 0,2.38262 0.91753,3.65531 0.93232,1.2579 2.69338,1.2579 1.73147,0 2.64899,-1.2579 0.91753,-1.27269 0.91753,-3.65531 0,-2.38261 -0.91753,-3.64051 -0.91752,-1.2727 -2.64899,-1.2727 z m 0,-3.7885 q 4.27687,0 6.67428,2.30862 2.4122,2.30862 2.4122,6.39309 0,4.08448 -2.4122,6.3931 -2.39741,2.30862 -6.67428,2.30862 -4.29166,0 -6.71866,-2.30862 -2.41221,-2.30862 -2.41221,-6.3931 0,-4.08447 2.41221,-6.39309 2.427,-2.30862 6.71866,-2.30862 z"
style="fill:#797979"
id="path11067" />
<path
d="m 473.0822,247.03824 q -1.76107,0 -2.69339,1.2727 -0.91753,1.2579 -0.91753,3.64051 0,2.38262 0.91753,3.65531 0.93232,1.2579 2.69339,1.2579 1.73146,0 2.64899,-1.2579 0.91752,-1.27269 0.91752,-3.65531 0,-2.38261 -0.91752,-3.64051 -0.91753,-1.2727 -2.64899,-1.2727 z m 0,-3.7885 q 4.27686,0 6.67427,2.30862 2.41221,2.30862 2.41221,6.39309 0,4.08448 -2.41221,6.3931 -2.39741,2.30862 -6.67427,2.30862 -4.29167,0 -6.71867,-2.30862 -2.41221,-2.30862 -2.41221,-6.3931 0,-4.08447 2.41221,-6.39309 2.427,-2.30862 6.71867,-2.30862 z"
style="fill:#797979"
id="path11069" />
<path
d="m 486.01637,237.19702 h 5.29798 V 260.224 h -5.29798 z"
style="fill:#797979"
id="path11071" />
<path
d="m 512.95024,251.89226 v 1.50948 h -12.38662 q 0.19238,1.86465 1.34669,2.79698 1.15431,0.93232 3.22615,0.93232 1.67226,0 3.41853,-0.48836 1.76106,-0.50316 3.61091,-1.50948 v 4.08448 q -1.87945,0.71034 -3.7589,1.06551 -1.87945,0.36998 -3.75891,0.36998 -4.49884,0 -6.99984,-2.27902 -2.4862,-2.29382 -2.4862,-6.4227 0,-4.05488 2.4418,-6.37829 2.45661,-2.32342 6.74827,-2.32342 3.90689,0 6.2451,2.35302 2.35302,2.35301 2.35302,6.2895 z m -5.44597,-1.76106 q 0,-1.50948 -0.88793,-2.42701 -0.87313,-0.93233 -2.29382,-0.93233 -1.53908,0 -2.501,0.87313 -0.96193,0.85834 -1.19871,2.48621 z"
style="fill:#797979"
id="path11073" />
<path
d="m 524.38973,252.76539 q -1.65747,0 -2.501,0.56235 -0.82873,0.56236 -0.82873,1.65747 0,1.00632 0.66594,1.58348 0.68075,0.56235 1.87945,0.56235 1.49469,0 2.5158,-1.06551 1.02112,-1.08032 1.02112,-2.69339 v -0.60675 z m 8.09496,-1.99784 v 9.45645 h -5.34238 v -2.45661 q -1.06551,1.50948 -2.39741,2.20503 -1.33189,0.68075 -3.24094,0.68075 -2.575,0 -4.18807,-1.49469 -1.59827,-1.50948 -1.59827,-3.90689 0,-2.91537 1.99784,-4.27686 2.01264,-1.36149 6.3043,-1.36149 h 3.12255 v -0.41437 q 0,-1.2579 -0.99152,-1.83505 -0.99152,-0.59196 -3.09295,-0.59196 -1.70187,0 -3.16695,0.34038 -1.46509,0.34037 -2.72299,1.02112 v -4.04008 q 1.70187,-0.41437 3.41853,-0.62155 1.71667,-0.22199 3.43333,-0.22199 4.48405,0 6.46709,1.77586 1.99784,1.76106 1.99784,5.74195 z"
style="fill:#797979"
id="path11075" />
<path
d="m 554.07618,250.1312 v 10.0928 h -5.32758 v -1.64267 -6.08232 q 0,-2.14583 -0.10359,-2.95977 -0.0888,-0.81393 -0.32557,-1.1987 -0.31078,-0.51796 -0.84354,-0.79914 -0.53275,-0.29597 -1.2135,-0.29597 -1.65747,0 -2.60459,1.28749 -0.94713,1.2727 -0.94713,3.53692 v 8.15416 h -5.29798 v -16.57469 h 5.29798 v 2.42701 q 1.19871,-1.45029 2.5454,-2.13103 1.34669,-0.69555 2.97456,-0.69555 2.87098,0 4.35086,1.76106 1.49468,1.76106 1.49468,5.1204 z"
style="fill:#797979"
id="path11077" />
</g>
</g>
</switch>
</svg>

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -85,7 +85,7 @@ In order theory we only need to verify that the corresponding morphism actually
![Order isomorphism](category_order_isomorphism_2.svg)
So, as you saw, categorical isomorphisms are not hard to define, however they are *not actually useful*, as they are too rare - the only one that comes to mind is the Curry-Howard-Lambek isomorphism from the last chapter. If two categories are isomorphic, they basically contain the same data and it would be more accurate to refer to them as different *representations* of the same category than as separate categories.
As you see, categorical isomorphisms are easy to define, however they are very *hard to find* in practice - the only one that comes to mind to me is the Curry-Howard-Lambek isomorphism from the last chapter. And the reason for that is simple - if two categories are isomorphic, they basically contain the same data and it would be more accurate to refer to them as different *representations* of the same category than as separate categories.
<!--
comics:
@ -97,9 +97,7 @@ Pretty much.
What are functors
===
Much more abundant than isomorphisms, which are two-way connections between categories, are one-way connections between categories, which we will examine next. Those are called *functors* and they are much more abundand that isomorphisms as every isomorphism is also a functor (actually two functors).
But unlike an isomorphism, a functor does not have to map all objects and all morphisms in the target category.
Much more abundant than isomorphisms, which are two-way connections between categories, are the one-way connections which we will examine next. Those are called *functors*. As with normal functions, every categorical isomorphism is also a functor (or two functors), but not the other way around. This is because, unlike an isomorphism, a functor does not have to point all objects and all morphisms in the target category (again, same as with normal functions.)
![Functor](functor.svg)
@ -108,9 +106,9 @@ And now for the full definition: a functor between two categories (let's call th
Object mapping
---
Let's go through each component of this definition. Firstly, we have a mappings between the categories' objects. These are just regular old functions, so the definition from chapter 1 applies here.
Let's go through each component of this definition. Firstly, we have a mappings between the categories' objects. These are just regular old functions, so the definition from chapter 1 applies.
> A function is a relationship between two sets which matches each element of one set, called the *domain* of the function, with exactly one element from another set, called the converse domain, or the *codomain* of the function.
> A function is a relationship between two sets that matches each element of one set, called the *domain* of the function, with exactly one element from another set, called the converse domain, or the *codomain* of the function.
![Functor for objects](functor_objects.svg)
@ -183,36 +181,45 @@ The law of preserving composition tells us that the route we create on a map cor
Functors in programming
===
Before we think about how functors work in programmers, let's try to answer the million-dollar question: "How are functors *useful*?" (sometimes formulated also as "Why are you wasting my/your time with this?") This is not an easy question, but we just saw that *maps are functors* and we know that *maps are useful*, so let's start from there.
Before we think about how functors work in programmers, let's try to answer the million-dollar question: "How are functors *useful*?" (sometimes formulated also as "Why are you wasting my/your time with this?") We just saw that *maps are functors* and we know that *maps are useful*, so let's start from there. And why is a map (or any other kind of diagram) useful? Well, obviously, it is because the points and arrows in the map corresponds to the cities and the roads in the place you are in i.e. because of the very fact that it is a functor, but there is a second aspect as well: *diagrams are simpler to work with than actual thing they are representing i.e.* it is much easier to go through all routes between two given places by following a map than to actually drive through all these routes in real life.
What makes a map or any other kind of diagram useful? Well, obviously, it is because the points and arrows in the map corresponds to the cities and the roads in the place you are in i.e. because of the very fact that it is a functor, but there is a second aspect as well: *diagrams are simpler to work with than actual thing they are representing i.e.* it is much easier to go through all routes between two given places by following a map than to actually drive through all these routes in real life.
It the same point is valid also for programming: a functor from the realm of simple types (like `string`, `number`, `boolean` etc) to a more complex realm (like `Array` and `Map`) allows you to work from the context of the simpler type while actually performing operations on the more complex one.
It the same point is valid also for programming: a functor from a simple type (like `string`, `number` etc) to a more complex one (like `Array` and `Map`) allows you to work from the context of the simpler type while actually performing operations on the more complex one.
If we think about the category of simple types, there are numerous functions between those types, like, as we said before, there are a myriad functions that convert a number to boolean.
![Functions from array to boolean](set_arrows.svg)
For lists, there aren't that many functions. But there also doesn't need to be that many of them, as with map we can use every function that convert strings to numbers to convert string arrays to number arrays.
![A functor in programming](functor_programming.svg)
Because they are simpler, maps don't include *all* roads and *all* traveling options. And the same is true for functors in programming - having a functor doesn't allow you to do define *all* operations using only the simple type, only some of them (some are better than nothing, right?)
To see how this works, let's revisit the general functor definition in the context of programming (by just changing the terms we used, according to the table in chapter 2.)
Let's revisit the general functor definition in the context of programming (by just changing the terms we used, according to the table in chapter 2.)
> A functor between two categories (let's call them **A** and **B**) consists of a mapping that maps each *type* in **A** to a type in **B** and a mapping that maps each *function* between types in **A** to a function between types in **B** in a way that preserves the structure of the category.
Note that all programming language types are actually in one category so all the functors used in programming are *endofunctors* (ones in which the source and target category is one and the same), but that doesn't make any difference in terms of this definition (you can also think of them as belonging to different categories if that's easier for you.)
Type mapping
---
The first component of a functor is a mapping that converts one type (let's call it **A**) to another type (**B**). So it is *like a function, but between types*. Such constructions are supported by almost all programming languages that have static type checing in the first place - they go by the name of *generic types* and if you think about it, a generic type is just a function that takes one concrete type as an argument and returns another one , for example the type `Array<A>` maps the type `String` to `Array<String>`, the type `Number` to `Array<Number>` etc.
The first component of a functor is a mapping that converts one type (let's call it **A**) to another type (**B**). So it is *like a function, but between types*. Such constructions are supported by almost all programming languages that have static type checking in the first place - they go by the name of *generic types*.
![A functor in programming - type mapping](functor_programming_objects.svg)
A generic type is nothing but a function (sometimes called a *type-level function*) that maps one concrete type to another concrete type. For example, the type `Array<A>` maps the type `String` to `Array<String>`, `Number` to `Array<Number>` etc.
Function mapping
---
So the type mapping of a functor can correspond to a generic type in a programming language (we can also have functors between two generic types, but we will review those later.) However the nontrivial part of the functor is the *function mapping* - that is a mapping that convert any function of simple types, like `String ➞ Number` to a function between their more complex counterparts e.g. `Array<String> ➞ Array<Number>`.
So the type mapping of a functor can correspond to a generic type in a programming language (we can also have functors between two generic types, but we will review those later.) However the nontrivial part of the functor is the *function mapping* - that is a mapping that convert any function operating on simple types, like `String ➞ Number` to a function between their more complex counterparts e.g. `Array<String> ➞ Array<Number>`.
In programming languages, this mapping is represented by a higher-order function called `map` with a signature `(a ➞ b) ➞ (Fa ➞ Fb)` (where `F` represents the composite type.)
![A functor in programming - function mapping](functor_programming_morphism.svg)
In programming languages, this mapping is represented by a higher-order function called `map` with a signature (using Haskell notation), `(a ➞ b) ➞ (Fa ➞ Fb)`, where `F` represents the composite type.
Any function with that type signature gives rise to a functor, but not all such functors are useful. In practice, usually, there is only one of them that makes sense for a given generic type. For example, in the case of arrays and similar structures, `map` is a function that applies the original function (the one that converts simple types) to all elements of the structure.
Because only one `map` function per generic type works (and for simple convenience) you might sometimes see `map` defined directly in the datatype as a method. Here is how it might look in TypeScript, where it is implemented in the way that I described above:
Because only one `map` function per generic type works (and also for simple convenience) you might sometimes see `map` defined directly in the datatype as a method. Here is how it might look in TypeScript, where it is implemented in the way that I described above:
```
class Array<A> {
@ -226,9 +233,6 @@ class Array<A> {
}
```
Why is `map` useful? If we think about the category of simple types, there are numerous functions between those types, like, as we said before, there are a myriad functions that convert strings to numbers.
For a lists, there aren't that many functions. But there also doesn't need to be that many of them, as with map we can use every function that convert strings to numbers to convert string arrays to number arrays.
Functor laws
---
@ -244,16 +248,51 @@ a.map(f).map(g) == a.map(compose(g, f))
**Task:** Use examples to verify that the laws are followed.
Endofunctors
===
All programming language types are actually in one category, so all the functors used in programming are *endofunctors* (ones in which the source and target category is one and the same) - this doesn't make any difference when it comes to the above definitions (you can also think of the different type families as belonging to different categories if that's easier for you), but it does make a difference in other situations, for example, you can apply an endofunctor **F** to a given value **a** infinitely many times, adding more and more levels of nesting.
![A functor in programming as endofunctor](endofunctor_programming.svg)
This might look weird, but it does not lead to any type of paradox - there is nothing wrong about a list that contains other lists, and (though rarely useful in practice) you can have a list of lists of lists, or a list of lists of lists of lists etc (and the functor laws would still hold, provided that you called `map` the right number of times.)
Identity functor
===
There is one particular endofuctor that will probably look familiar to you - it is the *identity functor*, the one that maps each object and morphism to itself.
![Identity functor](identity_functor.svg)
The reason this functor is defined is the same reason as the identity morphisms are defined - they allow us to talk about value-related stuff without actually involving values.
Homomorphism functor
===
Given any category, we can generate the set of the sets of all morphisms that have a specific type signature with respect to a given object from that category. This is called the *Homomorphism set*, denoted **Hom(B,_)**, **B** being the object that you picked (for example, let's take the brown ball.)
![Homomorphism set](hom_set.svg)
This set forms a category where the morphism-sets are the objects (again *morphism-sets are objects*.) and the morphisms are the same as in the original category. And between those two categories (the original and the weird morphism-based one) there is a functor, called the homomorphism functor.
![Homomorphism set](hom_functor.svg)
**Question:** Which object should we pick so that the original and the homomorphism categories are isomorphic?
Note that with the homomorphism functor we can represent any category in the the category of sets
Functors in monoids
===
In group theory, there is this cool thing called *group homomorphism* (or *monoid homomorphism* when we are talking about monoids) - it is a function between the groups's underlying sets which preserves the group operation.
Like, imagine if we have the function which shows you what would be the time after n hours
Like, imagine if we have the function which shows you what would be the time after **n** hours
![Group homomorphism as a function](group_homomorphism_function.svg)
Perhaps somewhat surprisingly, this function preserves the operation of addition. That is, if the time after 13 hours it will be 1 o'clock and the time after 14 hours will be 2 o'clock, then the time after (13 + 14) hours will be (1 + 2) o'clock. Or to put it formally, if we call the function that computes the time after some hours **mod11**, then we have **mod11(a + b) = mod11(a) + mod11(b)**. And because of this equation, this function is a group homomorphism between the group of integers under addition and the group of modulo arithmetic with base 11, again under addition.
Perhaps somewhat surprisingly, this function preserves the operation of addition. That is, 13 hours from now the time will be 1 o'clock and if 14 hours from now it will be 2 o'clock, then the time after (13 + 14) hours will be (1 + 2) o'clock.
Or to put it formally, if we call the function that computes the time after some hours **mod11**, then we have **mod11(a + b) = mod11(a) + mod11(b)**.Because of this equation, this function is a group homomorphism between the group of integers under addition and the group of modulo arithmetic with base 11, again under addition.
![Group homomorphism](group_homomorphism.svg)
@ -333,6 +372,10 @@ But both morphisms **F(g•f)** and **F(g)•F(f)** have the same signature - **
In this case the compositions
But this means that the composition of these two pairs of morphisms should exist as well, so
Forgetful Functors
===
**F(g•f) = F(g)•F(f)**.
@ -341,44 +384,6 @@ Functors in logic
===
-->
Free and Forgetful Functors
---
Some other functors
===
Before we continue, we will review the functor-related concepts that we saw so far, as well as some that we will see later on.
Diagram
---
As we saw, a diagram, can be represented as functor from a finite category, called an *index* category (or a *map* as we dubbed it earlier) to some other category.
Homomorphism functor
---
For any category, we can generate the set of all morphisms that have a specific type signature
![Homomorphism set](homomorphism_set.svg)
Between those two categories, there is a functor, calle the homomorphism functor, between the objects and the morphism sets, where the the morphisms play the role of objects. Again, the morphisms are objects.
This category will have morphisms for object and morphism composition. For example, if we take the color-mixing category, the functor **Hom(B,_)** (the Black ball) would look like this.
![Homomorphism functor](homomorphism_functor.svg)
Endofunctor
---
When programming, we are working in just one category - the category of types in the language that we are working with, so all functors that
Identity functor
---
There is one particular endofuctor that will probably look familiar to you - it is the identity functor - one which maps each object and morphism to itself.
The category of small categories
===

View File

@ -0,0 +1,273 @@
<?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"
viewBox="0 0 595.3 189.5"
version="1.1"
id="svg15613"
sodipodi:docname="endofunctor_programming.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata
id="metadata15619">
<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>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview15615"
showgrid="false"
inkscape:zoom="1.3509835"
inkscape:cx="372.13015"
inkscape:cy="198.90336"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613" />
<g
id="g42748"
transform="matrix(1.1027395,-0.05790455,0.05928732,1.0638579,-179.04382,400.69013)" />
<path
style="fill:#e6e7e8;stroke:none;stroke-width:2.66131163;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="M 274.46172,69.606182 A 106.37101,112.69948 0.32858693 0 1 173.95456,188.26395 106.37101,112.69948 0.32858693 0 1 62.02608,81.856228 106.37101,112.69948 0.32858693 0 1 162.53324,-36.801501 106.37101,112.69948 0.32858693 0 1 274.46172,69.606182 Z"
id="circle15601-9-4-4"
inkscape:connector-curvature="0" />
<g
id="g42748-8"
transform="matrix(1.1027395,-0.05790455,0.05928732,1.0638579,81.501948,390.33136)" />
<path
style="fill:#e6e7e8;stroke:none;stroke-width:2.69368243;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
d="M 528.15814,68.798203 A 107.66485,114.0703 0.32858865 0 1 426.42847,188.89925 107.66485,114.0703 0.32858865 0 1 313.13854,81.197261 107.66485,114.0703 0.32858865 0 1 414.86822,-38.903769 107.66485,114.0703 0.32858865 0 1 528.15814,68.798203 Z"
id="circle15601-9-4-4-1"
inkscape:connector-curvature="0" />
<g
inkscape:transform-center-y="-10.036943"
inkscape:transform-center-x="9.7028592"
transform="matrix(0.15013463,-0.03740092,0.08293716,0.13918823,332.50093,84.738008)"
id="g1482-7-0-1-0-3-9-30"
style="display:inline;opacity:0.95400002;fill:#dddddd;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1">
<path
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z"
id="path1478-7-9-0-19-0-7-30"
inkscape:connector-curvature="0"
style="stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
d="M -1116.0146,210.41161 C -697.33657,154.97511 -34.287636,168.429 303.99415,216.71262"
id="path1480-1-3-1-5-7-5-92"
inkscape:connector-curvature="0"
style="fill:none;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<g
aria-label="num"
transform="matrix(0.63677698,-0.02304201,0.02304201,0.63677698,66.341631,92.413988)"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.92882442px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.22322066"
id="text11431-9-8" />
<g
transform="translate(207.87999,233.36143)"
id="g1257-8">
<path
id="circle2818-6-2-5"
d="m 227.71768,-95.544612 a 21.4302,21.4302 0 0 1 1.64915,30.261978 21.4302,21.4302 0 0 1 -30.262,1.649132 21.4302,21.4302 0 0 1 -1.64912,-30.26198 21.4302,21.4302 0 0 1 30.26197,-1.64913 z"
style="fill:#dbdb8b;stroke:#878578;stroke-width:1.5;stroke-miterlimit:10;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<g
id="text1152-0"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.956604px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3489151"
aria-label="a">
<path
inkscape:connector-curvature="0"
id="path1240-9"
style="text-align:center;text-anchor:middle;stroke-width:0.3489151"
d="m 213.77963,-78.711496 q -0.76326,0 -1.1517,0.25896 -0.38162,0.258961 -0.38162,0.763252 0,0.463403 0.30666,0.729178 0.31348,0.258961 0.86547,0.258961 0.68829,0 1.15851,-0.490662 0.47022,-0.497477 0.47022,-1.240284 v -0.279405 z m 3.72766,-0.919991 v 4.354624 h -2.46012 v -1.131248 q -0.49066,0.695104 -1.10399,1.015397 -0.61333,0.313479 -1.49243,0.313479 -1.18577,0 -1.92857,-0.68829 -0.736,-0.695104 -0.736,-1.799093 0,-1.342506 0.92,-1.969463 0.9268,-0.626956 2.90308,-0.626956 h 1.43791 v -0.190813 q 0,-0.579254 -0.45659,-0.845029 -0.45659,-0.27259 -1.42428,-0.27259 -0.7837,0 -1.45836,0.156739 -0.67466,0.156739 -1.25391,0.470218 v -1.860426 q 0.7837,-0.190813 1.57421,-0.28622 0.79051,-0.102221 1.58102,-0.102221 2.06487,0 2.97804,0.81777 0.91999,0.810955 0.91999,2.644122 z" />
</g>
<path
id="circle2818-6-2-8-6"
d="m 228.96484,-147.703 a 21.4302,21.4302 0 0 1 1.64915,30.26198 21.4302,21.4302 0 0 1 -30.262,1.64913 21.4302,21.4302 0 0 1 -1.64912,-30.26198 21.4302,21.4302 0 0 1 30.26197,-1.64913 z"
style="fill:#dbdb8b;stroke:#878578;stroke-width:1.5;stroke-miterlimit:10;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<g
id="text1152-1-3"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.956604px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3489151"
aria-label="Fa">
<path
inkscape:connector-curvature="0"
id="path1235-8"
style="stroke-width:0.3489151"
d="m 207.50264,-136.65969 h 7.08052 v 1.9831 h -4.45684 v 1.8945 h 4.19107 v 1.98309 h -4.19107 v 4.31373 h -2.62368 z" />
<path
inkscape:connector-curvature="0"
id="path1237-5"
style="stroke-width:0.3489151"
d="m 219.53067,-129.9199 q -0.76325,0 -1.15169,0.25896 -0.38163,0.25896 -0.38163,0.76325 0,0.4634 0.30666,0.72918 0.31348,0.25896 0.86548,0.25896 0.68829,0 1.1585,-0.49066 0.47022,-0.49748 0.47022,-1.24029 v -0.2794 z m 3.72767,-0.91999 v 4.35462 h -2.46013 v -1.13125 q -0.49066,0.69511 -1.10399,1.0154 -0.61332,0.31348 -1.49243,0.31348 -1.18576,0 -1.92857,-0.68829 -0.73599,-0.6951 -0.73599,-1.79909 0,-1.34251 0.91999,-1.96947 0.9268,-0.62695 2.90308,-0.62695 h 1.43791 v -0.19081 q 0,-0.57926 -0.45659,-0.84503 -0.45658,-0.27259 -1.42428,-0.27259 -0.78369,0 -1.45835,0.15674 -0.67466,0.15673 -1.25392,0.47021 v -1.86042 q 0.7837,-0.19082 1.57421,-0.28622 0.79051,-0.10222 1.58102,-0.10222 2.06487,0 2.97804,0.81777 0.92,0.81095 0.92,2.64412 z" />
</g>
<path
id="circle2818-6-2-9-6"
d="m 230.44525,-197.2965 a 21.4302,21.4302 0 0 1 1.64915,30.26198 21.4302,21.4302 0 0 1 -30.262,1.64913 21.4302,21.4302 0 0 1 -1.64912,-30.26198 21.4302,21.4302 0 0 1 30.26197,-1.64913 z"
style="fill:#dbdb8b;stroke:#878578;stroke-width:1.5;stroke-miterlimit:10;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<g
id="text1152-3-1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.956604px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3489151"
aria-label="F(Fa)">
<path
inkscape:connector-curvature="0"
id="path1224-1"
style="stroke-width:0.3489151"
d="m 196.31053,-188.23819 h 7.08052 v 1.9831 h -4.45684 v 1.8945 h 4.19107 v 1.98309 h -4.19107 v 4.31373 h -2.62368 z" />
<path
inkscape:connector-curvature="0"
id="path1226-5"
style="stroke-width:0.3489151"
d="m 209.82418,-176.22378 h -2.02398 q -1.04266,-1.68325 -1.54014,-3.19612 -0.49747,-1.51969 -0.49747,-3.01212 0,-1.49243 0.49747,-3.01893 0.50429,-1.53332 1.54014,-3.20293 h 2.02398 q -0.87229,1.61509 -1.30844,3.16204 -0.43614,1.54013 -0.43614,3.04619 0,1.50606 0.42933,3.05301 0.43614,1.54695 1.31525,3.16886 z" />
<path
inkscape:connector-curvature="0"
id="path1228-9"
style="stroke-width:0.3489151"
d="m 212.22297,-188.23819 h 7.08052 v 1.9831 h -4.45684 v 1.8945 h 4.19107 v 1.98309 h -4.19107 v 4.31373 h -2.62368 z" />
<path
inkscape:connector-curvature="0"
id="path1230-8"
style="stroke-width:0.3489151"
d="m 224.251,-181.4984 q -0.76326,0 -1.1517,0.25896 -0.38162,0.25896 -0.38162,0.76325 0,0.46341 0.30666,0.72918 0.31348,0.25896 0.86547,0.25896 0.68829,0 1.15851,-0.49066 0.47022,-0.49748 0.47022,-1.24028 v -0.27941 z m 3.72766,-0.91999 v 4.35462 h -2.46012 v -1.13124 q -0.49066,0.6951 -1.10399,1.01539 -0.61333,0.31348 -1.49243,0.31348 -1.18577,0 -1.92857,-0.68829 -0.736,-0.6951 -0.736,-1.79909 0,-1.34251 0.91999,-1.96946 0.92681,-0.62696 2.90309,-0.62696 h 1.43791 v -0.19081 q 0,-0.57926 -0.45659,-0.84503 -0.45659,-0.27259 -1.42428,-0.27259 -0.7837,0 -1.45836,0.15674 -0.67466,0.15674 -1.25391,0.47021 v -1.86042 q 0.7837,-0.19081 1.57421,-0.28622 0.79051,-0.10222 1.58102,-0.10222 2.06487,0 2.97804,0.81777 0.91999,0.81095 0.91999,2.64412 z" />
<path
inkscape:connector-curvature="0"
id="path1232-4"
style="stroke-width:0.3489151"
d="m 230.19346,-176.22378 q 0.87229,-1.62191 1.30843,-3.16886 0.43614,-1.54695 0.43614,-3.05301 0,-1.50606 -0.43614,-3.04619 -0.43614,-1.54695 -1.30843,-3.16204 h 2.02398 q 1.03584,1.66961 1.53332,3.20293 0.50429,1.5265 0.50429,3.01893 0,1.49243 -0.49748,3.01212 -0.49747,1.51287 -1.54013,3.19612 z" />
</g>
</g>
<g
inkscape:transform-center-y="-10.036943"
inkscape:transform-center-x="9.7028552"
transform="matrix(0.15013463,-0.03740092,0.08293716,0.13918823,333.6747,31.430798)"
id="g1482-7-0-1-0-3-9-30-8"
style="display:inline;opacity:0.95400002;fill:#dddddd;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1">
<path
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z"
id="path1478-7-9-0-19-0-7-30-1"
inkscape:connector-curvature="0"
style="stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
d="M -1116.0146,210.41161 C -697.33657,154.97511 -34.287636,168.429 303.99415,216.71262"
id="path1480-1-3-1-5-7-5-92-0"
inkscape:connector-curvature="0"
style="fill:none;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="-10.036943"
inkscape:transform-center-x="9.7028564"
transform="matrix(0.15013463,-0.03740092,0.08293716,0.13918823,342.84129,-28.737812)"
id="g1482-7-0-1-0-3-9-30-8-3"
style="display:inline;opacity:0.95400002;fill:#dddddd;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1">
<path
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z"
id="path1478-7-9-0-19-0-7-30-1-0"
inkscape:connector-curvature="0"
style="stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cc"
d="M -1116.0146,210.41161 C -697.33657,154.97511 -34.287636,168.429 303.99415,216.71262"
id="path1480-1-3-1-5-7-5-92-0-4"
inkscape:connector-curvature="0"
style="fill:none;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<g
id="g1257"
transform="translate(-39.970879,230.94286)">
<path
id="circle2818-6-2"
d="m 227.71768,-95.544612 a 21.4302,21.4302 0 0 1 1.64915,30.261978 21.4302,21.4302 0 0 1 -30.262,1.649132 21.4302,21.4302 0 0 1 -1.64912,-30.26198 21.4302,21.4302 0 0 1 30.26197,-1.64913 z"
style="fill:#dbdb8b;stroke:#878578;stroke-width:1.5;stroke-miterlimit:10;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<g
id="text1152"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.956604px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3489151"
aria-label="a">
<path
id="path1240"
style="text-align:center;text-anchor:middle;stroke-width:0.3489151"
d="m 213.77963,-78.711496 q -0.76326,0 -1.1517,0.25896 -0.38162,0.258961 -0.38162,0.763252 0,0.463403 0.30666,0.729178 0.31348,0.258961 0.86547,0.258961 0.68829,0 1.15851,-0.490662 0.47022,-0.497477 0.47022,-1.240284 v -0.279405 z m 3.72766,-0.919991 v 4.354624 h -2.46012 v -1.131248 q -0.49066,0.695104 -1.10399,1.015397 -0.61333,0.313479 -1.49243,0.313479 -1.18577,0 -1.92857,-0.68829 -0.736,-0.695104 -0.736,-1.799093 0,-1.342506 0.92,-1.969463 0.9268,-0.626956 2.90308,-0.626956 h 1.43791 v -0.190813 q 0,-0.579254 -0.45659,-0.845029 -0.45659,-0.27259 -1.42428,-0.27259 -0.7837,0 -1.45836,0.156739 -0.67466,0.156739 -1.25391,0.470218 v -1.860426 q 0.7837,-0.190813 1.57421,-0.28622 0.79051,-0.102221 1.58102,-0.102221 2.06487,0 2.97804,0.81777 0.91999,0.810955 0.91999,2.644122 z"
inkscape:connector-curvature="0" />
</g>
<path
id="circle2818-6-2-8"
d="m 228.96484,-145.703 a 21.4302,21.4302 0 0 1 1.64915,30.26198 21.4302,21.4302 0 0 1 -30.262,1.64913 21.4302,21.4302 0 0 1 -1.64912,-30.26198 21.4302,21.4302 0 0 1 30.26197,-1.64913 z"
style="fill:#dbdb8b;stroke:#878578;stroke-width:1.5;stroke-miterlimit:10;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<g
id="text1152-1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.956604px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3489151"
aria-label="Fa"
transform="translate(0,2)">
<path
id="path1235"
style="stroke-width:0.3489151"
d="m 207.50264,-136.65969 h 7.08052 v 1.9831 h -4.45684 v 1.8945 h 4.19107 v 1.98309 h -4.19107 v 4.31373 h -2.62368 z"
inkscape:connector-curvature="0" />
<path
id="path1237"
style="stroke-width:0.3489151"
d="m 219.53067,-129.9199 q -0.76325,0 -1.15169,0.25896 -0.38163,0.25896 -0.38163,0.76325 0,0.4634 0.30666,0.72918 0.31348,0.25896 0.86548,0.25896 0.68829,0 1.1585,-0.49066 0.47022,-0.49748 0.47022,-1.24029 v -0.2794 z m 3.72767,-0.91999 v 4.35462 h -2.46013 v -1.13125 q -0.49066,0.69511 -1.10399,1.0154 -0.61332,0.31348 -1.49243,0.31348 -1.18576,0 -1.92857,-0.68829 -0.73599,-0.6951 -0.73599,-1.79909 0,-1.34251 0.91999,-1.96947 0.9268,-0.62695 2.90308,-0.62695 h 1.43791 v -0.19081 q 0,-0.57926 -0.45659,-0.84503 -0.45658,-0.27259 -1.42428,-0.27259 -0.78369,0 -1.45835,0.15674 -0.67466,0.15673 -1.25392,0.47021 v -1.86042 q 0.7837,-0.19082 1.57421,-0.28622 0.79051,-0.10222 1.58102,-0.10222 2.06487,0 2.97804,0.81777 0.92,0.81095 0.92,2.64412 z"
inkscape:connector-curvature="0" />
</g>
<path
id="circle2818-6-2-9"
d="m 230.44525,-197.2965 a 21.4302,21.4302 0 0 1 1.64915,30.26198 21.4302,21.4302 0 0 1 -30.262,1.64913 21.4302,21.4302 0 0 1 -1.64912,-30.26198 21.4302,21.4302 0 0 1 30.26197,-1.64913 z"
style="fill:#dbdb8b;stroke:#878578;stroke-width:1.5;stroke-miterlimit:10;stroke-dasharray:none"
inkscape:connector-curvature="0" />
<g
id="text1152-3"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.956604px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.3489151"
aria-label="F(Fa)">
<path
id="path1224"
style="stroke-width:0.3489151"
d="m 196.31053,-188.23819 h 7.08052 v 1.9831 h -4.45684 v 1.8945 h 4.19107 v 1.98309 h -4.19107 v 4.31373 h -2.62368 z"
inkscape:connector-curvature="0" />
<path
id="path1226"
style="stroke-width:0.3489151"
d="m 209.82418,-176.22378 h -2.02398 q -1.04266,-1.68325 -1.54014,-3.19612 -0.49747,-1.51969 -0.49747,-3.01212 0,-1.49243 0.49747,-3.01893 0.50429,-1.53332 1.54014,-3.20293 h 2.02398 q -0.87229,1.61509 -1.30844,3.16204 -0.43614,1.54013 -0.43614,3.04619 0,1.50606 0.42933,3.05301 0.43614,1.54695 1.31525,3.16886 z"
inkscape:connector-curvature="0" />
<path
id="path1228"
style="stroke-width:0.3489151"
d="m 212.22297,-188.23819 h 7.08052 v 1.9831 h -4.45684 v 1.8945 h 4.19107 v 1.98309 h -4.19107 v 4.31373 h -2.62368 z"
inkscape:connector-curvature="0" />
<path
id="path1230"
style="stroke-width:0.3489151"
d="m 224.251,-181.4984 q -0.76326,0 -1.1517,0.25896 -0.38162,0.25896 -0.38162,0.76325 0,0.46341 0.30666,0.72918 0.31348,0.25896 0.86547,0.25896 0.68829,0 1.15851,-0.49066 0.47022,-0.49748 0.47022,-1.24028 v -0.27941 z m 3.72766,-0.91999 v 4.35462 h -2.46012 v -1.13124 q -0.49066,0.6951 -1.10399,1.01539 -0.61333,0.31348 -1.49243,0.31348 -1.18577,0 -1.92857,-0.68829 -0.736,-0.6951 -0.736,-1.79909 0,-1.34251 0.91999,-1.96946 0.92681,-0.62696 2.90309,-0.62696 h 1.43791 v -0.19081 q 0,-0.57926 -0.45659,-0.84503 -0.45659,-0.27259 -1.42428,-0.27259 -0.7837,0 -1.45836,0.15674 -0.67466,0.15674 -1.25391,0.47021 v -1.86042 q 0.7837,-0.19081 1.57421,-0.28622 0.79051,-0.10222 1.58102,-0.10222 2.06487,0 2.97804,0.81777 0.91999,0.81095 0.91999,2.64412 z"
inkscape:connector-curvature="0" />
<path
id="path1232"
style="stroke-width:0.3489151"
d="m 230.19346,-176.22378 q 0.87229,-1.62191 1.30843,-3.16886 0.43614,-1.54695 0.43614,-3.05301 0,-1.50606 -0.43614,-3.04619 -0.43614,-1.54695 -1.30843,-3.16204 h 2.02398 q 1.03584,1.66961 1.53332,3.20293 0.50429,1.5265 0.50429,3.01893 0,1.49243 -0.49748,3.01212 -0.49747,1.51287 -1.54013,3.19612 z"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,444 @@
<?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"
viewBox="0 0 595.3 189.5"
version="1.1"
id="svg15613"
sodipodi:docname="functor_programming.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata
id="metadata15619">
<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>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1376"
id="namedview15615"
showgrid="false"
inkscape:zoom="2.2632155"
inkscape:cx="245.40313"
inkscape:cy="201.92561"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613" />
<g
id="g42748"
transform="matrix(1.5213308,-0.07988467,0.08179232,1.4676901,-217.03672,174.08098)" />
<ellipse
style="fill:#e6e7e8;stroke:none;stroke-width:2.21775842;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-4"
cy="103.85719"
cx="184.75946"
transform="matrix(0.99862421,-0.05243749,0.05564228,0.99845077,0,0)"
rx="92.885521"
ry="89.62603" />
<g
id="g42748-8"
transform="matrix(1.5213308,-0.07988467,0.08179232,1.4676901,142.4102,159.7901)" />
<ellipse
style="fill:#e6e7e8;stroke:none;stroke-width:2.16419768;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-4-1"
cy="119.02538"
cx="427.23254"
transform="matrix(0.99862421,-0.05243749,0.05564228,0.99845077,0,0)"
rx="90.642258"
ry="87.461487" />
<g
id="g24413"
style="stroke:#797979;stroke-width:2;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(1.065679,-0.07478639,0.05729482,1.3740212,5.0162041,31.58551)">
<g
style="display:inline;opacity:0.95400002;fill:#dddddd;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9"
transform="matrix(0.15815945,0.00363238,0.01383482,0.16867354,369.39957,-0.27464808)"
inkscape:transform-center-x="7.0770773"
inkscape:transform-center-y="-7.9306638">
<path
style="stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5"
d="M -1074.4393,218.2691 C -655.7613,162.8326 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-4"
transform="matrix(0.17388536,8.9640524e-4,0.01085518,0.21285148,347.87276,34.12266)"
inkscape:transform-center-x="7.7707699"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-3"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-3"
d="M -1065.3687,201.07536 C -646.69068,145.63886 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.95400002;fill:#dddddd;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-30"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,311.86057,53.39677)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-30"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-92"
d="M -1116.0146,210.41161 C -697.33657,154.97511 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.95400002;fill:#dddddd;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-5"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,270.41091,13.199776)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-4"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#626262;stroke-width:11.10534096;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-05"
d="M -1118.5689,206.40608 C -699.89091,150.96958 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-4-4"
transform="matrix(0.17835506,0.00124283,0.01154561,0.21290499,358.83554,39.226133)"
inkscape:transform-center-x="7.9716051"
inkscape:transform-center-y="-10.036942">
<path
style="stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-3-7"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-3-7"
d="M -1052.873,206.03932 C -634.19497,150.60282 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-4-1"
transform="matrix(0.17388536,8.9640884e-4,0.01085518,0.21285148,344.13502,26.174987)"
inkscape:transform-center-x="7.7707699"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-3-9"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-3-6"
d="M -1065.3687,201.07536 C -646.69068,145.63886 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-4-4-1"
transform="matrix(0.17835506,0.00124283,0.01154561,0.21290499,362.48043,46.826856)"
inkscape:transform-center-x="7.9716051"
inkscape:transform-center-y="-10.036942">
<path
style="stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-3-7-5"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-3-7-9"
d="M -1052.873,206.03932 C -634.19497,150.60282 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-4-4-1-9"
transform="matrix(0.17835506,0.00124283,0.01154561,0.21290499,332.6414,1.1875682)"
inkscape:transform-center-x="7.9716051"
inkscape:transform-center-y="-10.036942">
<path
style="stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-3-7-5-1"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:10.39722061;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-3-7-9-4"
d="M -1052.873,206.03932 C -634.19497,150.60282 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
</g>
<g
transform="matrix(1.133632,0.02513317,-0.02513317,1.133632,250.87632,-9.109814)"
id="g11661-6">
<path
id="path2810-6-7"
d="m 201.73938,59.808358 c 0,0 -0.1954,0.749543 -0.57137,2.020508 -0.19039,0.673416 -0.38578,1.422955 -0.66378,2.319009 -0.27815,0.896278 -0.56138,1.868283 -0.92726,2.987452 -1.38124,4.328898 -3.58089,9.974575 -6.20432,15.361477 -2.62276,5.386959 -5.74703,10.586829 -8.3346,14.297426 -1.2912,1.817648 -2.34852,3.4224 -3.14752,4.43506 l -0.48262,0.65284 6.60862,5.49701 c -6.2706,2.8437 -12.57471,5.07461 -18.82947,6.54544 1.87928,-6.35455 3.10156,-12.75493 3.72524,-18.9683 l 6.6137,5.4213 0.48212,-0.653158 c 0.79925,-1.012511 1.85172,-2.541381 3.0701,-4.363855 2.50957,-3.640115 5.5508,-8.692747 8.09605,-14.008897 2.61792,-5.311094 4.73508,-10.809892 6.11123,-15.063069 0.36114,-1.042889 0.64413,-2.015053 0.92242,-2.911595 0.27825,-0.895877 0.47365,-1.645404 0.65905,-2.242726 0.37572,-1.271131 0.56596,-1.944319 0.56596,-1.944319 z"
style="fill:#338000;stroke-width:0.08752304"
inkscape:connector-curvature="0" />
<path
id="path2812-2-5"
d="m 119.90886,83.109894 c 0,0 0.67769,-0.460316 1.8621,-1.215338 0.62059,-0.405083 1.29838,-0.865119 2.14393,-1.389974 0.84583,-0.524972 1.7482,-1.104967 2.81899,-1.749715 4.11441,-2.513486 9.79576,-5.563418 15.63207,-8.173433 5.83631,-2.610005 11.9385,-4.790103 16.57686,-6.140746 2.29086,-0.647929 4.2483,-1.267275 5.58759,-1.58267 l 0.83771,-0.222158 -1.3985,-7.982265 c 6.95035,1.42144 13.49982,3.329339 19.47989,5.789122 -5.92246,3.774645 -11.35646,7.960873 -16.18574,12.346861 l -1.45521,-7.926843 -0.83772,0.222155 c -1.33901,0.315316 -3.23966,0.879513 -5.47624,1.573178 -4.52728,1.341239 -10.46139,3.45639 -16.18663,6.057002 -5.77915,2.555078 -11.29244,5.540058 -15.35021,7.998794 -1.01372,0.589495 -1.91618,1.169225 -2.76201,1.694184 -0.84558,0.524863 -1.52324,0.985183 -2.08704,1.335118 a 225.44648,238.84961 0 0 0 -1.8051,1.159827 z"
style="fill:#338000;stroke-width:0.08752304"
inkscape:connector-curvature="0" />
<path
id="path2810-6-9"
d="m 161.20448,115.65007 c 0,0 0.20969,-0.5866 0.60103,-1.58011 0.20029,-0.52663 0.40997,-1.11323 0.69623,-1.81332 0.2864,-0.70027 0.58224,-1.46019 0.95473,-2.3341 1.41356,-3.38119 3.57619,-7.78037 6.06001,-11.964032 2.4833,-4.18375 5.35514,-8.206546 7.6914,-11.067736 1.16339,-1.40093 2.12429,-2.63996 2.83625,-3.41836 l 0.43296,-0.50267 -4.90521,-4.51438 c 5.22569,-2.07952 10.43478,-3.67439 15.55046,-4.67042 -1.9562,4.967279 -3.38926,9.988099 -4.32944,14.877069 l -4.91466,-4.45474 -0.43259,0.50294 c -0.71214,0.77827 -1.66379,1.95752 -2.76917,3.36419 -2.26877,2.807602 -5.06363,6.716337 -7.47981,10.846227 -2.47404,4.123982 -4.56016,8.409362 -5.96427,11.730902 -0.36329,0.81382 -0.65894,1.57387 -0.94547,2.27434 -0.28645,0.69995 -0.49614,1.28654 -0.68704,1.75322 -0.39115,0.99365 -0.5913,1.5201 -0.5913,1.5201 z"
style="fill:#784421;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2816-8-87"
d="m 128.74128,92.965665 c 0,0 0.73394,-0.115761 1.98354,-0.359059 0.66112,-0.11956 1.39479,-0.235209 2.27757,-0.420686 0.88287,-0.185188 1.83818,-0.366752 2.94262,-0.617191 4.268,-0.933911 9.88018,-2.568648 15.2959,-4.677131 5.41545,-2.108384 10.71114,-4.763019 14.53207,-7.031964 1.874,-1.136524 3.51926,-2.053522 4.57234,-2.769928 l 0.67566,-0.427534 4.45393,7.564468 c 3.42295,-6.225335 6.2679,-12.558243 8.38648,-18.929488 -6.24822,1.21593 -12.46378,1.738763 -18.4326,1.657338 l 4.38138,7.560561 -0.67558,0.427835 c -1.05308,0.716393 -2.6259,1.636996 -4.49633,2.696382 -3.74441,2.195896 -8.89108,4.781377 -14.2304,6.816543 -5.34301,2.112006 -10.80639,3.677671 -15.00196,4.61521 -1.03153,0.254524 -1.98694,0.435811 -2.86973,0.621287 -0.8826,0.185091 -1.61617,0.301031 -2.20474,0.424493 -1.24972,0.243021 -1.91073,0.362866 -1.91073,0.362866 z"
style="fill:#338000;stroke-width:0.08752304"
inkscape:connector-curvature="0" />
<path
id="path2812-2-1"
d="m 170.426,127.67358 c 0,0 0.24147,-0.61422 0.68593,-1.65668 0.22859,-0.55216 0.47025,-1.16625 0.79397,-1.90159 0.32386,-0.73554 0.66032,-1.53276 1.07931,-2.45148 1.59354,-3.55276 3.98479,-8.1947 6.67848,-12.63524 2.69368,-4.44053 5.75895,-8.73922 8.22789,-11.814542 1.22807,-1.50688 2.24761,-2.835655 2.99431,-3.676855 l 0.45578,-0.541761 -4.54877,-4.333421 c 5.26192,-2.447819 10.4781,-4.398009 15.56628,-5.728589 -2.2228,5.21222 -3.93445,10.447842 -5.15379,15.518206 l -4.56131,-4.271424 -0.45578,0.541764 c -0.74656,0.84102 -1.75337,2.10792 -2.92465,3.6174 -2.39941,3.016062 -5.38247,7.193272 -8.00663,11.574552 -2.68062,4.37863 -4.98967,8.8991 -6.57042,12.39032 -0.40612,0.85666 -0.74277,1.65375 -1.06663,2.38929 -0.32373,0.73535 -0.56519,1.34957 -0.78105,1.83986 a 184.83124,184.83124 0 0 0 -0.67324,1.59449 z"
style="fill:#784421;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2816-8-0"
d="m 178.28882,129.75174 c 0,0 0.43508,-0.42519 1.1549,-1.1781 0.38499,-0.39259 0.81994,-0.81758 1.32229,-1.35799 0.50254,-0.54028 1.05485,-1.11309 1.675,-1.80073 2.41187,-2.63608 5.39891,-6.35738 8.04061,-10.28137 2.64157,-3.9238 4.95587,-8.13259 6.46533,-11.39101 0.72958,-1.61298 1.40675,-2.97841 1.78148,-3.933582 l 0.25499,-0.59269 6.38913,2.603542 c -0.54902,-5.548102 -1.5308,-10.885948 -3.01252,-15.898878 -3.5995,3.764269 -7.4916,7.078229 -11.4938,9.894766 l 6.33916,2.63593 -0.2548,0.59284 c -0.37473,0.95514 -1.00214,2.288032 -1.76432,3.850932 -1.49177,3.17586 -3.73842,7.26969 -6.36262,11.111 -2.5918,3.89126 -5.51131,7.49778 -7.87342,10.10133 -0.56986,0.65518 -1.12236,1.22786 -1.62471,1.76827 -0.50241,0.54009 -0.93717,0.96522 -1.27219,1.3254 -0.72002,0.75278 -1.10481,1.1455 -1.10481,1.1455 z"
style="fill:#784421;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2814-0-4"
d="m 170.23762,143.31013 c 0,0 -0.62754,-0.33227 -1.68777,-0.93405 -0.56244,-0.31152 -1.18998,-0.64379 -1.93653,-1.07934 -0.74638,-0.43572 -1.55771,-0.89236 -2.48803,-1.45233 -3.602,-2.13614 -8.26241,-5.26319 -12.66185,-8.69492 -4.39943,-3.43174 -8.59128,-7.25061 -11.55019,-10.28234 -1.44714,-1.50523 -2.73233,-2.76382 -3.53125,-3.67033 l -0.51814,-0.55672 -5.34014,4.43964 c -1.87457,-5.9905 -3.21795,-11.87448 -3.91186,-17.54864 5.30086,3.00924 10.70118,5.46659 15.99541,7.37061 l -5.27519,4.46056 0.51815,0.55672 c 0.79908,0.90666 2.01947,2.14417 3.47736,3.58812 2.90519,2.94932 6.97821,6.66507 11.32345,10.0146 4.33448,3.41081 8.87655,6.43451 12.41359,8.54976 0.86522,0.53888 1.67654,0.99553 2.42275,1.43109 0.74671,0.43572 1.3741,0.76816 1.87173,1.05859 1.06023,0.60177 1.62268,0.91329 1.62268,0.91329 z"
style="fill:#aa4400;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2810-6"
d="m 156.65358,113.85688 c 0,0 0.20969,-0.5866 0.60103,-1.58011 0.20029,-0.52663 0.40997,-1.11323 0.69623,-1.81332 0.2864,-0.70027 0.58224,-1.46019 0.95473,-2.3341 1.41356,-3.38119 3.57619,-7.78037 6.06001,-11.964036 2.4833,-4.18375 5.35514,-8.206542 7.6914,-11.067732 1.16339,-1.40093 2.12429,-2.63996 2.83625,-3.41836 l 0.43296,-0.50267 -4.90521,-4.51438 c 5.22569,-2.07952 10.43478,-3.67439 15.55046,-4.67042 -1.9562,4.96728 -3.38926,9.9881 -4.32944,14.87707 l -4.91466,-4.45474 -0.43259,0.50294 c -0.71214,0.77827 -1.66379,1.95752 -2.76917,3.36419 -2.26877,2.807602 -5.06363,6.716342 -7.47981,10.846232 -2.47404,4.123976 -4.56016,8.409356 -5.96427,11.730896 -0.36329,0.81382 -0.65894,1.57387 -0.94547,2.27434 -0.28645,0.69995 -0.49614,1.28654 -0.68704,1.75322 -0.39115,0.99365 -0.5913,1.5201 -0.5913,1.5201 z"
style="fill:#9d539f;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2812-2"
d="m 161.61255,122.77892 c 0,0 0.24147,-0.61422 0.68593,-1.65668 0.22859,-0.55216 0.47025,-1.16625 0.79397,-1.90159 0.32386,-0.73554 0.66032,-1.53276 1.07931,-2.45148 1.59354,-3.55276 3.98479,-8.1947 6.67848,-12.63524 2.69368,-4.440536 5.75895,-8.739226 8.22789,-11.814546 1.22807,-1.50688 2.24761,-2.83565 2.99431,-3.67685 l 0.45578,-0.541762 -4.54877,-4.33342 c 5.26192,-2.44782 10.4781,-4.39801 15.56628,-5.72859 -2.2228,5.21222 -3.93445,10.447842 -5.15379,15.518202 l -4.56131,-4.27142 -0.45578,0.54176 c -0.74656,0.84102 -1.75337,2.10792 -2.92465,3.6174 -2.39941,3.01606 -5.38247,7.193276 -8.00663,11.574556 -2.68062,4.37863 -4.98967,8.8991 -6.57042,12.39032 -0.40612,0.85666 -0.74277,1.65375 -1.06663,2.38929 -0.32373,0.73535 -0.56519,1.34957 -0.78105,1.83986 a 184.83124,184.83124 0 0 0 -0.67324,1.59449 z"
style="fill:#e90909;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2814-5"
d="m 173.74193,133.59789 c 0,0 0.53869,-0.46262 1.4399,-1.28363 0.47977,-0.42801 1.01847,-0.89063 1.65042,-1.48027 0.63176,-0.58976 1.32225,-1.21427 2.10599,-1.96581 3.04146,-2.87871 6.89646,-6.95753 10.42964,-11.27592 3.53318,-4.31839 6.77843,-8.96852 8.99496,-12.57872 1.07909,-1.7876 2.05468,-3.29888 2.63374,-4.35942 l 0.38244,-0.657386 6.18857,3.151056 c 0.50568,-6.256546 0.5168,-12.291926 -0.0592,-17.979258 -4.50563,4.105332 -9.23014,7.694362 -13.97333,10.720282 l 6.12984,3.18579 -0.38244,0.65739 c -0.57919,1.060716 -1.49624,2.537126 -2.59934,4.267326 -2.18233,3.51798 -5.33445,8.04129 -8.83292,12.26754 -3.47445,4.28364 -7.23684,8.23555 -10.21957,11.07953 -0.72489,0.7166 -1.41537,1.34111 -2.047,1.93068 -0.63208,0.58983 -1.17059,1.05258 -1.59182,1.44572 -0.9012,0.82101 -1.38098,1.24902 -1.38098,1.24902 z"
style="fill:#0e2db8;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2816-8"
d="m 171.94948,124.71567 c 0,0 0.43508,-0.42519 1.1549,-1.1781 0.38499,-0.39259 0.81994,-0.81758 1.32229,-1.35799 0.50254,-0.54028 1.05485,-1.11309 1.675,-1.80073 2.41187,-2.63608 5.39891,-6.35738 8.04061,-10.28137 2.64157,-3.9238 4.95587,-8.13259 6.46533,-11.391016 0.72958,-1.61298 1.40675,-2.97841 1.78148,-3.93357 l 0.25499,-0.59269 6.38913,2.60353 c -0.54902,-5.54809 -1.5308,-10.885942 -3.01252,-15.898872 -3.5995,3.76427 -7.4916,7.07823 -11.4938,9.894762 l 6.33916,2.63593 -0.2548,0.59284 c -0.37473,0.95515 -1.00214,2.28804 -1.76432,3.85093 -1.49177,3.175866 -3.73842,7.269696 -6.36262,11.111006 -2.5918,3.89126 -5.51131,7.49778 -7.87342,10.10133 -0.56986,0.65518 -1.12236,1.22786 -1.62471,1.76827 -0.50241,0.54009 -0.93717,0.96522 -1.27219,1.3254 -0.72002,0.75278 -1.10481,1.1455 -1.10481,1.1455 z"
style="fill:#04bd3d;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="circle268-6-9"
d="m 169.43455,118.74274 a 19.377501,19.377501 0 0 1 4.63041,27.00989 19.377501,19.377501 0 0 1 -27.0099,4.63041 19.377501,19.377501 0 0 1 -4.6304,-27.00989 19.377501,19.377501 0 0 1 27.00989,-4.63041 z"
style="opacity:0.12999998;stroke:#000000;stroke-width:4.72621632;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<path
id="circle2818-6"
d="m 172.91788,120.06934 a 20.827223,20.827223 0 0 1 -6.35904,28.75951 20.827223,20.827223 0 0 1 -28.75951,-6.35905 20.827223,20.827223 0 0 1 6.35905,-28.7595 20.827223,20.827223 0 0 1 28.7595,6.35904 z"
style="fill:#dbdb8b;stroke:#878578;stroke-width:2.45017958;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<text
id="text11431-9"
y="132.972"
x="141.17007"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.92882442px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.22322066"
xml:space="preserve"><tspan
id="tspan11815"
style="fill:#666666;stroke-width:0.22322066"
y="132.972"
x="141.17007"
sodipodi:role="line">[num]</tspan></text>
<path
id="circle268-8"
d="m 219.37511,46.099462 a 19.377501,19.377501 0 0 1 4.63041,27.00989 19.377501,19.377501 0 0 1 -27.00989,4.63041 19.377501,19.377501 0 0 1 -4.63041,-27.00989 19.377501,19.377501 0 0 1 27.00989,-4.63041 z"
style="opacity:0.12999998;stroke:#000000;stroke-width:4.72621632;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<path
id="circle2836-0"
d="m 222.30062,46.922742 a 20.827223,20.827223 0 0 1 -6.35904,28.75951 20.827223,20.827223 0 0 1 -28.75951,-6.35904 20.827223,20.827223 0 0 1 6.35905,-28.75951 20.827223,20.827223 0 0 1 28.7595,6.35904 z"
style="fill:#d9d98d;stroke:#878578;stroke-width:2.45017958;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<text
id="text11431-5-5"
y="60.537659"
x="190.30486"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.92882442px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.22322066"
xml:space="preserve"><tspan
id="tspan11813"
style="fill:#666666;stroke-width:0.22322066"
y="60.537659"
x="190.30486"
sodipodi:role="line">[bool]</tspan></text>
<path
id="path2810-5-6"
d="m 130.83859,81.55565 c 0,0 0.53646,-0.405623 1.48071,-1.074684 0.49348,-0.358191 1.02992,-0.763819 1.70564,-1.23008 0.67596,-0.466349 1.39477,-0.979832 2.2532,-1.554347 3.29409,-2.236506 7.89876,-4.986081 12.69881,-7.389308 4.79959,-2.403558 9.89161,-4.474785 13.80271,-5.802416 1.93422,-0.640397 3.57783,-1.240501 4.71713,-1.563848 l 0.70932,-0.222091 -2.2963,-6.35176 c 6.31932,0.783049 12.34982,1.978842 17.95158,3.648508 -4.72061,3.345317 -8.95574,6.996355 -12.63099,10.77709 l -2.33914,-6.304639 -0.7091,0.222509 c -1.13941,0.323145 -2.7403,0.875906 -4.62056,1.550033 -3.81447,1.314526 -8.7665,3.32483 -13.46966,5.714863 -4.75685,2.356226 -9.22213,5.044864 -12.47338,7.23424 -0.81557,0.52688 -1.53426,1.04057 -2.21047,1.507027 -0.67584,0.466046 -1.21228,0.87166 -1.6628,1.182431 -0.94414,0.669276 -1.43738,1.02738 -1.43738,1.02738 z"
style="fill:#668000;stroke-width:0.07425781"
inkscape:connector-curvature="0" />
<path
id="circle268-7-0"
d="m 127.91308,76.29116 a 19.377501,19.377501 0 0 1 4.63041,27.00989 19.377501,19.377501 0 0 1 -27.00989,4.63041 19.377501,19.377501 0 0 1 -4.63041,-27.00989 19.377501,19.377501 0 0 1 27.00989,-4.63041 z"
style="opacity:0.12999998;stroke:#000000;stroke-width:4.72621632;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<path
id="circle2836-7-0"
d="m 130.83859,77.11444 a 20.827223,20.827223 0 0 1 -6.35904,28.75951 20.827223,20.827223 0 0 1 -28.759505,-6.35904 20.827223,20.827223 0 0 1 6.359055,-28.75951 20.827223,20.827223 0 0 1 28.75949,6.35904 z"
style="fill:#d9d98d;stroke:#878578;stroke-width:2.45017958;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<text
id="text11431-5-2-4"
y="90.486259"
x="94.298012"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.92882442px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.22322066"
xml:space="preserve"><tspan
style="fill:#666666;stroke-width:0.22322066"
y="90.486259"
x="94.298012"
id="tspan11429-9-2-6"
sodipodi:role="line">[string]</tspan></text>
</g>
<g
transform="matrix(1.133632,0.02513317,-0.02513317,1.133632,5.4297971,-7.880138)"
id="g11661-6-6">
<path
id="path2814-0-4-7"
d="m 170.23762,143.31013 c 0,0 -0.62754,-0.33227 -1.68777,-0.93405 -0.56244,-0.31152 -1.18998,-0.64379 -1.93653,-1.07934 -0.74638,-0.43572 -1.55771,-0.89236 -2.48803,-1.45233 -3.602,-2.13614 -8.26241,-5.26319 -12.66185,-8.69492 -4.39943,-3.43174 -8.59128,-7.25061 -11.55019,-10.28234 -1.44714,-1.50523 -2.73233,-2.76382 -3.53125,-3.67033 l -0.51814,-0.55672 -5.34014,4.43964 c -1.87457,-5.9905 -3.21795,-11.87448 -3.91186,-17.54864 5.30086,3.00924 10.70118,5.46659 15.99541,7.37061 l -5.27519,4.46056 0.51815,0.55672 c 0.79908,0.90666 2.01947,2.14417 3.47736,3.58812 2.90519,2.94932 6.97821,6.66507 11.32345,10.0146 4.33448,3.41081 8.87655,6.43451 12.41359,8.54976 0.86522,0.53888 1.67654,0.99553 2.42275,1.43109 0.74671,0.43572 1.3741,0.76816 1.87173,1.05859 1.06023,0.60177 1.62268,0.91329 1.62268,0.91329 z"
style="fill:#aa4400;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2810-6-5"
d="m 156.65358,113.85688 c 0,0 0.20969,-0.5866 0.60103,-1.58011 0.20029,-0.52663 0.40997,-1.11323 0.69623,-1.81332 0.2864,-0.70027 0.58224,-1.46019 0.95473,-2.3341 1.41356,-3.38119 3.57619,-7.78037 6.06001,-11.964036 2.4833,-4.18375 5.35514,-8.206542 7.6914,-11.067732 1.16339,-1.40093 2.12429,-2.63996 2.83625,-3.41836 l 0.43296,-0.50267 -4.90521,-4.51438 c 5.22569,-2.07952 10.43478,-3.67439 15.55046,-4.67042 -1.9562,4.96728 -3.38926,9.9881 -4.32944,14.87707 l -4.91466,-4.45474 -0.43259,0.50294 c -0.71214,0.77827 -1.66379,1.95752 -2.76917,3.36419 -2.26877,2.807602 -5.06363,6.716342 -7.47981,10.846232 -2.47404,4.123976 -4.56016,8.409356 -5.96427,11.730896 -0.36329,0.81382 -0.65894,1.57387 -0.94547,2.27434 -0.28645,0.69995 -0.49614,1.28654 -0.68704,1.75322 -0.39115,0.99365 -0.5913,1.5201 -0.5913,1.5201 z"
style="fill:#9d539f;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2812-2-6"
d="m 161.61255,122.77892 c 0,0 0.24147,-0.61422 0.68593,-1.65668 0.22859,-0.55216 0.47025,-1.16625 0.79397,-1.90159 0.32386,-0.73554 0.66032,-1.53276 1.07931,-2.45148 1.59354,-3.55276 3.98479,-8.1947 6.67848,-12.63524 2.69368,-4.440536 5.75895,-8.739226 8.22789,-11.814546 1.22807,-1.50688 2.24761,-2.83565 2.99431,-3.67685 l 0.45578,-0.541762 -4.54877,-4.33342 c 5.26192,-2.44782 10.4781,-4.39801 15.56628,-5.72859 -2.2228,5.21222 -3.93445,10.447842 -5.15379,15.518202 l -4.56131,-4.27142 -0.45578,0.54176 c -0.74656,0.84102 -1.75337,2.10792 -2.92465,3.6174 -2.39941,3.01606 -5.38247,7.193276 -8.00663,11.574556 -2.68062,4.37863 -4.98967,8.8991 -6.57042,12.39032 -0.40612,0.85666 -0.74277,1.65375 -1.06663,2.38929 -0.32373,0.73535 -0.56519,1.34957 -0.78105,1.83986 a 184.83124,184.83124 0 0 0 -0.67324,1.59449 z"
style="fill:#e90909;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2814-5-9"
d="m 173.74193,133.59789 c 0,0 0.53869,-0.46262 1.4399,-1.28363 0.47977,-0.42801 1.01847,-0.89063 1.65042,-1.48027 0.63176,-0.58976 1.32225,-1.21427 2.10599,-1.96581 3.04146,-2.87871 6.89646,-6.95753 10.42964,-11.27592 3.53318,-4.31839 6.77843,-8.96852 8.99496,-12.57872 1.07909,-1.7876 2.05468,-3.29888 2.63374,-4.35942 l 0.38244,-0.657386 6.18857,3.151056 c 0.50568,-6.256546 0.5168,-12.291926 -0.0592,-17.979258 -4.50563,4.105332 -9.23014,7.694362 -13.97333,10.720282 l 6.12984,3.18579 -0.38244,0.65739 c -0.57919,1.060716 -1.49624,2.537126 -2.59934,4.267326 -2.18233,3.51798 -5.33445,8.04129 -8.83292,12.26754 -3.47445,4.28364 -7.23684,8.23555 -10.21957,11.07953 -0.72489,0.7166 -1.41537,1.34111 -2.047,1.93068 -0.63208,0.58983 -1.17059,1.05258 -1.59182,1.44572 -0.9012,0.82101 -1.38098,1.24902 -1.38098,1.24902 z"
style="fill:#0e2db8;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="path2816-8-8"
d="m 171.94948,124.71567 c 0,0 0.43508,-0.42519 1.1549,-1.1781 0.38499,-0.39259 0.81994,-0.81758 1.32229,-1.35799 0.50254,-0.54028 1.05485,-1.11309 1.675,-1.80073 2.41187,-2.63608 5.39891,-6.35738 8.04061,-10.28137 2.64157,-3.9238 4.95587,-8.13259 6.46533,-11.391016 0.72958,-1.61298 1.40675,-2.97841 1.78148,-3.93357 l 0.25499,-0.59269 6.38913,2.60353 c -0.54902,-5.54809 -1.5308,-10.885942 -3.01252,-15.898872 -3.5995,3.76427 -7.4916,7.07823 -11.4938,9.894762 l 6.33916,2.63593 -0.2548,0.59284 c -0.37473,0.95515 -1.00214,2.28804 -1.76432,3.85093 -1.49177,3.175866 -3.73842,7.269696 -6.36262,11.111006 -2.5918,3.89126 -5.51131,7.49778 -7.87342,10.10133 -0.56986,0.65518 -1.12236,1.22786 -1.62471,1.76827 -0.50241,0.54009 -0.93717,0.96522 -1.27219,1.3254 -0.72002,0.75278 -1.10481,1.1455 -1.10481,1.1455 z"
style="fill:#04bd3d;stroke-width:0.069713"
inkscape:connector-curvature="0" />
<path
id="circle268-6-9-7"
d="m 169.43455,118.74274 a 19.377501,19.377501 0 0 1 4.63041,27.00989 19.377501,19.377501 0 0 1 -27.0099,4.63041 19.377501,19.377501 0 0 1 -4.6304,-27.00989 19.377501,19.377501 0 0 1 27.00989,-4.63041 z"
style="opacity:0.12999998;stroke:#000000;stroke-width:4.72621632;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<path
id="circle2818-6-2"
d="m 172.91788,120.06934 a 20.827223,20.827223 0 0 1 -6.35904,28.75951 20.827223,20.827223 0 0 1 -28.75951,-6.35905 20.827223,20.827223 0 0 1 6.35905,-28.7595 20.827223,20.827223 0 0 1 28.7595,6.35904 z"
style="fill:#dbdb8b;stroke:#878578;stroke-width:2.45017958;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<text
id="text11431-9-8"
y="133.7122"
x="144.87108"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.92882442px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.22322066"
xml:space="preserve"><tspan
id="tspan11815-2"
style="fill:#666666;stroke-width:0.22322066"
y="133.7122"
x="144.87108"
sodipodi:role="line">num</tspan></text>
<path
id="circle268-8-9"
d="m 219.37511,46.099462 a 19.377501,19.377501 0 0 1 4.63041,27.00989 19.377501,19.377501 0 0 1 -27.00989,4.63041 19.377501,19.377501 0 0 1 -4.63041,-27.00989 19.377501,19.377501 0 0 1 27.00989,-4.63041 z"
style="opacity:0.12999998;stroke:#000000;stroke-width:4.72621632;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<path
id="circle2836-0-9"
d="m 222.30062,46.922742 a 20.827223,20.827223 0 0 1 -6.35904,28.75951 20.827223,20.827223 0 0 1 -28.75951,-6.35904 20.827223,20.827223 0 0 1 6.35905,-28.75951 20.827223,20.827223 0 0 1 28.7595,6.35904 z"
style="fill:#d9d98d;stroke:#878578;stroke-width:2.45017958;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<text
id="text11431-5-5-6"
y="60.537659"
x="194.74606"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.92882442px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.22322066"
xml:space="preserve"><tspan
id="tspan11813-0"
style="fill:#666666;stroke-width:0.22322066"
y="60.537659"
x="194.74606"
sodipodi:role="line">bool</tspan></text>
<path
id="path2810-5-6-2"
d="m 130.83859,81.55565 c 0,0 0.53646,-0.405623 1.48071,-1.074684 0.49348,-0.358191 1.02992,-0.763819 1.70564,-1.23008 0.67596,-0.466349 1.39477,-0.979832 2.2532,-1.554347 3.29409,-2.236506 7.89876,-4.986081 12.69881,-7.389308 4.79959,-2.403558 9.89161,-4.474785 13.80271,-5.802416 1.93422,-0.640397 3.57783,-1.240501 4.71713,-1.563848 l 0.70932,-0.222091 -2.2963,-6.35176 c 6.31932,0.783049 12.34982,1.978842 17.95158,3.648508 -4.72061,3.345317 -8.95574,6.996355 -12.63099,10.77709 l -2.33914,-6.304639 -0.7091,0.222509 c -1.13941,0.323145 -2.7403,0.875906 -4.62056,1.550033 -3.81447,1.314526 -8.7665,3.32483 -13.46966,5.714863 -4.75685,2.356226 -9.22213,5.044864 -12.47338,7.23424 -0.81557,0.52688 -1.53426,1.04057 -2.21047,1.507027 -0.67584,0.466046 -1.21228,0.87166 -1.6628,1.182431 -0.94414,0.669276 -1.43738,1.02738 -1.43738,1.02738 z"
style="fill:#668000;stroke-width:0.07425781"
inkscape:connector-curvature="0" />
<path
id="circle268-7-0-7"
d="m 127.91308,76.29116 a 19.377501,19.377501 0 0 1 4.63041,27.00989 19.377501,19.377501 0 0 1 -27.00989,4.63041 19.377501,19.377501 0 0 1 -4.63041,-27.00989 19.377501,19.377501 0 0 1 27.00989,-4.63041 z"
style="opacity:0.12999998;stroke:#000000;stroke-width:4.72621632;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<path
id="circle2836-7-0-6"
d="m 130.83859,77.11444 a 20.827223,20.827223 0 0 1 -6.35904,28.75951 20.827223,20.827223 0 0 1 -28.759505,-6.35904 20.827223,20.827223 0 0 1 6.359055,-28.75951 20.827223,20.827223 0 0 1 28.75949,6.35904 z"
style="fill:#d9d98d;stroke:#878578;stroke-width:2.45017958;stroke-miterlimit:10"
inkscape:connector-curvature="0" />
<text
id="text11431-5-2-4-1"
y="89.746063"
x="97.999016"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.92882442px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.22322066"
xml:space="preserve"><tspan
style="fill:#666666;stroke-width:0.22322066"
y="89.746063"
x="97.999016"
id="tspan11429-9-2-6-3"
sodipodi:role="line">string</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -0,0 +1,934 @@
<?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"
viewBox="0 0 595.3 189.5"
version="1.1"
id="svg15613"
sodipodi:docname="hom_functor.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata
id="metadata15619">
<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>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview15615"
showgrid="false"
inkscape:zoom="3.2012924"
inkscape:cx="299.28503"
inkscape:cy="78.338412"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613"
inkscape:pagecheckerboard="0" />
<g
id="g42748"
transform="matrix(1.1667859,0,0,1.1667859,-114.92403,-297.17723)" />
<circle
style="fill:#e6e7e8;stroke:none;stroke-width:1.9993701;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-4"
r="82.27652"
cy="89.637741"
cx="164.5625" />
<g
id="g42748-8"
transform="matrix(1.1667859,0,0,1.1667859,160.55876,-293.54399)" />
<circle
style="fill:#e6e7e8;stroke:none;stroke-width:1.9993701;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-4-1"
r="82.27652"
cy="92.646225"
cx="400.98407" />
<g
id="g11110"
transform="translate(19.823381,-222.45606)">
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:12.27708626;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-3"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,386.15735,62.792386)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:12.27708626;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-8"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:12.27708626;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-8"
d="M -1213.6691,224.87989 C -794.99112,169.44339 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:11.62240601;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-31"
transform="matrix(0.17007176,8.9640524e-4,0.01061711,0.21285148,350.12202,69.26571)"
inkscape:transform-center-x="7.6003409"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:11.62240601;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-89"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:11.62240601;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-6"
d="M -1043.7161,215.02653 C -625.03812,159.59003 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:11.4942503;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-4"
transform="matrix(0.17388536,8.9640524e-4,0.01085518,0.21285148,347.38122,34.643359)"
inkscape:transform-center-x="7.7707699"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:11.4942503;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-3"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:11.4942503;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-3"
d="m -1039.9385,215.01062 c 418.67795,-55.4365 1005.650864,-46.58162 1343.93265,1.702"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:11.48514557;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-38"
transform="matrix(0.17416114,8.9640524e-4,0.0108724,0.21285148,338.74248,30.368995)"
inkscape:transform-center-x="7.7830834"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:11.48514557;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-6"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:11.48514557;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-0"
d="M -1038.4818,216.00856 C -619.80381,160.57206 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:12.27708626;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-3-9"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,393.23173,66.059571)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:12.27708626;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-8-4"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:12.27708626;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-8-6"
d="M -1213.6691,224.87989 C -794.99112,169.44339 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:12.27708626;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-3-9-9"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,405.01921,74.220138)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:12.27708626;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-8-4-2"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:12.27708626;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-8-6-2"
d="m -1249.7436,215.09201 c 418.678,-55.4365 1215.455964,-46.66301 1553.73775,1.62061"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.422;fill:#dddddd;stroke:#797979;stroke-width:11.4942503;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-4-4"
transform="matrix(0.17388536,8.9640524e-4,0.01085518,0.21285148,310.09139,43.467019)"
inkscape:transform-center-x="7.7707699"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:11.4942503;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-3-7"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:11.4942503;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-3-7"
d="M -1035.655,204.92908 C -616.97699,149.49258 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<path
inkscape:transform-center-y="-0.16085094"
inkscape:transform-center-x="-5.2144259"
d="m 173.9714,113.40391 c -0.61537,0.36259 -1.26634,0.70751 -1.93938,1.04461 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68048 z"
id="path1478-7-9-0-19-0-7-5-4-9-3"
inkscape:connector-curvature="0"
style="display:inline;opacity:0.40141697;fill:#757575;fill-opacity:1;stroke:#797979;stroke-width:2.21102357;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-0.16085094"
inkscape:transform-center-x="-5.2144259"
d="m 131.18816,85.334382 c -0.61537,0.36259 -1.26634,0.70751 -1.93938,1.04461 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68048 z"
id="path1478-7-9-0-19-0-7-5-4-9-3-7"
inkscape:connector-curvature="0"
style="display:inline;opacity:0.40141697;fill:#757575;fill-opacity:1;stroke:#797979;stroke-width:2.21102357;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-0.16085094"
inkscape:transform-center-x="-5.2144259"
d="m 159.10629,74.66224 c -0.61537,0.36259 -1.26634,0.70751 -1.93938,1.04461 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68048 z"
id="path1478-7-9-0-19-0-7-5-4-9-3-7-5"
inkscape:connector-curvature="0"
style="display:inline;opacity:0.40141697;fill:#757575;fill-opacity:1;stroke:#797979;stroke-width:2.21102357;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-0.16085094"
inkscape:transform-center-x="-5.2144259"
d="m 167.58519,78.796464 c -0.61537,0.36259 -1.26634,0.70751 -1.93938,1.04461 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68048 z"
id="path1478-7-9-0-19-0-7-5-4-9-3-7-5-3"
inkscape:connector-curvature="0"
style="display:inline;opacity:0.40141697;fill:#757575;fill-opacity:1;stroke:#797979;stroke-width:2.21102357;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-0.16085094"
inkscape:transform-center-x="-5.2144259"
d="m 202.1874,108.77978 c -0.61537,0.36259 -1.26634,0.70751 -1.93938,1.04461 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68048 z"
id="path1478-7-9-0-19-0-7-5-4-9-3-8"
inkscape:connector-curvature="0"
style="display:inline;opacity:0.40141697;fill:#757575;fill-opacity:1;stroke:#797979;stroke-width:2.21102357;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-0.16085094"
inkscape:transform-center-x="-5.2144259"
d="m 209.03473,112.20344 c -0.61537,0.36259 -1.26634,0.70751 -1.93938,1.04461 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68048 z"
id="path1478-7-9-0-19-0-7-5-4-9-3-9"
inkscape:connector-curvature="0"
style="display:inline;opacity:0.40141697;fill:#757575;fill-opacity:1;stroke:#797979;stroke-width:2.21102357;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
<path
inkscape:transform-center-y="-0.16085094"
inkscape:transform-center-x="-5.2144259"
d="m 215.4403,117.94637 c -0.61537,0.36259 -1.26634,0.70751 -1.93938,1.04461 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68048 z"
id="path1478-7-9-0-19-0-7-5-4-9-3-6"
inkscape:connector-curvature="0"
style="display:inline;opacity:0.40141697;fill:#757575;fill-opacity:1;stroke:#797979;stroke-width:2.21102357;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
id="g24413"
style="stroke:#797979;stroke-width:1.70000005;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.9961665,0,0,1,-3.123467,-9.7176179)">
<g
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,350.15926,12.31869)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5"
d="M -1092.5839,224.21578 C -673.90594,168.77928 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:9.36306;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-48"
transform="matrix(0.15440666,-0.0125511,0.02824849,0.21120298,390.18699,49.906451)"
inkscape:transform-center-x="7.4661902"
inkscape:transform-center-y="-6.9972289">
<path
style="stroke:#797979;stroke-width:9.36306;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-88"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.36306;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-9"
d="M -1035.5454,216.09493 C -616.86743,160.65843 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-7"
transform="matrix(0.15238508,-0.00323845,0.01532986,0.21251444,353.46307,84.062342)"
inkscape:transform-center-x="6.9874234"
inkscape:transform-center-y="-9.4876787">
<path
style="stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-7"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-64"
d="M -1103.8156,215.91705 C -685.13758,160.48055 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.76999996;fill:#dddddd;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-30"
transform="matrix(0.1523978,-0.00257705,0.01440026,0.21257896,318.21086,57.17912)"
inkscape:transform-center-x="6.9696025"
inkscape:transform-center-y="-10.696259">
<path
style="stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-30"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-92"
d="M -1082.4383,205.62815 C -663.76028,150.19165 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-5"
transform="matrix(0.1523751,-0.00367532,0.01594377,0.21246961,283.64025,29.833947)"
inkscape:transform-center-x="7.0217565"
inkscape:transform-center-y="-10.489227">
<path
style="stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-4"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-05"
d="M -1150.9814,193.32092 C -732.30349,137.88442 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
</g>
<g
id="g10229"
transform="matrix(0.57673261,0,0,0.57673261,12.512312,34.003076)">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15603-3-6"
r="18.334303"
cy="65.832329"
cx="152.99588" />
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.39405203;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6"
r="18.671675"
cy="37.181042"
cx="285.39355" />
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15605-4-4"
r="18.334303"
cy="163.15147"
cx="306.88229" />
<circle
transform="rotate(-84.232776)"
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.99253249;stroke-miterlimit:10"
id="circle3379-9"
r="16.369385"
cy="392.34567"
cx="-80.241524" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15603-3"
r="18.334303"
cy="59.150921"
cx="149.86938" />
<g
inkscape:transform-center-y="-0.73403693"
inkscape:transform-center-x="-12.157065"
transform="matrix(-0.13566577,0.22680277,-0.32622049,-0.17338087,359.95583,54.987467)"
id="g1482-7-0-1-0-3"
style="display:inline;fill:#dddddd;stroke:#483737;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0"
inkscape:connector-curvature="0"
style="stroke:#483737;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7"
inkscape:connector-curvature="0"
style="fill:none;stroke:#483737;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.39405203;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4"
r="18.671675"
cy="30.49963"
cx="280.26703" />
<g
inkscape:transform-center-y="-4.5768564"
inkscape:transform-center-x="-11.408259"
transform="matrix(-0.21605455,-0.15220095,-0.22774808,0.29088065,290.70694,52.449757)"
id="g1482-7-0-1-0-3-5-7"
style="display:inline;fill:#dddddd;stroke:#aa0000;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2"
inkscape:connector-curvature="0"
style="stroke:#aa0000;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7"
inkscape:connector-curvature="0"
style="fill:none;fill-opacity:1;stroke:#aa0000;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<circle
style="opacity:0.28400005;fill:#dedede;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10;stroke-opacity:1"
id="circle15605-2"
r="18.334303"
cy="112.26966"
cx="232.31758" />
<g
inkscape:transform-center-y="-12.167418"
inkscape:transform-center-x="0.5354074"
transform="matrix(0.22455705,0.13935147,-0.17868507,0.32334562,251.23249,27.461247)"
id="g1482-7-0-1-0-3-5"
style="display:inline;fill:#dddddd;stroke:#6c5353;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0"
inkscape:connector-curvature="0"
style="stroke:#6c5353;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6c5353;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="-4.576857"
inkscape:transform-center-x="11.40825"
transform="matrix(0.21605455,-0.15220095,0.22774808,0.29088065,235.55142,101.4738)"
id="g1482-7-0-1-0-3-5-7-2"
style="display:inline;fill:#dddddd;stroke:#806600;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2"
inkscape:connector-curvature="0"
style="stroke:#806600;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6"
inkscape:connector-curvature="0"
style="fill:none;stroke:#806600;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="4.5768618"
inkscape:transform-center-x="-11.40825"
transform="matrix(-0.21605455,0.15220095,-0.22774808,-0.29088065,442.7336,167.45992)"
id="g1482-7-0-1-0-3-5-7-2-1"
style="display:inline;fill:#dddddd;stroke:#445500;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-0"
inkscape:connector-curvature="0"
style="stroke:#445500;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-6"
inkscape:connector-curvature="0"
style="fill:none;stroke:#445500;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<circle
transform="rotate(-84.232776)"
style="fill:#fce600;stroke:#ffdd00;stroke-width:3.99253249;stroke-miterlimit:10"
id="circle3379"
r="16.369385"
cy="386.25748"
cx="-74.496361" />
<g
inkscape:transform-center-y="-11.849154"
inkscape:transform-center-x="2.8428186"
transform="matrix(-0.17782756,0.19550462,0.26038086,0.26207354,230.93391,-39.380283)"
id="g1482-7-0-1-0-3-1"
style="display:inline;fill:#dddddd;stroke:#806600;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-5"
inkscape:connector-curvature="0"
style="stroke:#806600;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-9"
inkscape:connector-curvature="0"
style="fill:none;stroke:#806600;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="-6.8316466"
inkscape:transform-center-x="10.541054"
transform="matrix(0.2383419,-0.11418335,0.17624638,0.32468131,239.75153,70.619936)"
id="g1482-7-0-1-0-3-5-7-2-4"
style="display:inline;fill:#dddddd;stroke:#000080;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-9"
inkscape:connector-curvature="0"
style="stroke:#000080;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 85.255937,126.08872 C 157.92012,89.606392 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-0"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000080;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15605-4"
r="18.334303"
cy="158.23784"
cx="301.04865" />
<g
inkscape:transform-center-y="-5.9764069"
inkscape:transform-center-x="17.904704"
transform="matrix(0.2632976,0.02278298,-0.01320828,0.36919681,278.45495,9.3341416)"
id="g1482-7-0-1-0-3-5-7-2-1-9"
style="display:inline;fill:#dddddd;stroke:#008080;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-0-2"
inkscape:connector-curvature="0"
style="stroke:#008080;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M -157.3255,134.14155 C 31.935057,95.050227 158.79812,83.706059 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-6-6"
inkscape:connector-curvature="0"
style="fill:none;stroke:#008080;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#ab6510;fill-opacity:1;stroke:#81510b;stroke-width:2.57022929;stroke-miterlimit:10;stroke-opacity:1"
id="circle15605"
r="18.334303"
cy="105.58823"
cx="227.19109" />
</g>
<g
id="g3087"
transform="matrix(0.8407428,0,0,0.8407428,123.09984,-145.72604)">
<g
style="display:inline;fill:#dddddd;stroke:#6c5353;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-79"
transform="matrix(0.12950937,0.08036854,-0.10305351,0.18648396,316.16556,235.62204)"
inkscape:transform-center-x="0.5354074"
inkscape:transform-center-y="-12.167418">
<path
style="stroke:#6c5353;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-20"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="fill:none;stroke:#6c5353;stroke-width:10.64900017;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-2"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
<g
style="display:inline;fill:#dddddd;stroke:#000080;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-7-2-4-2"
transform="matrix(0.11413213,-0.10102295,0.14909931,0.15220278,307.50489,277.29732)"
inkscape:transform-center-x="-12.202737"
inkscape:transform-center-y="-17.062169">
<path
style="stroke:#000080;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-2-2-9-9"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="fill:none;stroke:#000080;stroke-width:10.64900017;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-7-6-0-3"
d="M 85.255937,126.08872 C 157.92012,89.606392 277.68509,72.076365 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
<g
style="display:inline;fill:#dddddd;stroke:#806600;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-7-2-7"
transform="matrix(0.09575848,-0.11858368,0.17231783,0.12531105,310.05497,295.07389)"
inkscape:transform-center-x="12.176574"
inkscape:transform-center-y="-1.0997045">
<path
style="stroke:#806600;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-2-2-5"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="fill:none;stroke:#806600;stroke-width:10.64900017;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-7-6-9"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
<g
transform="translate(73.81148,-55.13838)"
id="g2801">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4"
r="18.248224"
cy="372.78882"
cx="276.29117" />
<g
inkscape:transform-center-y="-12.167418"
inkscape:transform-center-x="0.5354074"
transform="matrix(0.12950937,0.08036854,-0.10305351,0.18648396,265.45281,307.92594)"
id="g1482-7-0-1-0-3-5-3-7"
style="display:inline;fill:#dddddd;stroke:#6c5353;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-6-8"
inkscape:connector-curvature="0"
style="stroke:#6c5353;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 221.11047,92.077005 C 259.04107,79.702377 288.99015,79.779135 317.498,86.173"
id="path1480-1-3-1-5-7-4-75-4"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6c5353;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
</g>
<g
inkscape:transform-center-y="-36.22715"
inkscape:transform-center-x="-45.633218"
transform="rotate(-15.915477,-18.165135,-113.36898)"
id="g2801-5">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9-0"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4-3"
r="18.248224"
cy="372.78882"
cx="276.29117" />
<g
style="display:inline;fill:#dddddd;stroke:#806600;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-7-2-7-0"
transform="matrix(0.14368214,-0.05086471,0.0811612,0.19700039,224.22981,351.11859)"
inkscape:transform-center-x="9.7969213"
inkscape:transform-center-y="-7.8840881">
<path
style="stroke:#806600;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-2-2-5-6"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
style="fill:none;stroke:#806600;stroke-width:10.64900017;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-7-6-9-1"
d="m 231.629,84.189073 c 31.70983,-3.793522 63.99677,-5.046915 85.869,1.983927"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;fill:#dddddd;stroke:#000080;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-7-2-4-2-5"
transform="matrix(0.15046729,-0.02431815,0.04457909,0.20834825,230.31118,323.48472)"
inkscape:transform-center-x="8.299597"
inkscape:transform-center-y="-9.9327614">
<path
style="stroke:#000080;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-2-2-9-9-5"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="fill:none;stroke:#000080;stroke-width:10.64900017;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-7-6-0-3-4"
d="M 228.61826,90.421781 C 258.10543,82.0369 291.86094,78.982929 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
<g
inkscape:transform-center-y="-11.183243"
inkscape:transform-center-x="4.4788001"
transform="matrix(0.14865243,0.03367838,-0.03651756,0.20991131,238.40713,307.86025)"
id="g1482-7-0-1-0-3-5-3-7-6-7"
style="display:inline;fill:#dddddd;stroke:#6c5353;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-6-8-3-6"
inkscape:connector-curvature="0"
style="stroke:#6c5353;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 221.11047,92.077005 C 259.04107,79.702377 288.99015,79.779135 317.498,86.173"
id="path1480-1-3-1-5-7-4-75-4-2-5"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6c5353;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="-11.183235"
inkscape:transform-center-x="4.4788004"
transform="matrix(0.14865243,0.03367838,-0.03651756,0.20991131,237.47046,325.63403)"
id="g1482-7-0-1-0-3-5-3-7-6-7-6"
style="display:inline;fill:#dddddd;stroke:#6c5353;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-6-8-3-6-9"
inkscape:connector-curvature="0"
style="stroke:#6c5353;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 221.11047,92.077005 C 259.04107,79.702377 288.99015,79.779135 317.498,86.173"
id="path1480-1-3-1-5-7-4-75-4-2-5-3"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6c5353;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="1.236716"
inkscape:transform-center-x="16.706882"
transform="matrix(0.16412985,-0.00179513,0.01409999,0.22901345,235.39946,320.88097)"
id="g1482-7-0-1-0-3-5-7-2-1-9-6-5"
style="display:inline;fill:#dddddd;stroke:#008080;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-0-2-4-0"
inkscape:connector-curvature="0"
style="stroke:#008080;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 137.37708,90.981372 C 180.66847,79.28377 276.33303,80.01718 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-6-6-9-4"
inkscape:connector-curvature="0"
style="fill:none;stroke:#008080;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
</g>
<g
transform="rotate(9.3700153,1000.9822,261.44341)"
id="g2801-7-7">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9-4-4"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4-5-4"
r="18.248224"
cy="372.78882"
cx="276.29117" />
<g
style="display:inline;fill:#dddddd;stroke:#aa0000;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-7-6-8"
transform="matrix(-0.1246057,-0.08777925,-0.13134974,0.16776036,341.08026,357.69929)"
inkscape:transform-center-x="-11.408259"
inkscape:transform-center-y="-4.5768564">
<path
style="stroke:#aa0000;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-2-26-6"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="fill:none;fill-opacity:1;stroke:#aa0000;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-7-1-8"
d="M 229.66146,79.033709 C 256.02426,76.201248 288.78557,78.441578 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
</g>
<g
style="display:inline;fill:#dddddd;stroke:#aa0000;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-7-6"
transform="matrix(-0.10865184,-0.10689506,-0.15691021,0.14413701,354.8523,267.06023)"
inkscape:transform-center-x="-11.971852"
inkscape:transform-center-y="-2.4807492">
<path
style="stroke:#aa0000;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-2-26"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="fill:none;fill-opacity:1;stroke:#aa0000;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-7-1"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
<g
inkscape:transform-center-y="-0.73403693"
inkscape:transform-center-x="-12.157065"
transform="matrix(-0.09306398,0.15558212,-0.22378067,-0.11893578,403.14702,245.20237)"
id="g1482-7-0-1-0-3-4"
style="display:inline;fill:#dddddd;stroke:#483737;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-3"
inkscape:connector-curvature="0"
style="stroke:#483737;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-1"
inkscape:connector-curvature="0"
style="fill:none;stroke:#483737;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="-11.849154"
inkscape:transform-center-x="2.8428186"
transform="matrix(-0.12198612,0.13411223,0.17861602,0.17977717,314.64059,180.46799)"
id="g1482-7-0-1-0-3-1-4"
style="display:inline;fill:#dddddd;stroke:#806600;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-5-9"
inkscape:connector-curvature="0"
style="stroke:#806600;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-9-2"
inkscape:connector-curvature="0"
style="fill:none;stroke:#806600;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
transform="translate(67.109444,-133.78167)"
id="g2801-7-0">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9-4-6"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4-5-8"
r="18.248224"
cy="372.78882"
cx="276.29117" />
</g>
<g
inkscape:transform-center-y="-2.6785799"
inkscape:transform-center-x="18.475587"
transform="matrix(0.18064776,-0.01526707,0.03407484,0.25112233,312.08408,220.05739)"
id="g1482-7-0-1-0-3-5-7-2-1-9-6"
style="display:inline;fill:#dddddd;stroke:#008080;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-0-2-4"
inkscape:connector-curvature="0"
style="stroke:#008080;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M -157.3255,134.14155 C 31.935057,95.050227 158.79812,83.706059 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-6-6-9"
inkscape:connector-curvature="0"
style="fill:none;stroke:#008080;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
transform="translate(32.751057,-88.012193)"
id="g2801-7">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9-4"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4-5"
r="18.248224"
cy="372.78882"
cx="276.29117" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -0,0 +1,522 @@
<?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"
viewBox="0 0 595.3 189.5"
version="1.1"
id="svg15613"
sodipodi:docname="hom_set.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata
id="metadata15619">
<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>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview15615"
showgrid="false"
inkscape:zoom="2.2636556"
inkscape:cx="272.77923"
inkscape:cy="78.338412"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="g3087"
inkscape:pagecheckerboard="0" />
<g
id="g42748"
transform="matrix(1.3827459,0,0,1.3827459,-182.76663,-360.37941)" />
<ellipse
style="fill:#e6e7e8;stroke:none;stroke-width:2.28353667;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-4"
cy="94.85675"
cx="174.44997"
rx="97.505051"
ry="90.563744" />
<g
id="g42748-8"
transform="matrix(1.3827459,0,0,1.3827459,143.70517,-356.07369)" />
<ellipse
style="fill:#e6e7e8;stroke:none;stroke-width:2.28353667;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-4-1"
cy="96.168251"
cx="408.63071"
rx="97.505051"
ry="90.563744" />
<g
id="g10229"
transform="matrix(0.68347983,0,0,0.68347983,-5.743135,34.098941)">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15603-3-6"
r="18.334303"
cy="65.832329"
cx="152.99588" />
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.39405203;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6"
r="18.671675"
cy="37.181042"
cx="285.39355" />
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15605-4-4"
r="18.334303"
cy="163.15147"
cx="306.88229" />
<circle
transform="rotate(-84.232776)"
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.99253249;stroke-miterlimit:10"
id="circle3379-9"
r="16.369385"
cy="392.34567"
cx="-80.241524" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15603-3"
r="18.334303"
cy="59.150921"
cx="149.86938" />
<g
inkscape:transform-center-y="-0.73403693"
inkscape:transform-center-x="-12.157065"
transform="matrix(-0.13566577,0.22680277,-0.32622049,-0.17338087,359.95583,54.987467)"
id="g1482-7-0-1-0-3"
style="display:inline;fill:#dddddd;stroke:#483737;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0"
inkscape:connector-curvature="0"
style="stroke:#483737;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7"
inkscape:connector-curvature="0"
style="fill:none;stroke:#483737;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.39405203;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4"
r="18.671675"
cy="30.49963"
cx="280.26703" />
<g
inkscape:transform-center-y="-4.5768564"
inkscape:transform-center-x="-11.408259"
transform="matrix(-0.21605455,-0.15220095,-0.22774808,0.29088065,290.70694,52.449757)"
id="g1482-7-0-1-0-3-5-7"
style="display:inline;fill:#dddddd;stroke:#aa0000;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2"
inkscape:connector-curvature="0"
style="stroke:#aa0000;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7"
inkscape:connector-curvature="0"
style="fill:none;fill-opacity:1;stroke:#aa0000;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<circle
style="opacity:0.28400005;fill:#dedede;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10;stroke-opacity:1"
id="circle15605-2"
r="18.334303"
cy="112.26966"
cx="232.31758" />
<g
inkscape:transform-center-y="-12.167418"
inkscape:transform-center-x="0.5354074"
transform="matrix(0.22455705,0.13935147,-0.17868507,0.32334562,251.23249,27.461247)"
id="g1482-7-0-1-0-3-5"
style="display:inline;fill:#dddddd;stroke:#6c5353;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0"
inkscape:connector-curvature="0"
style="stroke:#6c5353;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6c5353;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="-4.576857"
inkscape:transform-center-x="11.40825"
transform="matrix(0.21605455,-0.15220095,0.22774808,0.29088065,235.55142,101.4738)"
id="g1482-7-0-1-0-3-5-7-2"
style="display:inline;fill:#dddddd;stroke:#806600;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2"
inkscape:connector-curvature="0"
style="stroke:#806600;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6"
inkscape:connector-curvature="0"
style="fill:none;stroke:#806600;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="4.5768618"
inkscape:transform-center-x="-11.40825"
transform="matrix(-0.21605455,0.15220095,-0.22774808,-0.29088065,442.7336,167.45992)"
id="g1482-7-0-1-0-3-5-7-2-1"
style="display:inline;fill:#dddddd;stroke:#445500;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-0"
inkscape:connector-curvature="0"
style="stroke:#445500;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-6"
inkscape:connector-curvature="0"
style="fill:none;stroke:#445500;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<circle
transform="rotate(-84.232776)"
style="fill:#fce600;stroke:#ffdd00;stroke-width:3.99253249;stroke-miterlimit:10"
id="circle3379"
r="16.369385"
cy="386.25748"
cx="-74.496361" />
<g
inkscape:transform-center-y="-11.849154"
inkscape:transform-center-x="2.8428186"
transform="matrix(-0.17782756,0.19550462,0.26038086,0.26207354,230.93391,-39.380283)"
id="g1482-7-0-1-0-3-1"
style="display:inline;fill:#dddddd;stroke:#806600;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-5"
inkscape:connector-curvature="0"
style="stroke:#806600;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-9"
inkscape:connector-curvature="0"
style="fill:none;stroke:#806600;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="-6.8316466"
inkscape:transform-center-x="10.541054"
transform="matrix(0.2383419,-0.11418335,0.17624638,0.32468131,239.75153,70.619936)"
id="g1482-7-0-1-0-3-5-7-2-4"
style="display:inline;fill:#dddddd;stroke:#000080;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-9"
inkscape:connector-curvature="0"
style="stroke:#000080;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 85.255937,126.08872 C 157.92012,89.606392 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-0"
inkscape:connector-curvature="0"
style="fill:none;stroke:#000080;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15605-4"
r="18.334303"
cy="158.23784"
cx="301.04865" />
<g
inkscape:transform-center-y="-5.9764069"
inkscape:transform-center-x="17.904704"
transform="matrix(0.2632976,0.02278298,-0.01320828,0.36919681,278.45495,9.3341416)"
id="g1482-7-0-1-0-3-5-7-2-1-9"
style="display:inline;fill:#dddddd;stroke:#008080;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-0-2"
inkscape:connector-curvature="0"
style="stroke:#008080;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M -157.3255,134.14155 C 31.935057,95.050227 158.79812,83.706059 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-6-6"
inkscape:connector-curvature="0"
style="fill:none;stroke:#008080;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#ab6510;fill-opacity:1;stroke:#81510b;stroke-width:2.57022929;stroke-miterlimit:10;stroke-opacity:1"
id="circle15605"
r="18.334303"
cy="105.58823"
cx="227.19109" />
</g>
<g
id="g3087"
transform="matrix(0.99635556,0,0,0.99635556,79.312994,-181.7797)">
<g
transform="translate(73.81148,-55.13838)"
id="g2801">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4"
r="18.248224"
cy="372.78882"
cx="276.29117" />
<g
inkscape:transform-center-y="-12.167418"
inkscape:transform-center-x="0.5354074"
transform="matrix(0.12950937,0.08036854,-0.10305351,0.18648396,265.45281,307.92594)"
id="g1482-7-0-1-0-3-5-3-7"
style="display:inline;fill:#dddddd;stroke:#6c5353;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-6-8"
inkscape:connector-curvature="0"
style="stroke:#6c5353;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 221.11047,92.077005 C 259.04107,79.702377 288.99015,79.779135 317.498,86.173"
id="path1480-1-3-1-5-7-4-75-4"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6c5353;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
</g>
<g
inkscape:transform-center-y="-36.22715"
inkscape:transform-center-x="-45.633218"
transform="rotate(-15.915477,-18.165135,-113.36898)"
id="g2801-5">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9-0"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4-3"
r="18.248224"
cy="372.78882"
cx="276.29117" />
<g
style="display:inline;fill:#dddddd;stroke:#806600;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-7-2-7-0"
transform="matrix(0.14368214,-0.05086471,0.0811612,0.19700039,224.22981,351.11859)"
inkscape:transform-center-x="9.7969213"
inkscape:transform-center-y="-7.8840881">
<path
style="stroke:#806600;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-2-2-5-6"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
style="fill:none;stroke:#806600;stroke-width:10.64900017;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-7-6-9-1"
d="m 231.629,84.189073 c 31.70983,-3.793522 63.99677,-5.046915 85.869,1.983927"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;fill:#dddddd;stroke:#000080;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-7-2-4-2-5"
transform="matrix(0.15046729,-0.02431815,0.04457909,0.20834825,230.31118,323.48472)"
inkscape:transform-center-x="8.299597"
inkscape:transform-center-y="-9.9327614">
<path
style="stroke:#000080;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-2-2-9-9-5"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="fill:none;stroke:#000080;stroke-width:10.64900017;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-7-6-0-3-4"
d="M 228.61826,90.421781 C 258.10543,82.0369 291.86094,78.982929 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
<g
inkscape:transform-center-y="-11.183243"
inkscape:transform-center-x="4.4788001"
transform="matrix(0.14865243,0.03367838,-0.03651756,0.20991131,238.40713,307.86025)"
id="g1482-7-0-1-0-3-5-3-7-6-7"
style="display:inline;fill:#dddddd;stroke:#6c5353;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-6-8-3-6"
inkscape:connector-curvature="0"
style="stroke:#6c5353;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 221.11047,92.077005 C 259.04107,79.702377 288.99015,79.779135 317.498,86.173"
id="path1480-1-3-1-5-7-4-75-4-2-5"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6c5353;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="-11.183235"
inkscape:transform-center-x="4.4788004"
transform="matrix(0.14865243,0.03367838,-0.03651756,0.20991131,237.47046,325.63403)"
id="g1482-7-0-1-0-3-5-3-7-6-7-6"
style="display:inline;fill:#dddddd;stroke:#6c5353;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-6-8-3-6-9"
inkscape:connector-curvature="0"
style="stroke:#6c5353;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 221.11047,92.077005 C 259.04107,79.702377 288.99015,79.779135 317.498,86.173"
id="path1480-1-3-1-5-7-4-75-4-2-5-3"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6c5353;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="1.236716"
inkscape:transform-center-x="16.706882"
transform="matrix(0.16412985,-0.00179513,0.01409999,0.22901345,235.39946,320.88097)"
id="g1482-7-0-1-0-3-5-7-2-1-9-6-5"
style="display:inline;fill:#dddddd;stroke:#008080;stroke-width:6.38899994;stroke-miterlimit:10">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-0-2-4-0"
inkscape:connector-curvature="0"
style="stroke:#008080;stroke-width:35.52600098" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 137.37708,90.981372 C 180.66847,79.28377 276.33303,80.01718 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-6-6-9-4"
inkscape:connector-curvature="0"
style="fill:none;stroke:#008080;stroke-width:10.64900017;paint-order:markers fill stroke" />
</g>
</g>
<g
transform="rotate(9.3700153,1000.9822,261.44341)"
id="g2801-7-7">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9-4-4"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4-5-4"
r="18.248224"
cy="372.78882"
cx="276.29117" />
<g
style="display:inline;fill:#dddddd;stroke:#aa0000;stroke-width:6.38899994;stroke-miterlimit:10"
id="g1482-7-0-1-0-3-5-7-6-8"
transform="matrix(-0.1246057,-0.08777925,-0.13134974,0.16776036,341.08026,357.69929)"
inkscape:transform-center-x="-11.408259"
inkscape:transform-center-y="-4.5768564">
<path
style="stroke:#aa0000;stroke-width:35.52600098"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-0-2-26-6"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z" />
<path
style="fill:none;fill-opacity:1;stroke:#aa0000;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-4-7-1-8"
d="M 229.66146,79.033709 C 256.02426,76.201248 288.78557,78.441578 317.498,86.173"
sodipodi:nodetypes="cc"
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)" />
</g>
</g>
<g
transform="translate(64.449169,-136.44195)"
id="g2801-7-0">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9-4-6"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4-5-8"
r="18.248224"
cy="372.78882"
cx="276.29117" />
</g>
<g
transform="translate(32.751057,-88.012193)"
id="g2801-7">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.31707907;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-3-9-4"
r="18.248224"
cy="375.31146"
cx="279.98264" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:1.51181102;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-5-4-5"
r="18.248224"
cy="372.78882"
cx="276.29117" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,521 @@
<?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"
viewBox="0 0 595.3 189.5"
version="1.1"
id="svg15613"
sodipodi:docname="identity_functor.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata
id="metadata15619">
<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>
<defs
id="defs15617" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1016"
id="namedview15615"
showgrid="false"
inkscape:zoom="2.2197933"
inkscape:cx="292.79938"
inkscape:cy="90.761743"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg15613" />
<g
id="g42748"
transform="matrix(1.1667859,0,0,1.1667859,-128.96393,-40.070981)" />
<circle
style="fill:#e6e7e8;stroke:none;stroke-width:2;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-4"
r="82.27652"
cy="96.532555"
cx="165.20418" />
<g
id="g42748-8"
transform="matrix(1.1667859,0,0,1.1667859,146.51886,-36.437748)" />
<circle
style="fill:#e6e7e8;stroke:none;stroke-width:2;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-4-1"
r="82.27652"
cy="96.165787"
cx="405.5" />
<g
id="g24413"
style="stroke:#797979;stroke-width:1.70000005;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
transform="matrix(0.9961665,0,0,1,2.2357052,0.08750086)">
<g
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,350.15926,12.31869)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5"
d="M -1067.5226,218.23997 C -648.84464,162.80347 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:9.36306;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-48"
transform="matrix(0.15491724,8.9640524e-4,0.00967106,0.21285148,404.34408,59.403543)"
inkscape:transform-center-x="6.9230971"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:9.36306;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-88"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.36306;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-9"
d="M -1035.5454,216.09493 C -616.86743,160.65843 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-7"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,368.70762,85.935732)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-7"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-64"
d="M -1103.8156,215.91705 C -685.13758,160.48055 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.76999996;fill:#dddddd;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-30"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,322.54449,55.801463)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-30"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-92"
d="M -1082.4383,205.62815 C -663.76028,150.19165 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<g
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="g1482-7-0-1-0-3-9-5"
transform="matrix(0.1524171,8.9640524e-4,0.00951498,0.21285148,278.94597,31.010149)"
inkscape:transform-center-x="6.8113705"
inkscape:transform-center-y="-10.036943">
<path
style="stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-4"
d="m 298.84692,219.75174 c 4.50048,-1.11094 9.19951,-2.10794 14.02668,-3.04881 -4.04495,-1.70563 -8.31549,-3.34171 -12.81219,-4.90893 -0.40756,2.77943 -0.49113,4.95944 -1.21449,7.95774 z" />
<path
style="fill:none;stroke:#797979;stroke-width:9.43953991;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"
inkscape:connector-curvature="0"
id="path1480-1-3-1-5-7-5-05"
d="M -1090.2767,203.19223 C -671.59874,147.75573 -34.287636,168.429 303.99415,216.71262"
sodipodi:nodetypes="cc" />
</g>
<path
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:1.70000005;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-5"
d="m 190.41254,56.769841 c -0.61537,0.362597 -1.26634,0.707512 -1.93938,1.044617 0.69322,0.232955 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.586464 -0.18353,-1.039469 -0.23078,-1.680487 z" />
<path
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:1.70000005;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-5-4"
d="m 115.37894,72.430021 c -0.61537,0.362597 -1.26634,0.707512 -1.93938,1.044617 0.69322,0.232955 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.586464 -0.18353,-1.039469 -0.23078,-1.680487 z" />
<path
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:1.70000005;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-5-8"
d="m 159.7755,97.825582 c -0.61537,0.3626 -1.26634,0.70752 -1.93938,1.04462 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68049 z" />
<path
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:1.70000005;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-5-1"
d="m 202.6191,130.16382 c -0.61537,0.3626 -1.26634,0.70752 -1.93938,1.04462 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68049 z" />
<path
style="display:inline;opacity:0.919;fill:#dddddd;stroke:#797979;stroke-width:1.70000005;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path1478-7-9-0-19-0-7-5-4-9"
d="m 245.61488,103.45947 c -0.61537,0.36259 -1.26634,0.70751 -1.93938,1.04461 0.69322,0.23296 1.41656,0.44487 2.17016,0.63587 -0.0831,-0.58646 -0.18353,-1.03947 -0.23078,-1.68048 z"
inkscape:transform-center-x="-5.2144259"
inkscape:transform-center-y="-0.16085094" />
</g>
<g
id="g10229"
transform="matrix(0.57673261,0,0,0.57673261,15.02822,39.023637)">
<circle
style="fill:#030303;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10;opacity:0.203"
id="circle15603-3-6"
r="18.334303"
cy="65.832329"
cx="152.99588" />
<circle
style="fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.39405203;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;opacity:0.203"
id="circle15601-9-4-6"
r="18.671675"
cy="37.181042"
cx="285.39355" />
<circle
style="fill:#030303;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10;opacity:0.203"
id="circle15605-4-4"
r="18.334303"
cy="163.15147"
cx="306.88229" />
<circle
transform="rotate(-84.232776)"
style="fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.99253249;stroke-miterlimit:10;opacity:0.203"
id="circle3379-9"
r="16.369385"
cy="392.34567"
cx="-80.241524" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15603-3"
r="18.334303"
cy="59.150921"
cx="149.86938" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.39405203;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4"
r="18.671675"
cy="30.49963"
cx="280.26703" />
<g
inkscape:transform-center-y="-4.5768564"
inkscape:transform-center-x="-11.408259"
transform="matrix(-0.21605455,-0.15220095,-0.22774808,0.29088065,290.70694,52.449757)"
id="g1482-7-0-1-0-3-5-7"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7"
inkscape:connector-curvature="0"
style="fill:none;fill-opacity:1;stroke:#7c7c7c;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#dedede;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10;stroke-opacity:1;opacity:0.284"
id="circle15605-2"
r="18.334303"
cy="112.26966"
cx="232.31758" />
<g
inkscape:transform-center-y="-12.167418"
inkscape:transform-center-x="0.5354074"
transform="matrix(0.22455705,0.13935147,-0.17868507,0.32334562,251.23249,27.461247)"
id="g1482-7-0-1-0-3-5"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4"
inkscape:connector-curvature="0"
style="fill:none;stroke:#7c7c7c;stroke-width:10.64900017;paint-order:markers fill stroke;stroke-opacity:1" />
</g>
<circle
style="fill:#ab6510;fill-opacity:1;stroke:#81510b;stroke-width:2.57022929;stroke-miterlimit:10;stroke-opacity:1"
id="circle15605"
r="18.334303"
cy="105.58823"
cx="227.19109" />
<g
inkscape:transform-center-y="4.5768618"
inkscape:transform-center-x="-11.40825"
transform="matrix(-0.21605455,0.15220095,-0.22774808,-0.29088065,442.7336,167.45992)"
id="g1482-7-0-1-0-3-5-7-2-1"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-0"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-6"
inkscape:connector-curvature="0"
style="fill:none;stroke:#7c7c7c;stroke-width:10.64900017;paint-order:markers fill stroke;stroke-opacity:1" />
</g>
<circle
transform="rotate(-84.232776)"
style="fill:#fce600;stroke:#ffdd00;stroke-width:3.99253249;stroke-miterlimit:10"
id="circle3379"
r="16.369385"
cy="386.25748"
cx="-74.496361" />
<g
inkscape:transform-center-y="-11.849154"
inkscape:transform-center-x="2.8428186"
transform="matrix(-0.17782756,0.19550462,0.26038086,0.26207354,230.93391,-39.380283)"
id="g1482-7-0-1-0-3-1"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-5"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-9"
inkscape:connector-curvature="0"
style="fill:none;stroke:#7c7c7c;stroke-width:10.64900017;paint-order:markers fill stroke;stroke-opacity:1" />
</g>
<g
inkscape:transform-center-y="-6.8316466"
inkscape:transform-center-x="10.541054"
transform="matrix(0.2383419,-0.11418335,0.17624638,0.32468131,239.75153,70.619936)"
id="g1482-7-0-1-0-3-5-7-2-4"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-9"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 85.255937,126.08872 C 157.92012,89.606392 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-0"
inkscape:connector-curvature="0"
style="fill:none;stroke:#7c7c7c;stroke-width:10.64900017;paint-order:markers fill stroke;stroke-opacity:1" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15605-4"
r="18.334303"
cy="158.23784"
cx="301.04865" />
</g>
<g
id="g10229-4"
transform="matrix(0.57673261,0,0,0.57673261,256.18279,45.597522)">
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15603-3-6-4"
r="18.334303"
cy="65.832329"
cx="152.99588" />
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.39405203;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-6-4"
r="18.671675"
cy="37.181042"
cx="285.39355" />
<circle
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15605-4-4-7"
r="18.334303"
cy="163.15147"
cx="306.88229" />
<circle
transform="rotate(-84.232776)"
style="opacity:0.203;fill:#030303;fill-opacity:1;stroke:none;stroke-width:3.99253249;stroke-miterlimit:10"
id="circle3379-9-6"
r="16.369385"
cy="392.34567"
cx="-80.241524" />
<circle
style="fill:#f58235;stroke:#e76524;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15603-3-3"
r="18.334303"
cy="59.150921"
cx="149.86938" />
<circle
style="fill:#e6e7e8;stroke:#bbbcbe;stroke-width:3.39405203;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
id="circle15601-9-4-1"
r="18.671675"
cy="30.49963"
cx="280.26703" />
<g
inkscape:transform-center-y="-4.5768564"
inkscape:transform-center-x="-11.408259"
transform="matrix(-0.21605455,-0.15220095,-0.22774808,0.29088065,290.70694,52.449757)"
id="g1482-7-0-1-0-3-5-7-7"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-5"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-9"
inkscape:connector-curvature="0"
style="fill:none;fill-opacity:1;stroke:#7c7c7c;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<circle
style="opacity:0.28400005;fill:#dedede;fill-opacity:1;stroke:none;stroke-width:2.57022929;stroke-miterlimit:10;stroke-opacity:1"
id="circle15605-2-6"
r="18.334303"
cy="112.26966"
cx="232.31758" />
<g
inkscape:transform-center-y="-12.167418"
inkscape:transform-center-x="0.5354074"
transform="matrix(0.22455705,0.13935147,-0.17868507,0.32334562,251.23249,27.461247)"
id="g1482-7-0-1-0-3-5-2"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-1"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-78"
inkscape:connector-curvature="0"
style="fill:none;stroke:#7c7c7c;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#ab6510;fill-opacity:1;stroke:#81510b;stroke-width:2.57022929;stroke-miterlimit:10;stroke-opacity:1"
id="circle15605-5"
r="18.334303"
cy="105.58823"
cx="227.19109" />
<g
inkscape:transform-center-y="4.5768618"
inkscape:transform-center-x="-11.40825"
transform="matrix(-0.21605455,0.15220095,-0.22774808,-0.29088065,442.7336,167.45992)"
id="g1482-7-0-1-0-3-5-7-2-1-7"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-0-4"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-6-1"
inkscape:connector-curvature="0"
style="fill:none;stroke:#7c7c7c;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<circle
transform="rotate(-84.232776)"
style="fill:#fce600;stroke:#ffdd00;stroke-width:3.99253249;stroke-miterlimit:10"
id="circle3379-8"
r="16.369385"
cy="386.25748"
cx="-74.496361" />
<g
inkscape:transform-center-y="-11.849154"
inkscape:transform-center-x="2.8428186"
transform="matrix(-0.17782756,0.19550462,0.26038086,0.26207354,230.93391,-39.380283)"
id="g1482-7-0-1-0-3-1-5"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-5-9"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 127.38575,78.377847 C 176.95734,66.301724 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-9-7"
inkscape:connector-curvature="0"
style="fill:none;stroke:#7c7c7c;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<g
inkscape:transform-center-y="-6.8316466"
inkscape:transform-center-x="10.541054"
transform="matrix(0.2383419,-0.11418335,0.17624638,0.32468131,239.75153,70.619936)"
id="g1482-7-0-1-0-3-5-7-2-4-5"
style="display:inline;fill:#dddddd;stroke:#7c7c7c;stroke-width:6.38899994;stroke-miterlimit:10;stroke-opacity:1">
<path
d="m 315.1,101.79 c 10.682,-4.135 21.77,-7.738 33.127,-11.074 -8.518,-8.139 -17.577,-16.01 -27.178,-23.616 -2.04,12.119 -3.103,21.663 -5.949,34.69 z"
transform="matrix(0.4768,-0.02932,0.03214,0.42867,147.58,197.367)"
id="path1478-7-9-0-19-0-0-2-2-9-3"
inkscape:connector-curvature="0"
style="stroke:#7c7c7c;stroke-width:35.52600098;stroke-opacity:1" />
<path
transform="matrix(0.89574,0,0,0.81736,18.384,154.236)"
sodipodi:nodetypes="cc"
d="M 85.255937,126.08872 C 157.92012,89.606392 277.68509,72.076365 317.498,86.173"
id="path1480-1-3-1-5-7-4-7-6-0-8"
inkscape:connector-curvature="0"
style="fill:none;stroke:#7c7c7c;stroke-width:10.64900017;stroke-opacity:1;paint-order:markers fill stroke" />
</g>
<circle
style="fill:#39bced;stroke:#008dd2;stroke-width:2.57022929;stroke-miterlimit:10"
id="circle15605-4-8"
r="18.334303"
cy="158.23784"
cx="301.04865" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:foo="foo"
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="595.3"
height="200"
version="1.1"
id="svg2850"
sodipodi:docname="order_category.svg"
inkscape:version="1.0.1 (0767f8302a, 2020-10-17)">
<metadata
id="metadata2856">
<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>
<defs
id="defs2854" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1376"
id="namedview2852"
showgrid="false"
inkscape:zoom="3.3021282"
inkscape:cx="294.10033"
inkscape:cy="100.74849"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="switch2848"
inkscape:document-rotation="0" />
<switch
transform="translate(0 -159)"
id="switch2848">
<g
foo:extraneous="self"
id="g2846"
transform="translate(3.5669904,3.3024829)">
<path
d="m 233.90488,242.24453 c 0,0 1.41544,-0.39525 3.86203,-0.99497 1.28716,-0.33166 2.70259,-0.7269 4.44092,-1.12928 1.73887,-0.40237 3.60547,-0.86779 5.79605,-1.34088 8.4378,-1.88359 19.85667,-3.71127 31.29803,-4.62676 11.4408,-0.91658 23.10088,-0.8656 31.79414,-0.26368 4.28303,0.33221 7.97841,0.49502 10.44747,0.80585 l 1.55796,0.14911 2.01242,-15.59721 c 11.12395,7.23177 21.29185,15.09177 30.17916,23.58768 -12.23184,2.99916 -23.85409,7.07882 -34.551,11.92814 l 1.88469,-15.53416 -1.55797,-0.14801 c -2.46906,-0.31138 -6.03671,-0.53778 -10.25176,-0.75048 -8.49811,-0.5449 -19.83365,-0.60301 -31.0793,0.36948 -11.31308,0.85299 -22.40852,2.673 -30.71859,4.49354 -2.0623,0.40896 -3.9289,0.87492 -5.66832,1.2773 -1.73832,0.40183 -3.15376,0.79707 -4.31264,1.06514 -2.44658,0.60027 -3.73319,0.93193 -3.73319,0.93193 z"
fill="#9d539f"
stroke-width="0.164458"
id="path2810" />
<path
d="m 223.47659,263.94971 c 0,0 1.51192,-0.37167 4.12516,-0.93576 1.37487,-0.31192 2.88679,-0.68305 4.74407,-1.06131 1.85783,-0.37825 3.85161,-0.81626 6.19185,-1.26084 9.0134,-1.77067 21.21126,-3.48871 33.43324,-4.34992 12.22198,-0.86121 24.67694,-0.81351 33.96334,-0.24778 4.57523,0.31247 8.52332,0.46597 11.16068,0.75815 l 1.66431,0.13979 2.14948,-14.66418 c 11.88264,6.7998 22.74455,14.18944 32.23872,22.17663 -13.06675,2.81936 -25.48224,6.65507 -36.90879,11.21385 l 2.01297,-14.60389 -1.66432,-0.13978 c -2.63681,-0.29219 -6.4484,-0.50543 -10.95127,-0.70498 -9.07753,-0.51256 -21.18659,-0.56738 -33.1997,0.347 -12.08494,0.80201 -23.93689,2.51292 -32.81433,4.22439 -2.20319,0.38483 -4.19697,0.82229 -6.05481,1.20054 -1.85727,0.37825 -3.36919,0.74993 -4.60756,1.0021 a 436.03056,436.03056 0 0 0 -3.98811,0.87547 z"
fill="#e90909"
stroke-width="0.164458"
id="path2812" />
<circle
cx="404.13599"
cy="270.74164"
r="45.712955"
id="circle268"
style="opacity:0.13;stroke:#000000;stroke-width:11.1495;stroke-miterlimit:10" />
<path
d="m 219.16286,302.04918 c 0,0 1.62484,0.4073 4.43379,1.02458 1.47793,0.34097 3.10278,0.74827 5.0993,1.16216 1.99652,0.41334 4.13996,0.89246 6.65507,1.37816 9.68768,1.93622 22.79499,3.80447 35.92533,4.72653 13.13034,0.92206 26.50736,0.83764 36.4801,0.18858 4.91291,-0.35687 9.15264,-0.53668 11.98407,-0.86615 l 1.78711,-0.15898 2.36161,16.21174 c 12.73893,-7.54918 24.37818,-15.74961 34.54717,-24.60678 -14.04472,-3.08523 -27.39324,-7.29535 -39.68265,-12.30859 l 2.21471,16.14595 -1.78711,0.15898 c -2.83198,0.32946 -6.92479,0.57451 -11.75986,0.80694 -9.74852,0.58931 -22.75442,0.6803 -35.66,-0.30041 -12.98342,-0.85628 -25.72015,-2.71904 -35.26092,-4.58948 -2.36765,-0.41991 -4.51108,-0.89903 -6.50705,-1.31237 -1.99707,-0.41389 -3.62192,-0.82065 -4.95294,-1.09639 -2.80894,-0.61726 -4.28687,-0.95824 -4.28687,-0.95824 z"
fill="#0e2db8"
stroke-width="0.164458"
id="path2814" />
<path
d="m 233.82814,286.49693 c 0,0 1.41159,0.25874 3.84229,0.61945 1.28058,0.20667 2.69163,0.46542 4.41679,0.69676 1.72517,0.23188 3.5808,0.5153 5.75001,0.77295 8.3627,1.05417 19.59902,1.73777 30.75531,1.48012 11.15574,-0.25765 22.41454,-1.53384 30.74655,-3.0655 4.10048,-0.79214 7.65278,-1.348 10.00289,-1.92745 l 1.48889,-0.3163 3.68934,15.85212 c 9.93766,-8.61542 18.88089,-17.77793 26.51723,-27.46067 -12.15345,-1.80466 -23.83821,-4.78629 -34.71492,-8.65763 l 3.55888,15.80004 -1.4889,0.31686 c -2.35011,0.57944 -5.77193,1.18684 -9.82034,1.84796 -8.1489,1.45326 -19.09414,2.70314 -30.06733,2.88185 -11.02528,0.30918 -21.94858,-0.40072 -30.1808,-1.40337 -2.03819,-0.20502 -3.89382,-0.48899 -5.61899,-0.72033 -1.72462,-0.23189 -3.13567,-0.49009 -4.28578,-0.64467 -2.43069,-0.36127 -3.71127,-0.56739 -3.71127,-0.56739 z"
fill="#04bd3d"
stroke-width="0.164458"
id="path2816" />
<circle
cx="200.04495"
cy="270.79187"
r="45.712955"
id="circle268-6"
style="opacity:0.13;stroke:#000000;stroke-width:11.1495;stroke-miterlimit:10" />
<circle
cy="173.33594"
cx="280.60294"
stroke-miterlimit="10"
transform="rotate(22.196)"
r="49.132961"
fill="#dbdb8b"
stroke="#878578"
stroke-width="5.78016"
id="circle2818" />
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;stroke-width:0.548194"
x="232.00705"
y="257.27814"
transform="rotate(-4.889)"
font-weight="700"
font-size="14.6187px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#9d539f"
id="text2822"><tspan
x="232.00705"
y="257.27814"
id="tspan2820"
style="stroke-width:0.548194">isEven</tspan></text>
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;stroke-width:0.548194"
x="231.94179"
y="275.37747"
transform="rotate(-4.227)"
font-weight="700"
font-size="14.6187px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#e90909"
id="text2826"><tspan
x="231.94179"
y="275.37747"
id="tspan2824"
style="stroke-width:0.548194">isOdd</tspan></text>
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;stroke-width:0.548194"
x="240.03967"
y="294.87997"
transform="rotate(-2.197)"
font-weight="700"
font-size="14.6187px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#04bd3d"
id="text2830"><tspan
x="240.03967"
y="294.87997"
id="tspan2828"
style="stroke-width:0.548194">isPrime</tspan></text>
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;stroke-width:0.548194"
x="275.95825"
y="302.50186"
transform="rotate(0.662)"
font-weight="700"
font-size="14.6187px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#0e2db8"
id="text2834"><tspan
x="275.95825"
y="302.50186"
id="tspan2832"
style="stroke-width:0.548194">&gt;0</tspan></text>
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start"
x="158.65335"
y="270.22379"
transform="rotate(0.221)"
font-weight="700"
font-size="16.6147px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#9d539f"
stroke-width="0.623296"
id="text2840"><tspan
x="158.65335"
y="270.22379"
fill="#797979"
id="tspan2838"
style="stroke-width:0.4138">number</tspan></text>
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;fill:#d45500;stroke-width:0.548194"
x="311.70355"
y="157.6181"
transform="rotate(5.4347187)"
font-weight="700"
font-size="14.6187px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#9d539f"
id="text2822-2"><tspan
x="311.70355"
y="157.6181"
id="tspan2820-9"
style="fill:#d45500;stroke-width:0.548194">toBit</tspan></text>
<circle
cy="96.078194"
cx="471.58591"
stroke-miterlimit="10"
transform="rotate(22.196)"
r="49.132961"
fill="#d9d98d"
stroke="#878578"
stroke-width="5.78016"
id="circle2836" />
<text
style="line-height:1.25;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start"
x="364.87466"
y="269.95184"
transform="rotate(0.221)"
font-weight="700"
font-size="16.6147px"
font-family="sans-serif"
letter-spacing="0"
word-spacing="0"
fill="#9d539f"
stroke-width="0.623296"
id="text2844"><tspan
x="364.87466"
y="269.95184"
fill="#797979"
id="tspan2842"
style="stroke-width:0.4138">boolean</tspan></text>
<g
id="g9775"
transform="matrix(0.82572983,0,0,0.82572983,58.271082,98.983539)">
<path
d="m 218.22815,109.35527 c -7.38305,14.27163 -13.38355,28.63245 -17.65523,42.89629 14.6729,-4.16347 29.35072,-6.82454 43.51498,-8.12144 z"
fill="#9d539f"
stroke-width="0.199167"
id="path2810-6"
style="fill:#d45500"
sodipodi:nodetypes="cccc" />
<path
style="fill:#000000;fill-opacity:0;stroke:#d45500;stroke-width:4.4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 227.78876,129.15039 c 47.69223,-35.157956 129.04722,-22.13645 156.55801,19.40978"
id="path9756"
sodipodi:nodetypes="cc" />
</g>
</g>
</switch>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -12,24 +12,20 @@ Natural transformations are really is the heart of category theory - As a matter
Objects are overrated
===
>The world is the collection of facts, not of things.
Ludwig Wittgenstein
> The world is the collection of facts, not of things.
> Ludwig Wittgenstein
Objects are all around us, both in mathematics and in real life - virtually everything that we see or imagine can be viewed as an object. Because of this, we might be inclined to think that the key to understanding the world is to understand what objects are. And this indeed is an idea shared between many people, you might even say that this is what set theory does.
Objects are all around us, both in mathematics and in real life - virtually everything that we see or imagine can be viewed as an object. Because of this, we might be inclined to think that the key to understanding the world is to understand what objects are. And this indeed is an idea shared between many people, you might even say that this is what set theory does - the main (some say only) concept of set theory is a concept of a set. When mathematicians say that "everything is a set", they are primarily saying that all objects can be represented by sets (although morphisms can be represented by sets as well.)
However there is another way to look at things. Because what is an object, when viewed by itself? Can we study just one object in isolation? And is there anything left to study about it, once it is detached from its environment? When we think hard about everyday objects we realize that each of them has a specific *function* or functions without which, it would be just a piece of junk, and in many ways it won't be an object at all. And this is even more so for mathematical objects which you cannot even recycle when they are no longer useful - functions, or relations are key.
However there is another way to look at things. Because, what is an object, when viewed by itself? Can we study an object in isolation? And is there anything left to study about it, once it is detached from its environment? When we think hard about everyday objects we realize that each of them has a specific *function* or functions without which, it would be just a piece of junk, and in many ways it won't be an object at all. And this is even more so for mathematical objects which you cannot even repurposed when they are no longer useful - functions, or relations, are key. So instead of thinking about objects which just happen to have some morphisms between them, we might take the opposite view and say that objects are only interesting as sources and targets of morphisms.
So instead of thinking about objects which just happen to have some morphisms between them, we might take the opposite view and say that objects are only interesting as domains and codomains of morphisms.
This view is best expressed by category theory and specifically by the notion of universal properties (limits) - as we said in the previous chapter universal properties define an object *up to a unique isomorphism*. This means that if there are two or more objects that are isomorphic to one another and have exactly the same morphisms to all other objects in the category, then these objects are for all intends and purposes equivalent.
This view is best expressed by category theory and specifically by the notion of universal properties (limits) - as we said universal properties define an object *up to a unique isomorphism*. This means that if there are two or more objects that are isomorphic to one another and have exactly the same morphisms to all other objects in the category, then these objects are for all intends and purposes equivalent.
Equivalence of categories
===
Are you ready to hear about natural transformations? Actually it is my opinion that you are not, so I would like to continue with something else. Let's ask ourselves the same question that we were poundering at the beginning of the previous chapter - what does it mean for two categories to be equal.
This question is even more interesting in the context of the category of categories. We said that categorical isomorphism is somewhat too rigid to accurately capture the concept of equality. And the paragraph above can serve as a good summary as to why this is the case: in isomorphic categories, isomorphic *objects* aren't considered equal, for example the following two categories are not isomorphic.
Are you ready to hear about natural transformations? Actually it is my opinion that you are not, so I would like to continue with something else. Let's ask ourselves the same question that we were poundering at the beginning of the previous chapter - what does it mean for two categories to be equal. This question is even more interesting in the context of the category of categories. We said that categorical isomorphism is somewhat too rigid to accurately capture the concept of equality. And the paragraph above can serve as a good summary as to why this is the case: in isomorphic categories, isomorphic *objects* aren't considered equal, for example the following two categories are not isomorphic.
![Simple non-isomorphic categories](simple_non_isomorphic_categories.svg)
@ -72,34 +68,51 @@ We already understand when to categories are equivalent, but to have a proper fo
Natural transformations
===
The progression that we made so far (morphisms -> functors -> natural transformations) might lure you into thinking that natural transformations are similar to morphisms and functors, they are actually not similar i.e. they are not "recursive". This is due to the fact that both normal morphisms and functors are morphisms between objects (or *1-morphisms*), while natural transformations are morphisms between morphisms (known as *2-morphisms*.)
The progression that we made so far (morphisms -> functors -> natural transformations) might lure you into thinking that natural transformations are similar to morphisms and functors. They are actually not similar, they are not "recursive", to be more precise: both normal morphisms and functors are morphisms between objects (or *1-morphisms*), but natural transformations are morphisms between morphisms (known as *2-morphisms*.)
But enough talking, let's draw some diagrams. We know that natural transformations are morphisms between functors, so let's draw two functors (I am omitting the arrows between objects for brevity.)
But enough talking, let's draw some diagrams.
We know that natural transformations are morphisms between functors, so let's draw two functors (I am omitting the arrows between objects for brevity.)
![Two functors](natural_functors_objects.svg)
Note that the functors are similar have the same signature - both their input and output categories are the same - this is a necessary (but not sufficient) condition for them to be connected by a natural transformation.
A functor is comprised of two components - object mapping and morphism mapping. So a natural transformatiom, being a morphism between functors should take those two components into account.
Object mapping mapping
---
Let's first connect the object mappings of the two functors (we only need to map their targets, because in the source there would always be mapping for all objects.)
A functor is comprised of two components - object mapping and morphism mapping, so a natural transformatiom, being a morphism between functors, should take those two mappings into account.
Let's first connect the object mappings of the two functors, creating what we called "object mapping mapping", but which is actually much simpler than it sounds - we only need to connect the functors' targets, because the sources would always be the same - both functors would include all object from the source category, and so mapping the two functors' object components involves nothing more than specifying a bunch of morphisms in the target category.
![Two functors](natural_transformation.svg)
When trying to establish a connection between the morphism mappings of the two functors, we realize that once the two object mappings are connected, *there is only one correct way to do that* - the one where the two projections (generated by the two functors) of every morphism of the source category are also connected in the target category, by the connection that we just made between the objects in the target category.
Note that the mappings between these objects does not have the character of a function, since not all objects are mapped to other objects.
So instead of adding a morphism structure, we have to check whether the object structure is correct, by makind sure that morphisms from one projection of the source category, correspond to morphisms in the other projection. Note that in this case the diagram would commute.
Morphism mapping mapping
---
Next up, we should connect the morphism mappings of the two functors. Here things are even simpler: as with the "object mapping mapping" we have to only worry the morphisms in the target category, that is, we only need to connect all morphisms that are mapped by one functor to morphisms that are mapped by another, but furthermore when we try to establish such connections, we would realize that *there is only one natural way to do it* once the connections between the object mappings are already established. That way is to take each morphism in the source category and to connect the two images that this morphism has (generated by the two functors), in the target category.
![Two functors](natural_functors.svg)
In other words, connecting the morphism mappings of the two functors is redundant - if we have the object mapping, we don't need it (or alternatively, if we have it, we don't need the object mapping.) We draw it just to verify that the object mapping that we specified indeed gives rise to a natural transformation. In this case we have just one morphism, so it is easy to see that it does.
Furthermore, following this condition is the only way for such a diagram to commute, so, in a very categorical fashion, natural transformations can be defined using diagrams. Here is the standard definition of natural transformation that you would see in most textbooks.
Definition
---
Before we finish up this chapter, let's distill the definition of natural transformations: A natural transformation between two functors **F** and **G**with source category **C** and a target category **D** (both functors have to have the same signature) is a collection of morphisms between objects in **D** that maps all target objects of functor **F** (or the image of **F** in **D** as it is also called) to target objects of functor **G**.
Furthermore, the mapping must be such that any morphism in **C** with a signature **X -> Y**, the object **F(X)** in **D** should always be mapped to **G(X)** and object **F(Y)** should be mapped to **G(Y)**.
Note that if the condition above (sometimes called the "naturality condition") is met, the below diagram would commute. This works the other way too - if the diagram commutes, the condition is met, so, in a very categorical fashion, natural transformations can be defined using this diagram.
![Two functors](natural_transformation_formula.svg)
If you look just a little bit closely, you will see that the only difference between the two diagrams is that in mine the morphisms are horizontally oriented, and they are shown vertically in the official definition.
If you look just a little bit closely, you will see that the only difference between this diagram and our example is that here morphisms are displayed vertically, while in the exam they are horizontal.
Limits and colimits
====
Interlude: Naturality explained
---
@ -108,8 +121,6 @@ Isomorphism is not hard to construct - given two sets, containing three objects
But most of these isomorphisms, are just random. In our studies we are only interested in structures that *make sense*. In category theory the abstract notion of making sense is captured by the naturality condition.
Limits and colimits
====
Adjunctions