ts2famix 1.4.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/analyze.js +4 -2
- package/dist/analyze_functions/process_functions.js +248 -100
- package/dist/famix2puml.js +1 -0
- package/dist/famix_functions/EntityDictionary.js +661 -155
- package/dist/famix_functions/helpers_creation.js +26 -6
- package/dist/fqn.js +156 -69
- package/dist/lib/famix/src/famix_JSON_exporter.js +1 -0
- package/dist/lib/famix/src/famix_base_element.js +1 -0
- package/dist/lib/famix/src/famix_repository.js +9 -8
- package/dist/lib/famix/src/index.js +1 -0
- package/dist/lib/famix/src/model/famix/access.js +3 -2
- package/dist/lib/famix/src/model/famix/accessor.js +1 -0
- package/dist/lib/famix/src/model/famix/alias.js +2 -1
- package/dist/lib/famix/src/model/famix/arrowFunction.js +17 -0
- package/dist/lib/famix/src/model/famix/behavioral_entity.js +13 -15
- package/dist/lib/famix/src/model/famix/class.js +1 -0
- package/dist/lib/famix/src/model/famix/comment.js +2 -1
- package/dist/lib/famix/src/model/famix/concretisation.js +31 -0
- package/dist/lib/famix/src/model/famix/container_entity.js +7 -6
- package/dist/lib/famix/src/model/famix/decorator.js +2 -1
- package/dist/lib/famix/src/model/famix/entity.js +1 -0
- package/dist/lib/famix/src/model/famix/enum.js +2 -1
- package/dist/lib/famix/src/model/famix/enum_value.js +2 -1
- package/dist/lib/famix/src/model/famix/function.js +1 -0
- package/dist/lib/famix/src/model/famix/implicit_variable.js +1 -0
- package/dist/lib/famix/src/model/famix/import_clause.js +5 -3
- package/dist/lib/famix/src/model/famix/index.js +18 -11
- package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +3 -2
- package/dist/lib/famix/src/model/famix/inheritance.js +3 -2
- package/dist/lib/famix/src/model/famix/interface.js +2 -1
- package/dist/lib/famix/src/model/famix/invocation.js +3 -2
- package/dist/lib/famix/src/model/famix/method.js +2 -1
- package/dist/lib/famix/src/model/famix/module.js +53 -0
- package/dist/lib/famix/src/model/famix/named_entity.js +4 -3
- package/dist/lib/famix/src/model/famix/parameter.js +2 -1
- package/dist/lib/famix/src/model/famix/parameterConcretisation.js +44 -0
- package/dist/lib/famix/src/model/famix/parameter_type.js +22 -1
- package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +31 -0
- package/dist/lib/famix/src/model/famix/parametric_class.js +44 -0
- package/dist/lib/famix/src/model/famix/parametric_function.js +31 -0
- package/dist/lib/famix/src/model/famix/parametric_interface.js +44 -0
- package/dist/lib/famix/src/model/famix/parametric_method.js +31 -0
- package/dist/lib/famix/src/model/famix/primitive_type.js +1 -0
- package/dist/lib/famix/src/model/famix/property.js +91 -9
- package/dist/lib/famix/src/model/famix/reference.js +3 -2
- package/dist/lib/famix/src/model/famix/scoping_entity.js +12 -10
- package/dist/lib/famix/src/model/famix/script_entity.js +1 -2
- package/dist/lib/famix/src/model/famix/source_anchor.js +1 -0
- package/dist/lib/famix/src/model/famix/source_language.js +1 -1
- package/dist/lib/famix/src/model/famix/sourced_entity.js +2 -1
- package/dist/lib/famix/src/model/famix/structural_entity.js +1 -0
- package/dist/lib/famix/src/model/famix/text_anchor.js +1 -0
- package/dist/lib/famix/src/model/famix/type.js +6 -4
- package/dist/lib/famix/src/model/famix/variable.js +1 -0
- package/dist/lib/ts-complex/cyclomatic-service.js +2 -2
- package/dist/ts2famix-cli-wrapper.js +16 -0
- package/dist/ts2famix-cli.js +8 -1
- package/dist/ts2famix-tsconfig.js +1 -0
- package/doc-uml/famix-typescript-model.puml +559 -0
- package/doc-uml/famix-typescript-model.svg +1 -0
- package/jest.config.json +2 -1
- package/package.json +10 -10
- package/src/analyze.ts +22 -21
- package/src/analyze_functions/process_functions.ts +272 -96
- package/src/famix_functions/EntityDictionary.ts +731 -182
- package/src/famix_functions/helpers_creation.ts +28 -2
- package/src/fqn.ts +132 -10
- package/src/lib/famix/src/famix_repository.ts +9 -9
- package/src/lib/famix/src/model/famix/access.ts +2 -2
- package/src/lib/famix/src/model/famix/alias.ts +1 -1
- package/src/lib/famix/src/model/famix/arrowFunction.ts +15 -0
- package/src/lib/famix/src/model/famix/behavioral_entity.ts +12 -19
- package/src/lib/famix/src/model/famix/comment.ts +1 -1
- package/src/lib/famix/src/model/famix/concretisation.ts +42 -0
- package/src/lib/famix/src/model/famix/container_entity.ts +6 -6
- package/src/lib/famix/src/model/famix/decorator.ts +1 -1
- package/src/lib/famix/src/model/famix/enum.ts +1 -1
- package/src/lib/famix/src/model/famix/enum_value.ts +1 -1
- package/src/lib/famix/src/model/famix/import_clause.ts +4 -3
- package/src/lib/famix/src/model/famix/index.ts +8 -5
- package/src/lib/famix/src/model/famix/indexed_file_anchor.ts +2 -2
- package/src/lib/famix/src/model/famix/inheritance.ts +3 -4
- package/src/lib/famix/src/model/famix/interface.ts +1 -1
- package/src/lib/famix/src/model/famix/invocation.ts +2 -2
- package/src/lib/famix/src/model/famix/method.ts +1 -1
- package/src/lib/famix/src/model/famix/module.ts +67 -1
- package/src/lib/famix/src/model/famix/named_entity.ts +3 -3
- package/src/lib/famix/src/model/famix/parameter.ts +1 -1
- package/src/lib/famix/src/model/famix/parameterConcretisation.ts +54 -0
- package/src/lib/famix/src/model/famix/parameter_type.ts +33 -6
- package/src/lib/famix/src/model/famix/parametric_arrow_function.ts +32 -0
- package/src/lib/famix/src/model/famix/parametric_class.ts +49 -0
- package/src/lib/famix/src/model/famix/parametric_function.ts +32 -0
- package/src/lib/famix/src/model/famix/parametric_interface.ts +49 -0
- package/src/lib/famix/src/model/famix/parametric_method.ts +32 -0
- package/src/lib/famix/src/model/famix/property.ts +109 -11
- package/src/lib/famix/src/model/famix/reference.ts +2 -2
- package/src/lib/famix/src/model/famix/scoping_entity.ts +12 -11
- package/src/lib/famix/src/model/famix/script_entity.ts +0 -2
- package/src/lib/famix/src/model/famix/source_language.ts +0 -1
- package/src/lib/famix/src/model/famix/sourced_entity.ts +1 -1
- package/src/lib/famix/src/model/famix/type.ts +5 -4
- package/src/ts2famix-cli-wrapper.ts +17 -0
- package/src/ts2famix-cli.ts +7 -1
- package/tsconfig.json +5 -5
- package/dist/lib/famix/src/model/famix/association.js +0 -36
- package/dist/lib/famix/src/model/famix/namespace.js +0 -24
- package/dist/lib/famix/src/model/famix/parameterizable_class.js +0 -30
- package/dist/lib/famix/src/model/famix/parameterizable_interface.js +0 -30
- package/dist/lib/famix/src/model/famix/parameterized_type.js +0 -36
- package/doc-uml/metamodel-full.svg +0 -1
- package/doc-uml/metamodel.svg +0 -1
- package/plantuml.jar +0 -0
- package/src/lib/famix/src/model/famix/association.ts +0 -44
- package/src/lib/famix/src/model/famix/namespace.ts +0 -28
- package/src/lib/famix/src/model/famix/parameterizable_class.ts +0 -31
- package/src/lib/famix/src/model/famix/parameterizable_interface.ts +0 -31
- package/src/lib/famix/src/model/famix/parameterized_type.ts +0 -40
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="690px" preserveAspectRatio="none" style="width:1708px;height:690px;background:#FFFFFF;" version="1.1" viewBox="0 0 1708 690" width="1708px" zoomAndPan="magnify"><defs/><g><!--class Entity--><g id="elem_Entity"><rect codeLine="1" fill="#F1F1F1" height="32" id="Entity" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="68" x="705.5" y="99"/><ellipse cx="720.5" cy="115" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M720.4375,110.8281 Q719.6875,110.8281 719.125,111.125 Q718.5625,111.4063 718.1719,111.9375 Q717.7813,112.4688 717.5781,113.25 Q717.3906,114.0156 717.3906,114.9688 Q717.3906,115.9375 717.5625,116.7031 Q717.75,117.4531 718.1094,117.9688 Q718.4844,118.4844 719.0625,118.7656 Q719.6406,119.0313 720.4375,119.0313 Q721.1719,119.0313 721.9063,118.8594 Q722.6563,118.6875 723.5313,118.3906 L723.5313,120.5469 Q723.125,120.7031 722.7344,120.8281 Q722.3438,120.9375 721.9375,121.0156 Q721.5313,121.0938 721.1094,121.125 Q720.6875,121.1719 720.1875,121.1719 Q718.7813,121.1719 717.75,120.7188 Q716.7344,120.2656 716.0625,119.4531 Q715.3906,118.6406 715.0625,117.5 Q714.7344,116.3438 714.7344,114.9531 Q714.7344,113.5781 715.1094,112.4219 Q715.4844,111.2656 716.2031,110.4375 Q716.9219,109.6094 717.9844,109.1563 Q719.0469,108.6875 720.4375,108.6875 Q721.3438,108.6875 722.25,108.9219 Q723.1563,109.1406 723.9844,109.5469 L723.1563,111.6406 Q722.4688,111.3125 721.7813,111.0781 Q721.0938,110.8281 720.4375,110.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36" x="734.5" y="119.8467">Entity</text></g><!--class FamixBaseElement--><g id="elem_FamixBaseElement"><rect codeLine="546" fill="#F1F1F1" height="32" id="FamixBaseElement" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="153" x="663" y="7"/><ellipse cx="678" cy="23" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M680.9531,28 L680.125,25.1094 L675.9375,25.1094 L675.0938,28 L672.5,28 L676.4375,15.8125 L679.5938,15.8125 L683.5469,28 L680.9531,28 Z M679.5156,22.9531 L678.75,20.2969 Q678.6875,20.1406 678.5938,19.8125 Q678.5,19.4688 678.375,19.0625 Q678.2656,18.6406 678.1563,18.2344 Q678.0625,17.8125 678.0313,17.5313 Q678,17.7031 677.9375,17.9531 Q677.8906,18.2031 677.8125,18.4844 Q677.75,18.7656 677.6719,19.0469 Q677.5938,19.3281 677.5313,19.5781 Q677.4688,19.8281 677.4063,20.0156 Q677.3594,20.2031 677.3281,20.2969 L676.5625,22.9531 L679.5156,22.9531 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="121" x="692" y="27.8467">FamixBaseElement</text></g><!--class SourceLanguage--><g id="elem_SourceLanguage"><rect codeLine="5" fill="#F1F1F1" height="32" id="SourceLanguage" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="134" x="510.5" y="191"/><ellipse cx="525.5" cy="207" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M525.4375,202.8281 Q524.6875,202.8281 524.125,203.125 Q523.5625,203.4063 523.1719,203.9375 Q522.7813,204.4688 522.5781,205.25 Q522.3906,206.0156 522.3906,206.9688 Q522.3906,207.9375 522.5625,208.7031 Q522.75,209.4531 523.1094,209.9688 Q523.4844,210.4844 524.0625,210.7656 Q524.6406,211.0313 525.4375,211.0313 Q526.1719,211.0313 526.9063,210.8594 Q527.6563,210.6875 528.5313,210.3906 L528.5313,212.5469 Q528.125,212.7031 527.7344,212.8281 Q527.3438,212.9375 526.9375,213.0156 Q526.5313,213.0938 526.1094,213.125 Q525.6875,213.1719 525.1875,213.1719 Q523.7813,213.1719 522.75,212.7188 Q521.7344,212.2656 521.0625,211.4531 Q520.3906,210.6406 520.0625,209.5 Q519.7344,208.3438 519.7344,206.9531 Q519.7344,205.5781 520.1094,204.4219 Q520.4844,203.2656 521.2031,202.4375 Q521.9219,201.6094 522.9844,201.1563 Q524.0469,200.6875 525.4375,200.6875 Q526.3438,200.6875 527.25,200.9219 Q528.1563,201.1406 528.9844,201.5469 L528.1563,203.6406 Q527.4688,203.3125 526.7813,203.0781 Q526.0938,202.8281 525.4375,202.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="102" x="539.5" y="211.8467">SourceLanguage</text></g><!--class Comment--><g id="elem_Comment"><rect codeLine="13" fill="#F1F1F1" height="32" id="Comment" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="95" x="430" y="283"/><ellipse cx="445" cy="299" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M444.9375,294.8281 Q444.1875,294.8281 443.625,295.125 Q443.0625,295.4063 442.6719,295.9375 Q442.2813,296.4688 442.0781,297.25 Q441.8906,298.0156 441.8906,298.9688 Q441.8906,299.9375 442.0625,300.7031 Q442.25,301.4531 442.6094,301.9688 Q442.9844,302.4844 443.5625,302.7656 Q444.1406,303.0313 444.9375,303.0313 Q445.6719,303.0313 446.4063,302.8594 Q447.1563,302.6875 448.0313,302.3906 L448.0313,304.5469 Q447.625,304.7031 447.2344,304.8281 Q446.8438,304.9375 446.4375,305.0156 Q446.0313,305.0938 445.6094,305.125 Q445.1875,305.1719 444.6875,305.1719 Q443.2813,305.1719 442.25,304.7188 Q441.2344,304.2656 440.5625,303.4531 Q439.8906,302.6406 439.5625,301.5 Q439.2344,300.3438 439.2344,298.9531 Q439.2344,297.5781 439.6094,296.4219 Q439.9844,295.2656 440.7031,294.4375 Q441.4219,293.6094 442.4844,293.1563 Q443.5469,292.6875 444.9375,292.6875 Q445.8438,292.6875 446.75,292.9219 Q447.6563,293.1406 448.4844,293.5469 L447.6563,295.6406 Q446.9688,295.3125 446.2813,295.0781 Q445.5938,294.8281 444.9375,294.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="63" x="459" y="303.8467">Comment</text></g><!--class SourcedEntity--><g id="elem_SourcedEntity"><rect codeLine="33" fill="#F1F1F1" height="32" id="SourcedEntity" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="119" x="680" y="191"/><ellipse cx="695" cy="207" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M694.9375,202.8281 Q694.1875,202.8281 693.625,203.125 Q693.0625,203.4063 692.6719,203.9375 Q692.2813,204.4688 692.0781,205.25 Q691.8906,206.0156 691.8906,206.9688 Q691.8906,207.9375 692.0625,208.7031 Q692.25,209.4531 692.6094,209.9688 Q692.9844,210.4844 693.5625,210.7656 Q694.1406,211.0313 694.9375,211.0313 Q695.6719,211.0313 696.4063,210.8594 Q697.1563,210.6875 698.0313,210.3906 L698.0313,212.5469 Q697.625,212.7031 697.2344,212.8281 Q696.8438,212.9375 696.4375,213.0156 Q696.0313,213.0938 695.6094,213.125 Q695.1875,213.1719 694.6875,213.1719 Q693.2813,213.1719 692.25,212.7188 Q691.2344,212.2656 690.5625,211.4531 Q689.8906,210.6406 689.5625,209.5 Q689.2344,208.3438 689.2344,206.9531 Q689.2344,205.5781 689.6094,204.4219 Q689.9844,203.2656 690.7031,202.4375 Q691.4219,201.6094 692.4844,201.1563 Q693.5469,200.6875 694.9375,200.6875 Q695.8438,200.6875 696.75,200.9219 Q697.6563,201.1406 698.4844,201.5469 L697.6563,203.6406 Q696.9688,203.3125 696.2813,203.0781 Q695.5938,202.8281 694.9375,202.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="87" x="709" y="211.8467">SourcedEntity</text></g><!--class SourceAnchor--><g id="elem_SourceAnchor"><rect codeLine="26" fill="#F1F1F1" height="32" id="SourceAnchor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="120" x="1041.5" y="191"/><ellipse cx="1056.5" cy="207" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1056.4375,202.8281 Q1055.6875,202.8281 1055.125,203.125 Q1054.5625,203.4063 1054.1719,203.9375 Q1053.7813,204.4688 1053.5781,205.25 Q1053.3906,206.0156 1053.3906,206.9688 Q1053.3906,207.9375 1053.5625,208.7031 Q1053.75,209.4531 1054.1094,209.9688 Q1054.4844,210.4844 1055.0625,210.7656 Q1055.6406,211.0313 1056.4375,211.0313 Q1057.1719,211.0313 1057.9063,210.8594 Q1058.6563,210.6875 1059.5313,210.3906 L1059.5313,212.5469 Q1059.125,212.7031 1058.7344,212.8281 Q1058.3438,212.9375 1057.9375,213.0156 Q1057.5313,213.0938 1057.1094,213.125 Q1056.6875,213.1719 1056.1875,213.1719 Q1054.7813,213.1719 1053.75,212.7188 Q1052.7344,212.2656 1052.0625,211.4531 Q1051.3906,210.6406 1051.0625,209.5 Q1050.7344,208.3438 1050.7344,206.9531 Q1050.7344,205.5781 1051.1094,204.4219 Q1051.4844,203.2656 1052.2031,202.4375 Q1052.9219,201.6094 1053.9844,201.1563 Q1055.0469,200.6875 1056.4375,200.6875 Q1057.3438,200.6875 1058.25,200.9219 Q1059.1563,201.1406 1059.9844,201.5469 L1059.1563,203.6406 Q1058.4688,203.3125 1057.7813,203.0781 Q1057.0938,202.8281 1056.4375,202.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="88" x="1070.5" y="211.8467">SourceAnchor</text></g><!--class Association--><g id="elem_Association"><rect codeLine="49" fill="#F1F1F1" height="32" id="Association" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="103" x="560" y="283"/><ellipse cx="575" cy="299" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M574.9375,294.8281 Q574.1875,294.8281 573.625,295.125 Q573.0625,295.4063 572.6719,295.9375 Q572.2813,296.4688 572.0781,297.25 Q571.8906,298.0156 571.8906,298.9688 Q571.8906,299.9375 572.0625,300.7031 Q572.25,301.4531 572.6094,301.9688 Q572.9844,302.4844 573.5625,302.7656 Q574.1406,303.0313 574.9375,303.0313 Q575.6719,303.0313 576.4063,302.8594 Q577.1563,302.6875 578.0313,302.3906 L578.0313,304.5469 Q577.625,304.7031 577.2344,304.8281 Q576.8438,304.9375 576.4375,305.0156 Q576.0313,305.0938 575.6094,305.125 Q575.1875,305.1719 574.6875,305.1719 Q573.2813,305.1719 572.25,304.7188 Q571.2344,304.2656 570.5625,303.4531 Q569.8906,302.6406 569.5625,301.5 Q569.2344,300.3438 569.2344,298.9531 Q569.2344,297.5781 569.6094,296.4219 Q569.9844,295.2656 570.7031,294.4375 Q571.4219,293.6094 572.4844,293.1563 Q573.5469,292.6875 574.9375,292.6875 Q575.8438,292.6875 576.75,292.9219 Q577.6563,293.1406 578.4844,293.5469 L577.6563,295.6406 Q576.9688,295.3125 576.2813,295.0781 Q575.5938,294.8281 574.9375,294.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="71" x="589" y="303.8467">Association</text></g><!--class Namespace--><g id="elem_Namespace"><rect codeLine="59" fill="#F1F1F1" height="32" id="Namespace" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="105" x="7" y="559"/><ellipse cx="22" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M21.9375,570.8281 Q21.1875,570.8281 20.625,571.125 Q20.0625,571.4063 19.6719,571.9375 Q19.2813,572.4688 19.0781,573.25 Q18.8906,574.0156 18.8906,574.9688 Q18.8906,575.9375 19.0625,576.7031 Q19.25,577.4531 19.6094,577.9688 Q19.9844,578.4844 20.5625,578.7656 Q21.1406,579.0313 21.9375,579.0313 Q22.6719,579.0313 23.4063,578.8594 Q24.1563,578.6875 25.0313,578.3906 L25.0313,580.5469 Q24.625,580.7031 24.2344,580.8281 Q23.8438,580.9375 23.4375,581.0156 Q23.0313,581.0938 22.6094,581.125 Q22.1875,581.1719 21.6875,581.1719 Q20.2813,581.1719 19.25,580.7188 Q18.2344,580.2656 17.5625,579.4531 Q16.8906,578.6406 16.5625,577.5 Q16.2344,576.3438 16.2344,574.9531 Q16.2344,573.5781 16.6094,572.4219 Q16.9844,571.2656 17.7031,570.4375 Q18.4219,569.6094 19.4844,569.1563 Q20.5469,568.6875 21.9375,568.6875 Q22.8438,568.6875 23.75,568.9219 Q24.6563,569.1406 25.4844,569.5469 L24.6563,571.6406 Q23.9688,571.3125 23.2813,571.0781 Q22.5938,570.8281 21.9375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="73" x="36" y="579.8467">Namespace</text></g><!--class ScopingEntity--><g id="elem_ScopingEntity"><rect codeLine="66" fill="#F1F1F1" height="32" id="ScopingEntity" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="116" x="141.5" y="467"/><ellipse cx="156.5" cy="483" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M156.4375,478.8281 Q155.6875,478.8281 155.125,479.125 Q154.5625,479.4063 154.1719,479.9375 Q153.7813,480.4688 153.5781,481.25 Q153.3906,482.0156 153.3906,482.9688 Q153.3906,483.9375 153.5625,484.7031 Q153.75,485.4531 154.1094,485.9688 Q154.4844,486.4844 155.0625,486.7656 Q155.6406,487.0313 156.4375,487.0313 Q157.1719,487.0313 157.9063,486.8594 Q158.6563,486.6875 159.5313,486.3906 L159.5313,488.5469 Q159.125,488.7031 158.7344,488.8281 Q158.3438,488.9375 157.9375,489.0156 Q157.5313,489.0938 157.1094,489.125 Q156.6875,489.1719 156.1875,489.1719 Q154.7813,489.1719 153.75,488.7188 Q152.7344,488.2656 152.0625,487.4531 Q151.3906,486.6406 151.0625,485.5 Q150.7344,484.3438 150.7344,482.9531 Q150.7344,481.5781 151.1094,480.4219 Q151.4844,479.2656 152.2031,478.4375 Q152.9219,477.6094 153.9844,477.1563 Q155.0469,476.6875 156.4375,476.6875 Q157.3438,476.6875 158.25,476.9219 Q159.1563,477.1406 159.9844,477.5469 L159.1563,479.6406 Q158.4688,479.3125 157.7813,479.0781 Q157.0938,478.8281 156.4375,478.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84" x="170.5" y="487.8467">ScopingEntity</text></g><!--class ContainerEntity--><g id="elem_ContainerEntity"><rect codeLine="322" fill="#F1F1F1" height="32" id="ContainerEntity" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="130" x="803.5" y="375"/><ellipse cx="818.5" cy="391" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M818.4375,386.8281 Q817.6875,386.8281 817.125,387.125 Q816.5625,387.4063 816.1719,387.9375 Q815.7813,388.4688 815.5781,389.25 Q815.3906,390.0156 815.3906,390.9688 Q815.3906,391.9375 815.5625,392.7031 Q815.75,393.4531 816.1094,393.9688 Q816.4844,394.4844 817.0625,394.7656 Q817.6406,395.0313 818.4375,395.0313 Q819.1719,395.0313 819.9063,394.8594 Q820.6563,394.6875 821.5313,394.3906 L821.5313,396.5469 Q821.125,396.7031 820.7344,396.8281 Q820.3438,396.9375 819.9375,397.0156 Q819.5313,397.0938 819.1094,397.125 Q818.6875,397.1719 818.1875,397.1719 Q816.7813,397.1719 815.75,396.7188 Q814.7344,396.2656 814.0625,395.4531 Q813.3906,394.6406 813.0625,393.5 Q812.7344,392.3438 812.7344,390.9531 Q812.7344,389.5781 813.1094,388.4219 Q813.4844,387.2656 814.2031,386.4375 Q814.9219,385.6094 815.9844,385.1563 Q817.0469,384.6875 818.4375,384.6875 Q819.3438,384.6875 820.25,384.9219 Q821.1563,385.1406 821.9844,385.5469 L821.1563,387.6406 Q820.4688,387.3125 819.7813,387.0781 Q819.0938,386.8281 818.4375,386.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98" x="832.5" y="395.8467">ContainerEntity</text></g><!--class ScriptEntity--><g id="elem_ScriptEntity"><rect codeLine="73" fill="#F1F1F1" height="32" id="ScriptEntity" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="104" x="147.5" y="559"/><ellipse cx="162.5" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M162.4375,570.8281 Q161.6875,570.8281 161.125,571.125 Q160.5625,571.4063 160.1719,571.9375 Q159.7813,572.4688 159.5781,573.25 Q159.3906,574.0156 159.3906,574.9688 Q159.3906,575.9375 159.5625,576.7031 Q159.75,577.4531 160.1094,577.9688 Q160.4844,578.4844 161.0625,578.7656 Q161.6406,579.0313 162.4375,579.0313 Q163.1719,579.0313 163.9063,578.8594 Q164.6563,578.6875 165.5313,578.3906 L165.5313,580.5469 Q165.125,580.7031 164.7344,580.8281 Q164.3438,580.9375 163.9375,581.0156 Q163.5313,581.0938 163.1094,581.125 Q162.6875,581.1719 162.1875,581.1719 Q160.7813,581.1719 159.75,580.7188 Q158.7344,580.2656 158.0625,579.4531 Q157.3906,578.6406 157.0625,577.5 Q156.7344,576.3438 156.7344,574.9531 Q156.7344,573.5781 157.1094,572.4219 Q157.4844,571.2656 158.2031,570.4375 Q158.9219,569.6094 159.9844,569.1563 Q161.0469,568.6875 162.4375,568.6875 Q163.3438,568.6875 164.25,568.9219 Q165.1563,569.1406 165.9844,569.5469 L165.1563,571.6406 Q164.4688,571.3125 163.7813,571.0781 Q163.0938,570.8281 162.4375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="72" x="176.5" y="579.8467">ScriptEntity</text></g><!--class Module--><g id="elem_Module"><rect codeLine="83" fill="#F1F1F1" height="32" id="Module" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="80" x="139.5" y="651"/><ellipse cx="154.5" cy="667" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M154.4375,662.8281 Q153.6875,662.8281 153.125,663.125 Q152.5625,663.4063 152.1719,663.9375 Q151.7813,664.4688 151.5781,665.25 Q151.3906,666.0156 151.3906,666.9688 Q151.3906,667.9375 151.5625,668.7031 Q151.75,669.4531 152.1094,669.9688 Q152.4844,670.4844 153.0625,670.7656 Q153.6406,671.0313 154.4375,671.0313 Q155.1719,671.0313 155.9063,670.8594 Q156.6563,670.6875 157.5313,670.3906 L157.5313,672.5469 Q157.125,672.7031 156.7344,672.8281 Q156.3438,672.9375 155.9375,673.0156 Q155.5313,673.0938 155.1094,673.125 Q154.6875,673.1719 154.1875,673.1719 Q152.7813,673.1719 151.75,672.7188 Q150.7344,672.2656 150.0625,671.4531 Q149.3906,670.6406 149.0625,669.5 Q148.7344,668.3438 148.7344,666.9531 Q148.7344,665.5781 149.1094,664.4219 Q149.4844,663.2656 150.2031,662.4375 Q150.9219,661.6094 151.9844,661.1563 Q153.0469,660.6875 154.4375,660.6875 Q155.3438,660.6875 156.25,660.9219 Q157.1563,661.1406 157.9844,661.5469 L157.1563,663.6406 Q156.4688,663.3125 155.7813,663.0781 Q155.0938,662.8281 154.4375,662.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="168.5" y="671.8467">Module</text></g><!--class ImportClause--><g id="elem_ImportClause"><rect codeLine="90" fill="#F1F1F1" height="32" id="ImportClause" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="118" x="135.5" y="375"/><ellipse cx="150.5" cy="391" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M150.4375,386.8281 Q149.6875,386.8281 149.125,387.125 Q148.5625,387.4063 148.1719,387.9375 Q147.7813,388.4688 147.5781,389.25 Q147.3906,390.0156 147.3906,390.9688 Q147.3906,391.9375 147.5625,392.7031 Q147.75,393.4531 148.1094,393.9688 Q148.4844,394.4844 149.0625,394.7656 Q149.6406,395.0313 150.4375,395.0313 Q151.1719,395.0313 151.9063,394.8594 Q152.6563,394.6875 153.5313,394.3906 L153.5313,396.5469 Q153.125,396.7031 152.7344,396.8281 Q152.3438,396.9375 151.9375,397.0156 Q151.5313,397.0938 151.1094,397.125 Q150.6875,397.1719 150.1875,397.1719 Q148.7813,397.1719 147.75,396.7188 Q146.7344,396.2656 146.0625,395.4531 Q145.3906,394.6406 145.0625,393.5 Q144.7344,392.3438 144.7344,390.9531 Q144.7344,389.5781 145.1094,388.4219 Q145.4844,387.2656 146.2031,386.4375 Q146.9219,385.6094 147.9844,385.1563 Q149.0469,384.6875 150.4375,384.6875 Q151.3438,384.6875 152.25,384.9219 Q153.1563,385.1406 153.9844,385.5469 L153.1563,387.6406 Q152.4688,387.3125 151.7813,387.0781 Q151.0938,386.8281 150.4375,386.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86" x="164.5" y="395.8467">ImportClause</text></g><!--class Alias--><g id="elem_Alias"><rect codeLine="103" fill="#F1F1F1" height="32" id="Alias" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="62" x="968.5" y="375"/><ellipse cx="983.5" cy="391" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M983.4375,386.8281 Q982.6875,386.8281 982.125,387.125 Q981.5625,387.4063 981.1719,387.9375 Q980.7813,388.4688 980.5781,389.25 Q980.3906,390.0156 980.3906,390.9688 Q980.3906,391.9375 980.5625,392.7031 Q980.75,393.4531 981.1094,393.9688 Q981.4844,394.4844 982.0625,394.7656 Q982.6406,395.0313 983.4375,395.0313 Q984.1719,395.0313 984.9063,394.8594 Q985.6563,394.6875 986.5313,394.3906 L986.5313,396.5469 Q986.125,396.7031 985.7344,396.8281 Q985.3438,396.9375 984.9375,397.0156 Q984.5313,397.0938 984.1094,397.125 Q983.6875,397.1719 983.1875,397.1719 Q981.7813,397.1719 980.75,396.7188 Q979.7344,396.2656 979.0625,395.4531 Q978.3906,394.6406 978.0625,393.5 Q977.7344,392.3438 977.7344,390.9531 Q977.7344,389.5781 978.1094,388.4219 Q978.4844,387.2656 979.2031,386.4375 Q979.9219,385.6094 980.9844,385.1563 Q982.0469,384.6875 983.4375,384.6875 Q984.3438,384.6875 985.25,384.9219 Q986.1563,385.1406 986.9844,385.5469 L986.1563,387.6406 Q985.4688,387.3125 984.7813,387.0781 Q984.0938,386.8281 983.4375,386.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="30" x="997.5" y="395.8467">Alias</text></g><!--class NamedEntity--><g id="elem_NamedEntity"><rect codeLine="123" fill="#F1F1F1" height="32" id="NamedEntity" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="114" x="876.5" y="283"/><ellipse cx="891.5" cy="299" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M891.4375,294.8281 Q890.6875,294.8281 890.125,295.125 Q889.5625,295.4063 889.1719,295.9375 Q888.7813,296.4688 888.5781,297.25 Q888.3906,298.0156 888.3906,298.9688 Q888.3906,299.9375 888.5625,300.7031 Q888.75,301.4531 889.1094,301.9688 Q889.4844,302.4844 890.0625,302.7656 Q890.6406,303.0313 891.4375,303.0313 Q892.1719,303.0313 892.9063,302.8594 Q893.6563,302.6875 894.5313,302.3906 L894.5313,304.5469 Q894.125,304.7031 893.7344,304.8281 Q893.3438,304.9375 892.9375,305.0156 Q892.5313,305.0938 892.1094,305.125 Q891.6875,305.1719 891.1875,305.1719 Q889.7813,305.1719 888.75,304.7188 Q887.7344,304.2656 887.0625,303.4531 Q886.3906,302.6406 886.0625,301.5 Q885.7344,300.3438 885.7344,298.9531 Q885.7344,297.5781 886.1094,296.4219 Q886.4844,295.2656 887.2031,294.4375 Q887.9219,293.6094 888.9844,293.1563 Q890.0469,292.6875 891.4375,292.6875 Q892.3438,292.6875 893.25,292.9219 Q894.1563,293.1406 894.9844,293.5469 L894.1563,295.6406 Q893.4688,295.3125 892.7813,295.0781 Q892.0938,294.8281 891.4375,294.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="82" x="905.5" y="303.8467">NamedEntity</text></g><!--class Decorator--><g id="elem_Decorator"><rect codeLine="113" fill="#F1F1F1" height="32" id="Decorator" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="96" x="1065.5" y="375"/><ellipse cx="1080.5" cy="391" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1080.4375,386.8281 Q1079.6875,386.8281 1079.125,387.125 Q1078.5625,387.4063 1078.1719,387.9375 Q1077.7813,388.4688 1077.5781,389.25 Q1077.3906,390.0156 1077.3906,390.9688 Q1077.3906,391.9375 1077.5625,392.7031 Q1077.75,393.4531 1078.1094,393.9688 Q1078.4844,394.4844 1079.0625,394.7656 Q1079.6406,395.0313 1080.4375,395.0313 Q1081.1719,395.0313 1081.9063,394.8594 Q1082.6563,394.6875 1083.5313,394.3906 L1083.5313,396.5469 Q1083.125,396.7031 1082.7344,396.8281 Q1082.3438,396.9375 1081.9375,397.0156 Q1081.5313,397.0938 1081.1094,397.125 Q1080.6875,397.1719 1080.1875,397.1719 Q1078.7813,397.1719 1077.75,396.7188 Q1076.7344,396.2656 1076.0625,395.4531 Q1075.3906,394.6406 1075.0625,393.5 Q1074.7344,392.3438 1074.7344,390.9531 Q1074.7344,389.5781 1075.1094,388.4219 Q1075.4844,387.2656 1076.2031,386.4375 Q1076.9219,385.6094 1077.9844,385.1563 Q1079.0469,384.6875 1080.4375,384.6875 Q1081.3438,384.6875 1082.25,384.9219 Q1083.1563,385.1406 1083.9844,385.5469 L1083.1563,387.6406 Q1082.4688,387.3125 1081.7813,387.0781 Q1081.0938,386.8281 1080.4375,386.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64" x="1094.5" y="395.8467">Decorator</text></g><!--class Parameter--><g id="elem_Parameter"><rect codeLine="145" fill="#F1F1F1" height="32" id="Parameter" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="100" x="1220.5" y="467"/><ellipse cx="1235.5" cy="483" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1235.4375,478.8281 Q1234.6875,478.8281 1234.125,479.125 Q1233.5625,479.4063 1233.1719,479.9375 Q1232.7813,480.4688 1232.5781,481.25 Q1232.3906,482.0156 1232.3906,482.9688 Q1232.3906,483.9375 1232.5625,484.7031 Q1232.75,485.4531 1233.1094,485.9688 Q1233.4844,486.4844 1234.0625,486.7656 Q1234.6406,487.0313 1235.4375,487.0313 Q1236.1719,487.0313 1236.9063,486.8594 Q1237.6563,486.6875 1238.5313,486.3906 L1238.5313,488.5469 Q1238.125,488.7031 1237.7344,488.8281 Q1237.3438,488.9375 1236.9375,489.0156 Q1236.5313,489.0938 1236.1094,489.125 Q1235.6875,489.1719 1235.1875,489.1719 Q1233.7813,489.1719 1232.75,488.7188 Q1231.7344,488.2656 1231.0625,487.4531 Q1230.3906,486.6406 1230.0625,485.5 Q1229.7344,484.3438 1229.7344,482.9531 Q1229.7344,481.5781 1230.1094,480.4219 Q1230.4844,479.2656 1231.2031,478.4375 Q1231.9219,477.6094 1232.9844,477.1563 Q1234.0469,476.6875 1235.4375,476.6875 Q1236.3438,476.6875 1237.25,476.9219 Q1238.1563,477.1406 1238.9844,477.5469 L1238.1563,479.6406 Q1237.4688,479.3125 1236.7813,479.0781 Q1236.0938,478.8281 1235.4375,478.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="68" x="1249.5" y="487.8467">Parameter</text></g><!--class StructuralEntity--><g id="elem_StructuralEntity"><rect codeLine="378" fill="#F1F1F1" height="32" id="StructuralEntity" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="130" x="1334.5" y="375"/><ellipse cx="1349.5" cy="391" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1349.4375,386.8281 Q1348.6875,386.8281 1348.125,387.125 Q1347.5625,387.4063 1347.1719,387.9375 Q1346.7813,388.4688 1346.5781,389.25 Q1346.3906,390.0156 1346.3906,390.9688 Q1346.3906,391.9375 1346.5625,392.7031 Q1346.75,393.4531 1347.1094,393.9688 Q1347.4844,394.4844 1348.0625,394.7656 Q1348.6406,395.0313 1349.4375,395.0313 Q1350.1719,395.0313 1350.9063,394.8594 Q1351.6563,394.6875 1352.5313,394.3906 L1352.5313,396.5469 Q1352.125,396.7031 1351.7344,396.8281 Q1351.3438,396.9375 1350.9375,397.0156 Q1350.5313,397.0938 1350.1094,397.125 Q1349.6875,397.1719 1349.1875,397.1719 Q1347.7813,397.1719 1346.75,396.7188 Q1345.7344,396.2656 1345.0625,395.4531 Q1344.3906,394.6406 1344.0625,393.5 Q1343.7344,392.3438 1343.7344,390.9531 Q1343.7344,389.5781 1344.1094,388.4219 Q1344.4844,387.2656 1345.2031,386.4375 Q1345.9219,385.6094 1346.9844,385.1563 Q1348.0469,384.6875 1349.4375,384.6875 Q1350.3438,384.6875 1351.25,384.9219 Q1352.1563,385.1406 1352.9844,385.5469 L1352.1563,387.6406 Q1351.4688,387.3125 1350.7813,387.0781 Q1350.0938,386.8281 1349.4375,386.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98" x="1363.5" y="395.8467">StructuralEntity</text></g><!--class Property--><g id="elem_Property"><rect codeLine="152" fill="#F1F1F1" height="32" id="Property" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="88" x="1355.5" y="467"/><ellipse cx="1370.5" cy="483" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1370.4375,478.8281 Q1369.6875,478.8281 1369.125,479.125 Q1368.5625,479.4063 1368.1719,479.9375 Q1367.7813,480.4688 1367.5781,481.25 Q1367.3906,482.0156 1367.3906,482.9688 Q1367.3906,483.9375 1367.5625,484.7031 Q1367.75,485.4531 1368.1094,485.9688 Q1368.4844,486.4844 1369.0625,486.7656 Q1369.6406,487.0313 1370.4375,487.0313 Q1371.1719,487.0313 1371.9063,486.8594 Q1372.6563,486.6875 1373.5313,486.3906 L1373.5313,488.5469 Q1373.125,488.7031 1372.7344,488.8281 Q1372.3438,488.9375 1371.9375,489.0156 Q1371.5313,489.0938 1371.1094,489.125 Q1370.6875,489.1719 1370.1875,489.1719 Q1368.7813,489.1719 1367.75,488.7188 Q1366.7344,488.2656 1366.0625,487.4531 Q1365.3906,486.6406 1365.0625,485.5 Q1364.7344,484.3438 1364.7344,482.9531 Q1364.7344,481.5781 1365.1094,480.4219 Q1365.4844,479.2656 1366.2031,478.4375 Q1366.9219,477.6094 1367.9844,477.1563 Q1369.0469,476.6875 1370.4375,476.6875 Q1371.3438,476.6875 1372.25,476.9219 Q1373.1563,477.1406 1373.9844,477.5469 L1373.1563,479.6406 Q1372.4688,479.3125 1371.7813,479.0781 Q1371.0938,478.8281 1370.4375,478.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56" x="1384.5" y="487.8467">Property</text></g><!--class Inheritance--><g id="elem_Inheritance"><rect codeLine="165" fill="#F1F1F1" height="32" id="Inheritance" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="105" x="289" y="375"/><ellipse cx="304" cy="391" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M303.9375,386.8281 Q303.1875,386.8281 302.625,387.125 Q302.0625,387.4063 301.6719,387.9375 Q301.2813,388.4688 301.0781,389.25 Q300.8906,390.0156 300.8906,390.9688 Q300.8906,391.9375 301.0625,392.7031 Q301.25,393.4531 301.6094,393.9688 Q301.9844,394.4844 302.5625,394.7656 Q303.1406,395.0313 303.9375,395.0313 Q304.6719,395.0313 305.4063,394.8594 Q306.1563,394.6875 307.0313,394.3906 L307.0313,396.5469 Q306.625,396.7031 306.2344,396.8281 Q305.8438,396.9375 305.4375,397.0156 Q305.0313,397.0938 304.6094,397.125 Q304.1875,397.1719 303.6875,397.1719 Q302.2813,397.1719 301.25,396.7188 Q300.2344,396.2656 299.5625,395.4531 Q298.8906,394.6406 298.5625,393.5 Q298.2344,392.3438 298.2344,390.9531 Q298.2344,389.5781 298.6094,388.4219 Q298.9844,387.2656 299.7031,386.4375 Q300.4219,385.6094 301.4844,385.1563 Q302.5469,384.6875 303.9375,384.6875 Q304.8438,384.6875 305.75,384.9219 Q306.6563,385.1406 307.4844,385.5469 L306.6563,387.6406 Q305.9688,387.3125 305.2813,387.0781 Q304.5938,386.8281 303.9375,386.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="73" x="318" y="395.8467">Inheritance</text></g><!--class Interface--><g id="elem_Interface"><rect codeLine="175" fill="#F1F1F1" height="32" id="Interface" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="90" x="307.5" y="559"/><ellipse cx="322.5" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M322.4375,570.8281 Q321.6875,570.8281 321.125,571.125 Q320.5625,571.4063 320.1719,571.9375 Q319.7813,572.4688 319.5781,573.25 Q319.3906,574.0156 319.3906,574.9688 Q319.3906,575.9375 319.5625,576.7031 Q319.75,577.4531 320.1094,577.9688 Q320.4844,578.4844 321.0625,578.7656 Q321.6406,579.0313 322.4375,579.0313 Q323.1719,579.0313 323.9063,578.8594 Q324.6563,578.6875 325.5313,578.3906 L325.5313,580.5469 Q325.125,580.7031 324.7344,580.8281 Q324.3438,580.9375 323.9375,581.0156 Q323.5313,581.0938 323.1094,581.125 Q322.6875,581.1719 322.1875,581.1719 Q320.7813,581.1719 319.75,580.7188 Q318.7344,580.2656 318.0625,579.4531 Q317.3906,578.6406 317.0625,577.5 Q316.7344,576.3438 316.7344,574.9531 Q316.7344,573.5781 317.1094,572.4219 Q317.4844,571.2656 318.2031,570.4375 Q318.9219,569.6094 319.9844,569.1563 Q321.0469,568.6875 322.4375,568.6875 Q323.3438,568.6875 324.25,568.9219 Q325.1563,569.1406 325.9844,569.5469 L325.1563,571.6406 Q324.4688,571.3125 323.7813,571.0781 Q323.0938,570.8281 322.4375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="58" x="336.5" y="579.8467">Interface</text></g><!--class Type--><g id="elem_Type"><rect codeLine="359" fill="#F1F1F1" height="32" id="Type" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="62" x="699.5" y="467"/><ellipse cx="714.5" cy="483" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M714.4375,478.8281 Q713.6875,478.8281 713.125,479.125 Q712.5625,479.4063 712.1719,479.9375 Q711.7813,480.4688 711.5781,481.25 Q711.3906,482.0156 711.3906,482.9688 Q711.3906,483.9375 711.5625,484.7031 Q711.75,485.4531 712.1094,485.9688 Q712.4844,486.4844 713.0625,486.7656 Q713.6406,487.0313 714.4375,487.0313 Q715.1719,487.0313 715.9063,486.8594 Q716.6563,486.6875 717.5313,486.3906 L717.5313,488.5469 Q717.125,488.7031 716.7344,488.8281 Q716.3438,488.9375 715.9375,489.0156 Q715.5313,489.0938 715.1094,489.125 Q714.6875,489.1719 714.1875,489.1719 Q712.7813,489.1719 711.75,488.7188 Q710.7344,488.2656 710.0625,487.4531 Q709.3906,486.6406 709.0625,485.5 Q708.7344,484.3438 708.7344,482.9531 Q708.7344,481.5781 709.1094,480.4219 Q709.4844,479.2656 710.2031,478.4375 Q710.9219,477.6094 711.9844,477.1563 Q713.0469,476.6875 714.4375,476.6875 Q715.3438,476.6875 716.25,476.9219 Q717.1563,477.1406 717.9844,477.5469 L717.1563,479.6406 Q716.4688,479.3125 715.7813,479.0781 Q715.0938,478.8281 714.4375,478.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="30" x="728.5" y="487.8467">Type</text></g><!--class Method--><g id="elem_Method"><rect codeLine="191" fill="#F1F1F1" height="32" id="Method" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="81" x="1147" y="559"/><ellipse cx="1162" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1161.9375,570.8281 Q1161.1875,570.8281 1160.625,571.125 Q1160.0625,571.4063 1159.6719,571.9375 Q1159.2813,572.4688 1159.0781,573.25 Q1158.8906,574.0156 1158.8906,574.9688 Q1158.8906,575.9375 1159.0625,576.7031 Q1159.25,577.4531 1159.6094,577.9688 Q1159.9844,578.4844 1160.5625,578.7656 Q1161.1406,579.0313 1161.9375,579.0313 Q1162.6719,579.0313 1163.4063,578.8594 Q1164.1563,578.6875 1165.0313,578.3906 L1165.0313,580.5469 Q1164.625,580.7031 1164.2344,580.8281 Q1163.8438,580.9375 1163.4375,581.0156 Q1163.0313,581.0938 1162.6094,581.125 Q1162.1875,581.1719 1161.6875,581.1719 Q1160.2813,581.1719 1159.25,580.7188 Q1158.2344,580.2656 1157.5625,579.4531 Q1156.8906,578.6406 1156.5625,577.5 Q1156.2344,576.3438 1156.2344,574.9531 Q1156.2344,573.5781 1156.6094,572.4219 Q1156.9844,571.2656 1157.7031,570.4375 Q1158.4219,569.6094 1159.4844,569.1563 Q1160.5469,568.6875 1161.9375,568.6875 Q1162.8438,568.6875 1163.75,568.9219 Q1164.6563,569.1406 1165.4844,569.5469 L1164.6563,571.6406 Q1163.9688,571.3125 1163.2813,571.0781 Q1162.5938,570.8281 1161.9375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="49" x="1176" y="579.8467">Method</text></g><!--class BehavioralEntity--><g id="elem_BehavioralEntity"><rect codeLine="264" fill="#F1F1F1" height="32" id="BehavioralEntity" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="136" x="1049.5" y="467"/><ellipse cx="1064.5" cy="483" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1064.4375,478.8281 Q1063.6875,478.8281 1063.125,479.125 Q1062.5625,479.4063 1062.1719,479.9375 Q1061.7813,480.4688 1061.5781,481.25 Q1061.3906,482.0156 1061.3906,482.9688 Q1061.3906,483.9375 1061.5625,484.7031 Q1061.75,485.4531 1062.1094,485.9688 Q1062.4844,486.4844 1063.0625,486.7656 Q1063.6406,487.0313 1064.4375,487.0313 Q1065.1719,487.0313 1065.9063,486.8594 Q1066.6563,486.6875 1067.5313,486.3906 L1067.5313,488.5469 Q1067.125,488.7031 1066.7344,488.8281 Q1066.3438,488.9375 1065.9375,489.0156 Q1065.5313,489.0938 1065.1094,489.125 Q1064.6875,489.1719 1064.1875,489.1719 Q1062.7813,489.1719 1061.75,488.7188 Q1060.7344,488.2656 1060.0625,487.4531 Q1059.3906,486.6406 1059.0625,485.5 Q1058.7344,484.3438 1058.7344,482.9531 Q1058.7344,481.5781 1059.1094,480.4219 Q1059.4844,479.2656 1060.2031,478.4375 Q1060.9219,477.6094 1061.9844,477.1563 Q1063.0469,476.6875 1064.4375,476.6875 Q1065.3438,476.6875 1066.25,476.9219 Q1067.1563,477.1406 1067.9844,477.5469 L1067.1563,479.6406 Q1066.4688,479.3125 1065.7813,479.0781 Q1065.0938,478.8281 1064.4375,478.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="104" x="1078.5" y="487.8467">BehavioralEntity</text></g><!--class Class--><g id="elem_Class"><rect codeLine="216" fill="#F1F1F1" height="32" id="Class" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="63" x="433" y="559"/><ellipse cx="448" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M447.9375,570.8281 Q447.1875,570.8281 446.625,571.125 Q446.0625,571.4063 445.6719,571.9375 Q445.2813,572.4688 445.0781,573.25 Q444.8906,574.0156 444.8906,574.9688 Q444.8906,575.9375 445.0625,576.7031 Q445.25,577.4531 445.6094,577.9688 Q445.9844,578.4844 446.5625,578.7656 Q447.1406,579.0313 447.9375,579.0313 Q448.6719,579.0313 449.4063,578.8594 Q450.1563,578.6875 451.0313,578.3906 L451.0313,580.5469 Q450.625,580.7031 450.2344,580.8281 Q449.8438,580.9375 449.4375,581.0156 Q449.0313,581.0938 448.6094,581.125 Q448.1875,581.1719 447.6875,581.1719 Q446.2813,581.1719 445.25,580.7188 Q444.2344,580.2656 443.5625,579.4531 Q442.8906,578.6406 442.5625,577.5 Q442.2344,576.3438 442.2344,574.9531 Q442.2344,573.5781 442.6094,572.4219 Q442.9844,571.2656 443.7031,570.4375 Q444.4219,569.6094 445.4844,569.1563 Q446.5469,568.6875 447.9375,568.6875 Q448.8438,568.6875 449.75,568.9219 Q450.6563,569.1406 451.4844,569.5469 L450.6563,571.6406 Q449.9688,571.3125 449.2813,571.0781 Q448.5938,570.8281 447.9375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="31" x="462" y="579.8467">Class</text></g><!--class ParameterizableClass--><g id="elem_ParameterizableClass"><rect codeLine="235" fill="#F1F1F1" height="32" id="ParameterizableClass" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="168" x="484.5" y="651"/><ellipse cx="499.5" cy="667" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M499.4375,662.8281 Q498.6875,662.8281 498.125,663.125 Q497.5625,663.4063 497.1719,663.9375 Q496.7813,664.4688 496.5781,665.25 Q496.3906,666.0156 496.3906,666.9688 Q496.3906,667.9375 496.5625,668.7031 Q496.75,669.4531 497.1094,669.9688 Q497.4844,670.4844 498.0625,670.7656 Q498.6406,671.0313 499.4375,671.0313 Q500.1719,671.0313 500.9063,670.8594 Q501.6563,670.6875 502.5313,670.3906 L502.5313,672.5469 Q502.125,672.7031 501.7344,672.8281 Q501.3438,672.9375 500.9375,673.0156 Q500.5313,673.0938 500.1094,673.125 Q499.6875,673.1719 499.1875,673.1719 Q497.7813,673.1719 496.75,672.7188 Q495.7344,672.2656 495.0625,671.4531 Q494.3906,670.6406 494.0625,669.5 Q493.7344,668.3438 493.7344,666.9531 Q493.7344,665.5781 494.1094,664.4219 Q494.4844,663.2656 495.2031,662.4375 Q495.9219,661.6094 496.9844,661.1563 Q498.0469,660.6875 499.4375,660.6875 Q500.3438,660.6875 501.25,660.9219 Q502.1563,661.1406 502.9844,661.5469 L502.1563,663.6406 Q501.4688,663.3125 500.7813,663.0781 Q500.0938,662.8281 499.4375,662.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136" x="513.5" y="671.8467">ParameterizableClass</text></g><!--class ParameterizableInterface--><g id="elem_ParameterizableInterface"><rect codeLine="242" fill="#F1F1F1" height="32" id="ParameterizableInterface" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="195" x="255" y="651"/><ellipse cx="270" cy="667" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M269.9375,662.8281 Q269.1875,662.8281 268.625,663.125 Q268.0625,663.4063 267.6719,663.9375 Q267.2813,664.4688 267.0781,665.25 Q266.8906,666.0156 266.8906,666.9688 Q266.8906,667.9375 267.0625,668.7031 Q267.25,669.4531 267.6094,669.9688 Q267.9844,670.4844 268.5625,670.7656 Q269.1406,671.0313 269.9375,671.0313 Q270.6719,671.0313 271.4063,670.8594 Q272.1563,670.6875 273.0313,670.3906 L273.0313,672.5469 Q272.625,672.7031 272.2344,672.8281 Q271.8438,672.9375 271.4375,673.0156 Q271.0313,673.0938 270.6094,673.125 Q270.1875,673.1719 269.6875,673.1719 Q268.2813,673.1719 267.25,672.7188 Q266.2344,672.2656 265.5625,671.4531 Q264.8906,670.6406 264.5625,669.5 Q264.2344,668.3438 264.2344,666.9531 Q264.2344,665.5781 264.6094,664.4219 Q264.9844,663.2656 265.7031,662.4375 Q266.4219,661.6094 267.4844,661.1563 Q268.5469,660.6875 269.9375,660.6875 Q270.8438,660.6875 271.75,660.9219 Q272.6563,661.1406 273.4844,661.5469 L272.6563,663.6406 Q271.9688,663.3125 271.2813,663.0781 Q270.5938,662.8281 269.9375,662.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="163" x="284" y="671.8467">ParameterizableInterface</text></g><!--class Function--><g id="elem_Function"><rect codeLine="249" fill="#F1F1F1" height="32" id="Function" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="86" x="1263.5" y="559"/><ellipse cx="1278.5" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1278.4375,570.8281 Q1277.6875,570.8281 1277.125,571.125 Q1276.5625,571.4063 1276.1719,571.9375 Q1275.7813,572.4688 1275.5781,573.25 Q1275.3906,574.0156 1275.3906,574.9688 Q1275.3906,575.9375 1275.5625,576.7031 Q1275.75,577.4531 1276.1094,577.9688 Q1276.4844,578.4844 1277.0625,578.7656 Q1277.6406,579.0313 1278.4375,579.0313 Q1279.1719,579.0313 1279.9063,578.8594 Q1280.6563,578.6875 1281.5313,578.3906 L1281.5313,580.5469 Q1281.125,580.7031 1280.7344,580.8281 Q1280.3438,580.9375 1279.9375,581.0156 Q1279.5313,581.0938 1279.1094,581.125 Q1278.6875,581.1719 1278.1875,581.1719 Q1276.7813,581.1719 1275.75,580.7188 Q1274.7344,580.2656 1274.0625,579.4531 Q1273.3906,578.6406 1273.0625,577.5 Q1272.7344,576.3438 1272.7344,574.9531 Q1272.7344,573.5781 1273.1094,572.4219 Q1273.4844,571.2656 1274.2031,570.4375 Q1274.9219,569.6094 1275.9844,569.1563 Q1277.0469,568.6875 1278.4375,568.6875 Q1279.3438,568.6875 1280.25,568.9219 Q1281.1563,569.1406 1281.9844,569.5469 L1281.1563,571.6406 Q1280.4688,571.3125 1279.7813,571.0781 Q1279.0938,570.8281 1278.4375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54" x="1292.5" y="579.8467">Function</text></g><!--class Accessor--><g id="elem_Accessor"><rect codeLine="253" fill="#F1F1F1" height="32" id="Accessor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="87" x="1144" y="651"/><ellipse cx="1159" cy="667" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1158.9375,662.8281 Q1158.1875,662.8281 1157.625,663.125 Q1157.0625,663.4063 1156.6719,663.9375 Q1156.2813,664.4688 1156.0781,665.25 Q1155.8906,666.0156 1155.8906,666.9688 Q1155.8906,667.9375 1156.0625,668.7031 Q1156.25,669.4531 1156.6094,669.9688 Q1156.9844,670.4844 1157.5625,670.7656 Q1158.1406,671.0313 1158.9375,671.0313 Q1159.6719,671.0313 1160.4063,670.8594 Q1161.1563,670.6875 1162.0313,670.3906 L1162.0313,672.5469 Q1161.625,672.7031 1161.2344,672.8281 Q1160.8438,672.9375 1160.4375,673.0156 Q1160.0313,673.0938 1159.6094,673.125 Q1159.1875,673.1719 1158.6875,673.1719 Q1157.2813,673.1719 1156.25,672.7188 Q1155.2344,672.2656 1154.5625,671.4531 Q1153.8906,670.6406 1153.5625,669.5 Q1153.2344,668.3438 1153.2344,666.9531 Q1153.2344,665.5781 1153.6094,664.4219 Q1153.9844,663.2656 1154.7031,662.4375 Q1155.4219,661.6094 1156.4844,661.1563 Q1157.5469,660.6875 1158.9375,660.6875 Q1159.8438,660.6875 1160.75,660.9219 Q1161.6563,661.1406 1162.4844,661.5469 L1161.6563,663.6406 Q1160.9688,663.3125 1160.2813,663.0781 Q1159.5938,662.8281 1158.9375,662.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="55" x="1173" y="671.8467">Accessor</text></g><!--class ParameterType--><g id="elem_ParameterType"><rect codeLine="257" fill="#F1F1F1" height="32" id="ParameterType" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="130" x="531.5" y="559"/><ellipse cx="546.5" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M546.4375,570.8281 Q545.6875,570.8281 545.125,571.125 Q544.5625,571.4063 544.1719,571.9375 Q543.7813,572.4688 543.5781,573.25 Q543.3906,574.0156 543.3906,574.9688 Q543.3906,575.9375 543.5625,576.7031 Q543.75,577.4531 544.1094,577.9688 Q544.4844,578.4844 545.0625,578.7656 Q545.6406,579.0313 546.4375,579.0313 Q547.1719,579.0313 547.9063,578.8594 Q548.6563,578.6875 549.5313,578.3906 L549.5313,580.5469 Q549.125,580.7031 548.7344,580.8281 Q548.3438,580.9375 547.9375,581.0156 Q547.5313,581.0938 547.1094,581.125 Q546.6875,581.1719 546.1875,581.1719 Q544.7813,581.1719 543.75,580.7188 Q542.7344,580.2656 542.0625,579.4531 Q541.3906,578.6406 541.0625,577.5 Q540.7344,576.3438 540.7344,574.9531 Q540.7344,573.5781 541.1094,572.4219 Q541.4844,571.2656 542.2031,570.4375 Q542.9219,569.6094 543.9844,569.1563 Q545.0469,568.6875 546.4375,568.6875 Q547.3438,568.6875 548.25,568.9219 Q549.1563,569.1406 549.9844,569.5469 L549.1563,571.6406 Q548.4688,571.3125 547.7813,571.0781 Q547.0938,570.8281 546.4375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98" x="560.5" y="579.8467">ParameterType</text></g><!--class Invocation--><g id="elem_Invocation"><rect codeLine="289" fill="#F1F1F1" height="32" id="Invocation" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="98" x="429.5" y="375"/><ellipse cx="444.5" cy="391" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M444.4375,386.8281 Q443.6875,386.8281 443.125,387.125 Q442.5625,387.4063 442.1719,387.9375 Q441.7813,388.4688 441.5781,389.25 Q441.3906,390.0156 441.3906,390.9688 Q441.3906,391.9375 441.5625,392.7031 Q441.75,393.4531 442.1094,393.9688 Q442.4844,394.4844 443.0625,394.7656 Q443.6406,395.0313 444.4375,395.0313 Q445.1719,395.0313 445.9063,394.8594 Q446.6563,394.6875 447.5313,394.3906 L447.5313,396.5469 Q447.125,396.7031 446.7344,396.8281 Q446.3438,396.9375 445.9375,397.0156 Q445.5313,397.0938 445.1094,397.125 Q444.6875,397.1719 444.1875,397.1719 Q442.7813,397.1719 441.75,396.7188 Q440.7344,396.2656 440.0625,395.4531 Q439.3906,394.6406 439.0625,393.5 Q438.7344,392.3438 438.7344,390.9531 Q438.7344,389.5781 439.1094,388.4219 Q439.4844,387.2656 440.2031,386.4375 Q440.9219,385.6094 441.9844,385.1563 Q443.0469,384.6875 444.4375,384.6875 Q445.3438,384.6875 446.25,384.9219 Q447.1563,385.1406 447.9844,385.5469 L447.1563,387.6406 Q446.4688,387.3125 445.7813,387.0781 Q445.0938,386.8281 444.4375,386.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="66" x="458.5" y="395.8467">Invocation</text></g><!--class Reference--><g id="elem_Reference"><rect codeLine="305" fill="#F1F1F1" height="32" id="Reference" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="97" x="563" y="375"/><ellipse cx="578" cy="391" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M577.9375,386.8281 Q577.1875,386.8281 576.625,387.125 Q576.0625,387.4063 575.6719,387.9375 Q575.2813,388.4688 575.0781,389.25 Q574.8906,390.0156 574.8906,390.9688 Q574.8906,391.9375 575.0625,392.7031 Q575.25,393.4531 575.6094,393.9688 Q575.9844,394.4844 576.5625,394.7656 Q577.1406,395.0313 577.9375,395.0313 Q578.6719,395.0313 579.4063,394.8594 Q580.1563,394.6875 581.0313,394.3906 L581.0313,396.5469 Q580.625,396.7031 580.2344,396.8281 Q579.8438,396.9375 579.4375,397.0156 Q579.0313,397.0938 578.6094,397.125 Q578.1875,397.1719 577.6875,397.1719 Q576.2813,397.1719 575.25,396.7188 Q574.2344,396.2656 573.5625,395.4531 Q572.8906,394.6406 572.5625,393.5 Q572.2344,392.3438 572.2344,390.9531 Q572.2344,389.5781 572.6094,388.4219 Q572.9844,387.2656 573.7031,386.4375 Q574.4219,385.6094 575.4844,385.1563 Q576.5469,384.6875 577.9375,384.6875 Q578.8438,384.6875 579.75,384.9219 Q580.6563,385.1406 581.4844,385.5469 L580.6563,387.6406 Q579.9688,387.3125 579.2813,387.0781 Q578.5938,386.8281 577.9375,386.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65" x="592" y="395.8467">Reference</text></g><!--class Variable--><g id="elem_Variable"><rect codeLine="315" fill="#F1F1F1" height="32" id="Variable" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="84" x="1478.5" y="467"/><ellipse cx="1493.5" cy="483" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1493.4375,478.8281 Q1492.6875,478.8281 1492.125,479.125 Q1491.5625,479.4063 1491.1719,479.9375 Q1490.7813,480.4688 1490.5781,481.25 Q1490.3906,482.0156 1490.3906,482.9688 Q1490.3906,483.9375 1490.5625,484.7031 Q1490.75,485.4531 1491.1094,485.9688 Q1491.4844,486.4844 1492.0625,486.7656 Q1492.6406,487.0313 1493.4375,487.0313 Q1494.1719,487.0313 1494.9063,486.8594 Q1495.6563,486.6875 1496.5313,486.3906 L1496.5313,488.5469 Q1496.125,488.7031 1495.7344,488.8281 Q1495.3438,488.9375 1494.9375,489.0156 Q1494.5313,489.0938 1494.1094,489.125 Q1493.6875,489.1719 1493.1875,489.1719 Q1491.7813,489.1719 1490.75,488.7188 Q1489.7344,488.2656 1489.0625,487.4531 Q1488.3906,486.6406 1488.0625,485.5 Q1487.7344,484.3438 1487.7344,482.9531 Q1487.7344,481.5781 1488.1094,480.4219 Q1488.4844,479.2656 1489.2031,478.4375 Q1489.9219,477.6094 1490.9844,477.1563 Q1492.0469,476.6875 1493.4375,476.6875 Q1494.3438,476.6875 1495.25,476.9219 Q1496.1563,477.1406 1496.9844,477.5469 L1496.1563,479.6406 Q1495.4688,479.3125 1494.7813,479.0781 Q1494.0938,478.8281 1493.4375,478.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="52" x="1507.5" y="487.8467">Variable</text></g><!--class Access--><g id="elem_Access"><rect codeLine="388" fill="#F1F1F1" height="32" id="Access" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="73" x="695" y="375"/><ellipse cx="710" cy="391" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M709.9375,386.8281 Q709.1875,386.8281 708.625,387.125 Q708.0625,387.4063 707.6719,387.9375 Q707.2813,388.4688 707.0781,389.25 Q706.8906,390.0156 706.8906,390.9688 Q706.8906,391.9375 707.0625,392.7031 Q707.25,393.4531 707.6094,393.9688 Q707.9844,394.4844 708.5625,394.7656 Q709.1406,395.0313 709.9375,395.0313 Q710.6719,395.0313 711.4063,394.8594 Q712.1563,394.6875 713.0313,394.3906 L713.0313,396.5469 Q712.625,396.7031 712.2344,396.8281 Q711.8438,396.9375 711.4375,397.0156 Q711.0313,397.0938 710.6094,397.125 Q710.1875,397.1719 709.6875,397.1719 Q708.2813,397.1719 707.25,396.7188 Q706.2344,396.2656 705.5625,395.4531 Q704.8906,394.6406 704.5625,393.5 Q704.2344,392.3438 704.2344,390.9531 Q704.2344,389.5781 704.6094,388.4219 Q704.9844,387.2656 705.7031,386.4375 Q706.4219,385.6094 707.4844,385.1563 Q708.5469,384.6875 709.9375,384.6875 Q710.8438,384.6875 711.75,384.9219 Q712.6563,385.1406 713.4844,385.5469 L712.6563,387.6406 Q711.9688,387.3125 711.2813,387.0781 Q710.5938,386.8281 709.9375,386.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="41" x="724" y="395.8467">Access</text></g><!--class Enum--><g id="elem_Enum"><rect codeLine="401" fill="#F1F1F1" height="32" id="Enum" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="68" x="696.5" y="559"/><ellipse cx="711.5" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M711.4375,570.8281 Q710.6875,570.8281 710.125,571.125 Q709.5625,571.4063 709.1719,571.9375 Q708.7813,572.4688 708.5781,573.25 Q708.3906,574.0156 708.3906,574.9688 Q708.3906,575.9375 708.5625,576.7031 Q708.75,577.4531 709.1094,577.9688 Q709.4844,578.4844 710.0625,578.7656 Q710.6406,579.0313 711.4375,579.0313 Q712.1719,579.0313 712.9063,578.8594 Q713.6563,578.6875 714.5313,578.3906 L714.5313,580.5469 Q714.125,580.7031 713.7344,580.8281 Q713.3438,580.9375 712.9375,581.0156 Q712.5313,581.0938 712.1094,581.125 Q711.6875,581.1719 711.1875,581.1719 Q709.7813,581.1719 708.75,580.7188 Q707.7344,580.2656 707.0625,579.4531 Q706.3906,578.6406 706.0625,577.5 Q705.7344,576.3438 705.7344,574.9531 Q705.7344,573.5781 706.1094,572.4219 Q706.4844,571.2656 707.2031,570.4375 Q707.9219,569.6094 708.9844,569.1563 Q710.0469,568.6875 711.4375,568.6875 Q712.3438,568.6875 713.25,568.9219 Q714.1563,569.1406 714.9844,569.5469 L714.1563,571.6406 Q713.4688,571.3125 712.7813,571.0781 Q712.0938,570.8281 711.4375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="36" x="725.5" y="579.8467">Enum</text></g><!--class EnumValue--><g id="elem_EnumValue"><rect codeLine="408" fill="#F1F1F1" height="32" id="EnumValue" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="103" x="1598" y="467"/><ellipse cx="1613" cy="483" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1612.9375,478.8281 Q1612.1875,478.8281 1611.625,479.125 Q1611.0625,479.4063 1610.6719,479.9375 Q1610.2813,480.4688 1610.0781,481.25 Q1609.8906,482.0156 1609.8906,482.9688 Q1609.8906,483.9375 1610.0625,484.7031 Q1610.25,485.4531 1610.6094,485.9688 Q1610.9844,486.4844 1611.5625,486.7656 Q1612.1406,487.0313 1612.9375,487.0313 Q1613.6719,487.0313 1614.4063,486.8594 Q1615.1563,486.6875 1616.0313,486.3906 L1616.0313,488.5469 Q1615.625,488.7031 1615.2344,488.8281 Q1614.8438,488.9375 1614.4375,489.0156 Q1614.0313,489.0938 1613.6094,489.125 Q1613.1875,489.1719 1612.6875,489.1719 Q1611.2813,489.1719 1610.25,488.7188 Q1609.2344,488.2656 1608.5625,487.4531 Q1607.8906,486.6406 1607.5625,485.5 Q1607.2344,484.3438 1607.2344,482.9531 Q1607.2344,481.5781 1607.6094,480.4219 Q1607.9844,479.2656 1608.7031,478.4375 Q1609.4219,477.6094 1610.4844,477.1563 Q1611.5469,476.6875 1612.9375,476.6875 Q1613.8438,476.6875 1614.75,476.9219 Q1615.6563,477.1406 1616.4844,477.5469 L1615.6563,479.6406 Q1614.9688,479.3125 1614.2813,479.0781 Q1613.5938,478.8281 1612.9375,478.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="71" x="1627" y="487.8467">EnumValue</text></g><!--class ImplicitVariable--><g id="elem_ImplicitVariable"><rect codeLine="415" fill="#F1F1F1" height="32" id="ImplicitVariable" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="133" x="1454" y="559"/><ellipse cx="1469" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1468.9375,570.8281 Q1468.1875,570.8281 1467.625,571.125 Q1467.0625,571.4063 1466.6719,571.9375 Q1466.2813,572.4688 1466.0781,573.25 Q1465.8906,574.0156 1465.8906,574.9688 Q1465.8906,575.9375 1466.0625,576.7031 Q1466.25,577.4531 1466.6094,577.9688 Q1466.9844,578.4844 1467.5625,578.7656 Q1468.1406,579.0313 1468.9375,579.0313 Q1469.6719,579.0313 1470.4063,578.8594 Q1471.1563,578.6875 1472.0313,578.3906 L1472.0313,580.5469 Q1471.625,580.7031 1471.2344,580.8281 Q1470.8438,580.9375 1470.4375,581.0156 Q1470.0313,581.0938 1469.6094,581.125 Q1469.1875,581.1719 1468.6875,581.1719 Q1467.2813,581.1719 1466.25,580.7188 Q1465.2344,580.2656 1464.5625,579.4531 Q1463.8906,578.6406 1463.5625,577.5 Q1463.2344,576.3438 1463.2344,574.9531 Q1463.2344,573.5781 1463.6094,572.4219 Q1463.9844,571.2656 1464.7031,570.4375 Q1465.4219,569.6094 1466.4844,569.1563 Q1467.5469,568.6875 1468.9375,568.6875 Q1469.8438,568.6875 1470.75,568.9219 Q1471.6563,569.1406 1472.4844,569.5469 L1471.6563,571.6406 Q1470.9688,571.3125 1470.2813,571.0781 Q1469.5938,570.8281 1468.9375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101" x="1483" y="579.8467">ImplicitVariable</text></g><!--class IndexedFileAnchor--><g id="elem_IndexedFileAnchor"><rect codeLine="419" fill="#F1F1F1" height="32" id="IndexedFileAnchor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="152" x="1025.5" y="283"/><ellipse cx="1040.5" cy="299" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1040.4375,294.8281 Q1039.6875,294.8281 1039.125,295.125 Q1038.5625,295.4063 1038.1719,295.9375 Q1037.7813,296.4688 1037.5781,297.25 Q1037.3906,298.0156 1037.3906,298.9688 Q1037.3906,299.9375 1037.5625,300.7031 Q1037.75,301.4531 1038.1094,301.9688 Q1038.4844,302.4844 1039.0625,302.7656 Q1039.6406,303.0313 1040.4375,303.0313 Q1041.1719,303.0313 1041.9063,302.8594 Q1042.6563,302.6875 1043.5313,302.3906 L1043.5313,304.5469 Q1043.125,304.7031 1042.7344,304.8281 Q1042.3438,304.9375 1041.9375,305.0156 Q1041.5313,305.0938 1041.1094,305.125 Q1040.6875,305.1719 1040.1875,305.1719 Q1038.7813,305.1719 1037.75,304.7188 Q1036.7344,304.2656 1036.0625,303.4531 Q1035.3906,302.6406 1035.0625,301.5 Q1034.7344,300.3438 1034.7344,298.9531 Q1034.7344,297.5781 1035.1094,296.4219 Q1035.4844,295.2656 1036.2031,294.4375 Q1036.9219,293.6094 1037.9844,293.1563 Q1039.0469,292.6875 1040.4375,292.6875 Q1041.3438,292.6875 1042.25,292.9219 Q1043.1563,293.1406 1043.9844,293.5469 L1043.1563,295.6406 Q1042.4688,295.3125 1041.7813,295.0781 Q1041.0938,294.8281 1040.4375,294.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="1054.5" y="303.8467">IndexedFileAnchor</text></g><!--class ParameterizedType--><g id="elem_ParameterizedType"><rect codeLine="438" fill="#F1F1F1" height="32" id="ParameterizedType" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="156" x="799.5" y="559"/><ellipse cx="814.5" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M814.4375,570.8281 Q813.6875,570.8281 813.125,571.125 Q812.5625,571.4063 812.1719,571.9375 Q811.7813,572.4688 811.5781,573.25 Q811.3906,574.0156 811.3906,574.9688 Q811.3906,575.9375 811.5625,576.7031 Q811.75,577.4531 812.1094,577.9688 Q812.4844,578.4844 813.0625,578.7656 Q813.6406,579.0313 814.4375,579.0313 Q815.1719,579.0313 815.9063,578.8594 Q816.6563,578.6875 817.5313,578.3906 L817.5313,580.5469 Q817.125,580.7031 816.7344,580.8281 Q816.3438,580.9375 815.9375,581.0156 Q815.5313,581.0938 815.1094,581.125 Q814.6875,581.1719 814.1875,581.1719 Q812.7813,581.1719 811.75,580.7188 Q810.7344,580.2656 810.0625,579.4531 Q809.3906,578.6406 809.0625,577.5 Q808.7344,576.3438 808.7344,574.9531 Q808.7344,573.5781 809.1094,572.4219 Q809.4844,571.2656 810.2031,570.4375 Q810.9219,569.6094 811.9844,569.1563 Q813.0469,568.6875 814.4375,568.6875 Q815.3438,568.6875 816.25,568.9219 Q817.1563,569.1406 817.9844,569.5469 L817.1563,571.6406 Q816.4688,571.3125 815.7813,571.0781 Q815.0938,570.8281 814.4375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="828.5" y="579.8467">ParameterizedType</text></g><!--class PrimitiveType--><g id="elem_PrimitiveType"><rect codeLine="448" fill="#F1F1F1" height="32" id="PrimitiveType" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="121" x="991" y="559"/><ellipse cx="1006" cy="575" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1005.9375,570.8281 Q1005.1875,570.8281 1004.625,571.125 Q1004.0625,571.4063 1003.6719,571.9375 Q1003.2813,572.4688 1003.0781,573.25 Q1002.8906,574.0156 1002.8906,574.9688 Q1002.8906,575.9375 1003.0625,576.7031 Q1003.25,577.4531 1003.6094,577.9688 Q1003.9844,578.4844 1004.5625,578.7656 Q1005.1406,579.0313 1005.9375,579.0313 Q1006.6719,579.0313 1007.4063,578.8594 Q1008.1563,578.6875 1009.0313,578.3906 L1009.0313,580.5469 Q1008.625,580.7031 1008.2344,580.8281 Q1007.8438,580.9375 1007.4375,581.0156 Q1007.0313,581.0938 1006.6094,581.125 Q1006.1875,581.1719 1005.6875,581.1719 Q1004.2813,581.1719 1003.25,580.7188 Q1002.2344,580.2656 1001.5625,579.4531 Q1000.8906,578.6406 1000.5625,577.5 Q1000.2344,576.3438 1000.2344,574.9531 Q1000.2344,573.5781 1000.6094,572.4219 Q1000.9844,571.2656 1001.7031,570.4375 Q1002.4219,569.6094 1003.4844,569.1563 Q1004.5469,568.6875 1005.9375,568.6875 Q1006.8438,568.6875 1007.75,568.9219 Q1008.6563,569.1406 1009.4844,569.5469 L1008.6563,571.6406 Q1007.9688,571.3125 1007.2813,571.0781 Q1006.5938,570.8281 1005.9375,570.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="89" x="1020" y="579.8467">PrimitiveType</text></g><!--class TextAnchor--><g id="elem_TextAnchor"><rect codeLine="452" fill="#F1F1F1" height="32" id="TextAnchor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="104" x="1212.5" y="283"/><ellipse cx="1227.5" cy="299" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M1227.4375,294.8281 Q1226.6875,294.8281 1226.125,295.125 Q1225.5625,295.4063 1225.1719,295.9375 Q1224.7813,296.4688 1224.5781,297.25 Q1224.3906,298.0156 1224.3906,298.9688 Q1224.3906,299.9375 1224.5625,300.7031 Q1224.75,301.4531 1225.1094,301.9688 Q1225.4844,302.4844 1226.0625,302.7656 Q1226.6406,303.0313 1227.4375,303.0313 Q1228.1719,303.0313 1228.9063,302.8594 Q1229.6563,302.6875 1230.5313,302.3906 L1230.5313,304.5469 Q1230.125,304.7031 1229.7344,304.8281 Q1229.3438,304.9375 1228.9375,305.0156 Q1228.5313,305.0938 1228.1094,305.125 Q1227.6875,305.1719 1227.1875,305.1719 Q1225.7813,305.1719 1224.75,304.7188 Q1223.7344,304.2656 1223.0625,303.4531 Q1222.3906,302.6406 1222.0625,301.5 Q1221.7344,300.3438 1221.7344,298.9531 Q1221.7344,297.5781 1222.1094,296.4219 Q1222.4844,295.2656 1223.2031,294.4375 Q1223.9219,293.6094 1224.9844,293.1563 Q1226.0469,292.6875 1227.4375,292.6875 Q1228.3438,292.6875 1229.25,292.9219 Q1230.1563,293.1406 1230.9844,293.5469 L1230.1563,295.6406 Q1229.4688,295.3125 1228.7813,295.0781 Q1228.0938,294.8281 1227.4375,294.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="72" x="1241.5" y="303.8467">TextAnchor</text></g><!--class SearchParameters--><g id="elem_SearchParameters"><rect codeLine="465" fill="#F1F1F1" height="32" id="SearchParameters" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="148" x="137.5" y="7"/><ellipse cx="152.5" cy="23" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M155.0625,29 L149.5469,29 L149.5469,27.5313 L151.0313,26.8594 L151.0313,19 L149.5469,18.3281 L149.5469,16.8594 L155.0625,16.8594 L155.0625,18.3281 L153.5938,19 L153.5938,26.8594 L155.0625,27.5313 L155.0625,29 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="116" x="166.5" y="27.8467">SearchParameters</text></g><!--class EntityDictionary--><g id="elem_EntityDictionary"><rect codeLine="470" fill="#F1F1F1" height="32" id="EntityDictionary" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="133" x="321" y="7"/><ellipse cx="336" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M335.9375,18.8281 Q335.1875,18.8281 334.625,19.125 Q334.0625,19.4063 333.6719,19.9375 Q333.2813,20.4688 333.0781,21.25 Q332.8906,22.0156 332.8906,22.9688 Q332.8906,23.9375 333.0625,24.7031 Q333.25,25.4531 333.6094,25.9688 Q333.9844,26.4844 334.5625,26.7656 Q335.1406,27.0313 335.9375,27.0313 Q336.6719,27.0313 337.4063,26.8594 Q338.1563,26.6875 339.0313,26.3906 L339.0313,28.5469 Q338.625,28.7031 338.2344,28.8281 Q337.8438,28.9375 337.4375,29.0156 Q337.0313,29.0938 336.6094,29.125 Q336.1875,29.1719 335.6875,29.1719 Q334.2813,29.1719 333.25,28.7188 Q332.2344,28.2656 331.5625,27.4531 Q330.8906,26.6406 330.5625,25.5 Q330.2344,24.3438 330.2344,22.9531 Q330.2344,21.5781 330.6094,20.4219 Q330.9844,19.2656 331.7031,18.4375 Q332.4219,17.6094 333.4844,17.1563 Q334.5469,16.6875 335.9375,16.6875 Q336.8438,16.6875 337.75,16.9219 Q338.6563,17.1406 339.4844,17.5469 L338.6563,19.6406 Q337.9688,19.3125 337.2813,19.0781 Q336.5938,18.8281 335.9375,18.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101" x="350" y="27.8467">EntityDictionary</text></g><!--class FamixRepository--><g id="elem_FamixRepository"><rect codeLine="503" fill="#F1F1F1" height="32" id="FamixRepository" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="138" x="489.5" y="7"/><ellipse cx="504.5" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M504.4375,18.8281 Q503.6875,18.8281 503.125,19.125 Q502.5625,19.4063 502.1719,19.9375 Q501.7813,20.4688 501.5781,21.25 Q501.3906,22.0156 501.3906,22.9688 Q501.3906,23.9375 501.5625,24.7031 Q501.75,25.4531 502.1094,25.9688 Q502.4844,26.4844 503.0625,26.7656 Q503.6406,27.0313 504.4375,27.0313 Q505.1719,27.0313 505.9063,26.8594 Q506.6563,26.6875 507.5313,26.3906 L507.5313,28.5469 Q507.125,28.7031 506.7344,28.8281 Q506.3438,28.9375 505.9375,29.0156 Q505.5313,29.0938 505.1094,29.125 Q504.6875,29.1719 504.1875,29.1719 Q502.7813,29.1719 501.75,28.7188 Q500.7344,28.2656 500.0625,27.4531 Q499.3906,26.6406 499.0625,25.5 Q498.7344,24.3438 498.7344,22.9531 Q498.7344,21.5781 499.1094,20.4219 Q499.4844,19.2656 500.2031,18.4375 Q500.9219,17.6094 501.9844,17.1563 Q503.0469,16.6875 504.4375,16.6875 Q505.3438,16.6875 506.25,16.9219 Q507.1563,17.1406 507.9844,17.5469 L507.1563,19.6406 Q506.4688,19.3125 505.7813,19.0781 Q505.0938,18.8281 504.4375,18.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="106" x="518.5" y="27.8467">FamixRepository</text></g><!--class Importer--><g id="elem_Importer"><rect codeLine="539" fill="#F1F1F1" height="32" id="Importer" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="91" x="166" y="99"/><ellipse cx="181" cy="115" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M180.9375,110.8281 Q180.1875,110.8281 179.625,111.125 Q179.0625,111.4063 178.6719,111.9375 Q178.2813,112.4688 178.0781,113.25 Q177.8906,114.0156 177.8906,114.9688 Q177.8906,115.9375 178.0625,116.7031 Q178.25,117.4531 178.6094,117.9688 Q178.9844,118.4844 179.5625,118.7656 Q180.1406,119.0313 180.9375,119.0313 Q181.6719,119.0313 182.4063,118.8594 Q183.1563,118.6875 184.0313,118.3906 L184.0313,120.5469 Q183.625,120.7031 183.2344,120.8281 Q182.8438,120.9375 182.4375,121.0156 Q182.0313,121.0938 181.6094,121.125 Q181.1875,121.1719 180.6875,121.1719 Q179.2813,121.1719 178.25,120.7188 Q177.2344,120.2656 176.5625,119.4531 Q175.8906,118.6406 175.5625,117.5 Q175.2344,116.3438 175.2344,114.9531 Q175.2344,113.5781 175.6094,112.4219 Q175.9844,111.2656 176.7031,110.4375 Q177.4219,109.6094 178.4844,109.1563 Q179.5469,108.6875 180.9375,108.6875 Q181.8438,108.6875 182.75,108.9219 Q183.6563,109.1406 184.4844,109.5469 L183.6563,111.6406 Q182.9688,111.3125 182.2813,111.0781 Q181.5938,110.8281 180.9375,110.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59" x="195" y="119.8467">Importer</text></g><!--class FamixJSONExporter--><g id="elem_FamixJSONExporter"><rect codeLine="551" fill="#F1F1F1" height="32" id="FamixJSONExporter" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="156" x="292.5" y="99"/><ellipse cx="307.5" cy="115" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M307.4375,110.8281 Q306.6875,110.8281 306.125,111.125 Q305.5625,111.4063 305.1719,111.9375 Q304.7813,112.4688 304.5781,113.25 Q304.3906,114.0156 304.3906,114.9688 Q304.3906,115.9375 304.5625,116.7031 Q304.75,117.4531 305.1094,117.9688 Q305.4844,118.4844 306.0625,118.7656 Q306.6406,119.0313 307.4375,119.0313 Q308.1719,119.0313 308.9063,118.8594 Q309.6563,118.6875 310.5313,118.3906 L310.5313,120.5469 Q310.125,120.7031 309.7344,120.8281 Q309.3438,120.9375 308.9375,121.0156 Q308.5313,121.0938 308.1094,121.125 Q307.6875,121.1719 307.1875,121.1719 Q305.7813,121.1719 304.75,120.7188 Q303.7344,120.2656 303.0625,119.4531 Q302.3906,118.6406 302.0625,117.5 Q301.7344,116.3438 301.7344,114.9531 Q301.7344,113.5781 302.1094,112.4219 Q302.4844,111.2656 303.2031,110.4375 Q303.9219,109.6094 304.9844,109.1563 Q306.0469,108.6875 307.4375,108.6875 Q308.3438,108.6875 309.25,108.9219 Q310.1563,109.1406 310.9844,109.5469 L310.1563,111.6406 Q309.4688,111.3125 308.7813,111.0781 Q308.0938,110.8281 307.4375,110.8281 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="321.5" y="119.8467">FamixJSONExporter</text></g><!--reverse link FamixBaseElement to Entity--><g id="link_FamixBaseElement_Entity"><path d="M739.5,59.61 C739.5,73.31 739.5,88.22 739.5,98.96 " fill="none" id="FamixBaseElement-backto-Entity" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="732.5,59.27,739.5,39.27,746.5,59.27,732.5,59.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Entity to SourceLanguage--><g id="link_Entity_SourceLanguage"><path d="M694.74,140.87 C665.87,156.91 629.26,177.24 604.7,190.89 " fill="none" id="Entity-backto-SourceLanguage" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="691.5,134.66,712.38,131.06,698.3,146.9,691.5,134.66" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link SourcedEntity to Comment--><g id="link_SourcedEntity_Comment"><path d="M676.58,229.61 C628.68,246.07 563.96,268.3 521.5,282.89 " fill="none" id="SourcedEntity-backto-Comment" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="674.46,222.94,695.65,223.06,679.01,236.18,674.46,222.94" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Entity to SourceAnchor--><g id="link_Entity_SourceAnchor"><path d="M793.37,129.39 C859.73,145.89 972.15,173.84 1041.3,191.03 " fill="none" id="Entity-backto-SourceAnchor" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="791.28,136.09,773.56,124.47,794.65,122.5,791.28,136.09" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Entity to SourcedEntity--><g id="link_Entity_SourcedEntity"><path d="M739.5,151.61 C739.5,165.31 739.5,180.22 739.5,190.96 " fill="none" id="Entity-backto-SourcedEntity" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="732.5,151.27,739.5,131.27,746.5,151.27,732.5,151.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link SourcedEntity to Association--><g id="link_SourcedEntity_Association"><path d="M701.5,234.72 C679.13,250.45 651.66,269.76 632.99,282.89 " fill="none" id="SourcedEntity-backto-Association" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="697.69,228.84,718.08,223.06,705.74,240.29,697.69,228.84" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ScopingEntity to Namespace--><g id="link_ScopingEntity_Namespace"><path d="M159.02,510.02 C134.37,525.87 103.73,545.57 83.01,558.89 " fill="none" id="ScopingEntity-backto-Namespace" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="155.46,503.99,176.07,499.06,163.03,515.77,155.46,503.99" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ContainerEntity to ScopingEntity--><g id="link_ContainerEntity_ScopingEntity"><path d="M783.53,407.15 C578.68,438.38 360.1,464 257.86,475.54 " fill="none" id="ContainerEntity-backto-ScopingEntity" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="782.48,400.23,803.31,404.11,784.6,414.07,782.48,400.23" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ScopingEntity to ScriptEntity--><g id="link_ScopingEntity_ScriptEntity"><path d="M199.5,519.61 C199.5,533.31 199.5,548.22 199.5,558.96 " fill="none" id="ScopingEntity-backto-ScriptEntity" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="192.5,519.27,199.5,499.27,206.5,519.27,192.5,519.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ScriptEntity to Module--><g id="link_ScriptEntity_Module"><path d="M191.7,611.12 C188.62,624.95 185.26,640.09 182.84,650.96 " fill="none" id="ScriptEntity-backto-Module" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="184.94,609.27,196.11,591.27,198.6,612.31,184.94,609.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Association to ImportClause--><g id="link_Association_ImportClause"><path d="M540.05,315.52 C428.02,339.76 319.01,363.23 253.62,377.29 " fill="none" id="Association-backto-ImportClause" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="538.86,308.62,559.88,311.23,541.82,322.3,538.86,308.62" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link NamedEntity to Alias--><g id="link_NamedEntity_Alias"><path d="M956.74,331.69 C967.52,346.4 979.84,363.18 988.47,374.96 " fill="none" id="NamedEntity-backto-Alias" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="950.88,335.53,944.7,315.27,962.17,327.26,950.88,335.53" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link NamedEntity to Decorator--><g id="link_NamedEntity_Decorator"><path d="M981.87,324.18 C1014.15,340.32 1055.6,361.05 1083.27,374.89 " fill="none" id="NamedEntity-backto-Decorator" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="978.39,330.27,963.63,315.06,984.65,317.75,978.39,330.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link SourcedEntity to NamedEntity--><g id="link_SourcedEntity_NamedEntity"><path d="M790.17,231.51 C825.16,247.74 870.67,268.85 900.92,282.89 " fill="none" id="SourcedEntity-backto-NamedEntity" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="787.17,237.83,771.97,223.06,793.06,225.13,787.17,237.83" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link StructuralEntity to Parameter--><g id="link_StructuralEntity_Parameter"><path d="M1361.2,418.72 C1338.66,434.45 1310.97,453.76 1292.16,466.89 " fill="none" id="StructuralEntity-backto-Parameter" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1357.5,412.77,1377.91,407.06,1365.51,424.25,1357.5,412.77" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link StructuralEntity to Property--><g id="link_StructuralEntity_Property"><path d="M1399.5,427.61 C1399.5,441.31 1399.5,456.22 1399.5,466.96 " fill="none" id="StructuralEntity-backto-Property" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1392.5,427.27,1399.5,407.27,1406.5,427.27,1392.5,427.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Association to Inheritance--><g id="link_Association_Inheritance"><path d="M547.32,321.39 C497.89,337.87 430.79,360.24 386.84,374.89 " fill="none" id="Association-backto-Inheritance" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="545.12,314.75,566.31,315.06,549.55,328.03,545.12,314.75" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Type to Interface--><g id="link_Type_Interface"><path d="M679.64,496.11 C605.38,513.79 468.42,546.4 397.58,563.27 " fill="none" id="Type-backto-Interface" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="678.17,489.26,699.25,491.44,681.41,502.88,678.17,489.26" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link BehavioralEntity to Method--><g id="link_BehavioralEntity_Method"><path d="M1141.77,515.21 C1153.3,530.03 1166.54,547.06 1175.8,558.96 " fill="none" id="BehavioralEntity-backto-Method" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1136.13,519.35,1129.37,499.27,1147.18,510.76,1136.13,519.35" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Type to Class--><g id="link_Type_Class"><path d="M680.36,500.96 C626.25,519.27 541.73,547.87 496.16,563.29 " fill="none" id="Type-backto-Class" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="678.28,494.28,699.47,494.5,682.76,507.54,678.28,494.28" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Class to ParameterizableClass--><g id="link_Class_ParameterizableClass"><path d="M497.52,604.58 C515.31,619.97 536.54,638.34 551.12,650.96 " fill="none" id="Class-backto-ParameterizableClass" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="492.68,609.65,482.14,591.27,501.85,599.06,492.68,609.65" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Interface to ParameterizableInterface--><g id="link_Interface_ParameterizableInterface"><path d="M352.5,611.61 C352.5,625.31 352.5,640.22 352.5,650.96 " fill="none" id="Interface-backto-ParameterizableInterface" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="345.5,611.27,352.5,591.27,359.5,611.27,345.5,611.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link BehavioralEntity to Function--><g id="link_BehavioralEntity_Function"><path d="M1167.34,507.73 C1201.36,523.94 1245.43,544.92 1274.76,558.89 " fill="none" id="BehavioralEntity-backto-Function" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1164.18,513.98,1149.13,499.06,1170.2,501.34,1164.18,513.98" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Method to Accessor--><g id="link_Method_Accessor"><path d="M1187.5,611.61 C1187.5,625.31 1187.5,640.22 1187.5,650.96 " fill="none" id="Method-backto-Accessor" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1180.5,611.27,1187.5,591.27,1194.5,611.27,1180.5,611.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Type to ParameterType--><g id="link_Type_ParameterType"><path d="M691.41,510.25 C667.87,526.06 638.74,545.63 619,558.89 " fill="none" id="Type-backto-ParameterType" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="687.57,504.4,708.07,499.06,695.37,516.03,687.57,504.4" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ContainerEntity to BehavioralEntity--><g id="link_ContainerEntity_BehavioralEntity"><path d="M929.21,413.94 C974.64,430.36 1035.6,452.4 1075.69,466.89 " fill="none" id="ContainerEntity-backto-BehavioralEntity" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="926.61,420.45,910.18,407.06,931.37,407.28,926.61,420.45" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Association to Invocation--><g id="link_Association_Invocation"><path d="M572.36,326.49 C549.06,342.26 520.33,361.7 500.83,374.89 " fill="none" id="Association-backto-Invocation" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="568.75,320.48,589.24,315.06,576.6,332.07,568.75,320.48" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Association to Reference--><g id="link_Association_Reference"><path d="M611.5,335.61 C611.5,349.31 611.5,364.22 611.5,374.96 " fill="none" id="Association-backto-Reference" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="604.5,335.27,611.5,315.27,618.5,335.27,604.5,335.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link StructuralEntity to Variable--><g id="link_StructuralEntity_Variable"><path d="M1436.05,419.19 C1457.08,434.83 1482.71,453.89 1500.18,466.89 " fill="none" id="StructuralEntity-backto-Variable" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1431.62,424.62,1419.75,407.06,1439.98,413.38,1431.62,424.62" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link NamedEntity to ContainerEntity--><g id="link_NamedEntity_ContainerEntity"><path d="M910.61,331.69 C899.99,346.4 887.87,363.18 879.36,374.96 " fill="none" id="NamedEntity-backto-ContainerEntity" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="905.09,327.38,922.47,315.27,916.44,335.58,905.09,327.38" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ContainerEntity to Type--><g id="link_ContainerEntity_Type"><path d="M828.6,418.02 C804.3,433.87 774.1,453.57 753.67,466.89 " fill="none" id="ContainerEntity-backto-Type" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="824.83,412.13,845.4,407.06,832.47,423.85,824.83,412.13" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link NamedEntity to StructuralEntity--><g id="link_NamedEntity_StructuralEntity"><path d="M1010.52,315.56 C1135.6,340.14 1260.3,363.8 1334.26,377.74 " fill="none" id="NamedEntity-backto-StructuralEntity" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1009.13,322.42,990.85,311.69,1011.83,308.69,1009.13,322.42" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Association to Access--><g id="link_Association_Access"><path d="M647.75,327.19 C668.61,342.83 694.02,361.89 711.35,374.89 " fill="none" id="Association-backto-Access" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="643.39,332.66,631.59,315.06,651.79,321.46,643.39,332.66" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Type to Enum--><g id="link_Type_Enum"><path d="M730.5,519.61 C730.5,533.31 730.5,548.22 730.5,558.96 " fill="none" id="Type-backto-Enum" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="723.5,519.27,730.5,499.27,737.5,519.27,723.5,519.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link StructuralEntity to EnumValue--><g id="link_StructuralEntity_EnumValue"><path d="M1460.45,413.94 C1506.07,430.36 1567.27,452.4 1607.52,466.89 " fill="none" id="StructuralEntity-backto-EnumValue" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1457.79,420.42,1441.34,407.06,1462.53,407.25,1457.79,420.42" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Variable to ImplicitVariable--><g id="link_Variable_ImplicitVariable"><path d="M1520.5,519.61 C1520.5,533.31 1520.5,548.22 1520.5,558.96 " fill="none" id="Variable-backto-ImplicitVariable" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1513.5,519.27,1520.5,499.27,1527.5,519.27,1513.5,519.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link SourceAnchor to IndexedFileAnchor--><g id="link_SourceAnchor_IndexedFileAnchor"><path d="M1101.5,243.61 C1101.5,257.31 1101.5,272.22 1101.5,282.96 " fill="none" id="SourceAnchor-backto-IndexedFileAnchor" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1094.5,243.27,1101.5,223.27,1108.5,243.27,1094.5,243.27" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Type to ParameterizedType--><g id="link_Type_ParameterizedType"><path d="M772.25,509.56 C798.26,525.49 830.85,545.44 852.82,558.89 " fill="none" id="Type-backto-ParameterizedType" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="768.51,515.48,755.1,499.06,775.82,503.54,768.51,515.48" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Type to PrimitiveType--><g id="link_Type_PrimitiveType"><path d="M781.11,498.19 C840.21,514.76 937.52,542.04 997.88,558.97 " fill="none" id="Type-backto-PrimitiveType" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="778.94,504.85,761.57,492.71,782.72,491.37,778.94,504.85" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link SourceAnchor to TextAnchor--><g id="link_SourceAnchor_TextAnchor"><path d="M1146.54,232.87 C1175.59,248.91 1212.42,269.24 1237.13,282.89 " fill="none" id="SourceAnchor-backto-TextAnchor" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="1142.91,238.86,1128.78,223.06,1149.67,226.6,1142.91,238.86" style="stroke:#181818;stroke-width:1.0;"/></g><!--SRC=[xHpBSjmsykwlu96foAuzRZ5RIicId9eaihGUnJbiRRau94R3pGmvIv1QARR_VV5ie846P-n4z3xYWpn4Fz40-W60t3GrotPijs8zVrPjIywpotPeXiUCFGoihNdsgjmr3ozBpYwtRCVQ8Nl_B1F_lhvZm_VBwzVvLqN6XxvfxtHpMTStVRTd_T0mVjjTFkoxVc1zpioFGZEKf1OcEDntJVtier5WsOrznNuisxknl6EWYD5BYt_E5LAj6eMa8bkouIzBh_7nL2lKbZk6LHIQBp6rx4IANdG8DUU-vCSYGq3RbIUsq7ctKqDXJODqi1Pg-FVBYwugibNNRLdPWb8B3P1w8H1te93MxzVpgck7iccbfaWm23Yt2CgkCGhtKLBS8f6Ymz4udklsqCJSGGBAcGP8z-IihJPTdvZ0J2-db0tDQajRq2BGV6RjPnsuZ70UBeTnHKr3sKxFGWK92D64u9w12sJkO8thHcT67ua7I6ccmMHKgy_u7BCMJxqvgS7MgM04ONJJa1i-XLtEI4ZDX8LxLcDdM0JE4OHUaEYksvY09mcE4plJx3hZlAkQScYwTjhLjG9Q-EYWsMi1aPf5C6vW4IaQXNtFxfjkv3Jp6mDD2G0uoMOc8xuMyO_loye5qcNLxOK4RCAz6FLsa20vsZw6wwv3KHChHk8OASrpBlU4Uchx3x47Mw3QDDjQA0m6CmiSdjqIToXsaOT8GdbeoXLdU2pSaCncXhxP3u4Lo5dGZZ8Jl5x_ACp3hzUtQd7eHjVv64Vgx6Dn6ck2Erfr5kzyK_Pb9Jh4aqeub0aTFAGqwvd6ugghnws_5hsXCOFGZSDT9sGkTfA5cONwuNnRZjoRYDSOrSv60bceZf7pnaCgCfza9bFu8i4Wli-t2OJ2WxbQ61kwH0B3fQO-1eynD4Uff4P4iyy08S6NgpNCpXO8HqgCi7Y4DS4OAR1JEYtth6hMZLGoI7glC9n8VaEC1CUvmlYsAJaCiDTh77kcx7tZOQIiZN2IB96bIwcP6v3RnxsRLMS-JCfqK1v22JupsLQaSLrV3bwLGTYtjaY2Iyyu5sihcbGNCGuniIYi2UvXHYlnfXVM1KPAZNM8DiLxnZmhB8J8P7KzRhUFVnt5d15hKQK5qM2yYb28iI2GqgpHIFIiOiqzgnVjVLSfLsk333Iu4FCcHeOm4w8BCyReUInEX1luZNrlAugYuqBV0gDEXpwCd9Uj_f4EUy_9RQF4IAZcDcLjxHnCNvJVE0sS32ZlGuNMwb4xbq9xKMf1TRtX3OlpD5xL82944cAWoItbmZcMcPQFyDx2W0BW5i_GZzKmzkLsAbgyP9jIr5Q0bGmPDE9qt0XfvhA5fdyyQ8g6dqk2PLCpQdy5WFGcYmDJV70TZCoYaBCFOX4BvTUYZaaQFO4vRVM8ACoEL19Z9hqs_QcV76cmdV08GGoEHSWjevcpeKMxONqpb6qrcVJoKKXH55FsNWBMjBKzl4d6U8zjN1sXmEeeyIihV7MCw2Srlv47nfVP6lWMuAudZrs9fzwUZyMm4op0SJgAUMr-5B2ayLHcmwQhZQWhzU1DP0sqKX1OJcFrd6iMeevH_mV39oHwimrYFBISuddauxeG7sBByv00Emz55Vui3-VKqIgjFa6X5LPdTOmoJrdbg-60AHR64JgKVL6t-alJrb6-yuDe9F8TrUmJu1oEdwr4SraDL4ooC3ea0PHW4WYPAV8r_APlxaLfGOan85g81SOSGW7ZQjkGvtGQac2lOH5vf7qti4fKHhJ-1fZgWGLJVEOwwrH_AMSzoqJx8oBy4H5-r_gc-RLSRHcUrVh91GMDAUUwdNL-swaV5pnKc7u4iko1tvmZAKM6W5_6975cvbh-tqppQcmhTEoPo22USjUs4ckCUnkB9gTvFzkqKBwUpD9LNlCTQyNKgQod4vaDkSO-fEVP1zV93relQ_SWypAYrCd2KmdZeR2dx-LCapcQkmSEOXiEdOx3kZSKSLItm9W33ZdDNLiEOq_S2xCG8kjri8W-t2lH0n4wAC8vnOw9S4hE8NdEY3mmlV549mvCiUZ4WQc7b6PDRzmUiwMyY96djfHZz3mMbznIjZTQj3D7HpmN7YWwuK70c0cICOY6czIm_svn2KdvCd79sNXgxwegsxgfHSLZJ14w0E-k561QIoHmvRKfYvi3_-aTMdlEqTD7JUQaea-TCG6SP8CTYh24X0SEpRaL1LULEuN10IF1Q3xlzOHpvmrRCn7H3cnxgXEp2Kig-AGbDKQ24LwsPIzO1axXLZL6xi0q-oGpsUrjsJSoeXzvC19qE6tA6mfzoh8qmN5IPxiOZJEAWvSE_lEj1VVIC0viI0IadczDqRcBgHIbzBIICjIy8XeFAFvORRkTMDxLURVRRzc3eWZoadC2YSXCIBGf0MH-j1n4q31tTnFvaKEPo8yyf3Hhf86zqmLEq8mUFCTtkXog7R0GsRlJ1Q0yabGupqiQnTp6E-_a5kZqNJ-9S_YkdyAQu4uQvgZ4yJf6daeSO_Gy5fTC74jLDS71lNhoJkuD58xkVRWykrVFkMPIc1ACNDVUNWPE5L66Y1D3bGyg1ecCr3AtfPuHWCg_q640hfMPnXOgs7QjXdqgCe88QNPlmfdHo4OtfuPj0JK2527RjkIMMG5HSgP0W_OcKXUAtPijgQY2tfH9HHBoNPd9l4OeTpPnw-JMmHCtJm0Z1rxK3HHkCX76Vsw6pGKgajJxL46cuktb9YdXNIoQLkxjMjg8bASWHPGqeNwiS1NHfFgJBcHU7kHmkC098H67rG640-MGBPgFY46B27KY1aN8UIGf4OEUyivxc2HFf89MtRD9Zxy8i5AU7-Fbc3aP2MROedZoZUAfeguq-uzfFsXtAAVS8E0asP5n9bxwKQHH8qaYSGyfpJ0uSlsvR-ZZOWMWTourAAITQGGlHLv6RhJVbzlHBWU9z5O- -v5QWkqw215Kd1QFkU9IP02ViLTAtYVUA9HqoPiN3ZXzsKBYpVSQnRQfcY7Q9u26zq-_BLYp1rQ_QhRXEw_eHLYxnpEK_N3JnJNOqW284WD08J5QUq8anVTIDHDS3G2JXHnb1KEnbEqqJmNH6r2Nc3x8daHNIEvB2qbPmfEm3BaW6Min9FGLSmEWBfPRK4Wy_xcm3cUaRrg9z9K8c2zDSnGi0O09SSdNtutUgxsu73kpGBeai-3SCfar2D_qpKwadVSiPQ-dh8M4kF-nPV_VjMmQEEjTihAlDkueoWu-L-rdVLy-Mhb_-xi6wHrj4gIC_YsOxoFwGCX5eohyieUx26kfuHksDxgANnrlXgv_D3RTFQWAygeK6EAFkPbzeh5VU1MeH5N7sWbKU-IjdwZpSCS7pi4JlFnpSf8V83YUyFvkWcVmCh0aaPCZWMtU2BNY_JT27RrSoGbwjSX1UUG7Y2vfZseO__JwXzVNFxz-z_RinvykyOGKCiqN9gvN_s3L0C8rHwtVINQxlEhw_KRZU0vnL_x25APA3LnYOCEY_MX5H7-IgMa42COeoMzRL3qh1tRTVoSMeDfv4gBojVrWWNmwoHgkRUpdrGTjJxDtBtNlxCkZkWgp-uV13F2vA91vfqS71_L0qIi0hO6QttcrjNVeAVB32uJc3NCzLowbS3UmA2d7Bvt82XFt8Jr9ybQBQONZIv1k8H5lyXuavYhgHhrLrFKOe951c6ZvpXMU67L90awoQkpL4SzvaOtjBsttBs-ssIiyPf0DUTG3s5fTYny5N0R3yc6B5Twwd9IDBnlvGu6lcNZt2gWn1s2QZxwhiDSp_3XcBb7p64viybBCB2pY8qin4Ul7dL-RKHnSRHTGwp9MihXINyhIBFHlHAqGwQKr_PBTIHQzmHekRfYTmG8X3Eoj6zpwYPCP-WPwHkP9VSlcJTdUIL- -Up2V_t1-iRQnW_Z8b75VcWTjIBWAuwTO9nby1kathdTwiRruyIBxSxRh18hy-M7QUtzEH8u3XTu-RDN1sQ8MVLDlgmcprUGdApnIxxmh9jzzeecEzJwVuokFwOgxn4t6FF-55ioxtPnxhveT9X7DhZToQrsDiItwaWfwBn2ZJseisdLNPEyptUR9-TQ-THoefDek_pcMMr_PRpBtiGgNqtoJ1Pzqa8qtvR2n2yAIGHwbsGE-50YJGY3pHQlh2WxBKRPUi7KvRWSDyY0ViJcwzbuuczlk3TkMSgfBJV9onRljE22rJZA_LJWfcVPvTPB9GE4QDAuZWa-d-MUQtWSART8CoHBSbF0h0vJkm95paEgZZ8_-7916kagzjw71RwVEF3NAiGUr1hi1Pf324eL3Kvzteyxal1BuEJKoK6dybgnVLi4nX_opkOQLCyNygqzHK5QwNkU9AXw1zvw18brqTY3blNnSr3doPU6SfAa-zGiED5UzHI2tdVua_SswwtVbuFp0nw2FxzHd1xRXPI1w5ONOrYtcmyRieO5o1vXujSja7xtg1CXSMJ996fGRG6uAWabQZHCGUddueL71IpNW0vdi91-Sm0AngpWdgOEACoPFVghCTRSvf2BfQmWkxXsrj7Fw-fskq9GwPrnWl-gxdQrknTz0TlGklw7NXp37Sl1ymRkcRQG7aKH2JxQLNmHWMx-xmg_e9NrYwocttnjzVpES_0Us_V1Ni5ZllOAkWwA9ZdXlJIehNHDNlecx7Rkl4hjkWfrCl62v0_konHiflWHpXrPkPBOeoxQtQl7a3sHYPRMyFEmMGVlnMMbUnSoyy4zyUjYvMltytj9zp9xmbQmG8VgGA-cUdw_6zPhrPdzL65stcbqGjcuUKfe-vjZsSgl4h-id9zU_0G00]--></g></svg>
|
package/jest.config.json
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
"collectCoverage": false,
|
|
3
3
|
"coverageDirectory": "coverage",
|
|
4
4
|
"coverageProvider": "babel",
|
|
5
|
+
"maxWorkers": "50%",
|
|
5
6
|
"transform": {
|
|
6
7
|
"^.+\\.tsx?$": ["ts-jest", { "isolatedModules": true }]
|
|
7
8
|
},
|
|
8
9
|
"testEnvironment": "jest-environment-node",
|
|
9
10
|
"verbose": true
|
|
10
|
-
}
|
|
11
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts2famix",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "A TypeScript to JSON importer for Moose 10.",
|
|
5
5
|
"main": "dist/ts2famix-cli.js",
|
|
6
6
|
"scripts": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"uml": "./src/generate_uml.sh"
|
|
16
16
|
},
|
|
17
17
|
"bin": {
|
|
18
|
-
"ts2famix": "dist/ts2famix-cli.js"
|
|
18
|
+
"ts2famix": "dist/ts2famix-cli-wrapper.js"
|
|
19
19
|
},
|
|
20
20
|
"keywords": [],
|
|
21
21
|
"author": "",
|
|
@@ -27,23 +27,23 @@
|
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/jest": "^29.5.12",
|
|
30
|
-
"@types/node": "^20.
|
|
30
|
+
"@types/node": "^20.14.12",
|
|
31
31
|
"@types/yargs": "^17.0.32",
|
|
32
|
-
"
|
|
33
|
-
"@typescript-eslint/parser": "^7.0.1",
|
|
34
|
-
"eslint": "^8.56.0",
|
|
32
|
+
"eslint": "^9.7.0",
|
|
35
33
|
"jest": "^29.7.0",
|
|
36
34
|
"tplant": "3.1.0",
|
|
37
|
-
"ts-jest": "^29.
|
|
35
|
+
"ts-jest": "^29.2.3",
|
|
38
36
|
"ts-node": "^10.9.2",
|
|
39
|
-
"typedoc": "^0.
|
|
37
|
+
"typedoc": "^0.26.5"
|
|
40
38
|
},
|
|
41
39
|
"dependencies": {
|
|
40
|
+
"@types/lodash": "^4.17.7",
|
|
42
41
|
"grapheme-splitter": "^1.0.4",
|
|
43
|
-
"
|
|
42
|
+
"lodash": "^4.17.21",
|
|
43
|
+
"ts-morph": "^22.0.0",
|
|
44
44
|
"tslog": "^4.9.2",
|
|
45
45
|
"tsutils": "^3.21.0",
|
|
46
|
-
"typescript": "^5.
|
|
46
|
+
"typescript": "^5.5.4",
|
|
47
47
|
"yargs": "^17.7.2"
|
|
48
48
|
}
|
|
49
49
|
}
|
package/src/analyze.ts
CHANGED
|
@@ -6,7 +6,7 @@ import * as processFunctions from "./analyze_functions/process_functions";
|
|
|
6
6
|
import { EntityDictionary } from "./famix_functions/EntityDictionary";
|
|
7
7
|
import path from "path";
|
|
8
8
|
|
|
9
|
-
export const logger = new Logger({ name: "ts2famix", minLevel: 3});
|
|
9
|
+
export const logger = new Logger({ name: "ts2famix", minLevel: 3 });
|
|
10
10
|
export const config = { "expectGraphemes": false };
|
|
11
11
|
export const entityDictionary = new EntityDictionary();
|
|
12
12
|
|
|
@@ -22,7 +22,7 @@ export class Importer {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
); // The project containing the source files to analyze
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
/**
|
|
27
27
|
* Main method
|
|
28
28
|
* @param paths An array of paths to the source files to analyze
|
|
@@ -30,7 +30,7 @@ export class Importer {
|
|
|
30
30
|
*/
|
|
31
31
|
public famixRepFromPaths(paths: Array<string>): FamixRepository {
|
|
32
32
|
|
|
33
|
-
// try {
|
|
33
|
+
// try {
|
|
34
34
|
logger.debug(`famixRepFromPaths: paths: ${paths}`);
|
|
35
35
|
|
|
36
36
|
this.project.addSourceFilesAtPaths(paths);
|
|
@@ -40,13 +40,13 @@ export class Importer {
|
|
|
40
40
|
this.processEntities(this.project);
|
|
41
41
|
|
|
42
42
|
const famixRep = entityDictionary.famixRep;
|
|
43
|
-
// }
|
|
44
|
-
// catch (error) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
// }
|
|
43
|
+
// }
|
|
44
|
+
// catch (error) {
|
|
45
|
+
// logger.error(`> ERROR: got exception ${error}. Exiting...`);
|
|
46
|
+
// logger.error(error.message);
|
|
47
|
+
// logger.error(error.stack);
|
|
48
|
+
// process.exit(1);
|
|
49
|
+
// }
|
|
50
50
|
|
|
51
51
|
return famixRep;
|
|
52
52
|
}
|
|
@@ -59,13 +59,15 @@ export class Importer {
|
|
|
59
59
|
const classes = processFunctions.classes;
|
|
60
60
|
const interfaces = processFunctions.interfaces;
|
|
61
61
|
const modules = processFunctions.modules;
|
|
62
|
-
const exports = processFunctions.
|
|
62
|
+
const exports = processFunctions.listOfExportMaps;
|
|
63
63
|
|
|
64
64
|
processFunctions.processImportClausesForImportEqualsDeclarations(project.getSourceFiles(), exports);
|
|
65
65
|
processFunctions.processImportClausesForModules(modules, exports);
|
|
66
66
|
processFunctions.processAccesses(accesses);
|
|
67
67
|
processFunctions.processInvocations(methodsAndFunctionsWithId);
|
|
68
68
|
processFunctions.processInheritances(classes, interfaces);
|
|
69
|
+
processFunctions.processConcretisations(classes, interfaces, methodsAndFunctionsWithId);
|
|
70
|
+
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
/**
|
|
@@ -97,7 +99,7 @@ export class Importer {
|
|
|
97
99
|
//const famixRep = this.famixRepFromPaths(sourceFileNames);
|
|
98
100
|
|
|
99
101
|
initFamixRep(project);
|
|
100
|
-
|
|
102
|
+
|
|
101
103
|
this.processEntities(project);
|
|
102
104
|
|
|
103
105
|
return entityDictionary.famixRep;
|
|
@@ -105,15 +107,14 @@ export class Importer {
|
|
|
105
107
|
|
|
106
108
|
}
|
|
107
109
|
|
|
108
|
-
function initFamixRep(project
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const compilerOptions = project.getCompilerOptions();
|
|
110
|
+
function initFamixRep(project: Project): void {
|
|
111
|
+
// get compiler options
|
|
112
|
+
const compilerOptions = project.getCompilerOptions();
|
|
112
113
|
|
|
113
|
-
|
|
114
|
-
|
|
114
|
+
// get baseUrl
|
|
115
|
+
const baseUrl = compilerOptions.baseUrl || ".";
|
|
115
116
|
|
|
116
|
-
|
|
117
|
+
const absoluteBaseUrl = path.resolve(baseUrl);
|
|
117
118
|
|
|
118
|
-
|
|
119
|
-
}
|
|
119
|
+
entityDictionary.famixRep.setAbsolutePath(path.normalize(absoluteBaseUrl));
|
|
120
|
+
}
|