diff --git a/.gitignore b/.gitignore
index 32858aa..e39e886 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,11 @@
+\.settings/
+\.project
+testresults/
+edireader/target/
+edireader/\.settings/
+edireader/\.classpath
+edireader/\.project
+
*.class
# Mobile Tools for Java (J2ME)
diff --git a/edireader/src/main/java/com/berryworks/edireader/plugin/ANSI_837.java b/edireader/src/main/java/com/berryworks/edireader/plugin/ANSI_837.java
new file mode 100644
index 0000000..5b2f583
--- /dev/null
+++ b/edireader/src/main/java/com/berryworks/edireader/plugin/ANSI_837.java
@@ -0,0 +1,34 @@
+package com.berryworks.edireader.plugin;
+
+import com.berryworks.edireader.Plugin;
+
+public class ANSI_837 extends Plugin {
+
+ public ANSI_837() {
+ super("837", "Health Care Claim");
+ loops = new LoopDescriptor[]{
+ new LoopDescriptor("2300", "CLM", 2, "/2000/2300"),
+ new LoopDescriptor("2300", "CLM", 2, "/2000"),
+ new LoopDescriptor("2305", "CR7", 3, "/2000/2300/2305"),
+ new LoopDescriptor("2305", "CR7", 3, "/2000/2300"),
+ new LoopDescriptor("2000", "HL", 1, ANY_CONTEXT),
+ new LoopDescriptor("2440", "LQ", 4, "/2000/2300/2400/2440"),
+ new LoopDescriptor("2440", "LQ", 4, "/2000/2300/2400"),
+ new LoopDescriptor("2400", "LX", 3, "/2000/2300/2400"),
+ new LoopDescriptor("2400", "LX", 3, "/2000/2300"),
+ new LoopDescriptor("2330", "NM1", 4, "/2000/2300/2320/2330"),
+ new LoopDescriptor("2420", "NM1", 4, "/2000/2300/2400/2420"),
+ new LoopDescriptor("2310", "NM1", 3, "/2000/2300/2310"),
+ new LoopDescriptor("2330", "NM1", 4, "/2000/2300/2320"),
+ new LoopDescriptor("2420", "NM1", 4, "/2000/2300/2400"),
+ new LoopDescriptor("2010", "NM1", 2, "/2000/2010"),
+ new LoopDescriptor("2310", "NM1", 3, "/2000/2300"),
+ new LoopDescriptor("2010", "NM1", 2, "/2000"),
+ new LoopDescriptor("1000", "NM1", 1, ANY_CONTEXT),
+ new LoopDescriptor("2320", "SBR", 3, "/2000/2300/2320"),
+ new LoopDescriptor("2320", "SBR", 3, "/2000/2300"),
+ new LoopDescriptor(CURRENT, "SBR", 1, "/2000"),
+ new LoopDescriptor("2430", "SVD", 4, "/2000/2300/2400/2430"),
+ new LoopDescriptor("2430", "SVD", 4, "/2000/2300/2400")};
+ }
+}
diff --git a/edireader/src/main/java/com/berryworks/edireader/util/FileUtil.java b/edireader/src/main/java/com/berryworks/edireader/util/FileUtil.java
index 04683fc..927d39a 100644
--- a/edireader/src/main/java/com/berryworks/edireader/util/FileUtil.java
+++ b/edireader/src/main/java/com/berryworks/edireader/util/FileUtil.java
@@ -36,8 +36,8 @@ public static String fileToString(String filename) throws IOException {
return StandardCharsets.UTF_8.decode(ByteBuffer.wrap(encoded)).toString();
}
- public static void stringToFile(String data, String filename) throws IOException {
- try (Writer writer = new FileWriter(filename)) {
+ public static void stringToFile(String data, String filename) throws IOException {
+ try(Writer writer = new FileWriter(filename)) {
writer.write(data);
}
}
diff --git a/edireader/src/main/java/com/berryworks/edireader/util/XmlFormatter.java b/edireader/src/main/java/com/berryworks/edireader/util/XmlFormatter.java
index d0602d8..9a3e147 100644
--- a/edireader/src/main/java/com/berryworks/edireader/util/XmlFormatter.java
+++ b/edireader/src/main/java/com/berryworks/edireader/util/XmlFormatter.java
@@ -26,8 +26,7 @@
public class XmlFormatter extends FilterWriter {
private final static String SEPARATOR = System.getProperty("line.separator");
-
- private final static String INDENT = " ";
+ private final static String INDENT = "\t";
private char mostRecentCharOfInterest;
private String currentIndent = "";
diff --git a/edireader/src/test/java/com/berryworks/edireader/EDIAbstractReaderTest.java b/edireader/src/test/java/com/berryworks/edireader/EDIAbstractReaderTest.java
index 7471c98..37c19e1 100644
--- a/edireader/src/test/java/com/berryworks/edireader/EDIAbstractReaderTest.java
+++ b/edireader/src/test/java/com/berryworks/edireader/EDIAbstractReaderTest.java
@@ -4,23 +4,34 @@
package com.berryworks.edireader;
-import com.berryworks.edireader.benchmark.EDITestData;
-import com.berryworks.edireader.error.ErrorMessages;
-import com.berryworks.edireader.util.BranchingWriter;
-import com.berryworks.edireader.util.VerboseTestCase;
-import org.junit.Before;
-import org.junit.Test;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
-import static org.junit.Assert.*;
+import org.junit.Before;
+import org.junit.Test;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXNotSupportedException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+import com.berryworks.edireader.benchmark.EDITestData;
+import com.berryworks.edireader.error.ErrorMessages;
+import com.berryworks.edireader.util.BranchingWriter;
-public class EDIAbstractReaderTest extends VerboseTestCase {
+public class EDIAbstractReaderTest {
EDIReader reader;
@@ -68,8 +79,6 @@ public void testSyntaxElements() throws Exception {
// We call them mainly for path coverage purposes.
reader.getSubSubDelimiter();
reader.getRepetitionSeparator();
-
- if (verbose) System.out.println(reader.toString());
}
@Test
diff --git a/edireader/src/test/java/com/berryworks/edireader/demo/EDItoXMLTest.java b/edireader/src/test/java/com/berryworks/edireader/demo/EDItoXMLTest.java
index 021646f..711e508 100644
--- a/edireader/src/test/java/com/berryworks/edireader/demo/EDItoXMLTest.java
+++ b/edireader/src/test/java/com/berryworks/edireader/demo/EDItoXMLTest.java
@@ -1,14 +1,19 @@
package com.berryworks.edireader.demo;
-import com.berryworks.edireader.benchmark.EDITestData;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.xml.sax.SAXException;
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
+import com.berryworks.edireader.benchmark.EDITestData;
+import com.berryworks.edireader.test.utils.TestResources;
public class EDItoXMLTest {
@@ -67,7 +72,7 @@ public void withLeadingSpacesInData() {
}
@Test
- public void canIndent() {
+ public void canIndent() throws Exception {
StringReader reader = new StringReader(TINY_INTERCHANGE);
StringWriter writer = new StringWriter();
ediToXml.setInputReader(reader);
@@ -76,27 +81,10 @@ public void canIndent() {
ediToXml.run();
String xmlText = writer.toString();
- Assert.assertEquals("\n" +
- "\n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- " 11\n" +
- " 07141005162 \n" +
- " 040714\n" +
- " 1003\n" +
- " \n" +
- " \n" +
- " \n" +
- " \n" +
- "", xmlText);
+ String benchmark = TestResources.getAsString("EDItoXMLTest.canIndent.xml");
+
+ assertTrue(xmlText.length() == benchmark.length());
+ assertEquals(benchmark, xmlText);
}
}
diff --git a/edireader/src/test/java/com/berryworks/edireader/test/utils/TestResources.java b/edireader/src/test/java/com/berryworks/edireader/test/utils/TestResources.java
new file mode 100644
index 0000000..d9b6be7
--- /dev/null
+++ b/edireader/src/test/java/com/berryworks/edireader/test/utils/TestResources.java
@@ -0,0 +1,42 @@
+package com.berryworks.edireader.test.utils;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.Document;
+
+public class TestResources {
+
+ public static String getAsString(String name) throws IOException, URISyntaxException {
+ URI uri = TestResources.class.getResource("/" + name).toURI();
+ return new String(Files.readAllBytes(Paths.get(uri)));
+ }
+
+ public static File getAsFile(String name) throws URISyntaxException {
+ return new File(TestResources.class.getResource("/" + name).toURI());
+ }
+
+ public static InputStream getAsStream(String name) throws FileNotFoundException {
+ return TestResources.class.getResourceAsStream("/" + name);
+ }
+
+ public static Document getAsDOM(String file) throws Exception {
+ DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
+ fac.setNamespaceAware(true);
+ DocumentBuilder parser = fac.newDocumentBuilder();
+ InputStream fis = getAsStream(file);
+ Document doc = parser.parse(fis);
+ fis.close();
+ return doc;
+ }
+
+}
diff --git a/edireader/src/test/java/com/berryworks/edireader/util/EDItoXMLTestCase.java b/edireader/src/test/java/com/berryworks/edireader/util/EDItoXMLTestCase.java
deleted file mode 100644
index f215545..0000000
--- a/edireader/src/test/java/com/berryworks/edireader/util/EDItoXMLTestCase.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.berryworks.edireader.util;
-
-import org.custommonkey.xmlunit.XMLTestCase;
-
-public class EDItoXMLTestCase extends XMLTestCase {
-
- protected String testdataPath, testresultsPath;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- MyTestCase testCase = (new MyTestCase());
- testdataPath = testCase.getTestdataPath();
- testresultsPath = testCase.getTestresultsPath();
- }
-
- public void testNothing() {
- }
-
- private class MyTestCase extends VerboseTestCase {
-
- }
-}
diff --git a/edireader/src/test/java/com/berryworks/edireader/util/SplitterTest.java b/edireader/src/test/java/com/berryworks/edireader/util/SplitterTest.java
index 4260e22..b3c2177 100644
--- a/edireader/src/test/java/com/berryworks/edireader/util/SplitterTest.java
+++ b/edireader/src/test/java/com/berryworks/edireader/util/SplitterTest.java
@@ -12,11 +12,14 @@
import com.berryworks.edireader.splitter.ClosingDetails;
import com.berryworks.edireader.splitter.HandlerFactory;
import com.berryworks.edireader.splitter.SplittingHandler;
+import com.berryworks.edireader.test.utils.TestResources;
import com.berryworks.edireader.util.dom.DocumentUtil;
import com.berryworks.edireader.util.sax.SAXObjectHandler;
import com.berryworks.edireader.util.sax.SAXObjectReader;
import org.custommonkey.xmlunit.Diff;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.*;
@@ -31,8 +34,10 @@
import static org.junit.Assert.*;
-public class SplitterTest extends VerboseTestCase {
+public class SplitterTest {
+ @Rule public TemporaryFolder tmp = new TemporaryFolder();
+
private Reader inputReader;
@Test
@@ -146,24 +151,25 @@ public void testTwoInterchangeTwoDocumentsEachIntoDOMs() throws Exception {
@Test
public void testMain() throws Exception {
+ File testFile = TestResources.getAsFile("SplitterTest.testMain.edi");
+ File outputFile = new File(testFile.getParentFile(), "split-0000.xml");
+ outputFile.deleteOnExit();
PrintStream systemOut = System.out;
final ByteArrayOutputStream redirectedOut = new ByteArrayOutputStream();
- System.setOut(new PrintStream(redirectedOut));
+ System.setOut(new PrintStream(redirectedOut));
-
- FileUtil.stringToFile(EDITestData.getAnsiInterchange(2), "toSplit.edi");
-
- String args[] = new String[]{"toSplit.edi", "-o", getTestresultsPath() + "x12/split-0000.xml"};
+ String args[] = new String[]{testFile.getAbsolutePath(), "-o", outputFile.getAbsolutePath()};
EDISplitter.main(args);
System.setOut(systemOut);
-
- assertEquals("\nEDI input parsed into 2 XML output files\n", redirectedOut.toString());
+
+ String sep = System.getProperty("line.separator");
+ assertEquals(sep + "EDI input parsed into 2 XML output files" + sep, redirectedOut.toString());
assertEquals(2, EDISplitter.getCount());
- File file = new File(getTestresultsPath() + "x12/split-0002.xml");
+ File file = new File(outputFile.getParentFile(), "split-0002.xml");
assertNotNull(file);
assertTrue(file.exists());
@@ -312,7 +318,7 @@ public void run() {
} catch (IOException | SAXException e) {
System.err.println(getClass().getName() + " caught " + e);
}
- if (verbose) trace(getClass().getName() + " run() complete");
+ System.out.println(getClass().getName() + " run() complete");
}
public int getSAXEventsWritten() {
@@ -334,18 +340,18 @@ public void run() {
try {
while (!shutdown) {
- if (verbose) trace("available in transformer input stream: " + inputStream.available());
+ System.out.println("Available in transformer input stream: " + inputStream.available());
DOMResult domResult = new DOMResult();
SAXSource source = new SAXSource(reader, inputSource);
- if (verbose) trace("calling transform");
+ System.out.println("Calling transform");
TransformerFactory.newInstance().newTransformer().transform(source, domResult);
- if (verbose) trace("return from transform");
+ System.out.println("Return from transform");
if (document == null)
document = (Document) domResult.getNode();
}
} catch (Exception e) {
- if (verbose) trace(getClass().getName() + " caught " + e);
- if (verbose) trace(getClass().getName() + " run() complete");
+ System.out.println(getClass().getName() + " caught " + e);
+ System.out.println(getClass().getName() + " run() complete");
}
}
diff --git a/edireader/src/test/java/com/berryworks/edireader/util/VerboseTestCase.java b/edireader/src/test/java/com/berryworks/edireader/util/VerboseTestCase.java
deleted file mode 100644
index 9c6dc86..0000000
--- a/edireader/src/test/java/com/berryworks/edireader/util/VerboseTestCase.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.berryworks.edireader.util;
-
-import java.io.File;
-
-public abstract class VerboseTestCase {
- protected boolean verbose;
-
- // TODO These should probably be in a static TestDirectories class
- private String testdataPath, testresultsPath;
-
- public VerboseTestCase() {
- checkVerbose();
- }
-
- private void checkVerbose() {
- if (System.getProperty("verbose") != null) {
- verbose = true;
- System.out.println("verbose test output");
- }
- }
-
- protected void trace(String msg) {
- System.out.println(msg);
- }
-
- public String getTestdataPath() {
- if (testdataPath == null) {
- testdataPath = "testdata";
- File directory = new File(testdataPath);
- if (!directory.exists() || !directory.isDirectory()) {
- testdataPath = "../testdata";
- }
- }
- return testdataPath + "/";
- }
-
- public String getTestresultsPath() {
- if (testresultsPath == null) {
- testresultsPath = "testresults";
- File directory = new File(testresultsPath);
- if (!directory.exists() || !directory.isDirectory()) {
- testresultsPath = "../testresults";
- }
- }
- return testresultsPath + "/";
- }
-}
diff --git a/edireader/src/test/java/com/berryworks/edireader/util/dom/DomBuildingSaxHandlerTest.java b/edireader/src/test/java/com/berryworks/edireader/util/dom/DomBuildingSaxHandlerTest.java
index 1394f38..19d50a2 100644
--- a/edireader/src/test/java/com/berryworks/edireader/util/dom/DomBuildingSaxHandlerTest.java
+++ b/edireader/src/test/java/com/berryworks/edireader/util/dom/DomBuildingSaxHandlerTest.java
@@ -4,27 +4,34 @@
package com.berryworks.edireader.util.dom;
-import com.berryworks.edireader.EDIReader;
-import com.berryworks.edireader.EDIReaderFactory;
-import com.berryworks.edireader.benchmark.EDITestData;
-import com.berryworks.edireader.util.VerboseTestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
import org.junit.Before;
import org.junit.Test;
-import org.w3c.dom.*;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.IOException;
-import java.io.InputStream;
-
-import static org.junit.Assert.*;
+import com.berryworks.edireader.EDIReader;
+import com.berryworks.edireader.EDIReaderFactory;
+import com.berryworks.edireader.benchmark.EDITestData;
-public class DomBuildingSaxHandlerTest extends VerboseTestCase {
+public class DomBuildingSaxHandlerTest {
private InputSource inputSource;
private ContentHandler saxHandler;
- private InputStream inputStream;
+ //private InputStream inputStream;
@Before
public void setUp() throws IOException, ParserConfigurationException {
@@ -64,7 +71,7 @@ private void assertDomsAreEquivalent(Document baselineDom, Document dom) {
}
private void compareElements(Element baseline, Element element) {
- if (verbose) trace("comparing " + baseline.getNodeName() + " with " + element.getNodeName());
+ //System.out.println("comparing " + baseline.getNodeName() + " with " + element.getNodeName());
assertEquals("Node names do not match", baseline.getNodeName(), element.getNodeName());
NodeList childNodes = element.getChildNodes();
@@ -87,12 +94,12 @@ private void compareElements(Element baseline, Element element) {
assertEquals("Nodes do not have the same number of attributes", baselineAttributes.getLength(), attributes.getLength());
for (int i = 0; i < baselineAttributes.getLength(); i++) {
Node baselineNode = baselineAttributes.item(i);
- Node childNode = attributes.item(i);
+ //Node childNode = attributes.item(i);
Attr attr = (Attr) baselineNode;
String name = attr.getName();
String value = attr.getValue();
- if (verbose) trace("attribute " + name + " has value " + value);
+ //System.out.println("attribute " + name + " has value " + value);
Node node = attributes.getNamedItem(name);
assertNotNull("Missing attribute: " + name, node);
diff --git a/edireader/src/test/resources/EDItoXMLTest.canIndent.xml b/edireader/src/test/resources/EDItoXMLTest.canIndent.xml
new file mode 100644
index 0000000..86d661e
--- /dev/null
+++ b/edireader/src/test/resources/EDItoXMLTest.canIndent.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 11
+ 07141005162
+ 040714
+ 1003
+
+
+
+
+
\ No newline at end of file
diff --git a/edireader/src/test/resources/SplitterTest.testMain.edi b/edireader/src/test/resources/SplitterTest.testMain.edi
new file mode 100644
index 0000000..d204c08
--- /dev/null
+++ b/edireader/src/test/resources/SplitterTest.testMain.edi
@@ -0,0 +1 @@
+ISA~00~ ~00~ ~ZZ~04000 ~ZZ~58401 ~040714~1003~U~00204~000038449~1~P~<$GS~AG~04000~58401~040714~1003~38327~X~002040CHRY$ST~824~000042460$BGN~11~07141005162~040714~1003$N1~SU~~92~58401O$N1~SF~~92~58401O$N1~ST~~92~05304$N1~MA~~92~05304$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~52069902AA$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CP00015$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CD03536$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CP00016$DTM~009~040714~1003~ED$DTM~011~040714$SE~31~000042460$ST~824~000042460$BGN~11~07141005162~040714~1003$N1~SU~~92~58401O$N1~SF~~92~58401O$N1~ST~~92~05304$N1~MA~~92~05304$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~52069902AA$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CP00015$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CD03536$DTM~009~040714~1003~ED$DTM~011~040714$OTI~IA~SI~AC32804~~~~~~~856$REF~BM~AC32804$REF~PK~00032804$REF~PM~0CP00016$DTM~009~040714~1003~ED$DTM~011~040714$SE~31~000042460$GE~2~38327$IEA~1~000038449$
\ No newline at end of file
diff --git a/testresults/x12/split-0001.xml b/testresults/x12/split-0001.xml
deleted file mode 100644
index c686a48..0000000
--- a/testresults/x12/split-0001.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 11
- 07141005162
- 040714
- 1003
-
-
-
- SU
- 92
- 58401O
-
-
-
-
- SF
- 92
- 58401O
-
-
-
-
- ST
- 92
- 05304
-
-
-
-
- MA
- 92
- 05304
-
-
-
-
- IA
- SI
- AC32804
- 856
-
-
- BM
- AC32804
-
-
- PK
- 00032804
-
-
- PM
- 52069902AA
-
-
- 009
- 040714
- 1003
- ED
-
-
- 011
- 040714
-
-
-
-
- IA
- SI
- AC32804
- 856
-
-
- BM
- AC32804
-
-
- PK
- 00032804
-
-
- PM
- 0CP00015
-
-
- 009
- 040714
- 1003
- ED
-
-
- 011
- 040714
-
-
-
-
- IA
- SI
- AC32804
- 856
-
-
- BM
- AC32804
-
-
- PK
- 00032804
-
-
- PM
- 0CD03536
-
-
- 009
- 040714
- 1003
- ED
-
-
- 011
- 040714
-
-
-
-
- IA
- SI
- AC32804
- 856
-
-
- BM
- AC32804
-
-
- PK
- 00032804
-
-
- PM
- 0CP00016
-
-
- 009
- 040714
- 1003
- ED
-
-
- 011
- 040714
-
-
-
-
-
-
\ No newline at end of file