Skip to content

Instantly share code, notes, and snippets.

@Kjaer
Last active April 9, 2023 00:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kjaer/8d71bd38bab1ee3f89a01f84c284bca1 to your computer and use it in GitHub Desktop.
Save Kjaer/8d71bd38bab1ee3f89a01f84c284bca1 to your computer and use it in GitHub Desktop.
Clean + MVVM Architecture
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8"?>
<svg width="1975px" height="1395px" viewBox="0 0 1975 1395" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Data Flow</title>
<g id="Data-Flow" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<polygon id="Polygon-Copy-6" fill="#55D4F5" points="584.5 3 931.343174 203.25 931.343174 603.75 584.5 804 237.656826 603.75 237.656826 203.25"></polygon>
<path d="M658,112.886751 L850.355716,223.943376 L850.355716,446.056624 L658,557.113249 L465.644284,446.056624 L465.644284,223.943376 L658,112.886751 Z" id="Polygon-Copy-6" stroke="#55D4F5" stroke-width="5" fill="#FFFFFF"></path>
<path d="M375.061367,625 L381.013367,595.368 L381.333367,595.368 L384.469367,603.112 L389.845367,617.64 L400.405367,604.072 L407.189367,595.496 L407.573367,595.496 L401.621367,625 L410.453367,625 L419.413367,580.328 L409.109367,580.328 L392.917367,601.576 L392.661367,601.576 L384.917367,580.328 L375.189367,580.328 L366.229367,625 L375.061367,625 Z M438.356977,625.768 C442.879643,625.768 446.644977,624.424 449.652977,621.736 C452.660977,619.048 454.868977,615.485333 456.276977,611.048 C457.684977,606.610667 458.388977,601.725333 458.388977,596.392 C458.388977,591.016 457.108977,586.866667 454.548977,583.944 C451.988977,581.021333 448.084977,579.56 442.836977,579.56 C438.31431,579.56 434.548977,580.904 431.540977,583.592 C428.532977,586.28 426.324977,589.842667 424.916977,594.28 C423.508977,598.717333 422.804977,603.602667 422.804977,608.936 C422.804977,614.312 424.084977,618.461333 426.644977,621.384 C429.204977,624.306667 433.108977,625.768 438.356977,625.768 Z M438.356977,618.088 C436.39431,618.088 434.92231,617.48 433.940977,616.264 C432.959643,615.048 432.468977,613.309333 432.468977,611.048 C432.468977,609.512 432.596977,607.976 432.852977,606.44 L432.852977,606.44 L434.132977,598.76 C434.772977,594.877333 435.743643,591.986667 437.044977,590.088 C438.34631,588.189333 440.276977,587.24 442.836977,587.24 C444.799643,587.24 446.271643,587.848 447.252977,589.064 C448.23431,590.28 448.724977,592.018667 448.724977,594.28 C448.724977,595.816 448.596977,597.352 448.340977,598.888 L448.340977,598.888 L447.060977,606.568 C446.420977,610.450667 445.45031,613.341333 444.148977,615.24 C442.847643,617.138667 440.916977,618.088 438.356977,618.088 Z M475.028391,625 C479.593724,625 483.487057,623.88 486.708391,621.64 C489.929724,619.4 492.372391,616.168 494.036391,611.944 C495.700391,607.72 496.532391,602.664 496.532391,596.776 C496.532391,591.485333 495.209724,587.421333 492.564391,584.584 C489.919057,581.746667 486.100391,580.328 481.108391,580.328 L481.108391,580.328 L467.988391,580.328 L460.500391,625 L475.028391,625 Z M475.220391,617.512 L471.188391,617.512 L476.116391,587.816 L480.276391,587.816 C482.537724,587.816 484.223057,588.402667 485.332391,589.576 C486.441724,590.749333 486.996391,592.552 486.996391,594.984 C486.996391,596.349333 486.868391,597.8 486.612391,599.336 L486.612391,599.336 L485.268391,607.4 C484.713724,610.856 483.615057,613.405333 481.972391,615.048 C480.329724,616.690667 478.079057,617.512 475.220391,617.512 L475.220391,617.512 Z M528.275805,625 L529.555805,617.192 L510.419805,617.192 L512.211805,606.312 L530.579805,606.312 L531.859805,598.504 L513.555805,598.504 L515.283805,588.136 L534.483805,588.136 L535.763805,580.328 L507.219805,580.328 L499.731805,625 L528.275805,625 Z M567.763219,625 L569.043219,617.192 L549.715219,617.192 L555.859219,580.328 L546.387219,580.328 L538.963219,625 L567.763219,625 Z" id="MODEL" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M512.365099,403.576 C515.149099,403.576 517.549099,403.088 519.565099,402.112 C521.581099,401.136 523.117099,399.776 524.173099,398.032 C525.229099,396.288 525.757099,394.264 525.757099,391.96 C525.757099,389.688 525.181099,387.856 524.029099,386.464 C522.877099,385.072 521.117099,384.072 518.749099,383.464 L518.749099,383.464 L515.581099,382.648 C514.077099,382.264 513.029099,381.816 512.437099,381.304 C511.845099,380.792 511.549099,380.056 511.549099,379.096 C511.549099,377.72 511.989099,376.64 512.869099,375.856 C513.749099,375.072 515.053099,374.68 516.781099,374.68 C518.189099,374.68 519.453099,374.96 520.573099,375.52 C521.693099,376.08 522.621099,376.872 523.357099,377.896 L523.357099,377.896 L528.013099,373.624 C527.053099,372.152 525.597099,371 523.645099,370.168 C521.693099,369.336 519.517099,368.92 517.117099,368.92 C514.493099,368.92 512.205099,369.368 510.253099,370.264 C508.301099,371.16 506.805099,372.432 505.765099,374.08 C504.725099,375.728 504.205099,377.656 504.205099,379.864 C504.205099,382.008 504.781099,383.808 505.933099,385.264 C507.085099,386.72 508.829099,387.72 511.165099,388.264 L511.165099,388.264 L514.477099,389.032 C515.853099,389.352 516.845099,389.784 517.453099,390.328 C518.061099,390.872 518.365099,391.688 518.365099,392.776 C518.365099,394.344 517.885099,395.56 516.925099,396.424 C515.965099,397.288 514.589099,397.72 512.797099,397.72 C511.229099,397.72 509.701099,397.392 508.213099,396.736 C506.725099,396.08 505.501099,395.144 504.541099,393.928 L504.541099,393.928 L500.077099,398.44 C501.069099,400.04 502.669099,401.296 504.877099,402.208 C507.085099,403.12 509.581099,403.576 512.365099,403.576 Z M544.188659,403 L548.796659,375.352 L558.492659,375.352 L559.452659,369.496 L532.956659,369.496 L531.996659,375.352 L541.692659,375.352 L537.084659,403 L544.188659,403 Z M562.76422,403 L566.07622,394.888 L575.48422,394.888 L576.30022,403 L583.59622,403 L579.94822,369.496 L570.06022,369.496 L555.32422,403 L562.76422,403 Z M575.19622,389.128 L568.47622,389.128 L573.75622,376.456 L574.18822,376.456 L575.19622,389.128 Z M601.78778,403 L606.39578,375.352 L616.09178,375.352 L617.05178,369.496 L590.55578,369.496 L589.59578,375.352 L599.29178,375.352 L594.68378,403 L601.78778,403 Z M637.931341,403 L638.891341,397.144 L624.539341,397.144 L625.883341,388.984 L639.659341,388.984 L640.619341,383.128 L626.891341,383.128 L628.187341,375.352 L642.587341,375.352 L643.547341,369.496 L622.139341,369.496 L616.523341,403 L637.931341,403 Z" id="STATE" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<polygon id="Polygon-Copy-4" fill="#55D4F5" points="773.5 309 831.090689 342.5 831.090689 409.5 773.5 443 715.909311 409.5 715.909311 342.5"></polygon>
<path d="M748.320458,371 L748.320458,365.68 L749.840458,365.68 L752.360458,371 L755.400458,371 L752.520458,365.34 C753.347124,365.14 753.990458,364.686667 754.450458,363.98 C754.910458,363.273333 755.140458,362.413333 755.140458,361.4 C755.140458,360.053333 754.773791,358.99 754.040458,358.21 C753.307124,357.43 752.267124,357.04 750.920458,357.04 L750.920458,357.04 L745.560458,357.04 L745.560458,371 L748.320458,371 Z M750.300458,363.52 L748.320458,363.52 L748.320458,359.3 L750.300458,359.3 C751.007124,359.3 751.507124,359.44 751.800458,359.72 C752.093791,360 752.240458,360.453333 752.240458,361.08 L752.240458,361.08 L752.240458,361.74 C752.240458,362.366667 752.093791,362.82 751.800458,363.1 C751.507124,363.38 751.007124,363.52 750.300458,363.52 L750.300458,363.52 Z M766.500275,371 L766.500275,368.7 L760.420275,368.7 L760.420275,365.08 L766.300275,365.08 L766.300275,362.78 L760.420275,362.78 L760.420275,359.34 L766.500275,359.34 L766.500275,357.04 L757.640275,357.04 L757.640275,371 L766.500275,371 Z M772.360092,371 L772.360092,365.78 L774.920092,365.78 C776.266758,365.78 777.306758,365.39 778.040092,364.61 C778.773425,363.83 779.140092,362.76 779.140092,361.4 C779.140092,360.053333 778.773425,358.99 778.040092,358.21 C777.306758,357.43 776.266758,357.04 774.920092,357.04 L774.920092,357.04 L769.560092,357.04 L769.560092,371 L772.360092,371 Z M774.280092,363.52 L772.360092,363.52 L772.360092,359.3 L774.280092,359.3 C774.973425,359.3 775.470092,359.44 775.770092,359.72 C776.070092,360 776.220092,360.453333 776.220092,361.08 L776.220092,361.08 L776.220092,361.74 C776.220092,362.366667 776.070092,362.82 775.770092,363.1 C775.470092,363.38 774.973425,363.52 774.280092,363.52 L774.280092,363.52 Z M785.999908,371.24 C787.813242,371.24 789.159908,370.62 790.039908,369.38 C790.919908,368.14 791.359908,366.353333 791.359908,364.02 C791.359908,361.686667 790.919908,359.9 790.039908,358.66 C789.159908,357.42 787.813242,356.8 785.999908,356.8 C784.186575,356.8 782.839908,357.42 781.959908,358.66 C781.079908,359.9 780.639908,361.686667 780.639908,364.02 C780.639908,366.353333 781.079908,368.14 781.959908,369.38 C782.839908,370.62 784.186575,371.24 785.999908,371.24 Z M785.999908,368.98 C785.146575,368.98 784.533242,368.663333 784.159908,368.03 C783.786575,367.396667 783.599908,366.46 783.599908,365.22 L783.599908,365.22 L783.599908,362.82 C783.599908,361.58 783.786575,360.643333 784.159908,360.01 C784.533242,359.376667 785.146575,359.06 785.999908,359.06 C786.853242,359.06 787.466575,359.376667 787.839908,360.01 C788.213242,360.643333 788.399908,361.58 788.399908,362.82 L788.399908,362.82 L788.399908,365.2 C788.399908,366.44 788.213242,367.38 787.839908,368.02 C787.466575,368.66 786.853242,368.98 785.999908,368.98 Z M801.139725,366.22 L801.139725,363.58 L794.859725,363.58 L794.859725,366.22 L801.139725,366.22 Z M746.82058,396.24 C747.927247,396.24 748.877247,396.05 749.67058,395.67 C750.463913,395.29 751.063913,394.763333 751.47058,394.09 C751.877247,393.416667 752.08058,392.64 752.08058,391.76 C752.08058,390.706667 751.777247,389.846667 751.17058,389.18 C750.563913,388.513333 749.68058,388.073333 748.52058,387.86 L748.52058,387.86 L747.04058,387.6 C746.307247,387.48 745.787247,387.283333 745.48058,387.01 C745.173913,386.736667 745.02058,386.353333 745.02058,385.86 C745.02058,385.273333 745.203913,384.83 745.57058,384.53 C745.937247,384.23 746.473913,384.08 747.18058,384.08 C747.833913,384.08 748.423913,384.196667 748.95058,384.43 C749.477247,384.663333 749.927247,385.006667 750.30058,385.46 L750.30058,385.46 L751.92058,383.7 C751.413913,383.1 750.757247,382.633333 749.95058,382.3 C749.143913,381.966667 748.22058,381.8 747.18058,381.8 C745.607247,381.8 744.387247,382.166667 743.52058,382.9 C742.653913,383.633333 742.22058,384.66 742.22058,385.98 C742.22058,387.033333 742.51058,387.906667 743.09058,388.6 C743.67058,389.293333 744.567247,389.74 745.78058,389.94 L745.78058,389.94 L747.26058,390.18 C747.98058,390.3 748.493913,390.496667 748.80058,390.77 C749.107247,391.043333 749.26058,391.446667 749.26058,391.98 C749.26058,392.62 749.057247,393.11 748.65058,393.45 C748.243913,393.79 747.66058,393.96 746.90058,393.96 C746.233913,393.96 745.597247,393.82 744.99058,393.54 C744.383913,393.26 743.827247,392.833333 743.32058,392.26 L743.32058,392.26 L741.66058,394.02 C742.22058,394.726667 742.933913,395.273333 743.80058,395.66 C744.667247,396.046667 745.673913,396.24 746.82058,396.24 Z M757.380397,396 L757.380397,382.04 L754.620397,382.04 L754.620397,396 L757.380397,396 Z M766.380153,396 L766.380153,384.34 L770.520153,384.34 L770.520153,382.04 L759.480153,382.04 L759.480153,384.34 L763.620153,384.34 L763.620153,396 L766.380153,396 Z M776.999969,396.24 C778.813303,396.24 780.159969,395.62 781.039969,394.38 C781.919969,393.14 782.359969,391.353333 782.359969,389.02 C782.359969,386.686667 781.919969,384.9 781.039969,383.66 C780.159969,382.42 778.813303,381.8 776.999969,381.8 C775.186636,381.8 773.839969,382.42 772.959969,383.66 C772.079969,384.9 771.639969,386.686667 771.639969,389.02 C771.639969,391.353333 772.079969,393.14 772.959969,394.38 C773.839969,395.62 775.186636,396.24 776.999969,396.24 Z M776.999969,393.98 C776.146636,393.98 775.533303,393.663333 775.159969,393.03 C774.786636,392.396667 774.599969,391.46 774.599969,390.22 L774.599969,390.22 L774.599969,387.82 C774.599969,386.58 774.786636,385.643333 775.159969,385.01 C775.533303,384.376667 776.146636,384.06 776.999969,384.06 C777.853303,384.06 778.466636,384.376667 778.839969,385.01 C779.213303,385.643333 779.399969,386.58 779.399969,387.82 L779.399969,387.82 L779.399969,390.2 C779.399969,391.44 779.213303,392.38 778.839969,393.02 C778.466636,393.66 777.853303,393.98 776.999969,393.98 Z M787.319786,396 L787.319786,390.68 L788.839786,390.68 L791.359786,396 L794.399786,396 L791.519786,390.34 C792.346453,390.14 792.989786,389.686667 793.449786,388.98 C793.909786,388.273333 794.139786,387.413333 794.139786,386.4 C794.139786,385.053333 793.77312,383.99 793.039786,383.21 C792.306453,382.43 791.266453,382.04 789.919786,382.04 L789.919786,382.04 L784.559786,382.04 L784.559786,396 L787.319786,396 Z M789.299786,388.52 L787.319786,388.52 L787.319786,384.3 L789.299786,384.3 C790.006453,384.3 790.506453,384.44 790.799786,384.72 C791.09312,385 791.239786,385.453333 791.239786,386.08 L791.239786,386.08 L791.239786,386.74 C791.239786,387.366667 791.09312,387.82 790.799786,388.1 C790.506453,388.38 790.006453,388.52 789.299786,388.52 L789.299786,388.52 Z M802.379603,396 L802.379603,390.96 L806.879603,382.04 L803.879603,382.04 L802.319603,385.34 L801.119603,388.16 L800.979603,388.16 L799.799603,385.34 L798.219603,382.04 L795.119603,382.04 L799.619603,390.96 L799.619603,396 L802.379603,396 Z" id="REPO-SITORY" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M237,926.732051 L438.149944,1042.86603 L438.149944,1275.13397 L237,1391.26795 L35.8500555,1275.13397 L35.8500555,1042.86603 L237,926.732051 Z" id="Polygon-Copy-15" stroke="#55D4F5" stroke-width="3"></path>
<path d="M1761,926.732051 L1962.14994,1042.86603 L1962.14994,1275.13397 L1761,1391.26795 L1559.85006,1275.13397 L1559.85006,1042.86603 L1761,926.732051 Z" id="Polygon-Copy-23" stroke="#55D4F5" stroke-width="3"></path>
<path d="M999,926.732051 L1200.14994,1042.86603 L1200.14994,1275.13397 L999,1391.26795 L797.850056,1275.13397 L797.850056,1042.86603 L999,926.732051 Z" id="Polygon-Copy-19" stroke="#55D4F5" stroke-width="3"></path>
<polygon id="Polygon-Copy-16" fill="#55D4F5" points="291.5 1076 395.856061 1135.75 395.856061 1255.25 291.5 1315 187.143939 1255.25 187.143939 1135.75"></polygon>
<polygon id="Polygon-Copy-24" fill="#55D4F5" points="1735.5 1066 1839.85606 1125.75 1839.85606 1245.25 1735.5 1305 1631.14394 1245.25 1631.14394 1125.75"></polygon>
<polygon id="Polygon-Copy-20" fill="#55D4F5" points="1071.5 1040 1175.85606 1099.75 1175.85606 1219.25 1071.5 1279 967.143939 1219.25 967.143939 1099.75"></polygon>
<polygon id="Polygon-Copy-17" fill="#55D4F5" points="344 904 416.746134 945.75 416.746134 1029.25 344 1071 271.253866 1029.25 271.253866 945.75"></polygon>
<polygon id="Polygon-Copy-21" fill="#55D4F5" points="998 874 1070.74613 915.75 1070.74613 999.25 998 1041 925.253866 999.25 925.253866 915.75"></polygon>
<polygon id="Polygon-Copy-25" fill="#55D4F5" points="1658 904 1730.74613 945.75 1730.74613 1029.25 1658 1071 1585.25387 1029.25 1585.25387 945.75"></polygon>
<path d="M238.150458,1255 L242.775458,1237.55 L238.800458,1237.55 L236.725458,1246.425 L235.675458,1251.45 L235.475458,1251.45 L234.450458,1246.425 L232.400458,1237.55 L228.225458,1237.55 L232.850458,1255 L238.150458,1255 Z M248.625229,1255 L248.625229,1237.55 L244.875229,1237.55 L244.875229,1255 L248.625229,1255 Z M263.649924,1255 L263.649924,1251.925 L256.249924,1251.925 L256.249924,1247.7 L263.399924,1247.7 L263.399924,1244.625 L256.249924,1244.625 L256.249924,1240.625 L263.649924,1240.625 L263.649924,1237.55 L252.499924,1237.55 L252.499924,1255 L263.649924,1255 Z M273.624695,1255 L275.824695,1245.55 L276.699695,1241.725 L276.774695,1241.725 L277.624695,1245.55 L279.824695,1255 L284.149695,1255 L288.199695,1237.55 L284.599695,1237.55 L282.924695,1245.925 L281.999695,1250.775 L281.924695,1250.775 L280.849695,1245.925 L278.899695,1237.55 L274.749695,1237.55 L272.824695,1245.925 L271.724695,1250.775 L271.649695,1250.775 L270.724695,1245.925 L269.074695,1237.55 L265.299695,1237.55 L269.274695,1255 L273.624695,1255 Z" id="VIEW" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M1682.15046,1245 L1686.77546,1227.55 L1682.80046,1227.55 L1680.72546,1236.425 L1679.67546,1241.45 L1679.47546,1241.45 L1678.45046,1236.425 L1676.40046,1227.55 L1672.22546,1227.55 L1676.85046,1245 L1682.15046,1245 Z M1692.62523,1245 L1692.62523,1227.55 L1688.87523,1227.55 L1688.87523,1245 L1692.62523,1245 Z M1707.64992,1245 L1707.64992,1241.925 L1700.24992,1241.925 L1700.24992,1237.7 L1707.39992,1237.7 L1707.39992,1234.625 L1700.24992,1234.625 L1700.24992,1230.625 L1707.64992,1230.625 L1707.64992,1227.55 L1696.49992,1227.55 L1696.49992,1245 L1707.64992,1245 Z M1717.62469,1245 L1719.82469,1235.55 L1720.69969,1231.725 L1720.77469,1231.725 L1721.62469,1235.55 L1723.82469,1245 L1728.14969,1245 L1732.19969,1227.55 L1728.59969,1227.55 L1726.92469,1235.925 L1725.99969,1240.775 L1725.92469,1240.775 L1724.84969,1235.925 L1722.89969,1227.55 L1718.74969,1227.55 L1716.82469,1235.925 L1715.72469,1240.775 L1715.64969,1240.775 L1714.72469,1235.925 L1713.07469,1227.55 L1709.29969,1227.55 L1713.27469,1245 L1717.62469,1245 Z" id="VIEW" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M1018.15046,1219 L1022.77546,1201.55 L1018.80046,1201.55 L1016.72546,1210.425 L1015.67546,1215.45 L1015.47546,1215.45 L1014.45046,1210.425 L1012.40046,1201.55 L1008.22546,1201.55 L1012.85046,1219 L1018.15046,1219 Z M1028.62523,1219 L1028.62523,1201.55 L1024.87523,1201.55 L1024.87523,1219 L1028.62523,1219 Z M1043.64992,1219 L1043.64992,1215.925 L1036.24992,1215.925 L1036.24992,1211.7 L1043.39992,1211.7 L1043.39992,1208.625 L1036.24992,1208.625 L1036.24992,1204.625 L1043.64992,1204.625 L1043.64992,1201.55 L1032.49992,1201.55 L1032.49992,1219 L1043.64992,1219 Z M1053.62469,1219 L1055.82469,1209.55 L1056.69969,1205.725 L1056.77469,1205.725 L1057.62469,1209.55 L1059.82469,1219 L1064.14969,1219 L1068.19969,1201.55 L1064.59969,1201.55 L1062.92469,1209.925 L1061.99969,1214.775 L1061.92469,1214.775 L1060.84969,1209.925 L1058.89969,1201.55 L1054.74969,1201.55 L1052.82469,1209.925 L1051.72469,1214.775 L1051.64969,1214.775 L1050.72469,1209.925 L1049.07469,1201.55 L1045.29969,1201.55 L1049.27469,1219 L1053.62469,1219 Z" id="VIEW" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M316.150572,975 L320.775572,957.55 L316.800572,957.55 L314.725572,966.425 L313.675572,971.45 L313.475572,971.45 L312.450572,966.425 L310.400572,957.55 L306.225572,957.55 L310.850572,975 L316.150572,975 Z M326.625343,975 L326.625343,957.55 L322.875343,957.55 L322.875343,975 L326.625343,975 Z M341.650038,975 L341.650038,971.925 L334.250038,971.925 L334.250038,967.7 L341.400038,967.7 L341.400038,964.625 L334.250038,964.625 L334.250038,960.625 L341.650038,960.625 L341.650038,957.55 L330.500038,957.55 L330.500038,975 L341.650038,975 Z M351.624809,975 L353.824809,965.55 L354.699809,961.725 L354.774809,961.725 L355.624809,965.55 L357.824809,975 L362.149809,975 L366.199809,957.55 L362.599809,957.55 L360.924809,965.925 L359.999809,970.775 L359.924809,970.775 L358.849809,965.925 L356.899809,957.55 L352.749809,957.55 L350.824809,965.925 L349.724809,970.775 L349.649809,970.775 L348.724809,965.925 L347.074809,957.55 L343.299809,957.55 L347.274809,975 L351.624809,975 Z M377.499657,969.15 L377.499657,965.6 L369.499657,965.6 L369.499657,969.15 L377.499657,969.15 Z M308.775534,1008 L308.775534,996.375 L308.850534,996.375 L310.175534,999.125 L313.500534,1005.275 L316.900534,999.1 L318.175534,996.55 L318.250534,996.55 L318.250534,1008 L321.825534,1008 L321.825534,990.55 L317.775534,990.55 L313.550534,998.725 L313.500534,998.725 L309.225534,990.55 L305.200534,990.55 L305.200534,1008 L308.775534,1008 Z M332.250381,1008.3 C334.550381,1008.3 336.262881,1007.525 337.387881,1005.975 C338.512881,1004.425 339.075381,1002.19167 339.075381,999.275 C339.075381,996.358333 338.512881,994.125 337.387881,992.575 C336.262881,991.025 334.550381,990.25 332.250381,990.25 C329.950381,990.25 328.237881,991.025 327.112881,992.575 C325.987881,994.125 325.425381,996.358333 325.425381,999.275 C325.425381,1002.19167 325.987881,1004.425 327.112881,1005.975 C328.237881,1007.525 329.950381,1008.3 332.250381,1008.3 Z M332.250381,1005.275 C331.233715,1005.275 330.508715,1004.9 330.075381,1004.15 C329.642048,1003.4 329.425381,1002.28333 329.425381,1000.8 L329.425381,1000.8 L329.425381,997.75 C329.425381,996.266667 329.642048,995.15 330.075381,994.4 C330.508715,993.65 331.233715,993.275 332.250381,993.275 C333.267048,993.275 333.992048,993.65 334.425381,994.4 C334.858715,995.15 335.075381,996.266667 335.075381,997.75 L335.075381,997.75 L335.075381,1000.775 C335.075381,1002.25833 334.858715,1003.37917 334.425381,1004.1375 C333.992048,1004.89583 333.267048,1005.275 332.250381,1005.275 Z M346.975153,1008 C349.291819,1008 351.025153,1007.25417 352.175153,1005.7625 C353.325153,1004.27083 353.900153,1002.10833 353.900153,999.275 C353.900153,996.441667 353.325153,994.279167 352.175153,992.7875 C351.025153,991.295833 349.291819,990.55 346.975153,990.55 L346.975153,990.55 L341.350153,990.55 L341.350153,1008 L346.975153,1008 Z M346.725153,1005.05 L345.050153,1005.05 L345.050153,993.5 L346.725153,993.5 C347.825153,993.5 348.637653,993.854167 349.162653,994.5625 C349.687653,995.270833 349.950153,996.308333 349.950153,997.675 L349.950153,997.675 L349.950153,1000.85 C349.950153,1002.23333 349.687653,1003.27917 349.162653,1003.9875 C348.637653,1004.69583 347.825153,1005.05 346.725153,1005.05 L346.725153,1005.05 Z M367.899924,1008 L367.899924,1004.925 L360.499924,1004.925 L360.499924,1000.7 L367.649924,1000.7 L367.649924,997.625 L360.499924,997.625 L360.499924,993.625 L367.899924,993.625 L367.899924,990.55 L356.749924,990.55 L356.749924,1008 L367.899924,1008 Z M383.324695,1008 L383.324695,1004.925 L375.824695,1004.925 L375.824695,990.55 L372.049695,990.55 L372.049695,1008 L383.324695,1008 Z" id="VIEW-MODEL" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M970.150572,945 L974.775572,927.55 L970.800572,927.55 L968.725572,936.425 L967.675572,941.45 L967.475572,941.45 L966.450572,936.425 L964.400572,927.55 L960.225572,927.55 L964.850572,945 L970.150572,945 Z M980.625343,945 L980.625343,927.55 L976.875343,927.55 L976.875343,945 L980.625343,945 Z M995.650038,945 L995.650038,941.925 L988.250038,941.925 L988.250038,937.7 L995.400038,937.7 L995.400038,934.625 L988.250038,934.625 L988.250038,930.625 L995.650038,930.625 L995.650038,927.55 L984.500038,927.55 L984.500038,945 L995.650038,945 Z M1005.62481,945 L1007.82481,935.55 L1008.69981,931.725 L1008.77481,931.725 L1009.62481,935.55 L1011.82481,945 L1016.14981,945 L1020.19981,927.55 L1016.59981,927.55 L1014.92481,935.925 L1013.99981,940.775 L1013.92481,940.775 L1012.84981,935.925 L1010.89981,927.55 L1006.74981,927.55 L1004.82481,935.925 L1003.72481,940.775 L1003.64981,940.775 L1002.72481,935.925 L1001.07481,927.55 L997.299809,927.55 L1001.27481,945 L1005.62481,945 Z M1031.49966,939.15 L1031.49966,935.6 L1023.49966,935.6 L1023.49966,939.15 L1031.49966,939.15 Z M962.775534,978 L962.775534,966.375 L962.850534,966.375 L964.175534,969.125 L967.500534,975.275 L970.900534,969.1 L972.175534,966.55 L972.250534,966.55 L972.250534,978 L975.825534,978 L975.825534,960.55 L971.775534,960.55 L967.550534,968.725 L967.500534,968.725 L963.225534,960.55 L959.200534,960.55 L959.200534,978 L962.775534,978 Z M986.250381,978.3 C988.550381,978.3 990.262881,977.525 991.387881,975.975 C992.512881,974.425 993.075381,972.191667 993.075381,969.275 C993.075381,966.358333 992.512881,964.125 991.387881,962.575 C990.262881,961.025 988.550381,960.25 986.250381,960.25 C983.950381,960.25 982.237881,961.025 981.112881,962.575 C979.987881,964.125 979.425381,966.358333 979.425381,969.275 C979.425381,972.191667 979.987881,974.425 981.112881,975.975 C982.237881,977.525 983.950381,978.3 986.250381,978.3 Z M986.250381,975.275 C985.233715,975.275 984.508715,974.9 984.075381,974.15 C983.642048,973.4 983.425381,972.283333 983.425381,970.8 L983.425381,970.8 L983.425381,967.75 C983.425381,966.266667 983.642048,965.15 984.075381,964.4 C984.508715,963.65 985.233715,963.275 986.250381,963.275 C987.267048,963.275 987.992048,963.65 988.425381,964.4 C988.858715,965.15 989.075381,966.266667 989.075381,967.75 L989.075381,967.75 L989.075381,970.775 C989.075381,972.258333 988.858715,973.379167 988.425381,974.1375 C987.992048,974.895833 987.267048,975.275 986.250381,975.275 Z M1000.97515,978 C1003.29182,978 1005.02515,977.254167 1006.17515,975.7625 C1007.32515,974.270833 1007.90015,972.108333 1007.90015,969.275 C1007.90015,966.441667 1007.32515,964.279167 1006.17515,962.7875 C1005.02515,961.295833 1003.29182,960.55 1000.97515,960.55 L1000.97515,960.55 L995.350153,960.55 L995.350153,978 L1000.97515,978 Z M1000.72515,975.05 L999.050153,975.05 L999.050153,963.5 L1000.72515,963.5 C1001.82515,963.5 1002.63765,963.854167 1003.16265,964.5625 C1003.68765,965.270833 1003.95015,966.308333 1003.95015,967.675 L1003.95015,967.675 L1003.95015,970.85 C1003.95015,972.233333 1003.68765,973.279167 1003.16265,973.9875 C1002.63765,974.695833 1001.82515,975.05 1000.72515,975.05 L1000.72515,975.05 Z M1021.89992,978 L1021.89992,974.925 L1014.49992,974.925 L1014.49992,970.7 L1021.64992,970.7 L1021.64992,967.625 L1014.49992,967.625 L1014.49992,963.625 L1021.89992,963.625 L1021.89992,960.55 L1010.74992,960.55 L1010.74992,978 L1021.89992,978 Z M1037.32469,978 L1037.32469,974.925 L1029.82469,974.925 L1029.82469,960.55 L1026.04969,960.55 L1026.04969,978 L1037.32469,978 Z" id="VIEW-MODEL" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M1630.15057,975 L1634.77557,957.55 L1630.80057,957.55 L1628.72557,966.425 L1627.67557,971.45 L1627.47557,971.45 L1626.45057,966.425 L1624.40057,957.55 L1620.22557,957.55 L1624.85057,975 L1630.15057,975 Z M1640.62534,975 L1640.62534,957.55 L1636.87534,957.55 L1636.87534,975 L1640.62534,975 Z M1655.65004,975 L1655.65004,971.925 L1648.25004,971.925 L1648.25004,967.7 L1655.40004,967.7 L1655.40004,964.625 L1648.25004,964.625 L1648.25004,960.625 L1655.65004,960.625 L1655.65004,957.55 L1644.50004,957.55 L1644.50004,975 L1655.65004,975 Z M1665.62481,975 L1667.82481,965.55 L1668.69981,961.725 L1668.77481,961.725 L1669.62481,965.55 L1671.82481,975 L1676.14981,975 L1680.19981,957.55 L1676.59981,957.55 L1674.92481,965.925 L1673.99981,970.775 L1673.92481,970.775 L1672.84981,965.925 L1670.89981,957.55 L1666.74981,957.55 L1664.82481,965.925 L1663.72481,970.775 L1663.64981,970.775 L1662.72481,965.925 L1661.07481,957.55 L1657.29981,957.55 L1661.27481,975 L1665.62481,975 Z M1691.49966,969.15 L1691.49966,965.6 L1683.49966,965.6 L1683.49966,969.15 L1691.49966,969.15 Z M1622.77553,1008 L1622.77553,996.375 L1622.85053,996.375 L1624.17553,999.125 L1627.50053,1005.275 L1630.90053,999.1 L1632.17553,996.55 L1632.25053,996.55 L1632.25053,1008 L1635.82553,1008 L1635.82553,990.55 L1631.77553,990.55 L1627.55053,998.725 L1627.50053,998.725 L1623.22553,990.55 L1619.20053,990.55 L1619.20053,1008 L1622.77553,1008 Z M1646.25038,1008.3 C1648.55038,1008.3 1650.26288,1007.525 1651.38788,1005.975 C1652.51288,1004.425 1653.07538,1002.19167 1653.07538,999.275 C1653.07538,996.358333 1652.51288,994.125 1651.38788,992.575 C1650.26288,991.025 1648.55038,990.25 1646.25038,990.25 C1643.95038,990.25 1642.23788,991.025 1641.11288,992.575 C1639.98788,994.125 1639.42538,996.358333 1639.42538,999.275 C1639.42538,1002.19167 1639.98788,1004.425 1641.11288,1005.975 C1642.23788,1007.525 1643.95038,1008.3 1646.25038,1008.3 Z M1646.25038,1005.275 C1645.23371,1005.275 1644.50871,1004.9 1644.07538,1004.15 C1643.64205,1003.4 1643.42538,1002.28333 1643.42538,1000.8 L1643.42538,1000.8 L1643.42538,997.75 C1643.42538,996.266667 1643.64205,995.15 1644.07538,994.4 C1644.50871,993.65 1645.23371,993.275 1646.25038,993.275 C1647.26705,993.275 1647.99205,993.65 1648.42538,994.4 C1648.85871,995.15 1649.07538,996.266667 1649.07538,997.75 L1649.07538,997.75 L1649.07538,1000.775 C1649.07538,1002.25833 1648.85871,1003.37917 1648.42538,1004.1375 C1647.99205,1004.89583 1647.26705,1005.275 1646.25038,1005.275 Z M1660.97515,1008 C1663.29182,1008 1665.02515,1007.25417 1666.17515,1005.7625 C1667.32515,1004.27083 1667.90015,1002.10833 1667.90015,999.275 C1667.90015,996.441667 1667.32515,994.279167 1666.17515,992.7875 C1665.02515,991.295833 1663.29182,990.55 1660.97515,990.55 L1660.97515,990.55 L1655.35015,990.55 L1655.35015,1008 L1660.97515,1008 Z M1660.72515,1005.05 L1659.05015,1005.05 L1659.05015,993.5 L1660.72515,993.5 C1661.82515,993.5 1662.63765,993.854167 1663.16265,994.5625 C1663.68765,995.270833 1663.95015,996.308333 1663.95015,997.675 L1663.95015,997.675 L1663.95015,1000.85 C1663.95015,1002.23333 1663.68765,1003.27917 1663.16265,1003.9875 C1662.63765,1004.69583 1661.82515,1005.05 1660.72515,1005.05 L1660.72515,1005.05 Z M1681.89992,1008 L1681.89992,1004.925 L1674.49992,1004.925 L1674.49992,1000.7 L1681.64992,1000.7 L1681.64992,997.625 L1674.49992,997.625 L1674.49992,993.625 L1681.89992,993.625 L1681.89992,990.55 L1670.74992,990.55 L1670.74992,1008 L1681.89992,1008 Z M1697.32469,1008 L1697.32469,1004.925 L1689.82469,1004.925 L1689.82469,990.55 L1686.04969,990.55 L1686.04969,1008 L1697.32469,1008 Z" id="VIEW-MODEL" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M121.050549,1070 L122.340549,1062.32 L125.910549,1062.32 C127.410549,1062.32 128.725549,1062.01 129.855549,1061.39 C130.985549,1060.77 131.855549,1059.88 132.465549,1058.72 C133.075549,1057.56 133.380549,1056.19 133.380549,1054.61 C133.380549,1052.95 132.885549,1051.61 131.895549,1050.59 C130.905549,1049.57 129.500549,1049.06 127.680549,1049.06 L127.680549,1049.06 L120.120549,1049.06 L116.610549,1070 L121.050549,1070 Z M125.280549,1058.72 L122.940549,1058.72 L123.960549,1052.63 L126.300549,1052.63 C127.180549,1052.63 127.810549,1052.775 128.190549,1053.065 C128.570549,1053.355 128.760549,1053.84 128.760549,1054.52 C128.760549,1054.82 128.740549,1055.09 128.700549,1055.33 L128.700549,1055.33 L128.550549,1056.23 C128.410549,1057.13 128.085549,1057.77 127.575549,1058.15 C127.065549,1058.53 126.300549,1058.72 125.280549,1058.72 L125.280549,1058.72 Z M137.040275,1070 L139.110275,1064.93 L144.990275,1064.93 L145.500275,1070 L150.060275,1070 L147.780275,1049.06 L141.600275,1049.06 L132.390275,1070 L137.040275,1070 Z M144.810275,1061.33 L140.610275,1061.33 L143.910275,1053.41 L144.180275,1053.41 L144.810275,1061.33 Z M158.4,1070.36 C159.5,1070.36 160.37,1070.08 161.01,1069.52 C161.65,1068.96 162.29,1068.11 162.93,1066.97 L162.93,1066.97 L163.2,1066.97 L162.69,1070 L166.62,1070 L168.48,1058.84 L160.86,1058.84 L160.35,1061.99 L164.04,1061.99 L163.8,1063.43 C163.64,1064.39 163.245,1065.185 162.615,1065.815 C161.985,1066.445 161.17,1066.76 160.17,1066.76 C159.23,1066.76 158.53,1066.45 158.07,1065.83 C157.61,1065.21 157.38,1064.36 157.38,1063.28 C157.38,1062.5 157.46,1061.63 157.62,1060.67 L157.62,1060.67 L158.13,1057.61 C158.41,1055.91 158.875,1054.6 159.525,1053.68 C160.175,1052.76 161.05,1052.3 162.15,1052.3 C163.09,1052.3 163.76,1052.605 164.16,1053.215 C164.56,1053.825 164.8,1054.66 164.88,1055.72 L164.88,1055.72 L169.17,1054.88 C169.03,1052.98 168.41,1051.475 167.31,1050.365 C166.21,1049.255 164.62,1048.7 162.54,1048.7 C160.46,1048.7 158.69,1049.3 157.23,1050.5 C155.77,1051.7 154.675,1053.35 153.945,1055.45 C153.215,1057.55 152.85,1059.95 152.85,1062.65 C152.85,1065.13 153.34,1067.035 154.32,1068.365 C155.3,1069.695 156.66,1070.36 158.4,1070.36 Z M184.019725,1070 L184.619725,1066.34 L175.649725,1066.34 L176.489725,1061.24 L185.099725,1061.24 L185.699725,1057.58 L177.119725,1057.58 L177.929725,1052.72 L186.929725,1052.72 L187.529725,1049.06 L174.149725,1049.06 L170.639725,1070 L184.019725,1070 Z" id="PAGE" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<path d="M1612.65069,812 L1612.65069,808.925 L1605.25069,808.925 L1605.25069,804.7 L1612.40069,804.7 L1612.40069,801.625 L1605.25069,801.625 L1605.25069,797.625 L1612.65069,797.625 L1612.65069,794.55 L1601.50069,794.55 L1601.50069,812 L1612.65069,812 Z M1624.65046,812 L1629.27546,794.55 L1625.30046,794.55 L1623.22546,803.425 L1622.17546,808.45 L1621.97546,808.45 L1620.95046,803.425 L1618.90046,794.55 L1614.72546,794.55 L1619.35046,812 L1624.65046,812 Z M1642.65023,812 L1642.65023,808.925 L1635.25023,808.925 L1635.25023,804.7 L1642.40023,804.7 L1642.40023,801.625 L1635.25023,801.625 L1635.25023,797.625 L1642.65023,797.625 L1642.65023,794.55 L1631.50023,794.55 L1631.50023,812 L1642.65023,812 Z M1649.225,812 L1649.225,800.4 L1649.5,800.4 L1653.475,812 L1657.975,812 L1657.975,794.55 L1654.775,794.55 L1654.775,806.15 L1654.5,806.15 L1650.525,794.55 L1646.025,794.55 L1646.025,812 L1649.225,812 Z M1668.87477,812 L1668.87477,797.625 L1673.89977,797.625 L1673.89977,794.55 L1660.09977,794.55 L1660.09977,797.625 L1665.12477,797.625 L1665.12477,812 L1668.87477,812 Z M1681.72454,812.3 C1683.14121,812.3 1684.35371,812.058333 1685.36204,811.575 C1686.37038,811.091667 1687.12871,810.420833 1687.63704,809.5625 C1688.14538,808.704167 1688.39954,807.725 1688.39954,806.625 C1688.39954,805.275 1688.01621,804.183333 1687.24954,803.35 C1686.48288,802.516667 1685.39121,801.975 1683.97454,801.725 L1683.97454,801.725 L1682.14954,801.4 C1681.28288,801.25 1680.66621,801.020833 1680.29954,800.7125 C1679.93288,800.404167 1679.74954,799.958333 1679.74954,799.375 C1679.74954,798.691667 1679.96204,798.175 1680.38704,797.825 C1680.81204,797.475 1681.44121,797.3 1682.27454,797.3 C1683.04121,797.3 1683.74954,797.441667 1684.39954,797.725 C1685.04954,798.008333 1685.60788,798.416667 1686.07454,798.95 L1686.07454,798.95 L1688.19954,796.575 C1687.56621,795.841667 1686.74121,795.270833 1685.72454,794.8625 C1684.70788,794.454167 1683.54954,794.25 1682.24954,794.25 C1680.26621,794.25 1678.72454,794.716667 1677.62454,795.65 C1676.52454,796.583333 1675.97454,797.883333 1675.97454,799.55 C1675.97454,800.883333 1676.34121,801.9875 1677.07454,802.8625 C1677.80788,803.7375 1678.92454,804.3 1680.42454,804.55 L1680.42454,804.55 L1682.24954,804.85 C1683.09954,804.983333 1683.70371,805.208333 1684.06204,805.525 C1684.42038,805.841667 1684.59954,806.308333 1684.59954,806.925 C1684.59954,807.675 1684.36204,808.25 1683.88704,808.65 C1683.41204,809.05 1682.73288,809.25 1681.84954,809.25 C1681.04954,809.25 1680.27038,809.079167 1679.51204,808.7375 C1678.75371,808.395833 1678.06621,807.883333 1677.44954,807.2 L1677.44954,807.2 L1675.27454,809.6 C1675.95788,810.45 1676.84954,811.1125 1677.94954,811.5875 C1679.04954,812.0625 1680.30788,812.3 1681.72454,812.3 Z" id="EVENTS" fill-opacity="0.85" fill="#000000" fill-rule="nonzero" transform="translate(1644.950114, 803.275000) rotate(-30.000000) translate(-1644.950114, -803.275000) "></path>
<path d="M311.650687,804 L311.650687,800.925 L304.250687,800.925 L304.250687,796.7 L311.400687,796.7 L311.400687,793.625 L304.250687,793.625 L304.250687,789.625 L311.650687,789.625 L311.650687,786.55 L300.500687,786.55 L300.500687,804 L311.650687,804 Z M323.650458,804 L328.275458,786.55 L324.300458,786.55 L322.225458,795.425 L321.175458,800.45 L320.975458,800.45 L319.950458,795.425 L317.900458,786.55 L313.725458,786.55 L318.350458,804 L323.650458,804 Z M341.650229,804 L341.650229,800.925 L334.250229,800.925 L334.250229,796.7 L341.400229,796.7 L341.400229,793.625 L334.250229,793.625 L334.250229,789.625 L341.650229,789.625 L341.650229,786.55 L330.500229,786.55 L330.500229,804 L341.650229,804 Z M348.225,804 L348.225,792.4 L348.5,792.4 L352.475,804 L356.975,804 L356.975,786.55 L353.775,786.55 L353.775,798.15 L353.5,798.15 L349.525,786.55 L345.025,786.55 L345.025,804 L348.225,804 Z M367.874771,804 L367.874771,789.625 L372.899771,789.625 L372.899771,786.55 L359.099771,786.55 L359.099771,789.625 L364.124771,789.625 L364.124771,804 L367.874771,804 Z M380.724542,804.3 C382.141209,804.3 383.353709,804.058333 384.362042,803.575 C385.370376,803.091667 386.128709,802.420833 386.637042,801.5625 C387.145376,800.704167 387.399542,799.725 387.399542,798.625 C387.399542,797.275 387.016209,796.183333 386.249542,795.35 C385.482876,794.516667 384.391209,793.975 382.974542,793.725 L382.974542,793.725 L381.149542,793.4 C380.282876,793.25 379.666209,793.020833 379.299542,792.7125 C378.932876,792.404167 378.749542,791.958333 378.749542,791.375 C378.749542,790.691667 378.962042,790.175 379.387042,789.825 C379.812042,789.475 380.441209,789.3 381.274542,789.3 C382.041209,789.3 382.749542,789.441667 383.399542,789.725 C384.049542,790.008333 384.607876,790.416667 385.074542,790.95 L385.074542,790.95 L387.199542,788.575 C386.566209,787.841667 385.741209,787.270833 384.724542,786.8625 C383.707876,786.454167 382.549542,786.25 381.249542,786.25 C379.266209,786.25 377.724542,786.716667 376.624542,787.65 C375.524542,788.583333 374.974542,789.883333 374.974542,791.55 C374.974542,792.883333 375.341209,793.9875 376.074542,794.8625 C376.807876,795.7375 377.924542,796.3 379.424542,796.55 L379.424542,796.55 L381.249542,796.85 C382.099542,796.983333 382.703709,797.208333 383.062042,797.525 C383.420376,797.841667 383.599542,798.308333 383.599542,798.925 C383.599542,799.675 383.362042,800.25 382.887042,800.65 C382.412042,801.05 381.732876,801.25 380.849542,801.25 C380.049542,801.25 379.270376,801.079167 378.512042,800.7375 C377.753709,800.395833 377.066209,799.883333 376.449542,799.2 L376.449542,799.2 L374.274542,801.6 C374.957876,802.45 375.849542,803.1125 376.949542,803.5875 C378.049542,804.0625 379.307876,804.3 380.724542,804.3 Z" id="EVENTS" fill-opacity="0.85" fill="#000000" fill-rule="nonzero" transform="translate(343.950114, 795.275000) rotate(-330.000000) translate(-343.950114, -795.275000) "></path>
<path d="M966.650687,776 L966.650687,772.925 L959.250687,772.925 L959.250687,768.7 L966.400687,768.7 L966.400687,765.625 L959.250687,765.625 L959.250687,761.625 L966.650687,761.625 L966.650687,758.55 L955.500687,758.55 L955.500687,776 L966.650687,776 Z M978.650458,776 L983.275458,758.55 L979.300458,758.55 L977.225458,767.425 L976.175458,772.45 L975.975458,772.45 L974.950458,767.425 L972.900458,758.55 L968.725458,758.55 L973.350458,776 L978.650458,776 Z M996.650229,776 L996.650229,772.925 L989.250229,772.925 L989.250229,768.7 L996.400229,768.7 L996.400229,765.625 L989.250229,765.625 L989.250229,761.625 L996.650229,761.625 L996.650229,758.55 L985.500229,758.55 L985.500229,776 L996.650229,776 Z M1003.225,776 L1003.225,764.4 L1003.5,764.4 L1007.475,776 L1011.975,776 L1011.975,758.55 L1008.775,758.55 L1008.775,770.15 L1008.5,770.15 L1004.525,758.55 L1000.025,758.55 L1000.025,776 L1003.225,776 Z M1022.87477,776 L1022.87477,761.625 L1027.89977,761.625 L1027.89977,758.55 L1014.09977,758.55 L1014.09977,761.625 L1019.12477,761.625 L1019.12477,776 L1022.87477,776 Z M1035.72454,776.3 C1037.14121,776.3 1038.35371,776.058333 1039.36204,775.575 C1040.37038,775.091667 1041.12871,774.420833 1041.63704,773.5625 C1042.14538,772.704167 1042.39954,771.725 1042.39954,770.625 C1042.39954,769.275 1042.01621,768.183333 1041.24954,767.35 C1040.48288,766.516667 1039.39121,765.975 1037.97454,765.725 L1037.97454,765.725 L1036.14954,765.4 C1035.28288,765.25 1034.66621,765.020833 1034.29954,764.7125 C1033.93288,764.404167 1033.74954,763.958333 1033.74954,763.375 C1033.74954,762.691667 1033.96204,762.175 1034.38704,761.825 C1034.81204,761.475 1035.44121,761.3 1036.27454,761.3 C1037.04121,761.3 1037.74954,761.441667 1038.39954,761.725 C1039.04954,762.008333 1039.60788,762.416667 1040.07454,762.95 L1040.07454,762.95 L1042.19954,760.575 C1041.56621,759.841667 1040.74121,759.270833 1039.72454,758.8625 C1038.70788,758.454167 1037.54954,758.25 1036.24954,758.25 C1034.26621,758.25 1032.72454,758.716667 1031.62454,759.65 C1030.52454,760.583333 1029.97454,761.883333 1029.97454,763.55 C1029.97454,764.883333 1030.34121,765.9875 1031.07454,766.8625 C1031.80788,767.7375 1032.92454,768.3 1034.42454,768.55 L1034.42454,768.55 L1036.24954,768.85 C1037.09954,768.983333 1037.70371,769.208333 1038.06204,769.525 C1038.42038,769.841667 1038.59954,770.308333 1038.59954,770.925 C1038.59954,771.675 1038.36204,772.25 1037.88704,772.65 C1037.41204,773.05 1036.73288,773.25 1035.84954,773.25 C1035.04954,773.25 1034.27038,773.079167 1033.51204,772.7375 C1032.75371,772.395833 1032.06621,771.883333 1031.44954,771.2 L1031.44954,771.2 L1029.27454,773.6 C1029.95788,774.45 1030.84954,775.1125 1031.94954,775.5875 C1033.04954,776.0625 1034.30788,776.3 1035.72454,776.3 Z" id="EVENTS" fill-opacity="0.85" fill="#000000" fill-rule="nonzero" transform="translate(998.950114, 767.275000) rotate(-360.000000) translate(-998.950114, -767.275000) "></path>
<path d="M1820.05055,1060 L1821.34055,1052.32 L1824.91055,1052.32 C1826.41055,1052.32 1827.72555,1052.01 1828.85555,1051.39 C1829.98555,1050.77 1830.85555,1049.88 1831.46555,1048.72 C1832.07555,1047.56 1832.38055,1046.19 1832.38055,1044.61 C1832.38055,1042.95 1831.88555,1041.61 1830.89555,1040.59 C1829.90555,1039.57 1828.50055,1039.06 1826.68055,1039.06 L1826.68055,1039.06 L1819.12055,1039.06 L1815.61055,1060 L1820.05055,1060 Z M1824.28055,1048.72 L1821.94055,1048.72 L1822.96055,1042.63 L1825.30055,1042.63 C1826.18055,1042.63 1826.81055,1042.775 1827.19055,1043.065 C1827.57055,1043.355 1827.76055,1043.84 1827.76055,1044.52 C1827.76055,1044.82 1827.74055,1045.09 1827.70055,1045.33 L1827.70055,1045.33 L1827.55055,1046.23 C1827.41055,1047.13 1827.08555,1047.77 1826.57555,1048.15 C1826.06555,1048.53 1825.30055,1048.72 1824.28055,1048.72 L1824.28055,1048.72 Z M1836.04027,1060 L1838.11027,1054.93 L1843.99027,1054.93 L1844.50027,1060 L1849.06027,1060 L1846.78027,1039.06 L1840.60027,1039.06 L1831.39027,1060 L1836.04027,1060 Z M1843.81027,1051.33 L1839.61027,1051.33 L1842.91027,1043.41 L1843.18027,1043.41 L1843.81027,1051.33 Z M1857.4,1060.36 C1858.5,1060.36 1859.37,1060.08 1860.01,1059.52 C1860.65,1058.96 1861.29,1058.11 1861.93,1056.97 L1861.93,1056.97 L1862.2,1056.97 L1861.69,1060 L1865.62,1060 L1867.48,1048.84 L1859.86,1048.84 L1859.35,1051.99 L1863.04,1051.99 L1862.8,1053.43 C1862.64,1054.39 1862.245,1055.185 1861.615,1055.815 C1860.985,1056.445 1860.17,1056.76 1859.17,1056.76 C1858.23,1056.76 1857.53,1056.45 1857.07,1055.83 C1856.61,1055.21 1856.38,1054.36 1856.38,1053.28 C1856.38,1052.5 1856.46,1051.63 1856.62,1050.67 L1856.62,1050.67 L1857.13,1047.61 C1857.41,1045.91 1857.875,1044.6 1858.525,1043.68 C1859.175,1042.76 1860.05,1042.3 1861.15,1042.3 C1862.09,1042.3 1862.76,1042.605 1863.16,1043.215 C1863.56,1043.825 1863.8,1044.66 1863.88,1045.72 L1863.88,1045.72 L1868.17,1044.88 C1868.03,1042.98 1867.41,1041.475 1866.31,1040.365 C1865.21,1039.255 1863.62,1038.7 1861.54,1038.7 C1859.46,1038.7 1857.69,1039.3 1856.23,1040.5 C1854.77,1041.7 1853.675,1043.35 1852.945,1045.45 C1852.215,1047.55 1851.85,1049.95 1851.85,1052.65 C1851.85,1055.13 1852.34,1057.035 1853.32,1058.365 C1854.3,1059.695 1855.66,1060.36 1857.4,1060.36 Z M1883.01973,1060 L1883.61973,1056.34 L1874.64973,1056.34 L1875.48973,1051.24 L1884.09973,1051.24 L1884.69973,1047.58 L1876.11973,1047.58 L1876.92973,1042.72 L1885.92973,1042.72 L1886.52973,1039.06 L1873.14973,1039.06 L1869.63973,1060 L1883.01973,1060 Z" id="PAGE" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<path d="M849.050549,1172 L850.340549,1164.32 L853.910549,1164.32 C855.410549,1164.32 856.725549,1164.01 857.855549,1163.39 C858.985549,1162.77 859.855549,1161.88 860.465549,1160.72 C861.075549,1159.56 861.380549,1158.19 861.380549,1156.61 C861.380549,1154.95 860.885549,1153.61 859.895549,1152.59 C858.905549,1151.57 857.500549,1151.06 855.680549,1151.06 L855.680549,1151.06 L848.120549,1151.06 L844.610549,1172 L849.050549,1172 Z M853.280549,1160.72 L850.940549,1160.72 L851.960549,1154.63 L854.300549,1154.63 C855.180549,1154.63 855.810549,1154.775 856.190549,1155.065 C856.570549,1155.355 856.760549,1155.84 856.760549,1156.52 C856.760549,1156.82 856.740549,1157.09 856.700549,1157.33 L856.700549,1157.33 L856.550549,1158.23 C856.410549,1159.13 856.085549,1159.77 855.575549,1160.15 C855.065549,1160.53 854.300549,1160.72 853.280549,1160.72 L853.280549,1160.72 Z M865.040275,1172 L867.110275,1166.93 L872.990275,1166.93 L873.500275,1172 L878.060275,1172 L875.780275,1151.06 L869.600275,1151.06 L860.390275,1172 L865.040275,1172 Z M872.810275,1163.33 L868.610275,1163.33 L871.910275,1155.41 L872.180275,1155.41 L872.810275,1163.33 Z M886.4,1172.36 C887.5,1172.36 888.37,1172.08 889.01,1171.52 C889.65,1170.96 890.29,1170.11 890.93,1168.97 L890.93,1168.97 L891.2,1168.97 L890.69,1172 L894.62,1172 L896.48,1160.84 L888.86,1160.84 L888.35,1163.99 L892.04,1163.99 L891.8,1165.43 C891.64,1166.39 891.245,1167.185 890.615,1167.815 C889.985,1168.445 889.17,1168.76 888.17,1168.76 C887.23,1168.76 886.53,1168.45 886.07,1167.83 C885.61,1167.21 885.38,1166.36 885.38,1165.28 C885.38,1164.5 885.46,1163.63 885.62,1162.67 L885.62,1162.67 L886.13,1159.61 C886.41,1157.91 886.875,1156.6 887.525,1155.68 C888.175,1154.76 889.05,1154.3 890.15,1154.3 C891.09,1154.3 891.76,1154.605 892.16,1155.215 C892.56,1155.825 892.8,1156.66 892.88,1157.72 L892.88,1157.72 L897.17,1156.88 C897.03,1154.98 896.41,1153.475 895.31,1152.365 C894.21,1151.255 892.62,1150.7 890.54,1150.7 C888.46,1150.7 886.69,1151.3 885.23,1152.5 C883.77,1153.7 882.675,1155.35 881.945,1157.45 C881.215,1159.55 880.85,1161.95 880.85,1164.65 C880.85,1167.13 881.34,1169.035 882.32,1170.365 C883.3,1171.695 884.66,1172.36 886.4,1172.36 Z M912.019725,1172 L912.619725,1168.34 L903.649725,1168.34 L904.489725,1163.24 L913.099725,1163.24 L913.699725,1159.58 L905.119725,1159.58 L905.929725,1154.72 L914.929725,1154.72 L915.529725,1151.06 L902.149725,1151.06 L898.639725,1172 L912.019725,1172 Z" id="PAGE" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<path d="M311.5,1107.73205 L367.590689,1140.11603 L367.590689,1204.88397 L311.5,1237.26795 L255.409311,1204.88397 L255.409311,1140.11603 L311.5,1107.73205 Z" id="Polygon-Copy-18" stroke="#55D4F5" stroke-width="3" fill="#FFFFFF"></path>
<path d="M1755.5,1097.73205 L1811.59069,1130.11603 L1811.59069,1194.88397 L1755.5,1227.26795 L1699.40931,1194.88397 L1699.40931,1130.11603 L1755.5,1097.73205 Z" id="Polygon-Copy-26" stroke="#55D4F5" stroke-width="3" fill="#FFFFFF"></path>
<path d="M1091.5,1071.73205 L1147.59069,1104.11603 L1147.59069,1168.88397 L1091.5,1201.26795 L1035.40931,1168.88397 L1035.40931,1104.11603 L1091.5,1071.73205 Z" id="Polygon-Copy-22" stroke="#55D4F5" stroke-width="3" fill="#FFFFFF"></path>
<path d="M706.5,194.732051 L762.590689,227.116025 L762.590689,291.883975 L706.5,324.267949 L650.409311,291.883975 L650.409311,227.116025 L706.5,194.732051 Z" id="Polygon-Copy-7" stroke="#55D4F5" stroke-width="3" fill="#FFFFFF"></path>
<path d="M278.820519,1170.24 C280.207185,1170.24 281.303852,1169.89 282.110519,1169.19 C282.917185,1168.49 283.467185,1167.5 283.760519,1166.22 L283.760519,1166.22 L280.960519,1165.54 C280.787185,1166.28667 280.540519,1166.85333 280.220519,1167.24 C279.900519,1167.62667 279.413852,1167.82 278.760519,1167.82 C277.973852,1167.82 277.403852,1167.51333 277.050519,1166.9 C276.697185,1166.28667 276.520519,1165.4 276.520519,1164.24 L276.520519,1164.24 L276.520519,1161.8 C276.520519,1160.64 276.697185,1159.75333 277.050519,1159.14 C277.403852,1158.52667 277.973852,1158.22 278.760519,1158.22 C279.413852,1158.22 279.900519,1158.41333 280.220519,1158.8 C280.540519,1159.18667 280.787185,1159.75333 280.960519,1160.5 L280.960519,1160.5 L283.760519,1159.82 C283.467185,1158.54 282.917185,1157.55 282.110519,1156.85 C281.303852,1156.15 280.207185,1155.8 278.820519,1155.8 C276.980519,1155.8 275.603852,1156.42 274.690519,1157.66 C273.777185,1158.9 273.320519,1160.68667 273.320519,1163.02 C273.320519,1165.35333 273.777185,1167.14 274.690519,1168.38 C275.603852,1169.62 276.980519,1170.24 278.820519,1170.24 Z M290.500336,1170.24 C292.340336,1170.24 293.710336,1169.62 294.610336,1168.38 C295.510336,1167.14 295.960336,1165.35333 295.960336,1163.02 C295.960336,1160.68667 295.510336,1158.9 294.610336,1157.66 C293.710336,1156.42 292.340336,1155.8 290.500336,1155.8 C288.660336,1155.8 287.290336,1156.42 286.390336,1157.66 C285.490336,1158.9 285.040336,1160.68667 285.040336,1163.02 C285.040336,1165.35333 285.490336,1167.14 286.390336,1168.38 C287.290336,1169.62 288.660336,1170.24 290.500336,1170.24 Z M290.500336,1167.82 C289.687002,1167.82 289.107002,1167.52 288.760336,1166.92 C288.413669,1166.32 288.240336,1165.42667 288.240336,1164.24 L288.240336,1164.24 L288.240336,1161.8 C288.240336,1160.61333 288.413669,1159.72 288.760336,1159.12 C289.107002,1158.52 289.687002,1158.22 290.500336,1158.22 C291.313669,1158.22 291.893669,1158.52 292.240336,1159.12 C292.587002,1159.72 292.760336,1160.61333 292.760336,1161.8 L292.760336,1161.8 L292.760336,1164.22 C292.760336,1165.40667 292.587002,1166.30333 292.240336,1166.91 C291.893669,1167.51667 291.313669,1167.82 290.500336,1167.82 Z M301.720153,1170 L301.720153,1160.7 L301.780153,1160.7 L302.840153,1162.9 L305.500153,1167.82 L308.220153,1162.88 L309.240153,1160.84 L309.300153,1160.84 L309.300153,1170 L312.160153,1170 L312.160153,1156.04 L308.920153,1156.04 L305.540153,1162.58 L305.500153,1162.58 L302.080153,1156.04 L298.860153,1156.04 L298.860153,1170 L301.720153,1170 Z M319.040031,1170 L319.040031,1164.92 L321.420031,1164.92 C322.780031,1164.92 323.833364,1164.52333 324.580031,1163.73 C325.326697,1162.93667 325.700031,1161.85333 325.700031,1160.48 C325.700031,1159.10667 325.326697,1158.02333 324.580031,1157.23 C323.833364,1156.43667 322.780031,1156.04 321.420031,1156.04 L321.420031,1156.04 L316.020031,1156.04 L316.020031,1170 L319.040031,1170 Z M320.660031,1162.5 L319.040031,1162.5 L319.040031,1158.46 L320.660031,1158.46 C321.353364,1158.46 321.840031,1158.59333 322.120031,1158.86 C322.400031,1159.12667 322.540031,1159.56667 322.540031,1160.18 L322.540031,1160.18 L322.540031,1160.78 C322.540031,1161.39333 322.400031,1161.83333 322.120031,1162.1 C321.840031,1162.36667 321.353364,1162.5 320.660031,1162.5 L320.660031,1162.5 Z M332.499847,1170.24 C334.339847,1170.24 335.709847,1169.62 336.609847,1168.38 C337.509847,1167.14 337.959847,1165.35333 337.959847,1163.02 C337.959847,1160.68667 337.509847,1158.9 336.609847,1157.66 C335.709847,1156.42 334.339847,1155.8 332.499847,1155.8 C330.659847,1155.8 329.289847,1156.42 328.389847,1157.66 C327.489847,1158.9 327.039847,1160.68667 327.039847,1163.02 C327.039847,1165.35333 327.489847,1167.14 328.389847,1168.38 C329.289847,1169.62 330.659847,1170.24 332.499847,1170.24 Z M332.499847,1167.82 C331.686514,1167.82 331.106514,1167.52 330.759847,1166.92 C330.413181,1166.32 330.239847,1165.42667 330.239847,1164.24 L330.239847,1164.24 L330.239847,1161.8 C330.239847,1160.61333 330.413181,1159.72 330.759847,1159.12 C331.106514,1158.52 331.686514,1158.22 332.499847,1158.22 C333.313181,1158.22 333.893181,1158.52 334.239847,1159.12 C334.586514,1159.72 334.759847,1160.61333 334.759847,1161.8 L334.759847,1161.8 L334.759847,1164.22 C334.759847,1165.40667 334.586514,1166.30333 334.239847,1166.91 C333.893181,1167.51667 333.313181,1167.82 332.499847,1167.82 Z M347.699664,1165.32 L347.699664,1162.48 L341.299664,1162.48 L341.299664,1165.32 L347.699664,1165.32 Z M291.280366,1195 L291.280366,1185.72 L291.500366,1185.72 L294.680366,1195 L298.280366,1195 L298.280366,1181.04 L295.720366,1181.04 L295.720366,1190.32 L295.500366,1190.32 L292.320366,1181.04 L288.720366,1181.04 L288.720366,1195 L291.280366,1195 Z M310.020183,1195 L310.020183,1192.54 L304.100183,1192.54 L304.100183,1189.16 L309.820183,1189.16 L309.820183,1186.7 L304.100183,1186.7 L304.100183,1183.5 L310.020183,1183.5 L310.020183,1181.04 L301.100183,1181.04 L301.100183,1195 L310.020183,1195 Z M315.28,1195 L315.28,1185.72 L315.5,1185.72 L318.68,1195 L322.28,1195 L322.28,1181.04 L319.72,1181.04 L319.72,1190.32 L319.5,1190.32 L316.32,1181.04 L312.72,1181.04 L312.72,1195 L315.28,1195 Z M330.999817,1195 L330.999817,1183.5 L335.019817,1183.5 L335.019817,1181.04 L323.979817,1181.04 L323.979817,1183.5 L327.999817,1183.5 L327.999817,1195 L330.999817,1195 Z" id="COMPO-NENT" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<path d="M1722.82052,1160.24 C1724.20719,1160.24 1725.30385,1159.89 1726.11052,1159.19 C1726.91719,1158.49 1727.46719,1157.5 1727.76052,1156.22 L1727.76052,1156.22 L1724.96052,1155.54 C1724.78719,1156.28667 1724.54052,1156.85333 1724.22052,1157.24 C1723.90052,1157.62667 1723.41385,1157.82 1722.76052,1157.82 C1721.97385,1157.82 1721.40385,1157.51333 1721.05052,1156.9 C1720.69719,1156.28667 1720.52052,1155.4 1720.52052,1154.24 L1720.52052,1154.24 L1720.52052,1151.8 C1720.52052,1150.64 1720.69719,1149.75333 1721.05052,1149.14 C1721.40385,1148.52667 1721.97385,1148.22 1722.76052,1148.22 C1723.41385,1148.22 1723.90052,1148.41333 1724.22052,1148.8 C1724.54052,1149.18667 1724.78719,1149.75333 1724.96052,1150.5 L1724.96052,1150.5 L1727.76052,1149.82 C1727.46719,1148.54 1726.91719,1147.55 1726.11052,1146.85 C1725.30385,1146.15 1724.20719,1145.8 1722.82052,1145.8 C1720.98052,1145.8 1719.60385,1146.42 1718.69052,1147.66 C1717.77719,1148.9 1717.32052,1150.68667 1717.32052,1153.02 C1717.32052,1155.35333 1717.77719,1157.14 1718.69052,1158.38 C1719.60385,1159.62 1720.98052,1160.24 1722.82052,1160.24 Z M1734.50034,1160.24 C1736.34034,1160.24 1737.71034,1159.62 1738.61034,1158.38 C1739.51034,1157.14 1739.96034,1155.35333 1739.96034,1153.02 C1739.96034,1150.68667 1739.51034,1148.9 1738.61034,1147.66 C1737.71034,1146.42 1736.34034,1145.8 1734.50034,1145.8 C1732.66034,1145.8 1731.29034,1146.42 1730.39034,1147.66 C1729.49034,1148.9 1729.04034,1150.68667 1729.04034,1153.02 C1729.04034,1155.35333 1729.49034,1157.14 1730.39034,1158.38 C1731.29034,1159.62 1732.66034,1160.24 1734.50034,1160.24 Z M1734.50034,1157.82 C1733.687,1157.82 1733.107,1157.52 1732.76034,1156.92 C1732.41367,1156.32 1732.24034,1155.42667 1732.24034,1154.24 L1732.24034,1154.24 L1732.24034,1151.8 C1732.24034,1150.61333 1732.41367,1149.72 1732.76034,1149.12 C1733.107,1148.52 1733.687,1148.22 1734.50034,1148.22 C1735.31367,1148.22 1735.89367,1148.52 1736.24034,1149.12 C1736.587,1149.72 1736.76034,1150.61333 1736.76034,1151.8 L1736.76034,1151.8 L1736.76034,1154.22 C1736.76034,1155.40667 1736.587,1156.30333 1736.24034,1156.91 C1735.89367,1157.51667 1735.31367,1157.82 1734.50034,1157.82 Z M1745.72015,1160 L1745.72015,1150.7 L1745.78015,1150.7 L1746.84015,1152.9 L1749.50015,1157.82 L1752.22015,1152.88 L1753.24015,1150.84 L1753.30015,1150.84 L1753.30015,1160 L1756.16015,1160 L1756.16015,1146.04 L1752.92015,1146.04 L1749.54015,1152.58 L1749.50015,1152.58 L1746.08015,1146.04 L1742.86015,1146.04 L1742.86015,1160 L1745.72015,1160 Z M1763.04003,1160 L1763.04003,1154.92 L1765.42003,1154.92 C1766.78003,1154.92 1767.83336,1154.52333 1768.58003,1153.73 C1769.3267,1152.93667 1769.70003,1151.85333 1769.70003,1150.48 C1769.70003,1149.10667 1769.3267,1148.02333 1768.58003,1147.23 C1767.83336,1146.43667 1766.78003,1146.04 1765.42003,1146.04 L1765.42003,1146.04 L1760.02003,1146.04 L1760.02003,1160 L1763.04003,1160 Z M1764.66003,1152.5 L1763.04003,1152.5 L1763.04003,1148.46 L1764.66003,1148.46 C1765.35336,1148.46 1765.84003,1148.59333 1766.12003,1148.86 C1766.40003,1149.12667 1766.54003,1149.56667 1766.54003,1150.18 L1766.54003,1150.18 L1766.54003,1150.78 C1766.54003,1151.39333 1766.40003,1151.83333 1766.12003,1152.1 C1765.84003,1152.36667 1765.35336,1152.5 1764.66003,1152.5 L1764.66003,1152.5 Z M1776.49985,1160.24 C1778.33985,1160.24 1779.70985,1159.62 1780.60985,1158.38 C1781.50985,1157.14 1781.95985,1155.35333 1781.95985,1153.02 C1781.95985,1150.68667 1781.50985,1148.9 1780.60985,1147.66 C1779.70985,1146.42 1778.33985,1145.8 1776.49985,1145.8 C1774.65985,1145.8 1773.28985,1146.42 1772.38985,1147.66 C1771.48985,1148.9 1771.03985,1150.68667 1771.03985,1153.02 C1771.03985,1155.35333 1771.48985,1157.14 1772.38985,1158.38 C1773.28985,1159.62 1774.65985,1160.24 1776.49985,1160.24 Z M1776.49985,1157.82 C1775.68651,1157.82 1775.10651,1157.52 1774.75985,1156.92 C1774.41318,1156.32 1774.23985,1155.42667 1774.23985,1154.24 L1774.23985,1154.24 L1774.23985,1151.8 C1774.23985,1150.61333 1774.41318,1149.72 1774.75985,1149.12 C1775.10651,1148.52 1775.68651,1148.22 1776.49985,1148.22 C1777.31318,1148.22 1777.89318,1148.52 1778.23985,1149.12 C1778.58651,1149.72 1778.75985,1150.61333 1778.75985,1151.8 L1778.75985,1151.8 L1778.75985,1154.22 C1778.75985,1155.40667 1778.58651,1156.30333 1778.23985,1156.91 C1777.89318,1157.51667 1777.31318,1157.82 1776.49985,1157.82 Z M1791.69966,1155.32 L1791.69966,1152.48 L1785.29966,1152.48 L1785.29966,1155.32 L1791.69966,1155.32 Z M1735.28037,1185 L1735.28037,1175.72 L1735.50037,1175.72 L1738.68037,1185 L1742.28037,1185 L1742.28037,1171.04 L1739.72037,1171.04 L1739.72037,1180.32 L1739.50037,1180.32 L1736.32037,1171.04 L1732.72037,1171.04 L1732.72037,1185 L1735.28037,1185 Z M1754.02018,1185 L1754.02018,1182.54 L1748.10018,1182.54 L1748.10018,1179.16 L1753.82018,1179.16 L1753.82018,1176.7 L1748.10018,1176.7 L1748.10018,1173.5 L1754.02018,1173.5 L1754.02018,1171.04 L1745.10018,1171.04 L1745.10018,1185 L1754.02018,1185 Z M1759.28,1185 L1759.28,1175.72 L1759.5,1175.72 L1762.68,1185 L1766.28,1185 L1766.28,1171.04 L1763.72,1171.04 L1763.72,1180.32 L1763.5,1180.32 L1760.32,1171.04 L1756.72,1171.04 L1756.72,1185 L1759.28,1185 Z M1774.99982,1185 L1774.99982,1173.5 L1779.01982,1173.5 L1779.01982,1171.04 L1767.97982,1171.04 L1767.97982,1173.5 L1771.99982,1173.5 L1771.99982,1185 L1774.99982,1185 Z" id="COMPO-NENT" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<path d="M1058.82052,1134.24 C1060.20719,1134.24 1061.30385,1133.89 1062.11052,1133.19 C1062.91719,1132.49 1063.46719,1131.5 1063.76052,1130.22 L1063.76052,1130.22 L1060.96052,1129.54 C1060.78719,1130.28667 1060.54052,1130.85333 1060.22052,1131.24 C1059.90052,1131.62667 1059.41385,1131.82 1058.76052,1131.82 C1057.97385,1131.82 1057.40385,1131.51333 1057.05052,1130.9 C1056.69719,1130.28667 1056.52052,1129.4 1056.52052,1128.24 L1056.52052,1128.24 L1056.52052,1125.8 C1056.52052,1124.64 1056.69719,1123.75333 1057.05052,1123.14 C1057.40385,1122.52667 1057.97385,1122.22 1058.76052,1122.22 C1059.41385,1122.22 1059.90052,1122.41333 1060.22052,1122.8 C1060.54052,1123.18667 1060.78719,1123.75333 1060.96052,1124.5 L1060.96052,1124.5 L1063.76052,1123.82 C1063.46719,1122.54 1062.91719,1121.55 1062.11052,1120.85 C1061.30385,1120.15 1060.20719,1119.8 1058.82052,1119.8 C1056.98052,1119.8 1055.60385,1120.42 1054.69052,1121.66 C1053.77719,1122.9 1053.32052,1124.68667 1053.32052,1127.02 C1053.32052,1129.35333 1053.77719,1131.14 1054.69052,1132.38 C1055.60385,1133.62 1056.98052,1134.24 1058.82052,1134.24 Z M1070.50034,1134.24 C1072.34034,1134.24 1073.71034,1133.62 1074.61034,1132.38 C1075.51034,1131.14 1075.96034,1129.35333 1075.96034,1127.02 C1075.96034,1124.68667 1075.51034,1122.9 1074.61034,1121.66 C1073.71034,1120.42 1072.34034,1119.8 1070.50034,1119.8 C1068.66034,1119.8 1067.29034,1120.42 1066.39034,1121.66 C1065.49034,1122.9 1065.04034,1124.68667 1065.04034,1127.02 C1065.04034,1129.35333 1065.49034,1131.14 1066.39034,1132.38 C1067.29034,1133.62 1068.66034,1134.24 1070.50034,1134.24 Z M1070.50034,1131.82 C1069.687,1131.82 1069.107,1131.52 1068.76034,1130.92 C1068.41367,1130.32 1068.24034,1129.42667 1068.24034,1128.24 L1068.24034,1128.24 L1068.24034,1125.8 C1068.24034,1124.61333 1068.41367,1123.72 1068.76034,1123.12 C1069.107,1122.52 1069.687,1122.22 1070.50034,1122.22 C1071.31367,1122.22 1071.89367,1122.52 1072.24034,1123.12 C1072.587,1123.72 1072.76034,1124.61333 1072.76034,1125.8 L1072.76034,1125.8 L1072.76034,1128.22 C1072.76034,1129.40667 1072.587,1130.30333 1072.24034,1130.91 C1071.89367,1131.51667 1071.31367,1131.82 1070.50034,1131.82 Z M1081.72015,1134 L1081.72015,1124.7 L1081.78015,1124.7 L1082.84015,1126.9 L1085.50015,1131.82 L1088.22015,1126.88 L1089.24015,1124.84 L1089.30015,1124.84 L1089.30015,1134 L1092.16015,1134 L1092.16015,1120.04 L1088.92015,1120.04 L1085.54015,1126.58 L1085.50015,1126.58 L1082.08015,1120.04 L1078.86015,1120.04 L1078.86015,1134 L1081.72015,1134 Z M1099.04003,1134 L1099.04003,1128.92 L1101.42003,1128.92 C1102.78003,1128.92 1103.83336,1128.52333 1104.58003,1127.73 C1105.3267,1126.93667 1105.70003,1125.85333 1105.70003,1124.48 C1105.70003,1123.10667 1105.3267,1122.02333 1104.58003,1121.23 C1103.83336,1120.43667 1102.78003,1120.04 1101.42003,1120.04 L1101.42003,1120.04 L1096.02003,1120.04 L1096.02003,1134 L1099.04003,1134 Z M1100.66003,1126.5 L1099.04003,1126.5 L1099.04003,1122.46 L1100.66003,1122.46 C1101.35336,1122.46 1101.84003,1122.59333 1102.12003,1122.86 C1102.40003,1123.12667 1102.54003,1123.56667 1102.54003,1124.18 L1102.54003,1124.18 L1102.54003,1124.78 C1102.54003,1125.39333 1102.40003,1125.83333 1102.12003,1126.1 C1101.84003,1126.36667 1101.35336,1126.5 1100.66003,1126.5 L1100.66003,1126.5 Z M1112.49985,1134.24 C1114.33985,1134.24 1115.70985,1133.62 1116.60985,1132.38 C1117.50985,1131.14 1117.95985,1129.35333 1117.95985,1127.02 C1117.95985,1124.68667 1117.50985,1122.9 1116.60985,1121.66 C1115.70985,1120.42 1114.33985,1119.8 1112.49985,1119.8 C1110.65985,1119.8 1109.28985,1120.42 1108.38985,1121.66 C1107.48985,1122.9 1107.03985,1124.68667 1107.03985,1127.02 C1107.03985,1129.35333 1107.48985,1131.14 1108.38985,1132.38 C1109.28985,1133.62 1110.65985,1134.24 1112.49985,1134.24 Z M1112.49985,1131.82 C1111.68651,1131.82 1111.10651,1131.52 1110.75985,1130.92 C1110.41318,1130.32 1110.23985,1129.42667 1110.23985,1128.24 L1110.23985,1128.24 L1110.23985,1125.8 C1110.23985,1124.61333 1110.41318,1123.72 1110.75985,1123.12 C1111.10651,1122.52 1111.68651,1122.22 1112.49985,1122.22 C1113.31318,1122.22 1113.89318,1122.52 1114.23985,1123.12 C1114.58651,1123.72 1114.75985,1124.61333 1114.75985,1125.8 L1114.75985,1125.8 L1114.75985,1128.22 C1114.75985,1129.40667 1114.58651,1130.30333 1114.23985,1130.91 C1113.89318,1131.51667 1113.31318,1131.82 1112.49985,1131.82 Z M1127.69966,1129.32 L1127.69966,1126.48 L1121.29966,1126.48 L1121.29966,1129.32 L1127.69966,1129.32 Z M1071.28037,1159 L1071.28037,1149.72 L1071.50037,1149.72 L1074.68037,1159 L1078.28037,1159 L1078.28037,1145.04 L1075.72037,1145.04 L1075.72037,1154.32 L1075.50037,1154.32 L1072.32037,1145.04 L1068.72037,1145.04 L1068.72037,1159 L1071.28037,1159 Z M1090.02018,1159 L1090.02018,1156.54 L1084.10018,1156.54 L1084.10018,1153.16 L1089.82018,1153.16 L1089.82018,1150.7 L1084.10018,1150.7 L1084.10018,1147.5 L1090.02018,1147.5 L1090.02018,1145.04 L1081.10018,1145.04 L1081.10018,1159 L1090.02018,1159 Z M1095.28,1159 L1095.28,1149.72 L1095.5,1149.72 L1098.68,1159 L1102.28,1159 L1102.28,1145.04 L1099.72,1145.04 L1099.72,1154.32 L1099.5,1154.32 L1096.32,1145.04 L1092.72,1145.04 L1092.72,1159 L1095.28,1159 Z M1110.99982,1159 L1110.99982,1147.5 L1115.01982,1147.5 L1115.01982,1145.04 L1103.97982,1145.04 L1103.97982,1147.5 L1107.99982,1147.5 L1107.99982,1159 L1110.99982,1159 Z" id="COMPO-NENT" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<text id="ENTITY" font-family="iAWriterQuattroV-Bold, iA Writer Quattro V" font-size="20" font-weight="bold" fill="#000000" fill-opacity="0.85">
<tspan x="674.00058" y="269">ENTITY</tspan>
</text>
<path d="M706.5,194.732051 L762.590689,227.116025 L762.590689,291.883975 L706.5,324.267949 L650.409311,291.883975 L650.409311,227.116025 L706.5,194.732051 Z" id="Polygon-Copy-7" stroke="#55D4F5" stroke-width="3" fill="#FFFFFF"></path>
<path d="M571.5,194.732051 L627.590689,227.116025 L627.590689,291.883975 L571.5,324.267949 L515.409311,291.883975 L515.409311,227.116025 L571.5,194.732051 Z" id="Polygon-Copy-8" stroke="#55D4F5" stroke-width="3" fill="#FFFFFF"></path>
<path d="M695.000275,255.24 C696.320275,255.24 697.333608,255.03 698.040275,254.61 C698.746941,254.19 699.233608,253.57 699.500275,252.75 C699.766941,251.93 699.900275,250.84 699.900275,249.48 L699.900275,249.48 L699.900275,241.04 L696.900275,241.04 L696.900275,249.88 C696.900275,250.573333 696.860275,251.12 696.780275,251.52 C696.700275,251.92 696.523608,252.236667 696.250275,252.47 C695.976941,252.703333 695.560275,252.82 695.000275,252.82 C694.440275,252.82 694.023608,252.703333 693.750275,252.47 C693.476941,252.236667 693.300275,251.92 693.220275,251.52 C693.140275,251.12 693.100275,250.573333 693.100275,249.88 L693.100275,249.88 L693.100275,241.04 L690.100275,241.04 L690.100275,249.48 C690.100275,250.84 690.233608,251.93 690.500275,252.75 C690.766941,253.57 691.253608,254.19 691.960275,254.61 C692.666941,255.03 693.680275,255.24 695.000275,255.24 Z M706.780092,255.24 C707.913425,255.24 708.883425,255.046667 709.690092,254.66 C710.496758,254.273333 711.103425,253.736667 711.510092,253.05 C711.916758,252.363333 712.120092,251.58 712.120092,250.7 C712.120092,249.62 711.813425,248.746667 711.200092,248.08 C710.586758,247.413333 709.713425,246.98 708.580092,246.78 L708.580092,246.78 L707.120092,246.52 C706.426758,246.4 705.933425,246.216667 705.640092,245.97 C705.346758,245.723333 705.200092,245.366667 705.200092,244.9 C705.200092,244.353333 705.370092,243.94 705.710092,243.66 C706.050092,243.38 706.553425,243.24 707.220092,243.24 C707.833425,243.24 708.400092,243.353333 708.920092,243.58 C709.440092,243.806667 709.886758,244.133333 710.260092,244.56 L710.260092,244.56 L711.960092,242.66 C711.453425,242.073333 710.793425,241.616667 709.980092,241.29 C709.166758,240.963333 708.240092,240.8 707.200092,240.8 C705.613425,240.8 704.380092,241.173333 703.500092,241.92 C702.620092,242.666667 702.180092,243.706667 702.180092,245.04 C702.180092,246.106667 702.473425,246.99 703.060092,247.69 C703.646758,248.39 704.540092,248.84 705.740092,249.04 L705.740092,249.04 L707.200092,249.28 C707.880092,249.386667 708.363425,249.566667 708.650092,249.82 C708.936758,250.073333 709.080092,250.446667 709.080092,250.94 C709.080092,251.54 708.890092,252 708.510092,252.32 C708.130092,252.64 707.586758,252.8 706.880092,252.8 C706.240092,252.8 705.616758,252.663333 705.010092,252.39 C704.403425,252.116667 703.853425,251.706667 703.360092,251.16 L703.360092,251.16 L701.620092,253.08 C702.166758,253.76 702.880092,254.29 703.760092,254.67 C704.640092,255.05 705.646758,255.24 706.780092,255.24 Z M723.519908,255 L723.519908,252.54 L717.599908,252.54 L717.599908,249.16 L723.319908,249.16 L723.319908,246.7 L717.599908,246.7 L717.599908,243.5 L723.519908,243.5 L723.519908,241.04 L714.599908,241.04 L714.599908,255 L723.519908,255 Z M689.320366,280.24 C690.707033,280.24 691.8037,279.89 692.610366,279.19 C693.417033,278.49 693.967033,277.5 694.260366,276.22 L694.260366,276.22 L691.460366,275.54 C691.287033,276.286667 691.040366,276.853333 690.720366,277.24 C690.400366,277.626667 689.9137,277.82 689.260366,277.82 C688.4737,277.82 687.9037,277.513333 687.550366,276.9 C687.197033,276.286667 687.020366,275.4 687.020366,274.24 L687.020366,274.24 L687.020366,271.8 C687.020366,270.64 687.197033,269.753333 687.550366,269.14 C687.9037,268.526667 688.4737,268.22 689.260366,268.22 C689.9137,268.22 690.400366,268.413333 690.720366,268.8 C691.040366,269.186667 691.287033,269.753333 691.460366,270.5 L691.460366,270.5 L694.260366,269.82 C693.967033,268.54 693.417033,267.55 692.610366,266.85 C691.8037,266.15 690.707033,265.8 689.320366,265.8 C687.480366,265.8 686.1037,266.42 685.190366,267.66 C684.277033,268.9 683.820366,270.686667 683.820366,273.02 C683.820366,275.353333 684.277033,277.14 685.190366,278.38 C686.1037,279.62 687.480366,280.24 689.320366,280.24 Z M698.140183,280 L699.000183,276.64 L702.820183,276.64 L703.700183,280 L706.900183,280 L703.120183,266.04 L698.880183,266.04 L695.100183,280 L698.140183,280 Z M702.360183,274.22 L699.480183,274.22 L700.840183,268.94 L701.000183,268.94 L702.360183,274.22 Z M712.78,280.24 C713.913333,280.24 714.883333,280.046667 715.69,279.66 C716.496667,279.273333 717.103333,278.736667 717.51,278.05 C717.916667,277.363333 718.12,276.58 718.12,275.7 C718.12,274.62 717.813333,273.746667 717.2,273.08 C716.586667,272.413333 715.713333,271.98 714.58,271.78 L714.58,271.78 L713.12,271.52 C712.426667,271.4 711.933333,271.216667 711.64,270.97 C711.346667,270.723333 711.2,270.366667 711.2,269.9 C711.2,269.353333 711.37,268.94 711.71,268.66 C712.05,268.38 712.553333,268.24 713.22,268.24 C713.833333,268.24 714.4,268.353333 714.92,268.58 C715.44,268.806667 715.886667,269.133333 716.26,269.56 L716.26,269.56 L717.96,267.66 C717.453333,267.073333 716.793333,266.616667 715.98,266.29 C715.166667,265.963333 714.24,265.8 713.2,265.8 C711.613333,265.8 710.38,266.173333 709.5,266.92 C708.62,267.666667 708.18,268.706667 708.18,270.04 C708.18,271.106667 708.473333,271.99 709.06,272.69 C709.646667,273.39 710.54,273.84 711.74,274.04 L711.74,274.04 L713.2,274.28 C713.88,274.386667 714.363333,274.566667 714.65,274.82 C714.936667,275.073333 715.08,275.446667 715.08,275.94 C715.08,276.54 714.89,277 714.51,277.32 C714.13,277.64 713.586667,277.8 712.88,277.8 C712.24,277.8 711.616667,277.663333 711.01,277.39 C710.403333,277.116667 709.853333,276.706667 709.36,276.16 L709.36,276.16 L707.62,278.08 C708.166667,278.76 708.88,279.29 709.76,279.67 C710.64,280.05 711.646667,280.24 712.78,280.24 Z M729.519817,280 L729.519817,277.54 L723.599817,277.54 L723.599817,274.16 L729.319817,274.16 L729.319817,271.7 L723.599817,271.7 L723.599817,268.5 L729.519817,268.5 L729.519817,266.04 L720.599817,266.04 L720.599817,280 L729.519817,280 Z" id="USECASE" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<path d="M549.52058,269 L549.52058,266.54 L543.60058,266.54 L543.60058,263.16 L549.32058,263.16 L549.32058,260.7 L543.60058,260.7 L543.60058,257.5 L549.52058,257.5 L549.52058,255.04 L540.60058,255.04 L540.60058,269 L549.52058,269 Z M554.780397,269 L554.780397,259.72 L555.000397,259.72 L558.180397,269 L561.780397,269 L561.780397,255.04 L559.220397,255.04 L559.220397,264.32 L559.000397,264.32 L555.820397,255.04 L552.220397,255.04 L552.220397,269 L554.780397,269 Z M570.500214,269 L570.500214,257.5 L574.520214,257.5 L574.520214,255.04 L563.480214,255.04 L563.480214,257.5 L567.500214,257.5 L567.500214,269 L570.500214,269 Z M579.500031,269 L579.500031,255.04 L576.500031,255.04 L576.500031,269 L579.500031,269 Z M588.499786,269 L588.499786,257.5 L592.519786,257.5 L592.519786,255.04 L581.479786,255.04 L581.479786,257.5 L585.499786,257.5 L585.499786,269 L588.499786,269 Z M600.499603,269 L600.499603,264.06 L604.919603,255.04 L601.699603,255.04 L600.219603,258.28 L599.139603,261.02 L598.979603,261.02 L597.899603,258.28 L596.419603,255.04 L593.079603,255.04 L597.499603,264.06 L597.499603,269 L600.499603,269 Z" id="ENTITY" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<polygon id="Polygon-Copy-6" fill="#55D4F5" points="1414.5 6 1761.34317 206.25 1761.34317 606.75 1414.5 807 1067.65683 606.75 1067.65683 206.25"></polygon>
<path d="M1488,115.886751 L1680.35572,226.943376 L1680.35572,449.056624 L1488,560.113249 L1295.64428,449.056624 L1295.64428,226.943376 L1488,115.886751 Z" id="Polygon-Copy-6" stroke="#55D4F5" stroke-width="5" fill="#FFFFFF"></path>
<path d="M1205.06137,628 L1211.01337,598.368 L1211.33337,598.368 L1214.46937,606.112 L1219.84537,620.64 L1230.40537,607.072 L1237.18937,598.496 L1237.57337,598.496 L1231.62137,628 L1240.45337,628 L1249.41337,583.328 L1239.10937,583.328 L1222.91737,604.576 L1222.66137,604.576 L1214.91737,583.328 L1205.18937,583.328 L1196.22937,628 L1205.06137,628 Z M1268.35698,628.768 C1272.87964,628.768 1276.64498,627.424 1279.65298,624.736 C1282.66098,622.048 1284.86898,618.485333 1286.27698,614.048 C1287.68498,609.610667 1288.38898,604.725333 1288.38898,599.392 C1288.38898,594.016 1287.10898,589.866667 1284.54898,586.944 C1281.98898,584.021333 1278.08498,582.56 1272.83698,582.56 C1268.31431,582.56 1264.54898,583.904 1261.54098,586.592 C1258.53298,589.28 1256.32498,592.842667 1254.91698,597.28 C1253.50898,601.717333 1252.80498,606.602667 1252.80498,611.936 C1252.80498,617.312 1254.08498,621.461333 1256.64498,624.384 C1259.20498,627.306667 1263.10898,628.768 1268.35698,628.768 Z M1268.35698,621.088 C1266.39431,621.088 1264.92231,620.48 1263.94098,619.264 C1262.95964,618.048 1262.46898,616.309333 1262.46898,614.048 C1262.46898,612.512 1262.59698,610.976 1262.85298,609.44 L1262.85298,609.44 L1264.13298,601.76 C1264.77298,597.877333 1265.74364,594.986667 1267.04498,593.088 C1268.34631,591.189333 1270.27698,590.24 1272.83698,590.24 C1274.79964,590.24 1276.27164,590.848 1277.25298,592.064 C1278.23431,593.28 1278.72498,595.018667 1278.72498,597.28 C1278.72498,598.816 1278.59698,600.352 1278.34098,601.888 L1278.34098,601.888 L1277.06098,609.568 C1276.42098,613.450667 1275.45031,616.341333 1274.14898,618.24 C1272.84764,620.138667 1270.91698,621.088 1268.35698,621.088 Z M1305.02839,628 C1309.59372,628 1313.48706,626.88 1316.70839,624.64 C1319.92972,622.4 1322.37239,619.168 1324.03639,614.944 C1325.70039,610.72 1326.53239,605.664 1326.53239,599.776 C1326.53239,594.485333 1325.20972,590.421333 1322.56439,587.584 C1319.91906,584.746667 1316.10039,583.328 1311.10839,583.328 L1311.10839,583.328 L1297.98839,583.328 L1290.50039,628 L1305.02839,628 Z M1305.22039,620.512 L1301.18839,620.512 L1306.11639,590.816 L1310.27639,590.816 C1312.53772,590.816 1314.22306,591.402667 1315.33239,592.576 C1316.44172,593.749333 1316.99639,595.552 1316.99639,597.984 C1316.99639,599.349333 1316.86839,600.8 1316.61239,602.336 L1316.61239,602.336 L1315.26839,610.4 C1314.71372,613.856 1313.61506,616.405333 1311.97239,618.048 C1310.32972,619.690667 1308.07906,620.512 1305.22039,620.512 L1305.22039,620.512 Z M1358.2758,628 L1359.5558,620.192 L1340.4198,620.192 L1342.2118,609.312 L1360.5798,609.312 L1361.8598,601.504 L1343.5558,601.504 L1345.2838,591.136 L1364.4838,591.136 L1365.7638,583.328 L1337.2198,583.328 L1329.7318,628 L1358.2758,628 Z M1397.76322,628 L1399.04322,620.192 L1379.71522,620.192 L1385.85922,583.328 L1376.38722,583.328 L1368.96322,628 L1397.76322,628 Z" id="MODEL" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M1342.3651,406.576 C1345.1491,406.576 1347.5491,406.088 1349.5651,405.112 C1351.5811,404.136 1353.1171,402.776 1354.1731,401.032 C1355.2291,399.288 1355.7571,397.264 1355.7571,394.96 C1355.7571,392.688 1355.1811,390.856 1354.0291,389.464 C1352.8771,388.072 1351.1171,387.072 1348.7491,386.464 L1348.7491,386.464 L1345.5811,385.648 C1344.0771,385.264 1343.0291,384.816 1342.4371,384.304 C1341.8451,383.792 1341.5491,383.056 1341.5491,382.096 C1341.5491,380.72 1341.9891,379.64 1342.8691,378.856 C1343.7491,378.072 1345.0531,377.68 1346.7811,377.68 C1348.1891,377.68 1349.4531,377.96 1350.5731,378.52 C1351.6931,379.08 1352.6211,379.872 1353.3571,380.896 L1353.3571,380.896 L1358.0131,376.624 C1357.0531,375.152 1355.5971,374 1353.6451,373.168 C1351.6931,372.336 1349.5171,371.92 1347.1171,371.92 C1344.4931,371.92 1342.2051,372.368 1340.2531,373.264 C1338.3011,374.16 1336.8051,375.432 1335.7651,377.08 C1334.7251,378.728 1334.2051,380.656 1334.2051,382.864 C1334.2051,385.008 1334.7811,386.808 1335.9331,388.264 C1337.0851,389.72 1338.8291,390.72 1341.1651,391.264 L1341.1651,391.264 L1344.4771,392.032 C1345.8531,392.352 1346.8451,392.784 1347.4531,393.328 C1348.0611,393.872 1348.3651,394.688 1348.3651,395.776 C1348.3651,397.344 1347.8851,398.56 1346.9251,399.424 C1345.9651,400.288 1344.5891,400.72 1342.7971,400.72 C1341.2291,400.72 1339.7011,400.392 1338.2131,399.736 C1336.7251,399.08 1335.5011,398.144 1334.5411,396.928 L1334.5411,396.928 L1330.0771,401.44 C1331.0691,403.04 1332.6691,404.296 1334.8771,405.208 C1337.0851,406.12 1339.5811,406.576 1342.3651,406.576 Z M1374.18866,406 L1378.79666,378.352 L1388.49266,378.352 L1389.45266,372.496 L1362.95666,372.496 L1361.99666,378.352 L1371.69266,378.352 L1367.08466,406 L1374.18866,406 Z M1392.76422,406 L1396.07622,397.888 L1405.48422,397.888 L1406.30022,406 L1413.59622,406 L1409.94822,372.496 L1400.06022,372.496 L1385.32422,406 L1392.76422,406 Z M1405.19622,392.128 L1398.47622,392.128 L1403.75622,379.456 L1404.18822,379.456 L1405.19622,392.128 Z M1431.78778,406 L1436.39578,378.352 L1446.09178,378.352 L1447.05178,372.496 L1420.55578,372.496 L1419.59578,378.352 L1429.29178,378.352 L1424.68378,406 L1431.78778,406 Z M1467.93134,406 L1468.89134,400.144 L1454.53934,400.144 L1455.88334,391.984 L1469.65934,391.984 L1470.61934,386.128 L1456.89134,386.128 L1458.18734,378.352 L1472.58734,378.352 L1473.54734,372.496 L1452.13934,372.496 L1446.52334,406 L1467.93134,406 Z" id="STATE" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<polygon id="Polygon-Copy-4" fill="#55D4F5" points="1603.5 312 1661.09069 345.5 1661.09069 412.5 1603.5 446 1545.90931 412.5 1545.90931 345.5"></polygon>
<path d="M1578.32046,374 L1578.32046,368.68 L1579.84046,368.68 L1582.36046,374 L1585.40046,374 L1582.52046,368.34 C1583.34712,368.14 1583.99046,367.686667 1584.45046,366.98 C1584.91046,366.273333 1585.14046,365.413333 1585.14046,364.4 C1585.14046,363.053333 1584.77379,361.99 1584.04046,361.21 C1583.30712,360.43 1582.26712,360.04 1580.92046,360.04 L1580.92046,360.04 L1575.56046,360.04 L1575.56046,374 L1578.32046,374 Z M1580.30046,366.52 L1578.32046,366.52 L1578.32046,362.3 L1580.30046,362.3 C1581.00712,362.3 1581.50712,362.44 1581.80046,362.72 C1582.09379,363 1582.24046,363.453333 1582.24046,364.08 L1582.24046,364.08 L1582.24046,364.74 C1582.24046,365.366667 1582.09379,365.82 1581.80046,366.1 C1581.50712,366.38 1581.00712,366.52 1580.30046,366.52 L1580.30046,366.52 Z M1596.50027,374 L1596.50027,371.7 L1590.42027,371.7 L1590.42027,368.08 L1596.30027,368.08 L1596.30027,365.78 L1590.42027,365.78 L1590.42027,362.34 L1596.50027,362.34 L1596.50027,360.04 L1587.64027,360.04 L1587.64027,374 L1596.50027,374 Z M1602.36009,374 L1602.36009,368.78 L1604.92009,368.78 C1606.26676,368.78 1607.30676,368.39 1608.04009,367.61 C1608.77342,366.83 1609.14009,365.76 1609.14009,364.4 C1609.14009,363.053333 1608.77342,361.99 1608.04009,361.21 C1607.30676,360.43 1606.26676,360.04 1604.92009,360.04 L1604.92009,360.04 L1599.56009,360.04 L1599.56009,374 L1602.36009,374 Z M1604.28009,366.52 L1602.36009,366.52 L1602.36009,362.3 L1604.28009,362.3 C1604.97342,362.3 1605.47009,362.44 1605.77009,362.72 C1606.07009,363 1606.22009,363.453333 1606.22009,364.08 L1606.22009,364.08 L1606.22009,364.74 C1606.22009,365.366667 1606.07009,365.82 1605.77009,366.1 C1605.47009,366.38 1604.97342,366.52 1604.28009,366.52 L1604.28009,366.52 Z M1615.99991,374.24 C1617.81324,374.24 1619.15991,373.62 1620.03991,372.38 C1620.91991,371.14 1621.35991,369.353333 1621.35991,367.02 C1621.35991,364.686667 1620.91991,362.9 1620.03991,361.66 C1619.15991,360.42 1617.81324,359.8 1615.99991,359.8 C1614.18658,359.8 1612.83991,360.42 1611.95991,361.66 C1611.07991,362.9 1610.63991,364.686667 1610.63991,367.02 C1610.63991,369.353333 1611.07991,371.14 1611.95991,372.38 C1612.83991,373.62 1614.18658,374.24 1615.99991,374.24 Z M1615.99991,371.98 C1615.14658,371.98 1614.53324,371.663333 1614.15991,371.03 C1613.78658,370.396667 1613.59991,369.46 1613.59991,368.22 L1613.59991,368.22 L1613.59991,365.82 C1613.59991,364.58 1613.78658,363.643333 1614.15991,363.01 C1614.53324,362.376667 1615.14658,362.06 1615.99991,362.06 C1616.85324,362.06 1617.46658,362.376667 1617.83991,363.01 C1618.21324,363.643333 1618.39991,364.58 1618.39991,365.82 L1618.39991,365.82 L1618.39991,368.2 C1618.39991,369.44 1618.21324,370.38 1617.83991,371.02 C1617.46658,371.66 1616.85324,371.98 1615.99991,371.98 Z M1631.13973,369.22 L1631.13973,366.58 L1624.85973,366.58 L1624.85973,369.22 L1631.13973,369.22 Z M1576.82058,399.24 C1577.92725,399.24 1578.87725,399.05 1579.67058,398.67 C1580.46391,398.29 1581.06391,397.763333 1581.47058,397.09 C1581.87725,396.416667 1582.08058,395.64 1582.08058,394.76 C1582.08058,393.706667 1581.77725,392.846667 1581.17058,392.18 C1580.56391,391.513333 1579.68058,391.073333 1578.52058,390.86 L1578.52058,390.86 L1577.04058,390.6 C1576.30725,390.48 1575.78725,390.283333 1575.48058,390.01 C1575.17391,389.736667 1575.02058,389.353333 1575.02058,388.86 C1575.02058,388.273333 1575.20391,387.83 1575.57058,387.53 C1575.93725,387.23 1576.47391,387.08 1577.18058,387.08 C1577.83391,387.08 1578.42391,387.196667 1578.95058,387.43 C1579.47725,387.663333 1579.92725,388.006667 1580.30058,388.46 L1580.30058,388.46 L1581.92058,386.7 C1581.41391,386.1 1580.75725,385.633333 1579.95058,385.3 C1579.14391,384.966667 1578.22058,384.8 1577.18058,384.8 C1575.60725,384.8 1574.38725,385.166667 1573.52058,385.9 C1572.65391,386.633333 1572.22058,387.66 1572.22058,388.98 C1572.22058,390.033333 1572.51058,390.906667 1573.09058,391.6 C1573.67058,392.293333 1574.56725,392.74 1575.78058,392.94 L1575.78058,392.94 L1577.26058,393.18 C1577.98058,393.3 1578.49391,393.496667 1578.80058,393.77 C1579.10725,394.043333 1579.26058,394.446667 1579.26058,394.98 C1579.26058,395.62 1579.05725,396.11 1578.65058,396.45 C1578.24391,396.79 1577.66058,396.96 1576.90058,396.96 C1576.23391,396.96 1575.59725,396.82 1574.99058,396.54 C1574.38391,396.26 1573.82725,395.833333 1573.32058,395.26 L1573.32058,395.26 L1571.66058,397.02 C1572.22058,397.726667 1572.93391,398.273333 1573.80058,398.66 C1574.66725,399.046667 1575.67391,399.24 1576.82058,399.24 Z M1587.3804,399 L1587.3804,385.04 L1584.6204,385.04 L1584.6204,399 L1587.3804,399 Z M1596.38015,399 L1596.38015,387.34 L1600.52015,387.34 L1600.52015,385.04 L1589.48015,385.04 L1589.48015,387.34 L1593.62015,387.34 L1593.62015,399 L1596.38015,399 Z M1606.99997,399.24 C1608.8133,399.24 1610.15997,398.62 1611.03997,397.38 C1611.91997,396.14 1612.35997,394.353333 1612.35997,392.02 C1612.35997,389.686667 1611.91997,387.9 1611.03997,386.66 C1610.15997,385.42 1608.8133,384.8 1606.99997,384.8 C1605.18664,384.8 1603.83997,385.42 1602.95997,386.66 C1602.07997,387.9 1601.63997,389.686667 1601.63997,392.02 C1601.63997,394.353333 1602.07997,396.14 1602.95997,397.38 C1603.83997,398.62 1605.18664,399.24 1606.99997,399.24 Z M1606.99997,396.98 C1606.14664,396.98 1605.5333,396.663333 1605.15997,396.03 C1604.78664,395.396667 1604.59997,394.46 1604.59997,393.22 L1604.59997,393.22 L1604.59997,390.82 C1604.59997,389.58 1604.78664,388.643333 1605.15997,388.01 C1605.5333,387.376667 1606.14664,387.06 1606.99997,387.06 C1607.8533,387.06 1608.46664,387.376667 1608.83997,388.01 C1609.2133,388.643333 1609.39997,389.58 1609.39997,390.82 L1609.39997,390.82 L1609.39997,393.2 C1609.39997,394.44 1609.2133,395.38 1608.83997,396.02 C1608.46664,396.66 1607.8533,396.98 1606.99997,396.98 Z M1617.31979,399 L1617.31979,393.68 L1618.83979,393.68 L1621.35979,399 L1624.39979,399 L1621.51979,393.34 C1622.34645,393.14 1622.98979,392.686667 1623.44979,391.98 C1623.90979,391.273333 1624.13979,390.413333 1624.13979,389.4 C1624.13979,388.053333 1623.77312,386.99 1623.03979,386.21 C1622.30645,385.43 1621.26645,385.04 1619.91979,385.04 L1619.91979,385.04 L1614.55979,385.04 L1614.55979,399 L1617.31979,399 Z M1619.29979,391.52 L1617.31979,391.52 L1617.31979,387.3 L1619.29979,387.3 C1620.00645,387.3 1620.50645,387.44 1620.79979,387.72 C1621.09312,388 1621.23979,388.453333 1621.23979,389.08 L1621.23979,389.08 L1621.23979,389.74 C1621.23979,390.366667 1621.09312,390.82 1620.79979,391.1 C1620.50645,391.38 1620.00645,391.52 1619.29979,391.52 L1619.29979,391.52 Z M1632.3796,399 L1632.3796,393.96 L1636.8796,385.04 L1633.8796,385.04 L1632.3196,388.34 L1631.1196,391.16 L1630.9796,391.16 L1629.7996,388.34 L1628.2196,385.04 L1625.1196,385.04 L1629.6196,393.96 L1629.6196,399 L1632.3796,399 Z" id="REPO-SITORY" fill="#FFFFFF" fill-rule="nonzero"></path>
<path d="M1536.5,197.732051 L1592.59069,230.116025 L1592.59069,294.883975 L1536.5,327.267949 L1480.40931,294.883975 L1480.40931,230.116025 L1536.5,197.732051 Z" id="Polygon-Copy-7" stroke="#55D4F5" stroke-width="3" fill="#FFFFFF"></path>
<text id="ENTITY" font-family="iAWriterQuattroV-Bold, iA Writer Quattro V" font-size="20" font-weight="bold" fill="#000000" fill-opacity="0.85">
<tspan x="1504.00058" y="272">ENTITY</tspan>
</text>
<path d="M1536.5,197.732051 L1592.59069,230.116025 L1592.59069,294.883975 L1536.5,327.267949 L1480.40931,294.883975 L1480.40931,230.116025 L1536.5,197.732051 Z" id="Polygon-Copy-7" stroke="#55D4F5" stroke-width="3" fill="#FFFFFF"></path>
<path d="M1401.5,197.732051 L1457.59069,230.116025 L1457.59069,294.883975 L1401.5,327.267949 L1345.40931,294.883975 L1345.40931,230.116025 L1401.5,197.732051 Z" id="Polygon-Copy-8" stroke="#55D4F5" stroke-width="3" fill="#FFFFFF"></path>
<path d="M1525.00027,258.24 C1526.32027,258.24 1527.33361,258.03 1528.04027,257.61 C1528.74694,257.19 1529.23361,256.57 1529.50027,255.75 C1529.76694,254.93 1529.90027,253.84 1529.90027,252.48 L1529.90027,252.48 L1529.90027,244.04 L1526.90027,244.04 L1526.90027,252.88 C1526.90027,253.573333 1526.86027,254.12 1526.78027,254.52 C1526.70027,254.92 1526.52361,255.236667 1526.25027,255.47 C1525.97694,255.703333 1525.56027,255.82 1525.00027,255.82 C1524.44027,255.82 1524.02361,255.703333 1523.75027,255.47 C1523.47694,255.236667 1523.30027,254.92 1523.22027,254.52 C1523.14027,254.12 1523.10027,253.573333 1523.10027,252.88 L1523.10027,252.88 L1523.10027,244.04 L1520.10027,244.04 L1520.10027,252.48 C1520.10027,253.84 1520.23361,254.93 1520.50027,255.75 C1520.76694,256.57 1521.25361,257.19 1521.96027,257.61 C1522.66694,258.03 1523.68027,258.24 1525.00027,258.24 Z M1536.78009,258.24 C1537.91342,258.24 1538.88342,258.046667 1539.69009,257.66 C1540.49676,257.273333 1541.10342,256.736667 1541.51009,256.05 C1541.91676,255.363333 1542.12009,254.58 1542.12009,253.7 C1542.12009,252.62 1541.81342,251.746667 1541.20009,251.08 C1540.58676,250.413333 1539.71342,249.98 1538.58009,249.78 L1538.58009,249.78 L1537.12009,249.52 C1536.42676,249.4 1535.93342,249.216667 1535.64009,248.97 C1535.34676,248.723333 1535.20009,248.366667 1535.20009,247.9 C1535.20009,247.353333 1535.37009,246.94 1535.71009,246.66 C1536.05009,246.38 1536.55342,246.24 1537.22009,246.24 C1537.83342,246.24 1538.40009,246.353333 1538.92009,246.58 C1539.44009,246.806667 1539.88676,247.133333 1540.26009,247.56 L1540.26009,247.56 L1541.96009,245.66 C1541.45342,245.073333 1540.79342,244.616667 1539.98009,244.29 C1539.16676,243.963333 1538.24009,243.8 1537.20009,243.8 C1535.61342,243.8 1534.38009,244.173333 1533.50009,244.92 C1532.62009,245.666667 1532.18009,246.706667 1532.18009,248.04 C1532.18009,249.106667 1532.47342,249.99 1533.06009,250.69 C1533.64676,251.39 1534.54009,251.84 1535.74009,252.04 L1535.74009,252.04 L1537.20009,252.28 C1537.88009,252.386667 1538.36342,252.566667 1538.65009,252.82 C1538.93676,253.073333 1539.08009,253.446667 1539.08009,253.94 C1539.08009,254.54 1538.89009,255 1538.51009,255.32 C1538.13009,255.64 1537.58676,255.8 1536.88009,255.8 C1536.24009,255.8 1535.61676,255.663333 1535.01009,255.39 C1534.40342,255.116667 1533.85342,254.706667 1533.36009,254.16 L1533.36009,254.16 L1531.62009,256.08 C1532.16676,256.76 1532.88009,257.29 1533.76009,257.67 C1534.64009,258.05 1535.64676,258.24 1536.78009,258.24 Z M1553.51991,258 L1553.51991,255.54 L1547.59991,255.54 L1547.59991,252.16 L1553.31991,252.16 L1553.31991,249.7 L1547.59991,249.7 L1547.59991,246.5 L1553.51991,246.5 L1553.51991,244.04 L1544.59991,244.04 L1544.59991,258 L1553.51991,258 Z M1519.32037,283.24 C1520.70703,283.24 1521.8037,282.89 1522.61037,282.19 C1523.41703,281.49 1523.96703,280.5 1524.26037,279.22 L1524.26037,279.22 L1521.46037,278.54 C1521.28703,279.286667 1521.04037,279.853333 1520.72037,280.24 C1520.40037,280.626667 1519.9137,280.82 1519.26037,280.82 C1518.4737,280.82 1517.9037,280.513333 1517.55037,279.9 C1517.19703,279.286667 1517.02037,278.4 1517.02037,277.24 L1517.02037,277.24 L1517.02037,274.8 C1517.02037,273.64 1517.19703,272.753333 1517.55037,272.14 C1517.9037,271.526667 1518.4737,271.22 1519.26037,271.22 C1519.9137,271.22 1520.40037,271.413333 1520.72037,271.8 C1521.04037,272.186667 1521.28703,272.753333 1521.46037,273.5 L1521.46037,273.5 L1524.26037,272.82 C1523.96703,271.54 1523.41703,270.55 1522.61037,269.85 C1521.8037,269.15 1520.70703,268.8 1519.32037,268.8 C1517.48037,268.8 1516.1037,269.42 1515.19037,270.66 C1514.27703,271.9 1513.82037,273.686667 1513.82037,276.02 C1513.82037,278.353333 1514.27703,280.14 1515.19037,281.38 C1516.1037,282.62 1517.48037,283.24 1519.32037,283.24 Z M1528.14018,283 L1529.00018,279.64 L1532.82018,279.64 L1533.70018,283 L1536.90018,283 L1533.12018,269.04 L1528.88018,269.04 L1525.10018,283 L1528.14018,283 Z M1532.36018,277.22 L1529.48018,277.22 L1530.84018,271.94 L1531.00018,271.94 L1532.36018,277.22 Z M1542.78,283.24 C1543.91333,283.24 1544.88333,283.046667 1545.69,282.66 C1546.49667,282.273333 1547.10333,281.736667 1547.51,281.05 C1547.91667,280.363333 1548.12,279.58 1548.12,278.7 C1548.12,277.62 1547.81333,276.746667 1547.2,276.08 C1546.58667,275.413333 1545.71333,274.98 1544.58,274.78 L1544.58,274.78 L1543.12,274.52 C1542.42667,274.4 1541.93333,274.216667 1541.64,273.97 C1541.34667,273.723333 1541.2,273.366667 1541.2,272.9 C1541.2,272.353333 1541.37,271.94 1541.71,271.66 C1542.05,271.38 1542.55333,271.24 1543.22,271.24 C1543.83333,271.24 1544.4,271.353333 1544.92,271.58 C1545.44,271.806667 1545.88667,272.133333 1546.26,272.56 L1546.26,272.56 L1547.96,270.66 C1547.45333,270.073333 1546.79333,269.616667 1545.98,269.29 C1545.16667,268.963333 1544.24,268.8 1543.2,268.8 C1541.61333,268.8 1540.38,269.173333 1539.5,269.92 C1538.62,270.666667 1538.18,271.706667 1538.18,273.04 C1538.18,274.106667 1538.47333,274.99 1539.06,275.69 C1539.64667,276.39 1540.54,276.84 1541.74,277.04 L1541.74,277.04 L1543.2,277.28 C1543.88,277.386667 1544.36333,277.566667 1544.65,277.82 C1544.93667,278.073333 1545.08,278.446667 1545.08,278.94 C1545.08,279.54 1544.89,280 1544.51,280.32 C1544.13,280.64 1543.58667,280.8 1542.88,280.8 C1542.24,280.8 1541.61667,280.663333 1541.01,280.39 C1540.40333,280.116667 1539.85333,279.706667 1539.36,279.16 L1539.36,279.16 L1537.62,281.08 C1538.16667,281.76 1538.88,282.29 1539.76,282.67 C1540.64,283.05 1541.64667,283.24 1542.78,283.24 Z M1559.51982,283 L1559.51982,280.54 L1553.59982,280.54 L1553.59982,277.16 L1559.31982,277.16 L1559.31982,274.7 L1553.59982,274.7 L1553.59982,271.5 L1559.51982,271.5 L1559.51982,269.04 L1550.59982,269.04 L1550.59982,283 L1559.51982,283 Z" id="USECASE" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<path d="M1379.52058,272 L1379.52058,269.54 L1373.60058,269.54 L1373.60058,266.16 L1379.32058,266.16 L1379.32058,263.7 L1373.60058,263.7 L1373.60058,260.5 L1379.52058,260.5 L1379.52058,258.04 L1370.60058,258.04 L1370.60058,272 L1379.52058,272 Z M1384.7804,272 L1384.7804,262.72 L1385.0004,262.72 L1388.1804,272 L1391.7804,272 L1391.7804,258.04 L1389.2204,258.04 L1389.2204,267.32 L1389.0004,267.32 L1385.8204,258.04 L1382.2204,258.04 L1382.2204,272 L1384.7804,272 Z M1400.50021,272 L1400.50021,260.5 L1404.52021,260.5 L1404.52021,258.04 L1393.48021,258.04 L1393.48021,260.5 L1397.50021,260.5 L1397.50021,272 L1400.50021,272 Z M1409.50003,272 L1409.50003,258.04 L1406.50003,258.04 L1406.50003,272 L1409.50003,272 Z M1418.49979,272 L1418.49979,260.5 L1422.51979,260.5 L1422.51979,258.04 L1411.47979,258.04 L1411.47979,260.5 L1415.49979,260.5 L1415.49979,272 L1418.49979,272 Z M1430.4996,272 L1430.4996,267.06 L1434.9196,258.04 L1431.6996,258.04 L1430.2196,261.28 L1429.1396,264.02 L1428.9796,264.02 L1427.8996,261.28 L1426.4196,258.04 L1423.0796,258.04 L1427.4996,267.06 L1427.4996,272 L1430.4996,272 Z" id="ENTITY" fill-opacity="0.85" fill="#000000" fill-rule="nonzero"></path>
<g id="arrows-h-duotone" transform="translate(434.500000, 833.000000) rotate(-60.000000) translate(-434.500000, -833.000000) translate(360.000000, 803.000000)" fill="#55D4F5" fill-rule="nonzero">
<polygon id="Path" opacity="0.4" points="125.974042 36.8357506 25.6887897 36.8357506 17.8314157 29.3357506 25.6887897 21.8357506 125.974042 21.8357506 133.831416 29.3357506"></polygon>
<path d="M113.350279,4.5733715 C112.331559,5.63664308 111.781809,7.05921596 111.822755,8.52609951 C111.863702,9.99298306 112.491967,11.3831463 113.568437,12.3887747 L132.111881,29.8328837 L113.568437,47.2769927 C112.491967,48.2826212 111.863702,49.6727844 111.822755,51.1396679 C111.781809,52.6065515 112.331559,54.0291243 113.350279,55.0923959 L115.97514,57.7121228 C118.162532,59.8769599 121.701783,59.8769599 123.889175,57.7121228 L146.784178,35.0492967 C148.180456,33.6691333 148.96539,31.7936067 148.96539,29.8374918 C148.96539,27.881377 148.180456,26.0058504 146.784178,24.625687 L123.889175,1.95364466 C121.703131,-0.203547359 118.172788,-0.203547359 115.986744,1.95364466 L113.350279,4.5733715 Z M36.5688972,55.0923959 C37.587617,54.0291243 38.1373675,52.6065515 38.0964211,51.1396679 C38.0554747,49.6727844 37.4272099,48.2826212 36.3507391,47.2769927 L17.8072955,29.8328837 L36.3507391,12.3887747 C37.4272099,11.3831463 38.0554747,9.99298306 38.0964211,8.52609951 C38.1373675,7.05921596 37.587617,5.63664308 36.5688972,4.5733715 L33.9440368,1.95364466 C31.7593534,-0.195924485 28.2378931,-0.195924485 26.0532098,1.95364466 L3.14660298,24.6210789 C1.75032422,26.0012423 0.965390309,27.8767689 0.965390309,29.8328837 C0.965390309,31.7889986 1.75032422,33.6645252 3.14660298,35.0446886 L26.0416056,57.7121228 C28.22765,59.8693148 31.7579924,59.8693148 33.9440368,57.7121228 L36.5688972,55.0923959 Z" id="Shape"></path>
</g>
<g id="arrows-h-duotone" transform="translate(1574.500000, 839.000000) scale(-1, 1) rotate(-60.000000) translate(-1574.500000, -839.000000) translate(1500.000000, 809.000000)" fill="#55D4F5" fill-rule="nonzero">
<polygon id="Path" opacity="0.4" points="125.974042 36.8357506 25.6887897 36.8357506 17.8314157 29.3357506 25.6887897 21.8357506 125.974042 21.8357506 133.831416 29.3357506"></polygon>
<path d="M113.350279,4.5733715 C112.331559,5.63664308 111.781809,7.05921596 111.822755,8.52609951 C111.863702,9.99298306 112.491967,11.3831463 113.568437,12.3887747 L132.111881,29.8328837 L113.568437,47.2769927 C112.491967,48.2826212 111.863702,49.6727844 111.822755,51.1396679 C111.781809,52.6065515 112.331559,54.0291243 113.350279,55.0923959 L115.97514,57.7121228 C118.162532,59.8769599 121.701783,59.8769599 123.889175,57.7121228 L146.784178,35.0492967 C148.180456,33.6691333 148.96539,31.7936067 148.96539,29.8374918 C148.96539,27.881377 148.180456,26.0058504 146.784178,24.625687 L123.889175,1.95364466 C121.703131,-0.203547359 118.172788,-0.203547359 115.986744,1.95364466 L113.350279,4.5733715 Z M36.5688972,55.0923959 C37.587617,54.0291243 38.1373675,52.6065515 38.0964211,51.1396679 C38.0554747,49.6727844 37.4272099,48.2826212 36.3507391,47.2769927 L17.8072955,29.8328837 L36.3507391,12.3887747 C37.4272099,11.3831463 38.0554747,9.99298306 38.0964211,8.52609951 C38.1373675,7.05921596 37.587617,5.63664308 36.5688972,4.5733715 L33.9440368,1.95364466 C31.7593534,-0.195924485 28.2378931,-0.195924485 26.0532098,1.95364466 L3.14660298,24.6210789 C1.75032422,26.0012423 0.965390309,27.8767689 0.965390309,29.8328837 C0.965390309,31.7889986 1.75032422,33.6645252 3.14660298,35.0446886 L26.0416056,57.7121228 C28.22765,59.8693148 31.7579924,59.8693148 33.9440368,57.7121228 L36.5688972,55.0923959 Z" id="Shape"></path>
</g>
<g id="arrows-h-duotone" transform="translate(901.500000, 781.000000) rotate(-300.000000) translate(-901.500000, -781.000000) translate(802.000000, 751.000000)" fill="#55D4F5" fill-rule="nonzero">
<polygon id="Path" opacity="0.4" points="175.974042 36.8357506 25.6887897 36.8357506 17.8314157 29.3357506 25.6887897 21.8357506 175.974042 21.8357506 183.831416 29.3357506"></polygon>
<path d="M163.350279,4.5733715 C162.331559,5.63664308 161.781809,7.05921596 161.822755,8.52609951 C161.863702,9.99298306 162.491967,11.3831463 163.568437,12.3887747 L182.111881,29.8328837 L163.568437,47.2769927 C162.491967,48.2826212 161.863702,49.6727844 161.822755,51.1396679 C161.781809,52.6065515 162.331559,54.0291243 163.350279,55.0923959 L165.97514,57.7121228 C168.162532,59.8769599 171.701783,59.8769599 173.889175,57.7121228 L196.784178,35.0492967 C198.180456,33.6691333 198.96539,31.7936067 198.96539,29.8374918 C198.96539,27.881377 198.180456,26.0058504 196.784178,24.625687 L173.889175,1.95364466 C171.703131,-0.203547359 168.172788,-0.203547359 165.986744,1.95364466 L163.350279,4.5733715 Z M36.5688972,55.0923959 C37.587617,54.0291243 38.1373675,52.6065515 38.0964211,51.1396679 C38.0554747,49.6727844 37.4272099,48.2826212 36.3507391,47.2769927 L17.8072955,29.8328837 L36.3507391,12.3887747 C37.4272099,11.3831463 38.0554747,9.99298306 38.0964211,8.52609951 C38.1373675,7.05921596 37.587617,5.63664308 36.5688972,4.5733715 L33.9440368,1.95364466 C31.7593534,-0.195924485 28.2378931,-0.195924485 26.0532098,1.95364466 L3.14660298,24.6210789 C1.75032422,26.0012423 0.965390309,27.8767689 0.965390309,29.8328837 C0.965390309,31.7889986 1.75032422,33.6645252 3.14660298,35.0446886 L26.0416056,57.7121228 C28.22765,59.8693148 31.7579924,59.8693148 33.9440368,57.7121228 L36.5688972,55.0923959 Z" id="Shape"></path>
</g>
<g id="arrows-h-duotone" transform="translate(1095.500000, 781.000000) scale(-1, 1) rotate(-300.000000) translate(-1095.500000, -781.000000) translate(996.000000, 751.000000)" fill="#55D4F5" fill-rule="nonzero">
<polygon id="Path" opacity="0.4" points="175.974042 36.8357506 25.6887897 36.8357506 17.8314157 29.3357506 25.6887897 21.8357506 175.974042 21.8357506 183.831416 29.3357506"></polygon>
<path d="M163.350279,4.5733715 C162.331559,5.63664308 161.781809,7.05921596 161.822755,8.52609951 C161.863702,9.99298306 162.491967,11.3831463 163.568437,12.3887747 L182.111881,29.8328837 L163.568437,47.2769927 C162.491967,48.2826212 161.863702,49.6727844 161.822755,51.1396679 C161.781809,52.6065515 162.331559,54.0291243 163.350279,55.0923959 L165.97514,57.7121228 C168.162532,59.8769599 171.701783,59.8769599 173.889175,57.7121228 L196.784178,35.0492967 C198.180456,33.6691333 198.96539,31.7936067 198.96539,29.8374918 C198.96539,27.881377 198.180456,26.0058504 196.784178,24.625687 L173.889175,1.95364466 C171.703131,-0.203547359 168.172788,-0.203547359 165.986744,1.95364466 L163.350279,4.5733715 Z M36.5688972,55.0923959 C37.587617,54.0291243 38.1373675,52.6065515 38.0964211,51.1396679 C38.0554747,49.6727844 37.4272099,48.2826212 36.3507391,47.2769927 L17.8072955,29.8328837 L36.3507391,12.3887747 C37.4272099,11.3831463 38.0554747,9.99298306 38.0964211,8.52609951 C38.1373675,7.05921596 37.587617,5.63664308 36.5688972,4.5733715 L33.9440368,1.95364466 C31.7593534,-0.195924485 28.2378931,-0.195924485 26.0532098,1.95364466 L3.14660298,24.6210789 C1.75032422,26.0012423 0.965390309,27.8767689 0.965390309,29.8328837 C0.965390309,31.7889986 1.75032422,33.6645252 3.14660298,35.0446886 L26.0416056,57.7121228 C28.22765,59.8693148 31.7579924,59.8693148 33.9440368,57.7121228 L36.5688972,55.0923959 Z" id="Shape"></path>
</g>
</g>
</svg>

#separationOfConcerns #singeResponsibility #scalability #compositionOverInheritance #looslyCoupled

An Event based Clean + MVVM Architecture for Plugin Apps

This document introduces the Clean + Model-View-View-Model (MVVM) front-end architecture will be using to develop Plugin Apps (micro-apps), in the Crate Solutions Single Page Web Application.

Introduction

Given future product plans, the Crate Analytics Platform (CAP) front-end architecture must be able to:

  • work for multiple clients
  • work for different business models
  • handle applications of a larger scope than the current client (Alpla)

Separating business related information in the application is our first action to take. For this, we're leveraging Clean Architecture[4] capabilities that describes us how to abstract away all the business data that becomes foundation of the application.

Building large-scale applications in JavaScript ecosystem has changed at least one fundamental way in the last few years. The one key concept that many developer adapted on is composition.(1) Functional paradigm is one of the agreement out of architecture proposal meetings and our architecture solution should favour composition over inheritance. Over the years we practiced with the component-based libraries like React, and frameworks like Vue and Angular. As a result we are familiar with modularising an application, composing components to build client-side JavaScript applications.

There is still a problem we need to compete. No matter how 3rd party component tools make easier the development, they don't impose any technique or approach how to organize your code base. They left it to whom use it. Model-View-ViewModel architecture is filling the gap for this requirement and tell us how to organize our application codebase at scale. MVVM is keeping Views free from business related information thanks to its ViewModels and those ViewModels are granular enough to contain particular informations. More general data will be dealt inside the Models at which state managers are fit in.

MVVM is enforcer of single responsibility. So that, it draws clear and self-evident boundaries around app components and models(2)

Last but not least, proposed architecture (Clean + MVVM Architecture) is a recipe how to glue business data with our component-based application and keeping them decoupled from each other.

Our components must be free from any direct business data manipulation. Decoupling business related information out of Application Logic will prevent scalability issues in future too.

Finally Events are channeling the information between tiers, without breaking decoupling nature of the architecture. At any given time, units (not the business related data, they're all about business concerns) emits and listens to events to carry information around.

Concepts Overview

Proposed architecture blends existing and proven techniques, and moves in the direction of a general method for building apps (2). It does not aim to impose new conventions or concepts, nor does it require us to introduce new roles/capabilities.

This is an event-based, 3-tier architecture. At the highest level, there are three topics

  • Domain,
  • Data,
  • and App for which guide application a structure. They are discussed in detail in the following section.

Domain Tier

Borrowed from Clean Architecture, this relates to building or forming business data.

Unlike Clean architecture constraints, the Domain layer is not the innermost nested layer, but the leftmost layer. It is independent from the development stack, and it must be written purely in the programming language.

The business related informations of the system, do not need to know what kind of application do they serve. Developers should focus on abstraction of business data while they working on the domain section.

Domain is the first place where separation of concern is coming in action.

Entity

Entities are meaningful pieces of information that map to the business you're dealing with. They're also known as business objects. An entity can be an object with methods, or it can be a set of data structures and functions(4). From that characteristics, we can say entities are used for encapsulating enterprise-wide, the most generic and high-level business rules.

Entities are the least likely to change when something external changes. For example, you would not expect these objects to be affected by a change to page navigation, or security. (4)

Use Cases

Use Cases are your business logic(1). To simply put, Business behaviours are defined as use cases and they generally used to complete a user's operation.

Use Cases coordinate the flow of data to and from the entity layer, and in the process achieve the goals of the use case by enforcing the entity's business rules. Changes to the use case (logic) do not affect the entity (rule). (7)

(Following sections are cited from this blogpost -- https://proandroiddev.com/why-you-need-use-cases-interactors-142e8a6fe576)

Useless Use Cases

Many times while writing use-cases, you end up use-cases are only wrapper for repositories. Even if they “do nothing” other than just calling a repository method, there are several reasons for still using them:

First: Consistency

Wouldn’t it be bad if some models would call use-cases while others would directly call repositories? Some less experienced developers or new joiners will have a hard time understanding what they are supposed to do while looking at the codebase.

Second: They protect the code from future changes

One of the purposes of Clean Architecture is to give you a codebase that can easily adapt when requirements change, which also means that the amount of code that needs to change should always be minimum.

If you skip creating use-cases, and using repositories directly in Models or worse in ViewModels, then when you require to update a repository for some reason, you're going to have to be make sure where this repository is used and make the changes accordingly.

Third, The “Screaming Architecture”

In most of the projects that you’ll see you won’t be able to understand what the app is about at first look. This might not bother you since maybe you started the project from scratch, but what about new joiners? How long will it take to them to understand what they have to do and how? Sake of predictability, and let your app screaming what it's doing, keep stick of the use-cases and repositories along with it.

A Use Case per Repository method?

This is a very common question and the answer is: most probably yes.

You don’t have a Use Case because you have a repository method, you have a repository method because you have a Use Case that needs it.

Clean Architecture is a Use Case driven architecture, hence each repository method exists only because it is supporting a Use Case.

It is also true that a Repository method should be used by one, Use Case so that if we get rid of a Use Case of the app then the persistence logic that is supporting it should disappear as well.

Now, I said you’ll “most probably” have a Use Case for each repository method, the reason why is not always true is that a Use Case can use more than one Repository and more than one method (as far as it is the only Use Case using them).

Data Tier

This is the aggregation tier where domain is used as inputs and prepared for the application state. It is also responsible of persisting/receiving data from outer sources, dealing data produced by application.

Data tier holds application-wide, purposeful, particular states along with requests the information from external sources like API.

Its purpose is deriving/containing a state and serving it throughout the application. Having said that, informations in the data tier must be general enough but contextual to serve all ends of application at any time. This constrain disallow you to put specific data in it. (This part will be explained in detail Model section)

Another function of data tier is encapsulating the persistent logic of your app. (This part will be explained in detail Repositories section)

Data tier can be dependant to our tooling and tech stack.

It is the location of which Single Responsibility feature

Data tier seeks Single Responsibility on its models.

Model

Model is the place where application states are created for a specific purpose. It uses domain entities and use-cases in order to create or derive the purposeful state for an application.

Being contextual is important for the Model. It should deal with all the aspects of a specific topic in the application(3). Mixture of different concerns is discouraged.

Models are units where we're committing Single Responsibility characteristic of the Architecture. So to say, if your Model is spanning responsibilities of more than one context than you are at risk that ending up fat, God Model that contain everything. It's clear violation of single responsibility, besides that makes getting harder to scale for future.

Best practice is keeping your concerns in a different models and allow models to negotiate each other. That communication can be happen via Events or you can leverage any tooling capability to achieve it.

A Model can only and should communicate another Models or ViewModels. Otherwise Model's consistency would compromised by unintended behaviour.

Global Model

Let's discuss the necessity of the global state for the application. In fact it's necessary most of the time for an Frontend Application. But the architecture we discuss has mechanism to eliminate that need:

  • Models can communicate each other via their Event Channel
  • Single Responsibility concern forces us create multiple models for different contexts.

Global Model is in this architecture is nothing more than "yet another" model. It holds its own concerns that cannot fit other Models and it can share its common data with other models. Given this example this Global model is not different from other models.

Possible replacement with State Managers

Suggested mechanism for Models is using event channels sending/receiving data from and to Models and ViewModels. Even though using events are convenient, one would like to use a state manager library and deals the creating and deriving state job by using it.

Using external state manager is still subject to fulfil architecture's expectations and follow its instructions for integrity. Having said that, State manager in the Model must not accessed by Views but ViewModels, State manager must configured to contain contextual and purposeful data, not be used as Global Object.

This is usually a cumbersome task. These state managers are designed to work directly inside the components. That's most likely cause collision. In this architecture, We're abstracted all the application data into ViewModels. That means you will end up using state manager only in the ViewModel but keeping away directly from View (component).

This abstraction may seem unnecessary effort at first sight, but in the long run, it will be a win. Consider yourself refactoring a class components to a function components in react.js. Imagine how hard it could be replacing entire content including component logic, state data and other intertwined parts of the components. If you followed the architecture rules and keeping every data related thing inside the ViewModel, you were only worried the Component itself and all others are already dealt inside the ViewModel.

Another challenging task would be using multiple stores for different contexts and communicate them each other. Architecture we discuss here suggests to using events for this need. When you go for a tech to replace models with 3rd party state manager, it will now up to you how to establish this communication mechanism between models. From then on architecture only enforces you to follow its rules.

Repository

Repositories are persistent logic containers. Since we're developing this architecture for Frontend Apps, persistence means API usage and Browser storage usage.

Repositories are used by Use Cases and they're instruments for the completing a use case duties.

Another important feature is they're injected in use cases in runtime. A use case will not have hard dependency a repository. Model is the place where you should inject the repository in a use case

App Tier

(to be written)

View Model

(to be written)

View

(to be written)

Structure

Clean + MVVM Architecture is not dictating Layered, Union architectures like Clean Architecture does. All tiers (Domain - Data - Application) are in same, horizontal level.

Domain holds and defines business rules and logics via entities and use-cases. Data tier consumes the Domain tier and creates application states for specific responsibilities (mind the plural states here. Architecture tries to avoid putting everything into a one, global state). Data tier is also encapsulates all the persistence logic with Repositories. App tier in which consists of ViewModels and Views interacts with Data tier and presents the application state to the end user. App tier is able to mutate the application state by user interactions.

Data flow

MVVM uses a half-duplex and sequential data flow, in the form of events which move between respective channels. The Data and App layers therefore need to be capable of sending events to one another. The following data flow constraints apply:

  • Views can only send or receive events from their ViewModels.
  • ViewModels can send or receive events from at least one or multiple Models.
  • ViewModels should not share data each other. Even though it's possible through events, it's an obvious violation of data flow. That causes traceability issues of information.
  • Models shares their data each other. They do that their respective event channels.

EventBus

EventBus is a general term that references the event channels between units. Views communicate their ViewModels via events, therefore they using EventBus. Same mechanism goes for ViewModel - Model communication as well as Model - Model communication. Please consult the PoC here (https://github.com/crate/crate-solutions-ui-mvvm-poc) to see how EventBus is working in action.

Pod

Finally, MVVM groups contextual elements together as pods. Pod elements are closely thematically related, and using them can make it easy to manage files and folder structure during development(2).

Generally pods are forming of multiple Views and ViewModels and they can be extended to including their own Model. It's very depend on the occasion and it should be beneficial if you group them together.


Resources

(1) https://medium.com/google-developers/javascript-application-architecture-on-the-road-to-2015-d8125811101b

(2) http://vieux.io/

(3) https://github.com/bailabs/react_js_clean_architecture

(4) https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

(5) https://yuriktech.com/2019/06/11/Implementing-Clean-Architecture/

(6) https://proandroiddev.com/why-you-need-use-cases-interactors-142e8a6fe576

(7) https://phodal.github.io/clean-frontend/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment