Files
memevizor/docs/structurizr/out/structurizr-1-ContainerDiagram.svg
2025-12-07 15:28:19 +03:00

1 line
20 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 2350 1419" style="background: #ffffff"><defs joint-selector="defs"></defs><g joint-selector="layers" transform="matrix(1,0,0,1,0,0)"><g ></g><g ><!--z-index:1--><!--z-index:2--><!--z-index:3--><!--z-index:4--><!--z-index:5--><!--z-index:6--><!--z-index:7--><!--z-index:8--><!--z-index:9--><!--z-index:10--><!--z-index:11--><!--z-index:12--><g id="j_19" transform="translate(20,1375)"><g id="v-209"><text id="v-210" font-size="24px" xml:space="preserve" y="0.8em" font-weight="normal" text-anchor="start" fill="#444444" pointer-events="none" display="block" font-family="Open Sans, Tahoma, Arial"><tspan dy="0" display="none">Sunday, December 7, 2025 at 3:19 PM Moscow Standard Time</tspan></text></g></g><!--z-index:13--><g id="j_18" transform="translate(20,1329)"><g id="v-207"><text id="v-208" font-size="36px" xml:space="preserve" y="0.8em" font-weight="normal" text-anchor="start" fill="#444444" pointer-events="none" display="block" font-family="Open Sans, Tahoma, Arial"><tspan dy="0" display="none">Container View: Memevizor</tspan></text></g></g><!--z-index:14--><g id="j_20" transform="translate(199,179)" style=""><g id="v-217" style="opacity: 1;"><rect id="v-218" rx="1" ry="1" stroke-width="2" pointer-events="visiblePainted" fill="#ffffff" stroke="#444444" stroke-dasharray="" width="450" height="300"></rect><text id="v-219" font-size="33.599999999999994px" xml:space="preserve" y="52.34" font-weight="bold" text-anchor="middle" pointer-events="visible" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)"><tspan dy="0">Viewer (Any Web</tspan><tspan dy="1.2em" x="0" >Browser)</tspan></text><text id="v-220" font-size="16.799999999999997px" xml:space="preserve" y="134.26" text-anchor="middle" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)" style="display: block;"><tspan dy="0">[Person]</tspan></text><text id="v-221" font-size="24px" xml:space="preserve" y="166.06" text-anchor="middle" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)" style="display: block;"><tspan dy="0">Opens the S3-hosted UI on a</tspan><tspan dy="1.2em" x="0" >browser (e.g., on a TV screen) to</tspan><tspan dy="1.2em" x="0" >view the current approved meme.</tspan></text><g id="v-222" color="#444444" transform="matrix(1,0,0,1,222.5,268)" display="none"><g ></g><g ></g><g ></g><g ></g></g><image id="v-223"></image></g></g><!--z-index:15--><g id="j_21" transform="translate(1699,779)" style=""><g id="v-227" style="opacity: 1;"><rect id="v-228" rx="1" ry="1" stroke-width="2" pointer-events="visiblePainted" fill="#ffffff" stroke="#444444" stroke-dasharray="" width="450" height="300"></rect><text id="v-229" font-size="33.599999999999994px" xml:space="preserve" y="72.5" font-weight="bold" text-anchor="middle" pointer-events="visible" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)"><tspan dy="0">Telegram</tspan></text><text id="v-230" font-size="16.799999999999997px" xml:space="preserve" y="114.1" text-anchor="middle" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)" style="display: block;"><tspan dy="0">[Software System]</tspan></text><text id="v-231" font-size="24px" xml:space="preserve" y="145.89999999999998" text-anchor="middle" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)" style="display: block;"><tspan dy="0">Messaging platform used for</tspan><tspan dy="1.2em" x="0" >content submission and</tspan><tspan dy="1.2em" x="0" >moderation.</tspan></text><g id="v-232" color="#444444" transform="matrix(1,0,0,1,222.5,268)" display="none"><g ></g><g ></g><g ></g><g ></g></g><image id="v-233"></image></g></g><!--z-index:16--><g id="j_23" transform="translate(929,159)" style=""><g id="v-250"><rect id="v-251" width="490" height="1019" rx="0" ry="0" stroke-width="2" pointer-events="none" stroke="#444444" fill="#ffffff" stroke-dasharray=""></rect><text id="v-252" font-size="33.599999999999994px" xml:space="preserve" y="980" font-weight="bold" text-anchor="start" pointer-events="visible" font-family="Open Sans, Tahoma, Arial" fill="#444444" transform="matrix(1,0,0,1,15,0)"><tspan dy="0">Memevizor</tspan></text><text id="v-253" font-size="16.799999999999997px" xml:space="preserve" y="1004" font-weight="normal" text-anchor="start" pointer-events="visible" font-family="Open Sans, Tahoma, Arial" fill="#444444" transform="matrix(1,0,0,1,15,0)"><tspan dy="0">[Software System]</tspan></text><image id="v-254" pointer-events="visible"></image></g></g><!--z-index:17--><g id="j_22" transform="translate(949,179)" style=""><g id="v-243" style="opacity: 1;"><rect id="v-244" rx="1" ry="1" stroke-width="2" pointer-events="visiblePainted" fill="#ffffff" stroke="#444444" stroke-dasharray="" width="450" height="300"></rect><text id="v-245" font-size="33.599999999999994px" xml:space="preserve" y="91.22" font-weight="bold" text-anchor="middle" pointer-events="visible" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)"><tspan dy="0">Memevizor Bot Backend</tspan></text><text id="v-246" font-size="16.799999999999997px" xml:space="preserve" y="132.82" text-anchor="middle" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)" style="display: block;"><tspan dy="0">[Container: Processes Telegram updates, handles</tspan><tspan dy="1.2em" x="0" >media conversion, and manages S3 content.]</tspan></text><text id="v-247" font-size="24px" xml:space="preserve" y="184.77999999999997" text-anchor="middle" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)" style="display: block;"><tspan dy="0">Kotlin/Spring Application.</tspan></text><g id="v-248" color="#444444" transform="matrix(1,0,0,1,222.5,268)" display="none"><g ></g><g ></g><g ></g><g ></g></g><image id="v-249"></image></g></g><!--z-index:18--><g id="j_24" transform="translate(949,779)" style=""><g id="v-261" style="opacity: 1;"><rect id="v-262" rx="1" ry="1" stroke-width="2" pointer-events="visiblePainted" fill="#ffffff" stroke="#444444" stroke-dasharray="" width="450" height="300"></rect><text id="v-263" font-size="33.599999999999994px" xml:space="preserve" y="91.22" font-weight="bold" text-anchor="middle" pointer-events="visible" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)"><tspan dy="0">Content S3 Bucket</tspan></text><text id="v-264" font-size="16.799999999999997px" xml:space="preserve" y="132.82" text-anchor="middle" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)" style="display: block;"><tspan dy="0">[Container: Stores static UI assets (HTML/CSS/JS)</tspan><tspan dy="1.2em" x="0" >and approved media content.]</tspan></text><text id="v-265" font-size="24px" xml:space="preserve" y="184.77999999999997" text-anchor="middle" font-family="Open Sans, Tahoma, Arial" fill="#444444" dominant-baseline="hanging" transform="matrix(1,0,0,1,225,0)" style="display: block;"><tspan dy="0">AWS S3.</tspan></text><g id="v-266" color="#444444" transform="matrix(1,0,0,1,222.5,268)" display="none"><g ></g><g ></g><g ></g><g ></g></g><image id="v-267"></image></g></g><!--z-index:19--><g id="j_25" ><path stroke="#444444" d="M 1362 479 L 1737 779" id="v-286" stroke-width="2" stroke-dasharray="8 8" fill="none" style="opacity: 1;"></path><path fill="black" stroke="black" d="M 0 0 0 0" transform="matrix(0.7808688282966614,0.6246950626373291,-0.6246950626373291,0.7808688282966614,1361.5,479)"></path><path fill="#444444" stroke="#444444" d="M 20 0 L 0 10 L 20 20 z" id="v-288" transform="matrix(-0.7808688282966614,-0.6246950030326843,0.6246950030326843,-0.7808688282966614,1730.2530517578125,786.8087158203125)" style="opacity: 1;"></path><path d="M 1362 479 L 1737 779" id="v-287" fill="none" style="cursor: auto; pointer-events: visiblepainted;"></path><g ><g id="v-277" label-idx="0" cursor="move" transform="matrix(1,0,0,1,1549.5,605.52001953125)" style="cursor: default; opacity: 1;"><rect joint-selector="rect" id="v-281" fill="#ffffff" rx="3" ry="3" pointer-events="none" width="192.85617065429688" height="178.4181137084961" transform="matrix(1,0,0,1,-96.4000015258789,-89.19999694824219)"></rect><text joint-selector="text" id="v-280" font-size="24px" xml:space="preserve" y="0.8em" fill="#444444" text-anchor="middle" pointer-events="none" font-family="Open Sans, Tahoma, Arial" font-weight="normal" transform="matrix(1,0,0,1,0,-82)"><tspan dy="0">Polls for updates</tspan><tspan dy="1.2em" x="0" >and sends</tspan><tspan dy="1.2em" x="0" >reactions/</tspan><tspan dy="1.2em" x="0" >replies/</tspan><tspan dy="1.2em" x="0" >Downloads</tspan><tspan dy="1.2em" x="0" >media</tspan></text></g><g id="v-278" label-idx="1" cursor="move" transform="matrix(1,0,0,1,1549.5,718)" style="cursor: default; opacity: 1;"><rect joint-selector="rect" id="v-283" fill="#ffffff" rx="3" ry="3" pointer-events="none" width="170.62498474121094" height="44.30999755859375" transform="matrix(1,0,0,1,-85.30000305175781,-22.200000762939453)" style="display: block;"></rect><text joint-selector="text" id="v-282" font-size="16.799999999999997px" xml:space="preserve" y="0.8em" fill="#444444" text-anchor="middle" pointer-events="none" font-family="Open Sans, Tahoma, Arial" font-weight="normal" transform="matrix(1,0,0,1,0,-16.700000762939453)" style="display: block;"><tspan dy="0">[HTTPS/Telegram Bot</tspan><tspan dy="1.2em" x="0" >API]</tspan></text></g><g id="v-279" label-idx="2" cursor="move" transform="matrix(1,0,0,1,1539.5,736.47998046875)" style="cursor: default; opacity: 1;"><rect joint-selector="rect" id="v-285" fill="#ffffff" rx="3" ry="3" width="0" height="0" transform="matrix(1,0,0,1,0,0)" display="none"></rect><text joint-selector="text" id="v-284" fill="#000000" font-size="14" text-anchor="middle" pointer-events="none"></text></g></g><g display="none" style="display: none;"></g><g id="v-290" display="none"><g id="v-275"><path end="source" d="M 26 0 L 0 13 L 26 26 z"></path></g><g id="v-276"><path end="target" d="M 26 0 L 0 13 L 26 26 z"></path></g></g><g id="v-289" display="none"><g id="v-274" transform="translate(1393.2347523777212, 503.987801902177) "><g event="remove"><circle r="11"></circle><path transform="scale(.8) translate(-16, -16)" d="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z"></path><title>Remove link.</title></g><g event="link:options"><circle r="11" transform="translate(25)"></circle><path fill="white" transform="scale(.55) translate(29, -16)" d="M31.229,17.736c0.064-0.571,0.104-1.148,0.104-1.736s-0.04-1.166-0.104-1.737l-4.377-1.557c-0.218-0.716-0.504-1.401-0.851-2.05l1.993-4.192c-0.725-0.91-1.549-1.734-2.458-2.459l-4.193,1.994c-0.647-0.347-1.334-0.632-2.049-0.849l-1.558-4.378C17.165,0.708,16.588,0.667,16,0.667s-1.166,0.041-1.737,0.105L12.707,5.15c-0.716,0.217-1.401,0.502-2.05,0.849L6.464,4.005C5.554,4.73,4.73,5.554,4.005,6.464l1.994,4.192c-0.347,0.648-0.632,1.334-0.849,2.05l-4.378,1.557C0.708,14.834,0.667,15.412,0.667,16s0.041,1.165,0.105,1.736l4.378,1.558c0.217,0.715,0.502,1.401,0.849,2.049l-1.994,4.193c0.725,0.909,1.549,1.733,2.459,2.458l4.192-1.993c0.648,0.347,1.334,0.633,2.05,0.851l1.557,4.377c0.571,0.064,1.148,0.104,1.737,0.104c0.588,0,1.165-0.04,1.736-0.104l1.558-4.377c0.715-0.218,1.399-0.504,2.049-0.851l4.193,1.993c0.909-0.725,1.733-1.549,2.458-2.458l-1.993-4.193c0.347-0.647,0.633-1.334,0.851-2.049L31.229,17.736zM16,20.871c-2.69,0-4.872-2.182-4.872-4.871c0-2.69,2.182-4.872,4.872-4.872c2.689,0,4.871,2.182,4.871,4.872C20.871,18.689,18.689,20.871,16,20.871z"></path><title>Link options.</title></g></g></g></g><!--z-index:20--><g id="j_26" ><path stroke="#444444" d="M 1174 479 L 1174 779" id="v-306" stroke-width="2" stroke-dasharray="8 8" fill="none" style="opacity: 1;"></path><path fill="black" stroke="black" d="M 0 0 0 0" transform="matrix(6.123234262925839e-17,1,-1,6.123234262925839e-17,1174,479)"></path><path fill="#444444" stroke="#444444" d="M 20 0 L 0 10 L 20 20 z" id="v-308" transform="matrix(-1.8369701465288538e-16,-1,1,-1.8369701465288538e-16,1164,779)" style="opacity: 1;"></path><path d="M 1174 479 L 1174 779" id="v-307" fill="none" style="cursor: auto; pointer-events: visiblepainted;"></path><g ><g id="v-297" label-idx="0" cursor="move" transform="matrix(1,0,0,1,1174,615.5999755859375)" style="cursor: default; opacity: 1;"><rect joint-selector="rect" id="v-301" fill="#ffffff" rx="3" ry="3" pointer-events="none" width="152.93115234375" height="63.21811866760254" transform="matrix(1,0,0,1,-76.5,-31.600000381469727)"></rect><text joint-selector="text" id="v-300" font-size="24px" xml:space="preserve" y="0.8em" fill="#444444" text-anchor="middle" pointer-events="none" font-family="Open Sans, Tahoma, Arial" font-weight="normal" transform="matrix(1,0,0,1,0,-24.399999618530273)"><tspan dy="0">Uploads UI</tspan><tspan dy="1.2em" x="0" >assets/media</tspan></text></g><g id="v-298" label-idx="1" cursor="move" transform="matrix(1,0,0,1,1174,660.4000244140625)" style="cursor: default; opacity: 1;"><rect joint-selector="rect" id="v-303" fill="#ffffff" rx="3" ry="3" pointer-events="none" width="65.37999725341797" height="24.14999771118164" transform="matrix(1,0,0,1,-32.70000076293945,-12.100000381469727)" style="display: block;"></rect><text joint-selector="text" id="v-302" font-size="16.799999999999997px" xml:space="preserve" y="0.8em" fill="#444444" text-anchor="middle" pointer-events="none" font-family="Open Sans, Tahoma, Arial" font-weight="normal" transform="matrix(1,0,0,1,0,-6.599999904632568)" style="display: block;"><tspan dy="0">[HTTPS]</tspan></text></g><g id="v-299" label-idx="2" cursor="move" transform="matrix(1,0,0,1,1164,668.7999877929688)" style="cursor: default; opacity: 1;"><rect joint-selector="rect" id="v-305" fill="#ffffff" rx="3" ry="3" width="0" height="0" transform="matrix(1,0,0,1,0,0)" display="none"></rect><text joint-selector="text" id="v-304" fill="#000000" font-size="14" text-anchor="middle" pointer-events="none"></text></g></g><g display="none" style="display: none;"></g><g id="v-310" display="none"><g id="v-295"><path end="source" d="M 26 0 L 0 13 L 26 26 z"></path></g><g id="v-296"><path end="target" d="M 26 0 L 0 13 L 26 26 z"></path></g></g><g id="v-309" display="none"><g id="v-294" transform="translate(1174, 519) "><g event="remove"><circle r="11"></circle><path transform="scale(.8) translate(-16, -16)" d="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z"></path><title>Remove link.</title></g><g event="link:options"><circle r="11" transform="translate(25)"></circle><path fill="white" transform="scale(.55) translate(29, -16)" d="M31.229,17.736c0.064-0.571,0.104-1.148,0.104-1.736s-0.04-1.166-0.104-1.737l-4.377-1.557c-0.218-0.716-0.504-1.401-0.851-2.05l1.993-4.192c-0.725-0.91-1.549-1.734-2.458-2.459l-4.193,1.994c-0.647-0.347-1.334-0.632-2.049-0.849l-1.558-4.378C17.165,0.708,16.588,0.667,16,0.667s-1.166,0.041-1.737,0.105L12.707,5.15c-0.716,0.217-1.401,0.502-2.05,0.849L6.464,4.005C5.554,4.73,4.73,5.554,4.005,6.464l1.994,4.192c-0.347,0.648-0.632,1.334-0.849,2.05l-4.378,1.557C0.708,14.834,0.667,15.412,0.667,16s0.041,1.165,0.105,1.736l4.378,1.558c0.217,0.715,0.502,1.401,0.849,2.049l-1.994,4.193c0.725,0.909,1.549,1.733,2.459,2.458l4.192-1.993c0.648,0.347,1.334,0.633,2.05,0.851l1.557,4.377c0.571,0.064,1.148,0.104,1.737,0.104c0.588,0,1.165-0.04,1.736-0.104l1.558-4.377c0.715-0.218,1.399-0.504,2.049-0.851l4.193,1.993c0.909-0.725,1.733-1.549,2.458-2.458l-1.993-4.193c0.347-0.647,0.633-1.334,0.851-2.049L31.229,17.736zM16,20.871c-2.69,0-4.872-2.182-4.872-4.871c0-2.69,2.182-4.872,4.872-4.872c2.689,0,4.871,2.182,4.871,4.872C20.871,18.689,18.689,20.871,16,20.871z"></path><title>Link options.</title></g></g></g></g><!--z-index:21--><g id="j_27" ><path stroke="#444444" d="M 612 479 L 987 779" id="v-326" stroke-width="2" stroke-dasharray="8 8" fill="none" style="opacity: 1;"></path><path fill="black" stroke="black" d="M 0 0 0 0" transform="matrix(0.7808688282966614,0.6246950626373291,-0.6246950626373291,0.7808688282966614,611.5,479)"></path><path fill="#444444" stroke="#444444" d="M 20 0 L 0 10 L 20 20 z" id="v-328" transform="matrix(-0.7808688282966614,-0.6246950030326843,0.6246950030326843,-0.7808688282966614,980.2530517578125,786.8087158203125)" style="opacity: 1;"></path><path d="M 612 479 L 987 779" id="v-327" fill="none" style="cursor: auto; pointer-events: visiblepainted;"></path><g ><g id="v-317" label-idx="0" cursor="move" transform="matrix(1,0,0,1,799.5,615.5999755859375)" style="cursor: default; opacity: 1;"><rect joint-selector="rect" id="v-321" fill="#ffffff" rx="3" ry="3" pointer-events="none" width="171.975830078125" height="92.01811981201172" transform="matrix(1,0,0,1,-86,-46)"></rect><text joint-selector="text" id="v-320" font-size="24px" xml:space="preserve" y="0.8em" fill="#444444" text-anchor="middle" pointer-events="none" font-family="Open Sans, Tahoma, Arial" font-weight="normal" transform="matrix(1,0,0,1,0,-38.79999923706055)"><tspan dy="0">Fetches UI and</tspan><tspan dy="1.2em" x="0" >polls for media</tspan><tspan dy="1.2em" x="0" >files</tspan></text></g><g id="v-318" label-idx="1" cursor="move" transform="matrix(1,0,0,1,799.5,674.7999877929688)" style="cursor: default; opacity: 1;"><rect joint-selector="rect" id="v-323" fill="#ffffff" rx="3" ry="3" pointer-events="none" width="65.37999725341797" height="24.14999771118164" transform="matrix(1,0,0,1,-32.70000076293945,-12.100000381469727)" style="display: block;"></rect><text joint-selector="text" id="v-322" font-size="16.799999999999997px" xml:space="preserve" y="0.8em" fill="#444444" text-anchor="middle" pointer-events="none" font-family="Open Sans, Tahoma, Arial" font-weight="normal" transform="matrix(1,0,0,1,0,-6.599999904632568)" style="display: block;"><tspan dy="0">[HTTPS]</tspan></text></g><g id="v-319" label-idx="2" cursor="move" transform="matrix(1,0,0,1,789.5,683.2000122070312)" style="cursor: default; opacity: 1;"><rect joint-selector="rect" id="v-325" fill="#ffffff" rx="3" ry="3" width="0" height="0" transform="matrix(1,0,0,1,0,0)" display="none"></rect><text joint-selector="text" id="v-324" fill="#000000" font-size="14" text-anchor="middle" pointer-events="none"></text></g></g><g display="none" style="display: none;"></g><g id="v-330" display="none"><g id="v-315"><path end="source" d="M 26 0 L 0 13 L 26 26 z"></path></g><g id="v-316"><path end="target" d="M 26 0 L 0 13 L 26 26 z"></path></g></g><g id="v-329" display="none"><g id="v-314" transform="translate(643.2347523777213, 503.987801902177) "><g event="remove"><circle r="11"></circle><path transform="scale(.8) translate(-16, -16)" d="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z"></path><title>Remove link.</title></g><g event="link:options"><circle r="11" transform="translate(25)"></circle><path fill="white" transform="scale(.55) translate(29, -16)" d="M31.229,17.736c0.064-0.571,0.104-1.148,0.104-1.736s-0.04-1.166-0.104-1.737l-4.377-1.557c-0.218-0.716-0.504-1.401-0.851-2.05l1.993-4.192c-0.725-0.91-1.549-1.734-2.458-2.459l-4.193,1.994c-0.647-0.347-1.334-0.632-2.049-0.849l-1.558-4.378C17.165,0.708,16.588,0.667,16,0.667s-1.166,0.041-1.737,0.105L12.707,5.15c-0.716,0.217-1.401,0.502-2.05,0.849L6.464,4.005C5.554,4.73,4.73,5.554,4.005,6.464l1.994,4.192c-0.347,0.648-0.632,1.334-0.849,2.05l-4.378,1.557C0.708,14.834,0.667,15.412,0.667,16s0.041,1.165,0.105,1.736l4.378,1.558c0.217,0.715,0.502,1.401,0.849,2.049l-1.994,4.193c0.725,0.909,1.549,1.733,2.459,2.458l4.192-1.993c0.648,0.347,1.334,0.633,2.05,0.851l1.557,4.377c0.571,0.064,1.148,0.104,1.737,0.104c0.588,0,1.165-0.04,1.736-0.104l1.558-4.377c0.715-0.218,1.399-0.504,2.049-0.851l4.193,1.993c0.909-0.725,1.733-1.549,2.458-2.458l-1.993-4.193c0.347-0.647,0.633-1.334,0.851-2.049L31.229,17.736zM16,20.871c-2.69,0-4.872-2.182-4.872-4.871c0-2.69,2.182-4.872,4.872-4.872c2.689,0,4.871,2.182,4.871,4.872C20.871,18.689,18.689,20.871,16,20.871z"></path><title>Link options.</title></g></g></g></g><!--z-index:22--></g><g ></g><g ></g><g ></g></g></svg>