Skip to content

Commit

Permalink
OML simplification:
Browse files Browse the repository at this point in the history
- Deleted Structure and StructuredProperty metaclasses. Use concepts
(with key properties) and relations instead.
- Deleted Classifier abstract metaclass. Now, Types are now either
entities or scalars only.
  • Loading branch information
melaasar committed Aug 1, 2024
1 parent df46fb7 commit e2cd104
Show file tree
Hide file tree
Showing 112 changed files with 1,449 additions and 4,938 deletions.
2 changes: 1 addition & 1 deletion io.opencaesar.oml.api.feature/feature.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<feature
id="io.opencaesar.oml.api.feature"
label="%featureName"
version="2.7.3"
version="2.8.0"
provider-name="%providerName">

<description>
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.api.feature/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>io.opencaesar.oml</groupId>
<artifactId>io.opencaesar.oml.parent</artifactId>
<version>2.7.3</version>
<version>2.8.0</version>
</parent>
<artifactId>io.opencaesar.oml.api.feature</artifactId>
<packaging>eclipse-feature</packaging>
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl.feature/feature.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<feature
id="io.opencaesar.oml.dsl.feature"
label="%featureName"
version="2.7.3"
version="2.8.0"
provider-name="%providerName">

<description>
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl.feature/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>io.opencaesar.oml</groupId>
<artifactId>io.opencaesar.oml.parent</artifactId>
<version>2.7.3</version>
<version>2.8.0</version>
</parent>
<artifactId>io.opencaesar.oml.dsl.feature</artifactId>
<packaging>eclipse-feature</packaging>
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl.ide/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Automatic-Module-Name: io.opencaesar.oml.dsl.ide
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Version: 2.7.3
Bundle-Version: 2.8.0
Bundle-SymbolicName: io.opencaesar.oml.dsl.ide; singleton:=true
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl.ide/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>io.opencaesar.oml</groupId>
<artifactId>io.opencaesar.oml.parent</artifactId>
<version>2.7.3</version>
<version>2.8.0</version>
</parent>
<artifactId>io.opencaesar.oml.dsl.ide</artifactId>
<packaging>eclipse-plugin</packaging>
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl.ui.tests/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Automatic-Module-Name: io.opencaesar.oml.dsl.ui.tests
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Version: 2.7.3
Bundle-Version: 2.8.0
Bundle-SymbolicName: io.opencaesar.oml.dsl.ui.tests; singleton:=true
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl.ui.tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>io.opencaesar.oml</groupId>
<artifactId>io.opencaesar.oml.parent</artifactId>
<version>2.7.3</version>
<version>2.8.0</version>
</parent>
<artifactId>io.opencaesar.oml.dsl.ui.tests</artifactId>
<packaging>eclipse-test-plugin</packaging>
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl.ui/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Automatic-Module-Name: io.opencaesar.oml.dsl.ui
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Version: 2.7.3
Bundle-Version: 2.8.0
Bundle-SymbolicName: io.opencaesar.oml.dsl.ui; singleton:=true
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl.ui/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>io.opencaesar.oml</groupId>
<artifactId>io.opencaesar.oml.parent</artifactId>
<version>2.7.3</version>
<version>2.8.0</version>
</parent>
<artifactId>io.opencaesar.oml.dsl.ui</artifactId>
<packaging>eclipse-plugin</packaging>
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Automatic-Module-Name: io.opencaesar.oml.dsl
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Version: 2.7.3
Bundle-Version: 2.8.0
Bundle-SymbolicName: io.opencaesar.oml.dsl; singleton:=true
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.dsl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>io.opencaesar.oml</groupId>
<artifactId>io.opencaesar.oml.parent</artifactId>
<version>2.7.3</version>
<version>2.8.0</version>
</parent>
<artifactId>io.opencaesar.oml.dsl</artifactId>
<packaging>eclipse-plugin</packaging>
Expand Down
49 changes: 15 additions & 34 deletions io.opencaesar.oml.dsl/src/io/opencaesar/oml/dsl/Oml.xtext
Original file line number Diff line number Diff line change
Expand Up @@ -67,16 +67,11 @@ SpecializableTerm:
Type |
AnnotationProperty |
ScalarProperty |
StructuredProperty |
UnreifiedRelation;

Type:
Classifier |
Scalar;

Classifier:
Entity |
Structure;
Scalar;

Entity:
Aspect |
Expand All @@ -87,14 +82,14 @@ Aspect:
ownedAnnotations+=Annotation*
('aspect' name=ID | 'ref' 'aspect' ref=[Aspect|Ref]) ('['
(ownedKeys+=KeyAxiom)*
']')? (ClassifierSpecialization)? (ClassifierEquivalence)?;
']')? (EntitySpecialization)? (EntityEquivalence)?;

Concept:
ownedAnnotations+=Annotation*
('concept' name=ID | 'ref' 'concept' ref=[Concept|Ref]) ('['
(ownedEnumeration=InstanceEnumerationAxiom)?
(ownedKeys+=KeyAxiom)*
']')? (ClassifierSpecialization)? (ClassifierEquivalence)?;
']')? (EntitySpecialization)? (EntityEquivalence)?;

RelationEntity:
ownedAnnotations+=Annotation*
Expand All @@ -111,28 +106,23 @@ RelationEntity:
(irreflexive?='irreflexive')? &
(transitive?='transitive')?)
(ownedKeys+=KeyAxiom)*
']')? (ClassifierSpecialization)? (ClassifierEquivalence)?;
']')? (EntitySpecialization)? (EntityEquivalence)?;

Structure:
ownedAnnotations+=Annotation*
('structure' name=ID | 'ref' 'structure' ref=[Structure|Ref])
(ClassifierSpecialization)? (ClassifierEquivalence)?;

fragment ClassifierSpecialization returns Classifier:
fragment EntitySpecialization returns Entity:
'<' (ownedSpecializations+=SpecializationAxiom (',' ownedSpecializations+=SpecializationAxiom)*
|
(ownedSpecializations+=SpecializationAxiom (',' ownedSpecializations+=SpecializationAxiom)*)? '['
ownedPropertyRestrictions+=PropertyRestrictionAxiom*
']');

fragment ClassifierEquivalence returns Classifier:
'=' ownedEquivalences+=ClassifierEquivalenceAxiom (',' ownedEquivalences+=ClassifierEquivalenceAxiom)*;
fragment EntityEquivalence returns Entity:
'=' ownedEquivalences+=EntityEquivalenceAxiom (',' ownedEquivalences+=EntityEquivalenceAxiom)*;

ClassifierEquivalenceAxiom:
superClassifiers+=[Classifier|Ref] ('&' superClassifiers+=[Classifier|Ref])*
EntityEquivalenceAxiom:
superEntities+=[Entity|Ref] ('&' superEntities+=[Entity|Ref])*
|
{ClassifierEquivalenceAxiom}
(superClassifiers+=[Classifier|Ref] ('&' superClassifiers+=[Classifier|Ref])*)? '['
{EntityEquivalenceAxiom}
(superEntities+=[Entity|Ref] ('&' superEntities+=[Entity|Ref])*)? '['
ownedPropertyRestrictions+=PropertyRestrictionAxiom*
']';

Expand Down Expand Up @@ -172,25 +162,16 @@ AnnotationProperty:

SemanticProperty:
ScalarProperty |
StructuredProperty |
Relation;

ScalarProperty:
ownedAnnotations+=Annotation*
('scalar' 'property' name=ID | 'ref' 'scalar' 'property' ref=[ScalarProperty|Ref]) ('['
('domain' domains+=[Classifier|Ref] (',' domains+=[Classifier|Ref])*)?
('domain' domains+=[Entity|Ref] (',' domains+=[Entity|Ref])*)?
('range' ranges+=[Scalar|Ref] (',' ranges+=[Scalar|Ref])*)?
(functional?='functional')?
']')? (PropertySpecialization)? (PropertyEquivalence)?;

StructuredProperty:
ownedAnnotations+=Annotation*
('structured' 'property' name=ID | 'ref' 'structured' 'property' ref=[StructuredProperty|Ref]) ('['
('domain' domains+=[Classifier|Ref] (',' domains+=[Classifier|Ref])*)?
('range' ranges+=[Structure|Ref] (',' ranges+=[Structure|Ref])*)?
(functional?='functional')?
']')? (PropertySpecialization)? (PropertyEquivalence)?;

Relation:
ForwardRelation |
ReverseRelation |
Expand Down Expand Up @@ -239,11 +220,11 @@ BuiltIn:
('builtin' name=ID | 'ref' 'builtin' ref=[BuiltIn|Ref]);

AnonymousInstance:
StructureInstance |
AnonymousConceptInstance |
AnonymousRelationInstance;

StructureInstance:
{StructureInstance} (':' type=[Structure|Ref])? '['
AnonymousConceptInstance:
{AnonymousConceptInstance} (':' type=[Concept|Ref])? '['
ownedPropertyValues+=PropertyValueAssertion*
']';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,25 +40,25 @@

import io.opencaesar.oml.Annotation;
import io.opencaesar.oml.AnnotationProperty;
import io.opencaesar.oml.AnonymousConceptInstance;
import io.opencaesar.oml.AnonymousInstance;
import io.opencaesar.oml.AnonymousRelationInstance;
import io.opencaesar.oml.Aspect;
import io.opencaesar.oml.BuiltIn;
import io.opencaesar.oml.BuiltInPredicate;
import io.opencaesar.oml.ClassifierEquivalenceAxiom;
import io.opencaesar.oml.Concept;
import io.opencaesar.oml.ConceptInstance;
import io.opencaesar.oml.Description;
import io.opencaesar.oml.DescriptionBundle;
import io.opencaesar.oml.DifferentFromPredicate;
import io.opencaesar.oml.Element;
import io.opencaesar.oml.EntityEquivalenceAxiom;
import io.opencaesar.oml.ForwardRelation;
import io.opencaesar.oml.Import;
import io.opencaesar.oml.InstanceEnumerationAxiom;
import io.opencaesar.oml.KeyAxiom;
import io.opencaesar.oml.Literal;
import io.opencaesar.oml.LiteralEnumerationAxiom;
import io.opencaesar.oml.NamedInstance;
import io.opencaesar.oml.OmlPackage;
import io.opencaesar.oml.PropertyCardinalityRestrictionAxiom;
import io.opencaesar.oml.PropertyPredicate;
Expand All @@ -76,9 +76,6 @@
import io.opencaesar.oml.Scalar;
import io.opencaesar.oml.ScalarEquivalenceAxiom;
import io.opencaesar.oml.ScalarProperty;
import io.opencaesar.oml.Structure;
import io.opencaesar.oml.StructureInstance;
import io.opencaesar.oml.StructuredProperty;
import io.opencaesar.oml.TypePredicate;
import io.opencaesar.oml.UnreifiedRelation;
import io.opencaesar.oml.Vocabulary;
Expand Down Expand Up @@ -162,13 +159,13 @@ protected void _format(Aspect aspect, IFormattableDocument doc) {
oml.getAspectAccess().getLeftSquareBracketKeyword_2_0(),
oml.getAspectAccess().getRightSquareBracketKeyword_2_2());
aspect.getOwnedKeys().forEach(i -> doc.prepend(doc.format(i), newLine()));
doc.surround(keyword(aspect, oml.getClassifierSpecializationAccess().getLessThanSignKeyword_0()), oneSpace());
doc.surround(keyword(aspect, oml.getEntitySpecializationAccess().getLessThanSignKeyword_0()), oneSpace());
formatCommas(aspect, doc);
formatBrackets(aspect, doc,
oml.getClassifierSpecializationAccess().getLeftSquareBracketKeyword_1_1_1(),
oml.getClassifierSpecializationAccess().getRightSquareBracketKeyword_1_1_3());
oml.getEntitySpecializationAccess().getLeftSquareBracketKeyword_1_1_1(),
oml.getEntitySpecializationAccess().getRightSquareBracketKeyword_1_1_3());
aspect.getOwnedPropertyRestrictions().forEach(i -> doc.prepend(doc.format(i), newLine()));
doc.surround(keyword(aspect, oml.getClassifierEquivalenceAccess().getEqualsSignKeyword_0()), oneSpace());
doc.surround(keyword(aspect, oml.getEntityEquivalenceAccess().getEqualsSignKeyword_0()), oneSpace());
aspect.getOwnedEquivalences().forEach(i -> doc.prepend(doc.format(i), oneSpace()));
}

Expand All @@ -185,13 +182,13 @@ protected void _format(Concept concept, IFormattableDocument doc) {
oml.getConceptAccess().getRightSquareBracketKeyword_2_3());
ifNotNull(concept.getOwnedEnumeration(), (Procedure1<InstanceEnumerationAxiom>)(i -> doc.prepend(doc.format(i), newLine())));
concept.getOwnedKeys().forEach(i -> doc.prepend(doc.format(i), newLine()));
doc.surround(keyword(concept, oml.getClassifierSpecializationAccess().getLessThanSignKeyword_0()), oneSpace());
doc.surround(keyword(concept, oml.getEntitySpecializationAccess().getLessThanSignKeyword_0()), oneSpace());
formatCommas(concept, doc);
formatBrackets(concept, doc,
oml.getClassifierSpecializationAccess().getLeftSquareBracketKeyword_1_1_1(),
oml.getClassifierSpecializationAccess().getRightSquareBracketKeyword_1_1_3());
oml.getEntitySpecializationAccess().getLeftSquareBracketKeyword_1_1_1(),
oml.getEntitySpecializationAccess().getRightSquareBracketKeyword_1_1_3());
concept.getOwnedPropertyRestrictions().forEach(i -> doc.prepend(doc.format(i), newLine()));
doc.surround(keyword(concept, oml.getClassifierEquivalenceAccess().getEqualsSignKeyword_0()), oneSpace());
doc.surround(keyword(concept, oml.getEntityEquivalenceAccess().getEqualsSignKeyword_0()), oneSpace());
concept.getOwnedEquivalences().forEach(i -> doc.prepend(doc.format(i), oneSpace()));
}

Expand Down Expand Up @@ -220,33 +217,17 @@ protected void _format(RelationEntity entity, IFormattableDocument doc) {
doc.prepend(keyword(entity, oml.getRelationEntityAccess().getIrreflexiveIrreflexiveKeyword_2_5_5_0()), newLine());
doc.prepend(keyword(entity, oml.getRelationEntityAccess().getTransitiveTransitiveKeyword_2_5_6_0()), newLine());
entity.getOwnedKeys().forEach(i -> doc.prepend(doc.format(i), newLine()));
doc.surround(keyword(entity, oml.getClassifierSpecializationAccess().getLessThanSignKeyword_0()), oneSpace());
doc.surround(keyword(entity, oml.getEntitySpecializationAccess().getLessThanSignKeyword_0()), oneSpace());
formatCommas(entity, doc);
formatBrackets(entity, doc,
oml.getClassifierSpecializationAccess().getLeftSquareBracketKeyword_1_1_1(),
oml.getClassifierSpecializationAccess().getRightSquareBracketKeyword_1_1_3());
oml.getEntitySpecializationAccess().getLeftSquareBracketKeyword_1_1_1(),
oml.getEntitySpecializationAccess().getRightSquareBracketKeyword_1_1_3());
entity.getOwnedPropertyRestrictions().forEach(i -> doc.prepend(doc.format(i), newLine()));
doc.surround(keyword(entity, oml.getClassifierEquivalenceAccess().getEqualsSignKeyword_0()), oneSpace());
doc.surround(keyword(entity, oml.getEntityEquivalenceAccess().getEqualsSignKeyword_0()), oneSpace());
entity.getOwnedEquivalences().forEach(i -> doc.prepend(doc.format(i), oneSpace()));
}

protected void _format(Structure structure, IFormattableDocument doc) {
structure.getOwnedAnnotations().forEach(i -> doc.append(doc.format(i), newLine()));
if (structure.getName() != null) {
doc.append(keyword(structure, oml.getStructureAccess().getStructureKeyword_1_0_0()), oneSpace());
} else if (structure.isRef()) {
doc.append(keyword(structure, oml.getStructureAccess().getRefKeyword_1_1_0()), oneSpace());
doc.append(keyword(structure, oml.getStructureAccess().getStructureKeyword_1_1_1()), oneSpace());
}
doc.surround(keyword(structure, oml.getClassifierSpecializationAccess().getLessThanSignKeyword_0()), oneSpace());
formatCommas(structure, doc);
formatBrackets(structure, doc);
structure.getOwnedPropertyRestrictions().forEach(i -> doc.prepend(doc.format(i), newLine()));
doc.surround(keyword(structure, oml.getClassifierEquivalenceAccess().getEqualsSignKeyword_0()), oneSpace());
structure.getOwnedEquivalences().forEach(i -> doc.prepend(doc.format(i), oneSpace()));
}

protected void _format(ClassifierEquivalenceAxiom axiom, IFormattableDocument doc) {
protected void _format(EntityEquivalenceAxiom axiom, IFormattableDocument doc) {
formatAmpersands(axiom, doc);
formatBrackets(axiom, doc);
axiom.getOwnedPropertyRestrictions().forEach(i -> doc.prepend(doc.format(i), newLine()));
Expand Down Expand Up @@ -286,25 +267,6 @@ protected void _format(ScalarProperty property, IFormattableDocument doc) {
formatCommas(property, doc);
}

protected void _format(StructuredProperty property, IFormattableDocument doc) {
property.getOwnedAnnotations().forEach(i -> doc.append(doc.format(i), newLine()));
if (property.getName() != null) {
doc.append(keyword(property, oml.getStructuredPropertyAccess().getStructuredKeyword_1_0_0()), oneSpace());
doc.append(keyword(property, oml.getStructuredPropertyAccess().getPropertyKeyword_1_0_1()), oneSpace());
} else if (property.isRef()) {
doc.append(keyword(property, oml.getStructuredPropertyAccess().getRefKeyword_1_1_0()), oneSpace());
doc.append(keyword(property, oml.getStructuredPropertyAccess().getStructuredKeyword_1_1_1()), oneSpace());
doc.append(keyword(property, oml.getStructuredPropertyAccess().getPropertyKeyword_1_1_2()), oneSpace());
}
formatBrackets(property, doc);
doc.prepend(keyword(property, oml.getStructuredPropertyAccess().getDomainKeyword_2_1_0()), newLine());
doc.prepend(keyword(property, oml.getStructuredPropertyAccess().getRangeKeyword_2_2_0()), newLine());
doc.prepend(keyword(property, oml.getStructuredPropertyAccess().getFunctionalFunctionalKeyword_2_3_0()), newLine());
doc.surround(keyword(property, oml.getPropertySpecializationAccess().getLessThanSignKeyword_0()), oneSpace());
doc.surround(keyword(property, oml.getPropertyEquivalenceAccess().getEqualsSignKeyword_0()), oneSpace());
formatCommas(property, doc);
}

protected void _format(Scalar scalar, IFormattableDocument doc) {
scalar.getOwnedAnnotations().forEach(i -> doc.append(doc.format(i), newLine()));
if (scalar.getName() != null) {
Expand Down Expand Up @@ -428,9 +390,9 @@ protected void _format(RelationInstance instance, IFormattableDocument doc) {
instance.getOwnedPropertyValues().forEach(i -> doc.prepend(doc.format(i), newLine()));
}

protected void _format(StructureInstance instance, IFormattableDocument doc) {
doc.append(keyword(instance, oml.getStructureInstanceAccess().getColonKeyword_1_0()), oneSpace());
doc.append(feature(instance, OmlPackage.Literals.STRUCTURE_INSTANCE__TYPE), oneSpace());
protected void _format(AnonymousConceptInstance instance, IFormattableDocument doc) {
doc.append(keyword(instance, oml.getAnonymousConceptInstanceAccess().getColonKeyword_1_0()), oneSpace());
doc.append(feature(instance, OmlPackage.Literals.ANONYMOUS_CONCEPT_INSTANCE__TYPE), oneSpace());
formatBrackets(instance, doc);
instance.getOwnedPropertyValues().forEach(i -> doc.prepend(doc.format(i), newLine()));
}
Expand Down
2 changes: 1 addition & 1 deletion io.opencaesar.oml.edit/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: io.opencaesar.oml.edit;singleton:=true
Automatic-Module-Name: io.opencaesar.oml.edit
Bundle-Version: 2.7.3
Bundle-Version: 2.8.0
Bundle-ClassPath: .
Bundle-Activator: io.opencaesar.oml.provider.OmlEditPlugin$Implementation
Bundle-Vendor: %providerName
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit e2cd104

Please sign in to comment.