1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-23 11:34:18 +00:00

I ran reformat code on the whole project

This commit is contained in:
Steffo 2020-08-05 02:52:06 +02:00
parent 3dee72f20e
commit c581c8d08e
74 changed files with 1349 additions and 1311 deletions

View file

@ -10,11 +10,11 @@ jobs:
check: check:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout the repository - name: Checkout the repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Install Python 3.8 - name: Install Python 3.8
uses: actions/setup-python@v2 uses: actions/setup-python@v2
with: with:
python-version: '3.8' python-version: '3.8'
- name: Check all .py files - name: Check all .py files
run: python -m compileall royalnet run: python -m compileall royalnet

View file

@ -8,13 +8,13 @@ jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout the repository - name: Checkout the repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Build and publish the package - name: Build and publish the package
uses: abatilo/actions-poetry@v1.5.0 uses: abatilo/actions-poetry@v1.5.0
env: env:
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.POETRY_PYPI_TOKEN_PYPI }} POETRY_PYPI_TOKEN_PYPI: ${{ secrets.POETRY_PYPI_TOKEN_PYPI }}
with: with:
python_version: 3.8 python_version: 3.8
poetry_version: 1.0 poetry_version: 1.0
args: publish --build args: publish --build

View file

@ -1,3 +1,3 @@
[defaults] [defaults]
org=stefano-pigozzi org = stefano-pigozzi
project=royalnet project = royalnet

View file

@ -2,289 +2,288 @@
<!-- Created with Inkscape (http://www.inkscape.org/) --> <!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg <svg
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="1280"
width="1280" height="640"
height="640" viewBox="0 0 338.66666 169.33335"
viewBox="0 0 338.66666 169.33335" version="1.1"
version="1.1" id="svg5014"
id="svg5014" inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)" sodipodi:docname="RoyalnetOpenGraph.svg"
sodipodi:docname="RoyalnetOpenGraph.svg" inkscape:export-filename="D:\Immagini\Royal Games\RoyalnetOpenGraph.png"
inkscape:export-filename="D:\Immagini\Royal Games\RoyalnetOpenGraph.png" inkscape:export-xdpi="211.64999"
inkscape:export-xdpi="211.64999" inkscape:export-ydpi="211.64999">
inkscape:export-ydpi="211.64999"> <defs
<defs id="defs5008">
id="defs5008"> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4740-4-9"
id="path-effect4740-4-9" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4814-3-0"
id="path-effect4814-3-0" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4740-4-3-2"
id="path-effect4740-4-3-2" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4814-3-8-6"
id="path-effect4814-3-8-6" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4814-3-2-3"
id="path-effect4814-3-2-3" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4740-4-8-2"
id="path-effect4740-4-8-2" is_visible="true"/>
is_visible="true" /> </defs>
</defs> <sodipodi:namedview
<sodipodi:namedview id="base"
id="base" pagecolor="#ffffff"
pagecolor="#ffffff" bordercolor="#666666"
bordercolor="#666666" borderopacity="1.0"
borderopacity="1.0" inkscape:pageopacity="0.0"
inkscape:pageopacity="0.0" inkscape:pageshadow="2"
inkscape:pageshadow="2" inkscape:zoom="0.7"
inkscape:zoom="0.7" inkscape:cx="668.89081"
inkscape:cx="668.89081" inkscape:cy="254.23617"
inkscape:cy="254.23617" inkscape:document-units="px"
inkscape:document-units="px" inkscape:current-layer="layer5"
inkscape:current-layer="layer5" showgrid="false"
showgrid="false" units="px"
units="px" inkscape:window-width="1920"
inkscape:window-width="1920" inkscape:window-height="1017"
inkscape:window-height="1017" inkscape:window-x="1272"
inkscape:window-x="1272" inkscape:window-y="-8"
inkscape:window-y="-8" inkscape:window-maximized="1"
inkscape:window-maximized="1" fit-margin-top="0"
fit-margin-top="0" fit-margin-left="0"
fit-margin-left="0" fit-margin-right="0"
fit-margin-right="0" fit-margin-bottom="0"/>
fit-margin-bottom="0" /> <metadata
<metadata id="metadata5011">
id="metadata5011"> <rdf:RDF>
<rdf:RDF> <cc:Work
<cc:Work rdf:about="">
rdf:about=""> <dc:format>image/svg+xml</dc:format>
<dc:format>image/svg+xml</dc:format> <dc:type
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title>
<dc:title></dc:title> </cc:Work>
</cc:Work> </rdf:RDF>
</rdf:RDF> </metadata>
</metadata>
<g
inkscape:label="Livello 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0.0932605,-127.66807)"
style="display:inline">
<rect
style="opacity:1;fill:#0d193b;fill-opacity:1;stroke:#a0cafd;stroke-width:0.06771223;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5872"
width="338.59897"
height="169.26562"
x="-0.059404384"
y="127.7019" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Livello 2"
transform="translate(0.0932605,37.040251)">
<g <g
transform="translate(39.454539,-188.4695)" inkscape:label="Livello 1"
id="g5736"> inkscape:groupmode="layer"
<text id="layer1"
transform="scale(0.90442695,1.1056725)" transform="translate(0.0932605,-127.66807)"
id="text4732" style="display:inline">
y="238.2995" <rect
x="23.705601" style="opacity:1;fill:#0d193b;fill-opacity:1;stroke:#a0cafd;stroke-width:0.06771223;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.64452839px;line-height:1.25;font-family:Impact;-inkscape-font-specification:'Impact Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#a0cafd;fill-opacity:1;stroke:none;stroke-width:0.34111318" id="rect5872"
xml:space="preserve"><tspan width="338.59897"
height="169.26562"
x="-0.059404384"
y="127.7019"/>
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Livello 2"
transform="translate(0.0932605,37.040251)">
<g
transform="translate(39.454539,-188.4695)"
id="g5736">
<text
transform="scale(0.90442695,1.1056725)"
id="text4732"
y="238.2995"
x="23.705601"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.64452839px;line-height:1.25;font-family:Impact;-inkscape-font-specification:'Impact Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:#a0cafd;fill-opacity:1;stroke:none;stroke-width:0.34111318"
xml:space="preserve"><tspan
style="font-size:65.49373627px;fill:#a0cafd;fill-opacity:1;stroke-width:0.34111318" style="font-size:65.49373627px;fill:#a0cafd;fill-opacity:1;stroke-width:0.34111318"
y="238.2995" y="238.2995"
x="23.705601" x="23.705601"
id="tspan4730" id="tspan4730"
sodipodi:role="line">Royalnet</tspan></text> sodipodi:role="line">Royalnet</tspan></text>
<g <g
transform="translate(-2.0864727,107.37549)" transform="translate(-2.0864727,107.37549)"
id="g4801" id="g4801"
style="display:inline"> style="display:inline">
<g <g
transform="translate(0,-1.5472047)" transform="translate(0,-1.5472047)"
id="g4806"> id="g4806">
<path <path
sodipodi:nodetypes="ccccc" sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path4734" id="path4734"
d="m 72.008205,108.22192 c -1.298662,-0.12455 -2.528663,-0.16144 -4.015472,-0.0311 L 49.036385,96.196667 50.579489,94.565515 Z" d="m 72.008205,108.22192 c -1.298662,-0.12455 -2.528663,-0.16144 -4.015472,-0.0311 L 49.036385,96.196667 50.579489,94.565515 Z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<ellipse <ellipse
ry="5.6216612" ry="5.6216612"
rx="5.4344773" rx="5.4344773"
cy="91.733978" cy="91.733978"
cx="44.573582" cx="44.573582"
id="path4736" id="path4736"
style="opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> style="opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path <path
sodipodi:nodetypes="cccccccc" sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z" inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-9" inkscape:path-effect="#path-effect4740-4-9"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path4738" id="path4738"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z" d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
<g
transform="translate(-41.369474,20.791663)"
id="g4849"
style="display:inline">
<path
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.24182,195.63617 c 0.52356,-0.68844 1.23943,-1.19659 2.1157,-1.55436 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"/>
<ellipse
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526"/>
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-0"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459"/>
</g>
<g
transform="matrix(-1,0,0,1,224.10371,96.838062)"
id="g4801-9"
style="display:inline">
<g
transform="rotate(24.954103,74.609956,111.66802)"
id="g4806-3">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path4734-0"
d="m 72.008205,108.22192 -2.297446,1.06532 -20.674374,-13.090573 1.543104,-1.631152 z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<ellipse
ry="5.6216612"
rx="5.4344773"
cy="91.733978"
cx="44.573582"
id="path4736-1"
style="opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path
sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-3-2"
inkscape:connector-curvature="0"
id="path4738-5"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
<g
inkscape:transform-center-y="-6.6298922"
inkscape:transform-center-x="-14.065358"
transform="matrix(-0.84226589,-0.53906235,-0.53906235,0.84226589,422.81566,139.44738)"
id="g4849-9"
style="display:inline">
<path
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.01691,195.44483 c 0,0 1.03691,-0.78683 2.34061,-1.36302 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"/>
<ellipse
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810-9"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526"/>
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812-9"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-8-6"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459"/>
</g>
<g
transform="rotate(-130.0044,153.8328,239.47705)"
id="g4849-4"
style="display:inline">
<path
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.32889,195.84023 c 0.55471,-0.68202 1.24114,-1.24509 2.02863,-1.75842 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"/>
<ellipse
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810-6"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526"/>
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812-3"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-2-3"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459"/>
</g>
<g
transform="rotate(180,116.68483,185.47497)"
id="g4801-1"
style="display:inline">
<g
transform="translate(0,-1.5472047)"
id="g4806-9">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path4734-4"
d="m 72.008205,108.22192 -4.027874,0.002 -18.943946,-12.027223 1.543104,-1.631152 z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<ellipse
ry="5.6216612"
rx="5.4344773"
cy="91.733978"
cx="44.573582"
id="path4736-6"
style="opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path
sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-8-2"
inkscape:connector-curvature="0"
id="path4738-6"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
</g> </g>
</g>
<g
transform="translate(-41.369474,20.791663)"
id="g4849"
style="display:inline">
<path
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.24182,195.63617 c 0.52356,-0.68844 1.23943,-1.19659 2.1157,-1.55436 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<ellipse
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526" />
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-0"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459" />
</g>
<g
transform="matrix(-1,0,0,1,224.10371,96.838062)"
id="g4801-9"
style="display:inline">
<g
transform="rotate(24.954103,74.609956,111.66802)"
id="g4806-3">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path4734-0"
d="m 72.008205,108.22192 -2.297446,1.06532 -20.674374,-13.090573 1.543104,-1.631152 z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<ellipse
ry="5.6216612"
rx="5.4344773"
cy="91.733978"
cx="44.573582"
id="path4736-1"
style="opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-3-2"
inkscape:connector-curvature="0"
id="path4738-5"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
<g
inkscape:transform-center-y="-6.6298922"
inkscape:transform-center-x="-14.065358"
transform="matrix(-0.84226589,-0.53906235,-0.53906235,0.84226589,422.81566,139.44738)"
id="g4849-9"
style="display:inline">
<path
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.01691,195.44483 c 0,0 1.03691,-0.78683 2.34061,-1.36302 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<ellipse
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810-9"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526" />
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812-9"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-8-6"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459" />
</g>
<g
transform="rotate(-130.0044,153.8328,239.47705)"
id="g4849-4"
style="display:inline">
<path
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.32889,195.84023 c 0.55471,-0.68202 1.24114,-1.24509 2.02863,-1.75842 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<ellipse
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810-6"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526" />
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812-3"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-2-3"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459" />
</g>
<g
transform="rotate(180,116.68483,185.47497)"
id="g4801-1"
style="display:inline">
<g
transform="translate(0,-1.5472047)"
id="g4806-9">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path4734-4"
d="m 72.008205,108.22192 -4.027874,0.002 -18.943946,-12.027223 1.543104,-1.631152 z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<ellipse
ry="5.6216612"
rx="5.4344773"
cy="91.733978"
cx="44.573582"
id="path4736-6"
style="opacity:1;fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-8-2"
inkscape:connector-curvature="0"
id="path4738-6"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:#a0cafd;fill-opacity:1;stroke:#a0cafd;stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</g> </g>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View file

@ -2,319 +2,318 @@
<!-- Created with Inkscape (http://www.inkscape.org/) --> <!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg <svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#" xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="1280"
width="1280" height="640"
height="640" viewBox="0 0 338.66666 169.33335"
viewBox="0 0 338.66666 169.33335" version="1.1"
version="1.1" id="svg5014"
id="svg5014" inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)" sodipodi:docname="RoyalnetTemplateOpenGraph.svg"
sodipodi:docname="RoyalnetTemplateOpenGraph.svg" inkscape:export-filename="D:\Immagini\Royal Games\RoyalnetOpenGraph.png"
inkscape:export-filename="D:\Immagini\Royal Games\RoyalnetOpenGraph.png" inkscape:export-xdpi="211.64999"
inkscape:export-xdpi="211.64999" inkscape:export-ydpi="211.64999">
inkscape:export-ydpi="211.64999"> <defs
<defs id="defs5008">
id="defs5008"> <linearGradient
<linearGradient id="linearGradient2343">
id="linearGradient2343"> <stop
<stop style="stop-color:#000000;stop-opacity:1;"
style="stop-color:#000000;stop-opacity:1;" offset="0"
offset="0" id="stop2341"/>
id="stop2341" /> </linearGradient>
</linearGradient> <linearGradient
<linearGradient id="linearGradient2337"
id="linearGradient2337" osb:paint="solid">
osb:paint="solid"> <stop
<stop style="stop-color:#a0cafd;stop-opacity:1;"
style="stop-color:#a0cafd;stop-opacity:1;" offset="0"
offset="0" id="stop2335"/>
id="stop2335" /> </linearGradient>
</linearGradient> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4740-4-9"
id="path-effect4740-4-9" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4814-3-0"
id="path-effect4814-3-0" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4740-4-3-2"
id="path-effect4740-4-3-2" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4814-3-8-6"
id="path-effect4814-3-8-6" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4814-3-2-3"
id="path-effect4814-3-2-3" is_visible="true"/>
is_visible="true" /> <inkscape:path-effect
<inkscape:path-effect effect="spiro"
effect="spiro" id="path-effect4740-4-8-2"
id="path-effect4740-4-8-2" is_visible="true"/>
is_visible="true" /> <linearGradient
<linearGradient inkscape:collect="always"
inkscape:collect="always" xlink:href="#linearGradient2337"
xlink:href="#linearGradient2337" id="linearGradient2339"
id="linearGradient2339" x1="26.221311"
x1="26.221311" y1="215.38629"
y1="215.38629" x2="260.77929"
x2="260.77929" y2="215.38629"
y2="215.38629" gradientUnits="userSpaceOnUse"/>
gradientUnits="userSpaceOnUse" /> </defs>
</defs> <sodipodi:namedview
<sodipodi:namedview id="base"
id="base" pagecolor="#ffffff"
pagecolor="#ffffff" bordercolor="#666666"
bordercolor="#666666" borderopacity="1.0"
borderopacity="1.0" inkscape:pageopacity="0.0"
inkscape:pageopacity="0.0" inkscape:pageshadow="2"
inkscape:pageshadow="2" inkscape:zoom="0.7"
inkscape:zoom="0.7" inkscape:cx="393.17652"
inkscape:cx="393.17652" inkscape:cy="331.37903"
inkscape:cy="331.37903" inkscape:document-units="px"
inkscape:document-units="px" inkscape:current-layer="g5736"
inkscape:current-layer="g5736" showgrid="false"
showgrid="false" units="px"
units="px" inkscape:window-width="1920"
inkscape:window-width="1920" inkscape:window-height="1017"
inkscape:window-height="1017" inkscape:window-x="1272"
inkscape:window-x="1272" inkscape:window-y="-8"
inkscape:window-y="-8" inkscape:window-maximized="1"
inkscape:window-maximized="1" fit-margin-top="0"
fit-margin-top="0" fit-margin-left="0"
fit-margin-left="0" fit-margin-right="0"
fit-margin-right="0" fit-margin-bottom="0"/>
fit-margin-bottom="0" /> <metadata
<metadata id="metadata5011">
id="metadata5011"> <rdf:RDF>
<rdf:RDF> <cc:Work
<cc:Work rdf:about="">
rdf:about=""> <dc:format>image/svg+xml</dc:format>
<dc:format>image/svg+xml</dc:format> <dc:type
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title>
<dc:title></dc:title> </cc:Work>
</cc:Work> </rdf:RDF>
</rdf:RDF> </metadata>
</metadata>
<g
inkscape:label="Livello 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0.0932605,-127.66807)"
style="display:inline">
<rect
style="opacity:1;fill:#0d193b;fill-opacity:1;stroke:#a0cafd;stroke-width:0.06771223;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5872"
width="338.59897"
height="169.26562"
x="-0.059404384"
y="127.7019" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Livello 2"
transform="translate(0.0932605,37.040251)">
<g <g
transform="translate(39.454539,-188.4695)" inkscape:label="Livello 1"
id="g5736" inkscape:groupmode="layer"
style="stroke:url(#linearGradient2337)"> id="layer1"
<text transform="translate(0.0932605,-127.66807)"
transform="scale(0.90442695,1.1056725)" style="display:inline">
id="text4732" <rect
y="238.2995" style="opacity:1;fill:#0d193b;fill-opacity:1;stroke:#a0cafd;stroke-width:0.06771223;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="23.705601" id="rect5872"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.64452839px;line-height:1.25;font-family:Impact;-inkscape-font-specification:'Impact Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.34111318;stroke-opacity:1" width="338.59897"
xml:space="preserve"><tspan height="169.26562"
x="-0.059404384"
y="127.7019"/>
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Livello 2"
transform="translate(0.0932605,37.040251)">
<g
transform="translate(39.454539,-188.4695)"
id="g5736"
style="stroke:url(#linearGradient2337)">
<text
transform="scale(0.90442695,1.1056725)"
id="text4732"
y="238.2995"
x="23.705601"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.64452839px;line-height:1.25;font-family:Impact;-inkscape-font-specification:'Impact Bold';letter-spacing:0px;word-spacing:0px;display:inline;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.34111318;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:65.49373627px;fill:none;fill-opacity:1;stroke-width:0.34111318;stroke:url(#linearGradient2337);stroke-opacity:1" style="font-size:65.49373627px;fill:none;fill-opacity:1;stroke-width:0.34111318;stroke:url(#linearGradient2337);stroke-opacity:1"
y="238.2995" y="238.2995"
x="23.705601" x="23.705601"
id="tspan4730" id="tspan4730"
sodipodi:role="line">Royalnet</tspan></text> sodipodi:role="line">Royalnet</tspan></text>
<g <g
transform="translate(-2.0864727,107.37549)" transform="translate(-2.0864727,107.37549)"
id="g4801" id="g4801"
style="display:inline;stroke:url(#linearGradient2337);fill:none"> style="display:inline;stroke:url(#linearGradient2337);fill:none">
<g <g
transform="translate(0,-1.5472047)" transform="translate(0,-1.5472047)"
id="g4806" id="g4806"
style="stroke:url(#linearGradient2337);fill:none"> style="stroke:url(#linearGradient2337);fill:none">
<path <path
sodipodi:nodetypes="ccccc" sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path4734" id="path4734"
d="m 72.008205,108.22192 c -1.298662,-0.12455 -2.528663,-0.16144 -4.015472,-0.0311 L 49.036385,96.196667 50.579489,94.565515 Z" d="m 72.008205,108.22192 c -1.298662,-0.12455 -2.528663,-0.16144 -4.015472,-0.0311 L 49.036385,96.196667 50.579489,94.565515 Z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<ellipse <ellipse
ry="5.6216612" ry="5.6216612"
rx="5.4344773" rx="5.4344773"
cy="91.733978" cy="91.733978"
cx="44.573582" cx="44.573582"
id="path4736" id="path4736"
style="opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> style="opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path <path
sodipodi:nodetypes="cccccccc" sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z" inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-9" inkscape:path-effect="#path-effect4740-4-9"
inkscape:connector-curvature="0" inkscape:connector-curvature="0"
id="path4738" id="path4738"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z" d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
<g
transform="translate(-41.369474,20.791663)"
id="g4849"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.24182,195.63617 c 0.52356,-0.68844 1.23943,-1.19659 2.1157,-1.55436 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"/>
<ellipse
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526"/>
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-0"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459"/>
</g>
<g
transform="matrix(-1,0,0,1,224.10371,96.838062)"
id="g4801-9"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<g
transform="rotate(24.954103,74.609956,111.66802)"
id="g4806-3"
style="stroke:url(#linearGradient2337);fill:none">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path4734-0"
d="m 72.008205,108.22192 -2.297446,1.06532 -20.674374,-13.090573 1.543104,-1.631152 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<ellipse
ry="5.6216612"
rx="5.4344773"
cy="91.733978"
cx="44.573582"
id="path4736-1"
style="opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path
sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-3-2"
inkscape:connector-curvature="0"
id="path4738-5"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
<g
inkscape:transform-center-y="-6.6298922"
inkscape:transform-center-x="-14.065358"
transform="matrix(-0.84226589,-0.53906235,-0.53906235,0.84226589,422.81566,139.44738)"
id="g4849-9"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.01691,195.44483 c 0,0 1.03691,-0.78683 2.34061,-1.36302 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"/>
<ellipse
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810-9"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526"/>
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812-9"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-8-6"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459"/>
</g>
<g
transform="rotate(-130.0044,153.8328,239.47705)"
id="g4849-4"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.32889,195.84023 c 0.55471,-0.68202 1.24114,-1.24509 2.02863,-1.75842 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"/>
<ellipse
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810-6"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526"/>
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812-3"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-2-3"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459"/>
</g>
<g
transform="rotate(180,116.68483,185.47497)"
id="g4801-1"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<g
transform="translate(0,-1.5472047)"
id="g4806-9"
style="stroke:url(#linearGradient2337);fill:none">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path4734-4"
d="m 72.008205,108.22192 -4.027874,0.002 -18.943946,-12.027223 1.543104,-1.631152 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
<ellipse
ry="5.6216612"
rx="5.4344773"
cy="91.733978"
cx="44.573582"
id="path4736-6"
style="opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
<path
sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-8-2"
inkscape:connector-curvature="0"
id="path4738-6"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/>
</g>
</g>
</g> </g>
</g>
<g
transform="translate(-41.369474,20.791663)"
id="g4849"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.24182,195.63617 c 0.52356,-0.68844 1.23943,-1.19659 2.1157,-1.55436 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<ellipse
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526" />
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-0"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459" />
</g>
<g
transform="matrix(-1,0,0,1,224.10371,96.838062)"
id="g4801-9"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<g
transform="rotate(24.954103,74.609956,111.66802)"
id="g4806-3"
style="stroke:url(#linearGradient2337);fill:none">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path4734-0"
d="m 72.008205,108.22192 -2.297446,1.06532 -20.674374,-13.090573 1.543104,-1.631152 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<ellipse
ry="5.6216612"
rx="5.4344773"
cy="91.733978"
cx="44.573582"
id="path4736-1"
style="opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-3-2"
inkscape:connector-curvature="0"
id="path4738-5"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
<g
inkscape:transform-center-y="-6.6298922"
inkscape:transform-center-x="-14.065358"
transform="matrix(-0.84226589,-0.53906235,-0.53906235,0.84226589,422.81566,139.44738)"
id="g4849-9"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.01691,195.44483 c 0,0 1.03691,-0.78683 2.34061,-1.36302 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<ellipse
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810-9"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526" />
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812-9"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-8-6"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459" />
</g>
<g
transform="rotate(-130.0044,153.8328,239.47705)"
id="g4849-4"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<path
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 156.32889,195.84023 c 0.55471,-0.68202 1.24114,-1.24509 2.02863,-1.75842 l -0.90168,-4.19832 -1.77591,-10.28568 -2.42533,0.43459 z"
id="path4808-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<ellipse
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.08753412;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path4810-6"
cx="153.28587"
cy="173.23436"
rx="5.5337849"
ry="5.5682526" />
<path
sodipodi:nodetypes="cccscccc"
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.67993,179.59781 c 8.7e-4,-0.57128 0.17574,-1.14113 0.49545,-1.61457 0.12269,-0.18168 0.26704,-0.35116 0.35688,-0.55113 0.10917,-0.243 0.13066,-0.52256 0.0702,-0.782 -0.0605,-0.25945 -0.20113,-0.49812 -0.39142,-0.68455 -0.19029,-0.18643 -0.42903,-0.32114 -0.68406,-0.39812 -0.25504,-0.077 -0.52597,-0.097 -0.79092,-0.0693 -0.52991,0.0554 -1.02665,0.29884 -1.4524,0.61918 -0.42574,0.32034 -0.78783,0.71643 -1.14052,1.11579 -0.12177,0.13788 -0.24392,0.27814 -0.32933,0.44106 -0.0854,0.16292 -0.13193,0.35296 -0.0925,0.53264 0.0305,0.13914 0.11075,0.26386 0.21093,0.36514 0.10017,0.10128 0.21994,0.18096 0.3424,0.25374 0.12245,0.0728 0.24866,0.13949 0.36697,0.21884 0.1183,0.0794 0.22952,0.17245 0.31184,0.28871 0.14705,0.20767 0.1902,0.47019 0.30118,0.69917 0.12063,0.2489 0.32431,0.45666 0.57078,0.58219 0.24646,0.12554 0.53427,0.16812 0.80653,0.11934 0.27225,-0.0488 0.52737,-0.18866 0.71491,-0.39196 0.18754,-0.20331 0.30641,-0.46886 0.33311,-0.74416"
id="path4812-3"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4814-3-2-3"
inkscape:original-d="m 155.67993,179.59781 c 0.16078,-0.54597 0.33056,-1.07665 0.49545,-1.61457 0.16488,-0.53793 0.28228,-0.50274 0.35688,-0.55113 0.0746,-0.0484 -2.96992,0.002 -4.38913,-0.19901 -1.41921,-0.20112 -0.51799,0.47248 -0.42185,0.9737 0.0961,0.50123 1.05871,0.92708 1.23214,1.12643 0.17342,0.19934 0.20105,0.46584 0.30118,0.69917 0.10013,0.23332 1.61715,-0.28999 2.42533,-0.43459" />
</g>
<g
transform="rotate(180,116.68483,185.47497)"
id="g4801-1"
style="display:inline;stroke:url(#linearGradient2337);fill:none">
<g
transform="translate(0,-1.5472047)"
id="g4806-9"
style="stroke:url(#linearGradient2337);fill:none">
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path4734-4"
d="m 72.008205,108.22192 -4.027874,0.002 -18.943946,-12.027223 1.543104,-1.631152 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<ellipse
ry="5.6216612"
rx="5.4344773"
cy="91.733978"
cx="44.573582"
id="path4736-6"
style="opacity:1;fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.29205444;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:original-d="m 50.579488,94.565824 c -2.64e-4,2.64e-4 -0.303197,-0.388803 -0.455192,-0.582808 -0.151994,-0.194005 -0.186907,-0.584452 -0.280754,-0.87628 -0.09385,-0.291827 -1.18252,1.954034 -1.774173,2.931449 -0.591655,0.977412 0.18156,0.02148 0.271947,0.03263 0.09038,0.01114 0.463641,0.08384 0.695067,0.126156 0.231426,0.04232 1.029,-1.087698 1.543105,-1.631151 z"
inkscape:path-effect="#path-effect4740-4-8-2"
inkscape:connector-curvature="0"
id="path4738-6"
d="m 50.579488,94.565824 c -0.19561,-0.153916 -0.353242,-0.35574 -0.455192,-0.582808 -0.125746,-0.280068 -0.16588,-0.59158 -0.280754,-0.87628 -0.129281,-0.320405 -0.353925,-0.601278 -0.636711,-0.799785 -0.282786,-0.198507 -0.622572,-0.314232 -0.967619,-0.332011 -0.345046,-0.01778 -0.694281,0.06215 -0.99841,0.226092 -0.304129,0.163948 -0.56245,0.411219 -0.741612,0.706641 -0.179162,0.295422 -0.278954,0.638128 -0.288835,0.98349 -0.0099,0.345363 0.06991,0.692617 0.227397,1.000143 0.314966,0.615052 0.947156,1.051981 1.631617,1.146879 0.09044,0.01254 0.181591,0.01951 0.271947,0.03263 0.233191,0.03386 0.460094,0.108482 0.695067,0.126156 0.427171,0.03213 0.865211,-0.137278 1.159604,-0.44847 0.294394,-0.311191 0.439261,-0.757947 0.383501,-1.182681 z"
style="fill:none;fill-opacity:1;stroke:url(#linearGradient2337);stroke-width:0.26406372px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</g> </g>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View file

@ -66,7 +66,6 @@ templates_path = ['_templates']
# This pattern also affects html_static_path and html_extra_path. # This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# -- Options for HTML output ------------------------------------------------- # -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for

918
poetry.lock generated

File diff suppressed because it is too large Load diff

View file

@ -4,81 +4,81 @@
# poetry install -E telegram -E discord -E matrix -E alchemy_easy -E bard -E constellation -E sentry -E herald -E coloredlogs # poetry install -E telegram -E discord -E matrix -E alchemy_easy -E bard -E constellation -E sentry -E herald -E coloredlogs
[tool.poetry] [tool.poetry]
name = "royalnet" name = "royalnet"
version = "5.11.0" version = "5.11.0"
description = "A multipurpose bot and web framework" description = "A multipurpose bot and web framework"
authors = ["Stefano Pigozzi <ste.pigozzi@gmail.com>"] authors = ["Stefano Pigozzi <ste.pigozzi@gmail.com>"]
license = "AGPL-3.0+" license = "AGPL-3.0+"
readme = "README.md" readme = "README.md"
homepage = "https://github.com/Steffo99/royalnet" homepage = "https://github.com/Steffo99/royalnet"
documentation = "https://gh.steffo.eu/royalnet/" documentation = "https://gh.steffo.eu/royalnet/"
classifiers = [ classifiers = [
"Development Status :: 3 - Alpha", "Development Status :: 3 - Alpha",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.8",
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)" "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)"
] ]
# Library dependencies # Library dependencies
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.8" python = "^3.8"
dateparser = "^0.7.2" dateparser = "^0.7.2"
toml = "^0.10.0" toml = "^0.10.0"
# telegram # telegram
python_telegram_bot = {version="^12.2.0", optional=true} python_telegram_bot = { version = "^12.2.0", optional = true }
# discord # discord
"discord.py" = {version="^1.3.1", optional=true} "discord.py" = { version = "^1.3.1", optional = true }
pynacl = {version="^1.3.0", optional=true} # This requires libffi-dev and python3.*-dev to be installed on Linux systems pynacl = { version = "^1.3.0", optional = true } # This requires libffi-dev and python3.*-dev to be installed on Linux systems
# matrix # matrix
matrix-nio = {version="^0.6", optional=true} matrix-nio = { version = "^0.6", optional = true }
# bard # bard
ffmpeg_python = {version="~0.2.0", optional=true} ffmpeg_python = { version = "~0.2.0", optional = true }
youtube_dl = {version="*", optional=true} youtube_dl = { version = "*", optional = true }
eyed3 = {version="^0.9", optional=true} eyed3 = { version = "^0.9", optional = true }
# alchemy # alchemy
sqlalchemy = {version="^1.3.18", optional=true} sqlalchemy = { version = "^1.3.18", optional = true }
psycopg2 = {version="^2.8.4", optional=true} # Requires quite a bit of stuff http://initd.org/psycopg/docs/install.html#install-from-source psycopg2 = { version = "^2.8.4", optional = true } # Requires quite a bit of stuff http://initd.org/psycopg/docs/install.html#install-from-source
psycopg2_binary = {version="^2.8.4", optional=true} # Prebuilt alternative to psycopg2, not recommended psycopg2_binary = { version = "^2.8.4", optional = true } # Prebuilt alternative to psycopg2, not recommended
bcrypt = {version="^3.1.7", optional=true} bcrypt = { version = "^3.1.7", optional = true }
# constellation # constellation
starlette = {version="^0.12.13", optional=true} starlette = { version = "^0.12.13", optional = true }
uvicorn = {version="^0.10.7", optional=true} uvicorn = { version = "^0.10.7", optional = true }
python-multipart = {version="^0.0.5", optional=true} python-multipart = { version = "^0.0.5", optional = true }
# sentry # sentry
sentry_sdk = {version="~0.13.2", optional=true} sentry_sdk = { version = "~0.13.2", optional = true }
# herald # herald
websockets = {version="^8.1", optional=true} websockets = { version = "^8.1", optional = true }
# logging # logging
coloredlogs = {version="^10.0", optional=true} coloredlogs = { version = "^10.0", optional = true }
# Development dependencies # Development dependencies
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
pytest = "^5.2.1" pytest = "^5.2.1"
sphinx = "^2.2.1" sphinx = "^2.2.1"
sphinx_rtd_theme = "^0.4.3" sphinx_rtd_theme = "^0.4.3"
# Optional dependencies # Optional dependencies
[tool.poetry.extras] [tool.poetry.extras]
telegram = ["python_telegram_bot"] telegram = ["python_telegram_bot"]
discord = ["discord.py", "pynacl", "lavalink", "aiohttp", "cchardet"] discord = ["discord.py", "pynacl", "lavalink", "aiohttp", "cchardet"]
matrix = ["matrix-nio"] matrix = ["matrix-nio"]
alchemy_easy = ["sqlalchemy", "psycopg2_binary", "bcrypt"] alchemy_easy = ["sqlalchemy", "psycopg2_binary", "bcrypt"]
alchemy_hard = ["sqlalchemy", "psycopg2", "bcrypt"] alchemy_hard = ["sqlalchemy", "psycopg2", "bcrypt"]
bard = ["ffmpeg_python", "youtube_dl", "eyed3"] bard = ["ffmpeg_python", "youtube_dl", "eyed3"]
constellation = ["starlette", "uvicorn", "python-multipart"] constellation = ["starlette", "uvicorn", "python-multipart"]
sentry = ["sentry_sdk"] sentry = ["sentry_sdk"]
herald = ["websockets"] herald = ["websockets"]
coloredlogs = ["coloredlogs"] coloredlogs = ["coloredlogs"]
# Executable aliases # Executable aliases
@ -87,5 +87,5 @@ royalnet = 'royalnet.__main__:run'
[build-system] [build-system]
requires = ["poetry>=0.12"] requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api" build-backend = "poetry.masonry.api"

View file

@ -1,7 +1,9 @@
import click
import multiprocessing
import toml
import logging import logging
import multiprocessing
import click
import toml
import royalnet.utils as ru import royalnet.utils as ru
try: try:
@ -34,7 +36,6 @@ try:
except ImportError: except ImportError:
coloredlogs = None coloredlogs = None
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View file

@ -14,8 +14,8 @@ then run: ::
""" """
from .alchemy import Alchemy from .alchemy import Alchemy
from .table_dfs import table_dfs
from .errors import * from .errors import *
from .table_dfs import table_dfs
__all__ = [ __all__ = [
"Alchemy", "Alchemy",

View file

@ -1,14 +1,16 @@
from typing import *
from contextlib import contextmanager, asynccontextmanager from contextlib import contextmanager, asynccontextmanager
from royalnet.utils import asyncify from typing import *
from royalnet.alchemy.errors import TableNotFoundError
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlalchemy.engine import Engine from sqlalchemy.engine import Engine
from sqlalchemy.schema import Table
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.declarative.api import DeclarativeMeta from sqlalchemy.ext.declarative.api import DeclarativeMeta
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm.session import Session from sqlalchemy.orm.session import Session
from sqlalchemy.schema import Table
from royalnet.alchemy.errors import TableNotFoundError
from royalnet.utils import asyncify
class Alchemy: class Alchemy:

View file

@ -1,8 +1,8 @@
# Imports go here! # Imports go here!
from .royalnetversion import RoyalnetversionCommand
from .royalnetsync import RoyalnetsyncCommand
from .royalnetroles import RoyalnetrolesCommand
from .royalnetaliases import RoyalnetaliasesCommand from .royalnetaliases import RoyalnetaliasesCommand
from .royalnetroles import RoyalnetrolesCommand
from .royalnetsync import RoyalnetsyncCommand
from .royalnetversion import RoyalnetversionCommand
# Enter the commands of your Pack here! # Enter the commands of your Pack here!
available_commands = [ available_commands = [

View file

@ -1,4 +1,3 @@
from typing import *
import royalnet.commands as rc import royalnet.commands as rc
from ..tables import User from ..tables import User

View file

@ -1,4 +1,3 @@
from typing import *
import royalnet.commands as rc import royalnet.commands as rc
from ..tables import User from ..tables import User

View file

@ -1,12 +1,10 @@
from typing import *
import royalnet
import royalnet.commands as rc import royalnet.commands as rc
import royalnet.utils as ru
import royalnet.serf.telegram as rst
import royalnet.serf.discord as rsd import royalnet.serf.discord as rsd
import royalnet.serf.matrix as rsm import royalnet.serf.matrix as rsm
from ..tables.telegram import Telegram import royalnet.serf.telegram as rst
import royalnet.utils as ru
from ..tables.discord import Discord from ..tables.discord import Discord
from ..tables.telegram import Telegram
class RoyalnetsyncCommand(rc.Command): class RoyalnetsyncCommand(rc.Command):

View file

@ -1,4 +1,5 @@
import pkg_resources import pkg_resources
from royalnet.commands import * from royalnet.commands import *

View file

@ -1,12 +1,12 @@
# Imports go here! # Imports go here!
from .api_royalnet_version import ApiRoyalnetVersionStar
from .api_auth_login_royalnet import ApiAuthLoginRoyalnetStar from .api_auth_login_royalnet import ApiAuthLoginRoyalnetStar
from .api_user_passwd import ApiUserPasswd
from .api_auth_token import ApiAuthTokenStar from .api_auth_token import ApiAuthTokenStar
from .api_royalnet_version import ApiRoyalnetVersionStar
from .api_user_create import ApiUserCreateStar
from .api_user_find import ApiUserFindStar
from .api_user_get import ApiUserGetStar from .api_user_get import ApiUserGetStar
from .api_user_list import ApiUserListStar from .api_user_list import ApiUserListStar
from .api_user_find import ApiUserFindStar from .api_user_passwd import ApiUserPasswd
from .api_user_create import ApiUserCreateStar
from .docs import DocsStar from .docs import DocsStar
# Enter the PageStars of your Pack here! # Enter the PageStars of your Pack here!

View file

@ -1,9 +1,10 @@
import datetime import datetime
import royalnet.utils as ru
import royalnet.constellation.api as rca import royalnet.constellation.api as rca
import royalnet.constellation.api.apierrors as rcae import royalnet.constellation.api.apierrors as rcae
from ..tables.users import User import royalnet.utils as ru
from ..tables.tokens import Token from ..tables.tokens import Token
from ..tables.users import User
class ApiAuthLoginRoyalnetStar(rca.ApiStar): class ApiAuthLoginRoyalnetStar(rca.ApiStar):

View file

@ -1,7 +1,7 @@
from typing import *
import datetime import datetime
import royalnet.utils as ru
import royalnet.constellation.api as rca import royalnet.constellation.api as rca
import royalnet.utils as ru
from ..tables.tokens import Token from ..tables.tokens import Token

View file

@ -1,8 +1,5 @@
from typing import *
import datetime
import royalnet.constellation.api as rca import royalnet.constellation.api as rca
import royalnet.utils as ru import royalnet.utils as ru
import royalnet.backpack.tables as rbt
from ..tables import * from ..tables import *

View file

@ -1,6 +1,6 @@
import royalnet.utils as ru
import royalnet.backpack.tables as rbt import royalnet.backpack.tables as rbt
import royalnet.constellation.api as rca import royalnet.constellation.api as rca
import royalnet.utils as ru
class ApiUserFindStar(rca.ApiStar): class ApiUserFindStar(rca.ApiStar):

View file

@ -1,6 +1,6 @@
import royalnet.utils as ru
import royalnet.backpack.tables as rbt import royalnet.backpack.tables as rbt
import royalnet.constellation.api as rca import royalnet.constellation.api as rca
import royalnet.utils as ru
class ApiUserGetStar(rca.ApiStar): class ApiUserGetStar(rca.ApiStar):

View file

@ -1,7 +1,8 @@
from starlette.responses import * from starlette.responses import *
import royalnet.utils as ru
import royalnet.backpack.tables as rbt import royalnet.backpack.tables as rbt
import royalnet.constellation.api as rca import royalnet.constellation.api as rca
import royalnet.utils as ru
class ApiUserListStar(rca.ApiStar): class ApiUserListStar(rca.ApiStar):

View file

@ -1,8 +1,10 @@
from typing import *
import datetime import datetime
import royalnet.utils as ru from typing import *
import royalnet.constellation.api as rca
from sqlalchemy import and_ from sqlalchemy import and_
import royalnet.constellation.api as rca
import royalnet.utils as ru
from ..tables.tokens import Token from ..tables.tokens import Token
@ -36,10 +38,10 @@ class ApiUserPasswd(rca.ApiStar):
data.session data.session
.query(self.alchemy.get(Token)) .query(self.alchemy.get(Token))
.filter( .filter(
and_( and_(
TokenT.user == user, TokenT.user == user,
TokenT.expiration >= datetime.datetime.now() TokenT.expiration >= datetime.datetime.now()
)) ))
.all .all
) )
for t in tokens: for t in tokens:

View file

@ -1,11 +1,11 @@
import json import json
from typing import *
from royalnet.constellation import PageStar
from royalnet.constellation.api import ApiStar
from starlette.requests import Request from starlette.requests import Request
from starlette.responses import Response, HTMLResponse from starlette.responses import Response, HTMLResponse
import royalnet
import royalnet
from royalnet.constellation import PageStar
from royalnet.constellation.api import ApiStar
backtick = "\u0060" backtick = "\u0060"

View file

@ -1,11 +1,11 @@
# Imports go here! # Imports go here!
from .users import User from .aliases import Alias
from .telegram import Telegram
from .discord import Discord from .discord import Discord
from .matrix import Matrix from .matrix import Matrix
from .aliases import Alias
from .tokens import Token
from .roles import Role from .roles import Role
from .telegram import Telegram
from .tokens import Token
from .users import User
# Enter the tables of your Pack here! # Enter the tables of your Pack here!
available_tables = { available_tables = {

View file

@ -1,9 +1,9 @@
from sqlalchemy import Column, \ from sqlalchemy import Column, \
Integer, \ Integer, \
String, \ String, \
ForeignKey ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import relationship
class Alias: class Alias:

View file

@ -1,10 +1,11 @@
from sqlalchemy import Column, \ from sqlalchemy import Column, \
Integer, \ Integer, \
String, \ String, \
BigInteger, \ BigInteger, \
ForeignKey ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import relationship
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
from .users import User from .users import User

View file

@ -1,9 +1,11 @@
import re
from sqlalchemy import * from sqlalchemy import *
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import relationship
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
from .users import User from .users import User
import re
class Matrix: class Matrix:

View file

@ -1,9 +1,9 @@
from sqlalchemy import Column, \ from sqlalchemy import Column, \
Integer, \ Integer, \
String, \ String, \
ForeignKey ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import relationship
class Role: class Role:

View file

@ -1,10 +1,11 @@
from sqlalchemy import Column, \ from sqlalchemy import Column, \
Integer, \ Integer, \
String, \ String, \
BigInteger, \ BigInteger, \
ForeignKey ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import relationship
# noinspection PyUnresolvedReferences # noinspection PyUnresolvedReferences
from .users import User from .users import User

View file

@ -1,8 +1,10 @@
import datetime import datetime
import secrets import secrets
from sqlalchemy import * from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import *
import royalnet.utils as ru import royalnet.utils as ru

View file

@ -1,14 +1,16 @@
from typing import * from typing import *
import bcrypt import bcrypt
import royalnet.utils as ru
from sqlalchemy import Column, \ from sqlalchemy import Column, \
Integer, \ Integer, \
String, \ String, \
LargeBinary, \ LargeBinary, \
inspect inspect
from sqlalchemy.ext.declarative import declared_attr from sqlalchemy.ext.declarative import declared_attr
from .roles import Role
import royalnet.utils as ru
from .aliases import Alias from .aliases import Alias
from .roles import Role
from ...utils import JSON, asyncify from ...utils import JSON, asyncify

View file

@ -15,9 +15,9 @@ try:
except ImportError: except ImportError:
raise ImportError("The `bard` extra is not installed. Please install it with `pip install royalnet[bard]`.") raise ImportError("The `bard` extra is not installed. Please install it with `pip install royalnet[bard]`.")
from .ytdlinfo import YtdlInfo
from .ytdlfile import YtdlFile
from .errors import BardError, YtdlError, NotFoundError, MultipleFilesError from .errors import BardError, YtdlError, NotFoundError, MultipleFilesError
from .ytdlfile import YtdlFile
from .ytdlinfo import YtdlInfo
__all__ = [ __all__ = [
"YtdlInfo", "YtdlInfo",

View file

@ -8,8 +8,8 @@ You can install them with: ::
""" """
from .ytdldiscord import YtdlDiscord
from .fileaudiosource import FileAudioSource from .fileaudiosource import FileAudioSource
from .ytdldiscord import YtdlDiscord
__all__ = [ __all__ = [
"YtdlDiscord", "YtdlDiscord",

View file

@ -1,12 +1,14 @@
import typing
import re
import os
import logging import logging
import ffmpeg import os
import discord import re
import typing
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from royalnet.utils import asyncify, MultiLock
import discord
import ffmpeg
from royalnet.bard import YtdlInfo, YtdlFile from royalnet.bard import YtdlInfo, YtdlFile
from royalnet.utils import asyncify, MultiLock
from .fileaudiosource import FileAudioSource from .fileaudiosource import FileAudioSource
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -45,9 +47,9 @@ class YtdlDiscord:
log.debug(f"Converting to PCM: {self.ytdl_file.filename}") log.debug(f"Converting to PCM: {self.ytdl_file.filename}")
out, err = await asyncify( out, err = await asyncify(
ffmpeg.input(self.ytdl_file.filename) ffmpeg.input(self.ytdl_file.filename)
.output(destination_filename, format="s16le", ac=2, ar="48000") .output(destination_filename, format="s16le", ac=2, ar="48000")
.overwrite_output() .overwrite_output()
.run, .run,
capture_stdout=True, capture_stdout=True,
capture_stderr=True, capture_stderr=True,
) )
@ -99,7 +101,8 @@ class YtdlDiscord:
} }
embed = discord.Embed(title=self.info.title, embed = discord.Embed(title=self.info.title,
colour=discord.Colour(colors.get(self.info.extractor, 0x4F545C)), colour=discord.Colour(colors.get(self.info.extractor, 0x4F545C)),
url=self.info.webpage_url if (self.info.webpage_url and self.info.webpage_url.startswith("http")) else discord.embeds.EmptyEmbed) url=self.info.webpage_url if (self.info.webpage_url and self.info.webpage_url.startswith(
"http")) else discord.embeds.EmptyEmbed)
if self.info.thumbnail: if self.info.thumbnail:
embed.set_thumbnail(url=self.info.thumbnail) embed.set_thumbnail(url=self.info.thumbnail)
if self.info.uploader: if self.info.uploader:

View file

@ -1,15 +1,16 @@
import os
import logging import logging
import os
import re import re
import eyed3 from asyncio import AbstractEventLoop, get_event_loop
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from typing import * from typing import *
from royalnet.utils import *
from asyncio import AbstractEventLoop, get_event_loop import eyed3
from .ytdlinfo import YtdlInfo
from .errors import NotFoundError, MultipleFilesError
from youtube_dl import YoutubeDL from youtube_dl import YoutubeDL
from royalnet.utils import *
from .errors import NotFoundError, MultipleFilesError
from .ytdlinfo import YtdlInfo
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -74,6 +75,7 @@ class YtdlFile:
async def download_file(self) -> None: async def download_file(self) -> None:
"""Download the file.""" """Download the file."""
def download(): def download():
"""Download function block to be asyncified.""" """Download function block to be asyncified."""
with YoutubeDL(self.ytdl_args) as ytdl: with YoutubeDL(self.ytdl_args) as ytdl:

View file

@ -1,11 +1,12 @@
from typing import *
import asyncio as aio import asyncio as aio
import datetime import datetime
import dateparser
import logging import logging
import royalnet.utils as ru from typing import *
import dateparser
import youtube_dl import youtube_dl
import royalnet.utils as ru
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View file

@ -1,13 +1,13 @@
"""The subpackage providing all classes related to Royalnet commands.""" """The subpackage providing all classes related to Royalnet commands."""
from .command import Command from .command import Command
from .commanddata import CommandData
from .commandargs import CommandArgs from .commandargs import CommandArgs
from .heraldevent import HeraldEvent from .commanddata import CommandData
from .configdict import ConfigDict
from .errors import \ from .errors import \
CommandError, InvalidInputError, UnsupportedError, ConfigurationError, ExternalError, UserError, ProgramError CommandError, InvalidInputError, UnsupportedError, ConfigurationError, ExternalError, UserError, ProgramError
from .heraldevent import HeraldEvent
from .keyboardkey import KeyboardKey from .keyboardkey import KeyboardKey
from .configdict import ConfigDict
__all__ = [ __all__ = [
"Command", "Command",

View file

@ -1,6 +1,7 @@
import abc import abc
import asyncio as aio import asyncio as aio
from typing import * from typing import *
from .commandargs import CommandArgs from .commandargs import CommandArgs
from .commanddata import CommandData from .commanddata import CommandData

View file

@ -1,5 +1,6 @@
import re import re
import typing import typing
from .errors import InvalidInputError from .errors import InvalidInputError
@ -32,12 +33,12 @@ class CommandArgs(list):
try: try:
return super().__getitem__(item) return super().__getitem__(item)
except IndexError: except IndexError:
raise InvalidInputError(f'Missing argument #{item+1}.') raise InvalidInputError(f'Missing argument #{item + 1}.')
if isinstance(item, slice): if isinstance(item, slice):
try: try:
return super().__getitem__(item) return super().__getitem__(item)
except IndexError: except IndexError:
raise InvalidInputError(f'Cannot get arguments from #{item.start+1} to #{item.stop+1}.') raise InvalidInputError(f'Cannot get arguments from #{item.start + 1} to #{item.stop + 1}.')
raise ValueError(f"Invalid type passed to CommandArgs.__getattr__: {type(item)}") raise ValueError(f"Invalid type passed to CommandArgs.__getattr__: {type(item)}")
def joined(self, *, require_at_least=0) -> str: def joined(self, *, require_at_least=0) -> str:

View file

@ -1,11 +1,11 @@
from typing import *
import contextlib import contextlib
import logging
import asyncio as aio
import royalnet.utils as ru
import io import io
from .errors import UnsupportedError import logging
from typing import *
import royalnet.utils as ru
from royalnet.backpack.tables.users import User from royalnet.backpack.tables.users import User
from .errors import UnsupportedError
if TYPE_CHECKING: if TYPE_CHECKING:
from .keyboardkey import KeyboardKey from .keyboardkey import KeyboardKey

View file

@ -2,6 +2,7 @@ class CommandError(Exception):
"""Something went wrong during the execution of this command. """Something went wrong during the execution of this command.
Display an error message to the user, explaining what went wrong.""" Display an error message to the user, explaining what went wrong."""
def __init__(self, message=""): def __init__(self, message=""):
self.message = message self.message = message

View file

@ -1,4 +1,5 @@
from typing import * from typing import *
from .commanddata import CommandData from .commanddata import CommandData

View file

@ -15,8 +15,8 @@ You can install them with: ::
""" """
from .constellation import Constellation from .constellation import Constellation
from .star import Star
from .pagestar import PageStar from .pagestar import PageStar
from .star import Star
__all__ = [ __all__ = [
"Constellation", "Constellation",

View file

@ -1,5 +1,3 @@
from .apistar import ApiStar
from .jsonapi import api_response, api_success, api_error
from .apidata import ApiData from .apidata import ApiData
from .apierrors import \ from .apierrors import \
ApiError, \ ApiError, \
@ -11,9 +9,10 @@ from .apierrors import \
InvalidParameterError, \ InvalidParameterError, \
MethodNotImplementedError, \ MethodNotImplementedError, \
UnsupportedError UnsupportedError
from .apistar import ApiStar
from .jsonapi import api_response, api_success, api_error
from .magic import magic from .magic import magic
__all__ = [ __all__ = [
"ApiStar", "ApiStar",
"api_response", "api_response",

View file

@ -1,10 +1,10 @@
from typing import *
import logging import logging
from .apierrors import MissingParameterError from typing import *
import royalnet.utils as ru
from royalnet.backpack.tables.tokens import Token from royalnet.backpack.tables.tokens import Token
from royalnet.backpack.tables.users import User from royalnet.backpack.tables.users import User
from .apierrors import * from .apierrors import *
import royalnet.utils as ru
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View file

@ -1,15 +1,17 @@
from typing import *
from json import JSONDecodeError
from abc import *
from starlette.requests import Request
from starlette.responses import JSONResponse
from ..pagestar import PageStar
from .jsonapi import api_error, api_success
from .apidata import ApiData
from .apierrors import *
import royalnet.utils as ru
import logging import logging
import re import re
from abc import *
from json import JSONDecodeError
from typing import *
from starlette.requests import Request
from starlette.responses import JSONResponse
import royalnet.utils as ru
from .apidata import ApiData
from .apierrors import *
from .jsonapi import api_error, api_success
from ..pagestar import PageStar
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View file

@ -1,5 +1,5 @@
from typing import *
import royalnet.utils as ru import royalnet.utils as ru
try: try:
from starlette.responses import JSONResponse from starlette.responses import JSONResponse
except ImportError: except ImportError:

View file

@ -1,4 +1,3 @@
from typing import *
import functools import functools
@ -12,4 +11,5 @@ def magic(func):
@functools.wraps(func) @functools.wraps(func)
async def f(*args, **kwargs): async def f(*args, **kwargs):
return await func(*args, **kwargs) return await func(*args, **kwargs)
return f return f

View file

@ -1,19 +1,20 @@
from typing import *
import asyncio as aio import asyncio as aio
import logging
import importlib import importlib
import uvicorn import logging
from typing import *
import starlette.applications import starlette.applications
import starlette.middleware import starlette.middleware
import starlette.middleware.cors import starlette.middleware.cors
import uvicorn
import royalnet.alchemy as ra import royalnet.alchemy as ra
import royalnet.commands as rc
import royalnet.herald as rh import royalnet.herald as rh
import royalnet.utils as ru import royalnet.utils as ru
import royalnet.commands as rc
from .pagestar import PageStar from .pagestar import PageStar
from ..utils import init_logging from ..utils import init_logging
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
UVICORN_LOGGING_CONFIG = { UVICORN_LOGGING_CONFIG = {
@ -31,6 +32,7 @@ class Constellation:
It runs multiple :class:`Star`, which represent the routes of the website. It runs multiple :class:`Star`, which represent the routes of the website.
It also handles the :class:`Alchemy` connection, and Herald connections too.""" It also handles the :class:`Alchemy` connection, and Herald connections too."""
def __init__(self, def __init__(self,
alchemy_cfg: Dict[str, Any], alchemy_cfg: Dict[str, Any],
herald_cfg: Dict[str, Any], herald_cfg: Dict[str, Any],

View file

@ -1,4 +1,3 @@
from typing import *
from .star import Star from .star import Star

View file

@ -1,4 +1,5 @@
from typing import * from typing import *
from starlette.requests import Request from starlette.requests import Request
from starlette.responses import Response from starlette.responses import Response
@ -13,6 +14,7 @@ class Star:
"""A Star is a class representing a part of the website. """A Star is a class representing a part of the website.
It shouldn't be used directly: please use :class:`PageStar` and :class:`ExceptionStar` instead!""" It shouldn't be used directly: please use :class:`PageStar` and :class:`ExceptionStar` instead!"""
def __init__(self, constellation: "Constellation", config: "ConfigDict"): def __init__(self, constellation: "Constellation", config: "ConfigDict"):
self.constellation: "Constellation" = constellation self.constellation: "Constellation" = constellation
self.config: "ConfigDict" = config self.config: "ConfigDict" = config

View file

@ -1,6 +1,7 @@
import toml
import importlib import importlib
import click import click
import toml
p = click.echo p = click.echo

View file

@ -10,6 +10,7 @@ You can install it with: ::
""" """
from .broadcast import Broadcast
from .config import Config from .config import Config
from .errors import * from .errors import *
from .link import Link from .link import Link
@ -17,8 +18,6 @@ from .package import Package
from .request import Request from .request import Request
from .response import Response, ResponseSuccess, ResponseFailure from .response import Response, ResponseSuccess, ResponseFailure
from .server import Server from .server import Server
from .broadcast import Broadcast
__all__ = [ __all__ = [
"Config", "Config",

View file

@ -1,16 +1,17 @@
from typing import *
import asyncio as aio import asyncio as aio
import uuid
import functools import functools
import logging import logging
import uuid
from typing import *
import websockets import websockets
from .broadcast import Broadcast
from .config import Config
from .errors import ConnectionClosedError, InvalidServerResponseError
from .package import Package from .package import Package
from .request import Request from .request import Request
from .response import Response, ResponseSuccess, ResponseFailure from .response import Response, ResponseSuccess, ResponseFailure
from .broadcast import Broadcast
from .errors import ConnectionClosedError, InvalidServerResponseError
from .config import Config
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -39,6 +40,7 @@ def requires_connection(func):
async def new_func(self, *args, **kwargs): async def new_func(self, *args, **kwargs):
await self.connect_event.wait() await self.connect_event.wait()
return await func(self, *args, **kwargs) return await func(self, *args, **kwargs)
return new_func return new_func
@ -47,6 +49,7 @@ def requires_identification(func):
async def new_func(self, *args, **kwargs): async def new_func(self, *args, **kwargs):
await self.identify_event.wait() await self.identify_event.wait()
return await func(self, *args, **kwargs) return await func(self, *args, **kwargs)
return new_func return new_func

View file

@ -1,20 +1,22 @@
from typing import *
import asyncio as aio import asyncio as aio
import re
import datetime import datetime
import uuid
import logging import logging
import websockets import re
import royalnet.utils as ru import uuid
from .package import Package from typing import *
from .config import Config
import websockets
import royalnet.utils as ru
from .config import Config
from .package import Package
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
class ConnectedClient: class ConnectedClient:
"""The :py:class:`Server`-side representation of a connected :py:class:`Link`.""" """The :py:class:`Server`-side representation of a connected :py:class:`Link`."""
def __init__(self, socket: "websockets.WebSocketServerProtocol"): def __init__(self, socket: "websockets.WebSocketServerProtocol"):
self.socket: "websockets.WebSocketServerProtocol" = socket self.socket: "websockets.WebSocketServerProtocol" = socket
self.nid: Optional[str] = None self.nid: Optional[str] = None

View file

@ -1,7 +1,7 @@
"""The subpackage providing all Serf implementations.""" """The subpackage providing all Serf implementations."""
from .serf import Serf
from .errors import SerfError from .errors import SerfError
from .serf import Serf
__all__ = [ __all__ = [
"Serf", "Serf",

View file

@ -8,8 +8,8 @@ Install it with: ::
""" """
from .escape import escape
from .discordserf import DiscordSerf from .discordserf import DiscordSerf
from .escape import escape
from .playable import Playable from .playable import Playable
from .voiceplayer import VoicePlayer from .voiceplayer import VoicePlayer

View file

@ -1,16 +1,17 @@
import asyncio as aio import asyncio as aio
import logging
import io import io
import logging
import sys import sys
from typing import * from typing import *
import royalnet.backpack.tables as rbt
import royalnet.commands as rc
from royalnet.utils import asyncify, sentry_exc
from royalnet.serf import Serf
from .escape import escape
from .voiceplayer import VoicePlayer
import discord import discord
import royalnet.backpack.tables as rbt
import royalnet.commands as rc
from royalnet.serf import Serf
from royalnet.utils import asyncify, sentry_exc
from .escape import escape
from .voiceplayer import VoicePlayer
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -128,6 +129,7 @@ class DiscordSerf(Serf):
def client_factory(self) -> Type["discord.Client"]: def client_factory(self) -> Type["discord.Client"]:
"""Create a custom class inheriting from :py:class:`discord.Client`.""" """Create a custom class inheriting from :py:class:`discord.Client`."""
# noinspection PyMethodParameters # noinspection PyMethodParameters
class DiscordClient(discord.Client): class DiscordClient(discord.Client):
# noinspection PyMethodMayBeStatic # noinspection PyMethodMayBeStatic

View file

@ -1,16 +1,17 @@
import logging import logging
from typing import Optional, AsyncGenerator, Tuple, Any, Dict from typing import Optional, AsyncGenerator, Tuple, Any, Dict
try: try:
import discord import discord
except ImportError: except ImportError:
discord = None discord = None
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
class Playable: class Playable:
"""An abstract class representing something that can be played back in a :class:`VoicePlayer`.""" """An abstract class representing something that can be played back in a :class:`VoicePlayer`."""
def __init__(self): def __init__(self):
"""Create a :class:`Playable`. """Create a :class:`Playable`.

View file

@ -1,10 +1,12 @@
import asyncio import asyncio
import threading
import logging import logging
import threading
from typing import Optional from typing import Optional
from .errors import * from .errors import *
from .playable import Playable from .playable import Playable
from ...utils import sentry_exc from ...utils import sentry_exc
try: try:
import discord import discord
except ImportError: except ImportError:

View file

@ -8,8 +8,8 @@ Install it with: ::
""" """
from .matrixserf import MatrixSerf
from .escape import escape from .escape import escape
from .matrixserf import MatrixSerf
__all__ = [ __all__ = [
"MatrixSerf", "MatrixSerf",

View file

@ -1,13 +1,15 @@
from typing import *
import logging
import datetime
import asyncio as aio import asyncio as aio
import datetime
import logging
from typing import *
import nio
import royalnet.backpack as rb import royalnet.backpack as rb
import royalnet.commands as rc import royalnet.commands as rc
import royalnet.utils as ru import royalnet.utils as ru
from ..serf import Serf
from .escape import escape from .escape import escape
import nio from ..serf import Serf
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View file

@ -1,16 +1,18 @@
import logging import abc
import importlib
import asyncio as aio import asyncio as aio
import importlib
import logging
import sys import sys
import traceback
from typing import * from typing import *
from sqlalchemy.schema import Table from sqlalchemy.schema import Table
import royalnet.commands as rc
import royalnet.utils as ru
import royalnet.alchemy as ra import royalnet.alchemy as ra
import royalnet.backpack.tables as rbt import royalnet.backpack.tables as rbt
import royalnet.commands as rc
import royalnet.herald as rh import royalnet.herald as rh
import traceback import royalnet.utils as ru
import abc
log = logging.getLogger(__name__) log = logging.getLogger(__name__)

View file

@ -1,5 +1,5 @@
from typing import *
import re import re
from typing import *
def escape(string: Optional[str]) -> Optional[str]: def escape(string: Optional[str]) -> Optional[str]:

View file

@ -1,17 +1,17 @@
from typing import * import asyncio as aio
import contextlib import contextlib
import logging import logging
import asyncio as aio
import uuid import uuid
from dataclasses import dataclass
from typing import *
import telegram import telegram
import urllib3 import urllib3
from telegram.utils.request import Request as TRequest from telegram.utils.request import Request as TRequest
from dataclasses import dataclass
import royalnet.backpack.tables as rbt
import royalnet.commands as rc import royalnet.commands as rc
import royalnet.utils as ru import royalnet.utils as ru
import royalnet.backpack.tables as rbt
from .escape import escape from .escape import escape
from ..serf import Serf from ..serf import Serf

View file

@ -1,12 +1,12 @@
from .asyncify import asyncify from .asyncify import asyncify
from .sleep_until import sleep_until
from .formatters import andformat, underscorize, ytdldateformat, numberemojiformat, ordinalformat from .formatters import andformat, underscorize, ytdldateformat, numberemojiformat, ordinalformat
from .urluuid import to_urluuid, from_urluuid
from .multilock import MultiLock
from .sentry import init_sentry, sentry_exc, sentry_wrap, sentry_async_wrap
from .log import init_logging from .log import init_logging
from .multilock import MultiLock
from .royaltyping import JSON from .royaltyping import JSON
from .sentry import init_sentry, sentry_exc, sentry_wrap, sentry_async_wrap
from .sleep_until import sleep_until
from .strip_tabs import strip_tabs from .strip_tabs import strip_tabs
from .urluuid import to_urluuid, from_urluuid
__all__ = [ __all__ = [
"asyncify", "asyncify",

View file

@ -1,5 +1,5 @@
import typing
import re import re
import typing
def andformat(coll: typing.Collection[str], middle=", ", final=" and ") -> str: def andformat(coll: typing.Collection[str], middle=", ", final=" and ") -> str:

View file

@ -1,5 +1,5 @@
from typing import *
import logging import logging
from typing import *
try: try:
import coloredlogs import coloredlogs

View file

@ -1,13 +1,13 @@
import logging
from asyncio import Event from asyncio import Event
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
import logging
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
class MultiLock: class MultiLock:
"""A lock that can allow both simultaneous access and exclusive access to a resource.""" """A lock that can allow both simultaneous access and exclusive access to a resource."""
def __init__(self): def __init__(self):
self._counter: int = 0 self._counter: int = 0
self._normal_event: Event = Event() self._normal_event: Event = Event()

View file

@ -1,9 +1,10 @@
import functools
import logging import logging
import sys import sys
import traceback import traceback
from typing import * from typing import *
import royalnet import royalnet
import functools
try: try:
import sentry_sdk import sentry_sdk
@ -16,7 +17,6 @@ except ImportError:
SqlalchemyIntegration = None SqlalchemyIntegration = None
LoggingIntegration = None LoggingIntegration = None
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -57,7 +57,9 @@ def sentry_wrap(level: str = "ERROR"):
except Exception as exc: except Exception as exc:
sentry_exc(exc=exc, level=level) sentry_exc(exc=exc, level=level)
raise raise
return new_func return new_func
return decorator return decorator
@ -70,5 +72,7 @@ def sentry_async_wrap(level: str = "ERROR"):
except Exception as exc: except Exception as exc:
sentry_exc(exc=exc, level=level) sentry_exc(exc=exc, level=level)
raise raise
return new_func return new_func
return decorator return decorator

View file

@ -1,5 +1,5 @@
import uuid as _uuid
import base64 import base64
import uuid as _uuid
def to_urluuid(uuid: _uuid.UUID) -> str: def to_urluuid(uuid: _uuid.UUID) -> str:

View file

@ -121,7 +121,7 @@ dsn = "https://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@sentry.io/1111111"
# The Python package name of the Packs you want to be usable in Royalnet # The Python package name of the Packs you want to be usable in Royalnet
# Please note that the `royalnet.backpack` Pack should always be available! # Please note that the `royalnet.backpack` Pack should always be available!
active = [ active = [
"royalnet.backpack", # DO NOT REMOVE THIS OR THINGS WILL BREAK "royalnet.backpack", # DO NOT REMOVE THIS OR THINGS WILL BREAK
# "yourpack", # "yourpack",
] ]