@memoarchitect/ontology 0.6.0 → 0.6.2
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 +3 -3
- package/examples/extensions/clinical/memo.package.yaml +1 -1
- package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +1 -1
- package/examples/gpca-pump/memo.config.yaml +1 -1
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +6 -6
- package/examples/gpca-pump/model/views/document_usability_view.sysml +1 -1
- package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +1 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +1 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +2 -2
- package/memo.manifest.yaml +8 -3
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +3 -5
- package/profile/memo.package.yaml +3 -3
- package/src/architecture/operational/structure/memo_operational.sysml +5 -0
- package/templates/connected-device/memo.package.yaml +5 -0
- package/templates/connected-device/package.json +8 -0
- package/templates/connected-device/src/architecture/system.sysml +5 -0
- package/templates/connected-device/src/artifacts/artifacts.sysml +5 -0
- package/{profile/templates/connected-device/starter.sysml → templates/connected-device/src/assurance/requirements.sysml} +1 -2
- package/templates/connected-device/syside.toml +13 -0
- package/templates/default/memo.package.yaml +5 -0
- package/templates/default/package.json +8 -0
- package/templates/default/src/architecture/system.sysml +7 -0
- package/templates/default/src/artifacts/artifacts.sysml +5 -0
- package/{template/src/catalog/starter.sysml → templates/default/src/assurance/requirements.sysml} +1 -5
- package/templates/default/syside.toml +13 -0
- package/templates/infusion-pump/memo.package.yaml +5 -0
- package/templates/infusion-pump/package.json +8 -0
- package/templates/infusion-pump/src/architecture/system.sysml +5 -0
- package/templates/infusion-pump/src/artifacts/artifacts.sysml +5 -0
- package/{profile/templates/infusion-pump/starter.sysml → templates/infusion-pump/src/assurance/requirements.sysml} +1 -2
- package/templates/infusion-pump/syside.toml +13 -0
- package/templates/monitoring-device/memo.package.yaml +5 -0
- package/templates/monitoring-device/package.json +8 -0
- package/templates/monitoring-device/src/architecture/system.sysml +5 -0
- package/templates/monitoring-device/src/artifacts/artifacts.sysml +5 -0
- package/{profile/templates/monitoring-device/starter.sysml → templates/monitoring-device/src/assurance/requirements.sysml} +1 -2
- package/templates/monitoring-device/syside.toml +13 -0
- package/templates/samd/memo.package.yaml +5 -0
- package/templates/samd/package.json +8 -0
- package/templates/samd/src/architecture/system.sysml +5 -0
- package/templates/samd/src/artifacts/artifacts.sysml +5 -0
- package/{profile/templates/samd/starter.sysml → templates/samd/src/assurance/requirements.sysml} +1 -2
- package/templates/samd/syside.toml +13 -0
- package/profile/archetypes.yaml +0 -36
- package/template/memo.package.yaml +0 -5
- package/template/src/documents/.gitkeep +0 -1
- package/template/src/views/.gitkeep +0 -1
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ pin an exact release; the package has no repository or runtime dependency on Mem
|
|
|
18
18
|
Tools or Memo Architect.
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
pnpm add @memoarchitect/ontology@0.6.
|
|
21
|
+
pnpm add @memoarchitect/ontology@0.6.2
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
For coordinated development, the private `memo-meta` workspace checks out
|
|
@@ -44,10 +44,10 @@ The manifest maps package identifiers to package subpaths.
|
|
|
44
44
|
```
|
|
45
45
|
memo.manifest.yaml logical package, init, and example map
|
|
46
46
|
ontology/ @memoarchitect/ontology descriptor
|
|
47
|
-
profile/ @memoarchitect/medical-modeling-profile
|
|
47
|
+
profile/ @memoarchitect/medical-modeling-profile
|
|
48
48
|
methodologies/default/ @memoarchitect/methodology-default descriptor
|
|
49
49
|
methodologies/gpca/ @memoarchitect/methodology-gpca descriptor
|
|
50
|
-
|
|
50
|
+
templates/ complete starter projects selectable by memo init --template
|
|
51
51
|
examples/gpca-pump/ reference model (not a scaffold template)
|
|
52
52
|
src/ all reusable .sysml content (namespace = directory)
|
|
53
53
|
memo_namespaces.sysml public memo import and nested namespace map
|
|
@@ -5,7 +5,7 @@ package memo_extension_clinical_methodology {
|
|
|
5
5
|
part clinicalExtensionMethod : MethodologyDefinition {
|
|
6
6
|
attribute :>> id = "EXT-CLINICAL-001";
|
|
7
7
|
attribute :>> name = "ClinicalProcedureExtension";
|
|
8
|
-
attribute :>> version = "0.6.
|
|
8
|
+
attribute :>> version = "0.6.1";
|
|
9
9
|
attribute :>> domain = "clinical procedures";
|
|
10
10
|
attribute :>> description = "Adds optional clinical-procedure vocabulary to a MEMO project.";
|
|
11
11
|
attribute :>> baseMethodName = "MedicalDeviceLightDefault";
|
|
@@ -6,4 +6,4 @@ projectType: device
|
|
|
6
6
|
# Phase H: project pins the GPCA-specific methodology.
|
|
7
7
|
# @memoarchitect/methodology-gpca extends @memoarchitect/methodology-default and subtracts
|
|
8
8
|
# cybersecurity and SOUP for the non-networked prototype variant.
|
|
9
|
-
methodology: "@memoarchitect/methodology-gpca@^0.6.
|
|
9
|
+
methodology: "@memoarchitect/methodology-gpca@^0.6.1"
|
|
@@ -234,7 +234,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
// ── Operational scenarios ───────────────────────────────────
|
|
237
|
-
part osNominalTherapy :
|
|
237
|
+
part osNominalTherapy : OperativeScenario {
|
|
238
238
|
attribute :>> id = "OS-001";
|
|
239
239
|
attribute :>> name = "NominalTherapySession";
|
|
240
240
|
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
@@ -247,7 +247,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
247
247
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
248
248
|
ref :>> activities = oaCompleteNominalTherapy;
|
|
249
249
|
}
|
|
250
|
-
part osLockoutBolus :
|
|
250
|
+
part osLockoutBolus : OperativeScenario {
|
|
251
251
|
attribute :>> id = "OS-002";
|
|
252
252
|
attribute :>> name = "BolusRequestDuringLockout";
|
|
253
253
|
attribute :>> variantKind = ScenarioVariantKind::alternate;
|
|
@@ -260,7 +260,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
260
260
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
261
261
|
ref :>> activities = oaRejectBolusDuringLockout;
|
|
262
262
|
}
|
|
263
|
-
part osOcclusionAlarm :
|
|
263
|
+
part osOcclusionAlarm : OperativeScenario {
|
|
264
264
|
attribute :>> id = "OS-003";
|
|
265
265
|
attribute :>> name = "OcclusionDetectedDuringInfusion";
|
|
266
266
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
@@ -273,7 +273,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
273
273
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
274
274
|
ref :>> activities = oaRespondToOcclusion;
|
|
275
275
|
}
|
|
276
|
-
part osAirInLine :
|
|
276
|
+
part osAirInLine : OperativeScenario {
|
|
277
277
|
attribute :>> id = "OS-004";
|
|
278
278
|
attribute :>> name = "AirInLineDetected";
|
|
279
279
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
@@ -286,7 +286,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
286
286
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
287
287
|
ref :>> activities = oaRespondToAirInLine;
|
|
288
288
|
}
|
|
289
|
-
part osEmptyReservoir :
|
|
289
|
+
part osEmptyReservoir : OperativeScenario {
|
|
290
290
|
attribute :>> id = "OS-005";
|
|
291
291
|
attribute :>> name = "ReservoirEmptyDuringTherapy";
|
|
292
292
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
@@ -299,7 +299,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
|
|
|
299
299
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
300
300
|
ref :>> activities = oaReplaceEmptyReservoir;
|
|
301
301
|
}
|
|
302
|
-
part osPowerLoss :
|
|
302
|
+
part osPowerLoss : OperativeScenario {
|
|
303
303
|
attribute :>> id = "OS-006";
|
|
304
304
|
attribute :>> name = "MainsPowerLossAndRecovery";
|
|
305
305
|
attribute :>> variantKind = ScenarioVariantKind::recovery;
|
|
@@ -20,7 +20,7 @@ package memo_examples_gpca_pump_model_views_document_usability_view {
|
|
|
20
20
|
part :>> selectionQuery {
|
|
21
21
|
attribute :>> id = "QRY-DOC-002";
|
|
22
22
|
attribute :>> name = "usabilityViewQuery";
|
|
23
|
-
attribute :>> includeElementKinds = ("UseError", "UseContext", "Actor", "ValidationCase", "
|
|
23
|
+
attribute :>> includeElementKinds = ("UseError", "UseContext", "Actor", "ValidationCase", "OperativeScenario", "IntendedUse", "ReasonablyForeseeableMisuse");
|
|
24
24
|
attribute :>> includeRelationshipKinds = ("TestedByUsability", "RealizedByScenario", "InteractsWith", "IncludedIn");
|
|
25
25
|
attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
|
|
26
26
|
}
|
|
@@ -31,7 +31,7 @@ package memo_examples_gpca_pump_model_views_operational_scenario_sequence_view {
|
|
|
31
31
|
part :>> selectionQuery {
|
|
32
32
|
attribute :>> id = "QRY-BHV-102";
|
|
33
33
|
attribute :>> name = "GPCA_ScenarioSequenceQuery";
|
|
34
|
-
attribute :>> includeElementKinds = ("FunctionalScenario", "
|
|
34
|
+
attribute :>> includeElementKinds = ("FunctionalScenario", "OperativeScenario", "FunctionalFlow", "FunctionalFlowStep");
|
|
35
35
|
attribute :>> includeLayers = ("operational", "system");
|
|
36
36
|
attribute :>> selectionExpression = "product == 'GPCA'";
|
|
37
37
|
attribute :>> rationaleText = "Auto-populate scenario sequences from the system layer.";
|
|
@@ -53,7 +53,7 @@ package memo_examples_reusable_instrument {
|
|
|
53
53
|
connection : StepPrecedes connect predecessor ::> wsInspect to successor ::> wsSterilize;
|
|
54
54
|
connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfReprocess to supported ::> ucSterilize; }
|
|
55
55
|
|
|
56
|
-
part scNominalCycle :
|
|
56
|
+
part scNominalCycle : OperativeScenario {
|
|
57
57
|
attribute :>> id = "RI-SC-001"; attribute :>> name = "NominalReprocessingCycle";
|
|
58
58
|
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
59
59
|
attribute :>> operationalCondition = OperationalConditionKind::normal;
|
|
@@ -124,7 +124,7 @@ package memo_examples_surgical_closure_workflow {
|
|
|
124
124
|
action recognizeBleeding; action controlBleeding; action reassessStapleLine; action escalateIfNeeded;
|
|
125
125
|
first start then recognizeBleeding; first recognizeBleeding then controlBleeding; first controlBleeding then reassessStapleLine; first reassessStapleLine then escalateIfNeeded; first escalateIfNeeded then done;
|
|
126
126
|
}
|
|
127
|
-
part scNominalSleeveProcedure :
|
|
127
|
+
part scNominalSleeveProcedure : OperativeScenario {
|
|
128
128
|
attribute :>> id = "LSG-SC-001"; attribute :>> name = "NominalSleeveGastrectomy";
|
|
129
129
|
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
130
130
|
attribute :>> operationalCondition = OperationalConditionKind::normal;
|
|
@@ -133,7 +133,7 @@ package memo_examples_surgical_closure_workflow {
|
|
|
133
133
|
ref :>> parentUseCase = ucPerformSleeveGastrectomy;
|
|
134
134
|
ref :>> activities = oaCompleteSleeveProcedure;
|
|
135
135
|
}
|
|
136
|
-
part scStapleLineBleeding :
|
|
136
|
+
part scStapleLineBleeding : OperativeScenario {
|
|
137
137
|
attribute :>> id = "LSG-SC-002"; attribute :>> name = "StapleLineBleedingRecovery";
|
|
138
138
|
attribute :>> variantKind = ScenarioVariantKind::recovery;
|
|
139
139
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
package/memo.manifest.yaml
CHANGED
|
@@ -5,10 +5,15 @@ packages:
|
|
|
5
5
|
"@memoarchitect/methodology-default": ./methodologies/default
|
|
6
6
|
"@memoarchitect/methodology-gpca": ./methodologies/gpca
|
|
7
7
|
init:
|
|
8
|
-
defaultExtends: "@memoarchitect/
|
|
8
|
+
defaultExtends: "@memoarchitect/methodology-default"
|
|
9
9
|
rootImport: "memo"
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
defaultTemplate: default
|
|
11
|
+
templates:
|
|
12
|
+
default: ./templates/default
|
|
13
|
+
samd: ./templates/samd
|
|
14
|
+
connected-device: ./templates/connected-device
|
|
15
|
+
monitoring-device: ./templates/monitoring-device
|
|
16
|
+
infusion-pump: ./templates/infusion-pump
|
|
12
17
|
examples:
|
|
13
18
|
gpca: ./examples/gpca-pump
|
|
14
19
|
standard-sysml-diagrams: ./examples/sysml-diagram-samples
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: "@memoarchitect/ontology"
|
|
2
|
-
version: "0.6.
|
|
2
|
+
version: "0.6.2"
|
|
3
3
|
type: ontology
|
|
4
4
|
description: "MEMO — the single canonical medical-device ontology: core semantics, the Arcadia-inspired architecture layers (context, requirements, behavior, structure, interfaces, risk, cybersecurity, assurance, …), compliance, viewpoints, views, and invariant rules. One namespace (memo::), one src/ tree."
|
|
5
5
|
license: "MIT"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memoarchitect/ontology",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.2",
|
|
4
4
|
"packageManager": "pnpm@9.15.0",
|
|
5
5
|
"description": "MEMO \u2014 Medical Engineering Modelling Ontology. Pure SysML v2 medical-device ontology with native constraints, portable to any conformant SysML v2 tool (SysIDE, SysON, sysand).",
|
|
6
6
|
"scripts": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"./src/*": "./src/*",
|
|
40
40
|
"./profile/*": "./profile/*",
|
|
41
41
|
"./methodologies/*": "./methodologies/*",
|
|
42
|
-
"./templates/*": "./
|
|
42
|
+
"./templates/*": "./templates/*",
|
|
43
43
|
"./examples/*": "./examples/*"
|
|
44
44
|
},
|
|
45
45
|
"files": [
|
|
@@ -49,8 +49,6 @@
|
|
|
49
49
|
"ontology/memo.package.yaml",
|
|
50
50
|
"ontology/memo.rendering.yaml",
|
|
51
51
|
"profile/memo.package.yaml",
|
|
52
|
-
"profile/archetypes.yaml",
|
|
53
|
-
"profile/templates/",
|
|
54
52
|
"methodologies/default/memo.package.yaml",
|
|
55
53
|
"methodologies/gpca/memo.package.yaml",
|
|
56
54
|
"src/assurance/",
|
|
@@ -70,7 +68,7 @@
|
|
|
70
68
|
"src/rules/",
|
|
71
69
|
"src/viewpoints/",
|
|
72
70
|
"src/memo_namespaces.sysml",
|
|
73
|
-
"
|
|
71
|
+
"templates/",
|
|
74
72
|
"examples/"
|
|
75
73
|
]
|
|
76
74
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
name: "@memoarchitect/medical-modeling-profile"
|
|
2
|
-
version: "0.6.
|
|
2
|
+
version: "0.6.2"
|
|
3
3
|
type: profile
|
|
4
4
|
extends:
|
|
5
5
|
- "@memoarchitect/ontology"
|
|
6
|
-
description: "Closure rules
|
|
6
|
+
description: "Closure rules and viewpoints for medical device modeling"
|
|
7
7
|
license: "MIT"
|
|
8
8
|
tags: ["medical-device", "iso-14971", "iec-62304", "iso-13485", "modeling-profile"]
|
|
9
|
-
usage: ["rules", "viewpoints"
|
|
9
|
+
usage: ["rules", "viewpoints"]
|
|
@@ -7,6 +7,11 @@ package memo_architecture_operational_structure {
|
|
|
7
7
|
private import memo_architecture_operational_activities::*;
|
|
8
8
|
// OperationalActivity now lives in memo_architecture_operational_activities (action def) and
|
|
9
9
|
// Operational scenarios are defined in memo_architecture_operational_scenarios.
|
|
10
|
+
part def Mission specializes DocumentedElement {
|
|
11
|
+
attribute missionKind : String;
|
|
12
|
+
attribute successCriteria : String;
|
|
13
|
+
attribute operationalContext : String;
|
|
14
|
+
}
|
|
10
15
|
part def OperationalEntity specializes ArchitectureElement {
|
|
11
16
|
attribute entityKind : OperationalEntityKind;
|
|
12
17
|
attribute operationalDomain : String;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
package
|
|
1
|
+
package connected_device_assurance {
|
|
2
2
|
private import memo::*;
|
|
3
3
|
|
|
4
|
-
part connectedDevice : PhysicalAssembly;
|
|
5
4
|
requirement connectivityRequirement : Requirement {
|
|
6
5
|
attribute redefines statement = "Define connectivity and cybersecurity boundaries";
|
|
7
6
|
}
|
package/{template/src/catalog/starter.sysml → templates/default/src/assurance/requirements.sysml}
RENAMED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
package
|
|
1
|
+
package project_assurance {
|
|
2
2
|
private import memo::*;
|
|
3
3
|
|
|
4
|
-
part starterSystem : MemoPart {
|
|
5
|
-
attribute redefines name = "{{name}}";
|
|
6
|
-
}
|
|
7
|
-
|
|
8
4
|
requirement mainRequirement : Requirement {
|
|
9
5
|
attribute redefines statement = "TODO: state the first system requirement.";
|
|
10
6
|
doc /* TODO: define the first system requirement. */
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
package
|
|
1
|
+
package infusion_pump_assurance {
|
|
2
2
|
private import memo::*;
|
|
3
3
|
|
|
4
|
-
part infusionPump : PhysicalAssembly;
|
|
5
4
|
requirement deliveryRequirement : Requirement {
|
|
6
5
|
attribute redefines statement = "Define safe therapy delivery behavior";
|
|
7
6
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
package
|
|
1
|
+
package monitoring_device_assurance {
|
|
2
2
|
private import memo::*;
|
|
3
3
|
|
|
4
|
-
part monitoringDevice : PhysicalAssembly;
|
|
5
4
|
requirement monitoringRequirement : Requirement {
|
|
6
5
|
attribute redefines statement = "Define the monitored physiological parameter";
|
|
7
6
|
}
|
package/profile/archetypes.yaml
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
archetypes:
|
|
2
|
-
- id: samd
|
|
3
|
-
label: Software as Medical Device (SaMD)
|
|
4
|
-
description: Clinical decision support, diagnostic algorithm, AI/ML tool, mobile medical app
|
|
5
|
-
category: device-class
|
|
6
|
-
templateDir: samd
|
|
7
|
-
includedLayers: [context, requirements, functions, logical_structure, software_structure, risk, assurance, cybersecurity]
|
|
8
|
-
includedStandards: [ISO 14971, IEC 62304, IEC 82304-1, FDA Cybersecurity Guidance]
|
|
9
|
-
- id: connected
|
|
10
|
-
label: Connected / IoT Device
|
|
11
|
-
description: Remote monitoring, wearable, smart device with cloud connectivity and cybersecurity requirements
|
|
12
|
-
category: device-class
|
|
13
|
-
templateDir: connected-device
|
|
14
|
-
includedLayers: [context, requirements, functions, logical_structure, logical_interfaces, software_structure, hardware_structure, risk, assurance, cybersecurity]
|
|
15
|
-
includedStandards: [ISO 14971, IEC 62304, 21 CFR 820, FDA Cybersecurity Guidance]
|
|
16
|
-
- id: monitoring
|
|
17
|
-
label: Monitoring / Diagnostic Device
|
|
18
|
-
description: Patient monitor, ECG, SpO2, vital signs, bedside diagnostic equipment
|
|
19
|
-
category: device-class
|
|
20
|
-
templateDir: monitoring-device
|
|
21
|
-
includedLayers: [context, requirements, functions, logical_structure, logical_interfaces, physical_interfaces, software_structure, hardware_structure, risk, assurance]
|
|
22
|
-
includedStandards: [ISO 14971, IEC 62304, IEC 60601-1, 21 CFR 820]
|
|
23
|
-
- id: infusion_pump
|
|
24
|
-
label: Infusion / Drug Delivery Device
|
|
25
|
-
description: Infusion pump, syringe driver, implantable drug delivery, dosing device
|
|
26
|
-
category: device-class
|
|
27
|
-
templateDir: infusion-pump
|
|
28
|
-
includedLayers: [context, requirements, functions, logical_structure, logical_interfaces, physical_interfaces, software_structure, hardware_structure, behavior, risk, arch_risk, assurance, cybersecurity]
|
|
29
|
-
includedStandards: [ISO 14971, IEC 62304, IEC 60601-1, 21 CFR 820, ISO 13485]
|
|
30
|
-
- id: blank
|
|
31
|
-
label: Blank Project
|
|
32
|
-
description: Start from scratch with a minimal SysML shell
|
|
33
|
-
category: device-class
|
|
34
|
-
templateDir: ""
|
|
35
|
-
includedLayers: []
|
|
36
|
-
includedStandards: []
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|