cyberark/secretless-broker

View on GitHub
docs/img/secretless_internal_architecture.svg

Summary

Maintainability
Test Coverage
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2196 1181"><defs><style>.cls-1,.cls-12,.cls-3,.cls-6,.cls-7{fill:#4d8fcc;}.cls-1{opacity:0.15;}.cls-16,.cls-2{font-size:50px;}.cls-16,.cls-2,.cls-4,.cls-6{font-family:OpenSans-Bold, Open Sans;font-weight:700;}.cls-10,.cls-11,.cls-15,.cls-3,.cls-5,.cls-7,.cls-8{stroke:#000;}.cls-3,.cls-5{stroke-width:4.87px;}.cls-4,.cls-6{font-size:37.83px;}.cls-14,.cls-15,.cls-16,.cls-18,.cls-4,.cls-5,.cls-9{fill:#fff;}.cls-7,.cls-8{stroke-width:6.33px;}.cls-10,.cls-11,.cls-17,.cls-19,.cls-20,.cls-21,.cls-22,.cls-27,.cls-8{fill:none;}.cls-10,.cls-11,.cls-14,.cls-15,.cls-17,.cls-18,.cls-19,.cls-20,.cls-21,.cls-22,.cls-25,.cls-27{stroke-miterlimit:10;}.cls-10,.cls-11{stroke-width:7.79px;}.cls-11,.cls-19,.cls-20,.cls-21,.cls-22,.cls-27{stroke-linecap:round;}.cls-13{fill:#08141c;}.cls-14{stroke:#08141c;stroke-width:2.87px;}.cls-15,.cls-18{stroke-width:3.33px;}.cls-17,.cls-18,.cls-19,.cls-20,.cls-21,.cls-22,.cls-27{stroke:#4d8fcc;}.cls-17{stroke-width:5px;}.cls-19,.cls-20,.cls-21,.cls-22,.cls-27{stroke-width:11px;}.cls-20{stroke-dasharray:3.21 1.6;}.cls-21{stroke-dasharray:3.2 1.6;}.cls-22{stroke-dasharray:3.24 1.62;}.cls-23{fill:#39b54a;}.cls-24,.cls-25,.cls-26{fill:#c1272d;}.cls-24,.cls-25{stroke:#fff;stroke-width:19px;}.cls-27{stroke-dasharray:3.15 1.58;}</style></defs><title>secretless_internal_architecture</title><rect class="cls-1" x="165" y="313" width="1465" height="850" rx="40.69" ry="40.69"/><text class="cls-2" transform="translate(295.38 469.97)">Secretless <tspan x="40.37" y="60">Broker</tspan></text><text class="cls-2" transform="translate(1752.04 1086.97)">Target Services</text><text class="cls-2" transform="translate(1252.9 1089.97)">Handlers</text><rect class="cls-3" x="1252.06" y="793.51" width="140.74" height="140.74" rx="5.84" ry="5.84"/><rect class="cls-3" x="1282.71" y="824.16" width="140.74" height="140.74" rx="5.84" ry="5.84"/><rect class="cls-3" x="1311.08" y="852.53" width="140.74" height="140.74" rx="5.84" ry="5.84"/><rect class="cls-3" x="1338.32" y="878.26" width="140.74" height="140.74" rx="5.84" ry="5.84"/><text class="cls-4" transform="translate(1395.07 959.96)">H</text><text class="cls-2" transform="translate(774.46 1089.97)">Listeners</text><rect class="cls-5" x="775.74" y="793.51" width="140.74" height="140.74" rx="5.84" ry="5.84"/><rect class="cls-5" x="806.38" y="824.16" width="140.74" height="140.74" rx="5.84" ry="5.84"/><rect class="cls-5" x="834.76" y="852.53" width="140.74" height="140.74" rx="5.84" ry="5.84"/><rect class="cls-5" x="862" y="878.26" width="140.74" height="140.74" rx="5.84" ry="5.84"/><text class="cls-6" transform="translate(921.02 959.96)">L</text><text class="cls-2" transform="translate(341.71 1089.97)">Proxy</text><circle class="cls-7" cx="412.91" cy="900.68" r="108.68"/><ellipse class="cls-7" cx="412.91" cy="900.68" rx="55.54" ry="108.68"/><line class="cls-8" x1="311.16" y1="864.99" x2="514.47" y2="864.99"/><line class="cls-8" x1="313.16" y1="942.78" x2="512.87" y2="942.78"/><path d="M1863,517.28a132.67,132.67,0,0,0,26.55,19.91q-.35-3.59-.34-7.15a142.38,142.38,0,0,1,1.7-25.18A142.51,142.51,0,0,0,1863,517.28Z"/><path d="M1895.28,540.42a145.66,145.66,0,0,0,21.78,9l1.71.51a8.68,8.68,0,0,1,7.82-4.94h1.88a91.81,91.81,0,0,0,12.76-40.83,8.71,8.71,0,0,1-5.45-6.3,142.55,142.55,0,0,0-39,5.1A136.2,136.2,0,0,0,1895.28,540.42Z"/><path d="M1891.88,498.9a151.92,151.92,0,0,1,4.42-17l1-2.89a8.67,8.67,0,0,1-3.24-6.3A144.89,144.89,0,0,0,1875,468.1a68.22,68.22,0,0,0-16.84,44.24l.85.85A147.22,147.22,0,0,1,1891.88,498.9Z"/><path d="M1902.77,481h-.34l-.85,2.56q-2.22,6.8-3.74,13.61a146.93,146.93,0,0,1,36.75-4.6,140.17,140.17,0,0,0-25.35-14.29A8.66,8.66,0,0,1,1902.77,481Z"/><path d="M1890.18,543.82a141.57,141.57,0,0,1-18-11.4,134.5,134.5,0,0,1-13.61-11.74,68.57,68.57,0,0,0,40,55l-.51-1.36A124.19,124.19,0,0,1,1890.18,543.82Z"/><path d="M1952.29,499.41l-.34.68A124,124,0,0,1,1971,522.55a110.54,110.54,0,0,1,9.87,18.89,65.62,65.62,0,0,1,3.06,9A68.05,68.05,0,0,0,1995,513.53,116.27,116.27,0,0,0,1952.29,499.41Z"/><path d="M1933.4,559a8.65,8.65,0,0,1-6.81,3.4l-2.89-.51a126.34,126.34,0,0,1-16.33,17,68.59,68.59,0,0,0,68.57-18.21,137.11,137.11,0,0,1-15.82.85A144.32,144.32,0,0,1,1933.4,559Z"/><path d="M1943.61,476.27A85.08,85.08,0,0,1,1946,488a8.68,8.68,0,0,1,6.47,6,128.55,128.55,0,0,1,20.25,4.25,117.2,117.2,0,0,1,22.12,9.19,68.41,68.41,0,0,0-67.9-62.62,86.9,86.9,0,0,1,5.62,7.48A85.51,85.51,0,0,1,1943.61,476.27Z"/><path d="M1902.77,463.85h.68a144.94,144.94,0,0,1,10-17.87,68.12,68.12,0,0,0-33.86,17.53,149.84,149.84,0,0,1,16.16,4.08A8.68,8.68,0,0,1,1902.77,463.85Z"/><path d="M1911.45,472.35c0,.29,0,.57,0,.86a143.52,143.52,0,0,1,27.74,16.16l1.36-.85a79.91,79.91,0,0,0-12.77-33.35,84.59,84.59,0,0,0-7.48-9.7,139.31,139.31,0,0,0-11.91,20.42A8.66,8.66,0,0,1,1911.45,472.35Z"/><path d="M1948.37,504l-1.53.69a90.47,90.47,0,0,1-1.7,12.59,97.77,97.77,0,0,1-6.29,19.74,109.34,109.34,0,0,1-5.62,11.06,8.67,8.67,0,0,1,2,5.61h0a138.09,138.09,0,0,0,24.85,2.22,128.7,128.7,0,0,0,19.22-1.2,100.5,100.5,0,0,0-13.1-29.09A118.74,118.74,0,0,0,1948.37,504Z"/><path d="M1919.45,558.63a8.58,8.58,0,0,1-1.36-3.24l-2.56-.85a152.34,152.34,0,0,1-19.4-7.65,118.26,118.26,0,0,0,7.83,27.73A121.3,121.3,0,0,0,1919.45,558.63Z"/><circle class="cls-9" cx="1944.85" cy="496.68" r="12.97"/><circle class="cls-9" cx="1980.31" cy="555.49" r="12.97"/><rect class="cls-10" x="1865.65" y="882.12" width="128.19" height="82.86" rx="13.14" ry="13.14"/><line class="cls-11" x1="1899.29" y1="985.17" x2="1960.2" y2="985.17"/><rect x="1918.41" y="964.98" width="22.66" height="18.41"/><path d="M1930.87,646.86c-35.69,0-63.54,12.22-63.54,27.79V775.32c0,15.56,28,27.78,63.54,27.78s63.55-12.22,63.55-27.78V674.8C1994.42,659.08,1966.57,646.86,1930.87,646.86Zm58,128.62c0,10.79-23.37,22.23-58,22.23s-57.94-11.6-57.94-22.23V753.56c9.76,9.69,31.85,16.2,57.94,16.2s48.18-6.51,58-16.2Zm0-33.51c0,10.8-23.37,22.23-58,22.23s-57.94-11.59-57.94-22.23V719.9c9.76,9.69,31.85,16.35,57.94,16.35s48.18-6.51,58-16.19Zm0-33.66c0,10.8-23.37,22.23-58,22.23s-57.94-11.59-57.94-22.23V686.4c9.92,9.68,31.85,16.19,57.94,16.19s48.18-6.51,58-16.19Zm-58-11.28c-34.73,0-57.94-11.59-57.94-22.23s23.37-22.23,57.94-22.23,58,11.6,58,22.23S1965.61,697,1930.87,697Z"/><rect class="cls-12" x="679" y="371" width="874" height="257" rx="17.28" ry="17.28"/><path class="cls-13" d="M957.92,595.15v2.17a4.1,4.1,0,0,0,4.1,4.1h90.24a4.11,4.11,0,0,0,4.1-4.1v-2.17Z"/><rect class="cls-14" x="947.39" y="490.42" width="119.5" height="104.73" rx="8.67" ry="8.67"/><circle class="cls-9" cx="1006.98" cy="542.83" r="34.95"/><path class="cls-13" d="M1007,579.78a37,37,0,1,1,37-36.95A37,37,0,0,1,1007,579.78Zm0-69.9a32.95,32.95,0,1,0,32.94,33A33,33,0,0,0,1007,509.88Z"/><path class="cls-13" d="M1042.24,545.48l0-4-19.27-.09a16,16,0,0,0-3-8l13.5-13.38-2.82-2.85-13.42,13.3a16,16,0,0,0-8-3.57l.08-18.69-4,0-.08,18.65a16,16,0,0,0-8.21,3.39L983.85,517,981,519.78l13.19,13.31a16,16,0,0,0-3.22,8.14L972,541.15l0,4,19.06.08a16.15,16.15,0,0,0,3.45,7.75L980.78,566.6l2.83,2.85,13.82-13.69a16,16,0,0,0,7.63,3l-.09,19.63,4,0,.09-19.67a16.1,16.1,0,0,0,7.53-3.06l13.83,14,2.85-2.82-13.8-13.93a15.91,15.91,0,0,0,3.37-7.53Z"/><rect class="cls-15" x="1172.92" y="488.38" width="72.98" height="115.07" rx="9.68" ry="9.68"/><circle cx="1209.41" cy="593.18" r="4.39"/><rect x="1183.26" y="497.18" width="52.28" height="87.47" rx="4.37" ry="4.37"/><path d="M1463,518.55c0,47.32-29.07,73.7-47.37,81.32a10.3,10.3,0,0,1-7.9,0c-22.89-9.53-47.37-38.88-47.37-81.32a10.25,10.25,0,0,1,6.32-9.47l41-17.11a10.3,10.3,0,0,1,7.9,0l41,17.11A10.25,10.25,0,0,1,1463,518.55Z"/><path class="cls-9" d="M1430.27,541.08h-2.54v-7.61a16.05,16.05,0,1,0-32.1,0v7.61h-2.54a5.08,5.08,0,0,0-5.07,5.07v20.27a5.08,5.08,0,0,0,5.07,5.07h37.18a5.07,5.07,0,0,0,5.07-5.07V546.15A5.07,5.07,0,0,0,1430.27,541.08Zm-11,0h-15.2v-7.61a7.6,7.6,0,1,1,15.2,0Z"/><text class="cls-16" transform="translate(858.47 432.97)">Credential Providers</text><path class="cls-9" d="M788,506c1,0,15-1,18-1s21,4,22,5,9,17,9,17l9,11s2,6,3,7,1,9,0,9-7,7-7,7-9,13-11,14-9,6-14,7-14,3-14,3l-15,1s-6,6-9,6-10,0-10-4,1-8,0-10-8-26-8-27V536l10-18s-4-9-3-11,5-6,5-6,7-1,9,0S788,506,788,506Z"/><path d="M857,545.92a16.17,16.17,0,0,0-13-15.64A46.91,46.91,0,0,0,799.65,499a45.84,45.84,0,0,0-8.34,1,15.68,15.68,0,0,0-27.63,5.22c-1,3.12-.52,6.77.52,9.9a47,47,0,0,0,0,61.52A15.18,15.18,0,0,0,771,596c2.09,1.56,5.21,2.08,7.82,2.08,4.69,0,9.38-2.6,12.51-6.25a45.84,45.84,0,0,0,8.34,1A46.91,46.91,0,0,0,844,561.56,16.17,16.17,0,0,0,857,545.92Zm-83.41-38.06c.52-1.56,1-2.6,2.6-3.13a4.74,4.74,0,0,1,2.61-.52,5.47,5.47,0,0,1,4.69,2.61c1.57,2.09.52,5.21-2.08,6.78a5.61,5.61,0,0,1-7.3-1.57A11.48,11.48,0,0,1,773.59,507.86Zm9.9,77.16a5.28,5.28,0,0,1-7.3,2.09,5.38,5.38,0,0,1-2.6-3.13,11.48,11.48,0,0,1,.52-4.17,5.45,5.45,0,0,1,4.69-2.61,4.74,4.74,0,0,1,2.61.52,5.35,5.35,0,0,1,2.6,3.13A10.19,10.19,0,0,1,783.49,585Zm11-3.13a10.23,10.23,0,0,0-.52-3.65,14.71,14.71,0,0,0-7.3-9.38c-2.61-1-5.21-2.09-7.82-2.09a11.94,11.94,0,0,0-7.3,2.09,35.72,35.72,0,0,1,0-45.88,17,17,0,0,0,7.3,2.09,14.66,14.66,0,0,0,7.82-2.09c4.69-3.13,7.82-7.82,7.82-13,17.2-2.61,32.84,7.3,39.1,22.42-4.69,3.12-7.82,7.82-7.82,13.55a15.55,15.55,0,0,0,7.82,13.55C827.28,574.59,811.64,584.5,794.44,581.89Zm46.92-30.76a5.21,5.21,0,1,1,5.21-5.21A4.92,4.92,0,0,1,841.36,551.13Z"/><path class="cls-12" d="M957.92,216.15v2.17a4.1,4.1,0,0,0,4.1,4.1h90.24a4.11,4.11,0,0,0,4.1-4.1v-2.17Z"/><rect class="cls-17" x="947.39" y="111.42" width="119.5" height="104.73" rx="8.67" ry="8.67"/><circle class="cls-9" cx="1006.98" cy="163.83" r="34.95"/><path class="cls-12" d="M1007,200.78a37,37,0,1,1,37-36.95A37,37,0,0,1,1007,200.78Zm0-69.9a32.95,32.95,0,1,0,32.94,33A33,33,0,0,0,1007,130.88Z"/><path class="cls-12" d="M1042.24,166.48l0-4-19.27-.09a16,16,0,0,0-3-8l13.5-13.38-2.82-2.85-13.42,13.3a16,16,0,0,0-8-3.57l.08-18.69-4,0-.08,18.65a16,16,0,0,0-8.21,3.39L983.85,138,981,140.78l13.19,13.31a16,16,0,0,0-3.22,8.14L972,162.15l0,4,19.06.08a16.15,16.15,0,0,0,3.45,7.75L980.78,187.6l2.83,2.85,13.82-13.69a16,16,0,0,0,7.63,3l-.09,19.63,4,0,.09-19.67a16.1,16.1,0,0,0,7.53-3.06l13.83,14,2.85-2.82-13.8-13.93a15.91,15.91,0,0,0,3.37-7.53Z"/><rect class="cls-18" x="1172.92" y="109.38" width="72.98" height="115.07" rx="9.68" ry="9.68"/><circle class="cls-12" cx="1209.41" cy="214.18" r="4.39"/><rect class="cls-12" x="1183.26" y="118.18" width="52.28" height="87.47" rx="4.37" ry="4.37"/><path class="cls-12" d="M1463,139.55c0,47.32-29.07,73.7-47.37,81.32a10.3,10.3,0,0,1-7.9,0c-22.89-9.53-47.37-38.88-47.37-81.32a10.25,10.25,0,0,1,6.32-9.47l41-17.11a10.3,10.3,0,0,1,7.9,0l41,17.11A10.25,10.25,0,0,1,1463,139.55Z"/><path class="cls-9" d="M1430.27,162.08h-2.54v-7.61a16.05,16.05,0,1,0-32.1,0v7.61h-2.54a5.08,5.08,0,0,0-5.07,5.07v20.27a5.08,5.08,0,0,0,5.07,5.07h37.18a5.07,5.07,0,0,0,5.07-5.07V167.15A5.07,5.07,0,0,0,1430.27,162.08Zm-11,0h-15.2v-7.61a7.6,7.6,0,1,1,15.2,0Z"/><text class="cls-2" transform="translate(924.23 53.97)">External Vaults</text><path class="cls-9" d="M788,127c1,0,15-1,18-1s21,4,22,5,9,17,9,17l9,11s2,6,3,7,1,9,0,9-7,7-7,7-9,13-11,14-9,6-14,7-14,3-14,3l-15,1s-6,6-9,6-10,0-10-4,1-8,0-10-8-26-8-27V157l10-18s-4-9-3-11,5-6,5-6,7-1,9,0S788,127,788,127Z"/><path class="cls-12" d="M857,166.92a16.17,16.17,0,0,0-13-15.64A46.91,46.91,0,0,0,799.65,120a45.84,45.84,0,0,0-8.34,1,15.68,15.68,0,0,0-27.63,5.22c-1,3.12-.52,6.77.52,9.9a47,47,0,0,0,0,61.52A15.18,15.18,0,0,0,771,217c2.09,1.56,5.21,2.08,7.82,2.08,4.69,0,9.38-2.6,12.51-6.25a45.84,45.84,0,0,0,8.34,1A46.91,46.91,0,0,0,844,182.56,16.17,16.17,0,0,0,857,166.92Zm-83.41-38.06c.52-1.56,1-2.6,2.6-3.13a4.74,4.74,0,0,1,2.61-.52,5.47,5.47,0,0,1,4.69,2.61c1.57,2.09.52,5.21-2.08,6.78a5.61,5.61,0,0,1-7.3-1.57A11.48,11.48,0,0,1,773.59,128.86Zm9.9,77.16a5.28,5.28,0,0,1-7.3,2.09,5.38,5.38,0,0,1-2.6-3.13,11.48,11.48,0,0,1,.52-4.17,5.45,5.45,0,0,1,4.69-2.61,4.74,4.74,0,0,1,2.61.52,5.35,5.35,0,0,1,2.6,3.13A10.19,10.19,0,0,1,783.49,206Zm11-3.13a10.23,10.23,0,0,0-.52-3.65,14.71,14.71,0,0,0-7.3-9.38c-2.61-1-5.21-2.09-7.82-2.09a11.94,11.94,0,0,0-7.3,2.09,35.72,35.72,0,0,1,0-45.88,17,17,0,0,0,7.3,2.09,14.66,14.66,0,0,0,7.82-2.09c4.69-3.13,7.82-7.82,7.82-13,17.2-2.61,32.84,7.3,39.1,22.42-4.69,3.12-7.82,7.82-7.82,13.55a15.55,15.55,0,0,0,7.82,13.55C827.28,195.59,811.64,205.5,794.44,202.89Zm46.92-30.76a5.21,5.21,0,1,1,5.21-5.21A4.92,4.92,0,0,1,841.36,172.13Z"/><line class="cls-19" x1="549.5" y1="898.71" x2="551.1" y2="898.71"/><line class="cls-20" x1="552.71" y1="898.71" x2="705.97" y2="898.71"/><line class="cls-19" x1="706.77" y1="898.71" x2="708.37" y2="898.71"/><polygon class="cls-12" points="692.93 919.07 701.58 898.71 692.93 878.34 741.21 898.71 692.93 919.07"/><line class="cls-19" x1="1026.5" y1="898.71" x2="1028.1" y2="898.71"/><line class="cls-20" x1="1029.71" y1="898.71" x2="1182.97" y2="898.71"/><line class="cls-19" x1="1183.77" y1="898.71" x2="1185.37" y2="898.71"/><polygon class="cls-12" points="1169.93 919.07 1178.58 898.71 1169.93 878.34 1218.21 898.71 1169.93 919.07"/><line class="cls-19" x1="1521.5" y1="898.71" x2="1523.1" y2="898.71"/><line class="cls-21" x1="1524.7" y1="898.71" x2="1778.26" y2="898.71"/><line class="cls-19" x1="1779.06" y1="898.71" x2="1780.67" y2="898.71"/><polygon class="cls-12" points="1765.22 919.07 1773.87 898.71 1765.22 878.34 1813.5 898.71 1765.22 919.07"/><line class="cls-19" x1="16.5" y1="898.5" x2="18.1" y2="898.49"/><line class="cls-22" x1="19.72" y1="898.47" x2="242.26" y2="896.59"/><line class="cls-19" x1="243.07" y1="896.59" x2="244.67" y2="896.57"/><polygon class="cls-12" points="229.39 917.07 237.87 896.63 229.05 876.34 277.5 896.29 229.39 917.07"/><path class="cls-23" d="M1662.34,927.67a10.43,10.43,0,0,1-10.43-10.42V893.56a10.45,10.45,0,0,1,8.89-10.31v-4.5a23.26,23.26,0,0,1,46.51,0v4.5a10.44,10.44,0,0,1,8.88,10.31v23.69a10.43,10.43,0,0,1-10.42,10.42Zm26.1-44.53v-4.39a4.39,4.39,0,0,0-8.77,0v4.39Z"/><path class="cls-9" d="M1684.05,860a18.78,18.78,0,0,1,18.76,18.75v8.89h3a5.92,5.92,0,0,1,5.92,5.92v23.69a5.92,5.92,0,0,1-5.92,5.92h-43.43a5.93,5.93,0,0,1-5.93-5.92V893.56a5.93,5.93,0,0,1,5.93-5.92h3v-8.89A18.78,18.78,0,0,1,1684.05,860m-8.88,27.64h17.77v-8.89a8.89,8.89,0,0,0-17.77,0v8.89m8.88-36.64a27.78,27.78,0,0,0-27.75,27.75v1.17a14.94,14.94,0,0,0-8.89,13.64v23.69a14.94,14.94,0,0,0,14.93,14.92h43.43a14.93,14.93,0,0,0,14.92-14.92V893.56a14.93,14.93,0,0,0-8.88-13.64v-1.17A27.79,27.79,0,0,0,1684.05,851Z"/><path class="cls-24" d="M114.38,879.64h-3v-8.89a18.75,18.75,0,0,0-35.95-7.47l9,3.93a8.88,8.88,0,0,1,17,3.54v8.89H83.78v-.09H73.91v.09H71A5.93,5.93,0,0,0,65,885.56v23.69A5.94,5.94,0,0,0,71,915.18h43.43a5.93,5.93,0,0,0,5.92-5.93V885.56A5.92,5.92,0,0,0,114.38,879.64Z"/><path class="cls-25" d="M114.38,879.64h-3v-8.89a18.75,18.75,0,0,0-35.95-7.47l9,3.93a8.88,8.88,0,0,1,17,3.54v8.89H83.78v-.09H73.91v.09H71A5.93,5.93,0,0,0,65,885.56v23.69A5.94,5.94,0,0,0,71,915.18h43.43a5.93,5.93,0,0,0,5.92-5.93V885.56A5.92,5.92,0,0,0,114.38,879.64Z"/><path class="cls-26" d="M114.38,879.64h-3v-8.89a18.75,18.75,0,0,0-35.95-7.47l9,3.93a8.88,8.88,0,0,1,17,3.54v8.89H83.78v-.09H73.91v.09H71A5.93,5.93,0,0,0,65,885.56v23.69A5.94,5.94,0,0,0,71,915.18h43.43a5.93,5.93,0,0,0,5.92-5.93V885.56A5.92,5.92,0,0,0,114.38,879.64Z"/><line class="cls-19" x1="1268.35" y1="769.56" x2="1268.35" y2="767.96"/><line class="cls-27" x1="1268.35" y1="766.38" x2="1268.35" y2="686.72"/><line class="cls-19" x1="1268.35" y1="685.94" x2="1268.35" y2="684.33"/><polygon class="cls-12" points="1288.72 699.78 1268.35 691.13 1247.99 699.78 1268.35 651.5 1288.72 699.78"/><line class="cls-19" x1="1121.35" y1="357.56" x2="1121.35" y2="355.96"/><line class="cls-27" x1="1121.35" y1="354.38" x2="1121.35" y2="274.72"/><line class="cls-19" x1="1121.35" y1="273.94" x2="1121.35" y2="272.33"/><polygon class="cls-12" points="1141.72 287.78 1121.35 279.13 1100.99 287.78 1121.35 239.5 1141.72 287.78"/><circle cx="623.5" cy="837.5" r="35.5"/><text class="cls-16" transform="translate(608.23 856)">1</text><circle cx="1104.5" cy="837.5" r="35.5"/><text class="cls-16" transform="translate(1089.23 856)">2</text><circle cx="1356.5" cy="713.5" r="35.5"/><text class="cls-16" transform="translate(1341.23 732)">3</text><circle cx="1575.5" cy="837.5" r="35.5"/><text class="cls-16" transform="translate(1560.23 856)">4</text></svg>