-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClass_Diagram.html
1 lines (1 loc) · 63.1 KB
/
Class_Diagram.html
1
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="817px" preserveAspectRatio="none" style="width:4913px;height:817px;background:#FFFFFF;" version="1.1" viewBox="0 0 4913 817" width="4913px" zoomAndPan="magnify"><defs/><g><!--class PricingStrategy--><g id="elem_PricingStrategy"><rect codeLine="1" fill="#F1F1F1" height="80.5938" id="PricingStrategy" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="547.2744" x="2671.21" y="680.72"/><ellipse cx="2886.8872" cy="696.72" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M2882.8091,692.4856 L2882.8091,690.3294 L2890.1997,690.3294 L2890.1997,692.4856 L2887.731,692.4856 L2887.731,700.5638 L2890.1997,700.5638 L2890.1997,702.72 L2882.8091,702.72 L2882.8091,700.5638 L2885.2779,700.5638 L2885.2779,692.4856 L2882.8091,692.4856 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="107.4199" x="2907.3872" y="701.5667">PricingStrategy</text><line style="stroke:#181818;stroke-width:0.5;" x1="2672.21" x2="3217.4844" y1="712.72" y2="712.72"/><line style="stroke:#181818;stroke-width:0.5;" x1="2672.21" x2="3217.4844" y1="720.72" y2="720.72"/><ellipse cx="2682.21" cy="734.3684" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="521.2744" x="2691.21" y="737.7151">calculatePrice(const shared_ptr<TripMetaData>& pTripMetaData): double</text><ellipse cx="2682.21" cy="750.6653" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="134.5244" x="2691.21" y="754.012">~ PricingStrategy()</text></g><!--class DefaultPricingStrategy--><g id="elem_DefaultPricingStrategy"><rect codeLine="6" fill="#F1F1F1" height="80.5938" id="DefaultPricingStrategy" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="547.2744" x="2089.21" y="680.72"/><ellipse cx="2279.3106" cy="696.72" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M2282.2793,702.3606 Q2281.7012,702.6575 2281.0606,702.7981 Q2280.42,702.9544 2279.7168,702.9544 Q2277.2168,702.9544 2275.8887,701.3138 Q2274.5762,699.6575 2274.5762,696.5325 Q2274.5762,693.4075 2275.8887,691.7513 Q2277.2168,690.095 2279.7168,690.095 Q2280.42,690.095 2281.0606,690.2513 Q2281.7168,690.4075 2282.2793,690.7044 L2282.2793,693.4231 Q2281.6543,692.845 2281.0606,692.5794 Q2280.4668,692.2981 2279.8418,692.2981 Q2278.4981,692.2981 2277.8106,693.3763 Q2277.1231,694.4388 2277.1231,696.5325 Q2277.1231,698.6263 2277.8106,699.7044 Q2278.4981,700.7669 2279.8418,700.7669 Q2280.4668,700.7669 2281.0606,700.5013 Q2281.6543,700.22 2282.2793,699.6419 L2282.2793,702.3606 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="158.5732" x="2299.8106" y="701.5667">DefaultPricingStrategy</text><line style="stroke:#181818;stroke-width:0.5;" x1="2090.21" x2="2635.4844" y1="712.72" y2="712.72"/><line style="stroke:#181818;stroke-width:0.5;" x1="2090.21" x2="2635.4844" y1="720.72" y2="720.72"/><ellipse cx="2100.21" cy="734.3684" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="521.2744" x="2109.21" y="737.7151">calculatePrice(const shared_ptr<TripMetaData>& pTripMetaData): double</text><ellipse cx="2100.21" cy="750.6653" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="185.6777" x="2109.21" y="754.012">~ DefaultPricingStrategy()</text></g><!--class RatingBasedPricingStrategy--><g id="elem_RatingBasedPricingStrategy"><rect codeLine="12" fill="#F1F1F1" height="80.5938" id="RatingBasedPricingStrategy" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="547.2744" x="3253.21" y="680.72"/><ellipse cx="3424.6758" cy="696.72" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M3427.6446,702.3606 Q3427.0664,702.6575 3426.4258,702.7981 Q3425.7852,702.9544 3425.0821,702.9544 Q3422.5821,702.9544 3421.2539,701.3138 Q3419.9414,699.6575 3419.9414,696.5325 Q3419.9414,693.4075 3421.2539,691.7513 Q3422.5821,690.095 3425.0821,690.095 Q3425.7852,690.095 3426.4258,690.2513 Q3427.0821,690.4075 3427.6446,690.7044 L3427.6446,693.4231 Q3427.0196,692.845 3426.4258,692.5794 Q3425.8321,692.2981 3425.2071,692.2981 Q3423.8633,692.2981 3423.1758,693.3763 Q3422.4883,694.4388 3422.4883,696.5325 Q3422.4883,698.6263 3423.1758,699.7044 Q3423.8633,700.7669 3425.2071,700.7669 Q3425.8321,700.7669 3426.4258,700.5013 Q3427.0196,700.22 3427.6446,699.6419 L3427.6446,702.3606 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="195.8428" x="3445.1758" y="701.5667">RatingBasedPricingStrategy</text><line style="stroke:#181818;stroke-width:0.5;" x1="3254.21" x2="3799.4844" y1="712.72" y2="712.72"/><line style="stroke:#181818;stroke-width:0.5;" x1="3254.21" x2="3799.4844" y1="720.72" y2="720.72"/><ellipse cx="3264.21" cy="734.3684" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="521.2744" x="3273.21" y="737.7151">calculatePrice(const shared_ptr<TripMetaData>& pTripMetaData): double</text><ellipse cx="3264.21" cy="750.6653" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="222.9473" x="3273.21" y="754.012">~ RatingBasedPricingStrategy()</text></g><!--class DriverMatchingStrategy--><g id="elem_DriverMatchingStrategy"><rect codeLine="18" fill="#F1F1F1" height="80.5938" id="DriverMatchingStrategy" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="577.5986" x="864.05" y="680.72"/><ellipse cx="1064.883" cy="696.72" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1060.8049,692.4856 L1060.8049,690.3294 L1068.1955,690.3294 L1068.1955,692.4856 L1065.7268,692.4856 L1065.7268,700.5638 L1068.1955,700.5638 L1068.1955,702.72 L1060.8049,702.72 L1060.8049,700.5638 L1063.2736,700.5638 L1063.2736,692.4856 L1060.8049,692.4856 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="167.4326" x="1085.383" y="701.5667">DriverMatchingStrategy</text><line style="stroke:#181818;stroke-width:0.5;" x1="865.05" x2="1440.6486" y1="712.72" y2="712.72"/><line style="stroke:#181818;stroke-width:0.5;" x1="865.05" x2="1440.6486" y1="720.72" y2="720.72"/><ellipse cx="875.05" cy="734.3684" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="551.5986" x="884.05" y="737.7151">matchDriver(shared_ptr<TripMetaData> pTripMetaData): shared_ptr<Driver></text><ellipse cx="875.05" cy="750.6653" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="178.3564" x="884.05" y="754.012">DriverMatchingStrategy()</text></g><!--class LeastTimeBasedMatchingStrategy--><g id="elem_LeastTimeBasedMatchingStrategy"><rect codeLine="23" fill="#F1F1F1" height="80.5938" id="LeastTimeBasedMatchingStrategy" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="577.5986" x="1477.05" y="680.72"/><ellipse cx="1641.7004" cy="696.72" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1644.6691,702.3606 Q1644.091,702.6575 1643.4504,702.7981 Q1642.8098,702.9544 1642.1066,702.9544 Q1639.6066,702.9544 1638.2785,701.3138 Q1636.966,699.6575 1636.966,696.5325 Q1636.966,693.4075 1638.2785,691.7513 Q1639.6066,690.095 1642.1066,690.095 Q1642.8098,690.095 1643.4504,690.2513 Q1644.1066,690.4075 1644.6691,690.7044 L1644.6691,693.4231 Q1644.0441,692.845 1643.4504,692.5794 Q1642.8566,692.2981 1642.2316,692.2981 Q1640.8879,692.2981 1640.2004,693.3763 Q1639.5129,694.4388 1639.5129,696.5325 Q1639.5129,698.6263 1640.2004,699.7044 Q1640.8879,700.7669 1642.2316,700.7669 Q1642.8566,700.7669 1643.4504,700.5013 Q1644.0441,700.22 1644.6691,699.6419 L1644.6691,702.3606 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="239.7979" x="1662.2004" y="701.5667">LeastTimeBasedMatchingStrategy</text><line style="stroke:#181818;stroke-width:0.5;" x1="1478.05" x2="2053.6486" y1="712.72" y2="712.72"/><line style="stroke:#181818;stroke-width:0.5;" x1="1478.05" x2="2053.6486" y1="720.72" y2="720.72"/><ellipse cx="1488.05" cy="734.3684" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="551.5986" x="1497.05" y="737.7151">matchDriver(shared_ptr<TripMetaData> pTripMetaData): shared_ptr<Driver></text><ellipse cx="1488.05" cy="750.6653" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="266.9023" x="1497.05" y="754.012">~ LeastTimeBasedMatchingStrategy()</text></g><!--class Util--><g id="elem_Util"><rect codeLine="29" fill="#F1F1F1" height="80.5938" id="Util" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="298.7402" x="3760.48" y="72.18"/><ellipse cx="3893.8423" cy="88.18" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M3896.8111,93.8206 Q3896.2329,94.1175 3895.5923,94.2581 Q3894.9517,94.4144 3894.2486,94.4144 Q3891.7486,94.4144 3890.4204,92.7738 Q3889.1079,91.1175 3889.1079,87.9925 Q3889.1079,84.8675 3890.4204,83.2113 Q3891.7486,81.555 3894.2486,81.555 Q3894.9517,81.555 3895.5923,81.7113 Q3896.2486,81.8675 3896.8111,82.1644 L3896.8111,84.8831 Q3896.1861,84.305 3895.5923,84.0394 Q3894.9986,83.7581 3894.3736,83.7581 Q3893.0298,83.7581 3892.3423,84.8363 Q3891.6548,85.8988 3891.6548,87.9925 Q3891.6548,90.0863 3892.3423,91.1644 Q3893.0298,92.2269 3894.3736,92.2269 Q3894.9986,92.2269 3895.5923,91.9613 Q3896.1861,91.68 3896.8111,91.1019 L3896.8111,93.8206 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="23.5156" x="3914.3423" y="93.0267">Util</text><line style="stroke:#181818;stroke-width:0.5;" x1="3761.48" x2="4058.2202" y1="104.18" y2="104.18"/><line style="stroke:#181818;stroke-width:0.5;" x1="3761.48" x2="4058.2202" y1="112.18" y2="112.18"/><ellipse cx="3771.48" cy="125.8284" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="272.7402" x="3780.48" y="129.1751">ratingToString(RATING pRating): string</text><ellipse cx="3771.48" cy="142.1253" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="250.8926" x="3780.48" y="145.472">isHighRating(RATING pRating): bool</text></g><!--class RATING--><g id="elem_RATING"><rect codeLine="34" fill="#F1F1F1" height="145.7813" id="RATING" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="111.1279" x="328.28" y="648.12"/><ellipse cx="354.8996" cy="664.12" fill="#EB937F" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M359.009,670.12 L351.2902,670.12 L351.2902,657.7294 L359.009,657.7294 L359.009,659.8856 L353.7433,659.8856 L353.7433,662.5575 L358.509,662.5575 L358.509,664.7138 L353.7433,664.7138 L353.7433,667.9638 L359.009,667.9638 L359.009,670.12 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="53.3066" x="371.4817" y="668.9667">RATING</text><line style="stroke:#181818;stroke-width:0.5;" x1="329.28" x2="438.4079" y1="680.12" y2="680.12"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="93.1465" x="334.28" y="697.1151">UNASSIGNED</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="74.0811" x="334.28" y="713.412">ONE_STAR</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86.0439" x="334.28" y="729.7089">TWO_STARS</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="99.1279" x="334.28" y="746.0057">THREE_STARS</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="91.6768" x="334.28" y="762.3026">FOUR_STARS</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="83.2344" x="334.28" y="778.5995">FIVE_STARS</text><line style="stroke:#181818;stroke-width:0.5;" x1="329.28" x2="438.4079" y1="785.9013" y2="785.9013"/></g><!--class TRIP_STATUS--><g id="elem_TRIP_STATUS"><rect codeLine="43" fill="#F1F1F1" height="162.0781" id="TRIP_STATUS" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="167.1758" x="4739.26" y="31.44"/><ellipse cx="4773.4408" cy="47.44" fill="#EB937F" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M4777.5502,53.44 L4769.8314,53.44 L4769.8314,41.0494 L4777.5502,41.0494 L4777.5502,43.2056 L4772.2846,43.2056 L4772.2846,45.8775 L4777.0502,45.8775 L4777.0502,48.0338 L4772.2846,48.0338 L4772.2846,51.2838 L4777.5502,51.2838 L4777.5502,53.44 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="92.5518" x="4791.7032" y="52.2867">TRIP_STATUS</text><line style="stroke:#181818;stroke-width:0.5;" x1="4740.26" x2="4905.4358" y1="63.44" y2="63.44"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="93.1465" x="4745.26" y="80.4351">UNASSIGNED</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="155.1758" x="4745.26" y="96.732">DRIVER_ON_THE_WAY</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="122.1514" x="4745.26" y="113.0289">DRIVER_ARRIVED</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64.9209" x="4745.26" y="129.3257">STARTED</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56.7793" x="4745.26" y="145.6226">PAUSED</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="83.6719" x="4745.26" y="161.9195">CANCELLED</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="49.7246" x="4745.26" y="178.2164">ENDED</text><line style="stroke:#181818;stroke-width:0.5;" x1="4740.26" x2="4905.4358" y1="185.5181" y2="185.5181"/></g><!--class Location--><g id="elem_Location"><rect codeLine="53" fill="#F1F1F1" height="113.1875" id="Location" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="354.8838" x="474.4" y="664.42"/><ellipse cx="617.8624" cy="680.42" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M620.8312,686.0606 Q620.253,686.3575 619.6124,686.4981 Q618.9718,686.6544 618.2687,686.6544 Q615.7687,686.6544 614.4405,685.0138 Q613.128,683.3575 613.128,680.2325 Q613.128,677.1075 614.4405,675.4513 Q615.7687,673.795 618.2687,673.795 Q618.9718,673.795 619.6124,673.9513 Q620.2687,674.1075 620.8312,674.4044 L620.8312,677.1231 Q620.2062,676.545 619.6124,676.2794 Q619.0187,675.9981 618.3937,675.9981 Q617.0499,675.9981 616.3624,677.0763 Q615.6749,678.1388 615.6749,680.2325 Q615.6749,682.3263 616.3624,683.4044 Q617.0499,684.4669 618.3937,684.4669 Q619.0187,684.4669 619.6124,684.2013 Q620.2062,683.92 620.8312,683.3419 L620.8312,686.0606 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59.459" x="638.3624" y="685.2667">Location</text><line style="stroke:#181818;stroke-width:0.5;" x1="475.4" x2="828.2838" y1="696.42" y2="696.42"/><ellipse cx="485.4" cy="710.0684" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105.875" x="494.4" y="713.4151">double latitude</text><ellipse cx="485.4" cy="726.3653" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="118.1318" x="494.4" y="729.712">double longitude</text><line style="stroke:#181818;stroke-width:0.5;" x1="475.4" x2="828.2838" y1="737.0138" y2="737.0138"/><ellipse cx="485.4" cy="750.6622" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="328.8838" x="494.4" y="754.0089">Location(double pLatitude, double pLongitude)</text><ellipse cx="485.4" cy="766.9591" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="86.5635" x="494.4" y="770.3057">~ Location()</text></g><!--class TripMetaData--><g id="elem_TripMetaData"><rect codeLine="60" fill="#F1F1F1" height="194.6719" id="TripMetaData" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="735.7686" x="208.96" y="327.56"/><ellipse cx="524.958" cy="343.56" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M527.9268,349.2006 Q527.3487,349.4975 526.708,349.6381 Q526.0674,349.7944 525.3643,349.7944 Q522.8643,349.7944 521.5362,348.1538 Q520.2237,346.4975 520.2237,343.3725 Q520.2237,340.2475 521.5362,338.5913 Q522.8643,336.935 525.3643,336.935 Q526.0674,336.935 526.708,337.0913 Q527.3643,337.2475 527.9268,337.5444 L527.9268,340.2631 Q527.3018,339.685 526.708,339.4194 Q526.1143,339.1381 525.4893,339.1381 Q524.1455,339.1381 523.458,340.2163 Q522.7705,341.2788 522.7705,343.3725 Q522.7705,345.4663 523.458,346.5444 Q524.1455,347.6069 525.4893,347.6069 Q526.1143,347.6069 526.708,347.3413 Q527.3018,347.06 527.9268,346.4819 L527.9268,349.2006 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.2725" x="545.458" y="348.4067">TripMetaData</text><line style="stroke:#181818;stroke-width:0.5;" x1="209.96" x2="943.7286" y1="359.56" y2="359.56"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="216.96" y="370.2084"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="207.3135" x="228.96" y="376.5551">shared_ptr<Location> srcLoc</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="216.96" y="386.5053"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="208.2363" x="228.96" y="392.852">shared_ptr<Location> dstLoc</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="216.96" y="402.8022"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136.1035" x="228.96" y="409.1489">RATING riderRating</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="216.96" y="419.0991"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="144.3887" x="228.96" y="425.4457">RATING driverRating</text><line style="stroke:#181818;stroke-width:0.5;" x1="209.96" x2="943.7286" y1="432.7475" y2="432.7475"/><ellipse cx="219.96" cy="446.3959" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="709.7686" x="228.96" y="449.7426">TripMetaData(shared_ptr<Location> pSrcLoc, shared_ptr<Location> pDstLoc, RATING pRiderRating)</text><ellipse cx="219.96" cy="462.6928" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="178.7051" x="228.96" y="466.0395">getRiderRating(): RATING</text><ellipse cx="219.96" cy="478.9897" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="184.9121" x="228.96" y="482.3364">getDriverRating(): RATING</text><ellipse cx="219.96" cy="495.2866" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="276.0146" x="228.96" y="498.6332">setDriverRating(RATING pDriverRating)</text><ellipse cx="219.96" cy="511.5834" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="122.377" x="228.96" y="514.9301">~ TripMetaData()</text></g><!--class Driver--><g id="elem_Driver"><rect codeLine="72" fill="#F1F1F1" height="178.375" id="Driver" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="295.8213" x="3835.93" y="631.82"/><ellipse cx="3958.0506" cy="647.82" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M3961.0194,653.4606 Q3960.4412,653.7575 3959.8006,653.8981 Q3959.16,654.0544 3958.4569,654.0544 Q3955.9569,654.0544 3954.6287,652.4138 Q3953.3162,650.7575 3953.3162,647.6325 Q3953.3162,644.5075 3954.6287,642.8513 Q3955.9569,641.195 3958.4569,641.195 Q3959.16,641.195 3959.8006,641.3513 Q3960.4569,641.5075 3961.0194,641.8044 L3961.0194,644.5231 Q3960.3944,643.945 3959.8006,643.6794 Q3959.2069,643.3981 3958.5819,643.3981 Q3957.2381,643.3981 3956.5506,644.4763 Q3955.8631,645.5388 3955.8631,647.6325 Q3955.8631,649.7263 3956.5506,650.8044 Q3957.2381,651.8669 3958.5819,651.8669 Q3959.2069,651.8669 3959.8006,651.6013 Q3960.3944,651.32 3961.0194,650.7419 L3961.0194,653.4606 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="43.0801" x="3978.5506" y="652.6667">Driver</text><line style="stroke:#181818;stroke-width:0.5;" x1="3836.93" x2="4130.7513" y1="663.82" y2="663.82"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="3843.93" y="674.4684"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.3418" x="3855.93" y="680.8151">string name</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="3843.93" y="690.7653"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="67.5801" x="3855.93" y="697.112">bool avail</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="3843.93" y="707.0622"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="99.2305" x="3855.93" y="713.4089">RATING rating</text><line style="stroke:#181818;stroke-width:0.5;" x1="3836.93" x2="4130.7513" y1="720.7106" y2="720.7106"/><ellipse cx="3846.93" cy="734.3591" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="269.8213" x="3855.93" y="737.7057">Driver(string pName, RATING pRating)</text><ellipse cx="3846.93" cy="750.6559" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="171.9375" x="3855.93" y="754.0026">updateAvail(bool pAvail)</text><ellipse cx="3846.93" cy="766.9528" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="220.9375" x="3855.93" y="770.2995">getDriverName(): const string&</text><ellipse cx="3846.93" cy="783.2497" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="141.832" x="3855.93" y="786.5964">getRating(): RATING</text><ellipse cx="3846.93" cy="799.5466" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="70.1846" x="3855.93" y="802.8932">~ Driver()</text></g><!--class Rider--><g id="elem_Rider"><rect codeLine="83" fill="#F1F1F1" height="145.7813" id="Rider" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="289.6143" x="4266.04" y="648.12"/><ellipse cx="4388.1606" cy="664.12" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M4391.1294,669.7606 Q4390.5512,670.0575 4389.9106,670.1981 Q4389.27,670.3544 4388.5669,670.3544 Q4386.0669,670.3544 4384.7387,668.7138 Q4383.4262,667.0575 4383.4262,663.9325 Q4383.4262,660.8075 4384.7387,659.1513 Q4386.0669,657.495 4388.5669,657.495 Q4389.27,657.495 4389.9106,657.6513 Q4390.5669,657.8075 4391.1294,658.1044 L4391.1294,660.8231 Q4390.5044,660.245 4389.9106,659.9794 Q4389.3169,659.6981 4388.6919,659.6981 Q4387.3481,659.6981 4386.6606,660.7763 Q4385.9731,661.8388 4385.9731,663.9325 Q4385.9731,666.0263 4386.6606,667.1044 Q4387.3481,668.1669 4388.6919,668.1669 Q4389.3169,668.1669 4389.9106,667.9013 Q4390.5044,667.62 4391.1294,667.0419 L4391.1294,669.7606 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36.873" x="4408.6606" y="668.9667">Rider</text><line style="stroke:#181818;stroke-width:0.5;" x1="4267.04" x2="4554.6543" y1="680.12" y2="680.12"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="4274.04" y="690.7684"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.3418" x="4286.04" y="697.1151">string name</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="4274.04" y="707.0653"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="99.2305" x="4286.04" y="713.412">RATING rating</text><line style="stroke:#181818;stroke-width:0.5;" x1="4267.04" x2="4554.6543" y1="720.7138" y2="720.7138"/><ellipse cx="4277.04" cy="734.3622" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="263.6143" x="4286.04" y="737.7089">Rider(string pName, RATING pRating)</text><ellipse cx="4277.04" cy="750.6591" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="214.7305" x="4286.04" y="754.0057">getRiderName(): const string&</text><ellipse cx="4277.04" cy="766.9559" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="141.832" x="4286.04" y="770.3026">getRating(): RATING</text><ellipse cx="4277.04" cy="783.2528" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="63.9775" x="4286.04" y="786.5995">~ Rider()</text></g><!--class Trip--><g id="elem_Trip"><rect codeLine="92" fill="#F1F1F1" height="259.8594" id="Trip" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="1851.3867" x="1845.15" y="294.97"/><ellipse cx="2753.0514" cy="310.97" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M2756.0201,316.6106 Q2755.442,316.9075 2754.8014,317.0481 Q2754.1607,317.2044 2753.4576,317.2044 Q2750.9576,317.2044 2749.6295,315.5638 Q2748.317,313.9075 2748.317,310.7825 Q2748.317,307.6575 2749.6295,306.0013 Q2750.9576,304.345 2753.4576,304.345 Q2754.1607,304.345 2754.8014,304.5013 Q2755.4576,304.6575 2756.0201,304.9544 L2756.0201,307.6731 Q2755.3951,307.095 2754.8014,306.8294 Q2754.2076,306.5481 2753.5826,306.5481 Q2752.2389,306.5481 2751.5514,307.6263 Q2750.8639,308.6888 2750.8639,310.7825 Q2750.8639,312.8763 2751.5514,313.9544 Q2752.2389,315.0169 2753.5826,315.0169 Q2754.2076,315.0169 2754.8014,314.7513 Q2755.3951,314.47 2756.0201,313.8919 L2756.0201,316.6106 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="27.084" x="2773.5514" y="315.8167">Trip</text><line style="stroke:#181818;stroke-width:0.5;" x1="1846.15" x2="3695.5367" y1="326.97" y2="326.97"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1853.15" y="337.6184"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="172.8193" x="1865.15" y="343.9651">shared_ptr<Rider> rider</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1853.15" y="353.9153"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="187.3115" x="1865.15" y="360.262">shared_ptr<Driver> driver</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1853.15" y="370.2122"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="203.4033" x="1865.15" y="376.5589">shared_ptr<Location> srcloc</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1853.15" y="386.5091"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="208.2363" x="1865.15" y="392.8557">shared_ptr<Location> dstLoc</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1853.15" y="402.8059"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="140.0205" x="1865.15" y="409.1526">TRIP_STATUS status</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1853.15" y="419.1028"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59.7393" x="1865.15" y="425.4495">int tripId</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1853.15" y="435.3997"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="87.0078" x="1865.15" y="441.7464">double price</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1853.15" y="451.6966"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="318.3291" x="1865.15" y="458.0432">shared_ptr<PricingStrategy> pricingStrategy</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="1853.15" y="467.9934"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="436.0166" x="1865.15" y="474.3401">shared_ptr<DriverMatchingStrategy> driverMatchingStrategy</text><line style="stroke:#181818;stroke-width:0.5;" x1="1846.15" x2="3695.5367" y1="481.6419" y2="481.6419"/><ellipse cx="1856.15" cy="495.2903" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="1825.3867" x="1865.15" y="498.637">Trip(int id, shared_ptr<Rider> pRider, shared_ptr<Driver> pDriver, shared_ptr<Location> pSrcLoc, shared_ptr<Location> pDstLoc, double pPrice, shared_ptr<PricingStrategy> pPricingStrategy, shared_ptr<DriverMatchingStrategy> pDriverMatchingStrategy)</text><ellipse cx="1856.15" cy="511.5872" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.4316" x="1865.15" y="514.9339">getTripId(): int</text><ellipse cx="1856.15" cy="527.8841" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="178.623" x="1865.15" y="531.2307">displayTripDetails() const</text><ellipse cx="1856.15" cy="544.1809" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="54.1885" x="1865.15" y="547.5276">~ Trip()</text></g><!--class DriverMgr--><g id="elem_DriverMgr"><rect codeLine="108" fill="#F1F1F1" height="162.0781" id="DriverMgr" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="504.543" x="3731.57" y="343.86"/><ellipse cx="3944.6906" cy="359.86" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M3947.6594,365.5006 Q3947.0812,365.7975 3946.4406,365.9381 Q3945.8,366.0944 3945.0969,366.0944 Q3942.5969,366.0944 3941.2687,364.4538 Q3939.9562,362.7975 3939.9562,359.6725 Q3939.9562,356.5475 3941.2687,354.8913 Q3942.5969,353.235 3945.0969,353.235 Q3945.8,353.235 3946.4406,353.3913 Q3947.0969,353.5475 3947.6594,353.8444 L3947.6594,356.5631 Q3947.0344,355.985 3946.4406,355.7194 Q3945.8469,355.4381 3945.2219,355.4381 Q3943.8781,355.4381 3943.1906,356.5163 Q3942.5031,357.5788 3942.5031,359.6725 Q3942.5031,361.7663 3943.1906,362.8444 Q3943.8781,363.9069 3945.2219,363.9069 Q3945.8469,363.9069 3946.4406,363.6413 Q3947.0344,363.36 3947.6594,362.7819 L3947.6594,365.5006 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69.8018" x="3965.1906" y="364.7067">DriverMgr</text><line style="stroke:#181818;stroke-width:0.5;" x1="3732.57" x2="4235.113" y1="375.86" y2="375.86"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="3739.57" y="386.5084"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="407.627" x="3751.57" y="392.8551">unordered_map<string, shared_ptr<Driver>> driversMap</text><line style="stroke:#181818;stroke-width:0.5;" x1="3732.57" x2="4235.113" y1="400.1569" y2="400.1569"/><ellipse cx="3742.57" cy="413.8053" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="80.7256" x="3751.57" y="417.152">DriverMgr()</text><ellipse cx="3742.57" cy="430.1022" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="478.543" x="3751.57" y="433.4489">addDriver(const string& pDriverName, shared_ptr<Driver> pDriver)</text><ellipse cx="3742.57" cy="446.3991" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="419.0293" x="3751.57" y="449.7457">getDriver(const string& pDriverName): shared_ptr<Driver></text><ellipse cx="3742.57" cy="462.6959" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="448.1504" x="3751.57" y="466.0426">getDriversMap(): unordered_map<string, shared_ptr<Driver>></text><ellipse cx="3742.57" cy="478.9928" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="281.2783" x="3751.57" y="482.3395">getDriverMgr(): shared_ptr<DriverMgr></text><ellipse cx="3742.57" cy="495.2897" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="96.9063" x="3751.57" y="498.6364">~ DriverMgr()</text></g><!--class RiderMgr--><g id="elem_RiderMgr"><rect codeLine="118" fill="#F1F1F1" height="145.7813" id="RiderMgr" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="479.7148" x="4270.99" y="352"/><ellipse cx="4474.8001" cy="368" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M4477.7688,373.6406 Q4477.1907,373.9375 4476.5501,374.0781 Q4475.9094,374.2344 4475.2063,374.2344 Q4472.7063,374.2344 4471.3782,372.5938 Q4470.0657,370.9375 4470.0657,367.8125 Q4470.0657,364.6875 4471.3782,363.0313 Q4472.7063,361.375 4475.2063,361.375 Q4475.9094,361.375 4476.5501,361.5313 Q4477.2063,361.6875 4477.7688,361.9844 L4477.7688,364.7031 Q4477.1438,364.125 4476.5501,363.8594 Q4475.9563,363.5781 4475.3313,363.5781 Q4473.9876,363.5781 4473.3001,364.6563 Q4472.6126,365.7188 4472.6126,367.8125 Q4472.6126,369.9063 4473.3001,370.9844 Q4473.9876,372.0469 4475.3313,372.0469 Q4475.9563,372.0469 4476.5501,371.7813 Q4477.1438,371.5 4477.7688,370.9219 L4477.7688,373.6406 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="63.5947" x="4495.3001" y="372.8467">RiderMgr</text><line style="stroke:#181818;stroke-width:0.5;" x1="4271.99" x2="4749.7048" y1="384" y2="384"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="4278.99" y="394.6484"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="393.1348" x="4290.99" y="400.9951">unordered_map<string, shared_ptr<Rider>> ridersMap</text><line style="stroke:#181818;stroke-width:0.5;" x1="4271.99" x2="4749.7048" y1="408.2969" y2="408.2969"/><ellipse cx="4281.99" cy="421.9453" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="74.5186" x="4290.99" y="425.292">RiderMgr()</text><ellipse cx="4281.99" cy="438.2422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="453.7148" x="4290.99" y="441.5889">addRider(const string& pRiderName, shared_ptr<Rider> pRider)</text><ellipse cx="4281.99" cy="454.5391" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="400.4082" x="4290.99" y="457.8857">getRider(const string& pRiderName): shared_ptr<Rider></text><ellipse cx="4281.99" cy="470.8359" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="268.8643" x="4290.99" y="474.1826">getRiderMgr(): shared_ptr<RiderMgr></text><ellipse cx="4281.99" cy="487.1328" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="90.6992" x="4290.99" y="490.4795">~ RiderMgr()</text></g><!--class StrategyMgr--><g id="elem_StrategyMgr"><rect codeLine="127" fill="#F1F1F1" height="113.1875" id="StrategyMgr" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="830.1934" x="979.75" y="368.3"/><ellipse cx="1347.2432" cy="384.3" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1350.2119,389.9406 Q1349.6338,390.2375 1348.9932,390.3781 Q1348.3525,390.5344 1347.6494,390.5344 Q1345.1494,390.5344 1343.8213,388.8938 Q1342.5088,387.2375 1342.5088,384.1125 Q1342.5088,380.9875 1343.8213,379.3313 Q1345.1494,377.675 1347.6494,377.675 Q1348.3525,377.675 1348.9932,377.8313 Q1349.6494,377.9875 1350.2119,378.2844 L1350.2119,381.0031 Q1349.5869,380.425 1348.9932,380.1594 Q1348.3994,379.8781 1347.7744,379.8781 Q1346.4307,379.8781 1345.7432,380.9563 Q1345.0557,382.0188 1345.0557,384.1125 Q1345.0557,386.2063 1345.7432,387.2844 Q1346.4307,388.3469 1347.7744,388.3469 Q1348.3994,388.3469 1348.9932,388.0813 Q1349.5869,387.8 1350.2119,387.2219 L1350.2119,389.9406 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86.707" x="1367.7432" y="389.1467">StrategyMgr</text><line style="stroke:#181818;stroke-width:0.5;" x1="980.75" x2="1808.9434" y1="400.3" y2="400.3"/><line style="stroke:#181818;stroke-width:0.5;" x1="980.75" x2="1808.9434" y1="408.3" y2="408.3"/><ellipse cx="990.75" cy="421.9484" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="727.248" x="999.75" y="425.2951">determinePricingStrategy(const shared_ptr<TripMetaData>& metaData): shared_ptr<PricingStrategy></text><ellipse cx="990.75" cy="438.2453" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="804.1934" x="999.75" y="441.592">determineMatchingStrategy(const shared_ptr<TripMetaData>& metaData): shared_ptr<DriverMatchingStrategy></text><ellipse cx="990.75" cy="454.5422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="315.0889" x="999.75" y="457.8889">getStrategyMgr(): shared_ptr<StrategyMgr></text><ellipse cx="990.75" cy="470.8391" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="113.8115" x="999.75" y="474.1857">~ StrategyMgr()</text></g><!--class TripMgr--><g id="elem_TripMgr"><rect codeLine="134" fill="#F1F1F1" height="210.9688" id="TripMgr" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="751.1221" x="2974.28" y="7"/><ellipse cx="3318.6882" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M3321.657,28.6406 Q3321.0788,28.9375 3320.4382,29.0781 Q3319.7976,29.2344 3319.0945,29.2344 Q3316.5945,29.2344 3315.2663,27.5938 Q3313.9538,25.9375 3313.9538,22.8125 Q3313.9538,19.6875 3315.2663,18.0313 Q3316.5945,16.375 3319.0945,16.375 Q3319.7976,16.375 3320.4382,16.5313 Q3321.0945,16.6875 3321.657,16.9844 L3321.657,19.7031 Q3321.032,19.125 3320.4382,18.8594 Q3319.8445,18.5781 3319.2195,18.5781 Q3317.8757,18.5781 3317.1882,19.6563 Q3316.5007,20.7188 3316.5007,22.8125 Q3316.5007,24.9063 3317.1882,25.9844 Q3317.8757,27.0469 3319.2195,27.0469 Q3319.8445,27.0469 3320.4382,26.7813 Q3321.032,26.5 3321.657,25.9219 L3321.657,28.6406 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="53.8057" x="3339.1882" y="27.8467">TripMgr</text><line style="stroke:#181818;stroke-width:0.5;" x1="2975.28" x2="3724.4021" y1="39" y2="39"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="2982.28" y="49.6484"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="485.8574" x="2994.28" y="55.9951">unordered_map<int, shared_ptr<TripMetaData>> tripsMetaDataInfo</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="2982.28" y="65.9453"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="349.4805" x="2994.28" y="72.292">unordered_map<int, shared_ptr<Trip>> tripsInfo</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="2982.28" y="82.2422"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="226.2627" x="2994.28" y="88.5889">shared_ptr<RiderMgr> riderMgr</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="2982.28" y="98.5391"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="240.7549" x="2994.28" y="104.8857">shared_ptr<DriverMgr> driverMgr</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1.0;" width="6" x="2982.28" y="114.8359"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="165.3818" x="2994.28" y="121.1826">atomic<int> nextTripId</text><line style="stroke:#181818;stroke-width:0.5;" x1="2975.28" x2="3724.4021" y1="128.4844" y2="128.4844"/><ellipse cx="2985.28" cy="142.1328" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64.7295" x="2994.28" y="145.4795">TripMgr()</text><ellipse cx="2985.28" cy="158.4297" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="725.1221" x="2994.28" y="161.7764">CreateTrip(shared_ptr<Rider> pRider, shared_ptr<Location> pSrcLoc, shared_ptr<Location> pDstLoc)</text><ellipse cx="2985.28" cy="174.7266" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="394.2217" x="2994.28" y="178.0732">getTripsMap(): unordered_map<int, shared_ptr<Trip>></text><ellipse cx="2985.28" cy="191.0234" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="249.2861" x="2994.28" y="194.3701">getTripMgr(): shared_ptr<TripMgr></text><ellipse cx="2985.28" cy="207.3203" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="80.9102" x="2994.28" y="210.667">~ TripMgr()</text></g><g id="elem_GMN40"><path d="M4094,99.91 L4094,108.48 L4059.43,112.48 L4094,116.48 L4094,125.0428 A0,0 0 0 0 4094,125.0428 L4381.6904,125.0428 A0,0 0 0 0 4381.6904,125.0428 L4381.6904,109.91 L4371.6904,99.91 L4094,99.91 A0,0 0 0 0 4094,99.91 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M4371.6904,99.91 L4371.6904,109.91 L4381.6904,109.91 L4371.6904,99.91 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="266.6904" x="4100" y="116.9769">This class is a part of file "common.hpp".</text></g><g id="elem_GMN43"><path d="M4417,99.91 L4417,125.0428 A0,0 0 0 0 4417,125.0428 L4704.6904,125.0428 A0,0 0 0 0 4704.6904,125.0428 L4704.6904,117.91 L4739.17,112.48 L4704.6904,109.91 L4704.6904,109.91 L4694.6904,99.91 L4417,99.91 A0,0 0 0 0 4417,99.91 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M4694.6904,99.91 L4694.6904,109.91 L4704.6904,109.91 L4694.6904,99.91 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="266.6904" x="4423" y="116.9769">This class is a part of file "common.hpp".</text></g><g id="elem_GMN46"><path d="M6,708.45 L6,733.5828 A0,0 0 0 0 6,733.5828 L293.6904,733.5828 A0,0 0 0 0 293.6904,733.5828 L293.6904,726.45 L327.92,721.01 L293.6904,718.45 L293.6904,718.45 L283.6904,708.45 L6,708.45 A0,0 0 0 0 6,708.45 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M283.6904,708.45 L283.6904,718.45 L293.6904,718.45 L283.6904,708.45 " fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="266.6904" x="12" y="725.5169">This class is a part of file "common.hpp".</text></g><!--link DefaultPricingStrategy to PricingStrategy--><g id="link_DefaultPricingStrategy_PricingStrategy"><path codeLine="10" d="M2636.79,751.13 C2648.13,751.27 2641.4614,751.4924 2652.7914,751.3524 " fill="none" id="DefaultPricingStrategy-to-PricingStrategy" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="2670.79,751.13,2652.7172,745.3529,2652.8655,757.3519,2670.79,751.13" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link PricingStrategy to DefaultPricingStrategy--><g id="link_PricingStrategy_DefaultPricingStrategy"><path codeLine="155" d="M2652.7912,690.6835 C2641.4612,690.5535 2648.13,690.76 2636.79,690.89 " fill="none" id="PricingStrategy-backto-DefaultPricingStrategy" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="none" points="2670.79,690.89,2652.86,684.6839,2652.7223,696.6831,2670.79,690.89" style="stroke:#181818;stroke-width:1.0;"/></g><!--link RatingBasedPricingStrategy to PricingStrategy--><g id="link_RatingBasedPricingStrategy_PricingStrategy"><path codeLine="16" d="M3252.79,751.13 C3241.46,751.27 3248.1286,751.4922 3236.7886,751.3522 " fill="none" id="RatingBasedPricingStrategy-to-PricingStrategy" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3218.79,751.13,3236.7146,757.3517,3236.8627,745.3527,3218.79,751.13" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link PricingStrategy to RatingBasedPricingStrategy--><g id="link_PricingStrategy_RatingBasedPricingStrategy"><path codeLine="156" d="M3236.7888,690.6837 C3248.1288,690.5537 3241.46,690.76 3252.79,690.89 " fill="none" id="PricingStrategy-backto-RatingBasedPricingStrategy" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="none" points="3218.79,690.89,3236.8576,696.6833,3236.72,684.6841,3218.79,690.89" style="stroke:#181818;stroke-width:1.0;"/></g><!--link LeastTimeBasedMatchingStrategy to DriverMatchingStrategy--><g id="link_LeastTimeBasedMatchingStrategy_DriverMatchingStrategy"><path codeLine="27" d="M1476.77,751.14 C1465.18,751.27 1471.5789,751.4717 1459.9789,751.3417 " fill="none" id="LeastTimeBasedMatchingStrategy-to-DriverMatchingStrategy" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1441.98,751.14,1459.9116,757.3413,1460.0461,745.3421,1441.98,751.14" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link DriverMatchingStrategy to LeastTimeBasedMatchingStrategy--><g id="link_DriverMatchingStrategy_LeastTimeBasedMatchingStrategy"><path codeLine="157" d="M1459.9789,690.6883 C1471.5789,690.5583 1465.18,690.76 1476.77,690.89 " fill="none" id="DriverMatchingStrategy-backto-LeastTimeBasedMatchingStrategy" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="none" points="1441.98,690.89,1460.0461,696.6879,1459.9116,684.6887,1441.98,690.89" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link DriverMgr to Driver--><g id="link_DriverMgr_Driver"><path codeLine="147" d="M3983.85,518.26 C3983.85,557.04 3983.85,591.67 3983.85,631.47 " fill="none" id="DriverMgr-backto-Driver" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="3983.85,506.26,3979.85,512.26,3983.85,518.26,3987.85,512.26,3983.85,506.26" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="3988.85,598.3864,3991.7889,589.3413,3985.9111,589.3413,3988.85,598.3864" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="55.0278" x="3997.85" y="597.8869">contains</text></g><!--reverse link RiderMgr to Rider--><g id="link_RiderMgr_Rider"><path codeLine="148" d="M4482.3872,509.5813 C4466.9172,555.0813 4450.9,602.22 4435.43,647.71 " fill="none" id="RiderMgr-backto-Rider" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="4486.25,498.22,4480.5315,502.613,4482.3872,509.5813,4488.1057,505.1882,4486.25,498.22" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="4458.2407,598.1203,4463.9345,590.5025,4458.3694,588.6106,4458.2407,598.1203" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="55.0278" x="4468.85" y="597.8869">contains</text></g><!--reverse link TripMgr to Trip--><g id="link_TripMgr_Trip"><path codeLine="149" d="M3143.6533,224.0286 C3098.0333,248.4786 3059.5,269.14 3012.17,294.52 " fill="none" id="TripMgr-backto-Trip" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="3154.23,218.36,3147.0521,217.6687,3143.6533,224.0286,3150.8312,224.7199,3154.23,218.36" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="3096.4434,258.8989,3105.8037,257.2153,3103.0264,252.0349,3096.4434,258.8989" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="55.0278" x="3109.85" y="261.0369">contains</text></g><!--reverse link TripMgr to TripMetaData--><g id="link_TripMgr_TripMetaData"><path codeLine="150" d="M2962.0245,131.2894 C2388.9545,159.4694 1335.82,219.35 961.85,294.97 C921,303.22 878.48,314.55 837.24,327.08 " fill="none" id="TripMgr-backto-TripMetaData" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="2974.01,130.7,2967.8208,126.9995,2962.0245,131.2894,2968.2137,134.9899,2974.01,130.7" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="1251.8711,256.9952,1261.1477,259.0918,1260.6084,253.2387,1251.8711,256.9952" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="55.0278" x="1265.85" y="261.0369">contains</text></g><!--reverse link TripMgr to RiderMgr--><g id="link_TripMgr_RiderMgr"><path codeLine="151" d="M3737.6224,216.9 C3743.3024,218.12 3737.23,216.8 3742.85,217.97 C3967.72,264.65 4034.93,225.5 4253.85,294.97 C4298.69,309.2 4345.35,330.42 4386.41,351.57 " fill="none" id="TripMgr-backto-RiderMgr" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3725.89,214.38,3730.9162,219.5508,3737.6224,216.9,3732.5962,211.7292,3725.89,214.38" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="4147.7456,257.5526,4139.4866,252.8367,4138.292,258.5919,4147.7456,257.5526" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29.7832" x="4151.85" y="261.0369">uses</text></g><!--reverse link TripMgr to DriverMgr--><g id="link_TripMgr_DriverMgr"><path codeLine="152" d="M3574.8277,223.6365 C3658.2877,264.4965 3741.63,305.3 3819.57,343.46 " fill="none" id="TripMgr-backto-DriverMgr" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3564.05,218.36,3567.68,224.5908,3574.8277,223.6365,3571.1977,217.4057,3564.05,218.36" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="3657.3407,258.735,3650.5093,252.1182,3647.9247,257.3973,3657.3407,258.735" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29.7832" x="3661.85" y="261.0369">uses</text></g><!--reverse link StrategyMgr to PricingStrategy--><g id="link_StrategyMgr_PricingStrategy"><path codeLine="153" d="M1575.8942,485.558 C1655.2542,510.348 1740,534.79 1827.85,554.82 C1956.43,584.15 1989.72,587.66 2120.85,601.82 C2356.74,627.31 2420.22,590.46 2653.85,631.82 C2715.18,642.69 2781.8,662.27 2835.8,680.23 " fill="none" id="StrategyMgr-backto-PricingStrategy" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="1564.44,481.98,1568.9744,487.587,1575.8942,485.558,1571.3597,479.9509,1564.44,481.98" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="2130.7914,594.1499,2122.3011,589.8643,2121.4036,595.6732,2130.7914,594.1499" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="73.9756" x="2134.85" y="597.8869">determines</text></g><!--reverse link StrategyMgr to DriverMatchingStrategy--><g id="link_StrategyMgr_DriverMatchingStrategy"><path codeLine="154" d="M1341.1348,491.1759 C1293.4048,549.1759 1227.68,629.06 1185.58,680.23 " fill="none" id="StrategyMgr-backto-DriverMatchingStrategy" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="1348.76,481.91,1341.8588,484.0012,1341.1348,491.1759,1348.036,489.0847,1348.76,481.91" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="1261.6731,597.2474,1269.6896,592.1301,1265.1507,588.3955,1261.6731,597.2474" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="73.9756" x="1273.85" y="597.8869">determines</text></g><!--reverse link Trip to Rider--><g id="link_Trip_Rider"><path codeLine="158" d="M3567.4534,557.1257 C3675.5934,573.5857 3773.46,587.76 3877.85,601.82 C3997.94,618.01 4030.52,605.68 4148.85,631.82 C4187.39,640.34 4228.21,652.49 4265.87,665.06 " fill="none" id="Trip-backto-Rider" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3555.59,555.32,3560.9198,560.1773,3567.4534,557.1257,3562.1236,552.2684,3555.59,555.32" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="3887.7913,594.15,3879.3012,589.8642,3878.4035,595.6731,3887.7913,594.15" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="83.6558" x="3891.85" y="597.8869">composed of</text></g><!--reverse link Trip to Driver--><g id="link_Trip_Driver"><path codeLine="159" d="M3270.6731,557.9429 C3348.1831,575.5129 3416.07,589.16 3491.85,601.82 C3635.36,625.8 3678.42,590.21 3817.85,631.82 C3823.79,633.6 3829.76,635.59 3835.73,637.77 " fill="none" id="Trip-backto-Driver" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="3258.97,555.29,3263.9373,560.5175,3270.6731,557.9429,3265.7058,552.7154,3258.97,555.29" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="3501.8008,594.0858,3493.2558,589.9105,3492.4336,595.7306,3501.8008,594.0858" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="83.6558" x="3505.85" y="597.8869">composed of</text></g><!--reverse link Trip to Location--><g id="link_Trip_Location"><path codeLine="160" d="M2323.9297,559.1456 C2295.5697,568.7956 2278.91,574.82 2251.85,584.82 C2234.11,591.38 2231.31,597.76 2212.85,601.82 C1916.31,667.05 1142.93,564.58 846.85,631.82 C815.96,638.84 784.02,650.96 755.15,664.01 " fill="none" id="Trip-backto-Location" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="2335.29,555.28,2328.3213,553.426,2323.9297,559.1456,2330.8983,560.9996,2335.29,555.28" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="2251.8611,593.7199,2261.0821,596.049,2260.6901,590.1842,2251.8611,593.7199" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="83.6558" x="2265.85" y="597.8869">composed of</text></g><!--reverse link Trip to PricingStrategy--><g id="link_Trip_PricingStrategy"><path codeLine="161" d="M2853.2706,565.2277 C2880.1206,610.6077 2902.23,647.98 2921.4,680.38 " fill="none" id="Trip-backto-PricingStrategy" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="2847.16,554.9,2846.7727,562.1007,2853.2706,565.2277,2853.6578,558.027,2847.16,554.9" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="2881.396,597.6896,2879.3196,588.4085,2874.2609,591.4015,2881.396,597.6896" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29.7832" x="2887.85" y="597.8869">uses</text></g><!--reverse link Trip to DriverMatchingStrategy--><g id="link_Trip_DriverMatchingStrategy"><path codeLine="162" d="M2495.6157,559.6088 C2447.0857,578.4788 2407.3,590.87 2357.85,601.82 C2162.91,645.02 1657.07,600.69 1459.85,631.82 C1394.53,642.14 1323.44,661.98 1266.14,680.23 " fill="none" id="Trip-backto-DriverMatchingStrategy" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="2506.8,555.26,2499.7583,553.7063,2495.6157,559.6088,2502.6575,561.1625,2506.8,555.26" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="2416.8739,593.8746,2426.1627,595.9163,2425.5888,590.0666,2416.8739,593.8746" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="29.7832" x="2430.85" y="597.8869">uses</text></g><!--reverse link TripMetaData to Location--><g id="link_TripMetaData_Location"><path codeLine="163" d="M604.4741,534.2382 C616.4241,581.1182 627.4,624.13 637.57,664.03 " fill="none" id="TripMetaData-backto-Location" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="601.51,522.61,599.116,529.4121,604.4741,534.2382,606.8681,527.4361,601.51,522.61" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="628.0854,598.2314,628.6983,588.7406,623.0027,590.1929,628.0854,598.2314" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="55.0278" x="635.85" y="597.8869">contains</text></g><!--reverse link TripMetaData to RATING--><g id="link_TripMetaData_RATING"><path codeLine="164" d="M506.7957,532.6423 C479.9857,573.4923 455.9,610.21 431.13,647.95 " fill="none" id="TripMetaData-backto-RATING" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="513.38,522.61,506.7438,525.4314,506.7957,532.6423,513.432,529.8209,513.38,522.61" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#000000" points="471.1068,597.5667,478.5264,591.6168,473.6121,588.3921,471.1068,597.5667" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="55.0278" x="482.85" y="597.8869">contains</text></g><!--SRC=[lLZRRjis6BxtKn2zAEJ5pWC4WG0lzXe3YHFOyefT6On4smHqWaWNAzBqsSUpA1uSj-kMcuZypzz_86bSKzJjOOx0SuTpN1ysj8CK7Rw2rn5WVrVW5RuGjfVJDv33CZ-LZCnvKP8tDQ607667YbrBkzkim-qZed0EAKm_WjPUZsz0qPnUIYJLVhVrEgQJyUXjDCfBI0YOepqybJJYt7_bKDYgy2lYqFHRweQXGrX3odP_XmGL_tCOSSiYb3EE1SF1fbRc7Vw2kaT8y-Cx9LDn7icUn2Bo0h8OfMZgAmwxO9VE0uA4PhX28iAOix_KmG7wv-qBJzznaMSX7AUESKjngIDv9PGbD7y3dSXhrZ1czZzPpxBbwXDePRgvzsBV4SBa7X-EaiSNUMcQaYEBwbC555MQtQvccytoqsen5ykdrMAtoMPhiSW-Fud5Hgxkruk5jVxZQRksbyi_DLKRojRBPxwLRJTXQ_Cr4rhldbQxx7wn-ppxozwThVb_oSZrPkhxURRTgC-xsUfkyV2WLelLd7trzTFaBFocrlZADWEiJp4z5MYusTG7QrUB9ehSFYYX2J0xMc8SAXqjRvMpNOBAfQbLXrea1QJBsU8CGq6eOL2vx721EfdjmNuXgiyYNDbk947rxKOuC05XwbnOdm1JOxrf1SK1KMipOUKdUGrrRddbaeb3rcRipH3aWxZi0qZ86S15wu0QLZBJKzuO07w1k1pYQI6cXuiKRLTCrehUTkZK5goxPrnR8XItudli1CuryB3LEI7qVkoX2yBotP-TTfG2xsYGWQ24m2KnwMJ-QwUbHQSX0eqW-59PqHvHJMjLr-URgBouYUmvnUVfYSXzTc025cYxBEHQzpu_vJtLpd6R2ZPxv8TZSKy67PjtOfZkJRXRk1Zqfm9DDkCaSBxf1efrzMKzhm4Gzvm1in-zinDmoW-z3HFwKin4DdYTCH3K1CUaBU5NJfcp_iSbISQoIYDJmfyEZmVJEwUwwHY4pCyAjhUop4DuwZIHHzZQOuAfIfIxi2XKemvwHWSfUowUANTgnBMSkT0OQUudX-tY-9phXL4a0WmOPFjfT5H9L8RJwaT0b-MjXa8FkTPZ8IwdZ0EL6M3ndd6cNLJ3C7IfmeUgTyndZm1bnM9mqlNVGtLL87Q7ht2Dt0V1Uu-EAdZxTTlMCU9TUd_EIgJTVToiW1teB4e8lO6WS-UArHcR89DeAAaO_4Ilb_M-kLI7bkrbGYKWQvbznSw5Wpdc39E12jAcmZctde8Q_Qt6edN1wtlYhaCC6J7tBZelVl1C68xcy9G9W-HdttX-uwKbcFK-KfRmVfB_DftgMv-uhh0peIOW7PcfmndaXMb0ryN2oU9kSfPghl91haQRu0k61q4kjVVNaErsvsRSH_qDC8qPOeyywXqfL-djj-lhoEybOTxuhmwZY0T2xFnJMK3JeoP0hTg6SO9chv2pO8lJpQClok6ZQcN7JeqFf9r6dNxFwB0MD9keENc_7Z3L3KLi51oEbBl9VmvWTPuTCG5oWh4F25hO2V8UiylN1nPNrTJNnxRzSCtUsGNWEgIY4kq5etMX_HNgp9t-9pJz0m00]--></g></svg>