<?xml version="1.0" encoding="UTF-8"?>
<XModelerPackage path="Root::Portaview" version="4" xModelerVersion="3.2">
    <Imports/>
    <Model name="Root::Portaview">
        <addMetaClass abstract="false" isControlClass="false" level="1" maxLevel="1" name="User" package="Root::Portaview" singleton="false"/>
        <addMetaClass abstract="false" isControlClass="false" level="1" maxLevel="1" name="Playlist" package="Root::Portaview" singleton="false"/>
        <addMetaClass abstract="true" isControlClass="false" level="1" maxLevel="1" name="AbstractVideo" package="Root::Portaview" singleton="false"/>
        <addMetaClass abstract="false" isControlClass="false" level="1" maxLevel="1" name="Video" package="Root::Portaview" singleton="false"/>
        <addMetaClass abstract="false" isControlClass="false" level="1" maxLevel="1" name="Short" package="Root::Portaview" singleton="false"/>
        <addMetaClass abstract="false" isControlClass="false" level="1" maxLevel="1" name="Subscription" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="user1" of="Root::Portaview::User" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="user2" of="Root::Portaview::User" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="video1" of="Root::Portaview::Video" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="subscription1" of="Root::Portaview::Subscription" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="user3" of="Root::Portaview::User" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="subscription2" of="Root::Portaview::Subscription" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="playlist1" of="Root::Portaview::Playlist" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="short1" of="Root::Portaview::Short" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="playlist2" of="Root::Portaview::Playlist" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="short2" of="Root::Portaview::Short" package="Root::Portaview" singleton="false"/>
        <addInstance abstract="false" level="0" maxLevel="0" name="video2" of="Root::Portaview::Video" package="Root::Portaview" singleton="false"/>
        <changeParent class="Root::Portaview::Short" new="Root::Portaview::AbstractVideo" old="" package="Root::Portaview"/>
        <changeParent class="Root::Portaview::Video" new="Root::Portaview::AbstractVideo" old="" package="Root::Portaview"/>
        <addEnumeration name="GenreEnum"/>
        <addEnumerationValue enum_name="GenreEnum" enum_value_name="MusicVideo"/>
        <addEnumerationValue enum_name="GenreEnum" enum_value_name="SportVideo"/>
        <addEnumerationValue enum_name="GenreEnum" enum_value_name="TravelVideo"/>
        <addAttribute class="Root::Portaview::AbstractVideo" level="0" multiplicity="Seq{1,1,true,false}" name="genre" package="Root::Portaview" type="Root::Portaview::GenreEnum"/>
        <addAttribute class="Root::Portaview::AbstractVideo" level="0" multiplicity="Seq{1,1,true,false}" name="title" package="Root::Portaview" type="Root::XCore::String"/>
        <addAttribute class="Root::Portaview::AbstractVideo" level="0" multiplicity="Seq{1,1,true,false}" name="uploadDate" package="Root::Portaview" type="Root::Auxiliary::Date"/>
        <addAttribute class="Root::Portaview::Playlist" level="0" multiplicity="Seq{1,1,true,false}" name="isPrivate" package="Root::Portaview" type="Root::XCore::Boolean"/>
        <addAttribute class="Root::Portaview::Playlist" level="0" multiplicity="Seq{1,1,true,false}" name="playlistName" package="Root::Portaview" type="Root::XCore::String"/>
        <addAttribute class="Root::Portaview::Short" level="0" multiplicity="Seq{1,1,true,false}" name="isLooped" package="Root::Portaview" type="Root::XCore::Boolean"/>
        <addAttribute class="Root::Portaview::Subscription" level="0" multiplicity="Seq{1,1,true,false}" name="startDate" package="Root::Portaview" type="Root::Auxiliary::Date"/>
        <addAttribute class="Root::Portaview::User" level="0" multiplicity="Seq{0,1,true,false}" name="subscriptionFee" package="Root::Portaview" type="Root::Auxiliary::MonetaryValue"/>
        <addAttribute class="Root::Portaview::User" level="0" multiplicity="Seq{1,1,true,false}" name="firstname" package="Root::Portaview" type="Root::XCore::String"/>
        <addAttribute class="Root::Portaview::User" level="0" multiplicity="Seq{1,1,true,false}" name="lastname" package="Root::Portaview" type="Root::XCore::String"/>
        <addAttribute class="Root::Portaview::User" level="0" multiplicity="Seq{1,1,true,false}" name="showUsername" package="Root::Portaview" type="Root::XCore::Boolean"/>
        <addAttribute class="Root::Portaview::User" level="0" multiplicity="Seq{1,1,true,false}" name="username" package="Root::Portaview" type="Root::XCore::String"/>
        <addOperation body="@Operation calculateMonthlyRevenue[monitor=true,delToClassAllowed=false]():XCore::Float&#10;  self.subscriptionFee.mul(self.calculateSubscriberCount())&#10;end" class="Root::Portaview::User" level="0" monitored="true" name="calculateMonthlyRevenue" package="Root::Portaview" paramNames="" paramTypes="" type="Root::XCore::Float"/>
        <addOperation body="@Operation calculateSubscriberCount[monitor=true,delToClassAllowed=false]():XCore::Integer&#10;  self.subscription.size()&#10;end" class="Root::Portaview::User" level="0" monitored="true" name="calculateSubscriberCount" package="Root::Portaview" paramNames="" paramTypes="" type="Root::XCore::Integer"/>
        <addOperation body="@Operation displayName[monitor=true,delToClassAllowed=false]():XCore::String&#10;  if self.showUsername&#10;  then self.username&#10;  else self.fullName()&#10;  end &#10;end" class="Root::Portaview::User" level="0" monitored="true" name="displayName" package="Root::Portaview" paramNames="" paramTypes="" type="Root::XCore::String"/>
        <addOperation body="@Operation fullName[monitor=true,delToClassAllowed=false]():XCore::String&#10;  self.firstname + &quot; &quot; + self.lastname&#10;end" class="Root::Portaview::User" level="0" monitored="true" name="fullName" package="Root::Portaview" paramNames="" paramTypes="" type="Root::XCore::String"/>
        <addConstraint body="self.userSubscription.subscribedUser &lt;&gt; self" class="Root::Portaview::User" constName="noSelfSubscriptions" instLevel="0" package="Root::Portaview" reason="&quot;A user must not subscribe themselves.&quot;"/>
        <changeSlotValue class="Root::Portaview::playlist1" package="Root::Portaview" slotName="isPrivate" valueToBeParsed="true"/>
        <changeSlotValue class="Root::Portaview::playlist1" package="Root::Portaview" slotName="playlistName" valueToBeParsed="[102,97,118,111,117,114,105,116,101,32,118,105,100,101,111,115].asString()"/>
        <changeSlotValue class="Root::Portaview::playlist2" package="Root::Portaview" slotName="isPrivate" valueToBeParsed="false"/>
        <changeSlotValue class="Root::Portaview::playlist2" package="Root::Portaview" slotName="playlistName" valueToBeParsed="[85,83,65].asString()"/>
        <changeSlotValue class="Root::Portaview::short1" package="Root::Portaview" slotName="genre" valueToBeParsed="Root::Portaview::GenreEnum::SportVideo"/>
        <changeSlotValue class="Root::Portaview::short1" package="Root::Portaview" slotName="isLooped" valueToBeParsed="true"/>
        <changeSlotValue class="Root::Portaview::short1" package="Root::Portaview" slotName="title" valueToBeParsed="[66,101,115,116,32,111,102,32,79,108,121,109,112,105,99,115].asString()"/>
        <changeSlotValue class="Root::Portaview::short1" package="Root::Portaview" slotName="uploadDate" valueToBeParsed="Auxiliary::Date::createDate(2023, 3, 13)"/>
        <changeSlotValue class="Root::Portaview::short2" package="Root::Portaview" slotName="genre" valueToBeParsed="Root::Portaview::GenreEnum::MusicVideo"/>
        <changeSlotValue class="Root::Portaview::short2" package="Root::Portaview" slotName="isLooped" valueToBeParsed="true"/>
        <changeSlotValue class="Root::Portaview::short2" package="Root::Portaview" slotName="title" valueToBeParsed="[68,101,109,111,32,111,102,32,66,117,116,116,101,114,102,108,121].asString()"/>
        <changeSlotValue class="Root::Portaview::short2" package="Root::Portaview" slotName="uploadDate" valueToBeParsed="Auxiliary::Date::createDate(2024, 7, 23)"/>
        <changeSlotValue class="Root::Portaview::subscription1" package="Root::Portaview" slotName="startDate" valueToBeParsed="Auxiliary::Date::createDate(2023, 10, 8)"/>
        <changeSlotValue class="Root::Portaview::subscription2" package="Root::Portaview" slotName="startDate" valueToBeParsed="Auxiliary::Date::createDate(2025, 7, 2)"/>
        <changeSlotValue class="Root::Portaview::user1" package="Root::Portaview" slotName="firstname" valueToBeParsed="[68,101,110,105,115,101].asString()"/>
        <changeSlotValue class="Root::Portaview::user1" package="Root::Portaview" slotName="lastname" valueToBeParsed="[69,115,105,110,101,100].asString()"/>
        <changeSlotValue class="Root::Portaview::user1" package="Root::Portaview" slotName="showUsername" valueToBeParsed="false"/>
        <changeSlotValue class="Root::Portaview::user1" package="Root::Portaview" slotName="subscriptionFee" valueToBeParsed="Auxiliary::MonetaryValue(3.35, Auxiliary::Currency(&quot;EUR&quot;, &quot;EUR&quot;, 1.0))"/>
        <changeSlotValue class="Root::Portaview::user1" package="Root::Portaview" slotName="username" valueToBeParsed="[100,101,110,105,115,101,49,50].asString()"/>
        <changeSlotValue class="Root::Portaview::user2" package="Root::Portaview" slotName="firstname" valueToBeParsed="[71,114,101,103].asString()"/>
        <changeSlotValue class="Root::Portaview::user2" package="Root::Portaview" slotName="lastname" valueToBeParsed="[83,97,109,112,115,111,110].asString()"/>
        <changeSlotValue class="Root::Portaview::user2" package="Root::Portaview" slotName="showUsername" valueToBeParsed="true"/>
        <changeSlotValue class="Root::Portaview::user2" package="Root::Portaview" slotName="subscriptionFee" valueToBeParsed="Auxiliary::MonetaryValue(5.99, Auxiliary::Currency(&quot;EUR&quot;, &quot;EUR&quot;, 1.0))"/>
        <changeSlotValue class="Root::Portaview::user2" package="Root::Portaview" slotName="username" valueToBeParsed="[74,101,115,116,102,117,108,55,49].asString()"/>
        <changeSlotValue class="Root::Portaview::user3" package="Root::Portaview" slotName="firstname" valueToBeParsed="[65,110,116,111,105,110,101].asString()"/>
        <changeSlotValue class="Root::Portaview::user3" package="Root::Portaview" slotName="lastname" valueToBeParsed="[67,111,108,111,109,98,111].asString()"/>
        <changeSlotValue class="Root::Portaview::user3" package="Root::Portaview" slotName="showUsername" valueToBeParsed="true"/>
        <changeSlotValue class="Root::Portaview::user3" package="Root::Portaview" slotName="subscriptionFee" valueToBeParsed="Auxiliary::MonetaryValue(8.79, Auxiliary::Currency(&quot;EUR&quot;, &quot;EUR&quot;, 1.0))"/>
        <changeSlotValue class="Root::Portaview::user3" package="Root::Portaview" slotName="username" valueToBeParsed="[97,110,116,111,110,52,51].asString()"/>
        <changeSlotValue class="Root::Portaview::video1" package="Root::Portaview" slotName="genre" valueToBeParsed="Root::Portaview::GenreEnum::TravelVideo"/>
        <changeSlotValue class="Root::Portaview::video1" package="Root::Portaview" slotName="title" valueToBeParsed="[86,105,115,105,116,105,110,103,32,68,101,108,97,119,97,114,101].asString()"/>
        <changeSlotValue class="Root::Portaview::video1" package="Root::Portaview" slotName="uploadDate" valueToBeParsed="Auxiliary::Date::createDate(2024, 7, 18)"/>
        <changeSlotValue class="Root::Portaview::video2" package="Root::Portaview" slotName="genre" valueToBeParsed="Root::Portaview::GenreEnum::MusicVideo"/>
        <changeSlotValue class="Root::Portaview::video2" package="Root::Portaview" slotName="title" valueToBeParsed="[70,108,111,119,101,114,115].asString()"/>
        <changeSlotValue class="Root::Portaview::video2" package="Root::Portaview" slotName="uploadDate" valueToBeParsed="Auxiliary::Date::createDate(2023, 10, 18)"/>
        <addAssociation accessSourceFromTargetName="playlist" accessTargetFromSourceName="video" associationType="Root::Associations::DefaultAssociation" classSource="Root::Portaview::Playlist" classTarget="Root::Portaview::Video" fwName="contains" instLevelSource="0" instLevelTarget="0" multSourceToTarget="Seq{0,-1,false,false}" multTargetToSource="Seq{0,-1,false,false}" package="Root::Portaview" reverseName="-1" sourceVisibleFromTarget="true" targetVisibleFromSource="true"/>
        <addAssociation accessSourceFromTargetName="subscribingUser" accessTargetFromSourceName="userSubscription" associationType="Root::Associations::DefaultAssociation" classSource="Root::Portaview::User" classTarget="Root::Portaview::Subscription" fwName="has" instLevelSource="0" instLevelTarget="0" multSourceToTarget="Seq{0,-1,false,false}" multTargetToSource="Seq{1,1,true,false}" package="Root::Portaview" reverseName="-1" sourceVisibleFromTarget="true" targetVisibleFromSource="true"/>
        <addAssociation accessSourceFromTargetName="subscription" accessTargetFromSourceName="subscribedUser" associationType="Root::Associations::DefaultAssociation" classSource="Root::Portaview::Subscription" classTarget="Root::Portaview::User" fwName="refers_to" instLevelSource="0" instLevelTarget="0" multSourceToTarget="Seq{1,1,true,false}" multTargetToSource="Seq{0,-1,false,false}" package="Root::Portaview" reverseName="-1" sourceVisibleFromTarget="true" targetVisibleFromSource="true"/>
        <addAssociation accessSourceFromTargetName="user" accessTargetFromSourceName="abstractVideo" associationType="Root::Associations::DefaultAssociation" classSource="Root::Portaview::User" classTarget="Root::Portaview::AbstractVideo" fwName="uploads" instLevelSource="0" instLevelTarget="0" multSourceToTarget="Seq{0,-1,false,false}" multTargetToSource="Seq{1,1,true,false}" package="Root::Portaview" reverseName="-1" sourceVisibleFromTarget="true" targetVisibleFromSource="true"/>
        <addAssociation accessSourceFromTargetName="user" accessTargetFromSourceName="playlist" associationType="Root::Associations::DefaultAssociation" classSource="Root::Portaview::User" classTarget="Root::Portaview::Playlist" fwName="manages" instLevelSource="0" instLevelTarget="0" multSourceToTarget="Seq{0,-1,false,false}" multTargetToSource="Seq{1,1,true,false}" package="Root::Portaview" reverseName="-1" sourceVisibleFromTarget="true" targetVisibleFromSource="true"/>
        <addLink classSource="Root::Portaview::playlist1" classTarget="Root::Portaview::video1" name="video" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::playlist1" classTarget="Root::Portaview::video2" name="video" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::playlist2" classTarget="Root::Portaview::video1" name="video" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::subscription1" classTarget="Root::Portaview::user2" name="subscribedUser" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::subscription2" classTarget="Root::Portaview::user2" name="subscribedUser" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::user1" classTarget="Root::Portaview::playlist1" name="playlist" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::user1" classTarget="Root::Portaview::subscription1" name="userSubscription" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::user1" classTarget="Root::Portaview::video2" name="abstractVideo" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::user2" classTarget="Root::Portaview::short2" name="abstractVideo" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::user2" classTarget="Root::Portaview::video1" name="abstractVideo" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::user3" classTarget="Root::Portaview::playlist2" name="playlist" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::user3" classTarget="Root::Portaview::short1" name="abstractVideo" package="Root::Portaview"/>
        <addLink classSource="Root::Portaview::user3" classTarget="Root::Portaview::subscription2" name="userSubscription" package="Root::Portaview"/>
    </Model>
    <Diagrams>
        <Diagram name="UMLppDiagram_1" umlMode="true">
            <Instances>
                <Instance hidden="false" path="Root::Portaview::Playlist" xCoordinate="524" yCoordinate="114"/>
                <Instance hidden="false" path="Root::Portaview::AbstractVideo" xCoordinate="553" yCoordinate="255"/>
                <Instance hidden="false" path="Root::Portaview::Subscription" xCoordinate="107" yCoordinate="510"/>
                <Instance hidden="false" path="Root::Portaview::video1" xCoordinate="338" yCoordinate="860"/>
                <Instance hidden="false" path="Root::Portaview::User" xCoordinate="43" yCoordinate="239"/>
                <Instance hidden="false" path="Root::Portaview::Short" xCoordinate="352" yCoordinate="432"/>
                <Instance hidden="false" path="Root::Portaview::video2" xCoordinate="-105" yCoordinate="1250"/>
                <Instance hidden="false" path="Root::Portaview::playlist1" xCoordinate="47" yCoordinate="810"/>
                <Instance hidden="false" path="Root::Portaview::playlist2" xCoordinate="637" yCoordinate="909"/>
                <Instance hidden="false" path="Root::Portaview::subscription2" xCoordinate="692" yCoordinate="1150"/>
                <Instance hidden="false" path="Root::Portaview::short1" xCoordinate="761" yCoordinate="1300"/>
                <Instance hidden="false" path="Root::Portaview::subscription1" xCoordinate="158" yCoordinate="1318"/>
                <Instance hidden="false" path="Root::Portaview::short2" xCoordinate="554" yCoordinate="1297"/>
                <Instance hidden="false" path="Root::Portaview::user1" xCoordinate="51" yCoordinate="1002"/>
                <Instance hidden="false" path="Root::Portaview::Video" xCoordinate="651" yCoordinate="438"/>
                <Instance hidden="true" path="Root::Portaview::GenreEnum" xCoordinate="732" yCoordinate="262"/>
                <Instance hidden="false" path="Root::Portaview::user3" xCoordinate="873" yCoordinate="902"/>
                <Instance hidden="false" path="Root::Portaview::user2" xCoordinate="386" yCoordinate="1038"/>
            </Instances>
            <Edges>
                <Edge path="AssociationLinkMapping: Root::Portaview::playlist1/Root::Portaview::video2/AssociationMapping: Root::Portaview::Playlist::video" sourcePort="WEST" targetPort="WEST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="-135.9108" yCoordinate="838.8281"/>
                        <IntermediatePoint xCoordinate="-135.9108" yCoordinate="1304.5103"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::playlist1/Root::Portaview::video2/AssociationMapping: Root::Portaview::Playlist::video" xCoordinate="-93.322556" yCoordinate="-270.22235"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::playlist1/Root::Portaview::video1/AssociationMapping: Root::Portaview::Playlist::video" sourcePort="EAST" targetPort="WEST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="300.53394" yCoordinate="853.6485"/>
                        <IntermediatePoint xCoordinate="300.53394" yCoordinate="896.44147"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::playlist1/Root::Portaview::video1/AssociationMapping: Root::Portaview::Playlist::video" xCoordinate="-22.03849" yCoordinate="-53.975174"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationMapping: Root::Portaview::User::userSubscription" sourcePort="EAST" targetPort="EAST" type="Association">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="315.69473" yCoordinate="403.61188"/>
                        <IntermediatePoint xCoordinate="315.69473" yCoordinate="545.43164"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationMapping: Root::Portaview::User::userSubscription" xCoordinate="149.90665" yCoordinate="-57.158722"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user1/Root::Portaview::playlist1/AssociationMapping: Root::Portaview::User::playlist" sourcePort="WEST" targetPort="WEST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="-17.328703" yCoordinate="1081.8304"/>
                        <IntermediatePoint xCoordinate="-17.328703" yCoordinate="868.06256"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user1/Root::Portaview::playlist1/AssociationMapping: Root::Portaview::User::playlist" xCoordinate="-156.13081" yCoordinate="-50.221123"/>
                    </Labels>
                </Edge>
                <Edge path="InheritanceMapping: Root::Portaview::Video/Root::Portaview::AbstractVideo" sourcePort="NORTH" targetPort="SOUTH" type="Inheritance">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="792.9589" yCoordinate="408.187"/>
                        <IntermediatePoint xCoordinate="653.5911" yCoordinate="408.187"/>
                    </IntermediatePoints>
                    <Labels/>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::subscription2/Root::Portaview::user2/AssociationMapping: Root::Portaview::Subscription::user1" sourcePort="WEST" targetPort="EAST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="616.4508" yCoordinate="1223.1829"/>
                        <IntermediatePoint xCoordinate="616.4508" yCoordinate="1164.4995"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::subscription2/Root::Portaview::user2/AssociationMapping: Root::Portaview::Subscription::user1" xCoordinate="26.10851" yCoordinate="-41.545048"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationMapping: Root::Portaview::Subscription::user1" sourcePort="WEST" targetPort="WEST" type="Association">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="-18.193262" yCoordinate="576.43164"/>
                        <IntermediatePoint xCoordinate="-18.193262" yCoordinate="364.1023"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationMapping: Root::Portaview::Subscription::user1" xCoordinate="-162.85628" yCoordinate="70.01202"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::subscription1/Root::Portaview::user2/AssociationMapping: Root::Portaview::Subscription::user1" sourcePort="EAST" targetPort="WEST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="300.82925" yCoordinate="1346.0908"/>
                        <IntermediatePoint xCoordinate="300.82925" yCoordinate="1204.6382"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::subscription1/Root::Portaview::user2/AssociationMapping: Root::Portaview::Subscription::user1" xCoordinate="-14.908218" yCoordinate="-39.47895"/>
                    </Labels>
                </Edge>
                <Edge path="InheritanceMapping: Root::Portaview::Short/Root::Portaview::AbstractVideo" sourcePort="NORTH" targetPort="SOUTH" type="Inheritance">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="494.38702" yCoordinate="401.58734"/>
                        <IntermediatePoint xCoordinate="603.12396" yCoordinate="401.58734"/>
                    </IntermediatePoints>
                    <Labels/>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::subscription1/Root::Portaview::user2/AssociationMapping: Root::Portaview::Subscription::subscribedUser" sourcePort="EAST" targetPort="WEST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="331.93335" yCoordinate="1350.2029"/>
                        <IntermediatePoint xCoordinate="331.93335" yCoordinate="1198.8978"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::subscription1/Root::Portaview::user2/AssociationMapping: Root::Portaview::Subscription::subscribedUser" xCoordinate="-36.769554" yCoordinate="42.779037"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user1/Root::Portaview::subscription1/AssociationMapping: Root::Portaview::User::userSubscription" sourcePort="SOUTH" targetPort="NORTH" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="174.89941" yCoordinate="1299.1415"/>
                        <IntermediatePoint xCoordinate="236.73296" yCoordinate="1299.1415"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user1/Root::Portaview::subscription1/AssociationMapping: Root::Portaview::User::userSubscription" xCoordinate="-10.370899" yCoordinate="37.12218"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user2/Root::Portaview::short2/AssociationMapping: Root::Portaview::User::abstractVideo" sourcePort="SOUTH" targetPort="WEST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="513.8722" yCoordinate="1326.483"/>
                        <IntermediatePoint xCoordinate="503.6274" yCoordinate="1326.483"/>
                        <IntermediatePoint xCoordinate="503.6274" yCoordinate="1361.8633"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user2/Root::Portaview::short2/AssociationMapping: Root::Portaview::User::abstractVideo" xCoordinate="-89.78314" yCoordinate="103.82894"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::playlist2/Root::Portaview::video1/AssociationMapping: Root::Portaview::Playlist::video" sourcePort="WEST" targetPort="EAST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="545.49963" yCoordinate="937.3676"/>
                        <IntermediatePoint xCoordinate="545.49963" yCoordinate="914.45905"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::playlist2/Root::Portaview::video1/AssociationMapping: Root::Portaview::Playlist::video" xCoordinate="1.4486132" yCoordinate="-11.76247"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationMapping: Root::Portaview::User::playlist" sourcePort="NORTH" targetPort="WEST" type="Association">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="167.01367" yCoordinate="184.22406"/>
                        <IntermediatePoint xCoordinate="264.51776" yCoordinate="184.22406"/>
                        <IntermediatePoint xCoordinate="264.51776" yCoordinate="160.24219"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationMapping: Root::Portaview::User::playlist" xCoordinate="-26.046923" yCoordinate="-97.235916"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user3/Root::Portaview::subscription2/AssociationMapping: Root::Portaview::User::subscription" sourcePort="WEST" targetPort="EAST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="844.0163" yCoordinate="1070.0707"/>
                        <IntermediatePoint xCoordinate="844.0163" yCoordinate="1223.1829"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user3/Root::Portaview::subscription2/AssociationMapping: Root::Portaview::User::subscription" xCoordinate="-37.961765" yCoordinate="-52.278286"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user3/Root::Portaview::subscription2/AssociationMapping: Root::Portaview::User::userSubscription" sourcePort="WEST" targetPort="EAST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="856.8671" yCoordinate="1062.5547"/>
                        <IntermediatePoint xCoordinate="856.8671" yCoordinate="1181.948"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user3/Root::Portaview::subscription2/AssociationMapping: Root::Portaview::User::userSubscription" xCoordinate="-41.483597" yCoordinate="-63.758385"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user1/Root::Portaview::subscription1/AssociationMapping: Root::Portaview::User::subscription" sourcePort="SOUTH" targetPort="NORTH" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="158.93619" yCoordinate="1286.5377"/>
                        <IntermediatePoint xCoordinate="163.00648" yCoordinate="1286.5377"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user1/Root::Portaview::subscription1/AssociationMapping: Root::Portaview::User::subscription" xCoordinate="-50.871284" yCoordinate="30.85274"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user3/Root::Portaview::short1/AssociationMapping: Root::Portaview::User::abstractVideo" sourcePort="SOUTH" targetPort="EAST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="981.0054" yCoordinate="1306.684"/>
                        <IntermediatePoint xCoordinate="967.8041" yCoordinate="1306.684"/>
                        <IntermediatePoint xCoordinate="967.8041" yCoordinate="1364.8633"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user3/Root::Portaview::short1/AssociationMapping: Root::Portaview::User::abstractVideo" xCoordinate="100.7818" yCoordinate="26.870014"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user3/Root::Portaview::playlist2/AssociationMapping: Root::Portaview::User::playlist" sourcePort="WEST" targetPort="EAST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="818.7005" yCoordinate="981.79205"/>
                        <IntermediatePoint xCoordinate="818.7005" yCoordinate="952.2422"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user3/Root::Portaview::playlist2/AssociationMapping: Root::Portaview::User::playlist" xCoordinate="-56.12197" yCoordinate="-65.51606"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationMapping: Root::Portaview::User::subscription" sourcePort="EAST" targetPort="EAST" type="Association">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="325.9015" yCoordinate="416.5547"/>
                        <IntermediatePoint xCoordinate="325.9015" yCoordinate="576.43164"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationMapping: Root::Portaview::User::subscription" xCoordinate="127.43806" yCoordinate="-81.138504"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user1/Root::Portaview::video2/AssociationMapping: Root::Portaview::User::abstractVideo" sourcePort="WEST" targetPort="NORTH" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="-10.412226" yCoordinate="1162.5547"/>
                        <IntermediatePoint xCoordinate="-10.412226" yCoordinate="1162.4342"/>
                        <IntermediatePoint xCoordinate="-17.79029" yCoordinate="1162.4342"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user1/Root::Portaview::video2/AssociationMapping: Root::Portaview::User::abstractVideo" xCoordinate="-90.652794" yCoordinate="-75.83187"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationMapping: Root::Portaview::Subscription::subscribedUser" sourcePort="WEST" targetPort="WEST" type="Association">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="-5.8031535" yCoordinate="545.43164"/>
                        <IntermediatePoint xCoordinate="-5.8031535" yCoordinate="362.4732"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationMapping: Root::Portaview::Subscription::subscribedUser" xCoordinate="-148.02101" yCoordinate="55.978363"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::subscription2/Root::Portaview::user2/AssociationMapping: Root::Portaview::Subscription::subscribedUser" sourcePort="WEST" targetPort="EAST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="652.2775" yCoordinate="1181.948"/>
                        <IntermediatePoint xCoordinate="652.2775" yCoordinate="1158.7592"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::subscription2/Root::Portaview::user2/AssociationMapping: Root::Portaview::Subscription::subscribedUser" xCoordinate="19.79899" yCoordinate="-64.701195"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationMapping: Root::Portaview::User::abstractVideo" sourcePort="EAST" targetPort="NORTH" type="Association">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="380.13004" yCoordinate="321.27734"/>
                        <IntermediatePoint xCoordinate="380.13004" yCoordinate="231.88171"/>
                        <IntermediatePoint xCoordinate="628.35754" yCoordinate="231.88171"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationMapping: Root::Portaview::User::abstractVideo" xCoordinate="68.928856" yCoordinate="-102.31108"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationMapping: Root::Portaview::Playlist::video" sourcePort="EAST" targetPort="EAST" type="Association">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="954.4364" yCoordinate="160.24219"/>
                        <IntermediatePoint xCoordinate="954.4364" yCoordinate="495.51364"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationMapping: Root::Portaview::Playlist::video" xCoordinate="106.958206" yCoordinate="-187.9231"/>
                    </Labels>
                </Edge>
                <Edge path="AssociationLinkMapping: Root::Portaview::user2/Root::Portaview::video1/AssociationMapping: Root::Portaview::User::abstractVideo" sourcePort="WEST" targetPort="WEST" type="AssociationLink">
                    <IntermediatePoints>
                        <IntermediatePoint xCoordinate="319.46597" yCoordinate="1118.6205"/>
                        <IntermediatePoint xCoordinate="319.46597" yCoordinate="932.0703"/>
                    </IntermediatePoints>
                    <Labels>
                        <Label localID="0" ownerID="AssociationLinkMapping: Root::Portaview::user2/Root::Portaview::video1/AssociationMapping: Root::Portaview::User::abstractVideo" xCoordinate="-128.22472" yCoordinate="-20.167015"/>
                    </Labels>
                </Edge>
            </Edges>
            <DiagramDisplayProperties>
                <SLOTS>true</SLOTS>
                <CONCRETESYNTAX>true</CONCRETESYNTAX>
                <METACLASSNAME>false</METACLASSNAME>
                <ISSUETABLE>false</ISSUETABLE>
                <OPERATIONS>true</OPERATIONS>
                <DERIVEDATTRIBUTES>true</DERIVEDATTRIBUTES>
                <CONSTRAINTS>true</CONSTRAINTS>
                <CONSTRAINTREPORTS>true</CONSTRAINTREPORTS>
                <DERIVEDOPERATIONS>true</DERIVEDOPERATIONS>
                <OPERATIONVALUES>true</OPERATIONVALUES>
                <GETTERSANDSETTERS>true</GETTERSANDSETTERS>
            </DiagramDisplayProperties>
            <Notes/>
            <Views>
                <View name="Main View" tx="734.10345" ty="30.701534" xx="0.70710677"/>
            </Views>
        </Diagram>
    </Diagrams>
</XModelerPackage>
