diff --git a/content/posts/newsletter-015/index.md b/content/posts/newsletter-015/index.md index 97907b513..39f80205a 100644 --- a/content/posts/newsletter-015/index.md +++ b/content/posts/newsletter-015/index.md @@ -515,6 +515,38 @@ For a full list of changes see the [glam changelog]. [bytemuck]: https://docs.rs/bytemuck [glam changelog]: https://github.com/bitshifter/glam-rs/blob/master/CHANGELOG.md +### [Rapier] + +[][Rapier] + +[Rapier] is a set of 2D and 3D physics engines for games, animation and +robotics written in Rust. + +[This month][rapier-october] the version 0.3.0 has been released with exciting +new features: + +- cylinders and cones as collider shapes; +- collision groups (with bit masks) and collision filters (with callbacks) + for deciding what pairs of colliders can touch; +- the ability to set the mass of rigid-bodies explicitly; +- linear and angular damping, to progressively slow down rigid-bodies; +- the ability so attach some user-defined data (of type `u128`) to any + collider or rigid-body. + +[][rapier-demo] + +The [bevy_rapier] plugin for the Bevy game engine has been updated to support +all the aforementioned features. + +Finally, a [continuous benchmarking][cont-bench] infrastructure has been set +up to make sure performances regressions can be detected early. + +[Rapier]: https://rapier.rs +[rapier-october]: https://www.dimforge.com/blog/2020/11/01/this-month-in-dimforge/ +[rapier-demo]: https://twitter.com/dimforge/status/1321138642778206211 +[bevy_rapier]: https://www.rapier.rs/docs/user_guides/rust_bevy_plugin/getting_started +[cont-bench]: https://www.dimforge.com/blog/2020/10/01/this-month-in-dimforge#rapier-continuous-benchmarking + ### [This Month in Mun][mun-october] [][Mun] diff --git a/content/posts/newsletter-015/rapier-demo.gif b/content/posts/newsletter-015/rapier-demo.gif new file mode 100644 index 000000000..cd3c4d1e9 Binary files /dev/null and b/content/posts/newsletter-015/rapier-demo.gif differ diff --git a/content/posts/newsletter-015/rapier-logo.svg b/content/posts/newsletter-015/rapier-logo.svg new file mode 100644 index 000000000..363266688 --- /dev/null +++ b/content/posts/newsletter-015/rapier-logo.svg @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="100%" height="100%" viewBox="0 0 527 131" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"> + <g transform="matrix(1,0,0,1,-4,-1002)"> + <g transform="matrix(1,0,0,1,1.05693e-13,973.712)"> + <g transform="matrix(0.5,0,0,1,-349.015,-632.049)"> + <path d="M900,696.85L1009.71,697.852C1014.26,700.353 1018.29,700.266 1021.86,697.963L1307.05,700.568C1313.79,704.292 1320.32,704.274 1326.64,700.747L1417.32,701.575L1700.79,708.661L1577.83,711.968C1563.36,709.429 1549.15,710.021 1535.13,713.116L1417.32,716.283L1071.24,719.352C1064.41,715.871 1057.93,716.047 1051.8,719.524L944.882,720.472L900,696.85Z" style="fill:rgb(235,235,235);stroke:black;stroke-width:1.32px;"/> + </g> + <g transform="matrix(0.723956,0,0,1,-762.52,-632.049)"> + <path d="M1323.28,708.765C1323.28,708.765 1335.4,708.875 1354.4,709.015C1367.33,709.111 1383.45,709.234 1401.1,709.33C1411.08,709.384 1421.56,709.428 1432.22,709.46C1439.09,709.48 1446.03,709.496 1452.98,709.495C1459.92,709.494 1466.86,709.476 1473.73,709.453C1484.4,709.418 1494.87,709.363 1504.86,709.309C1515.98,709.249 1526.49,709.181 1535.99,709.116C1563.69,708.926 1582.68,708.765 1582.68,708.765C1582.76,708.765 1582.82,708.718 1582.82,708.661C1582.82,708.604 1582.76,708.558 1582.68,708.558C1582.68,708.558 1563.69,708.397 1535.99,708.207C1526.49,708.141 1515.98,708.074 1504.86,708.014C1494.87,707.96 1484.4,707.905 1473.73,707.87C1466.86,707.847 1459.92,707.829 1452.98,707.828C1446.03,707.827 1439.09,707.843 1432.22,707.863C1421.56,707.894 1411.08,707.939 1401.1,707.993C1383.45,708.089 1367.33,708.212 1354.4,708.307C1335.4,708.448 1323.28,708.558 1323.28,708.558C1323.2,708.558 1323.13,708.604 1323.13,708.661C1323.13,708.718 1323.2,708.765 1323.28,708.765Z" style="fill:rgb(59,59,59);"/> + </g> + <g transform="matrix(1,0,0,1,-1199.41,-632.049)"> + <path d="M1322.84,720.472L1299.21,720.472C1299.21,720.472 1291.96,713.933 1287.4,713.386C1277.56,712.205 1264.72,710.552 1240.16,713.386L1228.35,720.472L1228.35,696.85C1255.42,704.406 1279.38,704.27 1300.39,696.85L1322.84,720.472Z" style="fill:rgb(180,248,191);"/> + <path d="M1240.53,714.496L1228.94,721.455C1228.58,721.667 1228.14,721.673 1227.78,721.47C1227.42,721.266 1227.2,720.885 1227.2,720.472L1227.2,696.85C1227.2,696.492 1227.37,696.154 1227.65,695.938C1227.94,695.721 1228.31,695.65 1228.65,695.747C1241.26,699.264 1253.18,701.104 1264.44,701.302C1277.13,701.526 1288.98,699.664 1300.01,695.77C1300.44,695.619 1300.91,695.734 1301.22,696.061L1323.66,719.683C1323.98,720.015 1324.07,720.504 1323.89,720.924C1323.71,721.345 1323.29,721.618 1322.84,721.618L1299.21,721.618C1298.93,721.618 1298.66,721.513 1298.44,721.323C1298.44,721.323 1295.33,718.51 1291.93,716.467C1290.32,715.5 1288.66,714.691 1287.27,714.523C1281.24,713.801 1274.09,712.899 1263.79,712.971C1257.41,713.015 1249.82,713.433 1240.53,714.496ZM1300.07,698.176C1289,701.991 1277.11,703.818 1264.4,703.594C1253.39,703.399 1241.76,701.667 1229.49,698.353L1229.49,718.449L1239.57,712.403L1240.03,712.248C1249.52,711.152 1257.27,710.724 1263.78,710.679C1274.2,710.607 1281.44,711.517 1287.54,712.248C1289.2,712.447 1291.2,713.353 1293.11,714.503C1296.01,716.248 1298.72,718.525 1299.64,719.327L1320.17,719.327L1300.07,698.176Z"/> + </g> + <g transform="matrix(1,0,0,1,-1199.41,-632.049)"> + <path d="M1293.04,709.281L1235.42,708.105C1235.08,708.098 1234.8,707.812 1234.81,707.468C1234.82,707.123 1235.1,706.848 1235.45,706.855L1293.32,708.037C1293.48,708.04 1293.63,708.105 1293.75,708.219L1300.84,715.306C1301.08,715.55 1301.08,715.946 1300.84,716.19C1300.59,716.434 1300.2,716.434 1299.95,716.19L1293.04,709.281Z" style="fill-opacity:0.26;"/> + </g> + <g transform="matrix(1,0,0,1,-1199.41,-632.049)"> + <path d="M1299.2,661.417C1299.2,661.417 1345.42,670.396 1346.44,707.48C1347.46,744.564 1299.2,755.906 1299.2,755.906C1291.16,724.592 1291.08,693.098 1299.2,661.417ZM1304.82,745.094C1312,742.063 1318.5,737.805 1324.27,732.249C1330.04,726.692 1335.09,719.838 1339.37,711.614C1339.37,711.614 1305.88,720.335 1304.82,745.094ZM1306,674C1313.18,677.031 1319.68,681.29 1325.45,686.846C1331.23,692.402 1336.27,699.257 1340.55,707.48C1340.55,707.48 1307.06,698.76 1306,674Z" style="fill:rgb(216,210,238);fill-opacity:0.76;"/> + <path d="M1299.36,660.599C1298.92,660.515 1298.5,660.783 1298.39,661.211C1294.33,677.074 1292.31,692.891 1292.31,708.662C1292.3,724.525 1294.34,740.342 1298.39,756.113C1298.5,756.552 1298.95,756.821 1299.39,756.717C1299.39,756.717 1323.3,751.086 1337.31,734.851C1343.37,727.823 1347.59,718.824 1347.27,707.457C1346.97,696.329 1342.67,687.681 1336.76,681.016C1322.68,665.14 1299.36,660.599 1299.36,660.599ZM1299.81,662.401C1295.91,677.867 1293.98,693.286 1293.97,708.662C1293.97,724.116 1295.92,739.526 1299.8,754.891C1303.99,753.774 1323.86,747.885 1336.04,733.762C1341.86,727.025 1345.91,718.4 1345.61,707.503C1345.23,693.869 1338.62,684.115 1330.5,677.242C1318.55,667.119 1303.36,663.21 1299.81,662.401ZM1303.99,745.059C1303.97,745.344 1304.11,745.616 1304.34,745.779C1304.58,745.942 1304.88,745.973 1305.14,745.862C1308.81,744.316 1312.3,742.455 1315.6,740.27C1318.86,738.114 1321.95,735.644 1324.85,732.849C1327.88,729.934 1330.71,726.667 1333.34,723.037C1335.77,719.672 1338.03,715.996 1340.11,711.999C1340.26,711.707 1340.23,711.352 1340.02,711.095C1339.82,710.837 1339.48,710.725 1339.16,710.808C1339.16,710.808 1322.71,715.098 1312.34,726.165C1307.73,731.074 1304.32,737.304 1303.99,745.059ZM1337.69,712.985C1333.17,714.439 1321.52,718.81 1313.55,727.305C1309.48,731.651 1306.37,737.086 1305.74,743.784C1308.86,742.391 1311.84,740.758 1314.68,738.879C1317.86,736.779 1320.87,734.372 1323.69,731.648C1326.65,728.8 1329.42,725.607 1331.98,722.06C1334.01,719.257 1335.92,716.234 1337.69,712.985ZM1306.32,673.232C1306.06,673.121 1305.76,673.153 1305.53,673.316C1305.29,673.479 1305.15,673.75 1305.17,674.036C1305.5,681.791 1308.91,688.021 1313.52,692.93C1323.89,703.997 1340.34,708.287 1340.34,708.287C1340.66,708.37 1341,708.257 1341.2,708C1341.41,707.742 1341.44,707.388 1341.29,707.096C1339.21,703.099 1336.95,699.422 1334.52,696.058C1331.89,692.427 1329.06,689.16 1326.03,686.246C1323.13,683.451 1320.04,680.98 1316.78,678.825C1313.48,676.639 1309.99,674.778 1306.32,673.232ZM1306.92,675.31C1307.55,682.009 1310.66,687.444 1314.73,691.79C1322.7,700.285 1334.36,704.655 1338.88,706.11C1337.1,702.861 1335.19,699.837 1333.16,697.035C1330.6,693.487 1327.83,690.294 1324.88,687.446C1322.05,684.723 1319.04,682.315 1315.86,680.215C1313.02,678.336 1310.04,676.703 1306.92,675.31Z"/> + </g> + <g transform="matrix(1,0,0,1,-1199.41,-632.049)"> + <g transform="matrix(1,-0,-0,1,1203.41,660.337)"> + <use xlink:href="#_Image1" x="281.125" y="22.564" width="244.554px" height="27.961px" transform="matrix(0.998179,0,0,0.998606,0,0)"/> + </g> + </g> + <g transform="matrix(1,0,0,-1,-1198.23,785.274)"> + <g transform="matrix(1,0,0,-1,1202.23,756.986)"> + <use xlink:href="#_Image2" x="282.309" y="46.219" width="244.554px" height="27.961px" transform="matrix(0.998179,0,0,0.998606,0,0)"/> + </g> + </g> + <g transform="matrix(1,0,0,1,-1199.41,-632.049)"> + <g transform="matrix(1,-0,-0,1,1203.41,660.337)"> + <use xlink:href="#_Image3" x="0.804" y="24.539" width="24.665px" height="48.286px" transform="matrix(0.986587,0,0,0.985424,0,0)"/> + </g> + </g> + <g transform="matrix(1.34947,0,0,1.34947,-1559.19,-910.299)"> + <g transform="matrix(50,0,0,50,1277.28,785.746)"> + <path d="M0.021,-0.074L0.074,-0.08C0.093,-0.082 0.106,-0.086 0.113,-0.092C0.119,-0.097 0.122,-0.111 0.122,-0.132L0.122,-0.597C0.122,-0.607 0.122,-0.616 0.121,-0.623C0.12,-0.63 0.117,-0.636 0.114,-0.641C0.111,-0.646 0.105,-0.65 0.098,-0.653C0.09,-0.656 0.08,-0.659 0.067,-0.661L0.025,-0.668L0.024,-0.685C0.04,-0.685 0.053,-0.685 0.063,-0.685C0.072,-0.684 0.081,-0.685 0.088,-0.686L0.222,-0.693C0.238,-0.695 0.255,-0.696 0.272,-0.696C0.349,-0.696 0.407,-0.685 0.446,-0.662C0.485,-0.639 0.504,-0.6 0.504,-0.543C0.504,-0.504 0.494,-0.473 0.474,-0.45C0.454,-0.427 0.424,-0.406 0.383,-0.387L0.493,-0.194C0.508,-0.167 0.522,-0.147 0.533,-0.132C0.544,-0.117 0.556,-0.106 0.567,-0.099C0.578,-0.092 0.589,-0.087 0.602,-0.085C0.614,-0.082 0.629,-0.08 0.647,-0.077L0.647,-0.059C0.633,-0.06 0.618,-0.06 0.601,-0.06L0.498,-0.06C0.483,-0.06 0.472,-0.06 0.465,-0.059L0.313,-0.341C0.302,-0.362 0.286,-0.372 0.263,-0.372L0.21,-0.372L0.21,-0.138C0.21,-0.122 0.213,-0.11 0.22,-0.103C0.226,-0.096 0.237,-0.09 0.253,-0.086L0.302,-0.074L0.302,-0.056C0.254,-0.059 0.205,-0.06 0.156,-0.06C0.106,-0.06 0.061,-0.059 0.021,-0.056L0.021,-0.074ZM0.21,-0.4C0.343,-0.395 0.41,-0.438 0.41,-0.527C0.41,-0.569 0.396,-0.603 0.367,-0.628C0.337,-0.653 0.297,-0.665 0.245,-0.665C0.24,-0.665 0.234,-0.665 0.228,-0.665C0.222,-0.664 0.216,-0.664 0.21,-0.663L0.21,-0.4Z" style="fill:rgb(72,72,72);fill-rule:nonzero;"/> + </g> + <g transform="matrix(50,0,0,50,1309.08,785.746)"> + <path d="M0.201,-0.049C0.174,-0.049 0.15,-0.054 0.129,-0.064C0.108,-0.073 0.091,-0.086 0.078,-0.103C0.065,-0.12 0.055,-0.139 0.048,-0.162C0.041,-0.185 0.038,-0.209 0.038,-0.235C0.038,-0.27 0.044,-0.302 0.056,-0.329C0.068,-0.356 0.084,-0.378 0.103,-0.396C0.122,-0.414 0.144,-0.428 0.169,-0.437C0.193,-0.446 0.218,-0.451 0.243,-0.451C0.256,-0.451 0.269,-0.45 0.28,-0.447C0.291,-0.444 0.301,-0.441 0.31,-0.438C0.32,-0.435 0.33,-0.431 0.339,-0.426L0.395,-0.455L0.404,-0.452C0.404,-0.4 0.404,-0.348 0.405,-0.297C0.405,-0.245 0.405,-0.193 0.405,-0.141C0.405,-0.114 0.416,-0.102 0.439,-0.103C0.444,-0.103 0.449,-0.104 0.452,-0.106C0.455,-0.107 0.459,-0.109 0.462,-0.111C0.465,-0.114 0.468,-0.116 0.471,-0.118L0.481,-0.112C0.476,-0.1 0.47,-0.089 0.463,-0.08C0.456,-0.072 0.448,-0.065 0.438,-0.059C0.428,-0.052 0.416,-0.049 0.403,-0.049C0.38,-0.049 0.364,-0.056 0.355,-0.071C0.346,-0.085 0.341,-0.105 0.341,-0.13L0.341,-0.16C0.337,-0.146 0.331,-0.132 0.324,-0.119C0.316,-0.106 0.306,-0.094 0.295,-0.084C0.284,-0.073 0.27,-0.065 0.255,-0.059C0.24,-0.052 0.222,-0.049 0.201,-0.049ZM0.341,-0.27C0.341,-0.293 0.339,-0.313 0.336,-0.332C0.332,-0.351 0.326,-0.367 0.317,-0.38C0.308,-0.393 0.297,-0.403 0.284,-0.41C0.27,-0.417 0.253,-0.42 0.232,-0.42C0.218,-0.42 0.203,-0.417 0.188,-0.412C0.172,-0.406 0.158,-0.397 0.145,-0.384C0.132,-0.371 0.122,-0.354 0.114,-0.334C0.105,-0.313 0.101,-0.289 0.101,-0.26C0.101,-0.238 0.104,-0.217 0.11,-0.197C0.115,-0.176 0.123,-0.158 0.134,-0.143C0.145,-0.128 0.158,-0.115 0.173,-0.107C0.188,-0.097 0.206,-0.093 0.226,-0.093C0.242,-0.093 0.257,-0.097 0.271,-0.105C0.284,-0.113 0.296,-0.124 0.306,-0.139C0.316,-0.153 0.324,-0.17 0.331,-0.189C0.337,-0.208 0.34,-0.229 0.341,-0.252L0.341,-0.27Z" style="fill:rgb(72,72,72);fill-rule:nonzero;"/> + </g> + <g transform="matrix(50,0,0,50,1334.28,785.746)"> + <path d="M0.156,-0.398C0.217,-0.443 0.276,-0.463 0.332,-0.459C0.379,-0.456 0.416,-0.437 0.445,-0.402C0.473,-0.367 0.487,-0.32 0.487,-0.262C0.487,-0.232 0.482,-0.204 0.471,-0.177C0.46,-0.15 0.445,-0.127 0.426,-0.108C0.407,-0.089 0.384,-0.073 0.358,-0.062C0.331,-0.051 0.303,-0.045 0.272,-0.045C0.235,-0.045 0.197,-0.055 0.156,-0.074L0.156,0.078C0.156,0.087 0.159,0.093 0.165,0.099C0.17,0.103 0.181,0.107 0.198,0.11L0.258,0.12L0.258,0.137C0.249,0.136 0.238,0.135 0.227,0.135C0.215,0.134 0.201,0.134 0.186,0.133L0.145,0.133C0.122,0.133 0.1,0.133 0.079,0.134C0.058,0.135 0.04,0.136 0.023,0.137L0.023,0.12L0.065,0.112C0.075,0.11 0.082,0.107 0.085,0.103C0.088,0.098 0.089,0.09 0.089,0.077L0.089,-0.364C0.089,-0.389 0.085,-0.401 0.076,-0.402L0.027,-0.41L0.03,-0.424C0.047,-0.431 0.061,-0.437 0.074,-0.443C0.086,-0.449 0.095,-0.454 0.102,-0.458C0.109,-0.463 0.117,-0.468 0.124,-0.475C0.131,-0.482 0.136,-0.489 0.141,-0.496L0.156,-0.496L0.156,-0.398ZM0.156,-0.367L0.156,-0.152C0.156,-0.128 0.167,-0.108 0.188,-0.093C0.209,-0.077 0.236,-0.069 0.27,-0.069C0.291,-0.069 0.311,-0.073 0.328,-0.082C0.345,-0.09 0.36,-0.101 0.373,-0.117C0.386,-0.132 0.395,-0.149 0.402,-0.17C0.409,-0.191 0.412,-0.213 0.412,-0.238C0.412,-0.266 0.408,-0.291 0.401,-0.314C0.394,-0.336 0.383,-0.355 0.37,-0.37C0.356,-0.385 0.34,-0.397 0.321,-0.404C0.302,-0.411 0.282,-0.413 0.259,-0.41C0.226,-0.406 0.192,-0.392 0.156,-0.367Z" style="fill:rgb(72,72,72);fill-rule:nonzero;"/> + </g> + <g transform="matrix(50,0,0,50,1360.53,785.746)"> + <path d="M0.246,-0.056C0.235,-0.057 0.221,-0.058 0.203,-0.059C0.184,-0.06 0.162,-0.06 0.135,-0.06C0.108,-0.06 0.086,-0.06 0.068,-0.059C0.049,-0.058 0.035,-0.057 0.024,-0.056L0.024,-0.073L0.078,-0.084C0.099,-0.088 0.109,-0.1 0.109,-0.12L0.109,-0.319C0.109,-0.335 0.105,-0.347 0.097,-0.354C0.089,-0.361 0.073,-0.368 0.049,-0.373L0.049,-0.388C0.072,-0.394 0.094,-0.403 0.113,-0.415C0.132,-0.427 0.147,-0.442 0.158,-0.46L0.175,-0.46L0.175,-0.117C0.175,-0.107 0.177,-0.1 0.18,-0.095C0.183,-0.09 0.188,-0.087 0.197,-0.085L0.246,-0.073L0.246,-0.056ZM0.137,-0.667C0.15,-0.667 0.161,-0.663 0.17,-0.654C0.179,-0.645 0.184,-0.634 0.184,-0.621C0.184,-0.61 0.179,-0.6 0.17,-0.591C0.16,-0.582 0.148,-0.578 0.135,-0.578C0.123,-0.578 0.113,-0.582 0.105,-0.591C0.096,-0.599 0.092,-0.609 0.092,-0.621C0.092,-0.634 0.096,-0.645 0.106,-0.654C0.115,-0.663 0.125,-0.667 0.137,-0.667Z" style="fill:rgb(72,72,72);fill-rule:nonzero;"/> + </g> + <g transform="matrix(50,0,0,50,1374.03,785.746)"> + <path d="M0.386,-0.309L0.111,-0.309C0.109,-0.296 0.108,-0.283 0.108,-0.271C0.108,-0.22 0.122,-0.178 0.149,-0.147C0.176,-0.115 0.214,-0.099 0.262,-0.099C0.285,-0.099 0.307,-0.103 0.326,-0.113C0.345,-0.122 0.366,-0.137 0.389,-0.158L0.393,-0.135C0.37,-0.105 0.344,-0.082 0.315,-0.067C0.285,-0.052 0.25,-0.044 0.211,-0.044C0.186,-0.044 0.164,-0.049 0.143,-0.06C0.122,-0.07 0.103,-0.084 0.088,-0.103C0.072,-0.122 0.06,-0.143 0.051,-0.169C0.042,-0.194 0.038,-0.221 0.038,-0.25C0.038,-0.279 0.043,-0.307 0.053,-0.333C0.062,-0.358 0.076,-0.38 0.093,-0.399C0.11,-0.418 0.131,-0.432 0.155,-0.443C0.179,-0.454 0.205,-0.459 0.233,-0.459C0.255,-0.459 0.275,-0.455 0.294,-0.448C0.312,-0.441 0.328,-0.431 0.341,-0.418C0.354,-0.405 0.365,-0.389 0.373,-0.37C0.38,-0.351 0.385,-0.331 0.386,-0.309ZM0.116,-0.332L0.261,-0.332C0.271,-0.332 0.28,-0.332 0.287,-0.333C0.294,-0.333 0.3,-0.334 0.305,-0.337C0.31,-0.339 0.313,-0.342 0.314,-0.347C0.315,-0.352 0.314,-0.358 0.312,-0.367C0.308,-0.384 0.3,-0.4 0.288,-0.414C0.275,-0.428 0.256,-0.435 0.231,-0.435C0.201,-0.435 0.176,-0.426 0.156,-0.408C0.136,-0.389 0.123,-0.364 0.116,-0.332Z" style="fill:rgb(72,72,72);fill-rule:nonzero;"/> + </g> + <g transform="matrix(50,0,0,50,1395.58,785.746)"> + <path d="M0.024,-0.056L0.024,-0.072L0.072,-0.081C0.085,-0.084 0.094,-0.089 0.098,-0.096C0.101,-0.103 0.103,-0.115 0.103,-0.132L0.103,-0.324C0.103,-0.337 0.1,-0.347 0.095,-0.353C0.089,-0.359 0.076,-0.364 0.057,-0.368L0.031,-0.374L0.033,-0.389C0.059,-0.398 0.081,-0.409 0.1,-0.422C0.119,-0.435 0.135,-0.455 0.149,-0.482L0.167,-0.482C0.168,-0.464 0.169,-0.445 0.17,-0.424C0.171,-0.403 0.171,-0.381 0.171,-0.358C0.178,-0.37 0.185,-0.382 0.194,-0.393C0.202,-0.404 0.212,-0.415 0.224,-0.426C0.247,-0.448 0.267,-0.459 0.285,-0.459C0.302,-0.459 0.315,-0.454 0.324,-0.445C0.333,-0.436 0.338,-0.424 0.338,-0.409C0.338,-0.396 0.334,-0.385 0.327,-0.378C0.319,-0.37 0.309,-0.366 0.298,-0.366C0.287,-0.366 0.275,-0.369 0.263,-0.376C0.251,-0.383 0.241,-0.386 0.232,-0.386C0.225,-0.386 0.219,-0.383 0.212,-0.376C0.205,-0.369 0.198,-0.361 0.192,-0.352C0.186,-0.343 0.181,-0.333 0.177,-0.323C0.173,-0.312 0.171,-0.304 0.171,-0.297L0.171,-0.13C0.171,-0.113 0.174,-0.101 0.18,-0.096C0.185,-0.09 0.197,-0.086 0.216,-0.083L0.288,-0.072L0.288,-0.056C0.271,-0.057 0.251,-0.058 0.23,-0.059C0.208,-0.06 0.185,-0.06 0.16,-0.06L0.146,-0.06C0.123,-0.06 0.101,-0.06 0.081,-0.059C0.06,-0.058 0.041,-0.057 0.024,-0.056Z" style="fill:rgb(72,72,72);fill-rule:nonzero;"/> + </g> + </g> + </g> + </g> + <defs> + <image id="_Image1" width="245px" height="28px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPUAAAAcCAYAAAC5+vkvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACr0lEQVR4nO2by3KjUAxEG8wkqVnMYtbz/7+Yh2OYBagiy5K4OOBc4z5VKgnKBuJU933SAOgA/AZwmuJzyqUMCz5LCNmYDsAfAP8AHAC0U7aIcD8BHKdcUpdAUyBkRTqMQm6maKeIOAB4NucGp/bOSW0NwDvWUQKNgZCJBsALgL8Afqk4mGi+cY9IcJnws++KMZRG6VCCxkB2QWNq3WI3TsBkK/7OqSVnPYDomUoEnh1H54DYALxjaww0AFIt32mBs+tZs4iQMXyHSxOwOTIGe/2Sv6mk96CPoyGGNgFtAKfgHCGbs7ao18J7rki8Dc6FPxet8/0se2Q9hLnaZi16awJeaKJeDXlgahX1GpS04NlQQgxAJhPt+VJTyIRXYg5zGQB65EagzaJHDI1hB+xZ1Guw5PeZm2OIegz6PtGwRepMdEsmJL2cGYJnGqRSKOrbkv3eMhmpRe8Zga4zY9B56f95SY9B13O9hd5ksgEU9X1wbY9BhG9NQZ+3KxtZ7T3HXJd9wLkR2NqG7hX0ODcCW2dDiYeFon48SoQpy5rWANogvGXPLLJ7e88bid9mqU/muDfHg6l3BUVNtkLvUCytl4a+V4TuGfQLIhK/Pl8lFDWpGbt9uXFytlkq20Ql8xElW5sla9G/AvhAhcMAiprsnaiV14LPPueFvPQ0YBT225SraMEpakLmscJvMb4j8QzgCV/j+COA9yn/2HidoibkevRuxieMQpfW+oix9T7hxgKnqAlZB+mWSyve4UvM8nqxrM1vKnCKmpD10ZN7skcAuFyD30TcFDUh22In2PSsu4h81e45RU3I7dATbnqbr908s8pNCCG3x1s/tzvnrrooIeTnsctmdhfb4gsRQuqhZNvrVV8mhNRD8RtyFDUh90cqcIqakPvmQsMUNSH7oQGA/yjeLgrMHFrMAAAAAElFTkSuQmCC"/> + <image id="_Image2" width="245px" height="28px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPUAAAAcCAYAAAC5+vkvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACpElEQVR4nO2b3ZLaMAxGPwe2nV60fYK+/yt2lwR6kagIrWRrA4EQvjOjteyY/Cxzxk5iCgghW6H8/0MIeVo+OUypCXk+Im9PtY2EkHVRFTnTkRDyeNIiZz5ECHkMnamfTNmEUhPyOIoqtcxHjBKnRfZ2Sgi5D+JcB2A35SKwyAzMFFofgBCyHOLZbgqpHwEMUwlcIbJ3MELI7dDT6v0UwoCzyLOn2JmDE0Kuo6h4m6JglHYA0E+xiMj2RAgh8xCJOwDfphCnBgAfGEU+4jzFvstJEULaiMCSdwC+TyFPrnsA7wAOuLxXviuUmmydkgyYshby5LpgFPgd51F5WPqCWlBqsmZEIC+KKrPCeu3A59dI9p5Xt8urp784i9xfdZU3hlKTpSgYR7POKW2u5URQejlQf+jkyShxauQnE/Zp9apE1lDq1yTzve+c6IJ2b38lkZ8auZXSE86KWJM0+uymoNTPTSSTJ14kpx0Va/lXycrn9cmOqMRAqddFTcgO4yIG2xZNWe1+52CnoK2RUmIwdd2u+5IFoNS3Q1YPaelqdfu/r9XnfE/6/s+T07brlU4290qyUrYudfb69HK+nVO2hPzqMVt9PPGiPBJyCNo9ITd3X/nKrFnqOUJaMb169HvVLJn+kYTeNk/CmpTZ86CoL8pSUmf3K/eJ2ciMcBmift4oCCeXUovXoy3nNedGSIp9ZVtLIBHyDWfpdG7DjpARLeFa26L7SNvmSVcTs3YeFJGsBnna+hOjkLIoXeSUslP9vX1YohU5rT7RFNXmvYqhUraEpKBkc+wB/ALwB5cPgiJaElgpJbdT1gMuxbSC6nrmuLU2Ql4KEdmu8pHfgeo2IJZPx0H1iabAurTHIIRcQQHwA8BvXC4msIsH7Eqe6L0nIeTB/AOwFWIBx58kyQAAAABJRU5ErkJggg=="/> + <image id="_Image3" width="25px" height="49px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAxCAYAAAAvFgI4AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABWklEQVRYhb3Xy0rDUBCA4S+Jpa0o1hsoqAsVXQkufP9XcuGlFa+LSTAt6sJmzg8hgcD85zKZzKnkULdXg6YaKGiFETbb5ye84aN7uQ4jzPCCOV7XjLfEFKe+Rz4oE1y098GpcISdjODEklxhI0uwj911gzR/vNtr7/frSn5jFwdZwYm8P8sUjHCeKYBLf+/Tv6h7z2M84n1oSZ9bCbPQCzoVxe0hQ9JxZ3npBqUWdemjvdKY+P66U6ixLf5kqZKJ+FWmSrbwmS2ZlZCMS0jmEpqBVclDCclztqQRDcKbxOrbiHIyxSJLUosW8zRL0Ek+xVKlVeGOieixUuhGv8CxQrOZZQTuj3wh+q3Ub4ZI5cE799U9mIuCOR1a9BMnoptM50pSH9anwo0CiVDjWuIpq89M0mF0lTEOS4hqcX5JLz9Eeh8pkBREim+VEBEzGpeSEfu1lPLZa1qh/gJ/GiMB9yhFtQAAAABJRU5ErkJggg=="/> + </defs> +</svg> \ No newline at end of file