view doc/Architecture/auth-classes.svg @ 10:a50cf11e5178

Rewrite LGDataverse completely upgrading to dataverse4.0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 08 Sep 2015 17:00:21 +0200
parents
children
line wrap: on
line source

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="2050pt" style="width:2713px;height:2050px;" version="1.1" viewBox="0 0 2713 2050" width="2713pt"><defs><filter height="300%" id="f1" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FEFECE" filter="url(#f1)" height="73.9102" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="1953" y="917"/><ellipse cx="2025.75" cy="933" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2028.7231,938.6431 Q2028.1421,938.9419 2027.5029,939.0913 Q2026.8638,939.2407 2026.1582,939.2407 Q2023.6514,939.2407 2022.3315,937.5889 Q2021.0117,935.937 2021.0117,932.8159 Q2021.0117,929.6865 2022.3315,928.0347 Q2023.6514,926.3828 2026.1582,926.3828 Q2026.8638,926.3828 2027.5112,926.5322 Q2028.1587,926.6816 2028.7231,926.9805 L2028.7231,929.7031 Q2028.0923,929.1221 2027.4988,928.8523 Q2026.9053,928.5825 2026.2744,928.5825 Q2024.9297,928.5825 2024.2449,929.6492 Q2023.5601,930.7158 2023.5601,932.8159 Q2023.5601,934.9077 2024.2449,935.9744 Q2024.9297,937.041 2026.2744,937.041 Q2026.9053,937.041 2027.4988,936.7712 Q2028.0923,936.5015 2028.7231,935.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="86" x="2046.25" y="937.5352">AccessRequest</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1954" x2="2192" y1="949" y2="949"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1954" x2="2192" y1="957" y2="957"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="228" x="1959" y="971.6348">AuthenticatedUser getAuthenticatedUser()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="1959" y="984.5898">DvObject getDvObject()</text><rect fill="#FEFECE" filter="url(#f1)" height="151.6406" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="1932" y="1226"/><ellipse cx="2027.75" cy="1242" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2030.7231,1247.6431 Q2030.1421,1247.9419 2029.5029,1248.0913 Q2028.8638,1248.2407 2028.1582,1248.2407 Q2025.6514,1248.2407 2024.3315,1246.5889 Q2023.0117,1244.937 2023.0117,1241.8159 Q2023.0117,1238.6865 2024.3315,1237.0347 Q2025.6514,1235.3828 2028.1582,1235.3828 Q2028.8638,1235.3828 2029.5112,1235.5322 Q2030.1587,1235.6816 2030.7231,1235.9805 L2030.7231,1238.7031 Q2030.0923,1238.1221 2029.4988,1237.8523 Q2028.9053,1237.5825 2028.2744,1237.5825 Q2026.9297,1237.5825 2026.2449,1238.6492 Q2025.5601,1239.7158 2025.5601,1241.8159 Q2025.5601,1243.9077 2026.2449,1244.9744 Q2026.9297,1246.041 2028.2744,1246.041 Q2028.9053,1246.041 2029.4988,1245.7712 Q2030.0923,1245.5015 2030.7231,1244.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="40" x="2048.25" y="1246.5352">ApiKey</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1933" x2="2171" y1="1258" y2="1258"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1933" x2="2171" y1="1266" y2="1266"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="65" x="1938" y="1280.6348">Long getId()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="1938" y="1293.5898">void setId(Long)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="1938" y="1306.5449">String getKey()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="1938" y="1319.5">void setKey(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="228" x="1938" y="1332.4551">AuthenticatedUser getAuthenticatedUser()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="1938" y="1345.4102">boolean isDisabled()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="1938" y="1358.3652">Timestamp getCreateTime()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="1938" y="1371.3203">Timestamp getExpireTime()</text><rect fill="#FEFECE" filter="url(#f1)" height="73.9102" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="1827" y="1645"/><ellipse cx="1886.25" cy="1661" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1889.2231,1666.6431 Q1888.6421,1666.9419 1888.0029,1667.0913 Q1887.3638,1667.2407 1886.6582,1667.2407 Q1884.1514,1667.2407 1882.8315,1665.5889 Q1881.5117,1663.937 1881.5117,1660.8159 Q1881.5117,1657.6865 1882.8315,1656.0347 Q1884.1514,1654.3828 1886.6582,1654.3828 Q1887.3638,1654.3828 1888.0112,1654.5322 Q1888.6587,1654.6816 1889.2231,1654.9805 L1889.2231,1657.7031 Q1888.5923,1657.1221 1887.9988,1656.8523 Q1887.4053,1656.5825 1886.7744,1656.5825 Q1885.4297,1656.5825 1884.7449,1657.6492 Q1884.0601,1658.7158 1884.0601,1660.8159 Q1884.0601,1662.9077 1884.7449,1663.9744 Q1885.4297,1665.041 1886.7744,1665.041 Q1887.4053,1665.041 1887.9988,1664.7712 Q1888.5923,1664.5015 1889.2231,1663.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="1906.75" y="1665.5352">AuthenticatedUser</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1828" x2="2058" y1="1677" y2="1677"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1828" x2="2058" y1="1685" y2="1685"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="1833" y="1699.6348">String getIdentifier()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="1833" y="1712.5898">RoleAssigneeDisplayInfo getDisplayInfo()</text><rect fill="#FEFECE" filter="url(#f1)" height="86.8652" style="stroke: #A80036; stroke-width: 1.5;" width="240" x="1657" y="1258.5"/><ellipse cx="1699.45" cy="1274.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1702.4231,1280.1431 Q1701.8421,1280.4419 1701.2029,1280.5913 Q1700.5638,1280.7407 1699.8582,1280.7407 Q1697.3514,1280.7407 1696.0315,1279.0889 Q1694.7117,1277.437 1694.7117,1274.3159 Q1694.7117,1271.1865 1696.0315,1269.5347 Q1697.3514,1267.8828 1699.8582,1267.8828 Q1700.5638,1267.8828 1701.2112,1268.0322 Q1701.8587,1268.1816 1702.4231,1268.4805 L1702.4231,1271.2031 Q1701.7923,1270.6221 1701.1988,1270.3523 Q1700.6053,1270.0825 1699.9744,1270.0825 Q1698.6297,1270.0825 1697.9449,1271.1492 Q1697.2601,1272.2158 1697.2601,1274.3159 Q1697.2601,1276.4077 1697.9449,1277.4744 Q1698.6297,1278.541 1699.9744,1278.541 Q1700.6053,1278.541 1701.1988,1278.2712 Q1701.7923,1278.0015 1702.4231,1277.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="147" x="1719.55" y="1279.0352">AuthenticatedUserLookup</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1658" x2="1896" y1="1290.5" y2="1290.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1658" x2="1896" y1="1298.5" y2="1298.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="1663" y="1313.1348">String getPersistentUserIdFromIdp()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="228" x="1663" y="1326.0898">AuthenticatedUser getAuthenticatedUser()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="77" x="1663" y="1339.0449">String getIdp()</text><rect fill="#FEFECE" filter="url(#f1)" height="86.8652" style="stroke: #A80036; stroke-width: 1.5;" width="257" x="2177.75" y="137.5"/><ellipse cx="2236.5" cy="153.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2239.4731,159.1431 Q2238.8921,159.4419 2238.2529,159.5913 Q2237.6138,159.7407 2236.9082,159.7407 Q2234.4014,159.7407 2233.0815,158.0889 Q2231.7617,156.437 2231.7617,153.3159 Q2231.7617,150.1865 2233.0815,148.5347 Q2234.4014,146.8828 2236.9082,146.8828 Q2237.6138,146.8828 2238.2612,147.0322 Q2238.9087,147.1816 2239.4731,147.4805 L2239.4731,150.2031 Q2238.8423,149.6221 2238.2488,149.3523 Q2237.6553,149.0825 2237.0244,149.0825 Q2235.6797,149.0825 2234.9949,150.1492 Q2234.3101,151.2158 2234.3101,153.3159 Q2234.3101,155.4077 2234.9949,156.4744 Q2235.6797,157.541 2237.0244,157.541 Q2237.6553,157.541 2238.2488,157.2712 Q2238.8423,157.0015 2239.4731,156.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="131" x="2257" y="158.0352">AuthenticationManager</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2178.75" x2="2433.75" y1="169.5" y2="169.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2178.75" x2="2433.75" y1="177.5" y2="177.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="198" x="2183.75" y="192.1348">AuthenticationManager getInstance()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="245" x="2183.75" y="205.0898">void registerProvider(AuthenticationProvider)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="212" x="2183.75" y="218.0449">Collection getAuthenticationProviders()</text><rect fill="#FEFECE" filter="url(#f1)" height="60.9551" style="stroke: #A80036; stroke-width: 1.5;" width="216" x="1323" y="420.5"/><ellipse cx="1362.75" cy="436.5" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1358.6777,432.2651 L1358.6777,430.1069 L1366.0571,430.1069 L1366.0571,432.2651 L1363.5918,432.2651 L1363.5918,440.3418 L1366.0571,440.3418 L1366.0571,442.5 L1358.6777,442.5 L1358.6777,440.3418 L1361.1431,440.3418 L1361.1431,432.2651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="129" x="1382.25" y="441.0352">AuthenticationProvider</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1324" x2="1538" y1="452.5" y2="452.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1324" x2="1538" y1="460.5" y2="460.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="1329" y="475.1348">RoleAssignee getRoleAssignee(String)</text><rect fill="#FEFECE" filter="url(#f1)" height="307.1016" style="stroke: #A80036; stroke-width: 1.5;" width="185" x="2299.75" y="800.5"/><ellipse cx="2346.5" cy="816.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2349.4731,822.1431 Q2348.8921,822.4419 2348.2529,822.5913 Q2347.6138,822.7407 2346.9082,822.7407 Q2344.4014,822.7407 2343.0815,821.0889 Q2341.7617,819.437 2341.7617,816.3159 Q2341.7617,813.1865 2343.0815,811.5347 Q2344.4014,809.8828 2346.9082,809.8828 Q2347.6138,809.8828 2348.2612,810.0322 Q2348.9087,810.1816 2349.4731,810.4805 L2349.4731,813.2031 Q2348.8423,812.6221 2348.2488,812.3523 Q2347.6553,812.0825 2347.0244,812.0825 Q2345.6797,812.0825 2344.9949,813.1492 Q2344.3101,814.2158 2344.3101,816.3159 Q2344.3101,818.4077 2344.9949,819.4744 Q2345.6797,820.541 2347.0244,820.541 Q2347.6553,820.541 2348.2488,820.2712 Q2348.8423,820.0015 2349.4731,819.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="83" x="2367" y="821.0352">DataverseRole</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2300.75" x2="2483.75" y1="832.5" y2="832.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="2305.75" y="847.1348">Comparator CMP_BY_NAME</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2300.75" x2="2483.75" y1="853.4551" y2="853.4551"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="2305.75" y="868.0898">Set permissionSet(Iterable)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="65" x="2305.75" y="881.0449">Long getId()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="2305.75" y="894">void setId(Long)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="2305.75" y="906.9551">String getName()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="2305.75" y="919.9102">void setName(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="2305.75" y="932.8652">String getDescription()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="2305.75" y="945.8203">void setDescription(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="2305.75" y="958.7754">String getAlias()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="2305.75" y="971.7305">void setAlias(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="2305.75" y="984.6855">DvObject getOwner()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="2305.75" y="997.6406">void setOwner(DvObject)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="2305.75" y="1010.5957">void addPermissions(Collection)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="172" x="2305.75" y="1023.5508">void addPermission(Permission)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="2305.75" y="1036.5059">void clearPermissions()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="2305.75" y="1049.4609">Set permissions()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="2305.75" y="1062.416">long getPermissionsBits()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="2305.75" y="1075.3711">String toString()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="2305.75" y="1088.3262">int hashCode()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="2305.75" y="1101.2813">boolean equals(Object)</text><rect fill="#FEFECE" filter="url(#f1)" height="86.8652" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="1433" y="1638.5"/><ellipse cx="1515.25" cy="1654.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1518.2231,1660.1431 Q1517.6421,1660.4419 1517.0029,1660.5913 Q1516.3638,1660.7407 1515.6582,1660.7407 Q1513.1514,1660.7407 1511.8315,1659.0889 Q1510.5117,1657.437 1510.5117,1654.3159 Q1510.5117,1651.1865 1511.8315,1649.5347 Q1513.1514,1647.8828 1515.6582,1647.8828 Q1516.3638,1647.8828 1517.0112,1648.0322 Q1517.6587,1648.1816 1518.2231,1648.4805 L1518.2231,1651.2031 Q1517.5923,1650.6221 1516.9988,1650.3523 Q1516.4053,1650.0825 1515.7744,1650.0825 Q1514.4297,1650.0825 1513.7449,1651.1492 Q1513.0601,1652.2158 1513.0601,1654.3159 Q1513.0601,1656.4077 1513.7449,1657.4744 Q1514.4297,1658.541 1515.7744,1658.541 Q1516.4053,1658.541 1516.9988,1658.2712 Q1517.5923,1658.0015 1518.2231,1657.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="59" x="1535.75" y="1659.0352">GuestUser</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1434" x2="1664" y1="1670.5" y2="1670.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1434" x2="1664" y1="1678.5" y2="1678.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="1439" y="1693.1348">GuestUser get()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="1439" y="1706.0898">String getIdentifier()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="1439" y="1719.0449">RoleAssigneeDisplayInfo getDisplayInfo()</text><rect fill="#FEFECE" filter="url(#f1)" height="86.8652" style="stroke: #A80036; stroke-width: 1.5;" width="216" x="1440" y="600.5"/><ellipse cx="1466.7" cy="616.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1469.6731,622.1431 Q1469.0921,622.4419 1468.4529,622.5913 Q1467.8138,622.7407 1467.1082,622.7407 Q1464.6014,622.7407 1463.2815,621.0889 Q1461.9617,619.437 1461.9617,616.3159 Q1461.9617,613.1865 1463.2815,611.5347 Q1464.6014,609.8828 1467.1082,609.8828 Q1467.8138,609.8828 1468.4612,610.0322 Q1469.1087,610.1816 1469.6731,610.4805 L1469.6731,613.2031 Q1469.0423,612.6221 1468.4488,612.3523 Q1467.8553,612.0825 1467.2244,612.0825 Q1465.8797,612.0825 1465.1949,613.1492 Q1464.5101,614.2158 1464.5101,616.3159 Q1464.5101,618.4077 1465.1949,619.4744 Q1465.8797,620.541 1467.2244,620.541 Q1467.8553,620.541 1468.4488,620.2712 Q1469.0423,620.0015 1469.6731,619.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="158" x="1483.3" y="621.0352">LocalAuthenticationProvider</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1441" x2="1655" y1="632.5" y2="632.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1441" x2="1655" y1="640.5" y2="640.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="1446" y="655.1348">RoleAssignee getRoleAssignee(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="77" x="1446" y="668.0898">List listUsers()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="1446" y="681.0449">Group createGroup()</text><rect fill="#FEFECE" filter="url(#f1)" height="345.9668" style="stroke: #A80036; stroke-width: 1.5;" width="223" x="971.75" y="8"/><ellipse cx="1048" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1050.9731,29.6431 Q1050.3921,29.9419 1049.7529,30.0913 Q1049.1138,30.2407 1048.4082,30.2407 Q1045.9014,30.2407 1044.5815,28.5889 Q1043.2617,26.937 1043.2617,23.8159 Q1043.2617,20.6865 1044.5815,19.0347 Q1045.9014,17.3828 1048.4082,17.3828 Q1049.1138,17.3828 1049.7612,17.5322 Q1050.4087,17.6816 1050.9731,17.9805 L1050.9731,20.7031 Q1050.3423,20.1221 1049.7488,19.8523 Q1049.1553,19.5825 1048.5244,19.5825 Q1047.1797,19.5825 1046.4949,20.6492 Q1045.8101,21.7158 1045.8101,23.8159 Q1045.8101,25.9077 1046.4949,26.9744 Q1047.1797,28.041 1048.5244,28.041 Q1049.1553,28.041 1049.7488,27.7712 Q1050.3423,27.5015 1050.9731,26.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="62" x="1068.5" y="28.5352">Permission</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="972.75" x2="1193.75" y1="40" y2="40"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="977.75" y="54.6348">Permission Discover</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="977.75" y="67.5898">Permission Download</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="211" x="977.75" y="80.5449">Permission AccessUnpublishedContent</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="202" x="977.75" y="93.5">Permission AccessRestrictedMetadata</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="133" x="977.75" y="106.4551">Permission UndoableEdit</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="977.75" y="119.4102">Permission DestructiveEdit</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="130" x="977.75" y="132.3652">Permission EditMetadata</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="977.75" y="145.3203">Permission AddDataverse</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="977.75" y="158.2754">Permission AddDataset</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="165" x="977.75" y="171.2305">Permission AddDatasetVersion</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="152" x="977.75" y="184.1855">Permission ChooseTemplate</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="977.75" y="197.1406">Permission ChooseFacets</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="101" x="977.75" y="210.0957">Permission Publish</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="977.75" y="223.0508">Permission Style</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="977.75" y="236.0059">Permission GrantPermissions</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="977.75" y="248.9609">Permission Tracking</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="152" x="977.75" y="261.916">Permission CreateTemplates</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="977.75" y="274.8711">Permission RestrictFile</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="977.75" y="287.8262">Permission RestrictMetadata</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="972.75" x2="1193.75" y1="294.1465" y2="294.1465"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="104" x="977.75" y="308.7813">Permission values()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="977.75" y="321.7363">Permission valueOf(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="128" x="977.75" y="334.6914">String getHumanName()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="977.75" y="347.6465">boolean appliesTo(Class)</text><rect fill="#FEFECE" filter="url(#f1)" height="73.9102" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="1424" y="917"/><ellipse cx="1497.75" cy="933" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1493.6777,928.7651 L1493.6777,926.6069 L1501.0571,926.6069 L1501.0571,928.7651 L1498.5918,928.7651 L1498.5918,936.8418 L1501.0571,936.8418 L1501.0571,939 L1493.6777,939 L1493.6777,936.8418 L1496.1431,936.8418 L1496.1431,928.7651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="76" x="1518.25" y="937.5352">RoleAssignee</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1425" x2="1655" y1="949" y2="949"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1425" x2="1655" y1="957" y2="957"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="1430" y="971.6348">String getIdentifier()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="1430" y="984.5898">RoleAssigneeDisplayInfo getDisplayInfo()</text><rect fill="#FEFECE" filter="url(#f1)" height="86.8652" style="stroke: #A80036; stroke-width: 1.5;" width="171" x="1519.75" y="137.5"/><ellipse cx="1534.75" cy="153.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1537.7231,159.1431 Q1537.1421,159.4419 1536.5029,159.5913 Q1535.8638,159.7407 1535.1582,159.7407 Q1532.6514,159.7407 1531.3315,158.0889 Q1530.0117,156.437 1530.0117,153.3159 Q1530.0117,150.1865 1531.3315,148.5347 Q1532.6514,146.8828 1535.1582,146.8828 Q1535.8638,146.8828 1536.5112,147.0322 Q1537.1587,147.1816 1537.7231,147.4805 L1537.7231,150.2031 Q1537.0923,149.6221 1536.4988,149.3523 Q1535.9053,149.0825 1535.2744,149.0825 Q1533.9297,149.0825 1533.2449,150.1492 Q1532.5601,151.2158 1532.5601,153.3159 Q1532.5601,155.4077 1533.2449,156.4744 Q1533.9297,157.541 1535.2744,157.541 Q1535.9053,157.541 1536.4988,157.2712 Q1537.0923,157.0015 1537.7231,156.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="139" x="1548.75" y="158.0352">RoleAssigneeDisplayInfo</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1520.75" x2="1689.75" y1="169.5" y2="169.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1520.75" x2="1689.75" y1="177.5" y2="177.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="83" x="1525.75" y="192.1348">String getTitle()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="133" x="1525.75" y="205.0898">String getEmailAddress()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="1525.75" y="218.0449">String getAffiliation()</text><rect fill="#FEFECE" filter="url(#f1)" height="73.9102" style="stroke: #A80036; stroke-width: 1.5;" width="216" x="1189" y="607"/><ellipse cx="1217.95" cy="623" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1220.9231,628.6431 Q1220.3421,628.9419 1219.7029,629.0913 Q1219.0638,629.2407 1218.3582,629.2407 Q1215.8514,629.2407 1214.5315,627.5889 Q1213.2117,625.937 1213.2117,622.8159 Q1213.2117,619.6865 1214.5315,618.0347 Q1215.8514,616.3828 1218.3582,616.3828 Q1219.0638,616.3828 1219.7112,616.5322 Q1220.3587,616.6816 1220.9231,616.9805 L1220.9231,619.7031 Q1220.2923,619.1221 1219.6988,618.8523 Q1219.1053,618.5825 1218.4744,618.5825 Q1217.1297,618.5825 1216.4449,619.6492 Q1215.7601,620.7158 1215.7601,622.8159 Q1215.7601,624.9077 1216.4449,625.9744 Q1217.1297,627.041 1218.4744,627.041 Q1219.1053,627.041 1219.6988,626.7712 Q1220.2923,626.5015 1220.9231,625.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="153" x="1235.05" y="627.5352">ShibAuthenticationProvider</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1190" x2="1404" y1="639" y2="639"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1190" x2="1404" y1="647" y2="647"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="204" x="1195" y="661.6348">RoleAssignee getRoleAssignee(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="1195" y="674.5898">Group createGroup()</text><rect fill="#FEFECE" filter="url(#f1)" height="60.9551" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="1476.75" y="1271.5"/><ellipse cx="1532" cy="1287.5" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1527.9277,1283.2651 L1527.9277,1281.1069 L1535.3071,1281.1069 L1535.3071,1283.2651 L1532.8418,1283.2651 L1532.8418,1291.3418 L1535.3071,1291.3418 L1535.3071,1293.5 L1527.9277,1293.5 L1527.9277,1291.3418 L1530.3931,1291.3418 L1530.3931,1283.2651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="26" x="1552.5" y="1292.0352">User</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1477.75" x2="1620.75" y1="1303.5" y2="1303.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="133" x="1482.75" y="1318.1348">String IDENTIFIER_PREFIX</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1477.75" x2="1620.75" y1="1324.4551" y2="1324.4551"/><rect fill="#FEFECE" filter="url(#f1)" height="60.9551" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="1574.75" y="420.5"/><ellipse cx="1589.75" cy="436.5" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1585.6777,432.2651 L1585.6777,430.1069 L1593.0571,430.1069 L1593.0571,432.2651 L1590.5918,432.2651 L1590.5918,440.3418 L1593.0571,440.3418 L1593.0571,442.5 L1585.6777,442.5 L1585.6777,440.3418 L1588.1431,440.3418 L1588.1431,432.2651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="57" x="1603.75" y="441.0352">UserLister</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1575.75" x2="1662.75" y1="452.5" y2="452.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1575.75" x2="1662.75" y1="460.5" y2="460.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="77" x="1580.75" y="475.1348">List listUsers()</text><rect fill="#FEFECE" filter="url(#f1)" height="138.6855" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="1762.75" y="884.5"/><ellipse cx="1777.75" cy="900.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1780.7231,906.1431 Q1780.1421,906.4419 1779.5029,906.5913 Q1778.8638,906.7407 1778.1582,906.7407 Q1775.6514,906.7407 1774.3315,905.0889 Q1773.0117,903.437 1773.0117,900.3159 Q1773.0117,897.1865 1774.3315,895.5347 Q1775.6514,893.8828 1778.1582,893.8828 Q1778.8638,893.8828 1779.5112,894.0322 Q1780.1587,894.1816 1780.7231,894.4805 L1780.7231,897.2031 Q1780.0923,896.6221 1779.4988,896.3523 Q1778.9053,896.0825 1778.2744,896.0825 Q1776.9297,896.0825 1776.2449,897.1492 Q1775.5601,898.2158 1775.5601,900.3159 Q1775.5601,902.4077 1776.2449,903.4744 Q1776.9297,904.541 1778.2744,904.541 Q1778.9053,904.541 1779.4988,904.2712 Q1780.0923,904.0015 1780.7231,903.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="123" x="1791.75" y="905.0352">UserRoleAssignments</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1763.75" x2="1916.75" y1="916.5" y2="916.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1763.75" x2="1916.75" y1="924.5" y2="924.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="94" x="1768.75" y="939.1348">void add(Iterable)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="1768.75" y="952.0898">void add(RoleAssignment)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="109" x="1768.75" y="965.0449">Set getPermissions()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="1768.75" y="978">User getUser()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="1768.75" y="990.9551">Set getAssignments()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="91" x="1768.75" y="1003.9102">Iterator iterator()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="96" x="1768.75" y="1016.8652">boolean isEmpty()</text><rect fill="#FEFECE" filter="url(#f1)" height="60.9551" style="stroke: #A80036; stroke-width: 1.5;" width="250" x="1918" y="613.5"/><ellipse cx="1978.25" cy="629.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1981.2231,635.1431 Q1980.6421,635.4419 1980.0029,635.5913 Q1979.3638,635.7407 1978.6582,635.7407 Q1976.1514,635.7407 1974.8315,634.0889 Q1973.5117,632.437 1973.5117,629.3159 Q1973.5117,626.1865 1974.8315,624.5347 Q1976.1514,622.8828 1978.6582,622.8828 Q1979.3638,622.8828 1980.0112,623.0322 Q1980.6587,623.1816 1981.2231,623.4805 L1981.2231,626.2031 Q1980.5923,625.6221 1979.9988,625.3523 Q1979.4053,625.0825 1978.7744,625.0825 Q1977.4297,625.0825 1976.7449,626.1492 Q1976.0601,627.2158 1976.0601,629.3159 Q1976.0601,631.4077 1976.7449,632.4744 Q1977.4297,633.541 1978.7744,633.541 Q1979.4053,633.541 1979.9988,633.2712 Q1980.5923,633.0015 1981.2231,632.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="121" x="1998.75" y="634.0352">AssignRoleCommand</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1919" x2="2167" y1="645.5" y2="645.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1919" x2="2167" y1="653.5" y2="653.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="238" x="1924" y="668.1348">RoleAssignment execute(CommandContext)</text><rect fill="#FEFECE" filter="url(#f1)" height="60.9551" style="stroke: #A80036; stroke-width: 1.5;" width="239" x="2203.75" y="613.5"/><ellipse cx="2258" cy="629.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2260.9731,635.1431 Q2260.3921,635.4419 2259.7529,635.5913 Q2259.1138,635.7407 2258.4082,635.7407 Q2255.9014,635.7407 2254.5815,634.0889 Q2253.2617,632.437 2253.2617,629.3159 Q2253.2617,626.1865 2254.5815,624.5347 Q2255.9014,622.8828 2258.4082,622.8828 Q2259.1138,622.8828 2259.7612,623.0322 Q2260.4087,623.1816 2260.9731,623.4805 L2260.9731,626.2031 Q2260.3423,625.6221 2259.7488,625.3523 Q2259.1553,625.0825 2258.5244,625.0825 Q2257.1797,625.0825 2256.4949,626.1492 Q2255.8101,627.2158 2255.8101,629.3159 Q2255.8101,631.4077 2256.4949,632.4744 Q2257.1797,633.541 2258.5244,633.541 Q2259.1553,633.541 2259.7488,633.2712 Q2260.3423,633.0015 2260.9731,632.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="2278.5" y="634.0352">CreateRoleCommand</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2204.75" x2="2441.75" y1="645.5" y2="645.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2204.75" x2="2441.75" y1="653.5" y2="653.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="227" x="2209.75" y="668.1348">DataverseRole execute(CommandContext)</text><rect fill="#FEFECE" filter="url(#f1)" height="112.7754" style="stroke: #A80036; stroke-width: 1.5;" width="222" x="797" y="1928.5"/><ellipse cx="873.75" cy="1944.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M876.7231,1950.1431 Q876.1421,1950.4419 875.5029,1950.5913 Q874.8638,1950.7407 874.1582,1950.7407 Q871.6514,1950.7407 870.3315,1949.0889 Q869.0117,1947.437 869.0117,1944.3159 Q869.0117,1941.1865 870.3315,1939.5347 Q871.6514,1937.8828 874.1582,1937.8828 Q874.8638,1937.8828 875.5112,1938.0322 Q876.1587,1938.1816 876.7231,1938.4805 L876.7231,1941.2031 Q876.0923,1940.6221 875.4988,1940.3523 Q874.9053,1940.0825 874.2744,1940.0825 Q872.9297,1940.0825 872.2449,1941.1492 Q871.5601,1942.2158 871.5601,1944.3159 Q871.5601,1946.4077 872.2449,1947.4744 Q872.9297,1948.541 874.2744,1948.541 Q874.9053,1948.541 875.4988,1948.2712 Q876.0923,1948.0015 876.7231,1947.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="894.25" y="1949.0352">ShibGroup</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="1018" y1="1960.5" y2="1960.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="798" x2="1018" y1="1968.5" y2="1968.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="132" x="803" y="1983.1348">Map getHeaderMatches()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="803" y="1996.0898">boolean contains(User, ServletRequest)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="803" y="2009.0449">boolean isEditable()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="803" y="2022">GroupCreator getCreator()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="803" y="2034.9551">String getIdentifier()</text><rect fill="#FEFECE" filter="url(#f1)" height="86.8652" style="stroke: #A80036; stroke-width: 1.5;" width="198" x="1944" y="137.5"/><ellipse cx="2009.25" cy="153.5" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2005.1777,149.2651 L2005.1777,147.1069 L2012.5571,147.1069 L2012.5571,149.2651 L2010.0918,149.2651 L2010.0918,157.3418 L2012.5571,157.3418 L2012.5571,159.5 L2005.1777,159.5 L2005.1777,157.3418 L2007.6431,157.3418 L2007.6431,149.2651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="59" x="2029.75" y="158.0352">Command</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1945" x2="2141" y1="169.5" y2="169.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1945" x2="2141" y1="177.5" y2="177.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="186" x="1950" y="192.1348">Object execute(CommandContext)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="1950" y="205.0898">Map getAffectedDvObjects()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="1950" y="218.0449">User getUser()</text><rect fill="#FEFECE" filter="url(#f1)" height="73.9102" style="stroke: #A80036; stroke-width: 1.5;" width="162" x="1962" y="414"/><ellipse cx="1987.35" cy="430" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1987.4633,425.3481 L1986.3095,430.4199 L1988.6254,430.4199 Z M1985.9691,423.1069 L1988.9657,423.1069 L1992.3109,435.5 L1989.8622,435.5 L1989.0985,432.437 L1985.8197,432.437 L1985.0727,435.5 L1982.6239,435.5 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="107" x="2003.65" y="434.5352">AbstractCommand</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1963" x2="2123" y1="446" y2="446"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1963" x2="2123" y1="454" y2="454"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="1968" y="468.6348">Map getAffectedDvObjects()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="78" x="1968" y="481.5898">User getUser()</text><rect fill="#FEFECE" filter="url(#f1)" height="112.7754" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="535" y="1625.5"/><ellipse cx="604.75" cy="1641.5" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M604.8633,1636.8481 L603.7095,1641.9199 L606.0254,1641.9199 Z M603.3691,1634.6069 L606.3657,1634.6069 L609.7109,1647 L607.2622,1647 L606.4985,1643.937 L603.2197,1643.937 L602.4727,1647 L600.0239,1647 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="84" x="625.25" y="1646.0352">AbstractGroup</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="536" x2="766" y1="1657.5" y2="1657.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="536" x2="766" y1="1665.5" y2="1665.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="541" y="1680.1348">String getAlias()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="541" y="1693.0898">String getName()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="541" y="1706.0449">String getDescription()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="541" y="1719">Set getDirectSubGroups()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="541" y="1731.9551">RoleAssigneeDisplayInfo getDisplayInfo()</text><rect fill="#FEFECE" filter="url(#f1)" height="112.7754" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="6" y="1928.5"/><ellipse cx="94.75" cy="1944.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M97.7231,1950.1431 Q97.1421,1950.4419 96.5029,1950.5913 Q95.8638,1950.7407 95.1582,1950.7407 Q92.6514,1950.7407 91.3315,1949.0889 Q90.0117,1947.437 90.0117,1944.3159 Q90.0117,1941.1865 91.3315,1939.5347 Q92.6514,1937.8828 95.1582,1937.8828 Q95.8638,1937.8828 96.5112,1938.0322 Q97.1587,1938.1816 97.7231,1938.4805 L97.7231,1941.2031 Q97.0923,1940.6221 96.4988,1940.3523 Q95.9053,1940.0825 95.2744,1940.0825 Q93.9297,1940.0825 93.2449,1941.1492 Q92.5601,1942.2158 92.5601,1944.3159 Q92.5601,1946.4077 93.2449,1947.4744 Q93.9297,1948.541 95.2744,1948.541 Q95.9053,1948.541 96.4988,1948.2712 Q97.0923,1948.0015 97.7231,1947.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="46" x="115.25" y="1949.0352">AllUsers</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="237" y1="1960.5" y2="1960.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="237" y1="1968.5" y2="1968.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="12" y="1983.1348">boolean contains(User, ServletRequest)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="12" y="1996.0898">boolean isEditable()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="12" y="2009.0449">GroupCreator getCreator()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="12" y="2022">String getIdentifier()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="12" y="2034.9551">RoleAssigneeDisplayInfo getDisplayInfo()</text><rect fill="#FEFECE" filter="url(#f1)" height="112.7754" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="273" y="1928.5"/><ellipse cx="329.25" cy="1944.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M332.2231,1950.1431 Q331.6421,1950.4419 331.0029,1950.5913 Q330.3638,1950.7407 329.6582,1950.7407 Q327.1514,1950.7407 325.8315,1949.0889 Q324.5117,1947.437 324.5117,1944.3159 Q324.5117,1941.1865 325.8315,1939.5347 Q327.1514,1937.8828 329.6582,1937.8828 Q330.3638,1937.8828 331.0112,1938.0322 Q331.6587,1938.1816 332.2231,1938.4805 L332.2231,1941.2031 Q331.5923,1940.6221 330.9988,1940.3523 Q330.4053,1940.0825 329.7744,1940.0825 Q328.4297,1940.0825 327.7449,1941.1492 Q327.0601,1942.2158 327.0601,1944.3159 Q327.0601,1946.4077 327.7449,1947.4744 Q328.4297,1948.541 329.7744,1948.541 Q330.4053,1948.541 330.9988,1948.2712 Q331.5923,1948.0015 332.2231,1947.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="111" x="349.75" y="1949.0352">AuthenticatedUsers</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="274" x2="504" y1="1960.5" y2="1960.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="274" x2="504" y1="1968.5" y2="1968.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="279" y="1983.1348">boolean contains(User, ServletRequest)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="279" y="1996.0898">boolean isEditable()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="279" y="2009.0449">GroupCreator getCreator()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="279" y="2022">String getIdentifier()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="279" y="2034.9551">RoleAssigneeDisplayInfo getDisplayInfo()</text><rect fill="#FEFECE" filter="url(#f1)" height="203.4609" style="stroke: #A80036; stroke-width: 1.5;" width="232" x="851" y="1580.5"/><ellipse cx="924.25" cy="1596.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M927.2231,1602.1431 Q926.6421,1602.4419 926.0029,1602.5913 Q925.3638,1602.7407 924.6582,1602.7407 Q922.1514,1602.7407 920.8315,1601.0889 Q919.5117,1599.437 919.5117,1596.3159 Q919.5117,1593.1865 920.8315,1591.5347 Q922.1514,1589.8828 924.6582,1589.8828 Q925.3638,1589.8828 926.0112,1590.0322 Q926.6587,1590.1816 927.2231,1590.4805 L927.2231,1593.2031 Q926.5923,1592.6221 925.9988,1592.3523 Q925.4053,1592.0825 924.7744,1592.0825 Q923.4297,1592.0825 922.7449,1593.1492 Q922.0601,1594.2158 922.0601,1596.3159 Q922.0601,1598.4077 922.7449,1599.4744 Q923.4297,1600.541 924.7744,1600.541 Q925.4053,1600.541 925.9988,1600.2712 Q926.5923,1600.0015 927.2231,1599.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="77" x="944.75" y="1601.0352">ExplicitGroup</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="1082" y1="1612.5" y2="1612.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="852" x2="1082" y1="1620.5" y2="1620.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="857" y="1635.1348">void add(User)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="857" y="1648.0898">void add(Group)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="857" y="1661.0449">void remove(RoleAssignee)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="857" y="1674">String getAlias()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="857" y="1686.9551">String getName()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="857" y="1699.9102">String getDescription()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="857" y="1712.8652">boolean contains(User, ServletRequest)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="857" y="1725.8203">boolean isEditable()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="857" y="1738.7754">GroupCreator getCreator()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="857" y="1751.7305">Set getDirectSubGroups()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="857" y="1764.6855">String getIdentifier()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="857" y="1777.6406">RoleAssigneeDisplayInfo getDisplayInfo()</text><rect fill="#FEFECE" filter="url(#f1)" height="73.9102" style="stroke: #A80036; stroke-width: 1.5;" width="163" x="1054.75" y="1948"/><ellipse cx="1074.7" cy="1964" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1077.6731,1969.6431 Q1077.0921,1969.9419 1076.4529,1970.0913 Q1075.8138,1970.2407 1075.1082,1970.2407 Q1072.6014,1970.2407 1071.2815,1968.5889 Q1069.9617,1966.937 1069.9617,1963.8159 Q1069.9617,1960.6865 1071.2815,1959.0347 Q1072.6014,1957.3828 1075.1082,1957.3828 Q1075.8138,1957.3828 1076.4612,1957.5322 Q1077.1087,1957.6816 1077.6731,1957.9805 L1077.6731,1960.7031 Q1077.0423,1960.1221 1076.4488,1959.8523 Q1075.8553,1959.5825 1075.2244,1959.5825 Q1073.8797,1959.5825 1073.1949,1960.6492 Q1072.5101,1961.7158 1072.5101,1963.8159 Q1072.5101,1965.9077 1073.1949,1966.9744 Q1073.8797,1968.041 1075.2244,1968.041 Q1075.8553,1968.041 1076.4488,1967.7712 Q1077.0423,1967.5015 1077.6731,1966.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="120" x="1089.8" y="1968.5352">ExplicitGroupCreator</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1055.75" x2="1216.75" y1="1980" y2="1980"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1055.75" x2="1216.75" y1="1988" y2="1988"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="1060.75" y="2002.6348">ExplicitGroup createGroup()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="128" x="1060.75" y="2015.5898">Group getGroup(String)</text><rect fill="#FEFECE" filter="url(#f1)" height="371.877" style="stroke: #A80036; stroke-width: 1.5;" width="205" x="2499.75" y="1496"/><ellipse cx="2556" cy="1512" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2558.9731,1517.6431 Q2558.3921,1517.9419 2557.7529,1518.0913 Q2557.1138,1518.2407 2556.4082,1518.2407 Q2553.9014,1518.2407 2552.5815,1516.5889 Q2551.2617,1514.937 2551.2617,1511.8159 Q2551.2617,1508.6865 2552.5815,1507.0347 Q2553.9014,1505.3828 2556.4082,1505.3828 Q2557.1138,1505.3828 2557.7612,1505.5322 Q2558.4087,1505.6816 2558.9731,1505.9805 L2558.9731,1508.7031 Q2558.3423,1508.1221 2557.7488,1507.8523 Q2557.1553,1507.5825 2556.5244,1507.5825 Q2555.1797,1507.5825 2554.4949,1508.6492 Q2553.8101,1509.7158 2553.8101,1511.8159 Q2553.8101,1513.9077 2554.4949,1514.9744 Q2555.1797,1516.041 2556.5244,1516.041 Q2557.1553,1516.041 2557.7488,1515.7712 Q2558.3423,1515.5015 2558.9731,1514.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="2576.5" y="1516.5352">DataverseUser</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2500.75" x2="2703.75" y1="1528" y2="1528"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2500.75" x2="2703.75" y1="1536" y2="1536"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="65" x="2505.75" y="1550.6348">Long getId()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="2505.75" y="1563.5898">void setId(Long)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="115" x="2505.75" y="1576.5449">String getUserName()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="2505.75" y="1589.5">void setUserName(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="2505.75" y="1602.4551">String getEmail()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="2505.75" y="1615.4102">void setEmail(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="2505.75" y="1628.3652">String getFirstName()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="2505.75" y="1641.3203">void setFirstName(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="2505.75" y="1654.2754">String getLastName()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="2505.75" y="1667.2305">void setLastName(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="165" x="2505.75" y="1680.1855">String getEncryptedPassword()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="187" x="2505.75" y="1693.1406">void setEncryptedPassword(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="2505.75" y="1706.0957">String getAffiliation()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="134" x="2505.75" y="1719.0508">void setAffiliation(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="103" x="2505.75" y="1732.0059">String getPosition()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="125" x="2505.75" y="1744.9609">void setPosition(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="94" x="2505.75" y="1757.916">boolean isGuest()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="171" x="2505.75" y="1770.8711">List getDatasetDataverseUsers()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="193" x="2505.75" y="1783.8262">void setDatasetDataverseUsers(List)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="118" x="2505.75" y="1796.7813">List getDatasetLocks()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="140" x="2505.75" y="1809.7363">void setDatasetLocks(List)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="129" x="2505.75" y="1822.6914">String getDisplayName()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="2505.75" y="1835.6465">int hashCode()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="2505.75" y="1848.6016">boolean equals(Object)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="2505.75" y="1861.5566">String toString()</text><rect fill="#FEFECE" filter="url(#f1)" height="268.2363" style="stroke: #A80036; stroke-width: 1.5;" width="207" x="2288.75" y="1168"/><ellipse cx="2361.5" cy="1184" fill="#A9DCDF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2361.6133,1179.3481 L2360.4595,1184.4199 L2362.7754,1184.4199 Z M2360.1191,1177.1069 L2363.1157,1177.1069 L2366.4609,1189.5 L2364.0122,1189.5 L2363.2485,1186.437 L2359.9697,1186.437 L2359.2227,1189.5 L2356.7739,1189.5 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="53" x="2382" y="1188.5352">DvObject</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2289.75" x2="2494.75" y1="1200" y2="1200"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="156" x="2294.75" y="1214.6348">DvObject.Visitor NamePrinter</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2289.75" x2="2494.75" y1="1220.9551" y2="1220.9551"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="165" x="2294.75" y="1235.5898">DvObjectContainer getOwner()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="65" x="2294.75" y="1248.5449">Long getId()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="2294.75" y="1261.5">void setId(Long)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="170" x="2294.75" y="1274.4551">Timestamp getPublicationDate()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="2294.75" y="1287.4102">void setPublicationDate(Timestamp)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="173" x="2294.75" y="1300.3652">String getReleaseUserIdentifier()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="2294.75" y="1313.3203">void setReleaseUserIdentifier(String)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="2294.75" y="1326.2754">boolean isReleased()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="2294.75" y="1339.2305">Timestamp getCreateDate()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="2294.75" y="1352.1855">void setCreateDate(Timestamp)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="2294.75" y="1365.1406">DataverseUser getCreator()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="2294.75" y="1378.0957">void setCreator(DataverseUser)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="168" x="2294.75" y="1391.0508">Object accept(DvObject.Visitor)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="2294.75" y="1404.0059">int hashCode()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="2294.75" y="1416.9609">boolean equals(Object)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="2294.75" y="1429.916">String toString()</text><rect fill="#FEFECE" filter="url(#f1)" height="86.8652" style="stroke: #A80036; stroke-width: 1.5;" width="133" x="2325.75" y="1638.5"/><ellipse cx="2370" cy="1654.5" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2365.9277,1650.2651 L2365.9277,1648.1069 L2373.3071,1648.1069 L2373.3071,1650.2651 L2370.8418,1650.2651 L2370.8418,1658.3418 L2373.3071,1658.3418 L2373.3071,1660.5 L2365.9277,1660.5 L2365.9277,1658.3418 L2368.3931,1658.3418 L2368.3931,1650.2651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="36" x="2390.5" y="1659.0352">Visitor</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2326.75" x2="2457.75" y1="1670.5" y2="1670.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2326.75" x2="2457.75" y1="1678.5" y2="1678.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="2331.75" y="1693.1348">Object visit(Dataverse)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="2331.75" y="1706.0898">Object visit(Dataset)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="110" x="2331.75" y="1719.0449">Object visit(DataFile)</text><rect fill="#FEFECE" filter="url(#f1)" height="190.5059" style="stroke: #A80036; stroke-width: 1.5;" width="190" x="2478" y="548.5"/><ellipse cx="2523.25" cy="564.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2526.2231,570.1431 Q2525.6421,570.4419 2525.0029,570.5913 Q2524.3638,570.7407 2523.6582,570.7407 Q2521.1514,570.7407 2519.8315,569.0889 Q2518.5117,567.437 2518.5117,564.3159 Q2518.5117,561.1865 2519.8315,559.5347 Q2521.1514,557.8828 2523.6582,557.8828 Q2524.3638,557.8828 2525.0112,558.0322 Q2525.6587,558.1816 2526.2231,558.4805 L2526.2231,561.2031 Q2525.5923,560.6221 2524.9988,560.3523 Q2524.4053,560.0825 2523.7744,560.0825 Q2522.4297,560.0825 2521.7449,561.1492 Q2521.0601,562.2158 2521.0601,564.3159 Q2521.0601,566.4077 2521.7449,567.4744 Q2522.4297,568.541 2523.7744,568.541 Q2524.4053,568.541 2524.9988,568.2712 Q2525.5923,568.0015 2526.2231,567.4204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="2543.75" y="569.0352">RoleAssignment</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2479" x2="2667" y1="580.5" y2="580.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2479" x2="2667" y1="588.5" y2="588.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="65" x="2484" y="603.1348">Long getId()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="2484" y="616.0898">void setId(Long)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="131" x="2484" y="629.0449">DataverseUser getUser()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="2484" y="642">void setUser(DataverseUser)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="127" x="2484" y="654.9551">DataverseRole getRole()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="2484" y="667.9102">void setRole(DataverseRole)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="156" x="2484" y="680.8652">DvObject getDefinitionPoint()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="178" x="2484" y="693.8203">void setDefinitionPoint(DvObject)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="2484" y="706.7754">int hashCode()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="124" x="2484" y="719.7305">boolean equals(Object)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="2484" y="732.6855">String toString()</text><rect fill="#FEFECE" filter="url(#f1)" height="99.8203" style="stroke: #A80036; stroke-width: 1.5;" width="222" x="540" y="1935"/><ellipse cx="623.25" cy="1951" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M626.2231,1956.6431 Q625.6421,1956.9419 625.0029,1957.0913 Q624.3638,1957.2407 623.6582,1957.2407 Q621.1514,1957.2407 619.8315,1955.5889 Q618.5117,1953.937 618.5117,1950.8159 Q618.5117,1947.6865 619.8315,1946.0347 Q621.1514,1944.3828 623.6582,1944.3828 Q624.3638,1944.3828 625.0112,1944.5322 Q625.6587,1944.6816 626.2231,1944.9805 L626.2231,1947.7031 Q625.5923,1947.1221 624.9988,1946.8523 Q624.4053,1946.5825 623.7744,1946.5825 Q622.4297,1946.5825 621.7449,1947.6492 Q621.0601,1948.7158 621.0601,1950.8159 Q621.0601,1952.9077 621.7449,1953.9744 Q622.4297,1955.041 623.7744,1955.041 Q624.4053,1955.041 624.9988,1954.7712 Q625.5923,1954.5015 626.2231,1953.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="47" x="643.75" y="1955.5352">IpGroup</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="761" y1="1967" y2="1967"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="541" x2="761" y1="1975" y2="1975"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="546" y="1989.6348">boolean contains(User, ServletRequest)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="546" y="2002.5898">boolean isEditable()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="546" y="2015.5449">GroupCreator getCreator()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="108" x="546" y="2028.5">String getIdentifier()</text><rect fill="#FEFECE" filter="url(#f1)" height="138.6855" style="stroke: #A80036; stroke-width: 1.5;" width="222" x="856" y="1232.5"/><ellipse cx="944.75" cy="1248.5" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M940.6777,1244.2651 L940.6777,1242.1069 L948.0571,1242.1069 L948.0571,1244.2651 L945.5918,1244.2651 L945.5918,1252.3418 L948.0571,1252.3418 L948.0571,1254.5 L940.6777,1254.5 L940.6777,1252.3418 L943.1431,1252.3418 L943.1431,1244.2651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="36" x="965.25" y="1253.0352">Group</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="857" x2="1077" y1="1264.5" y2="1264.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="857" x2="1077" y1="1272.5" y2="1272.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="862" y="1287.1348">String getAlias()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="862" y="1300.0898">String getName()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="122" x="862" y="1313.0449">String getDescription()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="210" x="862" y="1326">boolean contains(User, ServletRequest)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="862" y="1338.9551">boolean isEditable()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="862" y="1351.9102">GroupCreator getCreator()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="136" x="862" y="1364.8652">Set getDirectSubGroups()</text><rect fill="#FEFECE" filter="url(#f1)" height="60.9551" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="1164" y="420.5"/><ellipse cx="1184.85" cy="436.5" fill="#B4A7E5" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1180.7777,432.2651 L1180.7777,430.1069 L1188.1571,430.1069 L1188.1571,432.2651 L1185.6918,432.2651 L1185.6918,440.3418 L1188.1571,440.3418 L1188.1571,442.5 L1180.7777,442.5 L1180.7777,440.3418 L1183.2431,440.3418 L1183.2431,432.2651 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="79" x="1200.15" y="441.0352">GroupCreator</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1165" x2="1287" y1="452.5" y2="452.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1165" x2="1287" y1="460.5" y2="460.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x="1170" y="475.1348">Group createGroup()</text><rect fill="#FEFECE" filter="url(#f1)" height="73.9102" style="stroke: #A80036; stroke-width: 1.5;" width="124" x="905" y="917"/><ellipse cx="920" cy="933" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M922.9731,938.6431 Q922.3921,938.9419 921.7529,939.0913 Q921.1138,939.2407 920.4082,939.2407 Q917.9014,939.2407 916.5815,937.5889 Q915.2617,935.937 915.2617,932.8159 Q915.2617,929.6865 916.5815,928.0347 Q917.9014,926.3828 920.4082,926.3828 Q921.1138,926.3828 921.7612,926.5322 Q922.4087,926.6816 922.9731,926.9805 L922.9731,929.7031 Q922.3423,929.1221 921.7488,928.8523 Q921.1553,928.5825 920.5244,928.5825 Q919.1797,928.5825 918.4949,929.6492 Q917.8101,930.7158 917.8101,932.8159 Q917.8101,934.9077 918.4949,935.9744 Q919.1797,937.041 920.5244,937.041 Q921.1553,937.041 921.7488,936.7712 Q922.3423,936.5015 922.9731,935.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="92" x="934" y="937.5352">GroupException</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="906" x2="1028" y1="949" y2="949"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="906" x2="1028" y1="957" y2="957"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="96" x="911" y="971.6348">Group getGroup()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="911" y="984.5898">String toString()</text><rect fill="#FEFECE" filter="url(#f1)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="92" x="1037" y="427"/><ellipse cx="1052" cy="443" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1054.9731,448.6431 Q1054.3921,448.9419 1053.7529,449.0913 Q1053.1138,449.2407 1052.4082,449.2407 Q1049.9014,449.2407 1048.5815,447.5889 Q1047.2617,445.937 1047.2617,442.8159 Q1047.2617,439.6865 1048.5815,438.0347 Q1049.9014,436.3828 1052.4082,436.3828 Q1053.1138,436.3828 1053.7612,436.5322 Q1054.4087,436.6816 1054.9731,436.9805 L1054.9731,439.7031 Q1054.3423,439.1221 1053.7488,438.8523 Q1053.1553,438.5825 1052.5244,438.5825 Q1051.1797,438.5825 1050.4949,439.6492 Q1049.8101,440.7158 1049.8101,442.8159 Q1049.8101,444.9077 1050.4949,445.9744 Q1051.1797,447.041 1052.5244,447.041 Q1053.1553,447.041 1053.7488,446.7712 Q1054.3423,446.5015 1054.9731,445.9204 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="1066" y="447.5352">GroupRow</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1038" x2="1128" y1="459" y2="459"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1038" x2="1128" y1="467" y2="467"/><path d="M2575.65,739.68 C2580.4,909.31 2590.44,1267.996 2596.66,1490.348 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2596.81,1495.574,2600.5565,1486.4656,2596.6701,1490.576,2592.5597,1486.6895,2596.81,1495.574" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2587.4348" y="1485.145">1</text><path d="M2517.46,739.5 C2506.93,757.42 2495.66,776.61 2484.34,795.87 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2481.77,800.24,2489.7718,794.4979,2484.2982,795.9263,2482.8699,790.4527,2481.77,800.24" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2476.3357" y="789.9674">1</text><path d="M2568.23,739.62 C2561.14,834.92 2543.69,985.04 2501,1108 C2494.6,1126.432 2486.46,1145.133 2477.52,1163.275 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2475.23,1167.874,2482.8246,1161.6033,2477.4603,1163.399,2475.6646,1158.0347,2475.23,1167.874" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2470.2508" y="1157.0901">1</text><path d="M967,1392.248 C967,1448.657 967,1521.683 967,1580.182 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="960,1391.892,967,1371.891,974,1391.891,960,1391.892" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1023.51,1783.647 C1054.15,1838.228 1090.34,1902.67 1113.22,1943.4356 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1115.67,1947.7958,1114.7489,1937.9901,1113.2209,1943.4367,1107.7743,1941.9087,1115.67,1947.7958" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1102.7531" y="1937.3966">1</text><path d="M535.895,1748.494 C441.508,1802.201 309.353,1877.397 219.969,1928.256 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="532.512,1742.366,553.357,1738.559,539.436,1754.534,532.512,1742.366" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2043,244.84 C2043,297.41 2043,370.57 2043,413.84 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="2036,244.76,2043,224.76,2050,244.76,2036,244.76" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1976.95,488.04 C1951.06,504.18 1922.27,524.82 1900,548 C1808.89,642.81 1795.06,678.41 1745,800 C1691.48,929.99 1727.79,978.54 1673,1108 C1659.2,1140.6 1604.78,1220.987 1572.8,1267.076 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1569.78,1271.426,1578.1954,1266.3093,1572.6291,1267.3171,1571.6213,1261.7508,1569.78,1271.426" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1574.3027" y="1260.8229">1</text><path d="M2367.88,137.49 C2417.64,120.09 2469,134.59 2469,181 C2469,225.87 2420.99,240.91 2372.84,226.13 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2367.88,224.51,2375.1891,231.1113,2372.6319,226.0654,2377.6778,223.5082,2367.88,224.51" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2367.5515" y="244.9234">1</text><path d="M589.42,1753.746 C543.052,1807.017 480.366,1879.034 437.521,1928.256 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="584.229,1749.049,602.64,1738.559,594.789,1758.24,584.229,1749.049" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2113.55,499.53 C2136.38,514.95 2161.79,532.16 2185,548 C2216.96,569.8 2252.96,594.59 2280.17,613.38 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2109.34,505.13,2096.68,488.13,2117.17,493.52,2109.34,505.13" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2329.62,674.53 C2336.03,703.15 2346.28,748.9 2356.63,795.11 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2357.76,800.17,2359.7124,790.5166,2356.6753,795.2891,2351.9029,792.252,2357.76,800.17" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2347.094" y="789.8945">1</text><path d="M1459.97,499.3 C1478.92,530.22 1503.46,570.29 1521.82,600.25 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1453.76,502.55,1449.28,481.84,1465.7,495.24,1453.76,502.55" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1600.93,500.61 C1589.5,531.35 1574.87,570.71 1563.89,600.25 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1594.38,498.15,1607.91,481.84,1607.5,503.03,1594.38,498.15" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1306.67,489.61 C1350.96,510.64 1401.05,535.13 1422,548 C1447.45,563.63 1474.07,583.17 1496.25,600.46 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1303.55,495.88,1288.46,481.01,1309.53,483.22,1303.55,495.88" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1546.9,687.5 C1545.36,746.61 1542.6,852.96 1541.08,911.52 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1540.94,916.69,1545.17,907.7958,1541.0685,911.6917,1537.1727,907.5902,1540.94,916.69" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1531.3183" y="906.2744">1</text><path d="M1541.47,1011.33 C1543.39,1085.49 1546.72,1213.227 1548.22,1271.034 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1534.46,1011.22,1540.94,991.05,1548.46,1010.86,1534.46,1011.22" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1463,1001.49 C1364.03,1061.257 1191.48,1165.448 1078.25,1233.824 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1459.56,995.39,1480.3,991.05,1466.8,1007.38,1459.56,995.39" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M967,991.05 C967,1046.659 967,1154.529 967,1227.172 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="967,1232.34,971,1223.34,967,1227.34,963,1223.34,967,1232.34" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="957.5391" y="1221.7318">1</text><path d="M2392,1436.003 C2392,1504.323 2392,1583.375 2392,1632.786 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2392,1638.067,2396,1629.067,2392,1633.067,2388,1629.067,2392,1638.067" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2382.2945" y="1627.6196">1</text><path d="M2465.89,1436.003 C2475.96,1454.136 2486.46,1473.024 2496.95,1491.914 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2499.62,1496.716,2498.7458,1486.906,2497.1918,1492.3452,2491.7526,1490.7912,2499.62,1496.716" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2486.0794" y="1485.1182">1</text><path d="M1193.82,498.74 C1184.94,513.84 1176.3,531.06 1171,548 C1117.05,720.43 1136,772.33 1136,953 C1136,953 1136,953 1136,1303 C1136,1549.508 1136,1846.208 1136,1947.8248 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1188.03,494.81,1204.56,481.56,1199.9,502.23,1188.03,494.81" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M896.47,1387.369 C835.739,1460.014 749.835,1562.774 697.411,1625.483 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="891.21,1382.746,909.408,1371.891,901.951,1391.726,891.21,1382.746" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1575.89,1349.821 C1592.35,1376.502 1614.85,1409.742 1639,1436 C1681.28,1481.959 1820.17,1588.674 1894.71,1644.882 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1569.82,1353.312,1565.52,1332.564,1581.82,1346.097,1569.82,1353.312" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2030.33,1378.133 C2007.69,1456.664 1972.99,1577.012 1954.9,1639.741 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1953.41,1644.893,1959.7493,1637.3556,1954.7968,1640.0892,1952.0632,1635.1367,1953.41,1644.893" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1945.2722" y="1634.2246">1</text><path d="M2043,508.53 C2043,542.91 2043,585.43 2043,613.34 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="2036,508.38,2043,488.38,2050,508.38,2036,508.38" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2087.6,674.68 C2151.95,717.56 2264.02,792.56 2272,800 C2280.06,807.52 2288.02,815.61 2295.77,824 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2299.56,828.14,2296.4549,818.7934,2296.1924,824.4442,2290.5416,824.1816,2299.56,828.14" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2283.6912" y="815.2685">1</text><path d="M1979.15,674.5 C1917.67,703.76 1822.8,751.18 1745,800 C1689.11,835.07 1629.03,880.98 1588.47,913.32 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1584.11,916.8,1593.6377,914.3055,1588.0157,913.6783,1588.6429,908.0563,1584.11,916.8" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1581.3432" y="906.1168">1</text><path d="M2087.59,674.67 C2125.89,702.52 2179.61,747.66 2210,800 C2280.6,921.57 2230.66,977.13 2282,1108 C2289.21,1126.37 2297.93,1145.106 2307.27,1163.328 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2309.65,1167.949,2309.0746,1158.117,2307.3558,1163.5064,2301.9664,1161.7876,2309.65,1167.949" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2296.1331" y="1157.169">1</text><path d="M1801.47,1023.61 C1783.57,1051.788 1760.59,1083.485 1735,1108 C1698.67,1142.807 1675.22,1133.074 1639,1168 C1608.71,1197.209 1582.85,1238.205 1566.73,1266.937 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1564.23,1271.439,1572.0989,1265.5161,1566.6593,1267.0688,1565.1066,1261.6292,1564.23,1271.439" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1557.0701" y="1260.8383">1</text><path d="M711.698,1754.089 C757.152,1807.326 818.468,1879.139 860.405,1928.256 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="706.1,1758.314,698.437,1738.559,716.748,1749.224,706.1,1758.314" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1549,1352.802 C1549,1427.72 1549,1568.119 1549,1638.499 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1542,1352.661,1549,1332.661,1556,1352.661,1542,1352.661" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1595.77,1638.447 C1644.84,1611.595 1700,1626.112 1700,1682 C1700,1736.141 1648.23,1751.458 1600.38,1727.949 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1595.77,1725.553,1601.9205,1733.2453,1600.2094,1727.8534,1605.6012,1726.1422,1595.77,1725.553" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1593.166" y="1745.9729">1</text><path d="M2100.05,991.09 C2128.62,1031.65 2171.86,1100.671 2189,1168 C2218.39,1283.428 2234.69,1326.002 2189,1436 C2151.74,1525.693 2063.93,1599.539 2003.96,1641.953 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1999.69,1644.952,2009.3546,1643.056,2003.7827,1642.0797,2004.759,1636.5077,1999.69,1644.952" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1998.9281" y="1634.2931">1</text><path d="M2106.24,991.05 C2148.25,1036.61 2222.6,1117.265 2284.94,1184.876 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2288.65,1188.9,2285.5014,1179.568,2285.2652,1185.2199,2279.6133,1184.9837,2288.65,1188.9" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2272.6928" y="1177.6807">1</text><path d="M1795.72,1345.627 C1827.95,1419.026 1893.51,1568.316 1925.14,1640.337 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1927.18,1644.968,1927.2305,1635.1193,1925.1728,1640.3886,1919.9034,1638.3309,1927.18,1644.968" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1914.8618" y="1634.3116">1</text><path d="M2392,1107.516 C2392,1125.897 2392,1144.592 2392,1162.753 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="2392,1167.861,2396,1158.861,2392,1162.861,2388,1158.861,2392,1167.861" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="2382.7293" y="1157.0764">1</text><path d="M1398.29,498.62 C1374.9,531.96 1343.88,576.17 1322.36,606.85 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1392.85,494.2,1410.06,481.84,1404.31,502.24,1392.85,494.2" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1244.19,500.94 C1256.48,533.99 1272.42,576.88 1283.56,606.85 " fill="none" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="none" points="1237.5,503.03,1237.09,481.84,1250.62,498.15,1237.5,503.03" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1325.59,681.24 C1371.29,739.16 1460.49,852.22 1508.16,912.64 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1511.52,916.9,1509.085,907.3569,1508.4227,912.9749,1502.8048,912.3126,1511.52,916.9" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="8" x="1497.1841" y="906.2328">1</text><path d="M651,1758.727 C651,1813.88 651,1886.993 651,1934.747 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="644,1758.559,651,1738.559,658,1758.559,644,1758.559" style="stroke: #A80036; stroke-width: 1.0;"/></g></svg>