
(object Petal
    version    	50
    _written   	"Rose 8.3.0407.2800"
    charSet    	0)

(object Class_Category "moduleCore"
    is_unit    	TRUE
    is_loaded  	TRUE
    attributes 	(list Attribute_Set
	(object Attribute
	    tool       	"Ecore"
	    name       	"basePackage"
	    value      	(value Text "org.eclipse.wst.common"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"prefix"
	    value      	(value Text "ModuleCore"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"nsURI"
	    value      	(value Text "modulecore.xmi")))
    quid       	"3A0DB68B0046"
    visible_categories 	(list visibility_relationship_list
	(object Visibility_Relationship
	    quid       	"3F2E8236025A"
	    supplier   	"Logical View::ejbext"
	    quidu      	"39AA86660190")
	(object Visibility_Relationship
	    quid       	"3F2E8236025B"
	    supplier   	"Logical View::webappext"
	    quidu      	"39B534FD024C")
	(object Visibility_Relationship
	    quid       	"3F2E8236025C"
	    supplier   	"Logical View::ejbbnd"
	    quidu      	"39B960FC03CA")
	(object Visibility_Relationship
	    quid       	"3F2E82360264"
	    supplier   	"Logical View::webappbnd"
	    quidu      	"39B961060107")
	(object Visibility_Relationship
	    quid       	"3F2E82360265"
	    supplier   	"Logical View::clientbnd"
	    quidu      	"39B9614F031F")
	(object Visibility_Relationship
	    quid       	"3F2E82360266"
	    supplier   	"Logical View::applicationext"
	    quidu      	"3A22E6080303")
	(object Visibility_Relationship
	    quid       	"3F2E82360267"
	    supplier   	"Logical View::applicationbnd"
	    quidu      	"39B9611502A4")
	(object Visibility_Relationship
	    quid       	"3F2E82360268"
	    supplier   	"Logical View::j2cbnd"
	    quidu      	"39B9632E038C"))
    exportControl 	"Public"
    logical_models 	(list unit_reference_list
	(object Class "WorkbenchModule"
	    quid       	"41E3DF5801FA"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "handle"
		    quid       	"41EC1D71015D"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "deployedName"
		    quid       	"4201471D0208"
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "WorkbenchModuleResource"
	    quid       	"41E3DF670039"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "sourcePath"
		    quid       	"41E3DF970128"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "deployedPath"
		    quid       	"41EEC640025B"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "exclusions"
		    quid       	"41E3DF9E011E"
		    stereotype 	"0..*"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")))
	(object Class "ModuleType"
	    quid       	"41EC1D5103E2"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "metadataResources"
		    quid       	"41EC1DF0021E"
		    stereotype 	"0..*"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "moduleTypeId"
		    quid       	"41EC21340357"
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "URI"
	    quid       	"41EC26DA027A"
	    stereotype 	"datatype"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "org.eclipse.emf.common.util.URI"
		    quid       	"41EC270803AC"
		    stereotype 	"javaclass"
		    exportControl 	"Public")))
	(object Class "ProjectModules"
	    quid       	"41F566DB0251"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "projectName"
		    quid       	"41F567FD023A"
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "DependentModule"
	    quid       	"41F6C24B023D"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "handle"
		    quid       	"420145F001C9"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "deployedPath"
		    quid       	"420145FA0015"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "dependencyType"
		    quid       	"42039243016E"
		    type       	"DependencyType"
		    quidu      	"420394F50185"
		    exportControl 	"Public")))
	(object Class "DependencyType"
	    quid       	"420394F50185"
	    documentation 	
|uses=0
|consumes=1
	    
	    stereotype 	"enumeration"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "uses"
		    quid       	"42039938018D"
		    exportControl 	"Public")
		(object ClassAttribute "consumes"
		    quid       	"42039A6E0139"
		    exportControl 	"Public")))
	(object Association "$UNNAMED$0"
	    quid       	"41E3E14B01E3"
	    roles      	(list role_list
		(object Role "resources"
		    quid       	"41E3E14D031D"
		    label      	"resources"
		    supplier   	"Logical View::moduleCore::WorkbenchModuleResource"
		    quidu      	"41E3DF670039"
		    client_cardinality 	(value cardinality "0..*")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "module"
		    quid       	"41E3E14D031F"
		    label      	"module"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA"
		    client_cardinality 	(value cardinality "1")
		    is_navigable 	TRUE
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$1"
	    quid       	"41EC1D9802C2"
	    roles      	(list role_list
		(object Role "moduleType"
		    quid       	"41EC1D990241"
		    label      	"moduleType"
		    supplier   	"Logical View::moduleCore::ModuleType"
		    quidu      	"41EC1D5103E2"
		    client_cardinality 	(value cardinality "1")
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$2"
		    quid       	"41EC1D990243"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA")))
	(object Association "$UNNAMED$3"
	    quid       	"41F5672000E8"
	    roles      	(list role_list
		(object Role "workbenchModules"
		    quid       	"41F567210111"
		    label      	"workbenchModules"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA"
		    client_cardinality 	(value cardinality "0..*")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$4"
		    quid       	"41F567210113"
		    supplier   	"Logical View::moduleCore::ProjectModules"
		    quidu      	"41F566DB0251"
		    Containment 	"By Reference"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$5"
	    quid       	"420146A502E2"
	    roles      	(list role_list
		(object Role "modules"
		    quid       	"420146A6027F"
		    label      	"modules"
		    supplier   	"Logical View::moduleCore::DependentModule"
		    quidu      	"41F6C24B023D"
		    client_cardinality 	(value cardinality "0..*")
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$6"
		    quid       	"420146A60281"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA"))))
    logical_presentations 	(list unit_reference_list
	(object ClassDiagram "Main"
	    quid       	"41E3DF060210"
	    title      	"Main"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	100
	    origin_y   	0
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::moduleCore::URI" @1
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1920, 1648)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@1
			location   	(1460, 1589)
			fill_color 	13434879
			nlines     	1
			max_width  	920
			justify    	0
			label      	"URI")
		    stereotype 	(object ItemLabel
			Parent_View 	@1
			location   	(1460, 1539)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	920
			justify    	0
			label      	"<<datatype>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41EC26DA027A"
		    compartment 	(object Compartment
			Parent_View 	@1
			location   	(1460, 1650)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	2
			max_width  	925)
		    width      	938
		    height     	242
		    annotation 	8
		    autoResize 	TRUE)
		(object NoteView @2
		    location   	(448, 1264)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@2
			location   	(176, 1055)
			fill_color 	13434879
			nlines     	8
			max_width  	508
			label      	
|The module "handle" URI will contain the special Module protocol, project name, and module identifier, and will be fully resolved to a full platform URI
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	568
		    height     	431)
		(object ClassView "Class" "Logical View::moduleCore::WorkbenchModuleResource" @3
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(992, 1744)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@3
			location   	(714, 1613)
			fill_color 	13434879
			nlines     	1
			max_width  	556
			justify    	0
			label      	"WorkbenchModuleResource")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41E3DF670039"
		    compartment 	(object Compartment
			Parent_View 	@3
			location   	(714, 1674)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	4
			max_width  	531)
		    width      	574
		    height     	286
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::moduleCore::ModuleType" @4
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1856, 1136)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@4
			location   	(1509, 1030)
			fill_color 	13434879
			nlines     	1
			max_width  	694
			justify    	0
			label      	"ModuleType")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41EC1D5103E2"
		    compartment 	(object Compartment
			Parent_View 	@4
			location   	(1509, 1091)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	700)
		    width      	712
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::moduleCore::ProjectModules" @5
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(416, 368)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@5
			location   	(204, 287)
			fill_color 	13434879
			nlines     	1
			max_width  	424
			justify    	0
			label      	"ProjectModules")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41F566DB0251"
		    compartment 	(object Compartment
			Parent_View 	@5
			location   	(204, 348)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	2
			max_width  	431)
		    width      	442
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::moduleCore::DependentModule" @6
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1824, 480)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@6
			location   	(1470, 349)
			fill_color 	13434879
			nlines     	1
			max_width  	708
			justify    	0
			label      	"DependentModule")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41F6C24B023D"
		    compartment 	(object Compartment
			Parent_View 	@6
			location   	(1470, 410)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	13434879
			anchor     	2
			nlines     	4
			max_width  	715)
		    width      	726
		    height     	286
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::moduleCore::WorkbenchModule" @7
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(944, 752)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@7
			location   	(712, 646)
			fill_color 	13434879
			nlines     	1
			max_width  	464
			justify    	0
			label      	"WorkbenchModule")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41E3DF5801FA"
		    compartment 	(object Compartment
			Parent_View 	@7
			location   	(712, 707)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	471)
		    width      	482
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$0" @8
		    location   	(940, 1235)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41E3E14B01E3"
		    roleview_list 	(list RoleViews
			(object RoleView "resources" @9
			    Parent_View 	@8
			    location   	(460, 355)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @10
				Parent_View 	@9
				location   	(1075, 1501)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	216
				justify    	0
				label      	"+resources"
				pctDist    	0.726776
				height     	135
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41E3E14D031D"
			    client     	@8
			    supplier   	@3
			    vertices   	(list Points
				(940, 1235)
				(940, 1601))
			    line_style 	3
			    origin_attachment 	(940, 1235)
			    terminal_attachment 	(940, 1601)
			    label      	(object SegLabel @11
				Parent_View 	@9
				location   	(861, 1495)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..*"
				pctDist    	0.710383
				height     	79
				orientation 	1))
			(object RoleView "module" @12
			    Parent_View 	@8
			    location   	(460, 355)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @13
				Parent_View 	@12
				location   	(1043, 972)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	172
				justify    	0
				label      	"+module"
				pctDist    	0.720824
				height     	103
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41E3E14D031F"
			    client     	@8
			    supplier   	@7
			    vertices   	(list Points
				(940, 1235)
				(940, 870))
			    line_style 	3
			    origin_attachment 	(940, 1235)
			    terminal_attachment 	(940, 870)
			    label      	(object SegLabel @14
				Parent_View 	@12
				location   	(868, 976)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"1"
				pctDist    	0.709382
				height     	73
				orientation 	0))))
		(object AssociationViewNew "$UNNAMED$1" @15
		    location   	(1634, 791)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41EC1D9802C2"
		    roleview_list 	(list RoleViews
			(object RoleView "moduleType" @16
			    Parent_View 	@15
			    location   	(1298, -137)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @17
				Parent_View 	@16
				location   	(2010, 977)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	260
				justify    	0
				label      	"+moduleType"
				pctDist    	0.911573
				height     	153
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41EC1D990241"
			    client     	@15
			    supplier   	@4
			    vertices   	(list Points
				(1634, 791)
				(1857, 791)
				(1857, 1018))
			    line_style 	3
			    origin_attachment 	(1634, 791)
			    terminal_attachment 	(1857, 1018)
			    label      	(object SegLabel @18
				Parent_View 	@16
				location   	(1804, 972)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"1"
				pctDist    	0.900000
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$2" @19
			    Parent_View 	@15
			    location   	(1298, -137)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41EC1D990243"
			    client     	@15
			    supplier   	@7
			    vertices   	(list Points
				(1634, 791)
				(1185, 791))
			    line_style 	3
			    origin_attachment 	(1634, 791)
			    terminal_attachment 	(1185, 791))))
		(object AttachView "" @20
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@2
		    supplier   	@7
		    vertices   	(list Points
			(657, 1048)
			(829, 870))
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$3" @21
		    location   	(399, 691)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41F5672000E8"
		    roleview_list 	(list RoleViews
			(object RoleView "workbenchModules" @22
			    Parent_View 	@21
			    location   	(-33, 403)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @23
				Parent_View 	@22
				location   	(476, 747)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	373
				justify    	0
				label      	"+workbenchModules"
				pctDist    	0.253289
				height     	56
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F567210111"
			    client     	@21
			    supplier   	@7
			    vertices   	(list Points
				(399, 691)
				(703, 691))
			    line_style 	3
			    origin_attachment 	(399, 691)
			    terminal_attachment 	(703, 691)
			    label      	(object SegLabel @24
				Parent_View 	@22
				location   	(640, 632)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..*"
				pctDist    	0.792763
				height     	59
				orientation 	0))
			(object RoleView "$UNNAMED$4" @25
			    Parent_View 	@21
			    location   	(-33, 403)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F567210113"
			    client     	@21
			    supplier   	@5
			    vertices   	(list Points
				(399, 691)
				(325, 691)
				(325, 461))
			    line_style 	3
			    origin_attachment 	(399, 691)
			    terminal_attachment 	(325, 461))))
		(object AssociationViewNew "$UNNAMED$5" @26
		    location   	(1322, 633)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"420146A502E2"
		    roleview_list 	(list RoleViews
			(object RoleView "modules" @27
			    Parent_View 	@26
			    location   	(490, -711)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @28
				Parent_View 	@27
				location   	(1367, 545)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	180
				justify    	0
				label      	"+modules"
				pctDist    	0.475736
				height     	72
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"420146A6027F"
			    client     	@26
			    supplier   	@6
			    vertices   	(list Points
				(1322, 633)
				(1460, 589))
			    line_style 	0
			    label      	(object SegLabel @29
				Parent_View 	@27
				location   	(1427, 662)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..*"
				pctDist    	0.636077
				height     	59
				orientation 	1))
			(object RoleView "$UNNAMED$6" @30
			    Parent_View 	@26
			    location   	(490, -711)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"420146A60281"
			    client     	@26
			    supplier   	@7
			    vertices   	(list Points
				(1322, 633)
				(1185, 675))
			    line_style 	0)))
		(object NoteView @31
		    location   	(2784, 416)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@31
			location   	(2387, 166)
			fill_color 	13434879
			nlines     	10
			max_width  	759
			label      	
|The dependent module "handle" must be resolvable to a WorkbenchModule.
|
|The DeployedPath specifies the location of the referenced module in this deployment structure.
|
|The dependencyType specifies how the dependent module is assembled.
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	819
		    height     	513)
		(object ClassView "Class" "Logical View::moduleCore::DependencyType" @32
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2560, 944)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@32
			location   	(2387, 860)
			fill_color 	13434879
			nlines     	1
			max_width  	346
			justify    	0
			label      	"DependencyType")
		    stereotype 	(object ItemLabel
			Parent_View 	@32
			location   	(2387, 810)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	346
			justify    	0
			label      	"<<enumeration>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"420394F50185"
		    compartment 	(object Compartment
			Parent_View 	@32
			location   	(2387, 921)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	13434879
			anchor     	2
			nlines     	3
			max_width  	237)
		    width      	364
		    height     	292
		    annotation 	8
		    autoResize 	TRUE)
		(object AttachView "" @33
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@6
		    supplier   	@31
		    vertices   	(list Points
			(2187, 455)
			(2374, 443))
		    line_style 	0)))))
